From d95f38ac3114db92edba31623e5be192a8e4d1e1 Mon Sep 17 00:00:00 2001 From: Jason Kuhrt Date: Mon, 2 Dec 2024 19:28:35 -0500 Subject: [PATCH] feat(document-builder): support interface chains (#1276) --- eslint.config.js | 1 + ...-http_extension_headers__dynamicHeaders.ts | 1 - .../transport-http_headers_raw__headers.ts | 1 - .../anyware_jump-start__jump-start.ts | 1 - .../anyware_short-circuit__short-circuit.ts | 1 - package.json | 2 +- src/client/properties/transport.ts | 91 +- src/documentBuilder/InferResult/Alias.ts | 8 +- ...nt.ts => InlineFragmentTypeConditional.ts} | 16 +- src/documentBuilder/InferResult/Interface.ts | 2 +- .../InferResult/OutputField.ts | 4 +- .../{OutputObject.ts => OutputObjectLike.ts} | 22 +- .../InferResult/ScalarsWildcard.ts | 4 +- src/documentBuilder/InferResult/Union.ts | 2 +- src/documentBuilder/InferResult/_.ts | 2 +- src/documentBuilder/InferResult/__.test-d.ts | 15 +- src/documentBuilder/InferResult/operation.ts | 4 +- src/extension/extension.ts | 1 - .../fixture/graffle/modules/methods-root.ts | 53 + .../fixture/graffle/modules/methods-select.ts | 40 + .../graffle/modules/schema-driven-data-map.ts | 121 + .../tests/fixture/graffle/modules/schema.ts | 611 +++++ .../tests/fixture/graffle/modules/select.ts | 66 +- .../fixture/graffle/modules/selection-sets.ts | 1544 +++++++++-- .../__snapshots__/generate.test.ts.snap | 2307 +++++++++++++++-- src/generator/generators/Schema.ts | 114 +- src/generator/generators/Select.ts | 2 +- .../generators/SelectionSets.test-d.ts | 20 + src/generator/generators/SelectionSets.ts | 6 +- src/lib/grafaid/schema/KindMap/_.ts | 6 +- src/types/Schema/nodes/Interface.ts | 7 +- src/types/Schema/typeGroups.ts | 9 + src/types/context.ts | 8 +- tests/_/schemas/db.ts | 106 + tests/_/schemas/kitchen-sink/_scalars.ts | 9 - .../graffle/modules/methods-root.ts | 53 + .../graffle/modules/methods-select.ts | 40 + .../graffle/modules/schema-driven-data-map.ts | 121 + .../kitchen-sink/graffle/modules/schema.ts | 611 +++++ .../kitchen-sink/graffle/modules/select.ts | 66 +- .../graffle/modules/selection-sets.ts | 1544 +++++++++-- .../kitchen-sink/graffle/schema.graphql | 71 + tests/_/schemas/kitchen-sink/schema.ts | 148 +- .../schemas/pokemon/graffle/modules/schema.ts | 30 + .../schemas/pokemon/graffle/modules/select.ts | 16 +- website/graffle/modules/Schema.ts | 30 + website/graffle/modules/Select.ts | 16 +- website/package.json | 8 +- website/pnpm-lock.yaml | 584 ++--- 49 files changed, 7438 insertions(+), 1107 deletions(-) rename src/documentBuilder/InferResult/{InlineFragment.ts => InlineFragmentTypeConditional.ts} (51%) rename src/documentBuilder/InferResult/{OutputObject.ts => OutputObjectLike.ts} (88%) delete mode 100644 tests/_/schemas/kitchen-sink/_scalars.ts diff --git a/eslint.config.js b/eslint.config.js index 3d360d7f4..adf7ca50d 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -33,5 +33,6 @@ export default tsEslint.config({ ['@typescript-eslint/no-unsafe-call']: 'off', ['@typescript-eslint/no-unsafe-member-access']: 'off', ['@typescript-eslint/ban-types']: 'off', + ['@typescript-eslint/no-unnecessary-condition']: 'off', }, }) diff --git a/examples/10_transport-http/transport-http_extension_headers__dynamicHeaders.ts b/examples/10_transport-http/transport-http_extension_headers__dynamicHeaders.ts index 3260d52e8..031df0a19 100644 --- a/examples/10_transport-http/transport-http_extension_headers__dynamicHeaders.ts +++ b/examples/10_transport-http/transport-http_extension_headers__dynamicHeaders.ts @@ -11,7 +11,6 @@ const graffle = Graffle url: publicGraphQLSchemaEndpoints.Pokemon, }) .anyware(({ pack }) => { - // eslint-disable-next-line if (pack.input.transportType !== `http`) return pack() return pack({ input: { diff --git a/examples/10_transport-http/transport-http_headers_raw__headers.ts b/examples/10_transport-http/transport-http_headers_raw__headers.ts index fea4d2a31..648607807 100644 --- a/examples/10_transport-http/transport-http_headers_raw__headers.ts +++ b/examples/10_transport-http/transport-http_headers_raw__headers.ts @@ -24,7 +24,6 @@ const graffle = Graffle headers: { 'x-something-to-unset': `` }, }) .anyware(({ exchange }) => { - // eslint-disable-next-line if (exchange.input.transportType !== `http`) return exchange() show(exchange.input.request.headers) return exchange() diff --git a/examples/50_anyware/anyware_jump-start__jump-start.ts b/examples/50_anyware/anyware_jump-start__jump-start.ts index cbc08b1f9..64d0def5e 100644 --- a/examples/50_anyware/anyware_jump-start__jump-start.ts +++ b/examples/50_anyware/anyware_jump-start__jump-start.ts @@ -12,7 +12,6 @@ Graffle // Notice how we **start** with the `exchange` hook, skipping the `encode` and `pack` hooks. .anyware(async ({ exchange }) => { // ^^^^^^^^ - // eslint-disable-next-line if (exchange.input.transportType !== `http`) return exchange() const mergedHeaders = new Headers(exchange.input.request.headers) diff --git a/examples/50_anyware/anyware_short-circuit__short-circuit.ts b/examples/50_anyware/anyware_short-circuit__short-circuit.ts index a8442f523..0d89bd442 100644 --- a/examples/50_anyware/anyware_short-circuit__short-circuit.ts +++ b/examples/50_anyware/anyware_short-circuit__short-circuit.ts @@ -13,7 +13,6 @@ Graffle const { pack } = await encode() const { exchange } = await pack() - // eslint-disable-next-line if (exchange.input.transportType !== `http`) return exchange() const mergedHeaders = new Headers(exchange.input.request.headers) diff --git a/package.json b/package.json index 800ac1af8..9e4f32e6f 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "clean": "tsc --build --clean && rm -rf build", "test:unit": "vitest --exclude tests/examples --exclude tests/e2e", "test:examples": "vitest --config vitest.examples.config.ts --dir tests/examples", - "test:e2e": "vitest --dir tests/e2e --testTimeout 20000", + "test:e2e": "vitest --dir tests/e2e --testTimeout 30000 --run", "test": "vitest", "test:web": "vitest --environment jsdom", "test:types": "vitest --typecheck --dir src --testNamePattern .*.test-d.ts", diff --git a/src/client/properties/transport.ts b/src/client/properties/transport.ts index 06698bb38..ec41c13f6 100644 --- a/src/client/properties/transport.ts +++ b/src/client/properties/transport.ts @@ -1,5 +1,5 @@ import type { PartialOrUndefined } from '../../lib/prelude.js' -import type { ClientTransports } from '../../types/context.js' +import type { ClientTransports, ClientTransportsConfiguration } from '../../types/context.js' import { type Context } from '../../types/context.js' import { type Client, type ExtensionChainableRegistry } from '../client.js' import { createProperties } from '../helpers.js' @@ -53,7 +53,7 @@ export type TransportMethod< */ < name extends ClientTransports.GetNames<$Context['transports']>, - config extends $Context['transports']['registry'][name]['config'] = {} + config extends undefined | $Context['transports']['registry'][name]['config'] = undefined > (name: name, config?: config): Client< @@ -67,14 +67,15 @@ export type TransportMethod< ? $Context['transports']['configurations'] : { [configKey in keyof $Context['transports']['configurations']]: - configKey extends $Context['transports']['current'] + configKey extends name ? { [configValueKey in keyof $Context['transports']['configurations'][configKey]]: configValueKey extends keyof config - ? config[configValueKey] + ? unknown : $Context['transports']['configurations'][configKey][configValueKey] - } + } & config + & {debug:config} : $Context['transports']['configurations'][configKey] } } @@ -88,49 +89,51 @@ export type TransportMethod< export const transportProperties = createProperties((builder, state) => { return { - transport: (transport: string | object) => { - if (typeof transport === `string`) { - return builder({ - ...state, - transports: { - ...state.transports, - current: transport, - }, - }) - } - - if (!state.transports.current) { + transport: (...args: [config: object] | [transportName: string, config?: object]) => { + const transportName = typeof args[0] === `string` ? args[0] : state.transports.current + const transportConfig = (typeof args[0] === `string` ? args[1] : args[0]) ?? {} + if (!transportName) { throw new Error(`No transport is currently set.`) } + const newContext = reducerTransportConfig(state, transportName, transportConfig) + return builder(newContext) + }, + } as any +}) - const newConfiguration = { - ...state.transports.configurations[state.transports.current] ?? {}, - ...transport, - } - // hack: transport need to provide this function - if (state.transports.current === `http`) { +const reducerTransportConfig = ( + state: Context, + transportName: string, + config: ClientTransportsConfiguration, +): Context => { + const newConfiguration = { + ...state.transports.configurations[transportName] ?? {}, + ...config, + } + + // hack: transport need to provide this function + if (transportName === `http`) { + // @ts-expect-error + if (config.headers) { + // @ts-expect-error + newConfiguration.headers = { + // @ts-expect-error + ...state.transports.configurations[transportName]?.headers, // @ts-expect-error - if (transport.headers) { - // @ts-expect-error - newConfiguration.headers = { - // @ts-expect-error - ...state.transports.configurations[state.transports.current]?.headers, - // @ts-expect-error - ...transport.headers, - } - } + ...config.headers, } + } + } - return builder({ - ...state, - transports: { - ...state.transports, - configurations: { - ...state.transports.configurations, - [state.transports.current]: newConfiguration, - }, - }, - }) + return { + ...state, + transports: { + ...state.transports, + current: transportName, + configurations: { + ...state.transports.configurations, + [transportName]: newConfiguration, + }, }, - } as any -}) + } +} diff --git a/src/documentBuilder/InferResult/Alias.ts b/src/documentBuilder/InferResult/Alias.ts index 12256cfff..4b2f68f35 100644 --- a/src/documentBuilder/InferResult/Alias.ts +++ b/src/documentBuilder/InferResult/Alias.ts @@ -6,7 +6,7 @@ import type { OutputField } from './OutputField.js' // dprint-ignore export type Alias< $Schema extends Schema, - $Node extends Schema.OutputObject, + $Node extends Schema.OutputObjectLike, $SelectionSet, > = UnionMerge< @@ -33,7 +33,7 @@ type InferSelectAlias< $SelectAlias extends Select.SelectAlias.SelectAlias, $FieldName extends string, $Schema extends Schema, - $Node extends Schema.OutputObject, + $Node extends Schema.OutputObjectLike, > = $SelectAlias extends Select.SelectAlias.SelectAliasOne ? InferSelectAliasOne<$SelectAlias, $FieldName, $Schema, $Node> : $SelectAlias extends Select.SelectAlias.SelectAliasMultiple ? InferSelectAliasMultiple<$SelectAlias, $FieldName, $Schema, $Node> : @@ -43,7 +43,7 @@ type InferSelectAliasMultiple< $SelectAliasMultiple extends Select.SelectAlias.SelectAliasMultiple, $FieldName extends string, $Schema extends Schema, - $Node extends Schema.OutputObject, + $Node extends Schema.OutputObjectLike, > = Tuple.IntersectItems< { [_ in keyof $SelectAliasMultiple]: InferSelectAliasOne<$SelectAliasMultiple[_], $FieldName, $Schema, $Node> @@ -54,7 +54,7 @@ type InferSelectAliasOne< $SelectAliasOne extends Select.SelectAlias.SelectAliasOne, $FieldName extends string, $Schema extends Schema, - $Node extends Schema.OutputObject, + $Node extends Schema.OutputObjectLike, > = { [_ in $SelectAliasOne[0]]: OutputField<$SelectAliasOne[1], $Node['fields'][$FieldName], $Schema> } diff --git a/src/documentBuilder/InferResult/InlineFragment.ts b/src/documentBuilder/InferResult/InlineFragmentTypeConditional.ts similarity index 51% rename from src/documentBuilder/InferResult/InlineFragment.ts rename to src/documentBuilder/InferResult/InlineFragmentTypeConditional.ts index 62f4a84be..a540c5aa3 100644 --- a/src/documentBuilder/InferResult/InlineFragment.ts +++ b/src/documentBuilder/InferResult/InlineFragmentTypeConditional.ts @@ -1,12 +1,22 @@ import { type GetKeyOr } from '../../lib/prelude.js' import type { Schema } from '../../types/Schema/__.js' import type { Select } from '../Select/__.js' -import type { OutputObject } from './OutputObject.js' +import type { OutputObjectLike } from './OutputObjectLike.js' // dprint-ignore -export type InlineFragmentTypeConditional<$SelectionSet, $Node extends Schema.OutputObject, $Schema extends Schema> = +export type InlineFragmentTypeConditional<$SelectionSet, $Node extends Schema.InlineFragmentTypeConditionTypes, $Schema extends Schema> = $Node extends any // force distribution - ? OutputObject< + // ? $Node extends Schema.Interface + // ? { + // debug: GetKeyOr< + // $SelectionSet, + // `${Select.InlineFragment.TypeConditionalKeyPrefix}${$Node['name']}`, + // {} + // > + // & Select.InlineFragment.OmitInlineFragmentsWithTypeConditions<$SelectionSet>, + // debug2: $Node['fields'] + // } + ? OutputObjectLike< & GetKeyOr< $SelectionSet, `${Select.InlineFragment.TypeConditionalKeyPrefix}${$Node['name']}`, diff --git a/src/documentBuilder/InferResult/Interface.ts b/src/documentBuilder/InferResult/Interface.ts index 403051f6d..aa8961989 100644 --- a/src/documentBuilder/InferResult/Interface.ts +++ b/src/documentBuilder/InferResult/Interface.ts @@ -1,5 +1,5 @@ import type { Schema } from '../../types/Schema/__.js' -import type { InlineFragmentTypeConditional } from './InlineFragment.js' +import type { InlineFragmentTypeConditional } from './InlineFragmentTypeConditional.js' // dprint-ignore export type Interface<$SelectionSet, $Schema extends Schema, $Node extends Schema.Interface> = diff --git a/src/documentBuilder/InferResult/OutputField.ts b/src/documentBuilder/InferResult/OutputField.ts index 4602a0da2..1221df661 100644 --- a/src/documentBuilder/InferResult/OutputField.ts +++ b/src/documentBuilder/InferResult/OutputField.ts @@ -2,7 +2,7 @@ import type { TSErrorDescriptive } from '../../lib/ts-error.js' import type { Schema } from '../../types/Schema/__.js' import type { InlineType } from '../../types/SchemaDrivenDataMap/InlineType.js' import type { Interface } from './Interface.js' -import type { OutputObject } from './OutputObject.js' +import type { OutputObjectLike } from './OutputObjectLike.js' import type { Union } from './Union.js' // dprint-ignore @@ -19,7 +19,7 @@ type FieldType< $Node extends Schema.NamedOutputTypes, > = $Node extends Schema.OutputObject ? $SelectionSet extends object - ? OutputObject<$SelectionSet, $Schema, $Node> + ? OutputObjectLike<$SelectionSet, $Schema, $Node> : TSErrorDescriptive<'FieldType', 'When $Node extends Schema.OutputObject then $SelectionSet must extend object', { $Type: $Node; $SelectionSet: $SelectionSet; $Schema:$Schema } > : $Node extends Schema.Scalar ? Schema.Scalar.GetDecoded<$Node> : // TODO use TS compiler API to extract this type at build time. $Node extends Schema.Scalar.ScalarCodecless ? Schema.Scalar.GetDecoded> : diff --git a/src/documentBuilder/InferResult/OutputObject.ts b/src/documentBuilder/InferResult/OutputObjectLike.ts similarity index 88% rename from src/documentBuilder/InferResult/OutputObject.ts rename to src/documentBuilder/InferResult/OutputObjectLike.ts index ba08982b5..9f18b033b 100644 --- a/src/documentBuilder/InferResult/OutputObject.ts +++ b/src/documentBuilder/InferResult/OutputObjectLike.ts @@ -15,19 +15,19 @@ import type { OutputField } from './OutputField.js' import type { ScalarsWildcard } from './ScalarsWildcard.js' // dprint-ignore -export type OutputObject< +export type OutputObjectLike< $SelectionSet extends object, $Schema extends Schema, - $Node extends Schema.OutputObject + $Node extends Schema.OutputObjectLike > = - & OutputObject_<$SelectionSet, $Schema, $Node> + & OutputObjectLike_<$SelectionSet, $Schema, $Node> & InlineFragmentKeys<$SelectionSet, $Schema, $Node> // dprint-ignore -type OutputObject_< +type OutputObjectLike_< $SelectionSet extends object, $Schema extends Schema, - $Node extends Schema.OutputObject, + $Node extends Schema.OutputObjectLike > = Select.SelectScalarsWildcard.IsSelectScalarsWildcard<$SelectionSet> extends true // todo this needs to be an extension and/or only available when sddm is present @@ -38,7 +38,7 @@ type OutputObject_< & Alias<$Schema, $Node, $SelectionSet> // dprint-ignore -type OtherKeys<$SelectionSet, $Schema extends Schema, $Node extends Schema.OutputObject> = +type OtherKeys<$SelectionSet, $Schema extends Schema, $Node extends Schema.OutputObjectLike> = { [ $Field in keyof $SelectionSet as @@ -93,7 +93,7 @@ type PickApplicableFieldKeys<$SelectionSet> = StringKeyof< } > // dprint-ignore -type InlineFragmentKeys<$SelectionSet extends object, $Schema extends Schema, $Node extends Schema.OutputObject> = +type InlineFragmentKeys<$SelectionSet extends object, $Schema extends Schema, $Node extends Schema.OutputObjectLike> = InlineFragmentKey_< AssertExtendsObject< GetOrNever<$SelectionSet, Select.InlineFragment.Key> @@ -103,21 +103,21 @@ type InlineFragmentKeys<$SelectionSet extends object, $Schema extends Schema, $N > // dprint-ignore -type InlineFragmentKey_<$SelectionSet extends object, $Schema extends Schema, $Node extends Schema.OutputObject> = +type InlineFragmentKey_<$SelectionSet extends object, $Schema extends Schema, $Node extends Schema.OutputObjectLike> = IsNever<$SelectionSet> extends true ? {} : IsNeverViaDirective<$SelectionSet> extends true ? {} : IsOptionalViaDirective<$SelectionSet> extends true ? Partial< - OutputObject_, $Schema, $Node> + OutputObjectLike_, $Schema, $Node> > - : OutputObject_, $Schema, $Node> + : OutputObjectLike_, $Schema, $Node> export namespace Errors { export type UnknownKey< $Key extends PropertyKey, - $Object extends Schema.OutputObject, + $Object extends Schema.OutputObjectLike, > = TSErrorDescriptive<'Object', `field "${PropertyKeyToString<$Key>}" does not exist on object "${$Object['name']}"`> } diff --git a/src/documentBuilder/InferResult/ScalarsWildcard.ts b/src/documentBuilder/InferResult/ScalarsWildcard.ts index 922309abc..7ab7cbcc5 100644 --- a/src/documentBuilder/InferResult/ScalarsWildcard.ts +++ b/src/documentBuilder/InferResult/ScalarsWildcard.ts @@ -4,13 +4,13 @@ import type { OutputField } from './OutputField.js' export type ScalarsWildcard< $SelectionSet, $Schema extends Schema, - $Node extends Schema.OutputObject, + $Node extends Schema.OutputObjectLike, > = { [$Key in keyof PickScalarFields<$Node>]: OutputField<$SelectionSet, $Node['fields'][$Key], $Schema> } // dprint-ignore -type PickScalarFields<$Object extends Schema.OutputObject> = { +type PickScalarFields<$Object extends Schema.OutputObjectLike> = { [ $Key in keyof $Object['fields'] as Schema.GetNamedType<$Object['fields'][$Key]['namedType']> extends Schema.ScalarLikeTypes diff --git a/src/documentBuilder/InferResult/Union.ts b/src/documentBuilder/InferResult/Union.ts index 9e3482ca5..f745a1e2b 100644 --- a/src/documentBuilder/InferResult/Union.ts +++ b/src/documentBuilder/InferResult/Union.ts @@ -1,5 +1,5 @@ import type { Schema } from '../../types/Schema/__.js' -import type { InlineFragmentTypeConditional } from './InlineFragment.js' +import type { InlineFragmentTypeConditional } from './InlineFragmentTypeConditional.js' // dprint-ignore export type Union<$SelectionSet, $Schema extends Schema, $Node extends Schema.Union> = diff --git a/src/documentBuilder/InferResult/_.ts b/src/documentBuilder/InferResult/_.ts index fbc47e45d..3f70e4600 100644 --- a/src/documentBuilder/InferResult/_.ts +++ b/src/documentBuilder/InferResult/_.ts @@ -2,6 +2,6 @@ export * from './Alias.js' export * from './Interface.js' export * from './operation.js' export * from './OutputField.js' -export * from './OutputObject.js' +export * from './OutputObjectLike.js' export * from './ScalarsWildcard.js' export * from './Union.js' diff --git a/src/documentBuilder/InferResult/__.test-d.ts b/src/documentBuilder/InferResult/__.test-d.ts index d727ae1e4..2c5ec8ffe 100644 --- a/src/documentBuilder/InferResult/__.test-d.ts +++ b/src/documentBuilder/InferResult/__.test-d.ts @@ -84,7 +84,6 @@ assertEqual<$<{ unionFooBarWithArgs: { $: { id: `abc` }, ___on_Foo: { id: true } // Union fragments Case assertEqual<$<{ lowerCaseUnion: { __typename:true, ___on_lowerCaseObject: { id: true }, ___on_lowerCaseObject2: { int: true } } }>, { lowerCaseUnion: null | { __typename: 'lowerCaseObject'; id: null|string } | { __typename: 'lowerCaseObject2'; int: null|number } }>() - // Interface assertEqual<$<{ interface: { ___on_Object1ImplementingInterface: { id: true }}}>, { interface: null | { id: null | string} | {} }>() assertEqual<$<{ interface: { ___on_Object1ImplementingInterface: { int: true }}}>, { interface: null | { int: null | number} | {} }>() @@ -177,4 +176,18 @@ type Result = $<{ id2: true }> // unknown field assertEqual }>() +// Interface Hierarchy + + +// Can select own fields directly +assertEqual<$<{ interfaceHierarchyGrandparents: { a: true } }>, { interfaceHierarchyGrandparents: { a: string }[] }>() + +// Can use inline fragment of an implementor interface +assertEqual<$<{ interfaceHierarchyGrandparents: { ___on_InterfaceParent: { a: true } } }>, { interfaceHierarchyGrandparents: ({}|{ a: string })[] }>() +assertEqual<$<{ interfaceHierarchyGrandparents: { ___on_InterfaceChildA: { a: true } } }>, { interfaceHierarchyGrandparents: ({}|{ a: string })[] }>() +assertEqual<$<{ interfaceHierarchyGrandparents: { ___on_InterfaceChildB: { a: true } } }>, { interfaceHierarchyGrandparents: ({}|{ a: string })[] }>() + +// @ts-expect-error cannot select child interface field +assertEqual<$<{ interfaceHierarchyGrandparents: { ___on_InterfaceParent: { c1: true } } }>, { interfaceHierarchyGrandparents: { a: string }[] }>() + } diff --git a/src/documentBuilder/InferResult/operation.ts b/src/documentBuilder/InferResult/operation.ts index 50ac8889b..2677833d1 100644 --- a/src/documentBuilder/InferResult/operation.ts +++ b/src/documentBuilder/InferResult/operation.ts @@ -2,7 +2,7 @@ import type { OperationTypeNode } from 'graphql' import type { Grafaid } from '../../lib/grafaid/__.js' import { type ExcludeNull } from '../../lib/prelude.js' import type { Schema } from '../../types/Schema/__.js' -import type { OutputObject } from './OutputObject.js' +import type { OutputObjectLike } from './OutputObjectLike.js' // dprint-ignore export type OperationQuery<$SelectionSet extends object, $Schema extends Schema> = @@ -20,4 +20,4 @@ export type Operation< $SelectionSet extends object, $Schema extends Schema, $OperationType extends Grafaid.Document.OperationTypeNode, -> = OutputObject<$SelectionSet, $Schema, ExcludeNull<$Schema['Root'][$OperationType]>> +> = OutputObjectLike<$SelectionSet, $Schema, ExcludeNull<$Schema['Root'][$OperationType]>> diff --git a/src/extension/extension.ts b/src/extension/extension.ts index 438a73415..950ae37aa 100644 --- a/src/extension/extension.ts +++ b/src/extension/extension.ts @@ -76,7 +76,6 @@ export const create = < const builder = extensionBuilder.builder?.(BuilderExtension.create) const overload = extensionBuilder.transport?.((name) => Anyware.Overload.create({ discriminant: [`transportType`, name] }) - // eslint-disable-next-line )?.type const transport: Transport | undefined = overload ? { diff --git a/src/extensions/SchemaErrors/tests/fixture/graffle/modules/methods-root.ts b/src/extensions/SchemaErrors/tests/fixture/graffle/modules/methods-root.ts index 3515c86fb..9c307ebf0 100644 --- a/src/extensions/SchemaErrors/tests/fixture/graffle/modules/methods-root.ts +++ b/src/extensions/SchemaErrors/tests/fixture/graffle/modules/methods-root.ts @@ -269,6 +269,59 @@ export interface QueryMethods<$Context extends $$Utilities.Context> { > > + interfaceHierarchyChildA: <$SelectionSet>( + selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Query.interfaceHierarchyChildA<$Context['scalars']>>, + ) => Promise< + & (null | {}) + & $$Utilities.HandleOutputGraffleRootField< + $Context, + InferResult.OperationQuery<{ interfaceHierarchyChildA: $SelectionSet }, $$Schema.Schema<$Context['scalars']>>, + 'interfaceHierarchyChildA' + > + > + + interfaceHierarchyChildB: <$SelectionSet>( + selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Query.interfaceHierarchyChildB<$Context['scalars']>>, + ) => Promise< + & (null | {}) + & $$Utilities.HandleOutputGraffleRootField< + $Context, + InferResult.OperationQuery<{ interfaceHierarchyChildB: $SelectionSet }, $$Schema.Schema<$Context['scalars']>>, + 'interfaceHierarchyChildB' + > + > + + interfaceHierarchyGrandparents: <$SelectionSet>( + selectionSet: $$Utilities.Exact< + $SelectionSet, + $$SelectionSets.Query.interfaceHierarchyGrandparents<$Context['scalars']> + >, + ) => Promise< + & (null | {}) + & $$Utilities.HandleOutputGraffleRootField< + $Context, + InferResult.OperationQuery< + { interfaceHierarchyGrandparents: $SelectionSet }, + $$Schema.Schema<$Context['scalars']> + >, + 'interfaceHierarchyGrandparents' + > + > + + interfaceHierarchyParents: <$SelectionSet>( + selectionSet: $$Utilities.Exact< + $SelectionSet, + $$SelectionSets.Query.interfaceHierarchyParents<$Context['scalars']> + >, + ) => Promise< + & (null | {}) + & $$Utilities.HandleOutputGraffleRootField< + $Context, + InferResult.OperationQuery<{ interfaceHierarchyParents: $SelectionSet }, $$Schema.Schema<$Context['scalars']>>, + 'interfaceHierarchyParents' + > + > + interfaceNonNull: <$SelectionSet>( selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Query.interfaceNonNull<$Context['scalars']>>, ) => Promise< diff --git a/src/extensions/SchemaErrors/tests/fixture/graffle/modules/methods-select.ts b/src/extensions/SchemaErrors/tests/fixture/graffle/modules/methods-select.ts index 9a24c175d..fba6ab420 100644 --- a/src/extensions/SchemaErrors/tests/fixture/graffle/modules/methods-select.ts +++ b/src/extensions/SchemaErrors/tests/fixture/graffle/modules/methods-select.ts @@ -29,7 +29,11 @@ export interface $MethodsSelect { Object1: Object1 Object1ImplementingInterface: Object1ImplementingInterface Object2ImplementingInterface: Object2ImplementingInterface + ObjectChildA: ObjectChildA + ObjectChildB: ObjectChildB + ObjectGrandparent: ObjectGrandparent ObjectNested: ObjectNested + ObjectParent: ObjectParent ObjectUnion: ObjectUnion lowerCaseObject: lowerCaseObject lowerCaseObject2: lowerCaseObject2 @@ -40,6 +44,10 @@ export interface $MethodsSelect { DateInterface1: DateInterface1 Error: Error Interface: Interface + InterfaceChildA: InterfaceChildA + InterfaceChildB: InterfaceChildB + InterfaceGrandparent: InterfaceGrandparent + InterfaceParent: InterfaceParent } // @@ -122,10 +130,26 @@ export interface Object2ImplementingInterface { ): $SelectionSet } +export interface ObjectChildA { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectChildA>): $SelectionSet +} + +export interface ObjectChildB { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectChildB>): $SelectionSet +} + +export interface ObjectGrandparent { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectGrandparent>): $SelectionSet +} + export interface ObjectNested { <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectNested>): $SelectionSet } +export interface ObjectParent { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectParent>): $SelectionSet +} + export interface ObjectUnion { <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectUnion>): $SelectionSet } @@ -197,3 +221,19 @@ export interface Error { export interface Interface { <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Interface>): $SelectionSet } + +export interface InterfaceChildA { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.InterfaceChildA>): $SelectionSet +} + +export interface InterfaceChildB { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.InterfaceChildB>): $SelectionSet +} + +export interface InterfaceGrandparent { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.InterfaceGrandparent>): $SelectionSet +} + +export interface InterfaceParent { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.InterfaceParent>): $SelectionSet +} diff --git a/src/extensions/SchemaErrors/tests/fixture/graffle/modules/schema-driven-data-map.ts b/src/extensions/SchemaErrors/tests/fixture/graffle/modules/schema-driven-data-map.ts index 821000680..c3628841c 100644 --- a/src/extensions/SchemaErrors/tests/fixture/graffle/modules/schema-driven-data-map.ts +++ b/src/extensions/SchemaErrors/tests/fixture/graffle/modules/schema-driven-data-map.ts @@ -70,6 +70,26 @@ const Case: $$Utilities.SchemaDrivenDataMap.Enum = { n: 'Case', } +const ChildAInterfaceHierarchyMember: $$Utilities.SchemaDrivenDataMap.Enum = { + k: 'enum', + n: 'ChildAInterfaceHierarchyMember', +} + +const ChildBInterfaceHierarchyMember: $$Utilities.SchemaDrivenDataMap.Enum = { + k: 'enum', + n: 'ChildBInterfaceHierarchyMember', +} + +const GrandparentInterfaceHierarchyMember: $$Utilities.SchemaDrivenDataMap.Enum = { + k: 'enum', + n: 'GrandparentInterfaceHierarchyMember', +} + +const ParentInterfaceHierarchyMember: $$Utilities.SchemaDrivenDataMap.Enum = { + k: 'enum', + n: 'ParentInterfaceHierarchyMember', +} + // // // @@ -219,6 +239,31 @@ const Object2ImplementingInterface: $$Utilities.SchemaDrivenDataMap.OutputObject }, } +const ObjectChildA: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: { + a: {}, + b: {}, + c1: {}, + me: {}, + }, +} + +const ObjectChildB: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: { + a: {}, + b: {}, + c2: {}, + me: {}, + }, +} + +const ObjectGrandparent: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: { + a: {}, + me: {}, + }, +} + const ObjectNested: $$Utilities.SchemaDrivenDataMap.OutputObject = { f: { id: {}, @@ -228,6 +273,14 @@ const ObjectNested: $$Utilities.SchemaDrivenDataMap.OutputObject = { }, } +const ObjectParent: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: { + a: {}, + b: {}, + me: {}, + }, +} + const ObjectUnion: $$Utilities.SchemaDrivenDataMap.OutputObject = { f: { fooBarUnion: { @@ -278,6 +331,22 @@ const Interface: $$Utilities.SchemaDrivenDataMap.OutputObject = { f: {}, } +const InterfaceChildA: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: {}, +} + +const InterfaceChildB: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: {}, +} + +const InterfaceGrandparent: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: {}, +} + +const InterfaceParent: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: {}, +} + // // // @@ -447,6 +516,42 @@ const Query: $$Utilities.SchemaDrivenDataMap.OutputObject = { interface: { // nt: Interface, <-- Assigned later to avoid potential circular dependency. }, + interfaceHierarchyChildA: { + a: { + type: { + nt: ChildAInterfaceHierarchyMember, + it: [0], + }, + }, + // nt: InterfaceChildA, <-- Assigned later to avoid potential circular dependency. + }, + interfaceHierarchyChildB: { + a: { + type: { + nt: ChildBInterfaceHierarchyMember, + it: [0], + }, + }, + // nt: InterfaceChildB, <-- Assigned later to avoid potential circular dependency. + }, + interfaceHierarchyGrandparents: { + a: { + type: { + nt: GrandparentInterfaceHierarchyMember, + it: [0], + }, + }, + // nt: InterfaceGrandparent, <-- Assigned later to avoid potential circular dependency. + }, + interfaceHierarchyParents: { + a: { + type: { + nt: ParentInterfaceHierarchyMember, + it: [0], + }, + }, + // nt: InterfaceParent, <-- Assigned later to avoid potential circular dependency. + }, interfaceNonNull: { // nt: Interface, <-- Assigned later to avoid potential circular dependency. }, @@ -656,6 +761,10 @@ Query.f[`dateInterface1`]!.nt = DateInterface1 Query.f[`dateObject1`]!.nt = DateObject1 Query.f[`dateUnion`]!.nt = DateUnion Query.f[`interface`]!.nt = Interface +Query.f[`interfaceHierarchyChildA`]!.nt = InterfaceChildA +Query.f[`interfaceHierarchyChildB`]!.nt = InterfaceChildB +Query.f[`interfaceHierarchyGrandparents`]!.nt = InterfaceGrandparent +Query.f[`interfaceHierarchyParents`]!.nt = InterfaceParent Query.f[`interfaceNonNull`]!.nt = Interface Query.f[`interfaceWithArgs`]!.nt = Interface Query.f[`lowerCaseUnion`]!.nt = lowerCaseUnion @@ -704,6 +813,10 @@ const $schemaDrivenDataMap: $$Utilities.SchemaDrivenDataMap = { Date, ABCEnum, Case, + ChildAInterfaceHierarchyMember, + ChildBInterfaceHierarchyMember, + GrandparentInterfaceHierarchyMember, + ParentInterfaceHierarchyMember, InputObject, InputObjectCircular, InputObjectNested, @@ -717,13 +830,21 @@ const $schemaDrivenDataMap: $$Utilities.SchemaDrivenDataMap = { Object1, Object1ImplementingInterface, Object2ImplementingInterface, + ObjectChildA, + ObjectChildB, + ObjectGrandparent, ObjectNested, + ObjectParent, ObjectUnion, lowerCaseObject, lowerCaseObject2, DateInterface1, Error, Interface, + InterfaceChildA, + InterfaceChildB, + InterfaceGrandparent, + InterfaceParent, DateUnion, FooBarUnion, Result, diff --git a/src/extensions/SchemaErrors/tests/fixture/graffle/modules/schema.ts b/src/extensions/SchemaErrors/tests/fixture/graffle/modules/schema.ts index a66aca603..9354aa1f6 100644 --- a/src/extensions/SchemaErrors/tests/fixture/graffle/modules/schema.ts +++ b/src/extensions/SchemaErrors/tests/fixture/graffle/modules/schema.ts @@ -50,6 +50,10 @@ export namespace Schema { id: Query.id idNonNull: Query.idNonNull interface: Query.$interface + interfaceHierarchyChildA: Query.interfaceHierarchyChildA + interfaceHierarchyChildB: Query.interfaceHierarchyChildB + interfaceHierarchyGrandparents: Query.interfaceHierarchyGrandparents + interfaceHierarchyParents: Query.interfaceHierarchyParents interfaceNonNull: Query.interfaceNonNull interfaceWithArgs: Query.interfaceWithArgs listInt: Query.listInt @@ -319,6 +323,62 @@ export namespace Schema { namedType: $$NamedTypes.$$Interface } + export interface interfaceHierarchyChildA extends $.OutputField { + name: 'interfaceHierarchyChildA' + arguments: { + type: { + kind: 'InputField' + name: 'type' + inlineType: [0] + namedType: $$NamedTypes.$$ChildAInterfaceHierarchyMember + } + } + inlineType: [1, [1]] + namedType: $$NamedTypes.$$InterfaceChildA + } + + export interface interfaceHierarchyChildB extends $.OutputField { + name: 'interfaceHierarchyChildB' + arguments: { + type: { + kind: 'InputField' + name: 'type' + inlineType: [0] + namedType: $$NamedTypes.$$ChildBInterfaceHierarchyMember + } + } + inlineType: [1, [1]] + namedType: $$NamedTypes.$$InterfaceChildB + } + + export interface interfaceHierarchyGrandparents extends $.OutputField { + name: 'interfaceHierarchyGrandparents' + arguments: { + type: { + kind: 'InputField' + name: 'type' + inlineType: [0] + namedType: $$NamedTypes.$$GrandparentInterfaceHierarchyMember + } + } + inlineType: [1, [1]] + namedType: $$NamedTypes.$$InterfaceGrandparent + } + + export interface interfaceHierarchyParents extends $.OutputField { + name: 'interfaceHierarchyParents' + arguments: { + type: { + kind: 'InputField' + name: 'type' + inlineType: [0] + namedType: $$NamedTypes.$$ParentInterfaceHierarchyMember + } + } + inlineType: [1, [1]] + namedType: $$NamedTypes.$$InterfaceParent + } + export interface interfaceNonNull extends $.OutputField { name: 'interfaceNonNull' arguments: {} @@ -1071,6 +1131,155 @@ export namespace Schema { } } + // ObjectChildA + // -------------------------------------------------------------------------------------------------- + // + + export interface ObjectChildA extends $.OutputObject { + name: 'ObjectChildA' + fields: { + __typename: ObjectChildA.__typename + a: ObjectChildA.a + b: ObjectChildA.b + c1: ObjectChildA.c1 + me: ObjectChildA.me + } + } + + export namespace ObjectChildA { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'ObjectChildA' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface c1 extends $.OutputField { + name: 'c1' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface me extends $.OutputField { + name: 'me' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$Boolean + } + } + + // ObjectChildB + // -------------------------------------------------------------------------------------------------- + // + + export interface ObjectChildB extends $.OutputObject { + name: 'ObjectChildB' + fields: { + __typename: ObjectChildB.__typename + a: ObjectChildB.a + b: ObjectChildB.b + c2: ObjectChildB.c2 + me: ObjectChildB.me + } + } + + export namespace ObjectChildB { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'ObjectChildB' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface c2 extends $.OutputField { + name: 'c2' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface me extends $.OutputField { + name: 'me' + arguments: {} + inlineType: [1, [1]] + namedType: $$NamedTypes.$$Int + } + } + + // ObjectGrandparent + // -------------------------------------------------------------------------------------------------- + // + + export interface ObjectGrandparent extends $.OutputObject { + name: 'ObjectGrandparent' + fields: { + __typename: ObjectGrandparent.__typename + a: ObjectGrandparent.a + me: ObjectGrandparent.me + } + } + + export namespace ObjectGrandparent { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'ObjectGrandparent' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface me extends $.OutputField { + name: 'me' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$Int + } + } + // ObjectNested // -------------------------------------------------------------------------------------------------- // @@ -1110,6 +1319,53 @@ export namespace Schema { } } + // ObjectParent + // -------------------------------------------------------------------------------------------------- + // + + export interface ObjectParent extends $.OutputObject { + name: 'ObjectParent' + fields: { + __typename: ObjectParent.__typename + a: ObjectParent.a + b: ObjectParent.b + me: ObjectParent.me + } + } + + export namespace ObjectParent { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'ObjectParent' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface me extends $.OutputField { + name: 'me' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + // ObjectUnion // -------------------------------------------------------------------------------------------------- // @@ -1348,6 +1604,9 @@ export namespace Schema { // export interface DateInterface1 extends $.Interface { + fields: { + date1: DateInterface1.date1 + } name: 'DateInterface1' implementors: [DateObject1] implementorsUnion: DateObject1 @@ -1356,11 +1615,33 @@ export namespace Schema { } } + export namespace DateInterface1 { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'DateInterface1' + } + } + + export interface date1 extends $.OutputField { + name: 'date1' + arguments: {} + inlineType: [0] + namedType: $$NamedTypes.$$Date + } + } + // Error // -------------------------------------------------------------------------------------------------- // export interface Error extends $.Interface { + fields: { + message: Error.message + } name: 'Error' implementors: [ErrorOne, ErrorTwo] implementorsUnion: @@ -1372,11 +1653,33 @@ export namespace Schema { } } + export namespace Error { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'Error' + } + } + + export interface message extends $.OutputField { + name: 'message' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + // Interface // -------------------------------------------------------------------------------------------------- // export interface Interface extends $.Interface { + fields: { + id: Interface.id + } name: 'Interface' implementors: [Object1ImplementingInterface, Object2ImplementingInterface] implementorsUnion: @@ -1388,6 +1691,235 @@ export namespace Schema { } } + export namespace Interface { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'Interface' + } + } + + export interface id extends $.OutputField { + name: 'id' + arguments: {} + inlineType: [0] + namedType: $$NamedTypes.$$ID + } + } + + // InterfaceChildA + // -------------------------------------------------------------------------------------------------- + // + + export interface InterfaceChildA extends $.Interface { + fields: { + a: InterfaceChildA.a + b: InterfaceChildA.b + c1: InterfaceChildA.c1 + } + name: 'InterfaceChildA' + implementors: [ObjectChildA] + implementorsUnion: ObjectChildA + implementorsIndex: { + ObjectChildA: ObjectChildA + } + } + + export namespace InterfaceChildA { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'InterfaceChildA' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface c1 extends $.OutputField { + name: 'c1' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + + // InterfaceChildB + // -------------------------------------------------------------------------------------------------- + // + + export interface InterfaceChildB extends $.Interface { + fields: { + a: InterfaceChildB.a + b: InterfaceChildB.b + c2: InterfaceChildB.c2 + } + name: 'InterfaceChildB' + implementors: [ObjectChildB] + implementorsUnion: ObjectChildB + implementorsIndex: { + ObjectChildB: ObjectChildB + } + } + + export namespace InterfaceChildB { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'InterfaceChildB' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface c2 extends $.OutputField { + name: 'c2' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + + // InterfaceGrandparent + // -------------------------------------------------------------------------------------------------- + // + + export interface InterfaceGrandparent extends $.Interface { + fields: { + a: InterfaceGrandparent.a + } + name: 'InterfaceGrandparent' + implementors: [ + ObjectChildA, + ObjectChildB, + ObjectGrandparent, + ObjectParent, + InterfaceChildA, + InterfaceChildB, + InterfaceParent, + ] + implementorsUnion: + | ObjectChildA + | ObjectChildB + | ObjectGrandparent + | ObjectParent + | InterfaceChildA + | InterfaceChildB + | InterfaceParent + implementorsIndex: { + ObjectChildA: ObjectChildA + ObjectChildB: ObjectChildB + ObjectGrandparent: ObjectGrandparent + ObjectParent: ObjectParent + InterfaceChildA: InterfaceChildA + InterfaceChildB: InterfaceChildB + InterfaceParent: InterfaceParent + } + } + + export namespace InterfaceGrandparent { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'InterfaceGrandparent' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + + // InterfaceParent + // -------------------------------------------------------------------------------------------------- + // + + export interface InterfaceParent extends $.Interface { + fields: { + a: InterfaceParent.a + b: InterfaceParent.b + } + name: 'InterfaceParent' + implementors: [ObjectChildA, ObjectChildB, ObjectParent, InterfaceChildA, InterfaceChildB] + implementorsUnion: + | ObjectChildA + | ObjectChildB + | ObjectParent + | InterfaceChildA + | InterfaceChildB + implementorsIndex: { + ObjectChildA: ObjectChildA + ObjectChildB: ObjectChildB + ObjectParent: ObjectParent + InterfaceChildA: InterfaceChildA + InterfaceChildB: InterfaceChildB + } + } + + export namespace InterfaceParent { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'InterfaceParent' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + // // // @@ -1523,6 +2055,53 @@ export namespace Schema { | 'Object1' } + // ChildAInterfaceHierarchyMember + // -------------------------------------------------------------------------------------------------- + // + + export interface ChildAInterfaceHierarchyMember extends $.Enum { + name: 'ChildAInterfaceHierarchyMember' + members: ['InterfaceChildA'] + membersUnion: 'InterfaceChildA' + } + + // ChildBInterfaceHierarchyMember + // -------------------------------------------------------------------------------------------------- + // + + export interface ChildBInterfaceHierarchyMember extends $.Enum { + name: 'ChildBInterfaceHierarchyMember' + members: ['InterfaceChildB'] + membersUnion: 'InterfaceChildB' + } + + // GrandparentInterfaceHierarchyMember + // -------------------------------------------------------------------------------------------------- + // + + export interface GrandparentInterfaceHierarchyMember extends $.Enum { + name: 'GrandparentInterfaceHierarchyMember' + members: ['InterfaceChildA', 'InterfaceChildB', 'InterfaceGrandparent', 'InterfaceParent'] + membersUnion: + | 'InterfaceChildA' + | 'InterfaceChildB' + | 'InterfaceGrandparent' + | 'InterfaceParent' + } + + // ParentInterfaceHierarchyMember + // -------------------------------------------------------------------------------------------------- + // + + export interface ParentInterfaceHierarchyMember extends $.Enum { + name: 'ParentInterfaceHierarchyMember' + members: ['InterfaceChildA', 'InterfaceChildB', 'InterfaceParent'] + membersUnion: + | 'InterfaceChildA' + | 'InterfaceChildB' + | 'InterfaceParent' + } + // // // @@ -1627,7 +2206,11 @@ export namespace Schema { export type $$Object1 = Object1 export type $$Object1ImplementingInterface = Object1ImplementingInterface export type $$Object2ImplementingInterface = Object2ImplementingInterface + export type $$ObjectChildA = ObjectChildA + export type $$ObjectChildB = ObjectChildB + export type $$ObjectGrandparent = ObjectGrandparent export type $$ObjectNested = ObjectNested + export type $$ObjectParent = ObjectParent export type $$ObjectUnion = ObjectUnion export type $$lowerCaseObject = lowerCaseObject export type $$lowerCaseObject2 = lowerCaseObject2 @@ -1638,12 +2221,20 @@ export namespace Schema { export type $$DateInterface1 = DateInterface1 export type $$Error = Error export type $$Interface = Interface + export type $$InterfaceChildA = InterfaceChildA + export type $$InterfaceChildB = InterfaceChildB + export type $$InterfaceGrandparent = InterfaceGrandparent + export type $$InterfaceParent = InterfaceParent export type $$DateUnion = DateUnion export type $$FooBarUnion = FooBarUnion export type $$Result = Result export type $$lowerCaseUnion = lowerCaseUnion export type $$ABCEnum = ABCEnum export type $$Case = Case + export type $$ChildAInterfaceHierarchyMember = ChildAInterfaceHierarchyMember + export type $$ChildBInterfaceHierarchyMember = ChildBInterfaceHierarchyMember + export type $$GrandparentInterfaceHierarchyMember = GrandparentInterfaceHierarchyMember + export type $$ParentInterfaceHierarchyMember = ParentInterfaceHierarchyMember export type $$Date = Date export type $$Boolean = Boolean export type $$Float = Float @@ -1685,6 +2276,10 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ Mutation: Schema.Mutation ABCEnum: Schema.ABCEnum Case: Schema.Case + ChildAInterfaceHierarchyMember: Schema.ChildAInterfaceHierarchyMember + ChildBInterfaceHierarchyMember: Schema.ChildBInterfaceHierarchyMember + GrandparentInterfaceHierarchyMember: Schema.GrandparentInterfaceHierarchyMember + ParentInterfaceHierarchyMember: Schema.ParentInterfaceHierarchyMember Bar: Schema.Bar DateObject1: Schema.DateObject1 DateObject2: Schema.DateObject2 @@ -1694,7 +2289,11 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ Object1: Schema.Object1 Object1ImplementingInterface: Schema.Object1ImplementingInterface Object2ImplementingInterface: Schema.Object2ImplementingInterface + ObjectChildA: Schema.ObjectChildA + ObjectChildB: Schema.ObjectChildB + ObjectGrandparent: Schema.ObjectGrandparent ObjectNested: Schema.ObjectNested + ObjectParent: Schema.ObjectParent ObjectUnion: Schema.ObjectUnion lowerCaseObject: Schema.lowerCaseObject lowerCaseObject2: Schema.lowerCaseObject2 @@ -1705,6 +2304,10 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ DateInterface1: Schema.DateInterface1 Error: Schema.Error Interface: Schema.Interface + InterfaceChildA: Schema.InterfaceChildA + InterfaceChildB: Schema.InterfaceChildB + InterfaceGrandparent: Schema.InterfaceGrandparent + InterfaceParent: Schema.InterfaceParent } objects: { Bar: Schema.Bar @@ -1716,7 +2319,11 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ Object1: Schema.Object1 Object1ImplementingInterface: Schema.Object1ImplementingInterface Object2ImplementingInterface: Schema.Object2ImplementingInterface + ObjectChildA: Schema.ObjectChildA + ObjectChildB: Schema.ObjectChildB + ObjectGrandparent: Schema.ObjectGrandparent ObjectNested: Schema.ObjectNested + ObjectParent: Schema.ObjectParent ObjectUnion: Schema.ObjectUnion lowerCaseObject: Schema.lowerCaseObject lowerCaseObject2: Schema.lowerCaseObject2 @@ -1731,6 +2338,10 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ DateInterface1: Schema.DateInterface1 Error: Schema.Error Interface: Schema.Interface + InterfaceChildA: Schema.InterfaceChildA + InterfaceChildB: Schema.InterfaceChildB + InterfaceGrandparent: Schema.InterfaceGrandparent + InterfaceParent: Schema.InterfaceParent } scalarNamesUnion: | 'Date' diff --git a/src/extensions/SchemaErrors/tests/fixture/graffle/modules/select.ts b/src/extensions/SchemaErrors/tests/fixture/graffle/modules/select.ts index befd2d321..b42dbb549 100644 --- a/src/extensions/SchemaErrors/tests/fixture/graffle/modules/select.ts +++ b/src/extensions/SchemaErrors/tests/fixture/graffle/modules/select.ts @@ -55,69 +55,89 @@ export namespace Select { // OutputObject // -------------------------------------------------------------------------------------------------- // - export type Bar<$SelectionSet extends $$SelectionSets.Bar> = InferResult.OutputObject< + export type Bar<$SelectionSet extends $$SelectionSets.Bar> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Bar'] > - export type DateObject1<$SelectionSet extends $$SelectionSets.DateObject1> = InferResult.OutputObject< + export type DateObject1<$SelectionSet extends $$SelectionSets.DateObject1> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['DateObject1'] > - export type DateObject2<$SelectionSet extends $$SelectionSets.DateObject2> = InferResult.OutputObject< + export type DateObject2<$SelectionSet extends $$SelectionSets.DateObject2> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['DateObject2'] > - export type ErrorOne<$SelectionSet extends $$SelectionSets.ErrorOne> = InferResult.OutputObject< + export type ErrorOne<$SelectionSet extends $$SelectionSets.ErrorOne> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['ErrorOne'] > - export type ErrorTwo<$SelectionSet extends $$SelectionSets.ErrorTwo> = InferResult.OutputObject< + export type ErrorTwo<$SelectionSet extends $$SelectionSets.ErrorTwo> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['ErrorTwo'] > - export type Foo<$SelectionSet extends $$SelectionSets.Foo> = InferResult.OutputObject< + export type Foo<$SelectionSet extends $$SelectionSets.Foo> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Foo'] > - export type Object1<$SelectionSet extends $$SelectionSets.Object1> = InferResult.OutputObject< + export type Object1<$SelectionSet extends $$SelectionSets.Object1> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Object1'] > export type Object1ImplementingInterface<$SelectionSet extends $$SelectionSets.Object1ImplementingInterface> = - InferResult.OutputObject< + InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Object1ImplementingInterface'] > export type Object2ImplementingInterface<$SelectionSet extends $$SelectionSets.Object2ImplementingInterface> = - InferResult.OutputObject< + InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Object2ImplementingInterface'] > - export type ObjectNested<$SelectionSet extends $$SelectionSets.ObjectNested> = InferResult.OutputObject< + export type ObjectChildA<$SelectionSet extends $$SelectionSets.ObjectChildA> = InferResult.OutputObjectLike< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['ObjectChildA'] + > + export type ObjectChildB<$SelectionSet extends $$SelectionSets.ObjectChildB> = InferResult.OutputObjectLike< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['ObjectChildB'] + > + export type ObjectGrandparent<$SelectionSet extends $$SelectionSets.ObjectGrandparent> = InferResult.OutputObjectLike< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['ObjectGrandparent'] + > + export type ObjectNested<$SelectionSet extends $$SelectionSets.ObjectNested> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['ObjectNested'] > - export type ObjectUnion<$SelectionSet extends $$SelectionSets.ObjectUnion> = InferResult.OutputObject< + export type ObjectParent<$SelectionSet extends $$SelectionSets.ObjectParent> = InferResult.OutputObjectLike< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['ObjectParent'] + > + export type ObjectUnion<$SelectionSet extends $$SelectionSets.ObjectUnion> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['ObjectUnion'] > - export type lowerCaseObject<$SelectionSet extends $$SelectionSets.lowerCaseObject> = InferResult.OutputObject< + export type lowerCaseObject<$SelectionSet extends $$SelectionSets.lowerCaseObject> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['lowerCaseObject'] > - export type lowerCaseObject2<$SelectionSet extends $$SelectionSets.lowerCaseObject2> = InferResult.OutputObject< + export type lowerCaseObject2<$SelectionSet extends $$SelectionSets.lowerCaseObject2> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['lowerCaseObject2'] @@ -163,4 +183,24 @@ export namespace Select { $$Schema.Schema, $$Schema.Schema['allTypes']['Interface'] > + export type InterfaceChildA<$SelectionSet extends $$SelectionSets.InterfaceChildA> = InferResult.Interface< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['InterfaceChildA'] + > + export type InterfaceChildB<$SelectionSet extends $$SelectionSets.InterfaceChildB> = InferResult.Interface< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['InterfaceChildB'] + > + export type InterfaceGrandparent<$SelectionSet extends $$SelectionSets.InterfaceGrandparent> = InferResult.Interface< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['InterfaceGrandparent'] + > + export type InterfaceParent<$SelectionSet extends $$SelectionSets.InterfaceParent> = InferResult.Interface< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['InterfaceParent'] + > } diff --git a/src/extensions/SchemaErrors/tests/fixture/graffle/modules/selection-sets.ts b/src/extensions/SchemaErrors/tests/fixture/graffle/modules/selection-sets.ts index 30874357d..1445e7e97 100644 --- a/src/extensions/SchemaErrors/tests/fixture/graffle/modules/selection-sets.ts +++ b/src/extensions/SchemaErrors/tests/fixture/graffle/modules/selection-sets.ts @@ -153,6 +153,30 @@ export interface Query< * Select the `interface` field on the `Query` object. Its type is `Interface` (a `Interface` kind of type). */ interface?: Query.$interface$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `interfaceHierarchyChildA` field on the `Query` object. Its type is `InterfaceChildA` (a `Interface` kind of type). + */ + interfaceHierarchyChildA?: + | Query.interfaceHierarchyChildA$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> + /** + * Select the `interfaceHierarchyChildB` field on the `Query` object. Its type is `InterfaceChildB` (a `Interface` kind of type). + */ + interfaceHierarchyChildB?: + | Query.interfaceHierarchyChildB$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> + /** + * Select the `interfaceHierarchyGrandparents` field on the `Query` object. Its type is `InterfaceGrandparent` (a `Interface` kind of type). + */ + interfaceHierarchyGrandparents?: + | Query.interfaceHierarchyGrandparents$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> + /** + * Select the `interfaceHierarchyParents` field on the `Query` object. Its type is `InterfaceParent` (a `Interface` kind of type). + */ + interfaceHierarchyParents?: + | Query.interfaceHierarchyParents$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> /** * Select the `interfaceNonNull` field on the `Query` object. Its type is `Interface` (a `Interface` kind of type). */ @@ -1010,6 +1034,142 @@ export namespace Query { // -------------------------------------------------------------------------------------------------- + export type interfaceHierarchyChildA< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = interfaceHierarchyChildA$SelectionSet<_$Scalars> + + export interface interfaceHierarchyChildA$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$InterfaceChildA<_$Scalars> { + /** + * Arguments for `interfaceHierarchyChildA` field. No arguments are required so you may omit this. + */ + $?: interfaceHierarchyChildA$Arguments<_$Scalars> + } + + export interface interfaceHierarchyChildA$Arguments< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > { + $type?: $NamedTypes.$ChildAInterfaceHierarchyMember | undefined | null + } + + // --- expanded --- + + /** + * This is the "expanded" version of the `interfaceHierarchyChildA` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type interfaceHierarchyChildA$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + interfaceHierarchyChildA$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type interfaceHierarchyChildB< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = interfaceHierarchyChildB$SelectionSet<_$Scalars> + + export interface interfaceHierarchyChildB$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$InterfaceChildB<_$Scalars> { + /** + * Arguments for `interfaceHierarchyChildB` field. No arguments are required so you may omit this. + */ + $?: interfaceHierarchyChildB$Arguments<_$Scalars> + } + + export interface interfaceHierarchyChildB$Arguments< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > { + $type?: $NamedTypes.$ChildBInterfaceHierarchyMember | undefined | null + } + + // --- expanded --- + + /** + * This is the "expanded" version of the `interfaceHierarchyChildB` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type interfaceHierarchyChildB$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + interfaceHierarchyChildB$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type interfaceHierarchyGrandparents< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = interfaceHierarchyGrandparents$SelectionSet<_$Scalars> + + export interface interfaceHierarchyGrandparents$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$InterfaceGrandparent<_$Scalars> { + /** + * Arguments for `interfaceHierarchyGrandparents` field. No arguments are required so you may omit this. + */ + $?: interfaceHierarchyGrandparents$Arguments<_$Scalars> + } + + export interface interfaceHierarchyGrandparents$Arguments< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > { + $type?: $NamedTypes.$GrandparentInterfaceHierarchyMember | undefined | null + } + + // --- expanded --- + + /** + * This is the "expanded" version of the `interfaceHierarchyGrandparents` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type interfaceHierarchyGrandparents$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + interfaceHierarchyGrandparents$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type interfaceHierarchyParents< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = interfaceHierarchyParents$SelectionSet<_$Scalars> + + export interface interfaceHierarchyParents$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$InterfaceParent<_$Scalars> { + /** + * Arguments for `interfaceHierarchyParents` field. No arguments are required so you may omit this. + */ + $?: interfaceHierarchyParents$Arguments<_$Scalars> + } + + export interface interfaceHierarchyParents$Arguments< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > { + $type?: $NamedTypes.$ParentInterfaceHierarchyMember | undefined | null + } + + // --- expanded --- + + /** + * This is the "expanded" version of the `interfaceHierarchyParents` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type interfaceHierarchyParents$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + interfaceHierarchyParents$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + export type interfaceNonNull< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = interfaceNonNull$SelectionSet<_$Scalars> @@ -1951,6 +2111,21 @@ export type Case = | 'ErrorTwo' | 'Object1' +export type ChildAInterfaceHierarchyMember = 'InterfaceChildA' + +export type ChildBInterfaceHierarchyMember = 'InterfaceChildB' + +export type GrandparentInterfaceHierarchyMember = + | 'InterfaceChildA' + | 'InterfaceChildB' + | 'InterfaceGrandparent' + | 'InterfaceParent' + +export type ParentInterfaceHierarchyMember = + | 'InterfaceChildA' + | 'InterfaceChildB' + | 'InterfaceParent' + // // // @@ -2893,23 +3068,31 @@ export namespace Object2ImplementingInterface { > } -// ObjectNested +// ObjectChildA // -------------------------------------------------------------------------------------------------- // // ----------------------------------------| Entrypoint Interface | -export interface ObjectNested< +export interface ObjectChildA< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { /** - * Select the `id` field on the `ObjectNested` object. Its type is `ID` (a `ScalarStandard` kind of type). + * Select the `a` field on the `ObjectChildA` object. Its type is `String` (a `ScalarStandard` kind of type). */ - id?: ObjectNested.id$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + a?: ObjectChildA.a$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> /** - * Select the `object` field on the `ObjectNested` object. Its type is `Object1` (a `OutputObject` kind of type). + * Select the `b` field on the `ObjectChildA` object. Its type is `String` (a `ScalarStandard` kind of type). */ - object?: ObjectNested.$object$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + b?: ObjectChildA.b$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `c1` field on the `ObjectChildA` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + c1?: ObjectChildA.c1$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `me` field on the `ObjectChildA` object. Its type is `Boolean` (a `ScalarStandard` kind of type). + */ + me?: ObjectChildA.me$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> /** * Inline fragments for field groups. @@ -2920,8 +3103,8 @@ export interface ObjectNested< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | ObjectNested$FragmentInline<_$Scalars> - | ObjectNested$FragmentInline<_$Scalars>[] + | ObjectChildA$FragmentInline<_$Scalars> + | ObjectChildA$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. @@ -2933,140 +3116,134 @@ export interface ObjectNested< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface ObjectNested$FragmentInline< +export interface ObjectChildA$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends ObjectNested<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends ObjectChildA<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } // ----------------------------------------| Fields | -export namespace ObjectNested { - export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace ObjectChildA { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface id$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `id` type. It is identical except for the fact + * This is the "expanded" version of the `a` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type id$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> > // -------------------------------------------------------------------------------------------------- - export type $object<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = - $object$SelectionSet<_$Scalars> + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> - export interface $object$SelectionSet< + export interface b$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, - > extends $Select.Bases.Base, $NamedTypes.$Object1<_$Scalars> {} + > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `$object` type. It is identical except for the fact + * This is the "expanded" version of the `b` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type $object$Expanded< + export type b$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< - $object$SelectionSet<_$Scalars> + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> > -} -// ObjectUnion -// -------------------------------------------------------------------------------------------------- -// + // -------------------------------------------------------------------------------------------------- -// ----------------------------------------| Entrypoint Interface | + export type c1<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | c1$SelectionSet<_$Scalars> -export interface ObjectUnion< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends $Select.Bases.ObjectLike { - /** - * Select the `fooBarUnion` field on the `ObjectUnion` object. Its type is `FooBarUnion` (a `Union` kind of type). - */ - fooBarUnion?: - | ObjectUnion.fooBarUnion$Expanded<_$Scalars> - | $Select.SelectAlias.SelectAlias> + export interface c1$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} - /** - * Inline fragments for field groups. - * - * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the - * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. - * - * @see https://spec.graphql.org/draft/#sec-Inline-Fragments - */ - ___?: - | ObjectUnion$FragmentInline<_$Scalars> - | ObjectUnion$FragmentInline<_$Scalars>[] + // --- expanded --- /** - * A meta field. Is the name of the type being selected. - * - * @see https://graphql.org/learn/queries/#meta-fields + * This is the "expanded" version of the `c1` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. */ - __typename?: - | $Select.Indicator.NoArgsIndicator$Expanded - | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> -} - -export interface ObjectUnion$FragmentInline< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends ObjectUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { -} + export type c1$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | c1$SelectionSet<_$Scalars> + > -// ----------------------------------------| Fields | + // -------------------------------------------------------------------------------------------------- -export namespace ObjectUnion { - export type fooBarUnion< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, - > = fooBarUnion$SelectionSet<_$Scalars> + export type me<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> - export interface fooBarUnion$SelectionSet< + export interface me$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, - > extends $Select.Bases.Base, $NamedTypes.$FooBarUnion<_$Scalars> {} + > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `fooBarUnion` type. It is identical except for the fact + * This is the "expanded" version of the `me` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type fooBarUnion$Expanded< + export type me$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< - fooBarUnion$SelectionSet<_$Scalars> + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> > } -// lowerCaseObject +// ObjectChildB // -------------------------------------------------------------------------------------------------- // // ----------------------------------------| Entrypoint Interface | -export interface lowerCaseObject< +export interface ObjectChildB< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { /** - * Select the `id` field on the `lowerCaseObject` object. Its type is `ID` (a `ScalarStandard` kind of type). + * Select the `a` field on the `ObjectChildB` object. Its type is `String` (a `ScalarStandard` kind of type). */ - id?: lowerCaseObject.id$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + a?: ObjectChildB.a$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `b` field on the `ObjectChildB` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + b?: ObjectChildB.b$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `c2` field on the `ObjectChildB` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + c2?: ObjectChildB.c2$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `me` field on the `ObjectChildB` object. Its type is `Int` (a `ScalarStandard` kind of type). + */ + me?: ObjectChildB.me$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> /** * Inline fragments for field groups. @@ -3077,8 +3254,8 @@ export interface lowerCaseObject< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | lowerCaseObject$FragmentInline<_$Scalars> - | lowerCaseObject$FragmentInline<_$Scalars>[] + | ObjectChildB$FragmentInline<_$Scalars> + | ObjectChildB$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. @@ -3090,73 +3267,591 @@ export interface lowerCaseObject< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface lowerCaseObject$FragmentInline< +export interface ObjectChildB$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends lowerCaseObject<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends ObjectChildB<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } // ----------------------------------------| Fields | -export namespace lowerCaseObject { - export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace ObjectChildB { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface id$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `id` type. It is identical except for the fact + * This is the "expanded" version of the `a` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type id$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> > -} -// lowerCaseObject2 -// -------------------------------------------------------------------------------------------------- -// + // -------------------------------------------------------------------------------------------------- -// ----------------------------------------| Entrypoint Interface | + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> -export interface lowerCaseObject2< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends $Select.Bases.ObjectLike { - /** - * Select the `int` field on the `lowerCaseObject2` object. Its type is `Int` (a `ScalarStandard` kind of type). - */ - int?: lowerCaseObject2.int$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} - /** - * Inline fragments for field groups. - * - * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the - * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. - * - * @see https://spec.graphql.org/draft/#sec-Inline-Fragments - */ - ___?: - | lowerCaseObject2$FragmentInline<_$Scalars> - | lowerCaseObject2$FragmentInline<_$Scalars>[] + // --- expanded --- /** - * A meta field. Is the name of the type being selected. - * - * @see https://graphql.org/learn/queries/#meta-fields + * This is the "expanded" version of the `b` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. */ - __typename?: - | $Select.Indicator.NoArgsIndicator$Expanded - | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> -} - + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type c2<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | c2$SelectionSet<_$Scalars> + + export interface c2$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `c2` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type c2$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | c2$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type me<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + + export interface me$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `me` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type me$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + > +} + +// ObjectGrandparent +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface ObjectGrandparent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the `a` field on the `ObjectGrandparent` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + a?: ObjectGrandparent.a$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `me` field on the `ObjectGrandparent` object. Its type is `Int` (a `ScalarStandard` kind of type). + */ + me?: ObjectGrandparent.me$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | ObjectGrandparent$FragmentInline<_$Scalars> + | ObjectGrandparent$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface ObjectGrandparent$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends ObjectGrandparent<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace ObjectGrandparent { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + + export interface a$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `a` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type a$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type me<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + + export interface me$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `me` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type me$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + > +} + +// ObjectNested +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface ObjectNested< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the `id` field on the `ObjectNested` object. Its type is `ID` (a `ScalarStandard` kind of type). + */ + id?: ObjectNested.id$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `object` field on the `ObjectNested` object. Its type is `Object1` (a `OutputObject` kind of type). + */ + object?: ObjectNested.$object$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | ObjectNested$FragmentInline<_$Scalars> + | ObjectNested$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface ObjectNested$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends ObjectNested<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace ObjectNested { + export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + + export interface id$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `id` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type id$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type $object<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + $object$SelectionSet<_$Scalars> + + export interface $object$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$Object1<_$Scalars> {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `$object` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type $object$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + $object$SelectionSet<_$Scalars> + > +} + +// ObjectParent +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface ObjectParent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the `a` field on the `ObjectParent` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + a?: ObjectParent.a$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `b` field on the `ObjectParent` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + b?: ObjectParent.b$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `me` field on the `ObjectParent` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + me?: ObjectParent.me$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | ObjectParent$FragmentInline<_$Scalars> + | ObjectParent$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface ObjectParent$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends ObjectParent<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace ObjectParent { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + + export interface a$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `a` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type a$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `b` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type me<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + + export interface me$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `me` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type me$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + > +} + +// ObjectUnion +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface ObjectUnion< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the `fooBarUnion` field on the `ObjectUnion` object. Its type is `FooBarUnion` (a `Union` kind of type). + */ + fooBarUnion?: + | ObjectUnion.fooBarUnion$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | ObjectUnion$FragmentInline<_$Scalars> + | ObjectUnion$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface ObjectUnion$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends ObjectUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace ObjectUnion { + export type fooBarUnion< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = fooBarUnion$SelectionSet<_$Scalars> + + export interface fooBarUnion$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$FooBarUnion<_$Scalars> {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `fooBarUnion` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type fooBarUnion$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + fooBarUnion$SelectionSet<_$Scalars> + > +} + +// lowerCaseObject +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface lowerCaseObject< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the `id` field on the `lowerCaseObject` object. Its type is `ID` (a `ScalarStandard` kind of type). + */ + id?: lowerCaseObject.id$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | lowerCaseObject$FragmentInline<_$Scalars> + | lowerCaseObject$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface lowerCaseObject$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends lowerCaseObject<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace lowerCaseObject { + export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + + export interface id$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `id` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type id$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + > +} + +// lowerCaseObject2 +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface lowerCaseObject2< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the `int` field on the `lowerCaseObject2` object. Its type is `Int` (a `ScalarStandard` kind of type). + */ + int?: lowerCaseObject2.int$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | lowerCaseObject2$FragmentInline<_$Scalars> + | lowerCaseObject2$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + export interface lowerCaseObject2$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends lowerCaseObject2<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { @@ -3265,30 +3960,296 @@ export interface FooBarUnion< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | FooBarUnion$FragmentInline<_$Scalars> - | FooBarUnion$FragmentInline<_$Scalars>[] -} -export interface FooBarUnion$FragmentInline< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends FooBarUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { -} + | FooBarUnion$FragmentInline<_$Scalars> + | FooBarUnion$FragmentInline<_$Scalars>[] +} +export interface FooBarUnion$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends FooBarUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export interface Result< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> { + /** + * A meta field. Is the name of the type being selected. Since this is a union type and thus polymorphic, + * the name is one of the member type names, whichever is ultimately returned at runtime. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> + + ___on_ErrorOne?: ErrorOne<_$Scalars> + ___on_ErrorTwo?: ErrorTwo<_$Scalars> + ___on_Object1?: Object1<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | Result$FragmentInline<_$Scalars> + | Result$FragmentInline<_$Scalars>[] +} +export interface Result$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends Result<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export interface lowerCaseUnion< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> { + /** + * A meta field. Is the name of the type being selected. Since this is a union type and thus polymorphic, + * the name is one of the member type names, whichever is ultimately returned at runtime. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> + + ___on_lowerCaseObject?: lowerCaseObject<_$Scalars> + ___on_lowerCaseObject2?: lowerCaseObject2<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | lowerCaseUnion$FragmentInline<_$Scalars> + | lowerCaseUnion$FragmentInline<_$Scalars>[] +} +export interface lowerCaseUnion$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends lowerCaseUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// +// +// +// +// +// +// ================================================================================================== +// Interface +// ================================================================================================== +// +// +// +// +// +// + +// DateInterface1 +// -------------------------------------------------------------------------------------------------- +// + +export interface DateInterface1< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + date1?: DateInterface1.date1<_$Scalars> + ___on_DateObject1?: DateObject1<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | DateInterface1$FragmentInline<_$Scalars> + | DateInterface1$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, + * the name is one of the implementor type names, whichever is ultimately returned at runtime. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface DateInterface1$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends DateInterface1<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export namespace DateInterface1 { + export type date1<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | date1$SelectionSet<_$Scalars> + + export interface date1$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `date1` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type date1$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | date1$SelectionSet<_$Scalars> + > +} + +// Error +// -------------------------------------------------------------------------------------------------- +// + +export interface Error<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> + extends $Select.Bases.ObjectLike +{ + message?: Error.message<_$Scalars> + ___on_ErrorOne?: ErrorOne<_$Scalars> + ___on_ErrorTwo?: ErrorTwo<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | Error$FragmentInline<_$Scalars> + | Error$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, + * the name is one of the implementor type names, whichever is ultimately returned at runtime. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface Error$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends Error<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export namespace Error { + export type message<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | message$SelectionSet<_$Scalars> + + export interface message$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `message` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type message$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | message$SelectionSet<_$Scalars> + > +} + +// Interface +// -------------------------------------------------------------------------------------------------- +// + +export interface Interface< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + id?: Interface.id<_$Scalars> + ___on_Object1ImplementingInterface?: Object1ImplementingInterface<_$Scalars> + ___on_Object2ImplementingInterface?: Object2ImplementingInterface<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | Interface$FragmentInline<_$Scalars> + | Interface$FragmentInline<_$Scalars>[] -export interface Result< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> { /** - * A meta field. Is the name of the type being selected. Since this is a union type and thus polymorphic, - * the name is one of the member type names, whichever is ultimately returned at runtime. + * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, + * the name is one of the implementor type names, whichever is ultimately returned at runtime. * * @see https://graphql.org/learn/queries/#meta-fields */ __typename?: | $Select.Indicator.NoArgsIndicator$Expanded | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} - ___on_ErrorOne?: ErrorOne<_$Scalars> - ___on_ErrorTwo?: ErrorTwo<_$Scalars> - ___on_Object1?: Object1<_$Scalars> +export interface Interface$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends Interface<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export namespace Interface { + export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + + export interface id$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `id` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type id$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + > +} + +// InterfaceChildA +// -------------------------------------------------------------------------------------------------- +// + +export interface InterfaceChildA< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + a?: InterfaceChildA.a<_$Scalars> + b?: InterfaceChildA.b<_$Scalars> + c1?: InterfaceChildA.c1<_$Scalars> + ___on_ObjectChildA?: ObjectChildA<_$Scalars> /** * Inline fragments for field groups. @@ -3299,72 +4260,104 @@ export interface Result< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | Result$FragmentInline<_$Scalars> - | Result$FragmentInline<_$Scalars>[] -} -export interface Result$FragmentInline< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends Result<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { -} + | InterfaceChildA$FragmentInline<_$Scalars> + | InterfaceChildA$FragmentInline<_$Scalars>[] -export interface lowerCaseUnion< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> { /** - * A meta field. Is the name of the type being selected. Since this is a union type and thus polymorphic, - * the name is one of the member type names, whichever is ultimately returned at runtime. + * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, + * the name is one of the implementor type names, whichever is ultimately returned at runtime. * * @see https://graphql.org/learn/queries/#meta-fields */ __typename?: | $Select.Indicator.NoArgsIndicator$Expanded | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} - ___on_lowerCaseObject?: lowerCaseObject<_$Scalars> - ___on_lowerCaseObject2?: lowerCaseObject2<_$Scalars> +export interface InterfaceChildA$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends InterfaceChildA<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export namespace InterfaceChildA { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + + export interface a$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- /** - * Inline fragments for field groups. - * - * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the - * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. - * - * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + * This is the "expanded" version of the `a` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. */ - ___?: - | lowerCaseUnion$FragmentInline<_$Scalars> - | lowerCaseUnion$FragmentInline<_$Scalars>[] -} -export interface lowerCaseUnion$FragmentInline< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends lowerCaseUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { -} + export type a$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + > -// -// -// -// -// -// -// ================================================================================================== -// Interface -// ================================================================================================== -// -// -// -// -// -// + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> -// DateInterface1 + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `b` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + export type c1<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | c1$SelectionSet<_$Scalars> + + export interface c1$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `c1` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type c1$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | c1$SelectionSet<_$Scalars> + > +} + +// InterfaceChildB // -------------------------------------------------------------------------------------------------- // -export interface DateInterface1< +export interface InterfaceChildB< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { - date1?: DateInterface1.date1<_$Scalars> - ___on_DateObject1?: DateObject1<_$Scalars> + a?: InterfaceChildB.a<_$Scalars> + b?: InterfaceChildB.b<_$Scalars> + c2?: InterfaceChildB.c2<_$Scalars> + ___on_ObjectChildB?: ObjectChildB<_$Scalars> /** * Inline fragments for field groups. @@ -3375,8 +4368,8 @@ export interface DateInterface1< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | DateInterface1$FragmentInline<_$Scalars> - | DateInterface1$FragmentInline<_$Scalars>[] + | InterfaceChildB$FragmentInline<_$Scalars> + | InterfaceChildB$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, @@ -3389,45 +4382,94 @@ export interface DateInterface1< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface DateInterface1$FragmentInline< +export interface InterfaceChildB$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends DateInterface1<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends InterfaceChildB<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } -export namespace DateInterface1 { - export type date1<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace InterfaceChildB { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | date1$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface date1$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `date1` type. It is identical except for the fact + * This is the "expanded" version of the `a` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type date1$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | date1$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> + > + + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `b` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + export type c2<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | c2$SelectionSet<_$Scalars> + + export interface c2$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `c2` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type c2$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | c2$SelectionSet<_$Scalars> > } -// Error +// InterfaceGrandparent // -------------------------------------------------------------------------------------------------- // -export interface Error<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> - extends $Select.Bases.ObjectLike -{ - message?: Error.message<_$Scalars> - ___on_ErrorOne?: ErrorOne<_$Scalars> - ___on_ErrorTwo?: ErrorTwo<_$Scalars> +export interface InterfaceGrandparent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + a?: InterfaceGrandparent.a<_$Scalars> + ___on_ObjectChildA?: ObjectChildA<_$Scalars> + ___on_ObjectChildB?: ObjectChildB<_$Scalars> + ___on_ObjectGrandparent?: ObjectGrandparent<_$Scalars> + ___on_ObjectParent?: ObjectParent<_$Scalars> + ___on_InterfaceChildA?: InterfaceChildA<_$Scalars> + ___on_InterfaceChildB?: InterfaceChildB<_$Scalars> + ___on_InterfaceParent?: InterfaceParent<_$Scalars> /** * Inline fragments for field groups. @@ -3438,8 +4480,8 @@ export interface Error<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | Error$FragmentInline<_$Scalars> - | Error$FragmentInline<_$Scalars>[] + | InterfaceGrandparent$FragmentInline<_$Scalars> + | InterfaceGrandparent$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, @@ -3452,45 +4494,49 @@ export interface Error<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface Error$FragmentInline< +export interface InterfaceGrandparent$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends Error<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends InterfaceGrandparent<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } -export namespace Error { - export type message<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace InterfaceGrandparent { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | message$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface message$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `message` type. It is identical except for the fact + * This is the "expanded" version of the `a` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type message$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | message$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> > } -// Interface +// InterfaceParent // -------------------------------------------------------------------------------------------------- // -export interface Interface< +export interface InterfaceParent< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { - id?: Interface.id<_$Scalars> - ___on_Object1ImplementingInterface?: Object1ImplementingInterface<_$Scalars> - ___on_Object2ImplementingInterface?: Object2ImplementingInterface<_$Scalars> + a?: InterfaceParent.a<_$Scalars> + b?: InterfaceParent.b<_$Scalars> + ___on_ObjectChildA?: ObjectChildA<_$Scalars> + ___on_ObjectChildB?: ObjectChildB<_$Scalars> + ___on_ObjectParent?: ObjectParent<_$Scalars> + ___on_InterfaceChildA?: InterfaceChildA<_$Scalars> + ___on_InterfaceChildB?: InterfaceChildB<_$Scalars> /** * Inline fragments for field groups. @@ -3501,8 +4547,8 @@ export interface Interface< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | Interface$FragmentInline<_$Scalars> - | Interface$FragmentInline<_$Scalars>[] + | InterfaceParent$FragmentInline<_$Scalars> + | InterfaceParent$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, @@ -3515,32 +4561,54 @@ export interface Interface< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface Interface$FragmentInline< +export interface InterfaceParent$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends Interface<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends InterfaceParent<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } -export namespace Interface { - export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace InterfaceParent { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface id$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `id` type. It is identical except for the fact + * This is the "expanded" version of the `a` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type id$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> + > + + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `b` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> > } @@ -3559,6 +4627,10 @@ export namespace $NamedTypes { > = Mutation<_$Scalars> export type $ABCEnum = ABCEnum export type $Case = Case + export type $ChildAInterfaceHierarchyMember = ChildAInterfaceHierarchyMember + export type $ChildBInterfaceHierarchyMember = ChildBInterfaceHierarchyMember + export type $GrandparentInterfaceHierarchyMember = GrandparentInterfaceHierarchyMember + export type $ParentInterfaceHierarchyMember = ParentInterfaceHierarchyMember export type $InputObject< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = InputObject<_$Scalars> @@ -3596,9 +4668,21 @@ export namespace $NamedTypes { export type $Object2ImplementingInterface< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = Object2ImplementingInterface<_$Scalars> + export type $ObjectChildA< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = ObjectChildA<_$Scalars> + export type $ObjectChildB< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = ObjectChildB<_$Scalars> + export type $ObjectGrandparent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = ObjectGrandparent<_$Scalars> export type $ObjectNested< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = ObjectNested<_$Scalars> + export type $ObjectParent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = ObjectParent<_$Scalars> export type $ObjectUnion< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = ObjectUnion<_$Scalars> @@ -3627,4 +4711,16 @@ export namespace $NamedTypes { export type $Interface< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = Interface<_$Scalars> + export type $InterfaceChildA< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = InterfaceChildA<_$Scalars> + export type $InterfaceChildB< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = InterfaceChildB<_$Scalars> + export type $InterfaceGrandparent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = InterfaceGrandparent<_$Scalars> + export type $InterfaceParent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = InterfaceParent<_$Scalars> } diff --git a/src/generator/generator/__snapshots__/generate.test.ts.snap b/src/generator/generator/__snapshots__/generate.test.ts.snap index c4834e95a..8cf9c53ad 100644 --- a/src/generator/generator/__snapshots__/generate.test.ts.snap +++ b/src/generator/generator/__snapshots__/generate.test.ts.snap @@ -435,6 +435,59 @@ export interface QueryMethods<$Context extends $$Utilities.Context> { > > + interfaceHierarchyChildA: <$SelectionSet>( + selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Query.interfaceHierarchyChildA<$Context['scalars']>>, + ) => Promise< + & (null | {}) + & $$Utilities.HandleOutputGraffleRootField< + $Context, + InferResult.OperationQuery<{ interfaceHierarchyChildA: $SelectionSet }, $$Schema.Schema<$Context['scalars']>>, + 'interfaceHierarchyChildA' + > + > + + interfaceHierarchyChildB: <$SelectionSet>( + selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Query.interfaceHierarchyChildB<$Context['scalars']>>, + ) => Promise< + & (null | {}) + & $$Utilities.HandleOutputGraffleRootField< + $Context, + InferResult.OperationQuery<{ interfaceHierarchyChildB: $SelectionSet }, $$Schema.Schema<$Context['scalars']>>, + 'interfaceHierarchyChildB' + > + > + + interfaceHierarchyGrandparents: <$SelectionSet>( + selectionSet: $$Utilities.Exact< + $SelectionSet, + $$SelectionSets.Query.interfaceHierarchyGrandparents<$Context['scalars']> + >, + ) => Promise< + & (null | {}) + & $$Utilities.HandleOutputGraffleRootField< + $Context, + InferResult.OperationQuery< + { interfaceHierarchyGrandparents: $SelectionSet }, + $$Schema.Schema<$Context['scalars']> + >, + 'interfaceHierarchyGrandparents' + > + > + + interfaceHierarchyParents: <$SelectionSet>( + selectionSet: $$Utilities.Exact< + $SelectionSet, + $$SelectionSets.Query.interfaceHierarchyParents<$Context['scalars']> + >, + ) => Promise< + & (null | {}) + & $$Utilities.HandleOutputGraffleRootField< + $Context, + InferResult.OperationQuery<{ interfaceHierarchyParents: $SelectionSet }, $$Schema.Schema<$Context['scalars']>>, + 'interfaceHierarchyParents' + > + > + interfaceNonNull: <$SelectionSet>( selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Query.interfaceNonNull<$Context['scalars']>>, ) => Promise< @@ -847,7 +900,11 @@ export interface $MethodsSelect { Object1: Object1 Object1ImplementingInterface: Object1ImplementingInterface Object2ImplementingInterface: Object2ImplementingInterface + ObjectChildA: ObjectChildA + ObjectChildB: ObjectChildB + ObjectGrandparent: ObjectGrandparent ObjectNested: ObjectNested + ObjectParent: ObjectParent ObjectUnion: ObjectUnion lowerCaseObject: lowerCaseObject lowerCaseObject2: lowerCaseObject2 @@ -858,6 +915,10 @@ export interface $MethodsSelect { DateInterface1: DateInterface1 Error: Error Interface: Interface + InterfaceChildA: InterfaceChildA + InterfaceChildB: InterfaceChildB + InterfaceGrandparent: InterfaceGrandparent + InterfaceParent: InterfaceParent } // @@ -940,10 +1001,26 @@ export interface Object2ImplementingInterface { ): $SelectionSet } +export interface ObjectChildA { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectChildA>): $SelectionSet +} + +export interface ObjectChildB { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectChildB>): $SelectionSet +} + +export interface ObjectGrandparent { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectGrandparent>): $SelectionSet +} + export interface ObjectNested { <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectNested>): $SelectionSet } +export interface ObjectParent { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectParent>): $SelectionSet +} + export interface ObjectUnion { <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectUnion>): $SelectionSet } @@ -1015,6 +1092,22 @@ export interface Error { export interface Interface { <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Interface>): $SelectionSet } + +export interface InterfaceChildA { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.InterfaceChildA>): $SelectionSet +} + +export interface InterfaceChildB { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.InterfaceChildB>): $SelectionSet +} + +export interface InterfaceGrandparent { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.InterfaceGrandparent>): $SelectionSet +} + +export interface InterfaceParent { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.InterfaceParent>): $SelectionSet +} " `; @@ -1114,6 +1207,10 @@ export namespace Schema { id: Query.id idNonNull: Query.idNonNull interface: Query.$interface + interfaceHierarchyChildA: Query.interfaceHierarchyChildA + interfaceHierarchyChildB: Query.interfaceHierarchyChildB + interfaceHierarchyGrandparents: Query.interfaceHierarchyGrandparents + interfaceHierarchyParents: Query.interfaceHierarchyParents interfaceNonNull: Query.interfaceNonNull interfaceWithArgs: Query.interfaceWithArgs listInt: Query.listInt @@ -1383,6 +1480,62 @@ export namespace Schema { namedType: $$NamedTypes.$$Interface } + export interface interfaceHierarchyChildA extends $.OutputField { + name: 'interfaceHierarchyChildA' + arguments: { + type: { + kind: 'InputField' + name: 'type' + inlineType: [0] + namedType: $$NamedTypes.$$ChildAInterfaceHierarchyMember + } + } + inlineType: [1, [1]] + namedType: $$NamedTypes.$$InterfaceChildA + } + + export interface interfaceHierarchyChildB extends $.OutputField { + name: 'interfaceHierarchyChildB' + arguments: { + type: { + kind: 'InputField' + name: 'type' + inlineType: [0] + namedType: $$NamedTypes.$$ChildBInterfaceHierarchyMember + } + } + inlineType: [1, [1]] + namedType: $$NamedTypes.$$InterfaceChildB + } + + export interface interfaceHierarchyGrandparents extends $.OutputField { + name: 'interfaceHierarchyGrandparents' + arguments: { + type: { + kind: 'InputField' + name: 'type' + inlineType: [0] + namedType: $$NamedTypes.$$GrandparentInterfaceHierarchyMember + } + } + inlineType: [1, [1]] + namedType: $$NamedTypes.$$InterfaceGrandparent + } + + export interface interfaceHierarchyParents extends $.OutputField { + name: 'interfaceHierarchyParents' + arguments: { + type: { + kind: 'InputField' + name: 'type' + inlineType: [0] + namedType: $$NamedTypes.$$ParentInterfaceHierarchyMember + } + } + inlineType: [1, [1]] + namedType: $$NamedTypes.$$InterfaceParent + } + export interface interfaceNonNull extends $.OutputField { name: 'interfaceNonNull' arguments: {} @@ -2135,6 +2288,155 @@ export namespace Schema { } } + // ObjectChildA + // -------------------------------------------------------------------------------------------------- + // + + export interface ObjectChildA extends $.OutputObject { + name: 'ObjectChildA' + fields: { + __typename: ObjectChildA.__typename + a: ObjectChildA.a + b: ObjectChildA.b + c1: ObjectChildA.c1 + me: ObjectChildA.me + } + } + + export namespace ObjectChildA { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'ObjectChildA' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface c1 extends $.OutputField { + name: 'c1' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface me extends $.OutputField { + name: 'me' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$Boolean + } + } + + // ObjectChildB + // -------------------------------------------------------------------------------------------------- + // + + export interface ObjectChildB extends $.OutputObject { + name: 'ObjectChildB' + fields: { + __typename: ObjectChildB.__typename + a: ObjectChildB.a + b: ObjectChildB.b + c2: ObjectChildB.c2 + me: ObjectChildB.me + } + } + + export namespace ObjectChildB { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'ObjectChildB' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface c2 extends $.OutputField { + name: 'c2' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface me extends $.OutputField { + name: 'me' + arguments: {} + inlineType: [1, [1]] + namedType: $$NamedTypes.$$Int + } + } + + // ObjectGrandparent + // -------------------------------------------------------------------------------------------------- + // + + export interface ObjectGrandparent extends $.OutputObject { + name: 'ObjectGrandparent' + fields: { + __typename: ObjectGrandparent.__typename + a: ObjectGrandparent.a + me: ObjectGrandparent.me + } + } + + export namespace ObjectGrandparent { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'ObjectGrandparent' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface me extends $.OutputField { + name: 'me' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$Int + } + } + // ObjectNested // -------------------------------------------------------------------------------------------------- // @@ -2174,6 +2476,53 @@ export namespace Schema { } } + // ObjectParent + // -------------------------------------------------------------------------------------------------- + // + + export interface ObjectParent extends $.OutputObject { + name: 'ObjectParent' + fields: { + __typename: ObjectParent.__typename + a: ObjectParent.a + b: ObjectParent.b + me: ObjectParent.me + } + } + + export namespace ObjectParent { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'ObjectParent' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface me extends $.OutputField { + name: 'me' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + // ObjectUnion // -------------------------------------------------------------------------------------------------- // @@ -2412,6 +2761,9 @@ export namespace Schema { // export interface DateInterface1 extends $.Interface { + fields: { + date1: DateInterface1.date1 + } name: 'DateInterface1' implementors: [DateObject1] implementorsUnion: DateObject1 @@ -2420,11 +2772,33 @@ export namespace Schema { } } + export namespace DateInterface1 { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'DateInterface1' + } + } + + export interface date1 extends $.OutputField { + name: 'date1' + arguments: {} + inlineType: [0] + namedType: $$NamedTypes.$$Date + } + } + // Error // -------------------------------------------------------------------------------------------------- // export interface Error extends $.Interface { + fields: { + message: Error.message + } name: 'Error' implementors: [ErrorOne, ErrorTwo] implementorsUnion: @@ -2436,11 +2810,33 @@ export namespace Schema { } } + export namespace Error { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'Error' + } + } + + export interface message extends $.OutputField { + name: 'message' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + // Interface // -------------------------------------------------------------------------------------------------- // export interface Interface extends $.Interface { + fields: { + id: Interface.id + } name: 'Interface' implementors: [Object1ImplementingInterface, Object2ImplementingInterface] implementorsUnion: @@ -2452,6 +2848,235 @@ export namespace Schema { } } + export namespace Interface { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'Interface' + } + } + + export interface id extends $.OutputField { + name: 'id' + arguments: {} + inlineType: [0] + namedType: $$NamedTypes.$$ID + } + } + + // InterfaceChildA + // -------------------------------------------------------------------------------------------------- + // + + export interface InterfaceChildA extends $.Interface { + fields: { + a: InterfaceChildA.a + b: InterfaceChildA.b + c1: InterfaceChildA.c1 + } + name: 'InterfaceChildA' + implementors: [ObjectChildA] + implementorsUnion: ObjectChildA + implementorsIndex: { + ObjectChildA: ObjectChildA + } + } + + export namespace InterfaceChildA { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'InterfaceChildA' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface c1 extends $.OutputField { + name: 'c1' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + + // InterfaceChildB + // -------------------------------------------------------------------------------------------------- + // + + export interface InterfaceChildB extends $.Interface { + fields: { + a: InterfaceChildB.a + b: InterfaceChildB.b + c2: InterfaceChildB.c2 + } + name: 'InterfaceChildB' + implementors: [ObjectChildB] + implementorsUnion: ObjectChildB + implementorsIndex: { + ObjectChildB: ObjectChildB + } + } + + export namespace InterfaceChildB { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'InterfaceChildB' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface c2 extends $.OutputField { + name: 'c2' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + + // InterfaceGrandparent + // -------------------------------------------------------------------------------------------------- + // + + export interface InterfaceGrandparent extends $.Interface { + fields: { + a: InterfaceGrandparent.a + } + name: 'InterfaceGrandparent' + implementors: [ + ObjectChildA, + ObjectChildB, + ObjectGrandparent, + ObjectParent, + InterfaceChildA, + InterfaceChildB, + InterfaceParent, + ] + implementorsUnion: + | ObjectChildA + | ObjectChildB + | ObjectGrandparent + | ObjectParent + | InterfaceChildA + | InterfaceChildB + | InterfaceParent + implementorsIndex: { + ObjectChildA: ObjectChildA + ObjectChildB: ObjectChildB + ObjectGrandparent: ObjectGrandparent + ObjectParent: ObjectParent + InterfaceChildA: InterfaceChildA + InterfaceChildB: InterfaceChildB + InterfaceParent: InterfaceParent + } + } + + export namespace InterfaceGrandparent { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'InterfaceGrandparent' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + + // InterfaceParent + // -------------------------------------------------------------------------------------------------- + // + + export interface InterfaceParent extends $.Interface { + fields: { + a: InterfaceParent.a + b: InterfaceParent.b + } + name: 'InterfaceParent' + implementors: [ObjectChildA, ObjectChildB, ObjectParent, InterfaceChildA, InterfaceChildB] + implementorsUnion: + | ObjectChildA + | ObjectChildB + | ObjectParent + | InterfaceChildA + | InterfaceChildB + implementorsIndex: { + ObjectChildA: ObjectChildA + ObjectChildB: ObjectChildB + ObjectParent: ObjectParent + InterfaceChildA: InterfaceChildA + InterfaceChildB: InterfaceChildB + } + } + + export namespace InterfaceParent { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'InterfaceParent' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + // // // @@ -2587,6 +3212,53 @@ export namespace Schema { | 'Object1' } + // ChildAInterfaceHierarchyMember + // -------------------------------------------------------------------------------------------------- + // + + export interface ChildAInterfaceHierarchyMember extends $.Enum { + name: 'ChildAInterfaceHierarchyMember' + members: ['InterfaceChildA'] + membersUnion: 'InterfaceChildA' + } + + // ChildBInterfaceHierarchyMember + // -------------------------------------------------------------------------------------------------- + // + + export interface ChildBInterfaceHierarchyMember extends $.Enum { + name: 'ChildBInterfaceHierarchyMember' + members: ['InterfaceChildB'] + membersUnion: 'InterfaceChildB' + } + + // GrandparentInterfaceHierarchyMember + // -------------------------------------------------------------------------------------------------- + // + + export interface GrandparentInterfaceHierarchyMember extends $.Enum { + name: 'GrandparentInterfaceHierarchyMember' + members: ['InterfaceChildA', 'InterfaceChildB', 'InterfaceGrandparent', 'InterfaceParent'] + membersUnion: + | 'InterfaceChildA' + | 'InterfaceChildB' + | 'InterfaceGrandparent' + | 'InterfaceParent' + } + + // ParentInterfaceHierarchyMember + // -------------------------------------------------------------------------------------------------- + // + + export interface ParentInterfaceHierarchyMember extends $.Enum { + name: 'ParentInterfaceHierarchyMember' + members: ['InterfaceChildA', 'InterfaceChildB', 'InterfaceParent'] + membersUnion: + | 'InterfaceChildA' + | 'InterfaceChildB' + | 'InterfaceParent' + } + // // // @@ -2691,7 +3363,11 @@ export namespace Schema { export type $$Object1 = Object1 export type $$Object1ImplementingInterface = Object1ImplementingInterface export type $$Object2ImplementingInterface = Object2ImplementingInterface + export type $$ObjectChildA = ObjectChildA + export type $$ObjectChildB = ObjectChildB + export type $$ObjectGrandparent = ObjectGrandparent export type $$ObjectNested = ObjectNested + export type $$ObjectParent = ObjectParent export type $$ObjectUnion = ObjectUnion export type $$lowerCaseObject = lowerCaseObject export type $$lowerCaseObject2 = lowerCaseObject2 @@ -2702,12 +3378,20 @@ export namespace Schema { export type $$DateInterface1 = DateInterface1 export type $$Error = Error export type $$Interface = Interface + export type $$InterfaceChildA = InterfaceChildA + export type $$InterfaceChildB = InterfaceChildB + export type $$InterfaceGrandparent = InterfaceGrandparent + export type $$InterfaceParent = InterfaceParent export type $$DateUnion = DateUnion export type $$FooBarUnion = FooBarUnion export type $$Result = Result export type $$lowerCaseUnion = lowerCaseUnion export type $$ABCEnum = ABCEnum export type $$Case = Case + export type $$ChildAInterfaceHierarchyMember = ChildAInterfaceHierarchyMember + export type $$ChildBInterfaceHierarchyMember = ChildBInterfaceHierarchyMember + export type $$GrandparentInterfaceHierarchyMember = GrandparentInterfaceHierarchyMember + export type $$ParentInterfaceHierarchyMember = ParentInterfaceHierarchyMember export type $$Date = Date export type $$Boolean = Boolean export type $$Float = Float @@ -2749,6 +3433,10 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ Mutation: Schema.Mutation ABCEnum: Schema.ABCEnum Case: Schema.Case + ChildAInterfaceHierarchyMember: Schema.ChildAInterfaceHierarchyMember + ChildBInterfaceHierarchyMember: Schema.ChildBInterfaceHierarchyMember + GrandparentInterfaceHierarchyMember: Schema.GrandparentInterfaceHierarchyMember + ParentInterfaceHierarchyMember: Schema.ParentInterfaceHierarchyMember Bar: Schema.Bar DateObject1: Schema.DateObject1 DateObject2: Schema.DateObject2 @@ -2758,7 +3446,11 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ Object1: Schema.Object1 Object1ImplementingInterface: Schema.Object1ImplementingInterface Object2ImplementingInterface: Schema.Object2ImplementingInterface + ObjectChildA: Schema.ObjectChildA + ObjectChildB: Schema.ObjectChildB + ObjectGrandparent: Schema.ObjectGrandparent ObjectNested: Schema.ObjectNested + ObjectParent: Schema.ObjectParent ObjectUnion: Schema.ObjectUnion lowerCaseObject: Schema.lowerCaseObject lowerCaseObject2: Schema.lowerCaseObject2 @@ -2769,6 +3461,10 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ DateInterface1: Schema.DateInterface1 Error: Schema.Error Interface: Schema.Interface + InterfaceChildA: Schema.InterfaceChildA + InterfaceChildB: Schema.InterfaceChildB + InterfaceGrandparent: Schema.InterfaceGrandparent + InterfaceParent: Schema.InterfaceParent } objects: { Bar: Schema.Bar @@ -2780,7 +3476,11 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ Object1: Schema.Object1 Object1ImplementingInterface: Schema.Object1ImplementingInterface Object2ImplementingInterface: Schema.Object2ImplementingInterface + ObjectChildA: Schema.ObjectChildA + ObjectChildB: Schema.ObjectChildB + ObjectGrandparent: Schema.ObjectGrandparent ObjectNested: Schema.ObjectNested + ObjectParent: Schema.ObjectParent ObjectUnion: Schema.ObjectUnion lowerCaseObject: Schema.lowerCaseObject lowerCaseObject2: Schema.lowerCaseObject2 @@ -2795,6 +3495,10 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ DateInterface1: Schema.DateInterface1 Error: Schema.Error Interface: Schema.Interface + InterfaceChildA: Schema.InterfaceChildA + InterfaceChildB: Schema.InterfaceChildB + InterfaceGrandparent: Schema.InterfaceGrandparent + InterfaceParent: Schema.InterfaceParent } scalarNamesUnion: | 'Date' @@ -2890,6 +3594,26 @@ const Case: $$Utilities.SchemaDrivenDataMap.Enum = { n: 'Case', } +const ChildAInterfaceHierarchyMember: $$Utilities.SchemaDrivenDataMap.Enum = { + k: 'enum', + n: 'ChildAInterfaceHierarchyMember', +} + +const ChildBInterfaceHierarchyMember: $$Utilities.SchemaDrivenDataMap.Enum = { + k: 'enum', + n: 'ChildBInterfaceHierarchyMember', +} + +const GrandparentInterfaceHierarchyMember: $$Utilities.SchemaDrivenDataMap.Enum = { + k: 'enum', + n: 'GrandparentInterfaceHierarchyMember', +} + +const ParentInterfaceHierarchyMember: $$Utilities.SchemaDrivenDataMap.Enum = { + k: 'enum', + n: 'ParentInterfaceHierarchyMember', +} + // // // @@ -3037,6 +3761,31 @@ const Object2ImplementingInterface: $$Utilities.SchemaDrivenDataMap.OutputObject }, } +const ObjectChildA: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: { + a: {}, + b: {}, + c1: {}, + me: {}, + }, +} + +const ObjectChildB: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: { + a: {}, + b: {}, + c2: {}, + me: {}, + }, +} + +const ObjectGrandparent: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: { + a: {}, + me: {}, + }, +} + const ObjectNested: $$Utilities.SchemaDrivenDataMap.OutputObject = { f: { id: {}, @@ -3046,6 +3795,14 @@ const ObjectNested: $$Utilities.SchemaDrivenDataMap.OutputObject = { }, } +const ObjectParent: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: { + a: {}, + b: {}, + me: {}, + }, +} + const ObjectUnion: $$Utilities.SchemaDrivenDataMap.OutputObject = { f: { fooBarUnion: { @@ -3096,6 +3853,22 @@ const Interface: $$Utilities.SchemaDrivenDataMap.OutputObject = { f: {}, } +const InterfaceChildA: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: {}, +} + +const InterfaceChildB: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: {}, +} + +const InterfaceGrandparent: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: {}, +} + +const InterfaceParent: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: {}, +} + // // // @@ -3265,6 +4038,42 @@ const Query: $$Utilities.SchemaDrivenDataMap.OutputObject = { interface: { // nt: Interface, <-- Assigned later to avoid potential circular dependency. }, + interfaceHierarchyChildA: { + a: { + type: { + nt: ChildAInterfaceHierarchyMember, + it: [0], + }, + }, + // nt: InterfaceChildA, <-- Assigned later to avoid potential circular dependency. + }, + interfaceHierarchyChildB: { + a: { + type: { + nt: ChildBInterfaceHierarchyMember, + it: [0], + }, + }, + // nt: InterfaceChildB, <-- Assigned later to avoid potential circular dependency. + }, + interfaceHierarchyGrandparents: { + a: { + type: { + nt: GrandparentInterfaceHierarchyMember, + it: [0], + }, + }, + // nt: InterfaceGrandparent, <-- Assigned later to avoid potential circular dependency. + }, + interfaceHierarchyParents: { + a: { + type: { + nt: ParentInterfaceHierarchyMember, + it: [0], + }, + }, + // nt: InterfaceParent, <-- Assigned later to avoid potential circular dependency. + }, interfaceNonNull: { // nt: Interface, <-- Assigned later to avoid potential circular dependency. }, @@ -3472,6 +4281,10 @@ Query.f[\`dateInterface1\`]!.nt = DateInterface1 Query.f[\`dateObject1\`]!.nt = DateObject1 Query.f[\`dateUnion\`]!.nt = DateUnion Query.f[\`interface\`]!.nt = Interface +Query.f[\`interfaceHierarchyChildA\`]!.nt = InterfaceChildA +Query.f[\`interfaceHierarchyChildB\`]!.nt = InterfaceChildB +Query.f[\`interfaceHierarchyGrandparents\`]!.nt = InterfaceGrandparent +Query.f[\`interfaceHierarchyParents\`]!.nt = InterfaceParent Query.f[\`interfaceNonNull\`]!.nt = Interface Query.f[\`interfaceWithArgs\`]!.nt = Interface Query.f[\`lowerCaseUnion\`]!.nt = lowerCaseUnion @@ -3520,6 +4333,10 @@ const $schemaDrivenDataMap: $$Utilities.SchemaDrivenDataMap = { Date, ABCEnum, Case, + ChildAInterfaceHierarchyMember, + ChildBInterfaceHierarchyMember, + GrandparentInterfaceHierarchyMember, + ParentInterfaceHierarchyMember, InputObject, InputObjectCircular, InputObjectNested, @@ -3533,13 +4350,21 @@ const $schemaDrivenDataMap: $$Utilities.SchemaDrivenDataMap = { Object1, Object1ImplementingInterface, Object2ImplementingInterface, + ObjectChildA, + ObjectChildB, + ObjectGrandparent, ObjectNested, + ObjectParent, ObjectUnion, lowerCaseObject, lowerCaseObject2, DateInterface1, Error, Interface, + InterfaceChildA, + InterfaceChildB, + InterfaceGrandparent, + InterfaceParent, DateUnion, FooBarUnion, Result, @@ -3611,69 +4436,89 @@ export namespace Select { // OutputObject // -------------------------------------------------------------------------------------------------- // - export type Bar<$SelectionSet extends $$SelectionSets.Bar> = InferResult.OutputObject< + export type Bar<$SelectionSet extends $$SelectionSets.Bar> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Bar'] > - export type DateObject1<$SelectionSet extends $$SelectionSets.DateObject1> = InferResult.OutputObject< + export type DateObject1<$SelectionSet extends $$SelectionSets.DateObject1> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['DateObject1'] > - export type DateObject2<$SelectionSet extends $$SelectionSets.DateObject2> = InferResult.OutputObject< + export type DateObject2<$SelectionSet extends $$SelectionSets.DateObject2> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['DateObject2'] > - export type ErrorOne<$SelectionSet extends $$SelectionSets.ErrorOne> = InferResult.OutputObject< + export type ErrorOne<$SelectionSet extends $$SelectionSets.ErrorOne> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['ErrorOne'] > - export type ErrorTwo<$SelectionSet extends $$SelectionSets.ErrorTwo> = InferResult.OutputObject< + export type ErrorTwo<$SelectionSet extends $$SelectionSets.ErrorTwo> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['ErrorTwo'] > - export type Foo<$SelectionSet extends $$SelectionSets.Foo> = InferResult.OutputObject< + export type Foo<$SelectionSet extends $$SelectionSets.Foo> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Foo'] > - export type Object1<$SelectionSet extends $$SelectionSets.Object1> = InferResult.OutputObject< + export type Object1<$SelectionSet extends $$SelectionSets.Object1> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Object1'] > export type Object1ImplementingInterface<$SelectionSet extends $$SelectionSets.Object1ImplementingInterface> = - InferResult.OutputObject< + InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Object1ImplementingInterface'] > export type Object2ImplementingInterface<$SelectionSet extends $$SelectionSets.Object2ImplementingInterface> = - InferResult.OutputObject< + InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Object2ImplementingInterface'] > - export type ObjectNested<$SelectionSet extends $$SelectionSets.ObjectNested> = InferResult.OutputObject< + export type ObjectChildA<$SelectionSet extends $$SelectionSets.ObjectChildA> = InferResult.OutputObjectLike< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['ObjectChildA'] + > + export type ObjectChildB<$SelectionSet extends $$SelectionSets.ObjectChildB> = InferResult.OutputObjectLike< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['ObjectChildB'] + > + export type ObjectGrandparent<$SelectionSet extends $$SelectionSets.ObjectGrandparent> = InferResult.OutputObjectLike< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['ObjectGrandparent'] + > + export type ObjectNested<$SelectionSet extends $$SelectionSets.ObjectNested> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['ObjectNested'] > - export type ObjectUnion<$SelectionSet extends $$SelectionSets.ObjectUnion> = InferResult.OutputObject< + export type ObjectParent<$SelectionSet extends $$SelectionSets.ObjectParent> = InferResult.OutputObjectLike< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['ObjectParent'] + > + export type ObjectUnion<$SelectionSet extends $$SelectionSets.ObjectUnion> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['ObjectUnion'] > - export type lowerCaseObject<$SelectionSet extends $$SelectionSets.lowerCaseObject> = InferResult.OutputObject< + export type lowerCaseObject<$SelectionSet extends $$SelectionSets.lowerCaseObject> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['lowerCaseObject'] > - export type lowerCaseObject2<$SelectionSet extends $$SelectionSets.lowerCaseObject2> = InferResult.OutputObject< + export type lowerCaseObject2<$SelectionSet extends $$SelectionSets.lowerCaseObject2> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['lowerCaseObject2'] @@ -3719,6 +4564,26 @@ export namespace Select { $$Schema.Schema, $$Schema.Schema['allTypes']['Interface'] > + export type InterfaceChildA<$SelectionSet extends $$SelectionSets.InterfaceChildA> = InferResult.Interface< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['InterfaceChildA'] + > + export type InterfaceChildB<$SelectionSet extends $$SelectionSets.InterfaceChildB> = InferResult.Interface< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['InterfaceChildB'] + > + export type InterfaceGrandparent<$SelectionSet extends $$SelectionSets.InterfaceGrandparent> = InferResult.Interface< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['InterfaceGrandparent'] + > + export type InterfaceParent<$SelectionSet extends $$SelectionSets.InterfaceParent> = InferResult.Interface< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['InterfaceParent'] + > } " `; @@ -3879,6 +4744,30 @@ export interface Query< * Select the \`interface\` field on the \`Query\` object. Its type is \`Interface\` (a \`Interface\` kind of type). */ interface?: Query.$interface$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the \`interfaceHierarchyChildA\` field on the \`Query\` object. Its type is \`InterfaceChildA\` (a \`Interface\` kind of type). + */ + interfaceHierarchyChildA?: + | Query.interfaceHierarchyChildA$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> + /** + * Select the \`interfaceHierarchyChildB\` field on the \`Query\` object. Its type is \`InterfaceChildB\` (a \`Interface\` kind of type). + */ + interfaceHierarchyChildB?: + | Query.interfaceHierarchyChildB$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> + /** + * Select the \`interfaceHierarchyGrandparents\` field on the \`Query\` object. Its type is \`InterfaceGrandparent\` (a \`Interface\` kind of type). + */ + interfaceHierarchyGrandparents?: + | Query.interfaceHierarchyGrandparents$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> + /** + * Select the \`interfaceHierarchyParents\` field on the \`Query\` object. Its type is \`InterfaceParent\` (a \`Interface\` kind of type). + */ + interfaceHierarchyParents?: + | Query.interfaceHierarchyParents$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> /** * Select the \`interfaceNonNull\` field on the \`Query\` object. Its type is \`Interface\` (a \`Interface\` kind of type). */ @@ -4736,6 +5625,142 @@ export namespace Query { // -------------------------------------------------------------------------------------------------- + export type interfaceHierarchyChildA< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = interfaceHierarchyChildA$SelectionSet<_$Scalars> + + export interface interfaceHierarchyChildA$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$InterfaceChildA<_$Scalars> { + /** + * Arguments for \`interfaceHierarchyChildA\` field. No arguments are required so you may omit this. + */ + $?: interfaceHierarchyChildA$Arguments<_$Scalars> + } + + export interface interfaceHierarchyChildA$Arguments< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > { + $type?: $NamedTypes.$ChildAInterfaceHierarchyMember | undefined | null + } + + // --- expanded --- + + /** + * This is the "expanded" version of the \`interfaceHierarchyChildA\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type interfaceHierarchyChildA$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + interfaceHierarchyChildA$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type interfaceHierarchyChildB< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = interfaceHierarchyChildB$SelectionSet<_$Scalars> + + export interface interfaceHierarchyChildB$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$InterfaceChildB<_$Scalars> { + /** + * Arguments for \`interfaceHierarchyChildB\` field. No arguments are required so you may omit this. + */ + $?: interfaceHierarchyChildB$Arguments<_$Scalars> + } + + export interface interfaceHierarchyChildB$Arguments< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > { + $type?: $NamedTypes.$ChildBInterfaceHierarchyMember | undefined | null + } + + // --- expanded --- + + /** + * This is the "expanded" version of the \`interfaceHierarchyChildB\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type interfaceHierarchyChildB$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + interfaceHierarchyChildB$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type interfaceHierarchyGrandparents< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = interfaceHierarchyGrandparents$SelectionSet<_$Scalars> + + export interface interfaceHierarchyGrandparents$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$InterfaceGrandparent<_$Scalars> { + /** + * Arguments for \`interfaceHierarchyGrandparents\` field. No arguments are required so you may omit this. + */ + $?: interfaceHierarchyGrandparents$Arguments<_$Scalars> + } + + export interface interfaceHierarchyGrandparents$Arguments< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > { + $type?: $NamedTypes.$GrandparentInterfaceHierarchyMember | undefined | null + } + + // --- expanded --- + + /** + * This is the "expanded" version of the \`interfaceHierarchyGrandparents\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type interfaceHierarchyGrandparents$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + interfaceHierarchyGrandparents$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type interfaceHierarchyParents< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = interfaceHierarchyParents$SelectionSet<_$Scalars> + + export interface interfaceHierarchyParents$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$InterfaceParent<_$Scalars> { + /** + * Arguments for \`interfaceHierarchyParents\` field. No arguments are required so you may omit this. + */ + $?: interfaceHierarchyParents$Arguments<_$Scalars> + } + + export interface interfaceHierarchyParents$Arguments< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > { + $type?: $NamedTypes.$ParentInterfaceHierarchyMember | undefined | null + } + + // --- expanded --- + + /** + * This is the "expanded" version of the \`interfaceHierarchyParents\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type interfaceHierarchyParents$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + interfaceHierarchyParents$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + export type interfaceNonNull< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = interfaceNonNull$SelectionSet<_$Scalars> @@ -5677,6 +6702,21 @@ export type Case = | 'ErrorTwo' | 'Object1' +export type ChildAInterfaceHierarchyMember = 'InterfaceChildA' + +export type ChildBInterfaceHierarchyMember = 'InterfaceChildB' + +export type GrandparentInterfaceHierarchyMember = + | 'InterfaceChildA' + | 'InterfaceChildB' + | 'InterfaceGrandparent' + | 'InterfaceParent' + +export type ParentInterfaceHierarchyMember = + | 'InterfaceChildA' + | 'InterfaceChildB' + | 'InterfaceParent' + // // // @@ -6619,23 +7659,31 @@ export namespace Object2ImplementingInterface { > } -// ObjectNested +// ObjectChildA // -------------------------------------------------------------------------------------------------- // // ----------------------------------------| Entrypoint Interface | -export interface ObjectNested< +export interface ObjectChildA< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { /** - * Select the \`id\` field on the \`ObjectNested\` object. Its type is \`ID\` (a \`ScalarStandard\` kind of type). + * Select the \`a\` field on the \`ObjectChildA\` object. Its type is \`String\` (a \`ScalarStandard\` kind of type). */ - id?: ObjectNested.id$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + a?: ObjectChildA.a$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> /** - * Select the \`object\` field on the \`ObjectNested\` object. Its type is \`Object1\` (a \`OutputObject\` kind of type). + * Select the \`b\` field on the \`ObjectChildA\` object. Its type is \`String\` (a \`ScalarStandard\` kind of type). */ - object?: ObjectNested.$object$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + b?: ObjectChildA.b$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the \`c1\` field on the \`ObjectChildA\` object. Its type is \`String\` (a \`ScalarStandard\` kind of type). + */ + c1?: ObjectChildA.c1$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the \`me\` field on the \`ObjectChildA\` object. Its type is \`Boolean\` (a \`ScalarStandard\` kind of type). + */ + me?: ObjectChildA.me$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> /** * Inline fragments for field groups. @@ -6646,8 +7694,8 @@ export interface ObjectNested< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | ObjectNested$FragmentInline<_$Scalars> - | ObjectNested$FragmentInline<_$Scalars>[] + | ObjectChildA$FragmentInline<_$Scalars> + | ObjectChildA$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. @@ -6659,74 +7707,134 @@ export interface ObjectNested< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface ObjectNested$FragmentInline< +export interface ObjectChildA$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends ObjectNested<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends ObjectChildA<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } // ----------------------------------------| Fields | -export namespace ObjectNested { - export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace ObjectChildA { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface id$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the \`id\` type. It is identical except for the fact + * This is the "expanded" version of the \`a\` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type id$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> > // -------------------------------------------------------------------------------------------------- - export type $object<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = - $object$SelectionSet<_$Scalars> + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> - export interface $object$SelectionSet< + export interface b$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, - > extends $Select.Bases.Base, $NamedTypes.$Object1<_$Scalars> {} + > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the \`$object\` type. It is identical except for the fact + * This is the "expanded" version of the \`b\` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type $object$Expanded< + export type b$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< - $object$SelectionSet<_$Scalars> + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type c1<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | c1$SelectionSet<_$Scalars> + + export interface c1$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`c1\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type c1$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | c1$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type me<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + + export interface me$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`me\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type me$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> > } -// ObjectUnion +// ObjectChildB // -------------------------------------------------------------------------------------------------- // // ----------------------------------------| Entrypoint Interface | -export interface ObjectUnion< +export interface ObjectChildB< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { /** - * Select the \`fooBarUnion\` field on the \`ObjectUnion\` object. Its type is \`FooBarUnion\` (a \`Union\` kind of type). + * Select the \`a\` field on the \`ObjectChildB\` object. Its type is \`String\` (a \`ScalarStandard\` kind of type). */ - fooBarUnion?: - | ObjectUnion.fooBarUnion$Expanded<_$Scalars> - | $Select.SelectAlias.SelectAlias> + a?: ObjectChildB.a$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the \`b\` field on the \`ObjectChildB\` object. Its type is \`String\` (a \`ScalarStandard\` kind of type). + */ + b?: ObjectChildB.b$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the \`c2\` field on the \`ObjectChildB\` object. Its type is \`String\` (a \`ScalarStandard\` kind of type). + */ + c2?: ObjectChildB.c2$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the \`me\` field on the \`ObjectChildB\` object. Its type is \`Int\` (a \`ScalarStandard\` kind of type). + */ + me?: ObjectChildB.me$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> /** * Inline fragments for field groups. @@ -6737,8 +7845,8 @@ export interface ObjectUnion< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | ObjectUnion$FragmentInline<_$Scalars> - | ObjectUnion$FragmentInline<_$Scalars>[] + | ObjectChildB$FragmentInline<_$Scalars> + | ObjectChildB$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. @@ -6750,49 +7858,126 @@ export interface ObjectUnion< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface ObjectUnion$FragmentInline< +export interface ObjectChildB$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends ObjectUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends ObjectChildB<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } // ----------------------------------------| Fields | -export namespace ObjectUnion { - export type fooBarUnion< +export namespace ObjectChildB { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, - > = fooBarUnion$SelectionSet<_$Scalars> + > extends $Select.Bases.Base {} - export interface fooBarUnion$SelectionSet< + // --- expanded --- + + /** + * This is the "expanded" version of the \`a\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, - > extends $Select.Bases.Base, $NamedTypes.$FooBarUnion<_$Scalars> {} + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the \`fooBarUnion\` type. It is identical except for the fact + * This is the "expanded" version of the \`b\` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type fooBarUnion$Expanded< + export type b$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< - fooBarUnion$SelectionSet<_$Scalars> + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type c2<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | c2$SelectionSet<_$Scalars> + + export interface c2$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`c2\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type c2$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | c2$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type me<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + + export interface me$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`me\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type me$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> > } -// lowerCaseObject +// ObjectGrandparent // -------------------------------------------------------------------------------------------------- // // ----------------------------------------| Entrypoint Interface | -export interface lowerCaseObject< +export interface ObjectGrandparent< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { /** - * Select the \`id\` field on the \`lowerCaseObject\` object. Its type is \`ID\` (a \`ScalarStandard\` kind of type). + * Select the \`a\` field on the \`ObjectGrandparent\` object. Its type is \`String\` (a \`ScalarStandard\` kind of type). */ - id?: lowerCaseObject.id$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + a?: ObjectGrandparent.a$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the \`me\` field on the \`ObjectGrandparent\` object. Its type is \`Int\` (a \`ScalarStandard\` kind of type). + */ + me?: ObjectGrandparent.me$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> /** * Inline fragments for field groups. @@ -6803,8 +7988,8 @@ export interface lowerCaseObject< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | lowerCaseObject$FragmentInline<_$Scalars> - | lowerCaseObject$FragmentInline<_$Scalars>[] + | ObjectGrandparent$FragmentInline<_$Scalars> + | ObjectGrandparent$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. @@ -6816,17 +8001,392 @@ export interface lowerCaseObject< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface lowerCaseObject$FragmentInline< +export interface ObjectGrandparent$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends lowerCaseObject<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends ObjectGrandparent<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } // ----------------------------------------| Fields | -export namespace lowerCaseObject { - export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace ObjectGrandparent { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> + + export interface a$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`a\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type a$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type me<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + + export interface me$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`me\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type me$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + > +} + +// ObjectNested +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface ObjectNested< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the \`id\` field on the \`ObjectNested\` object. Its type is \`ID\` (a \`ScalarStandard\` kind of type). + */ + id?: ObjectNested.id$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the \`object\` field on the \`ObjectNested\` object. Its type is \`Object1\` (a \`OutputObject\` kind of type). + */ + object?: ObjectNested.$object$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an \`@include\` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | ObjectNested$FragmentInline<_$Scalars> + | ObjectNested$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface ObjectNested$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends ObjectNested<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace ObjectNested { + export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + + export interface id$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`id\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type id$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type $object<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + $object$SelectionSet<_$Scalars> + + export interface $object$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$Object1<_$Scalars> {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`$object\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type $object$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + $object$SelectionSet<_$Scalars> + > +} + +// ObjectParent +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface ObjectParent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the \`a\` field on the \`ObjectParent\` object. Its type is \`String\` (a \`ScalarStandard\` kind of type). + */ + a?: ObjectParent.a$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the \`b\` field on the \`ObjectParent\` object. Its type is \`String\` (a \`ScalarStandard\` kind of type). + */ + b?: ObjectParent.b$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the \`me\` field on the \`ObjectParent\` object. Its type is \`String\` (a \`ScalarStandard\` kind of type). + */ + me?: ObjectParent.me$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an \`@include\` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | ObjectParent$FragmentInline<_$Scalars> + | ObjectParent$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface ObjectParent$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends ObjectParent<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace ObjectParent { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + + export interface a$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`a\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type a$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`b\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type me<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + + export interface me$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`me\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type me$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + > +} + +// ObjectUnion +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface ObjectUnion< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the \`fooBarUnion\` field on the \`ObjectUnion\` object. Its type is \`FooBarUnion\` (a \`Union\` kind of type). + */ + fooBarUnion?: + | ObjectUnion.fooBarUnion$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an \`@include\` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | ObjectUnion$FragmentInline<_$Scalars> + | ObjectUnion$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface ObjectUnion$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends ObjectUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace ObjectUnion { + export type fooBarUnion< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = fooBarUnion$SelectionSet<_$Scalars> + + export interface fooBarUnion$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$FooBarUnion<_$Scalars> {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`fooBarUnion\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type fooBarUnion$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + fooBarUnion$SelectionSet<_$Scalars> + > +} + +// lowerCaseObject +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface lowerCaseObject< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the \`id\` field on the \`lowerCaseObject\` object. Its type is \`ID\` (a \`ScalarStandard\` kind of type). + */ + id?: lowerCaseObject.id$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an \`@include\` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | lowerCaseObject$FragmentInline<_$Scalars> + | lowerCaseObject$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface lowerCaseObject$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends lowerCaseObject<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace lowerCaseObject { + export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> export interface id$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, @@ -6991,30 +8551,296 @@ export interface FooBarUnion< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | FooBarUnion$FragmentInline<_$Scalars> - | FooBarUnion$FragmentInline<_$Scalars>[] -} -export interface FooBarUnion$FragmentInline< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends FooBarUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { -} + | FooBarUnion$FragmentInline<_$Scalars> + | FooBarUnion$FragmentInline<_$Scalars>[] +} +export interface FooBarUnion$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends FooBarUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export interface Result< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> { + /** + * A meta field. Is the name of the type being selected. Since this is a union type and thus polymorphic, + * the name is one of the member type names, whichever is ultimately returned at runtime. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> + + ___on_ErrorOne?: ErrorOne<_$Scalars> + ___on_ErrorTwo?: ErrorTwo<_$Scalars> + ___on_Object1?: Object1<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an \`@include\` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | Result$FragmentInline<_$Scalars> + | Result$FragmentInline<_$Scalars>[] +} +export interface Result$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends Result<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export interface lowerCaseUnion< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> { + /** + * A meta field. Is the name of the type being selected. Since this is a union type and thus polymorphic, + * the name is one of the member type names, whichever is ultimately returned at runtime. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> + + ___on_lowerCaseObject?: lowerCaseObject<_$Scalars> + ___on_lowerCaseObject2?: lowerCaseObject2<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an \`@include\` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | lowerCaseUnion$FragmentInline<_$Scalars> + | lowerCaseUnion$FragmentInline<_$Scalars>[] +} +export interface lowerCaseUnion$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends lowerCaseUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// +// +// +// +// +// +// ================================================================================================== +// Interface +// ================================================================================================== +// +// +// +// +// +// + +// DateInterface1 +// -------------------------------------------------------------------------------------------------- +// + +export interface DateInterface1< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + date1?: DateInterface1.date1<_$Scalars> + ___on_DateObject1?: DateObject1<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an \`@include\` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | DateInterface1$FragmentInline<_$Scalars> + | DateInterface1$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, + * the name is one of the implementor type names, whichever is ultimately returned at runtime. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface DateInterface1$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends DateInterface1<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export namespace DateInterface1 { + export type date1<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | date1$SelectionSet<_$Scalars> + + export interface date1$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`date1\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type date1$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | date1$SelectionSet<_$Scalars> + > +} + +// Error +// -------------------------------------------------------------------------------------------------- +// + +export interface Error<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> + extends $Select.Bases.ObjectLike +{ + message?: Error.message<_$Scalars> + ___on_ErrorOne?: ErrorOne<_$Scalars> + ___on_ErrorTwo?: ErrorTwo<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an \`@include\` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | Error$FragmentInline<_$Scalars> + | Error$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, + * the name is one of the implementor type names, whichever is ultimately returned at runtime. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface Error$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends Error<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export namespace Error { + export type message<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | message$SelectionSet<_$Scalars> + + export interface message$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`message\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type message$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | message$SelectionSet<_$Scalars> + > +} + +// Interface +// -------------------------------------------------------------------------------------------------- +// + +export interface Interface< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + id?: Interface.id<_$Scalars> + ___on_Object1ImplementingInterface?: Object1ImplementingInterface<_$Scalars> + ___on_Object2ImplementingInterface?: Object2ImplementingInterface<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an \`@include\` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | Interface$FragmentInline<_$Scalars> + | Interface$FragmentInline<_$Scalars>[] -export interface Result< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> { /** - * A meta field. Is the name of the type being selected. Since this is a union type and thus polymorphic, - * the name is one of the member type names, whichever is ultimately returned at runtime. + * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, + * the name is one of the implementor type names, whichever is ultimately returned at runtime. * * @see https://graphql.org/learn/queries/#meta-fields */ __typename?: | $Select.Indicator.NoArgsIndicator$Expanded | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} - ___on_ErrorOne?: ErrorOne<_$Scalars> - ___on_ErrorTwo?: ErrorTwo<_$Scalars> - ___on_Object1?: Object1<_$Scalars> +export interface Interface$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends Interface<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export namespace Interface { + export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + + export interface id$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`id\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type id$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + > +} + +// InterfaceChildA +// -------------------------------------------------------------------------------------------------- +// + +export interface InterfaceChildA< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + a?: InterfaceChildA.a<_$Scalars> + b?: InterfaceChildA.b<_$Scalars> + c1?: InterfaceChildA.c1<_$Scalars> + ___on_ObjectChildA?: ObjectChildA<_$Scalars> /** * Inline fragments for field groups. @@ -7025,72 +8851,104 @@ export interface Result< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | Result$FragmentInline<_$Scalars> - | Result$FragmentInline<_$Scalars>[] -} -export interface Result$FragmentInline< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends Result<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { -} + | InterfaceChildA$FragmentInline<_$Scalars> + | InterfaceChildA$FragmentInline<_$Scalars>[] -export interface lowerCaseUnion< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> { /** - * A meta field. Is the name of the type being selected. Since this is a union type and thus polymorphic, - * the name is one of the member type names, whichever is ultimately returned at runtime. + * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, + * the name is one of the implementor type names, whichever is ultimately returned at runtime. * * @see https://graphql.org/learn/queries/#meta-fields */ __typename?: | $Select.Indicator.NoArgsIndicator$Expanded | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} - ___on_lowerCaseObject?: lowerCaseObject<_$Scalars> - ___on_lowerCaseObject2?: lowerCaseObject2<_$Scalars> +export interface InterfaceChildA$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends InterfaceChildA<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export namespace InterfaceChildA { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + + export interface a$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- /** - * Inline fragments for field groups. - * - * Generally a niche feature. This can be useful for example to apply an \`@include\` directive to a subset of the - * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. - * - * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + * This is the "expanded" version of the \`a\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. */ - ___?: - | lowerCaseUnion$FragmentInline<_$Scalars> - | lowerCaseUnion$FragmentInline<_$Scalars>[] -} -export interface lowerCaseUnion$FragmentInline< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends lowerCaseUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { -} + export type a$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + > -// -// -// -// -// -// -// ================================================================================================== -// Interface -// ================================================================================================== -// -// -// -// -// -// + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> -// DateInterface1 + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`b\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + export type c1<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | c1$SelectionSet<_$Scalars> + + export interface c1$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`c1\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type c1$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | c1$SelectionSet<_$Scalars> + > +} + +// InterfaceChildB // -------------------------------------------------------------------------------------------------- // -export interface DateInterface1< +export interface InterfaceChildB< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { - date1?: DateInterface1.date1<_$Scalars> - ___on_DateObject1?: DateObject1<_$Scalars> + a?: InterfaceChildB.a<_$Scalars> + b?: InterfaceChildB.b<_$Scalars> + c2?: InterfaceChildB.c2<_$Scalars> + ___on_ObjectChildB?: ObjectChildB<_$Scalars> /** * Inline fragments for field groups. @@ -7101,8 +8959,8 @@ export interface DateInterface1< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | DateInterface1$FragmentInline<_$Scalars> - | DateInterface1$FragmentInline<_$Scalars>[] + | InterfaceChildB$FragmentInline<_$Scalars> + | InterfaceChildB$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, @@ -7115,45 +8973,94 @@ export interface DateInterface1< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface DateInterface1$FragmentInline< +export interface InterfaceChildB$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends DateInterface1<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends InterfaceChildB<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } -export namespace DateInterface1 { - export type date1<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace InterfaceChildB { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | date1$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface date1$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the \`date1\` type. It is identical except for the fact + * This is the "expanded" version of the \`a\` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type date1$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | date1$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> + > + + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`b\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + export type c2<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | c2$SelectionSet<_$Scalars> + + export interface c2$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`c2\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type c2$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | c2$SelectionSet<_$Scalars> > } -// Error +// InterfaceGrandparent // -------------------------------------------------------------------------------------------------- // -export interface Error<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> - extends $Select.Bases.ObjectLike -{ - message?: Error.message<_$Scalars> - ___on_ErrorOne?: ErrorOne<_$Scalars> - ___on_ErrorTwo?: ErrorTwo<_$Scalars> +export interface InterfaceGrandparent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + a?: InterfaceGrandparent.a<_$Scalars> + ___on_ObjectChildA?: ObjectChildA<_$Scalars> + ___on_ObjectChildB?: ObjectChildB<_$Scalars> + ___on_ObjectGrandparent?: ObjectGrandparent<_$Scalars> + ___on_ObjectParent?: ObjectParent<_$Scalars> + ___on_InterfaceChildA?: InterfaceChildA<_$Scalars> + ___on_InterfaceChildB?: InterfaceChildB<_$Scalars> + ___on_InterfaceParent?: InterfaceParent<_$Scalars> /** * Inline fragments for field groups. @@ -7164,8 +9071,8 @@ export interface Error<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | Error$FragmentInline<_$Scalars> - | Error$FragmentInline<_$Scalars>[] + | InterfaceGrandparent$FragmentInline<_$Scalars> + | InterfaceGrandparent$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, @@ -7178,45 +9085,49 @@ export interface Error<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface Error$FragmentInline< +export interface InterfaceGrandparent$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends Error<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends InterfaceGrandparent<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } -export namespace Error { - export type message<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace InterfaceGrandparent { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | message$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface message$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the \`message\` type. It is identical except for the fact + * This is the "expanded" version of the \`a\` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type message$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | message$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> > } -// Interface +// InterfaceParent // -------------------------------------------------------------------------------------------------- // -export interface Interface< +export interface InterfaceParent< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { - id?: Interface.id<_$Scalars> - ___on_Object1ImplementingInterface?: Object1ImplementingInterface<_$Scalars> - ___on_Object2ImplementingInterface?: Object2ImplementingInterface<_$Scalars> + a?: InterfaceParent.a<_$Scalars> + b?: InterfaceParent.b<_$Scalars> + ___on_ObjectChildA?: ObjectChildA<_$Scalars> + ___on_ObjectChildB?: ObjectChildB<_$Scalars> + ___on_ObjectParent?: ObjectParent<_$Scalars> + ___on_InterfaceChildA?: InterfaceChildA<_$Scalars> + ___on_InterfaceChildB?: InterfaceChildB<_$Scalars> /** * Inline fragments for field groups. @@ -7227,8 +9138,8 @@ export interface Interface< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | Interface$FragmentInline<_$Scalars> - | Interface$FragmentInline<_$Scalars>[] + | InterfaceParent$FragmentInline<_$Scalars> + | InterfaceParent$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, @@ -7241,32 +9152,54 @@ export interface Interface< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface Interface$FragmentInline< +export interface InterfaceParent$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends Interface<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends InterfaceParent<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } -export namespace Interface { - export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace InterfaceParent { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface id$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the \`id\` type. It is identical except for the fact + * This is the "expanded" version of the \`a\` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type id$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> + > + + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the \`b\` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> > } @@ -7285,6 +9218,10 @@ export namespace $NamedTypes { > = Mutation<_$Scalars> export type $ABCEnum = ABCEnum export type $Case = Case + export type $ChildAInterfaceHierarchyMember = ChildAInterfaceHierarchyMember + export type $ChildBInterfaceHierarchyMember = ChildBInterfaceHierarchyMember + export type $GrandparentInterfaceHierarchyMember = GrandparentInterfaceHierarchyMember + export type $ParentInterfaceHierarchyMember = ParentInterfaceHierarchyMember export type $InputObject< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = InputObject<_$Scalars> @@ -7322,9 +9259,21 @@ export namespace $NamedTypes { export type $Object2ImplementingInterface< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = Object2ImplementingInterface<_$Scalars> + export type $ObjectChildA< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = ObjectChildA<_$Scalars> + export type $ObjectChildB< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = ObjectChildB<_$Scalars> + export type $ObjectGrandparent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = ObjectGrandparent<_$Scalars> export type $ObjectNested< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = ObjectNested<_$Scalars> + export type $ObjectParent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = ObjectParent<_$Scalars> export type $ObjectUnion< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = ObjectUnion<_$Scalars> @@ -7353,6 +9302,18 @@ export namespace $NamedTypes { export type $Interface< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = Interface<_$Scalars> + export type $InterfaceChildA< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = InterfaceChildA<_$Scalars> + export type $InterfaceChildB< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = InterfaceChildB<_$Scalars> + export type $InterfaceGrandparent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = InterfaceGrandparent<_$Scalars> + export type $InterfaceParent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = InterfaceParent<_$Scalars> } " `; diff --git a/src/generator/generators/Schema.ts b/src/generator/generators/Schema.ts index 34441b5da..170f09b5d 100644 --- a/src/generator/generators/Schema.ts +++ b/src/generator/generators/Schema.ts @@ -81,6 +81,9 @@ const OutputObject = createCodeGenerator<{ type: Grafaid.Schema.ObjectType }>(({ }), ), ) + + // The Type + code(Code.tsInterface({ tsDoc: getTsDocContents(config, type), name: type.name, @@ -92,54 +95,9 @@ const OutputObject = createCodeGenerator<{ type: Grafaid.Schema.ObjectType }>(({ })) code() - code(Code.esmExport(Code.tsNamespace( - type.name, - [Code.tsInterface({ - export: true, - name: `__typename`, - extends: `$.OutputField`, - block: { - name: Code.string(`__typename`), - arguments: {}, - inlineType: `[1]`, - namedType: { - kind: Code.string(`__typename`), - value: Code.string(type.name), - }, - }, - })].concat( - values(type.getFields()) - .map((field) => { - const namedType = Grafaid.Schema.getNamedType(field.type) - return Code.tsInterface({ - tsDoc: getTsDocContents(config, field), - export: true, - name: field.name, - extends: `$.OutputField`, - block: { - name: Code.string(field.name), - arguments: Object.fromEntries(field.args.map(arg => { - return [ - arg.name, - Code.objectField$({ - tsDoc: getTsDocContents(config, arg), - value: { - kind: Code.string(`InputField`), - name: Code.string(arg.name), - inlineType: renderInlineType(arg.type), - namedType: namedTypesTypeReference(Grafaid.Schema.getNamedType(arg.type)), - }, - }), - ] - })), - inlineType: renderInlineType(field.type), - namedType: namedTypesTypeReference(namedType), - }, - }) - }), - ) - .join(`\n\n`), - ))) + // Fields of the Type + + code(OutputFields({ config, type })) code() }) @@ -228,20 +186,78 @@ const Union = createCodeGenerator<{ type: Grafaid.Schema.UnionType }>(({ config, const Interface = createCodeGenerator<{ type: Grafaid.Schema.InterfaceType }>(({ config, code, type }) => { const implementorTypes = Grafaid.Schema.KindMap.getInterfaceImplementors(config.schema.kindMap, type) const implementorNames = implementorTypes.map((_) => _.name) + code(Code.tsInterface({ tsDoc: getTsDocContents(config, type), name: type.name, extends: `$.Interface`, block: { + fields: Object.fromEntries(values(type.getFields()).map((_) => [_.name, `${renderName(type)}.${renderName(_)}`])), name: Code.string(type.name), implementors: Code.tsTuple(implementorNames), - implementorsUnion: Code.tsUnionItems(implementorNames), + implementorsUnion: implementorNames.length > 0 ? Code.tsUnionItems(implementorNames) : `never`, implementorsIndex: Object.fromEntries(implementorNames.map(n => [n, renderName(n)])), }, })) code() + + code(OutputFields({ config, type })) + code() }) +const OutputFields = createCodeGenerator<{ type: Grafaid.Schema.ObjectType | Grafaid.Schema.InterfaceType }>( + ({ config, code, type }) => { + code(Code.esmExport(Code.tsNamespace( + type.name, + [Code.tsInterface({ + export: true, + name: `__typename`, + extends: `$.OutputField`, + block: { + name: Code.string(`__typename`), + arguments: {}, + inlineType: `[1]`, + namedType: { + kind: Code.string(`__typename`), + value: Code.string(type.name), + }, + }, + })].concat( + values(type.getFields()) + .map((field) => { + const namedType = Grafaid.Schema.getNamedType(field.type) + return Code.tsInterface({ + tsDoc: getTsDocContents(config, field), + export: true, + name: field.name, + extends: `$.OutputField`, + block: { + name: Code.string(field.name), + arguments: Object.fromEntries(field.args.map(arg => { + return [ + arg.name, + Code.objectField$({ + tsDoc: getTsDocContents(config, arg), + value: { + kind: Code.string(`InputField`), + name: Code.string(arg.name), + inlineType: renderInlineType(arg.type), + namedType: namedTypesTypeReference(Grafaid.Schema.getNamedType(arg.type)), + }, + }), + ] + })), + inlineType: renderInlineType(field.type), + namedType: namedTypesTypeReference(namedType), + }, + }) + }), + ) + .join(`\n\n`), + ))) + }, +) + const kindRenderers = { Root: OutputObject, OutputObject, diff --git a/src/generator/generators/Select.ts b/src/generator/generators/Select.ts index 478cffe32..85f983aa0 100644 --- a/src/generator/generators/Select.ts +++ b/src/generator/generators/Select.ts @@ -45,7 +45,7 @@ export const ModuleGeneratorSelect = createModuleGenerator( code(...config.schema.kindMap.list.OutputObject.map((type) => { return `export type ${type.name}<$SelectionSet extends $$SelectionSets.${ renderName(type) - }> = InferResult.OutputObject<$SelectionSet, ${iSchema}, ${iSchema}['allTypes']['${type.name}']>` + }> = InferResult.OutputObjectLike<$SelectionSet, ${iSchema}, ${iSchema}['allTypes']['${type.name}']>` })) code(Tex.title2(`Union`)) code(...config.schema.kindMap.list.Union.map((type) => { diff --git a/src/generator/generators/SelectionSets.test-d.ts b/src/generator/generators/SelectionSets.test-d.ts index 81bac6b17..8c9fb42c8 100644 --- a/src/generator/generators/SelectionSets.test-d.ts +++ b/src/generator/generators/SelectionSets.test-d.ts @@ -267,4 +267,24 @@ test(`Query`, () => { // // @ts-expect-error empty selection set not allowed // assertType({ scalars: {} }) // todo selection set of _only_ negative indicators should not be allowed + + // Interface Hierarchy + + assertType({ interfaceHierarchyGrandparents: { a: true } }) + // Can verbosely nest inline fragments matching the interface hierarchy + assertType({ interfaceHierarchyGrandparents: { ___on_InterfaceParent: { ___on_InterfaceChildA: { a: true } } } }) + // Can skip intermediary implementor interfaces + assertType({ interfaceHierarchyGrandparents: { ___on_ObjectChildA: { a: true} } }) + // Cannot directly select fields from implementor interface + assertType({ interfaceHierarchyGrandparents: { + // @ts-expect-error + b: true + }}) + // Nested: ^ + assertType({ interfaceHierarchyGrandparents: { + ___on_InterfaceParent: { + // @ts-expect-error + c1: true + } + }}) }) diff --git a/src/generator/generators/SelectionSets.ts b/src/generator/generators/SelectionSets.ts index e8b98a40d..fd6622608 100644 --- a/src/generator/generators/SelectionSets.ts +++ b/src/generator/generators/SelectionSets.ts @@ -139,8 +139,8 @@ const InputObject = createCodeGenerator<{ type: Grafaid.Schema.InputObjectType } const Interface = createCodeGenerator<{ type: Grafaid.Schema.InterfaceType }>( ({ config, type, code }) => { - const fields = values(type.getFields()) - const fieldsRendered = fields.map(field => { + const directFields = values(type.getFields()) + const fieldsRendered = directFields.map(field => { return H.outputFieldReference(field.name, `${renderName(type)}.${renderName(field)}`) }).join(`\n`) const implementorTypes = Grafaid.Schema.KindMap.getInterfaceImplementors(config.schema.kindMap, type) @@ -167,7 +167,7 @@ const Interface = createCodeGenerator<{ type: Grafaid.Schema.InterfaceType }>( code() code(` export namespace ${renderName(type)} { - ${fields.map((field) => renderOutputField({ config, field })).join(`\n`)} + ${directFields.map((field) => renderOutputField({ config, field })).join(`\n`)} } `) code() diff --git a/src/lib/grafaid/schema/KindMap/_.ts b/src/lib/grafaid/schema/KindMap/_.ts index 17186839a..6901e4bf0 100644 --- a/src/lib/grafaid/schema/KindMap/_.ts +++ b/src/lib/grafaid/schema/KindMap/_.ts @@ -109,7 +109,11 @@ export const hasCustomScalars = (typeMapByKind: KindMap) => { } export const getInterfaceImplementors = (typeMap: KindMap, interfaceTypeSearch: GraphQLInterfaceType) => { - return typeMap.list.OutputObject.filter(objectType => + const outputObjectTypes = typeMap.list.OutputObject.filter(objectType => objectType.getInterfaces().filter(interfaceType => interfaceType.name === interfaceTypeSearch.name).length > 0 ) + const interfaceTypes = typeMap.list.Interface.filter(interfaceType => + interfaceType.getInterfaces().filter(interfaceType => interfaceType.name === interfaceTypeSearch.name).length > 0 + ) + return [...outputObjectTypes, ...interfaceTypes] } diff --git a/src/types/Schema/nodes/Interface.ts b/src/types/Schema/nodes/Interface.ts index c03cdeeb2..a54ef1696 100644 --- a/src/types/Schema/nodes/Interface.ts +++ b/src/types/Schema/nodes/Interface.ts @@ -4,12 +4,11 @@ import type { OutputObject } from './OutputObject.js' export type Interface< $Name extends string = string, $Fields extends OutputFields = OutputFields, - $Implementors extends [OutputObject, ...OutputObject[]] = [OutputObject, ...OutputObject[]], > = { kind: 'Interface' name: $Name fields: $Fields - implementors: $Implementors - implementorsUnion: $Implementors[number] - implementorsIndex: Record<$Implementors[number]['name'], $Implementors[number]> + implementors: (OutputObject | Interface)[] + implementorsUnion: OutputObject | Interface + implementorsIndex: Record } diff --git a/src/types/Schema/typeGroups.ts b/src/types/Schema/typeGroups.ts index 3e5a4c582..75ed3f6d5 100644 --- a/src/types/Schema/typeGroups.ts +++ b/src/types/Schema/typeGroups.ts @@ -10,6 +10,15 @@ import type { Union } from './nodes/Union.js' export type NamedTypes = NamedInputTypes | NamedOutputTypes +export type OutputObjectLike = OutputObject | Interface + +/** + * Types that can show up in the condition of an inline fragment. + * + * Interfaces can extend other interfaces so they are possible here. + */ +export type InlineFragmentTypeConditionTypes = OutputObject | Interface + export type OutputTypes = | InlineTypes | NamedOutputTypes diff --git a/src/types/context.ts b/src/types/context.ts index 9e0984eef..2e18f9201 100644 --- a/src/types/context.ts +++ b/src/types/context.ts @@ -29,14 +29,16 @@ export interface ClientTransports { configurations: ClientTransportsConfigurations } -interface ClientTransportsRegistry { +export interface ClientTransportsRegistry { [name: string]: Transport } -interface ClientTransportsConfigurations { - [name: string]: object +export interface ClientTransportsConfigurations { + [name: string]: ClientTransportsConfiguration } +export type ClientTransportsConfiguration = object + export namespace ClientTransports { export namespace Errors { export type PreflightCheckNoTransportsRegistered = diff --git a/tests/_/schemas/db.ts b/tests/_/schemas/db.ts index 48df17fa9..ed3e93218 100644 --- a/tests/_/schemas/db.ts +++ b/tests/_/schemas/db.ts @@ -40,7 +40,113 @@ const Foo = { id, } +export const InterfaceChildAEnum = { + InterfaceChildA: `InterfaceChildA`, +} as const + +export const InterfaceChildBEnum = { + InterfaceChildB: `InterfaceChildB`, +} as const + +export const InterfaceParentEnum = { + InterfaceParent: `InterfaceParent`, + ...InterfaceChildAEnum, + ...InterfaceChildBEnum, +} as const + +export const GrandparentInterfaceHierarchyMemberEnum = { + InterfaceGrandparent: `InterfaceGrandparent`, + ...InterfaceParentEnum, +} as const + +export namespace db { + export interface InterfaceGrandparent { + a: string + } + + export interface InterfaceParent extends InterfaceGrandparent { + b: string + } + + export interface InterfaceChildA extends InterfaceParent { + c1: string + } + + export interface InterfaceChildB extends InterfaceParent { + c2: string + } + + export interface ObjectGrandparent extends InterfaceGrandparent { + type: `ObjectGrandparent` + me: number + } + + export interface ObjectParent extends InterfaceParent { + type: `ObjectParent` + me: string + } + + export interface ObjectChildA extends InterfaceChildA { + type: `ObjectChildA` + me: boolean + } + + export interface ObjectChildB extends InterfaceChildB { + type: `ObjectChildB` + me: number[] + } +} + +const interfaceGrandparent1: db.ObjectGrandparent = { + type: `ObjectGrandparent`, + a: `a1`, + me: 123, +} + +const interfaceParent1: db.ObjectParent = { + type: `ObjectParent`, + a: `a1`, + b: `b1`, + me: `me1`, +} + +const interfaceChildA1: db.ObjectChildA = { + type: `ObjectChildA`, + a: `a1`, + b: `b1`, + c1: `c1`, + me: true, +} + +const interfaceChildB1: db.ObjectChildB = { + type: `ObjectChildB`, + a: `a1`, + b: `b1`, + c2: `c2`, + me: [1, 2, 3], +} + export const db = { + interfaceHierarchMembers: { + interfaceGrandparent1, + interfaceParent1, + interfaceChildA1, + interfaceChildB1, + }, + interfaceHierarchLists: { + [GrandparentInterfaceHierarchyMemberEnum.InterfaceGrandparent]: { + mixed: [interfaceGrandparent1, interfaceParent1, interfaceChildA1, interfaceChildB1], + }, + [GrandparentInterfaceHierarchyMemberEnum.InterfaceParent]: { + mixed: [interfaceParent1, interfaceChildA1, interfaceChildB1], + }, + [GrandparentInterfaceHierarchyMemberEnum.InterfaceChildA]: { + mixed: [interfaceChildA1], + }, + [GrandparentInterfaceHierarchyMemberEnum.InterfaceChildB]: { + mixed: [interfaceChildB1], + }, + }, lowerCaseObject: { id, }, diff --git a/tests/_/schemas/kitchen-sink/_scalars.ts b/tests/_/schemas/kitchen-sink/_scalars.ts deleted file mode 100644 index 1c7d8a16c..000000000 --- a/tests/_/schemas/kitchen-sink/_scalars.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Graffle } from '../../../../src/entrypoints/main.js' - -export const Date = Graffle.Scalars.create(`Date`, { - encode: (value: globalThis.Date) => { - console.log(value) - return value.toISOString() - }, - decode: (value: string) => new globalThis.Date(value), -}) diff --git a/tests/_/schemas/kitchen-sink/graffle/modules/methods-root.ts b/tests/_/schemas/kitchen-sink/graffle/modules/methods-root.ts index 346c74f1d..789867d96 100644 --- a/tests/_/schemas/kitchen-sink/graffle/modules/methods-root.ts +++ b/tests/_/schemas/kitchen-sink/graffle/modules/methods-root.ts @@ -269,6 +269,59 @@ export interface QueryMethods<$Context extends $$Utilities.Context> { > > + interfaceHierarchyChildA: <$SelectionSet>( + selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Query.interfaceHierarchyChildA<$Context['scalars']>>, + ) => Promise< + & (null | {}) + & $$Utilities.HandleOutputGraffleRootField< + $Context, + InferResult.OperationQuery<{ interfaceHierarchyChildA: $SelectionSet }, $$Schema.Schema<$Context['scalars']>>, + 'interfaceHierarchyChildA' + > + > + + interfaceHierarchyChildB: <$SelectionSet>( + selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Query.interfaceHierarchyChildB<$Context['scalars']>>, + ) => Promise< + & (null | {}) + & $$Utilities.HandleOutputGraffleRootField< + $Context, + InferResult.OperationQuery<{ interfaceHierarchyChildB: $SelectionSet }, $$Schema.Schema<$Context['scalars']>>, + 'interfaceHierarchyChildB' + > + > + + interfaceHierarchyGrandparents: <$SelectionSet>( + selectionSet: $$Utilities.Exact< + $SelectionSet, + $$SelectionSets.Query.interfaceHierarchyGrandparents<$Context['scalars']> + >, + ) => Promise< + & (null | {}) + & $$Utilities.HandleOutputGraffleRootField< + $Context, + InferResult.OperationQuery< + { interfaceHierarchyGrandparents: $SelectionSet }, + $$Schema.Schema<$Context['scalars']> + >, + 'interfaceHierarchyGrandparents' + > + > + + interfaceHierarchyParents: <$SelectionSet>( + selectionSet: $$Utilities.Exact< + $SelectionSet, + $$SelectionSets.Query.interfaceHierarchyParents<$Context['scalars']> + >, + ) => Promise< + & (null | {}) + & $$Utilities.HandleOutputGraffleRootField< + $Context, + InferResult.OperationQuery<{ interfaceHierarchyParents: $SelectionSet }, $$Schema.Schema<$Context['scalars']>>, + 'interfaceHierarchyParents' + > + > + interfaceNonNull: <$SelectionSet>( selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Query.interfaceNonNull<$Context['scalars']>>, ) => Promise< diff --git a/tests/_/schemas/kitchen-sink/graffle/modules/methods-select.ts b/tests/_/schemas/kitchen-sink/graffle/modules/methods-select.ts index b6e45a5e1..2147f41f5 100644 --- a/tests/_/schemas/kitchen-sink/graffle/modules/methods-select.ts +++ b/tests/_/schemas/kitchen-sink/graffle/modules/methods-select.ts @@ -29,7 +29,11 @@ export interface $MethodsSelect { Object1: Object1 Object1ImplementingInterface: Object1ImplementingInterface Object2ImplementingInterface: Object2ImplementingInterface + ObjectChildA: ObjectChildA + ObjectChildB: ObjectChildB + ObjectGrandparent: ObjectGrandparent ObjectNested: ObjectNested + ObjectParent: ObjectParent ObjectUnion: ObjectUnion lowerCaseObject: lowerCaseObject lowerCaseObject2: lowerCaseObject2 @@ -40,6 +44,10 @@ export interface $MethodsSelect { DateInterface1: DateInterface1 Error: Error Interface: Interface + InterfaceChildA: InterfaceChildA + InterfaceChildB: InterfaceChildB + InterfaceGrandparent: InterfaceGrandparent + InterfaceParent: InterfaceParent } // @@ -122,10 +130,26 @@ export interface Object2ImplementingInterface { ): $SelectionSet } +export interface ObjectChildA { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectChildA>): $SelectionSet +} + +export interface ObjectChildB { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectChildB>): $SelectionSet +} + +export interface ObjectGrandparent { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectGrandparent>): $SelectionSet +} + export interface ObjectNested { <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectNested>): $SelectionSet } +export interface ObjectParent { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectParent>): $SelectionSet +} + export interface ObjectUnion { <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.ObjectUnion>): $SelectionSet } @@ -197,3 +221,19 @@ export interface Error { export interface Interface { <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Interface>): $SelectionSet } + +export interface InterfaceChildA { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.InterfaceChildA>): $SelectionSet +} + +export interface InterfaceChildB { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.InterfaceChildB>): $SelectionSet +} + +export interface InterfaceGrandparent { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.InterfaceGrandparent>): $SelectionSet +} + +export interface InterfaceParent { + <$SelectionSet>(selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.InterfaceParent>): $SelectionSet +} diff --git a/tests/_/schemas/kitchen-sink/graffle/modules/schema-driven-data-map.ts b/tests/_/schemas/kitchen-sink/graffle/modules/schema-driven-data-map.ts index 3ddb9a1b5..7e2a524bb 100644 --- a/tests/_/schemas/kitchen-sink/graffle/modules/schema-driven-data-map.ts +++ b/tests/_/schemas/kitchen-sink/graffle/modules/schema-driven-data-map.ts @@ -70,6 +70,26 @@ const Case: $$Utilities.SchemaDrivenDataMap.Enum = { n: 'Case', } +const ChildAInterfaceHierarchyMember: $$Utilities.SchemaDrivenDataMap.Enum = { + k: 'enum', + n: 'ChildAInterfaceHierarchyMember', +} + +const ChildBInterfaceHierarchyMember: $$Utilities.SchemaDrivenDataMap.Enum = { + k: 'enum', + n: 'ChildBInterfaceHierarchyMember', +} + +const GrandparentInterfaceHierarchyMember: $$Utilities.SchemaDrivenDataMap.Enum = { + k: 'enum', + n: 'GrandparentInterfaceHierarchyMember', +} + +const ParentInterfaceHierarchyMember: $$Utilities.SchemaDrivenDataMap.Enum = { + k: 'enum', + n: 'ParentInterfaceHierarchyMember', +} + // // // @@ -217,6 +237,31 @@ const Object2ImplementingInterface: $$Utilities.SchemaDrivenDataMap.OutputObject }, } +const ObjectChildA: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: { + a: {}, + b: {}, + c1: {}, + me: {}, + }, +} + +const ObjectChildB: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: { + a: {}, + b: {}, + c2: {}, + me: {}, + }, +} + +const ObjectGrandparent: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: { + a: {}, + me: {}, + }, +} + const ObjectNested: $$Utilities.SchemaDrivenDataMap.OutputObject = { f: { id: {}, @@ -226,6 +271,14 @@ const ObjectNested: $$Utilities.SchemaDrivenDataMap.OutputObject = { }, } +const ObjectParent: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: { + a: {}, + b: {}, + me: {}, + }, +} + const ObjectUnion: $$Utilities.SchemaDrivenDataMap.OutputObject = { f: { fooBarUnion: { @@ -276,6 +329,22 @@ const Interface: $$Utilities.SchemaDrivenDataMap.OutputObject = { f: {}, } +const InterfaceChildA: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: {}, +} + +const InterfaceChildB: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: {}, +} + +const InterfaceGrandparent: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: {}, +} + +const InterfaceParent: $$Utilities.SchemaDrivenDataMap.OutputObject = { + f: {}, +} + // // // @@ -445,6 +514,42 @@ const Query: $$Utilities.SchemaDrivenDataMap.OutputObject = { interface: { // nt: Interface, <-- Assigned later to avoid potential circular dependency. }, + interfaceHierarchyChildA: { + a: { + type: { + nt: ChildAInterfaceHierarchyMember, + it: [0], + }, + }, + // nt: InterfaceChildA, <-- Assigned later to avoid potential circular dependency. + }, + interfaceHierarchyChildB: { + a: { + type: { + nt: ChildBInterfaceHierarchyMember, + it: [0], + }, + }, + // nt: InterfaceChildB, <-- Assigned later to avoid potential circular dependency. + }, + interfaceHierarchyGrandparents: { + a: { + type: { + nt: GrandparentInterfaceHierarchyMember, + it: [0], + }, + }, + // nt: InterfaceGrandparent, <-- Assigned later to avoid potential circular dependency. + }, + interfaceHierarchyParents: { + a: { + type: { + nt: ParentInterfaceHierarchyMember, + it: [0], + }, + }, + // nt: InterfaceParent, <-- Assigned later to avoid potential circular dependency. + }, interfaceNonNull: { // nt: Interface, <-- Assigned later to avoid potential circular dependency. }, @@ -652,6 +757,10 @@ Query.f[`dateInterface1`]!.nt = DateInterface1 Query.f[`dateObject1`]!.nt = DateObject1 Query.f[`dateUnion`]!.nt = DateUnion Query.f[`interface`]!.nt = Interface +Query.f[`interfaceHierarchyChildA`]!.nt = InterfaceChildA +Query.f[`interfaceHierarchyChildB`]!.nt = InterfaceChildB +Query.f[`interfaceHierarchyGrandparents`]!.nt = InterfaceGrandparent +Query.f[`interfaceHierarchyParents`]!.nt = InterfaceParent Query.f[`interfaceNonNull`]!.nt = Interface Query.f[`interfaceWithArgs`]!.nt = Interface Query.f[`lowerCaseUnion`]!.nt = lowerCaseUnion @@ -700,6 +809,10 @@ const $schemaDrivenDataMap: $$Utilities.SchemaDrivenDataMap = { Date, ABCEnum, Case, + ChildAInterfaceHierarchyMember, + ChildBInterfaceHierarchyMember, + GrandparentInterfaceHierarchyMember, + ParentInterfaceHierarchyMember, InputObject, InputObjectCircular, InputObjectNested, @@ -713,13 +826,21 @@ const $schemaDrivenDataMap: $$Utilities.SchemaDrivenDataMap = { Object1, Object1ImplementingInterface, Object2ImplementingInterface, + ObjectChildA, + ObjectChildB, + ObjectGrandparent, ObjectNested, + ObjectParent, ObjectUnion, lowerCaseObject, lowerCaseObject2, DateInterface1, Error, Interface, + InterfaceChildA, + InterfaceChildB, + InterfaceGrandparent, + InterfaceParent, DateUnion, FooBarUnion, Result, diff --git a/tests/_/schemas/kitchen-sink/graffle/modules/schema.ts b/tests/_/schemas/kitchen-sink/graffle/modules/schema.ts index d5ce42788..4a798412f 100644 --- a/tests/_/schemas/kitchen-sink/graffle/modules/schema.ts +++ b/tests/_/schemas/kitchen-sink/graffle/modules/schema.ts @@ -50,6 +50,10 @@ export namespace Schema { id: Query.id idNonNull: Query.idNonNull interface: Query.$interface + interfaceHierarchyChildA: Query.interfaceHierarchyChildA + interfaceHierarchyChildB: Query.interfaceHierarchyChildB + interfaceHierarchyGrandparents: Query.interfaceHierarchyGrandparents + interfaceHierarchyParents: Query.interfaceHierarchyParents interfaceNonNull: Query.interfaceNonNull interfaceWithArgs: Query.interfaceWithArgs listInt: Query.listInt @@ -319,6 +323,62 @@ export namespace Schema { namedType: $$NamedTypes.$$Interface } + export interface interfaceHierarchyChildA extends $.OutputField { + name: 'interfaceHierarchyChildA' + arguments: { + type: { + kind: 'InputField' + name: 'type' + inlineType: [0] + namedType: $$NamedTypes.$$ChildAInterfaceHierarchyMember + } + } + inlineType: [1, [1]] + namedType: $$NamedTypes.$$InterfaceChildA + } + + export interface interfaceHierarchyChildB extends $.OutputField { + name: 'interfaceHierarchyChildB' + arguments: { + type: { + kind: 'InputField' + name: 'type' + inlineType: [0] + namedType: $$NamedTypes.$$ChildBInterfaceHierarchyMember + } + } + inlineType: [1, [1]] + namedType: $$NamedTypes.$$InterfaceChildB + } + + export interface interfaceHierarchyGrandparents extends $.OutputField { + name: 'interfaceHierarchyGrandparents' + arguments: { + type: { + kind: 'InputField' + name: 'type' + inlineType: [0] + namedType: $$NamedTypes.$$GrandparentInterfaceHierarchyMember + } + } + inlineType: [1, [1]] + namedType: $$NamedTypes.$$InterfaceGrandparent + } + + export interface interfaceHierarchyParents extends $.OutputField { + name: 'interfaceHierarchyParents' + arguments: { + type: { + kind: 'InputField' + name: 'type' + inlineType: [0] + namedType: $$NamedTypes.$$ParentInterfaceHierarchyMember + } + } + inlineType: [1, [1]] + namedType: $$NamedTypes.$$InterfaceParent + } + export interface interfaceNonNull extends $.OutputField { name: 'interfaceNonNull' arguments: {} @@ -1071,6 +1131,155 @@ export namespace Schema { } } + // ObjectChildA + // -------------------------------------------------------------------------------------------------- + // + + export interface ObjectChildA extends $.OutputObject { + name: 'ObjectChildA' + fields: { + __typename: ObjectChildA.__typename + a: ObjectChildA.a + b: ObjectChildA.b + c1: ObjectChildA.c1 + me: ObjectChildA.me + } + } + + export namespace ObjectChildA { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'ObjectChildA' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface c1 extends $.OutputField { + name: 'c1' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface me extends $.OutputField { + name: 'me' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$Boolean + } + } + + // ObjectChildB + // -------------------------------------------------------------------------------------------------- + // + + export interface ObjectChildB extends $.OutputObject { + name: 'ObjectChildB' + fields: { + __typename: ObjectChildB.__typename + a: ObjectChildB.a + b: ObjectChildB.b + c2: ObjectChildB.c2 + me: ObjectChildB.me + } + } + + export namespace ObjectChildB { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'ObjectChildB' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface c2 extends $.OutputField { + name: 'c2' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface me extends $.OutputField { + name: 'me' + arguments: {} + inlineType: [1, [1]] + namedType: $$NamedTypes.$$Int + } + } + + // ObjectGrandparent + // -------------------------------------------------------------------------------------------------- + // + + export interface ObjectGrandparent extends $.OutputObject { + name: 'ObjectGrandparent' + fields: { + __typename: ObjectGrandparent.__typename + a: ObjectGrandparent.a + me: ObjectGrandparent.me + } + } + + export namespace ObjectGrandparent { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'ObjectGrandparent' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface me extends $.OutputField { + name: 'me' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$Int + } + } + // ObjectNested // -------------------------------------------------------------------------------------------------- // @@ -1110,6 +1319,53 @@ export namespace Schema { } } + // ObjectParent + // -------------------------------------------------------------------------------------------------- + // + + export interface ObjectParent extends $.OutputObject { + name: 'ObjectParent' + fields: { + __typename: ObjectParent.__typename + a: ObjectParent.a + b: ObjectParent.b + me: ObjectParent.me + } + } + + export namespace ObjectParent { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'ObjectParent' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface me extends $.OutputField { + name: 'me' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + // ObjectUnion // -------------------------------------------------------------------------------------------------- // @@ -1348,6 +1604,9 @@ export namespace Schema { // export interface DateInterface1 extends $.Interface { + fields: { + date1: DateInterface1.date1 + } name: 'DateInterface1' implementors: [DateObject1] implementorsUnion: DateObject1 @@ -1356,11 +1615,33 @@ export namespace Schema { } } + export namespace DateInterface1 { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'DateInterface1' + } + } + + export interface date1 extends $.OutputField { + name: 'date1' + arguments: {} + inlineType: [0] + namedType: $$NamedTypes.$$Date + } + } + // Error // -------------------------------------------------------------------------------------------------- // export interface Error extends $.Interface { + fields: { + message: Error.message + } name: 'Error' implementors: [ErrorOne, ErrorTwo] implementorsUnion: @@ -1372,11 +1653,33 @@ export namespace Schema { } } + export namespace Error { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'Error' + } + } + + export interface message extends $.OutputField { + name: 'message' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + // Interface // -------------------------------------------------------------------------------------------------- // export interface Interface extends $.Interface { + fields: { + id: Interface.id + } name: 'Interface' implementors: [Object1ImplementingInterface, Object2ImplementingInterface] implementorsUnion: @@ -1388,6 +1691,235 @@ export namespace Schema { } } + export namespace Interface { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'Interface' + } + } + + export interface id extends $.OutputField { + name: 'id' + arguments: {} + inlineType: [0] + namedType: $$NamedTypes.$$ID + } + } + + // InterfaceChildA + // -------------------------------------------------------------------------------------------------- + // + + export interface InterfaceChildA extends $.Interface { + fields: { + a: InterfaceChildA.a + b: InterfaceChildA.b + c1: InterfaceChildA.c1 + } + name: 'InterfaceChildA' + implementors: [ObjectChildA] + implementorsUnion: ObjectChildA + implementorsIndex: { + ObjectChildA: ObjectChildA + } + } + + export namespace InterfaceChildA { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'InterfaceChildA' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface c1 extends $.OutputField { + name: 'c1' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + + // InterfaceChildB + // -------------------------------------------------------------------------------------------------- + // + + export interface InterfaceChildB extends $.Interface { + fields: { + a: InterfaceChildB.a + b: InterfaceChildB.b + c2: InterfaceChildB.c2 + } + name: 'InterfaceChildB' + implementors: [ObjectChildB] + implementorsUnion: ObjectChildB + implementorsIndex: { + ObjectChildB: ObjectChildB + } + } + + export namespace InterfaceChildB { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'InterfaceChildB' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface c2 extends $.OutputField { + name: 'c2' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + + // InterfaceGrandparent + // -------------------------------------------------------------------------------------------------- + // + + export interface InterfaceGrandparent extends $.Interface { + fields: { + a: InterfaceGrandparent.a + } + name: 'InterfaceGrandparent' + implementors: [ + ObjectChildA, + ObjectChildB, + ObjectGrandparent, + ObjectParent, + InterfaceChildA, + InterfaceChildB, + InterfaceParent, + ] + implementorsUnion: + | ObjectChildA + | ObjectChildB + | ObjectGrandparent + | ObjectParent + | InterfaceChildA + | InterfaceChildB + | InterfaceParent + implementorsIndex: { + ObjectChildA: ObjectChildA + ObjectChildB: ObjectChildB + ObjectGrandparent: ObjectGrandparent + ObjectParent: ObjectParent + InterfaceChildA: InterfaceChildA + InterfaceChildB: InterfaceChildB + InterfaceParent: InterfaceParent + } + } + + export namespace InterfaceGrandparent { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'InterfaceGrandparent' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + + // InterfaceParent + // -------------------------------------------------------------------------------------------------- + // + + export interface InterfaceParent extends $.Interface { + fields: { + a: InterfaceParent.a + b: InterfaceParent.b + } + name: 'InterfaceParent' + implementors: [ObjectChildA, ObjectChildB, ObjectParent, InterfaceChildA, InterfaceChildB] + implementorsUnion: + | ObjectChildA + | ObjectChildB + | ObjectParent + | InterfaceChildA + | InterfaceChildB + implementorsIndex: { + ObjectChildA: ObjectChildA + ObjectChildB: ObjectChildB + ObjectParent: ObjectParent + InterfaceChildA: InterfaceChildA + InterfaceChildB: InterfaceChildB + } + } + + export namespace InterfaceParent { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'InterfaceParent' + } + } + + export interface a extends $.OutputField { + name: 'a' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + + export interface b extends $.OutputField { + name: 'b' + arguments: {} + inlineType: [1] + namedType: $$NamedTypes.$$String + } + } + // // // @@ -1523,6 +2055,53 @@ export namespace Schema { | 'Object1' } + // ChildAInterfaceHierarchyMember + // -------------------------------------------------------------------------------------------------- + // + + export interface ChildAInterfaceHierarchyMember extends $.Enum { + name: 'ChildAInterfaceHierarchyMember' + members: ['InterfaceChildA'] + membersUnion: 'InterfaceChildA' + } + + // ChildBInterfaceHierarchyMember + // -------------------------------------------------------------------------------------------------- + // + + export interface ChildBInterfaceHierarchyMember extends $.Enum { + name: 'ChildBInterfaceHierarchyMember' + members: ['InterfaceChildB'] + membersUnion: 'InterfaceChildB' + } + + // GrandparentInterfaceHierarchyMember + // -------------------------------------------------------------------------------------------------- + // + + export interface GrandparentInterfaceHierarchyMember extends $.Enum { + name: 'GrandparentInterfaceHierarchyMember' + members: ['InterfaceChildA', 'InterfaceChildB', 'InterfaceGrandparent', 'InterfaceParent'] + membersUnion: + | 'InterfaceChildA' + | 'InterfaceChildB' + | 'InterfaceGrandparent' + | 'InterfaceParent' + } + + // ParentInterfaceHierarchyMember + // -------------------------------------------------------------------------------------------------- + // + + export interface ParentInterfaceHierarchyMember extends $.Enum { + name: 'ParentInterfaceHierarchyMember' + members: ['InterfaceChildA', 'InterfaceChildB', 'InterfaceParent'] + membersUnion: + | 'InterfaceChildA' + | 'InterfaceChildB' + | 'InterfaceParent' + } + // // // @@ -1627,7 +2206,11 @@ export namespace Schema { export type $$Object1 = Object1 export type $$Object1ImplementingInterface = Object1ImplementingInterface export type $$Object2ImplementingInterface = Object2ImplementingInterface + export type $$ObjectChildA = ObjectChildA + export type $$ObjectChildB = ObjectChildB + export type $$ObjectGrandparent = ObjectGrandparent export type $$ObjectNested = ObjectNested + export type $$ObjectParent = ObjectParent export type $$ObjectUnion = ObjectUnion export type $$lowerCaseObject = lowerCaseObject export type $$lowerCaseObject2 = lowerCaseObject2 @@ -1638,12 +2221,20 @@ export namespace Schema { export type $$DateInterface1 = DateInterface1 export type $$Error = Error export type $$Interface = Interface + export type $$InterfaceChildA = InterfaceChildA + export type $$InterfaceChildB = InterfaceChildB + export type $$InterfaceGrandparent = InterfaceGrandparent + export type $$InterfaceParent = InterfaceParent export type $$DateUnion = DateUnion export type $$FooBarUnion = FooBarUnion export type $$Result = Result export type $$lowerCaseUnion = lowerCaseUnion export type $$ABCEnum = ABCEnum export type $$Case = Case + export type $$ChildAInterfaceHierarchyMember = ChildAInterfaceHierarchyMember + export type $$ChildBInterfaceHierarchyMember = ChildBInterfaceHierarchyMember + export type $$GrandparentInterfaceHierarchyMember = GrandparentInterfaceHierarchyMember + export type $$ParentInterfaceHierarchyMember = ParentInterfaceHierarchyMember export type $$Date = Date export type $$Boolean = Boolean export type $$Float = Float @@ -1685,6 +2276,10 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ Mutation: Schema.Mutation ABCEnum: Schema.ABCEnum Case: Schema.Case + ChildAInterfaceHierarchyMember: Schema.ChildAInterfaceHierarchyMember + ChildBInterfaceHierarchyMember: Schema.ChildBInterfaceHierarchyMember + GrandparentInterfaceHierarchyMember: Schema.GrandparentInterfaceHierarchyMember + ParentInterfaceHierarchyMember: Schema.ParentInterfaceHierarchyMember Bar: Schema.Bar DateObject1: Schema.DateObject1 DateObject2: Schema.DateObject2 @@ -1694,7 +2289,11 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ Object1: Schema.Object1 Object1ImplementingInterface: Schema.Object1ImplementingInterface Object2ImplementingInterface: Schema.Object2ImplementingInterface + ObjectChildA: Schema.ObjectChildA + ObjectChildB: Schema.ObjectChildB + ObjectGrandparent: Schema.ObjectGrandparent ObjectNested: Schema.ObjectNested + ObjectParent: Schema.ObjectParent ObjectUnion: Schema.ObjectUnion lowerCaseObject: Schema.lowerCaseObject lowerCaseObject2: Schema.lowerCaseObject2 @@ -1705,6 +2304,10 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ DateInterface1: Schema.DateInterface1 Error: Schema.Error Interface: Schema.Interface + InterfaceChildA: Schema.InterfaceChildA + InterfaceChildB: Schema.InterfaceChildB + InterfaceGrandparent: Schema.InterfaceGrandparent + InterfaceParent: Schema.InterfaceParent } objects: { Bar: Schema.Bar @@ -1716,7 +2319,11 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ Object1: Schema.Object1 Object1ImplementingInterface: Schema.Object1ImplementingInterface Object2ImplementingInterface: Schema.Object2ImplementingInterface + ObjectChildA: Schema.ObjectChildA + ObjectChildB: Schema.ObjectChildB + ObjectGrandparent: Schema.ObjectGrandparent ObjectNested: Schema.ObjectNested + ObjectParent: Schema.ObjectParent ObjectUnion: Schema.ObjectUnion lowerCaseObject: Schema.lowerCaseObject lowerCaseObject2: Schema.lowerCaseObject2 @@ -1731,6 +2338,10 @@ export interface Schema<$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ DateInterface1: Schema.DateInterface1 Error: Schema.Error Interface: Schema.Interface + InterfaceChildA: Schema.InterfaceChildA + InterfaceChildB: Schema.InterfaceChildB + InterfaceGrandparent: Schema.InterfaceGrandparent + InterfaceParent: Schema.InterfaceParent } scalarNamesUnion: | 'Date' diff --git a/tests/_/schemas/kitchen-sink/graffle/modules/select.ts b/tests/_/schemas/kitchen-sink/graffle/modules/select.ts index 38ba9c49a..64c215c55 100644 --- a/tests/_/schemas/kitchen-sink/graffle/modules/select.ts +++ b/tests/_/schemas/kitchen-sink/graffle/modules/select.ts @@ -55,69 +55,89 @@ export namespace Select { // OutputObject // -------------------------------------------------------------------------------------------------- // - export type Bar<$SelectionSet extends $$SelectionSets.Bar> = InferResult.OutputObject< + export type Bar<$SelectionSet extends $$SelectionSets.Bar> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Bar'] > - export type DateObject1<$SelectionSet extends $$SelectionSets.DateObject1> = InferResult.OutputObject< + export type DateObject1<$SelectionSet extends $$SelectionSets.DateObject1> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['DateObject1'] > - export type DateObject2<$SelectionSet extends $$SelectionSets.DateObject2> = InferResult.OutputObject< + export type DateObject2<$SelectionSet extends $$SelectionSets.DateObject2> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['DateObject2'] > - export type ErrorOne<$SelectionSet extends $$SelectionSets.ErrorOne> = InferResult.OutputObject< + export type ErrorOne<$SelectionSet extends $$SelectionSets.ErrorOne> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['ErrorOne'] > - export type ErrorTwo<$SelectionSet extends $$SelectionSets.ErrorTwo> = InferResult.OutputObject< + export type ErrorTwo<$SelectionSet extends $$SelectionSets.ErrorTwo> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['ErrorTwo'] > - export type Foo<$SelectionSet extends $$SelectionSets.Foo> = InferResult.OutputObject< + export type Foo<$SelectionSet extends $$SelectionSets.Foo> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Foo'] > - export type Object1<$SelectionSet extends $$SelectionSets.Object1> = InferResult.OutputObject< + export type Object1<$SelectionSet extends $$SelectionSets.Object1> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Object1'] > export type Object1ImplementingInterface<$SelectionSet extends $$SelectionSets.Object1ImplementingInterface> = - InferResult.OutputObject< + InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Object1ImplementingInterface'] > export type Object2ImplementingInterface<$SelectionSet extends $$SelectionSets.Object2ImplementingInterface> = - InferResult.OutputObject< + InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Object2ImplementingInterface'] > - export type ObjectNested<$SelectionSet extends $$SelectionSets.ObjectNested> = InferResult.OutputObject< + export type ObjectChildA<$SelectionSet extends $$SelectionSets.ObjectChildA> = InferResult.OutputObjectLike< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['ObjectChildA'] + > + export type ObjectChildB<$SelectionSet extends $$SelectionSets.ObjectChildB> = InferResult.OutputObjectLike< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['ObjectChildB'] + > + export type ObjectGrandparent<$SelectionSet extends $$SelectionSets.ObjectGrandparent> = InferResult.OutputObjectLike< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['ObjectGrandparent'] + > + export type ObjectNested<$SelectionSet extends $$SelectionSets.ObjectNested> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['ObjectNested'] > - export type ObjectUnion<$SelectionSet extends $$SelectionSets.ObjectUnion> = InferResult.OutputObject< + export type ObjectParent<$SelectionSet extends $$SelectionSets.ObjectParent> = InferResult.OutputObjectLike< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['ObjectParent'] + > + export type ObjectUnion<$SelectionSet extends $$SelectionSets.ObjectUnion> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['ObjectUnion'] > - export type lowerCaseObject<$SelectionSet extends $$SelectionSets.lowerCaseObject> = InferResult.OutputObject< + export type lowerCaseObject<$SelectionSet extends $$SelectionSets.lowerCaseObject> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['lowerCaseObject'] > - export type lowerCaseObject2<$SelectionSet extends $$SelectionSets.lowerCaseObject2> = InferResult.OutputObject< + export type lowerCaseObject2<$SelectionSet extends $$SelectionSets.lowerCaseObject2> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['lowerCaseObject2'] @@ -163,4 +183,24 @@ export namespace Select { $$Schema.Schema, $$Schema.Schema['allTypes']['Interface'] > + export type InterfaceChildA<$SelectionSet extends $$SelectionSets.InterfaceChildA> = InferResult.Interface< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['InterfaceChildA'] + > + export type InterfaceChildB<$SelectionSet extends $$SelectionSets.InterfaceChildB> = InferResult.Interface< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['InterfaceChildB'] + > + export type InterfaceGrandparent<$SelectionSet extends $$SelectionSets.InterfaceGrandparent> = InferResult.Interface< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['InterfaceGrandparent'] + > + export type InterfaceParent<$SelectionSet extends $$SelectionSets.InterfaceParent> = InferResult.Interface< + $SelectionSet, + $$Schema.Schema, + $$Schema.Schema['allTypes']['InterfaceParent'] + > } diff --git a/tests/_/schemas/kitchen-sink/graffle/modules/selection-sets.ts b/tests/_/schemas/kitchen-sink/graffle/modules/selection-sets.ts index 24ff87d00..46036fab8 100644 --- a/tests/_/schemas/kitchen-sink/graffle/modules/selection-sets.ts +++ b/tests/_/schemas/kitchen-sink/graffle/modules/selection-sets.ts @@ -153,6 +153,30 @@ export interface Query< * Select the `interface` field on the `Query` object. Its type is `Interface` (a `Interface` kind of type). */ interface?: Query.$interface$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `interfaceHierarchyChildA` field on the `Query` object. Its type is `InterfaceChildA` (a `Interface` kind of type). + */ + interfaceHierarchyChildA?: + | Query.interfaceHierarchyChildA$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> + /** + * Select the `interfaceHierarchyChildB` field on the `Query` object. Its type is `InterfaceChildB` (a `Interface` kind of type). + */ + interfaceHierarchyChildB?: + | Query.interfaceHierarchyChildB$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> + /** + * Select the `interfaceHierarchyGrandparents` field on the `Query` object. Its type is `InterfaceGrandparent` (a `Interface` kind of type). + */ + interfaceHierarchyGrandparents?: + | Query.interfaceHierarchyGrandparents$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> + /** + * Select the `interfaceHierarchyParents` field on the `Query` object. Its type is `InterfaceParent` (a `Interface` kind of type). + */ + interfaceHierarchyParents?: + | Query.interfaceHierarchyParents$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> /** * Select the `interfaceNonNull` field on the `Query` object. Its type is `Interface` (a `Interface` kind of type). */ @@ -1010,6 +1034,142 @@ export namespace Query { // -------------------------------------------------------------------------------------------------- + export type interfaceHierarchyChildA< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = interfaceHierarchyChildA$SelectionSet<_$Scalars> + + export interface interfaceHierarchyChildA$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$InterfaceChildA<_$Scalars> { + /** + * Arguments for `interfaceHierarchyChildA` field. No arguments are required so you may omit this. + */ + $?: interfaceHierarchyChildA$Arguments<_$Scalars> + } + + export interface interfaceHierarchyChildA$Arguments< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > { + $type?: $NamedTypes.$ChildAInterfaceHierarchyMember | undefined | null + } + + // --- expanded --- + + /** + * This is the "expanded" version of the `interfaceHierarchyChildA` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type interfaceHierarchyChildA$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + interfaceHierarchyChildA$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type interfaceHierarchyChildB< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = interfaceHierarchyChildB$SelectionSet<_$Scalars> + + export interface interfaceHierarchyChildB$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$InterfaceChildB<_$Scalars> { + /** + * Arguments for `interfaceHierarchyChildB` field. No arguments are required so you may omit this. + */ + $?: interfaceHierarchyChildB$Arguments<_$Scalars> + } + + export interface interfaceHierarchyChildB$Arguments< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > { + $type?: $NamedTypes.$ChildBInterfaceHierarchyMember | undefined | null + } + + // --- expanded --- + + /** + * This is the "expanded" version of the `interfaceHierarchyChildB` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type interfaceHierarchyChildB$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + interfaceHierarchyChildB$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type interfaceHierarchyGrandparents< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = interfaceHierarchyGrandparents$SelectionSet<_$Scalars> + + export interface interfaceHierarchyGrandparents$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$InterfaceGrandparent<_$Scalars> { + /** + * Arguments for `interfaceHierarchyGrandparents` field. No arguments are required so you may omit this. + */ + $?: interfaceHierarchyGrandparents$Arguments<_$Scalars> + } + + export interface interfaceHierarchyGrandparents$Arguments< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > { + $type?: $NamedTypes.$GrandparentInterfaceHierarchyMember | undefined | null + } + + // --- expanded --- + + /** + * This is the "expanded" version of the `interfaceHierarchyGrandparents` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type interfaceHierarchyGrandparents$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + interfaceHierarchyGrandparents$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type interfaceHierarchyParents< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = interfaceHierarchyParents$SelectionSet<_$Scalars> + + export interface interfaceHierarchyParents$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$InterfaceParent<_$Scalars> { + /** + * Arguments for `interfaceHierarchyParents` field. No arguments are required so you may omit this. + */ + $?: interfaceHierarchyParents$Arguments<_$Scalars> + } + + export interface interfaceHierarchyParents$Arguments< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > { + $type?: $NamedTypes.$ParentInterfaceHierarchyMember | undefined | null + } + + // --- expanded --- + + /** + * This is the "expanded" version of the `interfaceHierarchyParents` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type interfaceHierarchyParents$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + interfaceHierarchyParents$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + export type interfaceNonNull< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = interfaceNonNull$SelectionSet<_$Scalars> @@ -1951,6 +2111,21 @@ export type Case = | 'ErrorTwo' | 'Object1' +export type ChildAInterfaceHierarchyMember = 'InterfaceChildA' + +export type ChildBInterfaceHierarchyMember = 'InterfaceChildB' + +export type GrandparentInterfaceHierarchyMember = + | 'InterfaceChildA' + | 'InterfaceChildB' + | 'InterfaceGrandparent' + | 'InterfaceParent' + +export type ParentInterfaceHierarchyMember = + | 'InterfaceChildA' + | 'InterfaceChildB' + | 'InterfaceParent' + // // // @@ -2893,23 +3068,31 @@ export namespace Object2ImplementingInterface { > } -// ObjectNested +// ObjectChildA // -------------------------------------------------------------------------------------------------- // // ----------------------------------------| Entrypoint Interface | -export interface ObjectNested< +export interface ObjectChildA< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { /** - * Select the `id` field on the `ObjectNested` object. Its type is `ID` (a `ScalarStandard` kind of type). + * Select the `a` field on the `ObjectChildA` object. Its type is `String` (a `ScalarStandard` kind of type). */ - id?: ObjectNested.id$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + a?: ObjectChildA.a$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> /** - * Select the `object` field on the `ObjectNested` object. Its type is `Object1` (a `OutputObject` kind of type). + * Select the `b` field on the `ObjectChildA` object. Its type is `String` (a `ScalarStandard` kind of type). */ - object?: ObjectNested.$object$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + b?: ObjectChildA.b$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `c1` field on the `ObjectChildA` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + c1?: ObjectChildA.c1$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `me` field on the `ObjectChildA` object. Its type is `Boolean` (a `ScalarStandard` kind of type). + */ + me?: ObjectChildA.me$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> /** * Inline fragments for field groups. @@ -2920,8 +3103,8 @@ export interface ObjectNested< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | ObjectNested$FragmentInline<_$Scalars> - | ObjectNested$FragmentInline<_$Scalars>[] + | ObjectChildA$FragmentInline<_$Scalars> + | ObjectChildA$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. @@ -2933,140 +3116,134 @@ export interface ObjectNested< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface ObjectNested$FragmentInline< +export interface ObjectChildA$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends ObjectNested<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends ObjectChildA<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } // ----------------------------------------| Fields | -export namespace ObjectNested { - export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace ObjectChildA { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface id$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `id` type. It is identical except for the fact + * This is the "expanded" version of the `a` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type id$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> > // -------------------------------------------------------------------------------------------------- - export type $object<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = - $object$SelectionSet<_$Scalars> + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> - export interface $object$SelectionSet< + export interface b$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, - > extends $Select.Bases.Base, $NamedTypes.$Object1<_$Scalars> {} + > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `$object` type. It is identical except for the fact + * This is the "expanded" version of the `b` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type $object$Expanded< + export type b$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< - $object$SelectionSet<_$Scalars> + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> > -} -// ObjectUnion -// -------------------------------------------------------------------------------------------------- -// + // -------------------------------------------------------------------------------------------------- -// ----------------------------------------| Entrypoint Interface | + export type c1<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | c1$SelectionSet<_$Scalars> -export interface ObjectUnion< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends $Select.Bases.ObjectLike { - /** - * Select the `fooBarUnion` field on the `ObjectUnion` object. Its type is `FooBarUnion` (a `Union` kind of type). - */ - fooBarUnion?: - | ObjectUnion.fooBarUnion$Expanded<_$Scalars> - | $Select.SelectAlias.SelectAlias> + export interface c1$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} - /** - * Inline fragments for field groups. - * - * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the - * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. - * - * @see https://spec.graphql.org/draft/#sec-Inline-Fragments - */ - ___?: - | ObjectUnion$FragmentInline<_$Scalars> - | ObjectUnion$FragmentInline<_$Scalars>[] + // --- expanded --- /** - * A meta field. Is the name of the type being selected. - * - * @see https://graphql.org/learn/queries/#meta-fields + * This is the "expanded" version of the `c1` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. */ - __typename?: - | $Select.Indicator.NoArgsIndicator$Expanded - | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> -} - -export interface ObjectUnion$FragmentInline< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends ObjectUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { -} + export type c1$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | c1$SelectionSet<_$Scalars> + > -// ----------------------------------------| Fields | + // -------------------------------------------------------------------------------------------------- -export namespace ObjectUnion { - export type fooBarUnion< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, - > = fooBarUnion$SelectionSet<_$Scalars> + export type me<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> - export interface fooBarUnion$SelectionSet< + export interface me$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, - > extends $Select.Bases.Base, $NamedTypes.$FooBarUnion<_$Scalars> {} + > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `fooBarUnion` type. It is identical except for the fact + * This is the "expanded" version of the `me` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type fooBarUnion$Expanded< + export type me$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< - fooBarUnion$SelectionSet<_$Scalars> + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> > } -// lowerCaseObject +// ObjectChildB // -------------------------------------------------------------------------------------------------- // // ----------------------------------------| Entrypoint Interface | -export interface lowerCaseObject< +export interface ObjectChildB< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { /** - * Select the `id` field on the `lowerCaseObject` object. Its type is `ID` (a `ScalarStandard` kind of type). + * Select the `a` field on the `ObjectChildB` object. Its type is `String` (a `ScalarStandard` kind of type). */ - id?: lowerCaseObject.id$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + a?: ObjectChildB.a$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `b` field on the `ObjectChildB` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + b?: ObjectChildB.b$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `c2` field on the `ObjectChildB` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + c2?: ObjectChildB.c2$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `me` field on the `ObjectChildB` object. Its type is `Int` (a `ScalarStandard` kind of type). + */ + me?: ObjectChildB.me$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> /** * Inline fragments for field groups. @@ -3077,8 +3254,8 @@ export interface lowerCaseObject< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | lowerCaseObject$FragmentInline<_$Scalars> - | lowerCaseObject$FragmentInline<_$Scalars>[] + | ObjectChildB$FragmentInline<_$Scalars> + | ObjectChildB$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. @@ -3090,73 +3267,591 @@ export interface lowerCaseObject< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface lowerCaseObject$FragmentInline< +export interface ObjectChildB$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends lowerCaseObject<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends ObjectChildB<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } // ----------------------------------------| Fields | -export namespace lowerCaseObject { - export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace ObjectChildB { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface id$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `id` type. It is identical except for the fact + * This is the "expanded" version of the `a` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type id$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> > -} -// lowerCaseObject2 -// -------------------------------------------------------------------------------------------------- -// + // -------------------------------------------------------------------------------------------------- -// ----------------------------------------| Entrypoint Interface | + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> -export interface lowerCaseObject2< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends $Select.Bases.ObjectLike { - /** - * Select the `int` field on the `lowerCaseObject2` object. Its type is `Int` (a `ScalarStandard` kind of type). - */ - int?: lowerCaseObject2.int$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} - /** - * Inline fragments for field groups. - * - * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the - * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. - * - * @see https://spec.graphql.org/draft/#sec-Inline-Fragments - */ - ___?: - | lowerCaseObject2$FragmentInline<_$Scalars> - | lowerCaseObject2$FragmentInline<_$Scalars>[] + // --- expanded --- /** - * A meta field. Is the name of the type being selected. - * - * @see https://graphql.org/learn/queries/#meta-fields + * This is the "expanded" version of the `b` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. */ - __typename?: - | $Select.Indicator.NoArgsIndicator$Expanded - | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> -} - + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type c2<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | c2$SelectionSet<_$Scalars> + + export interface c2$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `c2` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type c2$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | c2$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type me<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + + export interface me$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `me` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type me$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + > +} + +// ObjectGrandparent +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface ObjectGrandparent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the `a` field on the `ObjectGrandparent` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + a?: ObjectGrandparent.a$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `me` field on the `ObjectGrandparent` object. Its type is `Int` (a `ScalarStandard` kind of type). + */ + me?: ObjectGrandparent.me$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | ObjectGrandparent$FragmentInline<_$Scalars> + | ObjectGrandparent$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface ObjectGrandparent$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends ObjectGrandparent<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace ObjectGrandparent { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + + export interface a$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `a` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type a$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type me<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + + export interface me$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `me` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type me$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + > +} + +// ObjectNested +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface ObjectNested< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the `id` field on the `ObjectNested` object. Its type is `ID` (a `ScalarStandard` kind of type). + */ + id?: ObjectNested.id$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `object` field on the `ObjectNested` object. Its type is `Object1` (a `OutputObject` kind of type). + */ + object?: ObjectNested.$object$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | ObjectNested$FragmentInline<_$Scalars> + | ObjectNested$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface ObjectNested$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends ObjectNested<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace ObjectNested { + export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + + export interface id$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `id` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type id$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type $object<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + $object$SelectionSet<_$Scalars> + + export interface $object$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$Object1<_$Scalars> {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `$object` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type $object$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + $object$SelectionSet<_$Scalars> + > +} + +// ObjectParent +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface ObjectParent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the `a` field on the `ObjectParent` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + a?: ObjectParent.a$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `b` field on the `ObjectParent` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + b?: ObjectParent.b$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + /** + * Select the `me` field on the `ObjectParent` object. Its type is `String` (a `ScalarStandard` kind of type). + */ + me?: ObjectParent.me$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | ObjectParent$FragmentInline<_$Scalars> + | ObjectParent$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface ObjectParent$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends ObjectParent<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace ObjectParent { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + + export interface a$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `a` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type a$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `b` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + // -------------------------------------------------------------------------------------------------- + + export type me<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + + export interface me$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `me` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type me$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | me$SelectionSet<_$Scalars> + > +} + +// ObjectUnion +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface ObjectUnion< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the `fooBarUnion` field on the `ObjectUnion` object. Its type is `FooBarUnion` (a `Union` kind of type). + */ + fooBarUnion?: + | ObjectUnion.fooBarUnion$Expanded<_$Scalars> + | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | ObjectUnion$FragmentInline<_$Scalars> + | ObjectUnion$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface ObjectUnion$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends ObjectUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace ObjectUnion { + export type fooBarUnion< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = fooBarUnion$SelectionSet<_$Scalars> + + export interface fooBarUnion$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base, $NamedTypes.$FooBarUnion<_$Scalars> {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `fooBarUnion` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type fooBarUnion$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + fooBarUnion$SelectionSet<_$Scalars> + > +} + +// lowerCaseObject +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface lowerCaseObject< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the `id` field on the `lowerCaseObject` object. Its type is `ID` (a `ScalarStandard` kind of type). + */ + id?: lowerCaseObject.id$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | lowerCaseObject$FragmentInline<_$Scalars> + | lowerCaseObject$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface lowerCaseObject$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends lowerCaseObject<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// ----------------------------------------| Fields | + +export namespace lowerCaseObject { + export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + + export interface id$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `id` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type id$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + > +} + +// lowerCaseObject2 +// -------------------------------------------------------------------------------------------------- +// + +// ----------------------------------------| Entrypoint Interface | + +export interface lowerCaseObject2< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + /** + * Select the `int` field on the `lowerCaseObject2` object. Its type is `Int` (a `ScalarStandard` kind of type). + */ + int?: lowerCaseObject2.int$Expanded<_$Scalars> | $Select.SelectAlias.SelectAlias> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | lowerCaseObject2$FragmentInline<_$Scalars> + | lowerCaseObject2$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + export interface lowerCaseObject2$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends lowerCaseObject2<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { @@ -3265,30 +3960,296 @@ export interface FooBarUnion< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | FooBarUnion$FragmentInline<_$Scalars> - | FooBarUnion$FragmentInline<_$Scalars>[] -} -export interface FooBarUnion$FragmentInline< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends FooBarUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { -} + | FooBarUnion$FragmentInline<_$Scalars> + | FooBarUnion$FragmentInline<_$Scalars>[] +} +export interface FooBarUnion$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends FooBarUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export interface Result< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> { + /** + * A meta field. Is the name of the type being selected. Since this is a union type and thus polymorphic, + * the name is one of the member type names, whichever is ultimately returned at runtime. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> + + ___on_ErrorOne?: ErrorOne<_$Scalars> + ___on_ErrorTwo?: ErrorTwo<_$Scalars> + ___on_Object1?: Object1<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | Result$FragmentInline<_$Scalars> + | Result$FragmentInline<_$Scalars>[] +} +export interface Result$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends Result<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export interface lowerCaseUnion< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> { + /** + * A meta field. Is the name of the type being selected. Since this is a union type and thus polymorphic, + * the name is one of the member type names, whichever is ultimately returned at runtime. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> + + ___on_lowerCaseObject?: lowerCaseObject<_$Scalars> + ___on_lowerCaseObject2?: lowerCaseObject2<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | lowerCaseUnion$FragmentInline<_$Scalars> + | lowerCaseUnion$FragmentInline<_$Scalars>[] +} +export interface lowerCaseUnion$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends lowerCaseUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +// +// +// +// +// +// +// ================================================================================================== +// Interface +// ================================================================================================== +// +// +// +// +// +// + +// DateInterface1 +// -------------------------------------------------------------------------------------------------- +// + +export interface DateInterface1< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + date1?: DateInterface1.date1<_$Scalars> + ___on_DateObject1?: DateObject1<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | DateInterface1$FragmentInline<_$Scalars> + | DateInterface1$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, + * the name is one of the implementor type names, whichever is ultimately returned at runtime. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface DateInterface1$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends DateInterface1<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export namespace DateInterface1 { + export type date1<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | date1$SelectionSet<_$Scalars> + + export interface date1$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `date1` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type date1$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | date1$SelectionSet<_$Scalars> + > +} + +// Error +// -------------------------------------------------------------------------------------------------- +// + +export interface Error<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> + extends $Select.Bases.ObjectLike +{ + message?: Error.message<_$Scalars> + ___on_ErrorOne?: ErrorOne<_$Scalars> + ___on_ErrorTwo?: ErrorTwo<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | Error$FragmentInline<_$Scalars> + | Error$FragmentInline<_$Scalars>[] + + /** + * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, + * the name is one of the implementor type names, whichever is ultimately returned at runtime. + * + * @see https://graphql.org/learn/queries/#meta-fields + */ + __typename?: + | $Select.Indicator.NoArgsIndicator$Expanded + | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} + +export interface Error$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends Error<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export namespace Error { + export type message<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | message$SelectionSet<_$Scalars> + + export interface message$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `message` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type message$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | message$SelectionSet<_$Scalars> + > +} + +// Interface +// -------------------------------------------------------------------------------------------------- +// + +export interface Interface< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + id?: Interface.id<_$Scalars> + ___on_Object1ImplementingInterface?: Object1ImplementingInterface<_$Scalars> + ___on_Object2ImplementingInterface?: Object2ImplementingInterface<_$Scalars> + + /** + * Inline fragments for field groups. + * + * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the + * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. + * + * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + */ + ___?: + | Interface$FragmentInline<_$Scalars> + | Interface$FragmentInline<_$Scalars>[] -export interface Result< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> { /** - * A meta field. Is the name of the type being selected. Since this is a union type and thus polymorphic, - * the name is one of the member type names, whichever is ultimately returned at runtime. + * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, + * the name is one of the implementor type names, whichever is ultimately returned at runtime. * * @see https://graphql.org/learn/queries/#meta-fields */ __typename?: | $Select.Indicator.NoArgsIndicator$Expanded | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} - ___on_ErrorOne?: ErrorOne<_$Scalars> - ___on_ErrorTwo?: ErrorTwo<_$Scalars> - ___on_Object1?: Object1<_$Scalars> +export interface Interface$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends Interface<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export namespace Interface { + export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + + export interface id$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `id` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type id$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | id$SelectionSet<_$Scalars> + > +} + +// InterfaceChildA +// -------------------------------------------------------------------------------------------------- +// + +export interface InterfaceChildA< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + a?: InterfaceChildA.a<_$Scalars> + b?: InterfaceChildA.b<_$Scalars> + c1?: InterfaceChildA.c1<_$Scalars> + ___on_ObjectChildA?: ObjectChildA<_$Scalars> /** * Inline fragments for field groups. @@ -3299,72 +4260,104 @@ export interface Result< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | Result$FragmentInline<_$Scalars> - | Result$FragmentInline<_$Scalars>[] -} -export interface Result$FragmentInline< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends Result<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { -} + | InterfaceChildA$FragmentInline<_$Scalars> + | InterfaceChildA$FragmentInline<_$Scalars>[] -export interface lowerCaseUnion< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> { /** - * A meta field. Is the name of the type being selected. Since this is a union type and thus polymorphic, - * the name is one of the member type names, whichever is ultimately returned at runtime. + * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, + * the name is one of the implementor type names, whichever is ultimately returned at runtime. * * @see https://graphql.org/learn/queries/#meta-fields */ __typename?: | $Select.Indicator.NoArgsIndicator$Expanded | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> +} - ___on_lowerCaseObject?: lowerCaseObject<_$Scalars> - ___on_lowerCaseObject2?: lowerCaseObject2<_$Scalars> +export interface InterfaceChildA$FragmentInline< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends InterfaceChildA<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +} + +export namespace InterfaceChildA { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + + export interface a$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- /** - * Inline fragments for field groups. - * - * Generally a niche feature. This can be useful for example to apply an `@include` directive to a subset of the - * selection set in turn allowing you to pass a variable to opt in/out of that selection during execution on the server. - * - * @see https://spec.graphql.org/draft/#sec-Inline-Fragments + * This is the "expanded" version of the `a` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. */ - ___?: - | lowerCaseUnion$FragmentInline<_$Scalars> - | lowerCaseUnion$FragmentInline<_$Scalars>[] -} -export interface lowerCaseUnion$FragmentInline< - _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends lowerCaseUnion<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { -} + export type a$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | a$SelectionSet<_$Scalars> + > -// -// -// -// -// -// -// ================================================================================================== -// Interface -// ================================================================================================== -// -// -// -// -// -// + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> -// DateInterface1 + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `b` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + export type c1<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | c1$SelectionSet<_$Scalars> + + export interface c1$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `c1` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type c1$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | c1$SelectionSet<_$Scalars> + > +} + +// InterfaceChildB // -------------------------------------------------------------------------------------------------- // -export interface DateInterface1< +export interface InterfaceChildB< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { - date1?: DateInterface1.date1<_$Scalars> - ___on_DateObject1?: DateObject1<_$Scalars> + a?: InterfaceChildB.a<_$Scalars> + b?: InterfaceChildB.b<_$Scalars> + c2?: InterfaceChildB.c2<_$Scalars> + ___on_ObjectChildB?: ObjectChildB<_$Scalars> /** * Inline fragments for field groups. @@ -3375,8 +4368,8 @@ export interface DateInterface1< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | DateInterface1$FragmentInline<_$Scalars> - | DateInterface1$FragmentInline<_$Scalars>[] + | InterfaceChildB$FragmentInline<_$Scalars> + | InterfaceChildB$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, @@ -3389,45 +4382,94 @@ export interface DateInterface1< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface DateInterface1$FragmentInline< +export interface InterfaceChildB$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends DateInterface1<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends InterfaceChildB<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } -export namespace DateInterface1 { - export type date1<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace InterfaceChildB { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | date1$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface date1$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `date1` type. It is identical except for the fact + * This is the "expanded" version of the `a` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type date1$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | date1$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> + > + + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `b` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + > + + export type c2<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | c2$SelectionSet<_$Scalars> + + export interface c2$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `c2` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type c2$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | c2$SelectionSet<_$Scalars> > } -// Error +// InterfaceGrandparent // -------------------------------------------------------------------------------------------------- // -export interface Error<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> - extends $Select.Bases.ObjectLike -{ - message?: Error.message<_$Scalars> - ___on_ErrorOne?: ErrorOne<_$Scalars> - ___on_ErrorTwo?: ErrorTwo<_$Scalars> +export interface InterfaceGrandparent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, +> extends $Select.Bases.ObjectLike { + a?: InterfaceGrandparent.a<_$Scalars> + ___on_ObjectChildA?: ObjectChildA<_$Scalars> + ___on_ObjectChildB?: ObjectChildB<_$Scalars> + ___on_ObjectGrandparent?: ObjectGrandparent<_$Scalars> + ___on_ObjectParent?: ObjectParent<_$Scalars> + ___on_InterfaceChildA?: InterfaceChildA<_$Scalars> + ___on_InterfaceChildB?: InterfaceChildB<_$Scalars> + ___on_InterfaceParent?: InterfaceParent<_$Scalars> /** * Inline fragments for field groups. @@ -3438,8 +4480,8 @@ export interface Error<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | Error$FragmentInline<_$Scalars> - | Error$FragmentInline<_$Scalars>[] + | InterfaceGrandparent$FragmentInline<_$Scalars> + | InterfaceGrandparent$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, @@ -3452,45 +4494,49 @@ export interface Error<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$ | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface Error$FragmentInline< +export interface InterfaceGrandparent$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends Error<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends InterfaceGrandparent<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } -export namespace Error { - export type message<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace InterfaceGrandparent { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | message$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface message$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `message` type. It is identical except for the fact + * This is the "expanded" version of the `a` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type message$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | message$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> > } -// Interface +// InterfaceParent // -------------------------------------------------------------------------------------------------- // -export interface Interface< +export interface InterfaceParent< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.ObjectLike { - id?: Interface.id<_$Scalars> - ___on_Object1ImplementingInterface?: Object1ImplementingInterface<_$Scalars> - ___on_Object2ImplementingInterface?: Object2ImplementingInterface<_$Scalars> + a?: InterfaceParent.a<_$Scalars> + b?: InterfaceParent.b<_$Scalars> + ___on_ObjectChildA?: ObjectChildA<_$Scalars> + ___on_ObjectChildB?: ObjectChildB<_$Scalars> + ___on_ObjectParent?: ObjectParent<_$Scalars> + ___on_InterfaceChildA?: InterfaceChildA<_$Scalars> + ___on_InterfaceChildB?: InterfaceChildB<_$Scalars> /** * Inline fragments for field groups. @@ -3501,8 +4547,8 @@ export interface Interface< * @see https://spec.graphql.org/draft/#sec-Inline-Fragments */ ___?: - | Interface$FragmentInline<_$Scalars> - | Interface$FragmentInline<_$Scalars>[] + | InterfaceParent$FragmentInline<_$Scalars> + | InterfaceParent$FragmentInline<_$Scalars>[] /** * A meta field. Is the name of the type being selected. Since this is a interface type and thus polymorphic, @@ -3515,32 +4561,54 @@ export interface Interface< | $Select.SelectAlias.SelectAlias<$Select.Indicator.NoArgsIndicator> } -export interface Interface$FragmentInline< +export interface InterfaceParent$FragmentInline< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, -> extends Interface<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { +> extends InterfaceParent<_$Scalars>, $Select.Directive.$Groups.InlineFragment.Fields { } -export namespace Interface { - export type id<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = +export namespace InterfaceParent { + export type a<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> - export interface id$SelectionSet< + export interface a$SelectionSet< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > extends $Select.Bases.Base {} // --- expanded --- /** - * This is the "expanded" version of the `id` type. It is identical except for the fact + * This is the "expanded" version of the `a` type. It is identical except for the fact * that IDEs will display its contents (a union type) directly, rather than the name of this type. * In some cases, this is a preferable DX, making the types easier to read for users. */ - export type id$Expanded< + export type a$Expanded< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = $$Utilities.Simplify< | $Select.Indicator.NoArgsIndicator - | id$SelectionSet<_$Scalars> + | a$SelectionSet<_$Scalars> + > + + export type b<_$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty> = + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> + + export interface b$SelectionSet< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > extends $Select.Bases.Base {} + + // --- expanded --- + + /** + * This is the "expanded" version of the `b` type. It is identical except for the fact + * that IDEs will display its contents (a union type) directly, rather than the name of this type. + * In some cases, this is a preferable DX, making the types easier to read for users. + */ + export type b$Expanded< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = $$Utilities.Simplify< + | $Select.Indicator.NoArgsIndicator + | b$SelectionSet<_$Scalars> > } @@ -3559,6 +4627,10 @@ export namespace $NamedTypes { > = Mutation<_$Scalars> export type $ABCEnum = ABCEnum export type $Case = Case + export type $ChildAInterfaceHierarchyMember = ChildAInterfaceHierarchyMember + export type $ChildBInterfaceHierarchyMember = ChildBInterfaceHierarchyMember + export type $GrandparentInterfaceHierarchyMember = GrandparentInterfaceHierarchyMember + export type $ParentInterfaceHierarchyMember = ParentInterfaceHierarchyMember export type $InputObject< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = InputObject<_$Scalars> @@ -3596,9 +4668,21 @@ export namespace $NamedTypes { export type $Object2ImplementingInterface< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = Object2ImplementingInterface<_$Scalars> + export type $ObjectChildA< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = ObjectChildA<_$Scalars> + export type $ObjectChildB< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = ObjectChildB<_$Scalars> + export type $ObjectGrandparent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = ObjectGrandparent<_$Scalars> export type $ObjectNested< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = ObjectNested<_$Scalars> + export type $ObjectParent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = ObjectParent<_$Scalars> export type $ObjectUnion< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = ObjectUnion<_$Scalars> @@ -3627,4 +4711,16 @@ export namespace $NamedTypes { export type $Interface< _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, > = Interface<_$Scalars> + export type $InterfaceChildA< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = InterfaceChildA<_$Scalars> + export type $InterfaceChildB< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = InterfaceChildB<_$Scalars> + export type $InterfaceGrandparent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = InterfaceGrandparent<_$Scalars> + export type $InterfaceParent< + _$Scalars extends $$Utilities.Schema.Scalar.Registry = $$Utilities.Schema.Scalar.Registry.Empty, + > = InterfaceParent<_$Scalars> } diff --git a/tests/_/schemas/kitchen-sink/graffle/schema.graphql b/tests/_/schemas/kitchen-sink/graffle/schema.graphql index 022cebc68..f847cbd14 100644 --- a/tests/_/schemas/kitchen-sink/graffle/schema.graphql +++ b/tests/_/schemas/kitchen-sink/graffle/schema.graphql @@ -17,6 +17,14 @@ enum Case { Object1 } +enum ChildAInterfaceHierarchyMember { + InterfaceChildA +} + +enum ChildBInterfaceHierarchyMember { + InterfaceChildB +} + """ A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.This scalar is serialized to a string in ISO 8601 format and parsed from a string in ISO 8601 format. """ @@ -59,6 +67,13 @@ type Foo { """Union documentation.""" union FooBarUnion = Bar | Foo +enum GrandparentInterfaceHierarchyMember { + InterfaceChildA + InterfaceChildB + InterfaceGrandparent + InterfaceParent +} + input InputObject { date: Date dateRequired: Date! @@ -83,6 +98,27 @@ interface Interface { id: ID } +interface InterfaceChildA implements InterfaceGrandparent & InterfaceParent { + a: String! + b: String! + c1: String! +} + +interface InterfaceChildB implements InterfaceGrandparent & InterfaceParent { + a: String! + b: String! + c2: String! +} + +interface InterfaceGrandparent { + a: String! +} + +interface InterfaceParent implements InterfaceGrandparent { + a: String! + b: String! +} + type Mutation { id: ID idNonNull: ID! @@ -107,15 +143,46 @@ type Object2ImplementingInterface implements Interface { id: ID } +type ObjectChildA implements InterfaceChildA & InterfaceGrandparent & InterfaceParent { + a: String! + b: String! + c1: String! + me: Boolean! +} + +type ObjectChildB implements InterfaceChildB & InterfaceGrandparent & InterfaceParent { + a: String! + b: String! + c2: String! + me: [Int!]! +} + +type ObjectGrandparent implements InterfaceGrandparent { + a: String! + me: Int! +} + type ObjectNested { id: ID object: Object1 } +type ObjectParent implements InterfaceGrandparent & InterfaceParent { + a: String! + b: String! + me: String! +} + type ObjectUnion { fooBarUnion: FooBarUnion } +enum ParentInterfaceHierarchyMember { + InterfaceChildA + InterfaceChildB + InterfaceParent +} + type Query { InputObjectNested(input: InputObjectNested): ID InputObjectNestedNonNull(input: InputObjectNestedNonNull!): ID @@ -141,6 +208,10 @@ type Query { id: ID idNonNull: ID! interface: Interface + interfaceHierarchyChildA(type: ChildAInterfaceHierarchyMember): [InterfaceChildA!]! + interfaceHierarchyChildB(type: ChildBInterfaceHierarchyMember): [InterfaceChildB!]! + interfaceHierarchyGrandparents(type: GrandparentInterfaceHierarchyMember): [InterfaceGrandparent!]! + interfaceHierarchyParents(type: ParentInterfaceHierarchyMember): [InterfaceParent!]! interfaceNonNull: Interface! interfaceWithArgs(id: ID!): Interface listInt: [Int] diff --git a/tests/_/schemas/kitchen-sink/schema.ts b/tests/_/schemas/kitchen-sink/schema.ts index 340431161..807edceac 100644 --- a/tests/_/schemas/kitchen-sink/schema.ts +++ b/tests/_/schemas/kitchen-sink/schema.ts @@ -3,7 +3,14 @@ import SchemaBuilder from '@pothos/core' import SimpleObjectsPlugin from '@pothos/plugin-simple-objects' import { DateTimeISOResolver } from 'graphql-scalars' -import { db } from '../db.js' +import { values } from '../../../../src/lib/prelude.js' +import { + db, + GrandparentInterfaceHierarchyMemberEnum, + InterfaceChildAEnum, + InterfaceChildBEnum, + InterfaceParentEnum, +} from '../db.js' const builder = new SchemaBuilder<{ Scalars: { @@ -18,6 +25,81 @@ const builder = new SchemaBuilder<{ builder.addScalarType(`Date`, DateTimeISOResolver, {}) +const InterfaceGrandparent = builder.interfaceRef(`InterfaceGrandparent`).implement({ + resolveType(parent) { + // @ts-expect-error + return parent.type + }, + fields: t => ({ + a: t.string({ nullable: false }), + }), +}) + +const _ObjectGrandparent = builder.objectRef(`ObjectGrandparent`).implement({ + interfaces: [InterfaceGrandparent], + fields: t => ({ + me: t.int({ nullable: false, resolve: parent => parent.me }), + }), +}) + +const InterfaceParent = builder.interfaceRef(`InterfaceParent`).implement({ + interfaces: [InterfaceGrandparent], + resolveType(parent) { + // @ts-expect-error + return parent.type + }, + fields: t => ({ + b: t.string({ nullable: false }), + }), +}) + +const _ObjectParent = builder.objectRef(`ObjectParent`).implement({ + interfaces: [InterfaceParent, InterfaceGrandparent], + fields: t => ({ + me: t.string({ nullable: false, resolve: parent => parent.me }), + }), +}) + +const InterfaceChildA = builder.interfaceRef(`InterfaceChildA`).implement({ + interfaces: [InterfaceParent, InterfaceGrandparent], + resolveType(parent) { + // @ts-expect-error + return parent.type + }, + fields: t => ({ + c1: t.string({ nullable: false }), + }), +}) + +const _ObjectChildA = builder.objectRef(`ObjectChildA`).implement({ + interfaces: [InterfaceChildA, InterfaceParent, InterfaceGrandparent], + fields: t => ({ + me: t.boolean({ nullable: false, resolve: parent => parent.me }), + }), +}) + +const InterfaceChildB = builder.interfaceRef(`InterfaceChildB`).implement({ + interfaces: [InterfaceParent, InterfaceGrandparent], + resolveType(parent) { + // @ts-expect-error + return parent.type + }, + fields: t => ({ + c2: t.string({ nullable: false }), + }), +}) + +const _ObjectChildB = builder.objectRef(`ObjectChildB`).implement({ + interfaces: [InterfaceChildB, InterfaceParent, InterfaceGrandparent], + fields: t => ({ + me: t.field({ + nullable: false, + type: t.listRef(`Int`), + resolve: parent => parent.me, + }), + }), +}) + const DateInterface1 = builder.simpleInterface(`DateInterface1`, { fields: t => ({ date1: t.field({ type: `Date` }), @@ -210,8 +292,72 @@ const ObjectUnion = builder.simpleObject(`ObjectUnion`, { }), }) +const InterfaceHierarchyMemberGrandparent = builder.enumType(`GrandparentInterfaceHierarchyMember`, { + values: values(GrandparentInterfaceHierarchyMemberEnum), +}) + +const InterfaceHierarchyMemberParent = builder.enumType(`ParentInterfaceHierarchyMember`, { + values: values(InterfaceParentEnum), +}) + +const InterfaceHierarchyMemberChildA = builder.enumType(`ChildAInterfaceHierarchyMember`, { + values: values(InterfaceChildAEnum), +}) + +const InterfaceHierarchyMemberChildB = builder.enumType(`ChildBInterfaceHierarchyMember`, { + values: values(InterfaceChildBEnum), +}) + builder.queryType({ fields: t => ({ + interfaceHierarchyGrandparents: t.field({ + type: t.listRef(InterfaceGrandparent), + nullable: false, + args: { + type: t.arg({ type: InterfaceHierarchyMemberGrandparent, required: false }), + }, + resolve: (_, args) => { + const type = args.type ?? `InterfaceGrandparent` + const data = db.interfaceHierarchLists[type].mixed + return data + }, + }), + interfaceHierarchyParents: t.field({ + type: t.listRef(InterfaceParent), + nullable: false, + args: { + type: t.arg({ type: InterfaceHierarchyMemberParent, required: false }), + }, + resolve: (_, args) => { + const type = args.type ?? `InterfaceParent` + const data = db.interfaceHierarchLists[type].mixed + return data + }, + }), + interfaceHierarchyChildA: t.field({ + type: t.listRef(InterfaceChildA), + nullable: false, + args: { + type: t.arg({ type: InterfaceHierarchyMemberChildA, required: false }), + }, + resolve: (_, args) => { + const type = args.type ?? `InterfaceChildA` + const data = db.interfaceHierarchLists[type].mixed + return data + }, + }), + interfaceHierarchyChildB: t.field({ + type: t.listRef(InterfaceChildB), + nullable: false, + args: { + type: t.arg({ type: InterfaceHierarchyMemberChildB, required: false }), + }, + resolve: (_, args) => { + const type = args.type ?? `InterfaceChildB` + const data = db.interfaceHierarchLists[type].mixed + return data + }, + }), // error error: t.string({ args: { case: t.arg.string({ required: false }) }, diff --git a/tests/_/schemas/pokemon/graffle/modules/schema.ts b/tests/_/schemas/pokemon/graffle/modules/schema.ts index 4282b1932..f291b2c74 100644 --- a/tests/_/schemas/pokemon/graffle/modules/schema.ts +++ b/tests/_/schemas/pokemon/graffle/modules/schema.ts @@ -779,6 +779,10 @@ export namespace Schema { // export interface Being extends $.Interface { + fields: { + id: Being.id + name: Being.name + } name: 'Being' implementors: [Patron, Pokemon, Trainer] implementorsUnion: @@ -792,6 +796,32 @@ export namespace Schema { } } + export namespace Being { + export interface __typename extends $.OutputField { + name: '__typename' + arguments: {} + inlineType: [1] + namedType: { + kind: '__typename' + value: 'Being' + } + } + + export interface id extends $.OutputField { + name: 'id' + arguments: {} + inlineType: [0] + namedType: $$NamedTypes.$$ID + } + + export interface name extends $.OutputField { + name: 'name' + arguments: {} + inlineType: [0] + namedType: $$NamedTypes.$$String + } + } + // // // diff --git a/tests/_/schemas/pokemon/graffle/modules/select.ts b/tests/_/schemas/pokemon/graffle/modules/select.ts index c1b62970b..067d8ad92 100644 --- a/tests/_/schemas/pokemon/graffle/modules/select.ts +++ b/tests/_/schemas/pokemon/graffle/modules/select.ts @@ -55,36 +55,36 @@ export namespace Select { // OutputObject // -------------------------------------------------------------------------------------------------- // - export type BattleRoyale<$SelectionSet extends $$SelectionSets.BattleRoyale> = InferResult.OutputObject< + export type BattleRoyale<$SelectionSet extends $$SelectionSets.BattleRoyale> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['BattleRoyale'] > - export type BattleTrainer<$SelectionSet extends $$SelectionSets.BattleTrainer> = InferResult.OutputObject< + export type BattleTrainer<$SelectionSet extends $$SelectionSets.BattleTrainer> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['BattleTrainer'] > - export type BattleWild<$SelectionSet extends $$SelectionSets.BattleWild> = InferResult.OutputObject< + export type BattleWild<$SelectionSet extends $$SelectionSets.BattleWild> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['BattleWild'] > export type CombatantMultiPokemon<$SelectionSet extends $$SelectionSets.CombatantMultiPokemon> = - InferResult.OutputObject<$SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['CombatantMultiPokemon']> + InferResult.OutputObjectLike<$SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['CombatantMultiPokemon']> export type CombatantSinglePokemon<$SelectionSet extends $$SelectionSets.CombatantSinglePokemon> = - InferResult.OutputObject<$SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['CombatantSinglePokemon']> - export type Patron<$SelectionSet extends $$SelectionSets.Patron> = InferResult.OutputObject< + InferResult.OutputObjectLike<$SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['CombatantSinglePokemon']> + export type Patron<$SelectionSet extends $$SelectionSets.Patron> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Patron'] > - export type Pokemon<$SelectionSet extends $$SelectionSets.Pokemon> = InferResult.OutputObject< + export type Pokemon<$SelectionSet extends $$SelectionSets.Pokemon> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Pokemon'] > - export type Trainer<$SelectionSet extends $$SelectionSets.Trainer> = InferResult.OutputObject< + export type Trainer<$SelectionSet extends $$SelectionSets.Trainer> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema['allTypes']['Trainer'] diff --git a/website/graffle/modules/Schema.ts b/website/graffle/modules/Schema.ts index 817aa85d2..676bea680 100644 --- a/website/graffle/modules/Schema.ts +++ b/website/graffle/modules/Schema.ts @@ -779,6 +779,10 @@ export namespace Schema { // export interface Being extends $.Interface { + fields: { + id: Being.id; + name: Being.name; + }; name: "Being"; implementors: [Patron, Pokemon, Trainer]; implementorsUnion: @@ -792,6 +796,32 @@ export namespace Schema { }; } + export namespace Being { + export interface __typename extends $.OutputField { + name: "__typename"; + arguments: {}; + inlineType: [1]; + namedType: { + kind: "__typename"; + value: "Being"; + }; + } + + export interface id extends $.OutputField { + name: "id"; + arguments: {}; + inlineType: [0]; + namedType: $$NamedTypes.$$ID; + } + + export interface name extends $.OutputField { + name: "name"; + arguments: {}; + inlineType: [0]; + namedType: $$NamedTypes.$$String; + } + } + // // // diff --git a/website/graffle/modules/Select.ts b/website/graffle/modules/Select.ts index 8ed488e89..6cbdc38ec 100644 --- a/website/graffle/modules/Select.ts +++ b/website/graffle/modules/Select.ts @@ -55,36 +55,36 @@ export namespace Select { // OutputObject // -------------------------------------------------------------------------------------------------- // - export type BattleRoyale<$SelectionSet extends $$SelectionSets.BattleRoyale> = InferResult.OutputObject< + export type BattleRoyale<$SelectionSet extends $$SelectionSets.BattleRoyale> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema["allTypes"]["BattleRoyale"] >; - export type BattleTrainer<$SelectionSet extends $$SelectionSets.BattleTrainer> = InferResult.OutputObject< + export type BattleTrainer<$SelectionSet extends $$SelectionSets.BattleTrainer> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema["allTypes"]["BattleTrainer"] >; - export type BattleWild<$SelectionSet extends $$SelectionSets.BattleWild> = InferResult.OutputObject< + export type BattleWild<$SelectionSet extends $$SelectionSets.BattleWild> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema["allTypes"]["BattleWild"] >; export type CombatantMultiPokemon<$SelectionSet extends $$SelectionSets.CombatantMultiPokemon> = - InferResult.OutputObject<$SelectionSet, $$Schema.Schema, $$Schema.Schema["allTypes"]["CombatantMultiPokemon"]>; + InferResult.OutputObjectLike<$SelectionSet, $$Schema.Schema, $$Schema.Schema["allTypes"]["CombatantMultiPokemon"]>; export type CombatantSinglePokemon<$SelectionSet extends $$SelectionSets.CombatantSinglePokemon> = - InferResult.OutputObject<$SelectionSet, $$Schema.Schema, $$Schema.Schema["allTypes"]["CombatantSinglePokemon"]>; - export type Patron<$SelectionSet extends $$SelectionSets.Patron> = InferResult.OutputObject< + InferResult.OutputObjectLike<$SelectionSet, $$Schema.Schema, $$Schema.Schema["allTypes"]["CombatantSinglePokemon"]>; + export type Patron<$SelectionSet extends $$SelectionSets.Patron> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema["allTypes"]["Patron"] >; - export type Pokemon<$SelectionSet extends $$SelectionSets.Pokemon> = InferResult.OutputObject< + export type Pokemon<$SelectionSet extends $$SelectionSets.Pokemon> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema["allTypes"]["Pokemon"] >; - export type Trainer<$SelectionSet extends $$SelectionSets.Trainer> = InferResult.OutputObject< + export type Trainer<$SelectionSet extends $$SelectionSets.Trainer> = InferResult.OutputObjectLike< $SelectionSet, $$Schema.Schema, $$Schema.Schema["allTypes"]["Trainer"] diff --git a/website/package.json b/website/package.json index 44cd310e5..f3d4b17ec 100644 --- a/website/package.json +++ b/website/package.json @@ -12,18 +12,18 @@ "vitepress": "^1.5.0" }, "dependencies": { - "@shikijs/twoslash": "^1.23.0", - "@shikijs/vitepress-twoslash": "^1.23.0", + "@shikijs/twoslash": "^1.24.0", + "@shikijs/vitepress-twoslash": "^1.24.0", "@tsconfig/node20": "^20.1.4", "@tsconfig/node22": "^22.0.0", "@tsconfig/strictest": "^2.0.5", - "es-toolkit": "^1.27.0", + "es-toolkit": "^1.29.0", "floating-vue": "^5.2.2", "globby": "^14.0.2", "graffle": "link:..", "graphql": "^16.9.0", "tsx": "^4.19.2", - "typescript": "^5.6.3", + "typescript": "^5.7.2", "vitepress-plugin-tabs": "^0.5.0", "vitepress-sidebar": "^1.29.0" } diff --git a/website/pnpm-lock.yaml b/website/pnpm-lock.yaml index 78adc4f7d..42267314e 100644 --- a/website/pnpm-lock.yaml +++ b/website/pnpm-lock.yaml @@ -2,11 +2,11 @@ lockfileVersion: '6.0' dependencies: '@shikijs/twoslash': - specifier: ^1.23.0 - version: 1.23.0(typescript@5.6.3) + specifier: ^1.24.0 + version: 1.24.0(typescript@5.7.2) '@shikijs/vitepress-twoslash': - specifier: ^1.23.0 - version: 1.23.0(typescript@5.6.3) + specifier: ^1.24.0 + version: 1.24.0(typescript@5.7.2) '@tsconfig/node20': specifier: ^20.1.4 version: 20.1.4 @@ -17,8 +17,8 @@ dependencies: specifier: ^2.0.5 version: 2.0.5 es-toolkit: - specifier: ^1.27.0 - version: 1.27.0 + specifier: ^1.29.0 + version: 1.29.0 floating-vue: specifier: ^5.2.2 version: 5.2.2(vue@3.5.13) @@ -35,8 +35,8 @@ dependencies: specifier: ^4.19.2 version: 4.19.2 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.2 + version: 5.7.2 vitepress-plugin-tabs: specifier: ^0.5.0 version: 0.5.0(vitepress@1.5.0)(vue@3.5.13) @@ -47,152 +47,152 @@ dependencies: devDependencies: vitepress: specifier: ^1.5.0 - version: 1.5.0(@algolia/client-search@5.14.2)(search-insights@2.17.2)(typescript@5.6.3) + version: 1.5.0(@algolia/client-search@5.15.0)(search-insights@2.17.3)(typescript@5.7.2) packages: - /@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)(search-insights@2.17.2): + /@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.17.3): resolution: {integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==} dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)(search-insights@2.17.2) - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - /@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)(search-insights@2.17.2): + /@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.17.3): resolution: {integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==} peerDependencies: search-insights: '>= 1 < 3' dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2) - search-insights: 2.17.2 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) + search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - /@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2): + /@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0): resolution: {integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2) - '@algolia/client-search': 5.14.2 - algoliasearch: 5.14.2 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) + '@algolia/client-search': 5.15.0 + algoliasearch: 5.15.0 - /@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2): + /@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0): resolution: {integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/client-search': 5.14.2 - algoliasearch: 5.14.2 + '@algolia/client-search': 5.15.0 + algoliasearch: 5.15.0 - /@algolia/client-abtesting@5.14.2: - resolution: {integrity: sha512-7fq1tWIy1aNJEaNHxWy3EwDkuo4k22+NBnxq9QlYVSLLXtr6HqmAm6bQgNNzGT3vm21iKqWO9efk+HIhEM1SzQ==} + /@algolia/client-abtesting@5.15.0: + resolution: {integrity: sha512-FaEM40iuiv1mAipYyiptP4EyxkJ8qHfowCpEeusdHUC4C7spATJYArD2rX3AxkVeREkDIgYEOuXcwKUbDCr7Nw==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-common': 5.14.2 - '@algolia/requester-browser-xhr': 5.14.2 - '@algolia/requester-fetch': 5.14.2 - '@algolia/requester-node-http': 5.14.2 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - /@algolia/client-analytics@5.14.2: - resolution: {integrity: sha512-5Nm5cOOyAGcY+hKNJVmR2jgoGn1nvoANS8W5EfB8yAaUqUxL3lFNUHSkFafAMTCOcVKNDkZQYjUDbOOfdYJLqw==} + /@algolia/client-analytics@5.15.0: + resolution: {integrity: sha512-lho0gTFsQDIdCwyUKTtMuf9nCLwq9jOGlLGIeQGKDxXF7HbiAysFIu5QW/iQr1LzMgDyM9NH7K98KY+BiIFriQ==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-common': 5.14.2 - '@algolia/requester-browser-xhr': 5.14.2 - '@algolia/requester-fetch': 5.14.2 - '@algolia/requester-node-http': 5.14.2 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - /@algolia/client-common@5.14.2: - resolution: {integrity: sha512-BW1Qzhh9tMKEsWSQQsiOEcHAd6g7zxq9RpPVmyxbDO/O4eA4vyN+Qz5Jzo686kuYdIQKqIPCEtob/JM89tk57g==} + /@algolia/client-common@5.15.0: + resolution: {integrity: sha512-IofrVh213VLsDkPoSKMeM9Dshrv28jhDlBDLRcVJQvlL8pzue7PEB1EZ4UoJFYS3NSn7JOcJ/V+olRQzXlJj1w==} engines: {node: '>= 14.0.0'} - /@algolia/client-insights@5.14.2: - resolution: {integrity: sha512-17zg6pqifKORvvrMIqW6HhwUry9RKRXLgADrgFjZ6PZvGB4oVs12dwRG2/HMrIlpxd9cjeQfdlEgHj6lbAf6QA==} + /@algolia/client-insights@5.15.0: + resolution: {integrity: sha512-bDDEQGfFidDi0UQUCbxXOCdphbVAgbVmxvaV75cypBTQkJ+ABx/Npw7LkFGw1FsoVrttlrrQbwjvUB6mLVKs/w==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-common': 5.14.2 - '@algolia/requester-browser-xhr': 5.14.2 - '@algolia/requester-fetch': 5.14.2 - '@algolia/requester-node-http': 5.14.2 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - /@algolia/client-personalization@5.14.2: - resolution: {integrity: sha512-5IYt8vbmTA52xyuaZKFwiRoDPeh7hiOC9aBZqqp9fVs6BU01djI/T8pGJXawvwczltCPYzNsdbllV3rqiDbxmQ==} + /@algolia/client-personalization@5.15.0: + resolution: {integrity: sha512-LfaZqLUWxdYFq44QrasCDED5bSYOswpQjSiIL7Q5fYlefAAUO95PzBPKCfUhSwhb4rKxigHfDkd81AvEicIEoA==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-common': 5.14.2 - '@algolia/requester-browser-xhr': 5.14.2 - '@algolia/requester-fetch': 5.14.2 - '@algolia/requester-node-http': 5.14.2 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - /@algolia/client-query-suggestions@5.14.2: - resolution: {integrity: sha512-gvCX/cczU76Bu1sGcxxTdoIwxe+FnuC1IlW9SF/gzxd3ZzsgzBpzD2puIJqt9fHQsjLxVGkJqKev2FtExnJYZg==} + /@algolia/client-query-suggestions@5.15.0: + resolution: {integrity: sha512-wu8GVluiZ5+il8WIRsGKu8VxMK9dAlr225h878GGtpTL6VBvwyJvAyLdZsfFIpY0iN++jiNb31q2C1PlPL+n/A==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-common': 5.14.2 - '@algolia/requester-browser-xhr': 5.14.2 - '@algolia/requester-fetch': 5.14.2 - '@algolia/requester-node-http': 5.14.2 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - /@algolia/client-search@5.14.2: - resolution: {integrity: sha512-0imdBZDjqxrshw0+eyJUgnkRAbS2W93UQ3BVj8VjN4xQylIMf0fWs72W7MZFdHlH78JJYydevgzqvGMcV0Z1CA==} + /@algolia/client-search@5.15.0: + resolution: {integrity: sha512-Z32gEMrRRpEta5UqVQA612sLdoqY3AovvUPClDfMxYrbdDAebmGDVPtSogUba1FZ4pP5dx20D3OV3reogLKsRA==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-common': 5.14.2 - '@algolia/requester-browser-xhr': 5.14.2 - '@algolia/requester-fetch': 5.14.2 - '@algolia/requester-node-http': 5.14.2 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - /@algolia/ingestion@1.14.2: - resolution: {integrity: sha512-/p4rBNkW0fgCpCwrwre+jHfzlFQsLemgaAQqyui8NPxw95Wgf3p+DKxYzcmh8dygT7ub7FwztTW+uURLX1uqIQ==} + /@algolia/ingestion@1.15.0: + resolution: {integrity: sha512-MkqkAxBQxtQ5if/EX2IPqFA7LothghVyvPoRNA/meS2AW2qkHwcxjuiBxv4H6mnAVEPfJlhu9rkdVz9LgCBgJg==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-common': 5.14.2 - '@algolia/requester-browser-xhr': 5.14.2 - '@algolia/requester-fetch': 5.14.2 - '@algolia/requester-node-http': 5.14.2 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - /@algolia/monitoring@1.14.2: - resolution: {integrity: sha512-81R57Y/mS0uNhWpu6cNEfkbkADLW4bP0BNjuPpxAypobv7WzYycUnbMvv1YkN6OsociB4+3M7HfsVzj4Nc09vA==} + /@algolia/monitoring@1.15.0: + resolution: {integrity: sha512-QPrFnnGLMMdRa8t/4bs7XilPYnoUXDY8PMQJ1sf9ZFwhUysYYhQNX34/enoO0LBjpoOY6rLpha39YQEFbzgKyQ==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-common': 5.14.2 - '@algolia/requester-browser-xhr': 5.14.2 - '@algolia/requester-fetch': 5.14.2 - '@algolia/requester-node-http': 5.14.2 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - /@algolia/recommend@5.14.2: - resolution: {integrity: sha512-OwELnAZxCUyfjYjqsrFmC7Vfa12kqwbDdLUV0oi4j+4pxDsfPgkiZ6iCH2uPw6X8VK88Hl3InPt+RPaZvcrCWg==} + /@algolia/recommend@5.15.0: + resolution: {integrity: sha512-5eupMwSqMLDObgSMF0XG958zR6GJP3f7jHDQ3/WlzCM9/YIJiWIUoJFGsko9GYsA5xbLDHE/PhWtq4chcCdaGQ==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-common': 5.14.2 - '@algolia/requester-browser-xhr': 5.14.2 - '@algolia/requester-fetch': 5.14.2 - '@algolia/requester-node-http': 5.14.2 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - /@algolia/requester-browser-xhr@5.14.2: - resolution: {integrity: sha512-irUvkK+TGBhyivtNCIIbVgNUgbUoHOSk8m/kFX4ddto/PUPmLFRRNNnMHtJ1+OzrJ/uD3Am4FUK2Yt+xgQr05w==} + /@algolia/requester-browser-xhr@5.15.0: + resolution: {integrity: sha512-Po/GNib6QKruC3XE+WKP1HwVSfCDaZcXu48kD+gwmtDlqHWKc7Bq9lrS0sNZ456rfCKhXksOmMfUs4wRM/Y96w==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-common': 5.14.2 + '@algolia/client-common': 5.15.0 - /@algolia/requester-fetch@5.14.2: - resolution: {integrity: sha512-UNBg5mM4MIYdxPuVjyDL22BC6P87g7WuM91Z1Ky0J19aEGvCSF+oR+9autthROFXdRnAa1rACOjuqn95iBbKpw==} + /@algolia/requester-fetch@5.15.0: + resolution: {integrity: sha512-rOZ+c0P7ajmccAvpeeNrUmEKoliYFL8aOR5qGW5pFq3oj3Iept7Y5mEtEsOBYsRt6qLnaXn4zUKf+N8nvJpcIw==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-common': 5.14.2 + '@algolia/client-common': 5.15.0 - /@algolia/requester-node-http@5.14.2: - resolution: {integrity: sha512-CTFA03YiLcnpP+JoLRqjHt5pqDHuKWJpLsIBY/60Gmw8pjALZ3TwvbAquRX4Vy+yrin178NxMuU+ilZ54f2IrQ==} + /@algolia/requester-node-http@5.15.0: + resolution: {integrity: sha512-b1jTpbFf9LnQHEJP5ddDJKE2sAlhYd7EVSOWgzo/27n/SfCoHfqD0VWntnWYD83PnOKvfe8auZ2+xCb0TXotrQ==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-common': 5.14.2 + '@algolia/client-common': 5.15.0 /@babel/helper-string-parser@7.25.9: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} @@ -219,11 +219,11 @@ packages: /@docsearch/css@3.8.0: resolution: {integrity: sha512-pieeipSOW4sQ0+bE5UFC51AOZp9NGxg89wAlZ1BAQFaiRAGK1IKUaPQ0UGZeNctJXyqZ1UvBtOQh2HH+U5GtmA==} - /@docsearch/js@3.8.0(@algolia/client-search@5.14.2)(search-insights@2.17.2): + /@docsearch/js@3.8.0(@algolia/client-search@5.15.0)(search-insights@2.17.3): resolution: {integrity: sha512-PVuV629f5UcYRtBWqK7ID6vNL5647+2ADJypwTjfeBIrJfwPuHtzLy39hMGMfFK+0xgRyhTR0FZ83EkdEraBlg==} dependencies: - '@docsearch/react': 3.8.0(@algolia/client-search@5.14.2)(search-insights@2.17.2) - preact: 10.24.3 + '@docsearch/react': 3.8.0(@algolia/client-search@5.15.0)(search-insights@2.17.3) + preact: 10.25.1 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -231,7 +231,7 @@ packages: - react-dom - search-insights - /@docsearch/react@3.8.0(@algolia/client-search@5.14.2)(search-insights@2.17.2): + /@docsearch/react@3.8.0(@algolia/client-search@5.15.0)(search-insights@2.17.3): resolution: {integrity: sha512-WnFK720+iwTVt94CxY3u+FgX6exb3BfN5kE9xUY6uuAH/9W/UFboBZFLlrw/zxFRHoHZCOXRtOylsXF+6LHI+Q==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -248,11 +248,11 @@ packages: search-insights: optional: true dependencies: - '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)(search-insights@2.17.2) - '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2) + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) '@docsearch/css': 3.8.0 - algoliasearch: 5.14.2 - search-insights: 2.17.2 + algoliasearch: 5.15.0 + search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' @@ -672,8 +672,8 @@ packages: resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} dev: false - /@iconify-json/simple-icons@1.2.11: - resolution: {integrity: sha512-AHCGDtBRqP+JzAbBzgO8uN/08CXxEmuaC6lQQZ3b5burKhRU12AJnJczwbUw2K5Mb/U85EpSUNhYMG3F28b8NA==} + /@iconify-json/simple-icons@1.2.13: + resolution: {integrity: sha512-rRQjMoIt/kPfaD+fnBC9YZQpso3hkn8xPeadl+YWhscJ5SVUCdB9oTeR9VIpt+/5Yi8vEkh2UOWFPq4lz3ee2A==} dependencies: '@iconify/types': 2.0.0 @@ -723,189 +723,189 @@ packages: dev: false optional: true - /@rollup/rollup-android-arm-eabi@4.27.2: - resolution: {integrity: sha512-Tj+j7Pyzd15wAdSJswvs5CJzJNV+qqSUcr/aCD+jpQSBtXvGnV0pnrjoc8zFTe9fcKCatkpFpOO7yAzpO998HA==} + /@rollup/rollup-android-arm-eabi@4.28.0: + resolution: {integrity: sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==} cpu: [arm] os: [android] requiresBuild: true optional: true - /@rollup/rollup-android-arm64@4.27.2: - resolution: {integrity: sha512-xsPeJgh2ThBpUqlLgRfiVYBEf/P1nWlWvReG+aBWfNv3XEBpa6ZCmxSVnxJgLgkNz4IbxpLy64h2gCmAAQLneQ==} + /@rollup/rollup-android-arm64@4.28.0: + resolution: {integrity: sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@rollup/rollup-darwin-arm64@4.27.2: - resolution: {integrity: sha512-KnXU4m9MywuZFedL35Z3PuwiTSn/yqRIhrEA9j+7OSkji39NzVkgxuxTYg5F8ryGysq4iFADaU5osSizMXhU2A==} + /@rollup/rollup-darwin-arm64@4.28.0: + resolution: {integrity: sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-darwin-x64@4.27.2: - resolution: {integrity: sha512-Hj77A3yTvUeCIx/Vi+4d4IbYhyTwtHj07lVzUgpUq9YpJSEiGJj4vXMKwzJ3w5zp5v3PFvpJNgc/J31smZey6g==} + /@rollup/rollup-darwin-x64@4.28.0: + resolution: {integrity: sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-freebsd-arm64@4.27.2: - resolution: {integrity: sha512-RjgKf5C3xbn8gxvCm5VgKZ4nn0pRAIe90J0/fdHUsgztd3+Zesb2lm2+r6uX4prV2eUByuxJNdt647/1KPRq5g==} + /@rollup/rollup-freebsd-arm64@4.28.0: + resolution: {integrity: sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==} cpu: [arm64] os: [freebsd] requiresBuild: true optional: true - /@rollup/rollup-freebsd-x64@4.27.2: - resolution: {integrity: sha512-duq21FoXwQtuws+V9H6UZ+eCBc7fxSpMK1GQINKn3fAyd9DFYKPJNcUhdIKOrMFjLEJgQskoMoiuizMt+dl20g==} + /@rollup/rollup-freebsd-x64@4.28.0: + resolution: {integrity: sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==} cpu: [x64] os: [freebsd] requiresBuild: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.27.2: - resolution: {integrity: sha512-6npqOKEPRZkLrMcvyC/32OzJ2srdPzCylJjiTJT2c0bwwSGm7nz2F9mNQ1WrAqCBZROcQn91Fno+khFhVijmFA==} + /@rollup/rollup-linux-arm-gnueabihf@4.28.0: + resolution: {integrity: sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm-musleabihf@4.27.2: - resolution: {integrity: sha512-V9Xg6eXtgBtHq2jnuQwM/jr2mwe2EycnopO8cbOvpzFuySCGtKlPCI3Hj9xup/pJK5Q0388qfZZy2DqV2J8ftw==} + /@rollup/rollup-linux-arm-musleabihf@4.28.0: + resolution: {integrity: sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.27.2: - resolution: {integrity: sha512-uCFX9gtZJoQl2xDTpRdseYuNqyKkuMDtH6zSrBTA28yTfKyjN9hQ2B04N5ynR8ILCoSDOrG/Eg+J2TtJ1e/CSA==} + /@rollup/rollup-linux-arm64-gnu@4.28.0: + resolution: {integrity: sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-musl@4.27.2: - resolution: {integrity: sha512-/PU9P+7Rkz8JFYDHIi+xzHabOu9qEWR07L5nWLIUsvserrxegZExKCi2jhMZRd0ATdboKylu/K5yAXbp7fYFvA==} + /@rollup/rollup-linux-arm64-musl@4.28.0: + resolution: {integrity: sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.27.2: - resolution: {integrity: sha512-eCHmol/dT5odMYi/N0R0HC8V8QE40rEpkyje/ZAXJYNNoSfrObOvG/Mn+s1F/FJyB7co7UQZZf6FuWnN6a7f4g==} + /@rollup/rollup-linux-powerpc64le-gnu@4.28.0: + resolution: {integrity: sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==} cpu: [ppc64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.27.2: - resolution: {integrity: sha512-DEP3Njr9/ADDln3kNi76PXonLMSSMiCir0VHXxmGSHxCxDfQ70oWjHcJGfiBugzaqmYdTC7Y+8Int6qbnxPBIQ==} + /@rollup/rollup-linux-riscv64-gnu@4.28.0: + resolution: {integrity: sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-s390x-gnu@4.27.2: - resolution: {integrity: sha512-NHGo5i6IE/PtEPh5m0yw5OmPMpesFnzMIS/lzvN5vknnC1sXM5Z/id5VgcNPgpD+wHmIcuYYgW+Q53v+9s96lQ==} + /@rollup/rollup-linux-s390x-gnu@4.28.0: + resolution: {integrity: sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-gnu@4.27.2: - resolution: {integrity: sha512-PaW2DY5Tan+IFvNJGHDmUrORadbe/Ceh8tQxi8cmdQVCCYsLoQo2cuaSj+AU+YRX8M4ivS2vJ9UGaxfuNN7gmg==} + /@rollup/rollup-linux-x64-gnu@4.28.0: + resolution: {integrity: sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-musl@4.27.2: - resolution: {integrity: sha512-dOlWEMg2gI91Qx5I/HYqOD6iqlJspxLcS4Zlg3vjk1srE67z5T2Uz91yg/qA8sY0XcwQrFzWWiZhMNERylLrpQ==} + /@rollup/rollup-linux-x64-musl@4.28.0: + resolution: {integrity: sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.27.2: - resolution: {integrity: sha512-euMIv/4x5Y2/ImlbGl88mwKNXDsvzbWUlT7DFky76z2keajCtcbAsN9LUdmk31hAoVmJJYSThgdA0EsPeTr1+w==} + /@rollup/rollup-win32-arm64-msvc@4.28.0: + resolution: {integrity: sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.27.2: - resolution: {integrity: sha512-RsnE6LQkUHlkC10RKngtHNLxb7scFykEbEwOFDjr3CeCMG+Rr+cKqlkKc2/wJ1u4u990urRHCbjz31x84PBrSQ==} + /@rollup/rollup-win32-ia32-msvc@4.28.0: + resolution: {integrity: sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-x64-msvc@4.27.2: - resolution: {integrity: sha512-foJM5vv+z2KQmn7emYdDLyTbkoO5bkHZE1oth2tWbQNGW7mX32d46Hz6T0MqXdWS2vBZhaEtHqdy9WYwGfiliA==} + /@rollup/rollup-win32-x64-msvc@4.28.0: + resolution: {integrity: sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==} cpu: [x64] os: [win32] requiresBuild: true optional: true - /@shikijs/core@1.23.0: - resolution: {integrity: sha512-J4Fo22oBlfRHAXec+1AEzcowv+Qdf4ZQkuP/X/UHYH9+KA9LvyFXSXyS+HxuBRFfon+u7bsmKdRBjoZlbDVRkQ==} + /@shikijs/core@1.24.0: + resolution: {integrity: sha512-6pvdH0KoahMzr6689yh0QJ3rCgF4j1XsXRHNEeEN6M4xJTfQ6QPWrmHzIddotg+xPJUPEPzYzYCKzpYyhTI6Gw==} dependencies: - '@shikijs/engine-javascript': 1.23.0 - '@shikijs/engine-oniguruma': 1.23.0 - '@shikijs/types': 1.23.0 + '@shikijs/engine-javascript': 1.24.0 + '@shikijs/engine-oniguruma': 1.24.0 + '@shikijs/types': 1.24.0 '@shikijs/vscode-textmate': 9.3.0 '@types/hast': 3.0.4 hast-util-to-html: 9.0.3 - /@shikijs/engine-javascript@1.23.0: - resolution: {integrity: sha512-CcrppseWShG+8Efp1iil9divltuXVdCaU4iu+CKvzTGZO5RmXyAiSx668M7VbX8+s/vt1ZKu75Vn/jWi8O3G/Q==} + /@shikijs/engine-javascript@1.24.0: + resolution: {integrity: sha512-ZA6sCeSsF3Mnlxxr+4wGEJ9Tto4RHmfIS7ox8KIAbH0MTVUkw3roHPHZN+LlJMOHJJOVupe6tvuAzRpN8qK1vA==} dependencies: - '@shikijs/types': 1.23.0 + '@shikijs/types': 1.24.0 '@shikijs/vscode-textmate': 9.3.0 - oniguruma-to-es: 0.1.2 + oniguruma-to-es: 0.7.0 - /@shikijs/engine-oniguruma@1.23.0: - resolution: {integrity: sha512-gS8bZLqVvmZXX+E5JUMJICsBp+kx6gj79MH/UEpKHKIqnUzppgbmEn6zLa6mB5D+sHse2gFei3YYJxQe1EzZXQ==} + /@shikijs/engine-oniguruma@1.24.0: + resolution: {integrity: sha512-Eua0qNOL73Y82lGA4GF5P+G2+VXX9XnuUxkiUuwcxQPH4wom+tE39kZpBFXfUuwNYxHSkrSxpB1p4kyRW0moSg==} dependencies: - '@shikijs/types': 1.23.0 + '@shikijs/types': 1.24.0 '@shikijs/vscode-textmate': 9.3.0 - /@shikijs/transformers@1.23.0: - resolution: {integrity: sha512-YzQN+m8nXNZjI7ZRk+8IdFa13qiOqIqjcm4jIQ31RzgMoHtpd9Ruma1hssnt2ETH3ixr8HEh+0zAuB9w/OBfnw==} + /@shikijs/transformers@1.24.0: + resolution: {integrity: sha512-Qf/hby+PRPkoHncjYnJf5svK1aCsOUtQhuLzKPnmeXJtuUZCmbH0pTpdNtXe9tgln/RHlyRJnv7q46HHS1sO0Q==} dependencies: - shiki: 1.23.0 + shiki: 1.24.0 - /@shikijs/twoslash@1.23.0(typescript@5.6.3): - resolution: {integrity: sha512-kZuzcnkoBNPtrMVRkgiCQUrElvg3gcgaqSD5+Y8jN8IgwcPIiR+r4jIDuLQctTvpAQjAnA6dWflCh7A8FXGKYQ==} + /@shikijs/twoslash@1.24.0(typescript@5.7.2): + resolution: {integrity: sha512-ELyIoD54dFDlb4eGt5sy54WhFeJ39N1hR9W7ADwHWn3XH7cOPjj320EPCh2t76fIoLb0auD46tVLQVVMn93qsA==} dependencies: - '@shikijs/core': 1.23.0 - '@shikijs/types': 1.23.0 - twoslash: 0.2.12(typescript@5.6.3) + '@shikijs/core': 1.24.0 + '@shikijs/types': 1.24.0 + twoslash: 0.2.12(typescript@5.7.2) transitivePeerDependencies: - supports-color - typescript dev: false - /@shikijs/types@1.23.0: - resolution: {integrity: sha512-HiwzsihRao+IbPk7FER/EQT/D0dEEK3n5LAtHDzL5iRT+JMblA7y9uitUnjEnHeLkKigNM+ZplrP7MuEyyc5kA==} + /@shikijs/types@1.24.0: + resolution: {integrity: sha512-aptbEuq1Pk88DMlCe+FzXNnBZ17LCiLIGWAeCWhoFDzia5Q5Krx3DgnULLiouSdd6+LUM39XwXGppqYE0Ghtug==} dependencies: '@shikijs/vscode-textmate': 9.3.0 '@types/hast': 3.0.4 - /@shikijs/vitepress-twoslash@1.23.0(typescript@5.6.3): - resolution: {integrity: sha512-Xk4/f2w1c7lFQUvthCUDkyL9WX5dPYnRqCaSQ/2iWKYe0pXxzdjrZyBrWyiqHTbIh0rx2D2FvuYU+vxlHU0jjQ==} + /@shikijs/vitepress-twoslash@1.24.0(typescript@5.7.2): + resolution: {integrity: sha512-uqAzAHZkg0yzOtVxA3H+xz+tNgFO2f328EfKOIeX98HgI7V1YNm/a+uUqiVuTYY03N9nBMJbdrCHcw7HIc/C3A==} dependencies: - '@shikijs/twoslash': 1.23.0(typescript@5.6.3) + '@shikijs/twoslash': 1.24.0(typescript@5.7.2) floating-vue: 5.2.2(vue@3.5.13) mdast-util-from-markdown: 2.0.2 mdast-util-gfm: 3.0.0 mdast-util-to-hast: 13.2.0 - shiki: 1.23.0 - twoslash: 0.2.12(typescript@5.6.3) - twoslash-vue: 0.2.12(typescript@5.6.3) - vue: 3.5.13(typescript@5.6.3) + shiki: 1.24.0 + twoslash: 0.2.12(typescript@5.7.2) + twoslash-vue: 0.2.12(typescript@5.7.2) + vue: 3.5.13(typescript@5.7.2) transitivePeerDependencies: - '@nuxt/kit' - supports-color @@ -973,13 +973,13 @@ packages: /@types/web-bluetooth@0.0.20: resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - /@typescript/vfs@1.6.0(typescript@5.6.3): + /@typescript/vfs@1.6.0(typescript@5.7.2): resolution: {integrity: sha512-hvJUjNVeBMp77qPINuUvYXj4FyWeeMMKZkxEATEU3hqBAQ7qdTBCUFT7Sp0Zu0faeEtFf+ldXxMEDr/bk73ISg==} peerDependencies: typescript: '*' dependencies: debug: 4.3.7 - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: false @@ -987,15 +987,15 @@ packages: /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - /@vitejs/plugin-vue@5.2.0(vite@5.4.11)(vue@3.5.13): - resolution: {integrity: sha512-7n7KdUEtx/7Yl7I/WVAMZ1bEb0eVvXF3ummWTeLcs/9gvo9pJhuLdouSXGjdZ/MKD1acf1I272+X0RMua4/R3g==} + /@vitejs/plugin-vue@5.2.1(vite@5.4.11)(vue@3.5.13): + resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - vite: ^5.0.0 + vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 dependencies: vite: 5.4.11 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) /@volar/language-core@2.4.10: resolution: {integrity: sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==} @@ -1031,7 +1031,7 @@ packages: '@vue/compiler-ssr': 3.5.13 '@vue/shared': 3.5.13 estree-walker: 2.0.2 - magic-string: 0.30.12 + magic-string: 0.30.14 postcss: 8.4.49 source-map-js: 1.2.1 @@ -1048,15 +1048,15 @@ packages: he: 1.2.0 dev: false - /@vue/devtools-api@7.6.4: - resolution: {integrity: sha512-5AaJ5ELBIuevmFMZYYLuOO9HUuY/6OlkOELHE7oeDhy4XD/hSODIzktlsvBOsn+bto3aD0psj36LGzwVu5Ip8w==} + /@vue/devtools-api@7.6.7: + resolution: {integrity: sha512-PV4I31WaV2rfA8RGauM+69uFEzWkqtP561RiLU2wK+Ce85u3zyKW3aoESlLCNzkc4y0JaJyskH6zAE3xWOP8+Q==} dependencies: - '@vue/devtools-kit': 7.6.4 + '@vue/devtools-kit': 7.6.7 - /@vue/devtools-kit@7.6.4: - resolution: {integrity: sha512-Zs86qIXXM9icU0PiGY09PQCle4TI750IPLmAJzW5Kf9n9t5HzSYf6Rz6fyzSwmfMPiR51SUKJh9sXVZu78h2QA==} + /@vue/devtools-kit@7.6.7: + resolution: {integrity: sha512-V8/jrXY/swHgnblABG9U4QCbE60c6RuPasmv2d9FvVqc5d94t1vDiESuvRmdNJBdWz4/D3q6ffgyAfRVjwHYEw==} dependencies: - '@vue/devtools-shared': 7.6.4 + '@vue/devtools-shared': 7.6.7 birpc: 0.2.19 hookable: 5.5.3 mitt: 3.0.1 @@ -1064,12 +1064,12 @@ packages: speakingurl: 14.0.1 superjson: 2.2.1 - /@vue/devtools-shared@7.6.4: - resolution: {integrity: sha512-nD6CUvBEel+y7zpyorjiUocy0nh77DThZJ0k1GRnJeOmY3ATq2fWijEp7wk37gb023Cb0R396uYh5qMSBQ5WFg==} + /@vue/devtools-shared@7.6.7: + resolution: {integrity: sha512-QggO6SviAsolrePAXZ/sA1dSicSPt4TueZibCvydfhNDieL1lAuyMTgQDGst7TEvMGb4vgYv2I+1sDkO4jWNnw==} dependencies: rfdc: 1.4.1 - /@vue/language-core@2.1.10(typescript@5.6.3): + /@vue/language-core@2.1.10(typescript@5.7.2): resolution: {integrity: sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==} peerDependencies: typescript: '*' @@ -1085,7 +1085,7 @@ packages: minimatch: 9.0.5 muggle-string: 0.4.1 path-browserify: 1.0.1 - typescript: 5.6.3 + typescript: 5.7.2 dev: false /@vue/reactivity@3.5.13: @@ -1114,24 +1114,24 @@ packages: dependencies: '@vue/compiler-ssr': 3.5.13 '@vue/shared': 3.5.13 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) /@vue/shared@3.5.13: resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - /@vueuse/core@11.2.0(vue@3.5.13): - resolution: {integrity: sha512-JIUwRcOqOWzcdu1dGlfW04kaJhW3EXnnjJJfLTtddJanymTL7lF1C0+dVVZ/siLfc73mWn+cGP1PE1PKPruRSA==} + /@vueuse/core@11.3.0(vue@3.5.13): + resolution: {integrity: sha512-7OC4Rl1f9G8IT6rUfi9JrKiXy4bfmHhZ5x2Ceojy0jnd3mHNEvV4JaRygH362ror6/NZ+Nl+n13LPzGiPN8cKA==} dependencies: '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 11.2.0 - '@vueuse/shared': 11.2.0(vue@3.5.13) + '@vueuse/metadata': 11.3.0 + '@vueuse/shared': 11.3.0(vue@3.5.13) vue-demi: 0.14.10(vue@3.5.13) transitivePeerDependencies: - '@vue/composition-api' - vue - /@vueuse/integrations@11.2.0(focus-trap@7.6.2)(vue@3.5.13): - resolution: {integrity: sha512-zGXz3dsxNHKwiD9jPMvR3DAxQEOV6VWIEYTGVSB9PNpk4pTWR+pXrHz9gvXWcP2sTk3W2oqqS6KwWDdntUvNVA==} + /@vueuse/integrations@11.3.0(focus-trap@7.6.2)(vue@3.5.13): + resolution: {integrity: sha512-5fzRl0apQWrDezmobchoiGTkGw238VWESxZHazfhP3RM7pDSiyXy18QbfYkILoYNTd23HPAfQTJpkUc5QbkwTw==} peerDependencies: async-validator: ^4 axios: ^1 @@ -1171,42 +1171,42 @@ packages: universal-cookie: optional: true dependencies: - '@vueuse/core': 11.2.0(vue@3.5.13) - '@vueuse/shared': 11.2.0(vue@3.5.13) + '@vueuse/core': 11.3.0(vue@3.5.13) + '@vueuse/shared': 11.3.0(vue@3.5.13) focus-trap: 7.6.2 vue-demi: 0.14.10(vue@3.5.13) transitivePeerDependencies: - '@vue/composition-api' - vue - /@vueuse/metadata@11.2.0: - resolution: {integrity: sha512-L0ZmtRmNx+ZW95DmrgD6vn484gSpVeRbgpWevFKXwqqQxW9hnSi2Ppuh2BzMjnbv4aJRiIw8tQatXT9uOB23dQ==} + /@vueuse/metadata@11.3.0: + resolution: {integrity: sha512-pwDnDspTqtTo2HwfLw4Rp6yywuuBdYnPYDq+mO38ZYKGebCUQC/nVj/PXSiK9HX5otxLz8Fn7ECPbjiRz2CC3g==} - /@vueuse/shared@11.2.0(vue@3.5.13): - resolution: {integrity: sha512-VxFjie0EanOudYSgMErxXfq6fo8vhr5ICI+BuE3I9FnX7ePllEsVrRQ7O6Q1TLgApeLuPKcHQxAXpP+KnlrJsg==} + /@vueuse/shared@11.3.0(vue@3.5.13): + resolution: {integrity: sha512-P8gSSWQeucH5821ek2mn/ciCk+MS/zoRKqdQIM3bHq6p7GXDAJLmnRRKmF5F65sAVJIfzQlwR3aDzwCn10s8hA==} dependencies: vue-demi: 0.14.10(vue@3.5.13) transitivePeerDependencies: - '@vue/composition-api' - vue - /algoliasearch@5.14.2: - resolution: {integrity: sha512-aYjI4WLamMxbhdJ2QAA99VbDCJOGzMOdT2agh57bi40n86ufkhZSIAf6mkocr7NmtBLtwCnSHvD5NJ+Ky5elWw==} + /algoliasearch@5.15.0: + resolution: {integrity: sha512-Yf3Swz1s63hjvBVZ/9f2P1Uu48GjmjCN+Esxb6MAONMGtZB1fRX8/S1AhUTtsuTlcGovbYLxpHgc7wEzstDZBw==} engines: {node: '>= 14.0.0'} dependencies: - '@algolia/client-abtesting': 5.14.2 - '@algolia/client-analytics': 5.14.2 - '@algolia/client-common': 5.14.2 - '@algolia/client-insights': 5.14.2 - '@algolia/client-personalization': 5.14.2 - '@algolia/client-query-suggestions': 5.14.2 - '@algolia/client-search': 5.14.2 - '@algolia/ingestion': 1.14.2 - '@algolia/monitoring': 1.14.2 - '@algolia/recommend': 5.14.2 - '@algolia/requester-browser-xhr': 5.14.2 - '@algolia/requester-fetch': 5.14.2 - '@algolia/requester-node-http': 5.14.2 + '@algolia/client-abtesting': 5.15.0 + '@algolia/client-analytics': 5.15.0 + '@algolia/client-common': 5.15.0 + '@algolia/client-insights': 5.15.0 + '@algolia/client-personalization': 5.15.0 + '@algolia/client-query-suggestions': 5.15.0 + '@algolia/client-search': 5.15.0 + '@algolia/ingestion': 1.15.0 + '@algolia/monitoring': 1.15.0 + '@algolia/recommend': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 /alien-signals@0.2.2: resolution: {integrity: sha512-cZIRkbERILsBOXTQmMrxc9hgpxglstn69zm+F1ARf4aPAzdAFYd6sBq87ErO0Fj3DV94tglcyHG5kQz9nDC/8A==} @@ -1293,8 +1293,8 @@ packages: dependencies: is-what: 4.1.16 - /cross-spawn@7.0.5: - resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==} + /cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} dependencies: path-key: 3.1.1 @@ -1355,8 +1355,8 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - /es-toolkit@1.27.0: - resolution: {integrity: sha512-ETSFA+ZJArcuSCpzD2TjAy6UHpx4E4uqFsoDg9F/nTLogrLmVVZQ+zNxco5h7cWnA1nNak07IXsLcaSMih+ZPQ==} + /es-toolkit@1.29.0: + resolution: {integrity: sha512-GjTll+E6APcfAQA09D89HdT8Qn2Yb+TeDSDBTMcxAo+V+w1amAtCI15LJu4YPH/UCPoSo/F47Gr1LIM0TE0lZA==} dev: false /esbuild@0.21.5: @@ -1476,7 +1476,7 @@ packages: optional: true dependencies: '@floating-ui/dom': 1.1.1 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) vue-resize: 2.0.0-alpha.1(vue@3.5.13) dev: false @@ -1489,7 +1489,7 @@ packages: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} dependencies: - cross-spawn: 7.0.5 + cross-spawn: 7.0.6 signal-exit: 4.1.0 dev: false @@ -1652,8 +1652,8 @@ packages: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} dev: false - /magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + /magic-string@0.30.14: + resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -1822,7 +1822,7 @@ packages: micromark-util-html-tag-name: 2.0.1 micromark-util-normalize-identifier: 2.0.1 micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.0.2 + micromark-util-subtokenize: 2.0.3 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 dev: false @@ -1937,8 +1937,8 @@ packages: micromark-util-encode: 2.0.1 micromark-util-symbol: 2.0.1 - /micromark-util-subtokenize@2.0.2: - resolution: {integrity: sha512-xKxhkB62vwHUuuxHe9Xqty3UaAsizV2YKq5OV344u3hFBbf8zIYrhYOWhAQb94MtMPkjTOzzjJ/hid9/dR5vFA==} + /micromark-util-subtokenize@2.0.3: + resolution: {integrity: sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==} dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.1 @@ -1969,7 +1969,7 @@ packages: micromark-util-normalize-identifier: 2.0.1 micromark-util-resolve-all: 2.0.1 micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.0.2 + micromark-util-subtokenize: 2.0.3 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 transitivePeerDependencies: @@ -1996,8 +1996,8 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dev: false - /minisearch@7.1.0: - resolution: {integrity: sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA==} + /minisearch@7.1.1: + resolution: {integrity: sha512-b3YZEYCEH4EdCAtYP7OlDyx7FdPwNzuNwLQ34SfJpM9dlbBZzeXndGavTrC+VCiRWomL21SWfMc6SCKO/U2ZNw==} /mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} @@ -2010,17 +2010,17 @@ packages: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} dev: false - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + /nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /oniguruma-to-es@0.1.2: - resolution: {integrity: sha512-sBYKVJlIMB0WPO+tSu/NNB1ytSFeHyyJZ3Ayxfx3f/QUuXu0lvZk0VB4K7npmdlHSC0ldqanzh/sUSlAbgCTfw==} + /oniguruma-to-es@0.7.0: + resolution: {integrity: sha512-HRaRh09cE0gRS3+wi2zxekB+I5L8C/gN60S+vb11eADHUaB/q4u8wGGOX3GvwvitG8ixaeycZfeoyruKQzUgNg==} dependencies: emoji-regex-xs: 1.0.0 - regex: 4.4.0 - regex-recursion: 4.2.1 + regex: 5.0.2 + regex-recursion: 4.3.0 /package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -2063,12 +2063,12 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.7 + nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 - /preact@10.24.3: - resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==} + /preact@10.25.1: + resolution: {integrity: sha512-frxeZV2vhQSohQwJ7FvlqC40ze89+8friponWUFeVEkaCfhC6Eu4V0iND5C9CXz8JLndV07QRDeXzH1+Anz5Og==} /property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} @@ -2077,16 +2077,18 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: false - /regex-recursion@4.2.1: - resolution: {integrity: sha512-QHNZyZAeKdndD1G3bKAbBEKOSSK4KOHQrAJ01N1LJeb0SoH4DJIeFhp0uUpETgONifS4+P3sOgoA1dhzgrQvhA==} + /regex-recursion@4.3.0: + resolution: {integrity: sha512-5LcLnizwjcQ2ALfOj95MjcatxyqF5RPySx9yT+PaXu3Gox2vyAtLDjHB8NTJLtMGkvyau6nI3CfpwFCjPUIs/A==} dependencies: regex-utilities: 2.3.0 /regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - /regex@4.4.0: - resolution: {integrity: sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==} + /regex@5.0.2: + resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==} + dependencies: + regex-utilities: 2.3.0 /resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -2100,31 +2102,31 @@ packages: /rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - /rollup@4.27.2: - resolution: {integrity: sha512-KreA+PzWmk2yaFmZVwe6GB2uBD86nXl86OsDkt1bJS9p3vqWuEQ6HnJJ+j/mZi/q0920P99/MVRlB4L3crpF5w==} + /rollup@4.28.0: + resolution: {integrity: sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.27.2 - '@rollup/rollup-android-arm64': 4.27.2 - '@rollup/rollup-darwin-arm64': 4.27.2 - '@rollup/rollup-darwin-x64': 4.27.2 - '@rollup/rollup-freebsd-arm64': 4.27.2 - '@rollup/rollup-freebsd-x64': 4.27.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.27.2 - '@rollup/rollup-linux-arm-musleabihf': 4.27.2 - '@rollup/rollup-linux-arm64-gnu': 4.27.2 - '@rollup/rollup-linux-arm64-musl': 4.27.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.27.2 - '@rollup/rollup-linux-riscv64-gnu': 4.27.2 - '@rollup/rollup-linux-s390x-gnu': 4.27.2 - '@rollup/rollup-linux-x64-gnu': 4.27.2 - '@rollup/rollup-linux-x64-musl': 4.27.2 - '@rollup/rollup-win32-arm64-msvc': 4.27.2 - '@rollup/rollup-win32-ia32-msvc': 4.27.2 - '@rollup/rollup-win32-x64-msvc': 4.27.2 + '@rollup/rollup-android-arm-eabi': 4.28.0 + '@rollup/rollup-android-arm64': 4.28.0 + '@rollup/rollup-darwin-arm64': 4.28.0 + '@rollup/rollup-darwin-x64': 4.28.0 + '@rollup/rollup-freebsd-arm64': 4.28.0 + '@rollup/rollup-freebsd-x64': 4.28.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.28.0 + '@rollup/rollup-linux-arm-musleabihf': 4.28.0 + '@rollup/rollup-linux-arm64-gnu': 4.28.0 + '@rollup/rollup-linux-arm64-musl': 4.28.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.28.0 + '@rollup/rollup-linux-riscv64-gnu': 4.28.0 + '@rollup/rollup-linux-s390x-gnu': 4.28.0 + '@rollup/rollup-linux-x64-gnu': 4.28.0 + '@rollup/rollup-linux-x64-musl': 4.28.0 + '@rollup/rollup-win32-arm64-msvc': 4.28.0 + '@rollup/rollup-win32-ia32-msvc': 4.28.0 + '@rollup/rollup-win32-x64-msvc': 4.28.0 fsevents: 2.3.3 /run-parallel@1.2.0: @@ -2133,8 +2135,8 @@ packages: queue-microtask: 1.2.3 dev: false - /search-insights@2.17.2: - resolution: {integrity: sha512-zFNpOpUO+tY2D85KrxJ+aqwnIfdEGi06UH2+xEb+Bp9Mwznmauqc9djbnBibJO5mpfUPPa8st6Sx65+vbeO45g==} + /search-insights@2.17.3: + resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} /section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} @@ -2156,13 +2158,13 @@ packages: engines: {node: '>=8'} dev: false - /shiki@1.23.0: - resolution: {integrity: sha512-xfdu9DqPkIpExH29cmiTlgo0/jBki5la1Tkfhsv+Wu5TT3APLNHslR1acxuKJOCWqVdSc+pIbs/2ozjVRGppdg==} + /shiki@1.24.0: + resolution: {integrity: sha512-qIneep7QRwxRd5oiHb8jaRzH15V/S8F3saCXOdjwRLgozZJr5x2yeBhQtqkO3FSzQDwYEFAYuifg4oHjpDghrg==} dependencies: - '@shikijs/core': 1.23.0 - '@shikijs/engine-javascript': 1.23.0 - '@shikijs/engine-oniguruma': 1.23.0 - '@shikijs/types': 1.23.0 + '@shikijs/core': 1.24.0 + '@shikijs/engine-javascript': 1.24.0 + '@shikijs/engine-oniguruma': 1.24.0 + '@shikijs/types': 1.24.0 '@shikijs/vscode-textmate': 9.3.0 '@types/hast': 3.0.4 @@ -2268,33 +2270,33 @@ packages: resolution: {integrity: sha512-5qZLXVYfZ9ABdjqbvPc4RWMr7PrpPaaDSeaYY55vl/w1j6H6kzsWK/urAEIXlzYlyrFmyz1UbwIt+AA0ck+wbg==} dev: false - /twoslash-vue@0.2.12(typescript@5.6.3): + /twoslash-vue@0.2.12(typescript@5.7.2): resolution: {integrity: sha512-kxH60DLn2QBcN2wjqxgMDkyRgmPXsytv7fJIlsyFMDPSkm1/lMrI/UMrNAshNaRHcI+hv8x3h/WBgcvlb2RNAQ==} peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 2.1.10(typescript@5.6.3) - twoslash: 0.2.12(typescript@5.6.3) + '@vue/language-core': 2.1.10(typescript@5.7.2) + twoslash: 0.2.12(typescript@5.7.2) twoslash-protocol: 0.2.12 - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: false - /twoslash@0.2.12(typescript@5.6.3): + /twoslash@0.2.12(typescript@5.7.2): resolution: {integrity: sha512-tEHPASMqi7kqwfJbkk7hc/4EhlrKCSLcur+TcvYki3vhIfaRMXnXjaYFgXpoZRbT6GdprD4tGuVBEmTpUgLBsw==} peerDependencies: typescript: '*' dependencies: - '@typescript/vfs': 1.6.0(typescript@5.6.3) + '@typescript/vfs': 1.6.0(typescript@5.7.2) twoslash-protocol: 0.2.12 - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color dev: false - /typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + /typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} engines: {node: '>=14.17'} hasBin: true @@ -2376,7 +2378,7 @@ packages: dependencies: esbuild: 0.21.5 postcss: 8.4.49 - rollup: 4.27.2 + rollup: 4.28.0 optionalDependencies: fsevents: 2.3.3 @@ -2386,8 +2388,8 @@ packages: vitepress: ^1.0.0-rc.27 vue: ^3.3.8 dependencies: - vitepress: 1.5.0(@algolia/client-search@5.14.2)(search-insights@2.17.2)(typescript@5.6.3) - vue: 3.5.13(typescript@5.6.3) + vitepress: 1.5.0(@algolia/client-search@5.15.0)(search-insights@2.17.3)(typescript@5.7.2) + vue: 3.5.13(typescript@5.7.2) dev: false /vitepress-sidebar@1.29.0: @@ -2398,7 +2400,7 @@ packages: gray-matter: 4.0.3 dev: false - /vitepress@1.5.0(@algolia/client-search@5.14.2)(search-insights@2.17.2)(typescript@5.6.3): + /vitepress@1.5.0(@algolia/client-search@5.15.0)(search-insights@2.17.3)(typescript@5.7.2): resolution: {integrity: sha512-q4Q/G2zjvynvizdB3/bupdYkCJe2umSAMv9Ju4d92E6/NXJ59z70xB0q5p/4lpRyAwflDsbwy1mLV9Q5+nlB+g==} hasBin: true peerDependencies: @@ -2411,23 +2413,23 @@ packages: optional: true dependencies: '@docsearch/css': 3.8.0 - '@docsearch/js': 3.8.0(@algolia/client-search@5.14.2)(search-insights@2.17.2) - '@iconify-json/simple-icons': 1.2.11 - '@shikijs/core': 1.23.0 - '@shikijs/transformers': 1.23.0 - '@shikijs/types': 1.23.0 + '@docsearch/js': 3.8.0(@algolia/client-search@5.15.0)(search-insights@2.17.3) + '@iconify-json/simple-icons': 1.2.13 + '@shikijs/core': 1.24.0 + '@shikijs/transformers': 1.24.0 + '@shikijs/types': 1.24.0 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.2.0(vite@5.4.11)(vue@3.5.13) - '@vue/devtools-api': 7.6.4 + '@vitejs/plugin-vue': 5.2.1(vite@5.4.11)(vue@3.5.13) + '@vue/devtools-api': 7.6.7 '@vue/shared': 3.5.13 - '@vueuse/core': 11.2.0(vue@3.5.13) - '@vueuse/integrations': 11.2.0(focus-trap@7.6.2)(vue@3.5.13) + '@vueuse/core': 11.3.0(vue@3.5.13) + '@vueuse/integrations': 11.3.0(focus-trap@7.6.2)(vue@3.5.13) focus-trap: 7.6.2 mark.js: 8.11.1 - minisearch: 7.1.0 - shiki: 1.23.0 + minisearch: 7.1.1 + shiki: 1.24.0 vite: 5.4.11 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -2468,17 +2470,17 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) /vue-resize@2.0.0-alpha.1(vue@3.5.13): resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} peerDependencies: vue: ^3.0.0 dependencies: - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) dev: false - /vue@3.5.13(typescript@5.6.3): + /vue@3.5.13(typescript@5.7.2): resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} peerDependencies: typescript: '*' @@ -2491,7 +2493,7 @@ packages: '@vue/runtime-dom': 3.5.13 '@vue/server-renderer': 3.5.13(vue@3.5.13) '@vue/shared': 3.5.13 - typescript: 5.6.3 + typescript: 5.7.2 /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}