@baeta/plugin-graphql 2.0.0-next.16 → 2.0.0-next.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/index.d.ts +1 -4
- package/dist/index.js +17 -20
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @baeta/plugin-graphql
|
|
2
2
|
|
|
3
|
+
## 2.0.0-next.18
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- feat: type-check $fields keys against their field builders by [@andreisergiu98](https://github.com/andreisergiu98) in [#666](https://github.com/andreisergiu98/baeta/pull/666)
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`f3f2dc9`](https://github.com/andreisergiu98/baeta/commit/f3f2dc9ff29eab02d7d3b36b68e39c2a757a0e9c), [`fd2419f`](https://github.com/andreisergiu98/baeta/commit/fd2419fc692b1c1682da6e8c0d0e4383753b2271)]:
|
|
12
|
+
- @baeta/util-graphql@2.0.0-next.6
|
|
13
|
+
|
|
14
|
+
## 2.0.0-next.17
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- Add support for GraphQL 17 by [@andreisergiu98](https://github.com/andreisergiu98) in [#572](https://github.com/andreisergiu98/baeta/pull/572)
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies [[`5fabeb4`](https://github.com/andreisergiu98/baeta/commit/5fabeb43959a57ac56354d9ae02a4387a1b35998), [`7cd558c`](https://github.com/andreisergiu98/baeta/commit/7cd558c2a2c1111df0b6de663b6db50ad881bc88)]:
|
|
23
|
+
- @baeta/util-graphql@2.0.0-next.5
|
|
24
|
+
- @baeta/generator-sdk@2.0.0-next.8
|
|
25
|
+
|
|
3
26
|
## 2.0.0-next.16
|
|
4
27
|
|
|
5
28
|
### Major Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
declare function graphqlPlugin(): import("@baeta/generator-sdk").GeneratorPluginV1<unknown>;
|
|
3
|
-
//#endregion
|
|
4
|
-
export { graphqlPlugin };
|
|
1
|
+
export declare function graphqlPlugin(): import("@baeta/generator-sdk").GeneratorPluginV1<unknown>;
|
|
5
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -3,15 +3,14 @@ import { createDefinitionsMapFromDocument, createDefinitionsMapFromSources, crea
|
|
|
3
3
|
import { join, posixPath, relative } from "@baeta/util-path";
|
|
4
4
|
import { Kind, concatAST } from "graphql";
|
|
5
5
|
import { camelCase, pascalCase } from "change-case";
|
|
6
|
-
|
|
6
|
+
// lib/namespace.ts
|
|
7
7
|
const namespace = {
|
|
8
8
|
sdk: "BaetaSdk",
|
|
9
9
|
graphql: "BaetaGraphql",
|
|
10
10
|
globalTypes: "BaetaTypes",
|
|
11
11
|
userTypes: "BaetaUserTypes"
|
|
12
12
|
};
|
|
13
|
-
|
|
14
|
-
//#region lib/field-info.ts
|
|
13
|
+
// lib/field-info.ts
|
|
15
14
|
function createFieldInfoMap(definitionsMap, defaultScalars) {
|
|
16
15
|
const map = /* @__PURE__ */ new Map();
|
|
17
16
|
for (const objectType of definitionsMap.objectTypeMap.values()) {
|
|
@@ -41,8 +40,7 @@ function printNamedType$1(definitionsMap, defaultScalars, type, nullable = true)
|
|
|
41
40
|
default: return type;
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
|
-
|
|
45
|
-
//#region lib/printer-autoload.ts
|
|
43
|
+
// lib/printer-autoload.ts
|
|
46
44
|
function printAutoload(config, modules) {
|
|
47
45
|
return [printImports(config, modules), printExport(modules)].join("\n\n");
|
|
48
46
|
}
|
|
@@ -62,8 +60,7 @@ function printExport(modules) {
|
|
|
62
60
|
function printModuleWithSatisfies(module) {
|
|
63
61
|
return ` ${camelCase(module)} satisfies ModuleCompilerFactory<Ctx, Info, ${pascalCase(module)}ModuleTypes["Factories"]>`;
|
|
64
62
|
}
|
|
65
|
-
|
|
66
|
-
//#region lib/printer-utils.ts
|
|
63
|
+
// lib/printer-utils.ts
|
|
67
64
|
function buildBlock({ name, lines }) {
|
|
68
65
|
return [
|
|
69
66
|
`${name} {`,
|
|
@@ -92,8 +89,7 @@ function makeRelativePathForImport(from, to) {
|
|
|
92
89
|
if (res.startsWith(".") || res.startsWith("/")) return res;
|
|
93
90
|
return `./${res}`;
|
|
94
91
|
}
|
|
95
|
-
|
|
96
|
-
//#region lib/printer-module.ts
|
|
92
|
+
// lib/printer-module.ts
|
|
97
93
|
function printModuleIndexStarter(config, moduleName) {
|
|
98
94
|
const typeEntries = Object.entries(config.registry.picks.objects);
|
|
99
95
|
const types = typeEntries.map(([typeName]) => typeName);
|
|
@@ -209,8 +205,9 @@ function printObjectTypeFieldBuilders(config, typeName, field) {
|
|
|
209
205
|
const argumentsType = getArgsType(config, typeName, field);
|
|
210
206
|
const contextType = getContextType();
|
|
211
207
|
const infoType = getInfoType();
|
|
208
|
+
const nameTypes = getFieldNameTypes(typeName, field);
|
|
212
209
|
const fieldType = typeName === "Subscription" ? "SubscriptionMethods" : "FieldMethods";
|
|
213
|
-
return `${field}: ${namespace.sdk}.${fieldType}<${resultType}, ${parentType}, ${contextType}, ${argumentsType}, ${infoType}>`;
|
|
210
|
+
return `${field}: ${namespace.sdk}.${fieldType}<${resultType}, ${parentType}, ${contextType}, ${argumentsType}, ${infoType}, ${nameTypes}>`;
|
|
214
211
|
}
|
|
215
212
|
function printObjectTypeFieldFactories(config, typeName, field) {
|
|
216
213
|
const parentType = getParentType(typeName);
|
|
@@ -218,8 +215,9 @@ function printObjectTypeFieldFactories(config, typeName, field) {
|
|
|
218
215
|
const argumentsType = getArgsType(config, typeName, field);
|
|
219
216
|
const contextType = getContextType();
|
|
220
217
|
const infoType = getInfoType();
|
|
218
|
+
const nameTypes = getFieldNameTypes(typeName, field);
|
|
221
219
|
const fieldType = typeName === "Subscription" ? "SubscriptionField" : "Field";
|
|
222
|
-
return `${field}: ${namespace.sdk}.${fieldType}<${resultType}, ${resultType}, ${parentType}, ${contextType}, ${argumentsType}, ${infoType}>`;
|
|
220
|
+
return `${field}: ${namespace.sdk}.${fieldType}<${resultType}, ${resultType}, ${parentType}, ${contextType}, ${argumentsType}, ${infoType}, ${nameTypes}>`;
|
|
223
221
|
}
|
|
224
222
|
function printModuleBuilder(config, moduleName) {
|
|
225
223
|
const builders = buildCodeBlock({
|
|
@@ -265,6 +263,10 @@ function getResultType(config, type, field) {
|
|
|
265
263
|
if (fieldType == null) return "{}";
|
|
266
264
|
return fieldType;
|
|
267
265
|
}
|
|
266
|
+
function getFieldNameTypes(type, field) {
|
|
267
|
+
if (type === "Subscription") return `"${field}"`;
|
|
268
|
+
return `"${type}", "${field}"`;
|
|
269
|
+
}
|
|
268
270
|
function getArgsType(config, type, field) {
|
|
269
271
|
if (!(config.fieldInfo.get(type)?.get(field)?.hasArguments ?? false)) return "{}";
|
|
270
272
|
const fieldUpper = pascalCase(field);
|
|
@@ -280,8 +282,7 @@ function getContextType() {
|
|
|
280
282
|
function getInfoType() {
|
|
281
283
|
return `${namespace.userTypes}.Info`;
|
|
282
284
|
}
|
|
283
|
-
|
|
284
|
-
//#region lib/printer-templates.ts
|
|
285
|
+
// lib/printer-templates.ts
|
|
285
286
|
function printTypesTemplate(options) {
|
|
286
287
|
return `import type { GraphQLResolveInfo } from 'graphql';
|
|
287
288
|
import type { BaseObjectTypes, BaseScalars } from '${makeRelativePathForImport(options.modulesDir, options.typesDir)}/utility${options.importExtension}';
|
|
@@ -295,8 +296,7 @@ export type Ctx = {};
|
|
|
295
296
|
export type Info = GraphQLResolveInfo;
|
|
296
297
|
`;
|
|
297
298
|
}
|
|
298
|
-
|
|
299
|
-
//#region lib/printer-types.ts
|
|
299
|
+
// lib/printer-types.ts
|
|
300
300
|
function printUtilityTypes() {
|
|
301
301
|
return ["export type Or<A, B> = void extends A ? B : A;", "export type Maybe<T> = T | null;"].join("\n\n");
|
|
302
302
|
}
|
|
@@ -434,8 +434,7 @@ function printOptionalMarker(config, type) {
|
|
|
434
434
|
function printOrObjectType(type, fields) {
|
|
435
435
|
return `BaetaUtility.Or<BaetaOverrides.ObjectTypes["${type.name.value}"], {\n${fields?.map(indent(2)).join("\n") ?? ""}\n}>`;
|
|
436
436
|
}
|
|
437
|
-
|
|
438
|
-
//#region lib/codegen.ts
|
|
437
|
+
// lib/codegen.ts
|
|
439
438
|
async function generate(options, currentFiles) {
|
|
440
439
|
const { outputSchema, outputSchemaAst } = await loadSchema(options.schemas, options.cwd, options.loaders);
|
|
441
440
|
const sources = getSourcesFromSchema(outputSchemaAst);
|
|
@@ -544,8 +543,7 @@ async function generate(options, currentFiles) {
|
|
|
544
543
|
}
|
|
545
544
|
return files;
|
|
546
545
|
}
|
|
547
|
-
|
|
548
|
-
//#region index.ts
|
|
546
|
+
// index.ts
|
|
549
547
|
function graphqlPlugin() {
|
|
550
548
|
return createPluginV1({
|
|
551
549
|
name: "graphql",
|
|
@@ -564,7 +562,6 @@ function graphqlPlugin() {
|
|
|
564
562
|
}
|
|
565
563
|
});
|
|
566
564
|
}
|
|
567
|
-
//#endregion
|
|
568
565
|
export { graphqlPlugin };
|
|
569
566
|
|
|
570
567
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["printNamedType"],"sources":["../lib/namespace.ts","../lib/field-info.ts","../lib/printer-autoload.ts","../lib/printer-utils.ts","../lib/printer-module.ts","../lib/printer-templates.ts","../lib/printer-types.ts","../lib/codegen.ts","../index.ts"],"sourcesContent":["export const namespace = {\n\tsdk: 'BaetaSdk',\n\tgraphql: 'BaetaGraphql',\n\tglobalTypes: 'BaetaTypes',\n\tuserTypes: 'BaetaUserTypes',\n};\n","import { type DefinitionsMap, isScalarType } from '@baeta/util-graphql';\nimport { Kind, type TypeNode } from 'graphql';\nimport { namespace } from './namespace.ts';\n\nexport type FieldInfoMap = Map<string, Map<string, { type: string; hasArguments: boolean }>>;\n\nexport function createFieldInfoMap(definitionsMap: DefinitionsMap, defaultScalars: string[]) {\n\tconst map: FieldInfoMap = new Map();\n\tfor (const objectType of definitionsMap.objectTypeMap.values()) {\n\t\tconst objectName = objectType.name.value;\n\t\tfor (const field of objectType.fields ?? []) {\n\t\t\tconst fieldName = field.name.value;\n\t\t\tconst type = printNamedType(definitionsMap, defaultScalars, field.type);\n\t\t\tconst hasArguments = field.arguments != null && field.arguments.length > 0;\n\t\t\tconst fieldMap = map.get(objectName) ?? new Map();\n\t\t\tfieldMap.set(fieldName, { type, hasArguments });\n\t\t\tmap.set(objectName, fieldMap);\n\t\t}\n\t}\n\treturn map;\n}\n\nfunction printNamedType(\n\tdefinitionsMap: DefinitionsMap,\n\tdefaultScalars: string[],\n\ttype: TypeNode,\n\tnullable = true,\n): string {\n\tconst withNullable = nullable ? ' | null' : '';\n\tswitch (type.kind) {\n\t\tcase Kind.NAMED_TYPE:\n\t\t\tif (isScalarType(definitionsMap, defaultScalars, type)) {\n\t\t\t\treturn `${namespace.globalTypes}.Scalars[\"${type.name.value}\"]${withNullable}`;\n\t\t\t}\n\t\t\treturn `${namespace.globalTypes}.${type.name.value}${withNullable}`;\n\t\tcase Kind.LIST_TYPE:\n\t\t\treturn `Array<${printNamedType(definitionsMap, defaultScalars, type.type)}>${withNullable}`;\n\t\tcase Kind.NON_NULL_TYPE:\n\t\t\treturn printNamedType(definitionsMap, defaultScalars, type.type, false);\n\t\tdefault:\n\t\t\treturn type satisfies never;\n\t}\n}\n","import { camelCase, pascalCase } from 'change-case';\n\ninterface AutoloadPrinterConfig {\n\tmoduleDefinitionName: string;\n\timportExtension: '.ts' | '.js' | '';\n}\n\nexport function printAutoload(config: AutoloadPrinterConfig, modules: string[]) {\n\treturn [printImports(config, modules), printExport(modules)].join('\\n\\n');\n}\n\nfunction printImports(config: AutoloadPrinterConfig, modules: string[]) {\n\tconst dependencyImports = [\n\t\t'import type { ModuleCompilerFactory } from \"@baeta/core/sdk\";',\n\t\t`import type { Ctx, Info } from \"./types${config.importExtension}\"`,\n\t];\n\tconst moduleTypeImports = modules.map(\n\t\t(module) =>\n\t\t\t`import type { BaetaModuleTypes as ${pascalCase(module)}ModuleTypes } from \"./${module}/${config.moduleDefinitionName}${config.importExtension}\"`,\n\t);\n\tconst moduleImports = modules.flatMap(\n\t\t(module) => `import ${camelCase(module)} from \"./${module}/index${config.importExtension}\"`,\n\t);\n\treturn [...dependencyImports, ...moduleTypeImports, ...moduleImports].join('\\n');\n}\n\nfunction printExport(modules: string[]) {\n\treturn `export default [\\n${modules.map(printModuleWithSatisfies).join(',\\n')}\\n];`;\n}\n\nfunction printModuleWithSatisfies(module: string) {\n\treturn ` ${camelCase(module)} satisfies ModuleCompilerFactory<Ctx, Info, ${pascalCase(module)}ModuleTypes[\"Factories\"]>`;\n}\n","import { posixPath, relative } from '@baeta/util-path';\n\nexport function buildBlock({ name, lines }: { name: string; lines: string[] }): string {\n\treturn [`${name} {`, ...lines.filter(Boolean).map(indent(2)), '};'].join('\\n');\n}\n\nexport function buildCodeBlock({ name, lines }: { name: string; lines: string[] }) {\n\tif (lines.length === 0) {\n\t\treturn `${name} {}`;\n\t}\n\tconst linesWithSep = lines.filter(Boolean).map(indent(2)).join(',\\n');\n\treturn [`${name} {`, linesWithSep, '}'].join('\\n');\n}\n\nexport function indent(size: number) {\n\tconst space = new Array(size).fill(' ').join('');\n\tfunction indentInner(val: string): string {\n\t\treturn val\n\t\t\t.split('\\n')\n\t\t\t.map((line) => `${space}${line}`)\n\t\t\t.join('\\n');\n\t}\n\treturn indentInner;\n}\n\nexport function unique<T>(val: T, i: number, all: T[]): boolean {\n\treturn i === all.indexOf(val);\n}\n\nexport function makeRelativePathForImport(from: string, to: string) {\n\tconst res = posixPath(relative(from, to));\n\tif (res.startsWith('.') || res.startsWith('/')) {\n\t\treturn res;\n\t}\n\treturn `./${res}`;\n}\n","import type { ModuleRegistry } from '@baeta/util-graphql';\nimport { join } from '@baeta/util-path';\nimport { pascalCase } from 'change-case';\nimport type { DocumentNode } from 'graphql';\nimport type { FieldInfoMap } from './field-info.ts';\nimport { namespace } from './namespace.ts';\nimport { buildBlock, buildCodeBlock, indent, makeRelativePathForImport } from './printer-utils.ts';\n\nexport interface ModulePrinterConfig {\n\tregistry: ModuleRegistry;\n\tfieldInfo: FieldInfoMap;\n\ttypesDir: string;\n\tmodulesDir: string;\n\tmoduleDefinitionName: string;\n\timportExtension: '.ts' | '.js' | '';\n}\n\nexport function printModuleIndexStarter(config: ModulePrinterConfig, moduleName: string): string {\n\tconst typeEntries = Object.entries(config.registry.picks.objects);\n\tconst types = typeEntries.map(([typeName]) => typeName);\n\n\treturn [\n\t\tprintModuleIndexImports(config, moduleName),\n\t\tprintModuleIndexDestructuredTypes(moduleName, types),\n\t\t...typeEntries.map(([typeName, fields]) => printModuleIndexType(typeName, fields)),\n\t\tprintModuleIndexSchema(moduleName, types, config.registry.defined.scalars),\n\t]\n\t\t.filter((el) => el != null)\n\t\t.join('\\n\\n');\n}\n\nexport function printModuleImports(config: ModulePrinterConfig, moduleName: string) {\n\tconst typesDir = makeRelativePathForImport(join(config.modulesDir, moduleName), config.typesDir);\n\tconst hasTypes = config.registry.defined.objects.length > 0;\n\treturn [\n\t\t`import * as ${namespace.sdk} from \"@baeta/core/sdk\";`,\n\t\t`import type * as ${namespace.graphql} from \"graphql\";`,\n\t\thasTypes\n\t\t\t? `import type * as ${namespace.globalTypes} from \"${typesDir}/types${config.importExtension}\";`\n\t\t\t: null,\n\t\t`import type * as ${namespace.userTypes} from \"../types${config.importExtension}\";`,\n\t]\n\t\t.filter((el) => el != null)\n\t\t.join('\\n');\n}\n\nexport function printModuleMetadata(name: string, doc: DocumentNode) {\n\treturn buildCodeBlock({\n\t\tname: 'const moduleMetadata =',\n\t\tlines: [\n\t\t\t`id: '${name}'`,\n\t\t\t`typedef: ${JSON.stringify(doc)} as unknown as ${namespace.graphql}.DocumentNode`,\n\t\t],\n\t});\n}\n\nexport function printBaetaModuleTypes(config: ModulePrinterConfig) {\n\treturn buildBlock({\n\t\tname: 'export interface BaetaModuleTypes',\n\t\tlines: [\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Builders:',\n\t\t\t\tlines: printBaetaModuleTypesForFields(config, false),\n\t\t\t}),\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Factories:',\n\t\t\t\tlines: [\n\t\t\t\t\t...printBaetaModuleTypesForFields(config, true),\n\t\t\t\t\t...printBaetaModuleTypesScalars(config),\n\t\t\t\t],\n\t\t\t}),\n\t\t],\n\t});\n}\n\nfunction printModuleIndexDestructuredTypes(moduleName: string, types: string[]) {\n\treturn `const { ${types.join(', ')} } = ${pascalCase(moduleName)}Module;`;\n}\n\nfunction printModuleIndexImports(config: ModulePrinterConfig, moduleName: string) {\n\tconst hasScalars = config.registry.defined.scalars.length > 0;\n\tconst moduleImport = `import { ${pascalCase(moduleName)}Module } from \"./${config.moduleDefinitionName}${config.importExtension}\";`;\n\tif (!hasScalars) {\n\t\treturn moduleImport;\n\t}\n\treturn [`import { GraphQLScalarType } from \"graphql\";`, moduleImport].join('\\n');\n}\n\nfunction printModuleIndexSchema(moduleName: string, types: string[], scalars: string[]) {\n\tconst printedTypes = [\n\t\t...types.map((typeName) => `${typeName}: ${typeName}Resolver,`),\n\t\t...scalars.map(\n\t\t\t(scalarName) => `${scalarName}: new GraphQLScalarType({ name: '${scalarName}' }),`,\n\t\t),\n\t]\n\t\t.map(indent(2))\n\t\t.join('\\n');\n\n\treturn `export default ${pascalCase(moduleName)}Module.$schema({\n${printedTypes}\n});`;\n}\n\nfunction printModuleIndexType(typeName: string, fields: string[]) {\n\tconst printedFields = fields\n\t\t.map((fieldName) => printModuleIndexTypeField(typeName, fieldName))\n\t\t.map(indent(2))\n\t\t.join('\\n');\n\n\treturn `const ${typeName}Resolver = ${typeName}.$fields({\n${printedFields}\n});`;\n}\n\nfunction printModuleIndexTypeField(typeName: string, fieldName: string) {\n\tif (typeName === 'Query' || typeName === 'Mutation') {\n\t\treturn `${fieldName}: ${typeName}.${fieldName}.resolve((params) => {\n // Implement resolver logic here\n}),`;\n\t}\n\n\tif (typeName === 'Subscription') {\n\t\treturn `${fieldName}: ${typeName}.${fieldName}\n .subscribe((params) => {\n // Implement subscribe logic here\n })\n .resolve((params) => {\n // Implement resolver logic here\n }),`;\n\t}\n\n\treturn `${fieldName}: ${typeName}.${fieldName}.key('${fieldName}'),`;\n}\n\nfunction printBaetaModuleTypesForFields(config: ModulePrinterConfig, isFactory: boolean) {\n\treturn config.registry.defined.objects\n\t\t.map((typeName) =>\n\t\t\tprintObjectTypeModuleType(typeName, config.registry.picks.objects, isFactory),\n\t\t)\n\t\t.filter(Boolean);\n}\n\nfunction printObjectTypeModuleType(\n\ttypeName: string,\n\tobjects: Record<string, string[] | undefined>,\n\tisFactory: boolean,\n) {\n\tconst object = objects[typeName];\n\tif (!object) {\n\t\treturn '';\n\t}\n\tconst parentType = getParentType(typeName);\n\tconst contextType = getContextType();\n\tconst infoType = getInfoType();\n\tif (isFactory) {\n\t\treturn `${typeName}: ${namespace.sdk}.TypeCompilerFactory<${parentType}, ${contextType}, ${infoType}, BaetaModuleObjectTypeFields['${typeName}']['Factory']>`;\n\t}\n\treturn `${typeName}: ${namespace.sdk}.TypeMethods<${parentType}, ${contextType}, ${infoType}, BaetaModuleObjectTypeFields['${typeName}']['Builder'], BaetaModuleObjectTypeFields['${typeName}']['Factory']>`;\n}\n\nfunction printBaetaModuleTypesScalars(config: ModulePrinterConfig) {\n\treturn config.registry.defined.scalars.map(\n\t\t(scalar) => `${scalar}: ${namespace.graphql}.GraphQLScalarType`,\n\t);\n}\n\nexport function printModuleObjectTypeFields(config: ModulePrinterConfig) {\n\tconst objects = config.registry.defined.objects\n\t\t.map((typeName) => printObjectTypeFields(config, typeName, config.registry.picks.objects))\n\t\t.filter(Boolean);\n\tif (objects.length === 0) {\n\t\treturn '';\n\t}\n\treturn buildBlock({\n\t\tname: 'interface BaetaModuleObjectTypeFields',\n\t\tlines: objects,\n\t});\n}\n\nfunction printObjectTypeFields(\n\tconfig: ModulePrinterConfig,\n\ttypeName: string,\n\tobjects: Record<string, string[] | undefined>,\n) {\n\tconst fields = objects[typeName];\n\tif (!fields || fields.length === 0) {\n\t\treturn '';\n\t}\n\tconst fieldsBuilders = fields.map((field) =>\n\t\tprintObjectTypeFieldBuilders(config, typeName, field),\n\t);\n\tconst fieldsFactories = fields.map((field) =>\n\t\tprintObjectTypeFieldFactories(config, typeName, field),\n\t);\n\treturn buildBlock({\n\t\tname: `${typeName}:`,\n\t\tlines: [\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Builder:',\n\t\t\t\tlines: fieldsBuilders,\n\t\t\t}),\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Factory:',\n\t\t\t\tlines: fieldsFactories,\n\t\t\t}),\n\t\t],\n\t});\n}\n\nfunction printObjectTypeFieldBuilders(\n\tconfig: ModulePrinterConfig,\n\ttypeName: string,\n\tfield: string,\n) {\n\tconst parentType = getParentType(typeName);\n\tconst resultType = getResultType(config, typeName, field);\n\tconst argumentsType = getArgsType(config, typeName, field);\n\tconst contextType = getContextType();\n\tconst infoType = getInfoType();\n\tconst fieldType = typeName === 'Subscription' ? 'SubscriptionMethods' : 'FieldMethods';\n\treturn `${field}: ${namespace.sdk}.${fieldType}<${resultType}, ${parentType}, ${contextType}, ${argumentsType}, ${infoType}>`;\n}\n\nfunction printObjectTypeFieldFactories(\n\tconfig: ModulePrinterConfig,\n\ttypeName: string,\n\tfield: string,\n) {\n\tconst parentType = getParentType(typeName);\n\tconst resultType = getResultType(config, typeName, field);\n\tconst argumentsType = getArgsType(config, typeName, field);\n\tconst contextType = getContextType();\n\tconst infoType = getInfoType();\n\tconst fieldType = typeName === 'Subscription' ? 'SubscriptionField' : 'Field';\n\treturn `${field}: ${namespace.sdk}.${fieldType}<${resultType}, ${resultType}, ${parentType}, ${contextType}, ${argumentsType}, ${infoType}>`;\n}\n\nexport function printModuleBuilder(config: ModulePrinterConfig, moduleName: string) {\n\tconst objectTypes = config.registry.defined.objects\n\t\t.map((typeName) => printObjectTypeBuilder(typeName, config.registry.picks.objects))\n\t\t.filter(Boolean);\n\tconst builders = buildCodeBlock({\n\t\tname: '',\n\t\tlines: objectTypes,\n\t});\n\tconst typeNameResolvers = buildCodeBlock({\n\t\tname: '',\n\t\tlines: [...config.registry.defined.unions, ...config.registry.defined.interfaces].map(\n\t\t\t(name) => `${name}: ${printTypeNameResolver()}`,\n\t\t),\n\t});\n\tconst infoType = getInfoType();\n\tconst contextType = getContextType();\n\treturn [\n\t\t`export const ${pascalCase(moduleName)}Module = ${namespace.sdk}.createModuleBuilder<${contextType}, ${infoType}, BaetaModuleTypes['Builders'], BaetaModuleTypes['Factories']>(moduleMetadata.id, moduleMetadata.typedef,`,\n\t\tbuilders,\n\t\t',',\n\t\ttypeNameResolvers,\n\t\t`);`,\n\t].join('');\n}\n\nfunction printObjectTypeBuilder(typeName: string, objects: Record<string, string[] | undefined>) {\n\tconst fields = objects[typeName]?.map((field) => printObjectTypeFieldBuilder(typeName, field));\n\tif (fields == null || fields.length === 0) {\n\t\treturn '';\n\t}\n\tconst content = buildCodeBlock({\n\t\tname: '',\n\t\tlines: fields,\n\t});\n\treturn `${typeName}: ${namespace.sdk}.createTypeBuilder(\"${typeName}\",${content})`;\n}\n\nfunction printTypeNameResolver() {\n\treturn '{ __resolveType: (source: {__typename: string}) => { return source.__typename; }}';\n}\n\nfunction getParentType(type: string) {\n\tif (['Query', 'Mutation', 'Subscription'].includes(type)) {\n\t\treturn '{}';\n\t}\n\treturn `${namespace.globalTypes}.${type}`;\n}\n\nfunction getResultType(config: ModulePrinterConfig, type: string, field: string) {\n\tconst fieldType = config.fieldInfo.get(type)?.get(field)?.type;\n\tif (fieldType == null) {\n\t\treturn '{}';\n\t}\n\treturn fieldType;\n}\n\nfunction getArgsType(config: ModulePrinterConfig, type: string, field: string) {\n\tconst hasArgs = config.fieldInfo.get(type)?.get(field)?.hasArguments ?? false;\n\tif (!hasArgs) {\n\t\treturn '{}';\n\t}\n\tconst fieldUpper = pascalCase(field);\n\treturn `${namespace.globalTypes}.${type}${fieldUpper}Args`;\n}\n\nfunction printObjectTypeFieldBuilder(typeName: string, field: string) {\n\tif (typeName === 'Subscription') {\n\t\treturn `${field}: ${namespace.sdk}.createSubscriptionBuilder(\"${field}\")`;\n\t}\n\treturn `${field}: ${namespace.sdk}.createFieldBuilder(\"${typeName}\", \"${field}\")`;\n}\n\nfunction getContextType() {\n\treturn `${namespace.userTypes}.Ctx`;\n}\n\nfunction getInfoType() {\n\treturn `${namespace.userTypes}.Info`;\n}\n","import { makeRelativePathForImport } from './printer-utils.ts';\n\nexport function printTypesTemplate(options: {\n\timportExtension: '.js' | '.ts' | '';\n\ttypesDir: string;\n\tmodulesDir: string;\n}) {\n\tconst importDir = makeRelativePathForImport(options.modulesDir, options.typesDir);\n\n\treturn `import type { GraphQLResolveInfo } from 'graphql';\nimport type { BaseObjectTypes, BaseScalars } from '${importDir}/utility${options.importExtension}';\n\nexport interface Scalars extends BaseScalars {}\n\nexport interface ObjectTypes extends BaseObjectTypes {}\n\nexport type Ctx = {};\n\nexport type Info = GraphQLResolveInfo;\n`;\n}\n","import { type DefinitionsMap, isScalarType } from '@baeta/util-graphql';\nimport { pascalCase } from 'change-case';\nimport {\n\ttype EnumTypeDefinitionNode,\n\ttype FieldDefinitionNode,\n\ttype InputObjectTypeDefinitionNode,\n\ttype InputValueDefinitionNode,\n\ttype InterfaceTypeDefinitionNode,\n\tKind,\n\ttype ListTypeNode,\n\ttype NamedTypeNode,\n\ttype ObjectTypeDefinitionNode,\n\ttype TypeNode,\n\ttype UnionTypeDefinitionNode,\n} from 'graphql';\nimport { buildBlock, indent, makeRelativePathForImport } from './printer-utils.ts';\n\nexport interface PrinterConfig {\n\tglobalDefinitions: DefinitionsMap;\n\twithMaybe: boolean;\n\twithOptional: boolean;\n\tdefaultScalars: string[];\n\timportExtension: '.ts' | '.js' | '';\n\ttypesDir: string;\n\tmodulesDir: string;\n}\n\nexport function printUtilityTypes(): string {\n\treturn [\n\t\t'export type Or<A, B> = void extends A ? B : A;',\n\t\t'export type Maybe<T> = T | null;',\n\t].join('\\n\\n');\n}\n\nconst defaultScalarTypes: Record<string, string | undefined> = {\n\tID: 'string',\n\tString: 'string',\n\tBoolean: 'boolean',\n\tInt: 'number',\n\tFloat: 'number',\n};\n\nexport function printBaseScalars(config: PrinterConfig): string {\n\tconst defaultScalars = config.defaultScalars\n\t\t.map((scalar) => {\n\t\t\tconst type = defaultScalarTypes[scalar];\n\t\t\tif (type == null) return null;\n\t\t\treturn `${scalar}: ${type};`;\n\t\t})\n\t\t.filter((el) => el != null);\n\tconst customScalars = [...config.globalDefinitions.scalarTypeMap.values()].map(\n\t\t(scalar) => `${scalar.name.value}: unknown;`,\n\t);\n\n\treturn buildBlock({\n\t\tname: 'export type BaseScalars =',\n\t\tlines: [...defaultScalars, ...customScalars],\n\t});\n}\n\nexport function printBaseObjectTypes(config: PrinterConfig): string {\n\tconst objectTypes = [...config.globalDefinitions.objectTypeMap.values()].map((t) => t.name.value);\n\treturn buildBlock({\n\t\tname: 'export interface BaseObjectTypes',\n\t\tlines: objectTypes.map((t) => `${t}: unknown;`),\n\t});\n}\n\nexport function printTypesHeaders(config: PrinterConfig): string {\n\tconst overridesDir = makeRelativePathForImport(config.typesDir, config.modulesDir);\n\treturn [\n\t\t`import type * as BaetaUtility from \"./utility${config.importExtension}\";`,\n\t\t`import type * as BaetaOverrides from \"${overridesDir}/types${config.importExtension}\";`,\n\t\t'',\n\t\t'export type Scalars = BaetaOverrides.Scalars;',\n\t].join('\\n');\n}\n\nexport function printRootTypesFromMap(\n\tconfig: PrinterConfig,\n\trootTypes: string[],\n\tmap: Map<string, ObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()]\n\t\t.filter((type) => rootTypes.includes(type.name.value))\n\t\t.map((type) => printObjectType(config, type))\n\t\t.join('\\n\\n');\n}\n\nexport function printObjectTypeTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, ObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printObjectType(config, type));\n}\n\nfunction printObjectType(config: PrinterConfig, type: ObjectTypeDefinitionNode) {\n\tconst fields = type.fields?.map((field) => printObjectTypeField(config, field));\n\treturn `export type ${type.name.value} = ${printOrObjectType(type, fields)}`;\n}\n\nfunction printObjectTypeField(config: PrinterConfig, field: FieldDefinitionNode) {\n\tconst optionalMarker = printOptionalMarker(config, field.type);\n\treturn `${field.name.value}${optionalMarker}: ${printType(config, field.type)}`;\n}\n\nexport function printEnumTypesFromMap(map: Map<string, EnumTypeDefinitionNode>) {\n\treturn [...map.values()].map(printEnumType);\n}\n\nfunction printEnumType(type: EnumTypeDefinitionNode) {\n\tconst values = type.values?.map((value) => `'${value.name.value}'`);\n\treturn `export type ${type.name.value} = ${values?.join(' | ') || 'never'}`;\n}\n\nexport function printInterfaceTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, InterfaceTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printInterfaceType(config, type));\n}\n\nfunction printInterfaceType(config: PrinterConfig, type: InterfaceTypeDefinitionNode) {\n\tconst objectTypes = Array.from(config.globalDefinitions.objectTypeMap.values());\n\tconst implementingTypes = objectTypes.filter((t) =>\n\t\tt.interfaces?.some((i) => i.name.value === type.name.value),\n\t);\n\tconst types = implementingTypes.map((t) => printNamedTypeForInterface(t.name.value));\n\treturn `export type ${type.name.value} = ${types.join(' | ') || 'never'}`;\n}\n\nfunction printNamedTypeForInterface(name: string) {\n\treturn `${name} & {__typename: \"${name}\"}`;\n}\n\nexport function printUnionTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, UnionTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printUnionType(config, type));\n}\n\nfunction printUnionType(config: PrinterConfig, type: UnionTypeDefinitionNode) {\n\tconst types = type.types?.map((type) => printNamedTypeForUnion(config, type));\n\treturn `export type ${type.name.value} = ${types?.join(' | ') || 'never'}`;\n}\n\nfunction printNamedTypeForUnion(config: PrinterConfig, type: NamedTypeNode) {\n\treturn `${printNamedType(config, type, false)} & {__typename: \"${type.name.value}\"}`;\n}\n\nexport function printInputObjectTypeTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, InputObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printInputObjectType(config, type));\n}\n\nfunction printInputObjectType(config: PrinterConfig, type: InputObjectTypeDefinitionNode) {\n\tconst fields = type.fields?.map((field) => printInputObjectTypeField(config, field));\n\treturn buildBlock({\n\t\tname: `export type ${type.name.value} =`,\n\t\tlines: fields ?? [],\n\t});\n}\n\nfunction printInputObjectTypeField(config: PrinterConfig, field: InputValueDefinitionNode) {\n\tconst optionalMarker = printOptionalMarker(config, field.type);\n\treturn `${field.name.value}${optionalMarker}: ${printType(config, field.type)}`;\n}\n\nexport function printObjectTypeFieldsArgsFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, ObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()].flatMap((type) => printObjectTypeArgs(config, type));\n}\n\nfunction printObjectTypeArgs(config: PrinterConfig, type: ObjectTypeDefinitionNode) {\n\tif (type.fields == null) {\n\t\treturn [];\n\t}\n\treturn type.fields\n\t\t.map((field) => printObjectTypeFieldArgs(config, type.name.value, field))\n\t\t.filter(Boolean);\n}\n\nfunction printObjectTypeFieldArgs(\n\tconfig: PrinterConfig,\n\ttypeName: string,\n\tfield: FieldDefinitionNode,\n) {\n\tconst name = `${typeName + pascalCase(field.name.value)}Args`;\n\treturn buildBlock({\n\t\tname: `export type ${name} =`,\n\t\tlines: field.arguments?.map((arg) => printObjectTypeFieldArg(config, arg)) ?? [],\n\t});\n}\n\nfunction printObjectTypeFieldArg(config: PrinterConfig, arg: InputValueDefinitionNode) {\n\treturn `${arg.name.value}: ${printType(config, arg.type)}`;\n}\n\nfunction printType(config: PrinterConfig, type: TypeNode, nullable = true): string {\n\tswitch (type.kind) {\n\t\tcase Kind.NAMED_TYPE:\n\t\t\treturn printNamedType(config, type, nullable);\n\t\tcase Kind.LIST_TYPE:\n\t\t\treturn printListType(config, type, nullable);\n\t\tcase Kind.NON_NULL_TYPE:\n\t\t\treturn printType(config, type.type, false);\n\t\tdefault:\n\t\t\treturn type satisfies never;\n\t}\n}\n\nfunction printListType(config: PrinterConfig, type: ListTypeNode, nullable = true): string {\n\treturn printValue(config, `Array<${printType(config, type.type)}>`, nullable);\n}\n\nfunction printNamedType(config: PrinterConfig, type: NamedTypeNode, nullable = true): string {\n\tif (isScalarType(config.globalDefinitions, config.defaultScalars, type)) {\n\t\treturn printScalarType(config, type, nullable);\n\t}\n\treturn printValue(config, type.name.value, nullable);\n}\n\nfunction printScalarType(config: PrinterConfig, type: NamedTypeNode, nullable = true): string {\n\treturn printValue(config, `Scalars[\"${type.name.value}\"]`, nullable);\n}\n\nfunction printValue(config: PrinterConfig, value: string, nullable: boolean): string {\n\tif (!nullable) {\n\t\treturn value;\n\t}\n\tif (config.withMaybe) {\n\t\treturn `BaetaUtility.Maybe<${value}>`;\n\t}\n\treturn `${value} | null`;\n}\n\nfunction printOptionalMarker(config: PrinterConfig, type: TypeNode) {\n\treturn config.withOptional && type.kind !== Kind.NON_NULL_TYPE ? '?' : '';\n}\n\nfunction printOrObjectType(type: ObjectTypeDefinitionNode, fields?: string[]): string {\n\treturn `BaetaUtility.Or<BaetaOverrides.ObjectTypes[\"${type.name.value}\"], {\\n${fields?.map(indent(2)).join('\\n') ?? ''}\\n}>`;\n}\n","import type { File, FileOptions, NormalizedGeneratorOptions } from '@baeta/generator-sdk';\nimport {\n\tcreateDefinitionsMapFromDocument,\n\tcreateDefinitionsMapFromSources,\n\tcreateModuleRegistry,\n\tgetSourcesFromSchema,\n\tgroupSourcesByModule,\n\tloadSchema,\n} from '@baeta/util-graphql';\nimport { join } from '@baeta/util-path';\nimport { concatAST } from 'graphql';\nimport { createFieldInfoMap } from './field-info.ts';\nimport { printAutoload } from './printer-autoload.ts';\nimport {\n\ttype ModulePrinterConfig,\n\tprintBaetaModuleTypes,\n\tprintModuleBuilder,\n\tprintModuleImports,\n\tprintModuleIndexStarter,\n\tprintModuleMetadata,\n\tprintModuleObjectTypeFields,\n} from './printer-module.ts';\nimport { printTypesTemplate } from './printer-templates.ts';\nimport {\n\ttype PrinterConfig,\n\tprintBaseObjectTypes,\n\tprintBaseScalars,\n\tprintEnumTypesFromMap,\n\tprintInputObjectTypeTypesFromMap,\n\tprintInterfaceTypesFromMap,\n\tprintObjectTypeFieldsArgsFromMap,\n\tprintObjectTypeTypesFromMap,\n\tprintRootTypesFromMap,\n\tprintTypesHeaders,\n\tprintUnionTypesFromMap,\n\tprintUtilityTypes,\n} from './printer-types.ts';\n\ntype GeneratedFile = {\n\tfilename: string;\n\tcontent: string;\n\toptions?: FileOptions;\n};\n\nexport async function generate(\n\toptions: NormalizedGeneratorOptions,\n\tcurrentFiles: File[],\n): Promise<GeneratedFile[]> {\n\tconst { outputSchema, outputSchemaAst } = await loadSchema(\n\t\toptions.schemas,\n\t\toptions.cwd,\n\t\toptions.loaders,\n\t);\n\tconst sources = getSourcesFromSchema(outputSchemaAst);\n\tconst sourcesByModule = groupSourcesByModule(sources, options.modulesDir);\n\tconst modules = Array.from(sourcesByModule.keys());\n\tconst globalDefinitions = createDefinitionsMapFromDocument(outputSchema);\n\tconst modulesDefinitions = createDefinitionsMapFromSources(sources);\n\n\tconst defaultScalars = ['ID', 'Int', 'Float', 'String', 'Boolean'];\n\n\tconst config: PrinterConfig = {\n\t\tglobalDefinitions,\n\t\twithMaybe: false,\n\t\twithOptional: false,\n\t\tdefaultScalars,\n\t\timportExtension: options.importExtension,\n\t\ttypesDir: options.typesDir,\n\t\tmodulesDir: options.modulesDir,\n\t};\n\n\tconst fieldInfo = createFieldInfoMap(globalDefinitions, defaultScalars);\n\n\tconst typesContent = [\n\t\tprintTypesHeaders(config),\n\t\tprintRootTypesFromMap(\n\t\t\tconfig,\n\t\t\t['Query', 'Mutation', 'Subscription'],\n\t\t\tglobalDefinitions.objectTypeMap,\n\t\t),\n\t\t...printEnumTypesFromMap(globalDefinitions.enumTypeMap),\n\t\t...printObjectTypeTypesFromMap(config, modulesDefinitions.objectTypeMap),\n\t\t...printObjectTypeFieldsArgsFromMap(config, globalDefinitions.objectTypeMap),\n\t\t...printInputObjectTypeTypesFromMap(config, globalDefinitions.inputObjectTypeMap),\n\t\t...printInterfaceTypesFromMap(config, globalDefinitions.interfaceTypeMap),\n\t\t...printUnionTypesFromMap(config, globalDefinitions.unionTypeMap),\n\t].join('\\n\\n');\n\n\tconst utilityContent = [\n\t\tprintUtilityTypes(),\n\t\tprintBaseScalars(config),\n\t\tprintBaseObjectTypes(config),\n\t].join('\\n\\n');\n\n\tconst files: GeneratedFile[] = [\n\t\t{\n\t\t\tfilename: join(options.typesDir, 'types.ts'),\n\t\t\tcontent: typesContent,\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.typesDir, 'utility.ts'),\n\t\t\tcontent: utilityContent,\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.modulesDir, 'index.ts'),\n\t\t\tcontent: printAutoload(\n\t\t\t\t{\n\t\t\t\t\timportExtension: options.importExtension,\n\t\t\t\t\tmoduleDefinitionName: options.moduleDefinitionName,\n\t\t\t\t},\n\t\t\t\tmodules,\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.modulesDir, 'types.ts'),\n\t\t\tcontent: printTypesTemplate({\n\t\t\t\timportExtension: options.importExtension,\n\t\t\t\ttypesDir: options.typesDir,\n\t\t\t\tmodulesDir: options.modulesDir,\n\t\t\t}),\n\t\t\toptions: {\n\t\t\t\tdisableOverwrite: true,\n\t\t\t\tenableLintHeaders: false,\n\t\t\t\tdisableGenerationNoticeHeader: true,\n\t\t\t},\n\t\t},\n\t];\n\n\tfor (const module of modules) {\n\t\tconst sources = sourcesByModule.get(module);\n\t\tconst documents = sources?.map((s) => s.document).filter((el) => el != null) ?? [];\n\t\tif (documents.length === 0) continue;\n\t\tconst document = concatAST(documents);\n\t\tconst config: ModulePrinterConfig = {\n\t\t\ttypesDir: options.typesDir,\n\t\t\tfieldInfo,\n\t\t\timportExtension: options.importExtension,\n\t\t\tmodulesDir: options.modulesDir,\n\t\t\tregistry: createModuleRegistry(document),\n\t\t\tmoduleDefinitionName: options.moduleDefinitionName,\n\t\t};\n\t\tfiles.push({\n\t\t\tfilename: join(options.modulesDir, `/${module}/${options.moduleDefinitionName}.ts`),\n\t\t\tcontent: [\n\t\t\t\tprintModuleImports(config, module),\n\t\t\t\tprintModuleMetadata(module, document),\n\t\t\t\tprintBaetaModuleTypes(config),\n\t\t\t\tprintModuleObjectTypeFields(config),\n\t\t\t\tprintModuleBuilder(config, module),\n\t\t\t].join('\\n\\n'),\n\t\t});\n\n\t\tconst moduleStarterPath = join(options.modulesDir, `/${module}/index.ts`);\n\t\tconst moduleStarterExists = currentFiles.some((file) => file.filename === moduleStarterPath);\n\t\tif (!moduleStarterExists) {\n\t\t\tfiles.push({\n\t\t\t\tfilename: join(options.modulesDir, `/${module}/index.ts`),\n\t\t\t\tcontent: printModuleIndexStarter(config, module),\n\t\t\t\toptions: {\n\t\t\t\t\tdisableOverwrite: true,\n\t\t\t\t\tenableLintHeaders: false,\n\t\t\t\t\tdisableGenerationNoticeHeader: true,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\treturn files;\n}\n","import { createPluginV1, isMatch, type WatcherFile } from '@baeta/generator-sdk';\nimport { generate } from './lib/codegen.ts';\n\nexport function graphqlPlugin() {\n\treturn createPluginV1({\n\t\tname: 'graphql',\n\t\tactionName: 'GraphQL modules',\n\t\twatch: (options, watcher, reload) => {\n\t\t\tconst handleChange = (file: WatcherFile) => {\n\t\t\t\tif (isMatch(file.relativePath, options.schemas)) {\n\t\t\t\t\treload(file);\n\t\t\t\t}\n\t\t\t};\n\t\t\twatcher.on('update', handleChange);\n\t\t\twatcher.on('delete', handleChange);\n\t\t},\n\t\tgenerate: async (ctx, next) => {\n\t\t\tconst items = await generate(ctx.generatorOptions, ctx.fileManager.files);\n\t\t\tfor (const item of items) {\n\t\t\t\tctx.fileManager.createAndAdd(item.filename, item.content, 'graphql', item.options);\n\t\t\t}\n\t\t\treturn await next();\n\t\t},\n\t});\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["printNamedType"],"sources":["../lib/namespace.ts","../lib/field-info.ts","../lib/printer-autoload.ts","../lib/printer-utils.ts","../lib/printer-module.ts","../lib/printer-templates.ts","../lib/printer-types.ts","../lib/codegen.ts","../index.ts"],"sourcesContent":["export const namespace = {\n\tsdk: 'BaetaSdk',\n\tgraphql: 'BaetaGraphql',\n\tglobalTypes: 'BaetaTypes',\n\tuserTypes: 'BaetaUserTypes',\n};\n","import { type DefinitionsMap, isScalarType } from '@baeta/util-graphql';\nimport { Kind, type TypeNode } from 'graphql';\nimport { namespace } from './namespace.ts';\n\nexport type FieldInfoMap = Map<string, Map<string, { type: string; hasArguments: boolean }>>;\n\nexport function createFieldInfoMap(definitionsMap: DefinitionsMap, defaultScalars: string[]) {\n\tconst map: FieldInfoMap = new Map();\n\tfor (const objectType of definitionsMap.objectTypeMap.values()) {\n\t\tconst objectName = objectType.name.value;\n\t\tfor (const field of objectType.fields ?? []) {\n\t\t\tconst fieldName = field.name.value;\n\t\t\tconst type = printNamedType(definitionsMap, defaultScalars, field.type);\n\t\t\tconst hasArguments = field.arguments != null && field.arguments.length > 0;\n\t\t\tconst fieldMap = map.get(objectName) ?? new Map();\n\t\t\tfieldMap.set(fieldName, { type, hasArguments });\n\t\t\tmap.set(objectName, fieldMap);\n\t\t}\n\t}\n\treturn map;\n}\n\nfunction printNamedType(\n\tdefinitionsMap: DefinitionsMap,\n\tdefaultScalars: string[],\n\ttype: TypeNode,\n\tnullable = true,\n): string {\n\tconst withNullable = nullable ? ' | null' : '';\n\tswitch (type.kind) {\n\t\tcase Kind.NAMED_TYPE:\n\t\t\tif (isScalarType(definitionsMap, defaultScalars, type)) {\n\t\t\t\treturn `${namespace.globalTypes}.Scalars[\"${type.name.value}\"]${withNullable}`;\n\t\t\t}\n\t\t\treturn `${namespace.globalTypes}.${type.name.value}${withNullable}`;\n\t\tcase Kind.LIST_TYPE:\n\t\t\treturn `Array<${printNamedType(definitionsMap, defaultScalars, type.type)}>${withNullable}`;\n\t\tcase Kind.NON_NULL_TYPE:\n\t\t\treturn printNamedType(definitionsMap, defaultScalars, type.type, false);\n\t\tdefault:\n\t\t\treturn type satisfies never;\n\t}\n}\n","import { camelCase, pascalCase } from 'change-case';\n\ninterface AutoloadPrinterConfig {\n\tmoduleDefinitionName: string;\n\timportExtension: '.ts' | '.js' | '';\n}\n\nexport function printAutoload(config: AutoloadPrinterConfig, modules: string[]) {\n\treturn [printImports(config, modules), printExport(modules)].join('\\n\\n');\n}\n\nfunction printImports(config: AutoloadPrinterConfig, modules: string[]) {\n\tconst dependencyImports = [\n\t\t'import type { ModuleCompilerFactory } from \"@baeta/core/sdk\";',\n\t\t`import type { Ctx, Info } from \"./types${config.importExtension}\"`,\n\t];\n\tconst moduleTypeImports = modules.map(\n\t\t(module) =>\n\t\t\t`import type { BaetaModuleTypes as ${pascalCase(module)}ModuleTypes } from \"./${module}/${config.moduleDefinitionName}${config.importExtension}\"`,\n\t);\n\tconst moduleImports = modules.flatMap(\n\t\t(module) => `import ${camelCase(module)} from \"./${module}/index${config.importExtension}\"`,\n\t);\n\treturn [...dependencyImports, ...moduleTypeImports, ...moduleImports].join('\\n');\n}\n\nfunction printExport(modules: string[]) {\n\treturn `export default [\\n${modules.map(printModuleWithSatisfies).join(',\\n')}\\n];`;\n}\n\nfunction printModuleWithSatisfies(module: string) {\n\treturn ` ${camelCase(module)} satisfies ModuleCompilerFactory<Ctx, Info, ${pascalCase(module)}ModuleTypes[\"Factories\"]>`;\n}\n","import { posixPath, relative } from '@baeta/util-path';\n\nexport function buildBlock({ name, lines }: { name: string; lines: string[] }): string {\n\treturn [`${name} {`, ...lines.filter(Boolean).map(indent(2)), '};'].join('\\n');\n}\n\nexport function buildCodeBlock({ name, lines }: { name: string; lines: string[] }) {\n\tif (lines.length === 0) {\n\t\treturn `${name} {}`;\n\t}\n\tconst linesWithSep = lines.filter(Boolean).map(indent(2)).join(',\\n');\n\treturn [`${name} {`, linesWithSep, '}'].join('\\n');\n}\n\nexport function indent(size: number) {\n\tconst space = new Array(size).fill(' ').join('');\n\tfunction indentInner(val: string): string {\n\t\treturn val\n\t\t\t.split('\\n')\n\t\t\t.map((line) => `${space}${line}`)\n\t\t\t.join('\\n');\n\t}\n\treturn indentInner;\n}\n\nexport function unique<T>(val: T, i: number, all: T[]): boolean {\n\treturn i === all.indexOf(val);\n}\n\nexport function makeRelativePathForImport(from: string, to: string) {\n\tconst res = posixPath(relative(from, to));\n\tif (res.startsWith('.') || res.startsWith('/')) {\n\t\treturn res;\n\t}\n\treturn `./${res}`;\n}\n","import type { ModuleRegistry } from '@baeta/util-graphql';\nimport { join } from '@baeta/util-path';\nimport { pascalCase } from 'change-case';\nimport type { DocumentNode } from 'graphql';\nimport type { FieldInfoMap } from './field-info.ts';\nimport { namespace } from './namespace.ts';\nimport { buildBlock, buildCodeBlock, indent, makeRelativePathForImport } from './printer-utils.ts';\n\nexport interface ModulePrinterConfig {\n\tregistry: ModuleRegistry;\n\tfieldInfo: FieldInfoMap;\n\ttypesDir: string;\n\tmodulesDir: string;\n\tmoduleDefinitionName: string;\n\timportExtension: '.ts' | '.js' | '';\n}\n\nexport function printModuleIndexStarter(config: ModulePrinterConfig, moduleName: string): string {\n\tconst typeEntries = Object.entries(config.registry.picks.objects);\n\tconst types = typeEntries.map(([typeName]) => typeName);\n\n\treturn [\n\t\tprintModuleIndexImports(config, moduleName),\n\t\tprintModuleIndexDestructuredTypes(moduleName, types),\n\t\t...typeEntries.map(([typeName, fields]) => printModuleIndexType(typeName, fields)),\n\t\tprintModuleIndexSchema(moduleName, types, config.registry.defined.scalars),\n\t]\n\t\t.filter((el) => el != null)\n\t\t.join('\\n\\n');\n}\n\nexport function printModuleImports(config: ModulePrinterConfig, moduleName: string) {\n\tconst typesDir = makeRelativePathForImport(join(config.modulesDir, moduleName), config.typesDir);\n\tconst hasTypes = config.registry.defined.objects.length > 0;\n\treturn [\n\t\t`import * as ${namespace.sdk} from \"@baeta/core/sdk\";`,\n\t\t`import type * as ${namespace.graphql} from \"graphql\";`,\n\t\thasTypes\n\t\t\t? `import type * as ${namespace.globalTypes} from \"${typesDir}/types${config.importExtension}\";`\n\t\t\t: null,\n\t\t`import type * as ${namespace.userTypes} from \"../types${config.importExtension}\";`,\n\t]\n\t\t.filter((el) => el != null)\n\t\t.join('\\n');\n}\n\nexport function printModuleMetadata(name: string, doc: DocumentNode) {\n\treturn buildCodeBlock({\n\t\tname: 'const moduleMetadata =',\n\t\tlines: [\n\t\t\t`id: '${name}'`,\n\t\t\t`typedef: ${JSON.stringify(doc)} as unknown as ${namespace.graphql}.DocumentNode`,\n\t\t],\n\t});\n}\n\nexport function printBaetaModuleTypes(config: ModulePrinterConfig) {\n\treturn buildBlock({\n\t\tname: 'export interface BaetaModuleTypes',\n\t\tlines: [\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Builders:',\n\t\t\t\tlines: printBaetaModuleTypesForFields(config, false),\n\t\t\t}),\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Factories:',\n\t\t\t\tlines: [\n\t\t\t\t\t...printBaetaModuleTypesForFields(config, true),\n\t\t\t\t\t...printBaetaModuleTypesScalars(config),\n\t\t\t\t],\n\t\t\t}),\n\t\t],\n\t});\n}\n\nfunction printModuleIndexDestructuredTypes(moduleName: string, types: string[]) {\n\treturn `const { ${types.join(', ')} } = ${pascalCase(moduleName)}Module;`;\n}\n\nfunction printModuleIndexImports(config: ModulePrinterConfig, moduleName: string) {\n\tconst hasScalars = config.registry.defined.scalars.length > 0;\n\tconst moduleImport = `import { ${pascalCase(moduleName)}Module } from \"./${config.moduleDefinitionName}${config.importExtension}\";`;\n\tif (!hasScalars) {\n\t\treturn moduleImport;\n\t}\n\treturn [`import { GraphQLScalarType } from \"graphql\";`, moduleImport].join('\\n');\n}\n\nfunction printModuleIndexSchema(moduleName: string, types: string[], scalars: string[]) {\n\tconst printedTypes = [\n\t\t...types.map((typeName) => `${typeName}: ${typeName}Resolver,`),\n\t\t...scalars.map(\n\t\t\t(scalarName) => `${scalarName}: new GraphQLScalarType({ name: '${scalarName}' }),`,\n\t\t),\n\t]\n\t\t.map(indent(2))\n\t\t.join('\\n');\n\n\treturn `export default ${pascalCase(moduleName)}Module.$schema({\n${printedTypes}\n});`;\n}\n\nfunction printModuleIndexType(typeName: string, fields: string[]) {\n\tconst printedFields = fields\n\t\t.map((fieldName) => printModuleIndexTypeField(typeName, fieldName))\n\t\t.map(indent(2))\n\t\t.join('\\n');\n\n\treturn `const ${typeName}Resolver = ${typeName}.$fields({\n${printedFields}\n});`;\n}\n\nfunction printModuleIndexTypeField(typeName: string, fieldName: string) {\n\tif (typeName === 'Query' || typeName === 'Mutation') {\n\t\treturn `${fieldName}: ${typeName}.${fieldName}.resolve((params) => {\n // Implement resolver logic here\n}),`;\n\t}\n\n\tif (typeName === 'Subscription') {\n\t\treturn `${fieldName}: ${typeName}.${fieldName}\n .subscribe((params) => {\n // Implement subscribe logic here\n })\n .resolve((params) => {\n // Implement resolver logic here\n }),`;\n\t}\n\n\treturn `${fieldName}: ${typeName}.${fieldName}.key('${fieldName}'),`;\n}\n\nfunction printBaetaModuleTypesForFields(config: ModulePrinterConfig, isFactory: boolean) {\n\treturn config.registry.defined.objects\n\t\t.map((typeName) =>\n\t\t\tprintObjectTypeModuleType(typeName, config.registry.picks.objects, isFactory),\n\t\t)\n\t\t.filter(Boolean);\n}\n\nfunction printObjectTypeModuleType(\n\ttypeName: string,\n\tobjects: Record<string, string[] | undefined>,\n\tisFactory: boolean,\n) {\n\tconst object = objects[typeName];\n\tif (!object) {\n\t\treturn '';\n\t}\n\tconst parentType = getParentType(typeName);\n\tconst contextType = getContextType();\n\tconst infoType = getInfoType();\n\tif (isFactory) {\n\t\treturn `${typeName}: ${namespace.sdk}.TypeCompilerFactory<${parentType}, ${contextType}, ${infoType}, BaetaModuleObjectTypeFields['${typeName}']['Factory']>`;\n\t}\n\treturn `${typeName}: ${namespace.sdk}.TypeMethods<${parentType}, ${contextType}, ${infoType}, BaetaModuleObjectTypeFields['${typeName}']['Builder'], BaetaModuleObjectTypeFields['${typeName}']['Factory']>`;\n}\n\nfunction printBaetaModuleTypesScalars(config: ModulePrinterConfig) {\n\treturn config.registry.defined.scalars.map(\n\t\t(scalar) => `${scalar}: ${namespace.graphql}.GraphQLScalarType`,\n\t);\n}\n\nexport function printModuleObjectTypeFields(config: ModulePrinterConfig) {\n\tconst objects = config.registry.defined.objects\n\t\t.map((typeName) => printObjectTypeFields(config, typeName, config.registry.picks.objects))\n\t\t.filter(Boolean);\n\tif (objects.length === 0) {\n\t\treturn '';\n\t}\n\treturn buildBlock({\n\t\tname: 'interface BaetaModuleObjectTypeFields',\n\t\tlines: objects,\n\t});\n}\n\nfunction printObjectTypeFields(\n\tconfig: ModulePrinterConfig,\n\ttypeName: string,\n\tobjects: Record<string, string[] | undefined>,\n) {\n\tconst fields = objects[typeName];\n\tif (!fields || fields.length === 0) {\n\t\treturn '';\n\t}\n\tconst fieldsBuilders = fields.map((field) =>\n\t\tprintObjectTypeFieldBuilders(config, typeName, field),\n\t);\n\tconst fieldsFactories = fields.map((field) =>\n\t\tprintObjectTypeFieldFactories(config, typeName, field),\n\t);\n\treturn buildBlock({\n\t\tname: `${typeName}:`,\n\t\tlines: [\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Builder:',\n\t\t\t\tlines: fieldsBuilders,\n\t\t\t}),\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Factory:',\n\t\t\t\tlines: fieldsFactories,\n\t\t\t}),\n\t\t],\n\t});\n}\n\nfunction printObjectTypeFieldBuilders(\n\tconfig: ModulePrinterConfig,\n\ttypeName: string,\n\tfield: string,\n) {\n\tconst parentType = getParentType(typeName);\n\tconst resultType = getResultType(config, typeName, field);\n\tconst argumentsType = getArgsType(config, typeName, field);\n\tconst contextType = getContextType();\n\tconst infoType = getInfoType();\n\tconst nameTypes = getFieldNameTypes(typeName, field);\n\tconst fieldType = typeName === 'Subscription' ? 'SubscriptionMethods' : 'FieldMethods';\n\treturn `${field}: ${namespace.sdk}.${fieldType}<${resultType}, ${parentType}, ${contextType}, ${argumentsType}, ${infoType}, ${nameTypes}>`;\n}\n\nfunction printObjectTypeFieldFactories(\n\tconfig: ModulePrinterConfig,\n\ttypeName: string,\n\tfield: string,\n) {\n\tconst parentType = getParentType(typeName);\n\tconst resultType = getResultType(config, typeName, field);\n\tconst argumentsType = getArgsType(config, typeName, field);\n\tconst contextType = getContextType();\n\tconst infoType = getInfoType();\n\tconst nameTypes = getFieldNameTypes(typeName, field);\n\tconst fieldType = typeName === 'Subscription' ? 'SubscriptionField' : 'Field';\n\treturn `${field}: ${namespace.sdk}.${fieldType}<${resultType}, ${resultType}, ${parentType}, ${contextType}, ${argumentsType}, ${infoType}, ${nameTypes}>`;\n}\n\nexport function printModuleBuilder(config: ModulePrinterConfig, moduleName: string) {\n\tconst objectTypes = config.registry.defined.objects\n\t\t.map((typeName) => printObjectTypeBuilder(typeName, config.registry.picks.objects))\n\t\t.filter(Boolean);\n\tconst builders = buildCodeBlock({\n\t\tname: '',\n\t\tlines: objectTypes,\n\t});\n\tconst typeNameResolvers = buildCodeBlock({\n\t\tname: '',\n\t\tlines: [...config.registry.defined.unions, ...config.registry.defined.interfaces].map(\n\t\t\t(name) => `${name}: ${printTypeNameResolver()}`,\n\t\t),\n\t});\n\tconst infoType = getInfoType();\n\tconst contextType = getContextType();\n\treturn [\n\t\t`export const ${pascalCase(moduleName)}Module = ${namespace.sdk}.createModuleBuilder<${contextType}, ${infoType}, BaetaModuleTypes['Builders'], BaetaModuleTypes['Factories']>(moduleMetadata.id, moduleMetadata.typedef,`,\n\t\tbuilders,\n\t\t',',\n\t\ttypeNameResolvers,\n\t\t`);`,\n\t].join('');\n}\n\nfunction printObjectTypeBuilder(typeName: string, objects: Record<string, string[] | undefined>) {\n\tconst fields = objects[typeName]?.map((field) => printObjectTypeFieldBuilder(typeName, field));\n\tif (fields == null || fields.length === 0) {\n\t\treturn '';\n\t}\n\tconst content = buildCodeBlock({\n\t\tname: '',\n\t\tlines: fields,\n\t});\n\treturn `${typeName}: ${namespace.sdk}.createTypeBuilder(\"${typeName}\",${content})`;\n}\n\nfunction printTypeNameResolver() {\n\treturn '{ __resolveType: (source: {__typename: string}) => { return source.__typename; }}';\n}\n\nfunction getParentType(type: string) {\n\tif (['Query', 'Mutation', 'Subscription'].includes(type)) {\n\t\treturn '{}';\n\t}\n\treturn `${namespace.globalTypes}.${type}`;\n}\n\nfunction getResultType(config: ModulePrinterConfig, type: string, field: string) {\n\tconst fieldType = config.fieldInfo.get(type)?.get(field)?.type;\n\tif (fieldType == null) {\n\t\treturn '{}';\n\t}\n\treturn fieldType;\n}\n\nfunction getFieldNameTypes(type: string, field: string) {\n\tif (type === 'Subscription') {\n\t\treturn `\"${field}\"`;\n\t}\n\treturn `\"${type}\", \"${field}\"`;\n}\n\nfunction getArgsType(config: ModulePrinterConfig, type: string, field: string) {\n\tconst hasArgs = config.fieldInfo.get(type)?.get(field)?.hasArguments ?? false;\n\tif (!hasArgs) {\n\t\treturn '{}';\n\t}\n\tconst fieldUpper = pascalCase(field);\n\treturn `${namespace.globalTypes}.${type}${fieldUpper}Args`;\n}\n\nfunction printObjectTypeFieldBuilder(typeName: string, field: string) {\n\tif (typeName === 'Subscription') {\n\t\treturn `${field}: ${namespace.sdk}.createSubscriptionBuilder(\"${field}\")`;\n\t}\n\treturn `${field}: ${namespace.sdk}.createFieldBuilder(\"${typeName}\", \"${field}\")`;\n}\n\nfunction getContextType() {\n\treturn `${namespace.userTypes}.Ctx`;\n}\n\nfunction getInfoType() {\n\treturn `${namespace.userTypes}.Info`;\n}\n","import { makeRelativePathForImport } from './printer-utils.ts';\n\nexport function printTypesTemplate(options: {\n\timportExtension: '.js' | '.ts' | '';\n\ttypesDir: string;\n\tmodulesDir: string;\n}) {\n\tconst importDir = makeRelativePathForImport(options.modulesDir, options.typesDir);\n\n\treturn `import type { GraphQLResolveInfo } from 'graphql';\nimport type { BaseObjectTypes, BaseScalars } from '${importDir}/utility${options.importExtension}';\n\nexport interface Scalars extends BaseScalars {}\n\nexport interface ObjectTypes extends BaseObjectTypes {}\n\nexport type Ctx = {};\n\nexport type Info = GraphQLResolveInfo;\n`;\n}\n","import { type DefinitionsMap, isScalarType } from '@baeta/util-graphql';\nimport { pascalCase } from 'change-case';\nimport {\n\ttype EnumTypeDefinitionNode,\n\ttype FieldDefinitionNode,\n\ttype InputObjectTypeDefinitionNode,\n\ttype InputValueDefinitionNode,\n\ttype InterfaceTypeDefinitionNode,\n\tKind,\n\ttype ListTypeNode,\n\ttype NamedTypeNode,\n\ttype ObjectTypeDefinitionNode,\n\ttype TypeNode,\n\ttype UnionTypeDefinitionNode,\n} from 'graphql';\nimport { buildBlock, indent, makeRelativePathForImport } from './printer-utils.ts';\n\nexport interface PrinterConfig {\n\tglobalDefinitions: DefinitionsMap;\n\twithMaybe: boolean;\n\twithOptional: boolean;\n\tdefaultScalars: string[];\n\timportExtension: '.ts' | '.js' | '';\n\ttypesDir: string;\n\tmodulesDir: string;\n}\n\nexport function printUtilityTypes(): string {\n\treturn [\n\t\t'export type Or<A, B> = void extends A ? B : A;',\n\t\t'export type Maybe<T> = T | null;',\n\t].join('\\n\\n');\n}\n\nconst defaultScalarTypes: Record<string, string | undefined> = {\n\tID: 'string',\n\tString: 'string',\n\tBoolean: 'boolean',\n\tInt: 'number',\n\tFloat: 'number',\n};\n\nexport function printBaseScalars(config: PrinterConfig): string {\n\tconst defaultScalars = config.defaultScalars\n\t\t.map((scalar) => {\n\t\t\tconst type = defaultScalarTypes[scalar];\n\t\t\tif (type == null) return null;\n\t\t\treturn `${scalar}: ${type};`;\n\t\t})\n\t\t.filter((el) => el != null);\n\tconst customScalars = [...config.globalDefinitions.scalarTypeMap.values()].map(\n\t\t(scalar) => `${scalar.name.value}: unknown;`,\n\t);\n\n\treturn buildBlock({\n\t\tname: 'export type BaseScalars =',\n\t\tlines: [...defaultScalars, ...customScalars],\n\t});\n}\n\nexport function printBaseObjectTypes(config: PrinterConfig): string {\n\tconst objectTypes = [...config.globalDefinitions.objectTypeMap.values()].map((t) => t.name.value);\n\treturn buildBlock({\n\t\tname: 'export interface BaseObjectTypes',\n\t\tlines: objectTypes.map((t) => `${t}: unknown;`),\n\t});\n}\n\nexport function printTypesHeaders(config: PrinterConfig): string {\n\tconst overridesDir = makeRelativePathForImport(config.typesDir, config.modulesDir);\n\treturn [\n\t\t`import type * as BaetaUtility from \"./utility${config.importExtension}\";`,\n\t\t`import type * as BaetaOverrides from \"${overridesDir}/types${config.importExtension}\";`,\n\t\t'',\n\t\t'export type Scalars = BaetaOverrides.Scalars;',\n\t].join('\\n');\n}\n\nexport function printRootTypesFromMap(\n\tconfig: PrinterConfig,\n\trootTypes: string[],\n\tmap: Map<string, ObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()]\n\t\t.filter((type) => rootTypes.includes(type.name.value))\n\t\t.map((type) => printObjectType(config, type))\n\t\t.join('\\n\\n');\n}\n\nexport function printObjectTypeTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, ObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printObjectType(config, type));\n}\n\nfunction printObjectType(config: PrinterConfig, type: ObjectTypeDefinitionNode) {\n\tconst fields = type.fields?.map((field) => printObjectTypeField(config, field));\n\treturn `export type ${type.name.value} = ${printOrObjectType(type, fields)}`;\n}\n\nfunction printObjectTypeField(config: PrinterConfig, field: FieldDefinitionNode) {\n\tconst optionalMarker = printOptionalMarker(config, field.type);\n\treturn `${field.name.value}${optionalMarker}: ${printType(config, field.type)}`;\n}\n\nexport function printEnumTypesFromMap(map: Map<string, EnumTypeDefinitionNode>) {\n\treturn [...map.values()].map(printEnumType);\n}\n\nfunction printEnumType(type: EnumTypeDefinitionNode) {\n\tconst values = type.values?.map((value) => `'${value.name.value}'`);\n\treturn `export type ${type.name.value} = ${values?.join(' | ') || 'never'}`;\n}\n\nexport function printInterfaceTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, InterfaceTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printInterfaceType(config, type));\n}\n\nfunction printInterfaceType(config: PrinterConfig, type: InterfaceTypeDefinitionNode) {\n\tconst objectTypes = Array.from(config.globalDefinitions.objectTypeMap.values());\n\tconst implementingTypes = objectTypes.filter((t) =>\n\t\tt.interfaces?.some((i) => i.name.value === type.name.value),\n\t);\n\tconst types = implementingTypes.map((t) => printNamedTypeForInterface(t.name.value));\n\treturn `export type ${type.name.value} = ${types.join(' | ') || 'never'}`;\n}\n\nfunction printNamedTypeForInterface(name: string) {\n\treturn `${name} & {__typename: \"${name}\"}`;\n}\n\nexport function printUnionTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, UnionTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printUnionType(config, type));\n}\n\nfunction printUnionType(config: PrinterConfig, type: UnionTypeDefinitionNode) {\n\tconst types = type.types?.map((type) => printNamedTypeForUnion(config, type));\n\treturn `export type ${type.name.value} = ${types?.join(' | ') || 'never'}`;\n}\n\nfunction printNamedTypeForUnion(config: PrinterConfig, type: NamedTypeNode) {\n\treturn `${printNamedType(config, type, false)} & {__typename: \"${type.name.value}\"}`;\n}\n\nexport function printInputObjectTypeTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, InputObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printInputObjectType(config, type));\n}\n\nfunction printInputObjectType(config: PrinterConfig, type: InputObjectTypeDefinitionNode) {\n\tconst fields = type.fields?.map((field) => printInputObjectTypeField(config, field));\n\treturn buildBlock({\n\t\tname: `export type ${type.name.value} =`,\n\t\tlines: fields ?? [],\n\t});\n}\n\nfunction printInputObjectTypeField(config: PrinterConfig, field: InputValueDefinitionNode) {\n\tconst optionalMarker = printOptionalMarker(config, field.type);\n\treturn `${field.name.value}${optionalMarker}: ${printType(config, field.type)}`;\n}\n\nexport function printObjectTypeFieldsArgsFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, ObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()].flatMap((type) => printObjectTypeArgs(config, type));\n}\n\nfunction printObjectTypeArgs(config: PrinterConfig, type: ObjectTypeDefinitionNode) {\n\tif (type.fields == null) {\n\t\treturn [];\n\t}\n\treturn type.fields\n\t\t.map((field) => printObjectTypeFieldArgs(config, type.name.value, field))\n\t\t.filter(Boolean);\n}\n\nfunction printObjectTypeFieldArgs(\n\tconfig: PrinterConfig,\n\ttypeName: string,\n\tfield: FieldDefinitionNode,\n) {\n\tconst name = `${typeName + pascalCase(field.name.value)}Args`;\n\treturn buildBlock({\n\t\tname: `export type ${name} =`,\n\t\tlines: field.arguments?.map((arg) => printObjectTypeFieldArg(config, arg)) ?? [],\n\t});\n}\n\nfunction printObjectTypeFieldArg(config: PrinterConfig, arg: InputValueDefinitionNode) {\n\treturn `${arg.name.value}: ${printType(config, arg.type)}`;\n}\n\nfunction printType(config: PrinterConfig, type: TypeNode, nullable = true): string {\n\tswitch (type.kind) {\n\t\tcase Kind.NAMED_TYPE:\n\t\t\treturn printNamedType(config, type, nullable);\n\t\tcase Kind.LIST_TYPE:\n\t\t\treturn printListType(config, type, nullable);\n\t\tcase Kind.NON_NULL_TYPE:\n\t\t\treturn printType(config, type.type, false);\n\t\tdefault:\n\t\t\treturn type satisfies never;\n\t}\n}\n\nfunction printListType(config: PrinterConfig, type: ListTypeNode, nullable = true): string {\n\treturn printValue(config, `Array<${printType(config, type.type)}>`, nullable);\n}\n\nfunction printNamedType(config: PrinterConfig, type: NamedTypeNode, nullable = true): string {\n\tif (isScalarType(config.globalDefinitions, config.defaultScalars, type)) {\n\t\treturn printScalarType(config, type, nullable);\n\t}\n\treturn printValue(config, type.name.value, nullable);\n}\n\nfunction printScalarType(config: PrinterConfig, type: NamedTypeNode, nullable = true): string {\n\treturn printValue(config, `Scalars[\"${type.name.value}\"]`, nullable);\n}\n\nfunction printValue(config: PrinterConfig, value: string, nullable: boolean): string {\n\tif (!nullable) {\n\t\treturn value;\n\t}\n\tif (config.withMaybe) {\n\t\treturn `BaetaUtility.Maybe<${value}>`;\n\t}\n\treturn `${value} | null`;\n}\n\nfunction printOptionalMarker(config: PrinterConfig, type: TypeNode) {\n\treturn config.withOptional && type.kind !== Kind.NON_NULL_TYPE ? '?' : '';\n}\n\nfunction printOrObjectType(type: ObjectTypeDefinitionNode, fields?: string[]): string {\n\treturn `BaetaUtility.Or<BaetaOverrides.ObjectTypes[\"${type.name.value}\"], {\\n${fields?.map(indent(2)).join('\\n') ?? ''}\\n}>`;\n}\n","import type { File, FileOptions, NormalizedGeneratorOptions } from '@baeta/generator-sdk';\nimport {\n\tcreateDefinitionsMapFromDocument,\n\tcreateDefinitionsMapFromSources,\n\tcreateModuleRegistry,\n\tgetSourcesFromSchema,\n\tgroupSourcesByModule,\n\tloadSchema,\n} from '@baeta/util-graphql';\nimport { join } from '@baeta/util-path';\nimport { concatAST } from 'graphql';\nimport { createFieldInfoMap } from './field-info.ts';\nimport { printAutoload } from './printer-autoload.ts';\nimport {\n\ttype ModulePrinterConfig,\n\tprintBaetaModuleTypes,\n\tprintModuleBuilder,\n\tprintModuleImports,\n\tprintModuleIndexStarter,\n\tprintModuleMetadata,\n\tprintModuleObjectTypeFields,\n} from './printer-module.ts';\nimport { printTypesTemplate } from './printer-templates.ts';\nimport {\n\ttype PrinterConfig,\n\tprintBaseObjectTypes,\n\tprintBaseScalars,\n\tprintEnumTypesFromMap,\n\tprintInputObjectTypeTypesFromMap,\n\tprintInterfaceTypesFromMap,\n\tprintObjectTypeFieldsArgsFromMap,\n\tprintObjectTypeTypesFromMap,\n\tprintRootTypesFromMap,\n\tprintTypesHeaders,\n\tprintUnionTypesFromMap,\n\tprintUtilityTypes,\n} from './printer-types.ts';\n\ntype GeneratedFile = {\n\tfilename: string;\n\tcontent: string;\n\toptions?: FileOptions;\n};\n\nexport async function generate(\n\toptions: NormalizedGeneratorOptions,\n\tcurrentFiles: File[],\n): Promise<GeneratedFile[]> {\n\tconst { outputSchema, outputSchemaAst } = await loadSchema(\n\t\toptions.schemas,\n\t\toptions.cwd,\n\t\toptions.loaders,\n\t);\n\tconst sources = getSourcesFromSchema(outputSchemaAst);\n\tconst sourcesByModule = groupSourcesByModule(sources, options.modulesDir);\n\tconst modules = Array.from(sourcesByModule.keys());\n\tconst globalDefinitions = createDefinitionsMapFromDocument(outputSchema);\n\tconst modulesDefinitions = createDefinitionsMapFromSources(sources);\n\n\tconst defaultScalars = ['ID', 'Int', 'Float', 'String', 'Boolean'];\n\n\tconst config: PrinterConfig = {\n\t\tglobalDefinitions,\n\t\twithMaybe: false,\n\t\twithOptional: false,\n\t\tdefaultScalars,\n\t\timportExtension: options.importExtension,\n\t\ttypesDir: options.typesDir,\n\t\tmodulesDir: options.modulesDir,\n\t};\n\n\tconst fieldInfo = createFieldInfoMap(globalDefinitions, defaultScalars);\n\n\tconst typesContent = [\n\t\tprintTypesHeaders(config),\n\t\tprintRootTypesFromMap(\n\t\t\tconfig,\n\t\t\t['Query', 'Mutation', 'Subscription'],\n\t\t\tglobalDefinitions.objectTypeMap,\n\t\t),\n\t\t...printEnumTypesFromMap(globalDefinitions.enumTypeMap),\n\t\t...printObjectTypeTypesFromMap(config, modulesDefinitions.objectTypeMap),\n\t\t...printObjectTypeFieldsArgsFromMap(config, globalDefinitions.objectTypeMap),\n\t\t...printInputObjectTypeTypesFromMap(config, globalDefinitions.inputObjectTypeMap),\n\t\t...printInterfaceTypesFromMap(config, globalDefinitions.interfaceTypeMap),\n\t\t...printUnionTypesFromMap(config, globalDefinitions.unionTypeMap),\n\t].join('\\n\\n');\n\n\tconst utilityContent = [\n\t\tprintUtilityTypes(),\n\t\tprintBaseScalars(config),\n\t\tprintBaseObjectTypes(config),\n\t].join('\\n\\n');\n\n\tconst files: GeneratedFile[] = [\n\t\t{\n\t\t\tfilename: join(options.typesDir, 'types.ts'),\n\t\t\tcontent: typesContent,\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.typesDir, 'utility.ts'),\n\t\t\tcontent: utilityContent,\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.modulesDir, 'index.ts'),\n\t\t\tcontent: printAutoload(\n\t\t\t\t{\n\t\t\t\t\timportExtension: options.importExtension,\n\t\t\t\t\tmoduleDefinitionName: options.moduleDefinitionName,\n\t\t\t\t},\n\t\t\t\tmodules,\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.modulesDir, 'types.ts'),\n\t\t\tcontent: printTypesTemplate({\n\t\t\t\timportExtension: options.importExtension,\n\t\t\t\ttypesDir: options.typesDir,\n\t\t\t\tmodulesDir: options.modulesDir,\n\t\t\t}),\n\t\t\toptions: {\n\t\t\t\tdisableOverwrite: true,\n\t\t\t\tenableLintHeaders: false,\n\t\t\t\tdisableGenerationNoticeHeader: true,\n\t\t\t},\n\t\t},\n\t];\n\n\tfor (const module of modules) {\n\t\tconst sources = sourcesByModule.get(module);\n\t\tconst documents = sources?.map((s) => s.document).filter((el) => el != null) ?? [];\n\t\tif (documents.length === 0) continue;\n\t\tconst document = concatAST(documents);\n\t\tconst config: ModulePrinterConfig = {\n\t\t\ttypesDir: options.typesDir,\n\t\t\tfieldInfo,\n\t\t\timportExtension: options.importExtension,\n\t\t\tmodulesDir: options.modulesDir,\n\t\t\tregistry: createModuleRegistry(document),\n\t\t\tmoduleDefinitionName: options.moduleDefinitionName,\n\t\t};\n\t\tfiles.push({\n\t\t\tfilename: join(options.modulesDir, `/${module}/${options.moduleDefinitionName}.ts`),\n\t\t\tcontent: [\n\t\t\t\tprintModuleImports(config, module),\n\t\t\t\tprintModuleMetadata(module, document),\n\t\t\t\tprintBaetaModuleTypes(config),\n\t\t\t\tprintModuleObjectTypeFields(config),\n\t\t\t\tprintModuleBuilder(config, module),\n\t\t\t].join('\\n\\n'),\n\t\t});\n\n\t\tconst moduleStarterPath = join(options.modulesDir, `/${module}/index.ts`);\n\t\tconst moduleStarterExists = currentFiles.some((file) => file.filename === moduleStarterPath);\n\t\tif (!moduleStarterExists) {\n\t\t\tfiles.push({\n\t\t\t\tfilename: join(options.modulesDir, `/${module}/index.ts`),\n\t\t\t\tcontent: printModuleIndexStarter(config, module),\n\t\t\t\toptions: {\n\t\t\t\t\tdisableOverwrite: true,\n\t\t\t\t\tenableLintHeaders: false,\n\t\t\t\t\tdisableGenerationNoticeHeader: true,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\treturn files;\n}\n","import { createPluginV1, isMatch, type WatcherFile } from '@baeta/generator-sdk';\nimport { generate } from './lib/codegen.ts';\n\nexport function graphqlPlugin() {\n\treturn createPluginV1({\n\t\tname: 'graphql',\n\t\tactionName: 'GraphQL modules',\n\t\twatch: (options, watcher, reload) => {\n\t\t\tconst handleChange = (file: WatcherFile) => {\n\t\t\t\tif (isMatch(file.relativePath, options.schemas)) {\n\t\t\t\t\treload(file);\n\t\t\t\t}\n\t\t\t};\n\t\t\twatcher.on('update', handleChange);\n\t\t\twatcher.on('delete', handleChange);\n\t\t},\n\t\tgenerate: async (ctx, next) => {\n\t\t\tconst items = await generate(ctx.generatorOptions, ctx.fileManager.files);\n\t\t\tfor (const item of items) {\n\t\t\t\tctx.fileManager.createAndAdd(item.filename, item.content, 'graphql', item.options);\n\t\t\t}\n\t\t\treturn await next();\n\t\t},\n\t});\n}\n"],"mappings":";;;;;;AAAA,MAAa,YAAY;CACxB,KAAK;CACL,SAAS;CACT,aAAa;CACb,WAAW;AACZ;;ACCA,SAAgB,mBAAmB,gBAAgC,gBAA0B;CAC5F,MAAM,sBAAoB,IAAI,IAAI;CAClC,KAAK,MAAM,cAAc,eAAe,cAAc,OAAO,GAAG;EAC/D,MAAM,aAAa,WAAW,KAAK;EACnC,KAAK,MAAM,SAAS,WAAW,UAAU,CAAC,GAAG;GAC5C,MAAM,YAAY,MAAM,KAAK;GAC7B,MAAM,OAAOA,iBAAe,gBAAgB,gBAAgB,MAAM,IAAI;GACtE,MAAM,eAAe,MAAM,aAAa,QAAQ,MAAM,UAAU,SAAS;GACzE,MAAM,WAAW,IAAI,IAAI,UAAU,qBAAK,IAAI,IAAI;GAChD,SAAS,IAAI,WAAW;IAAE;IAAM;GAAa,CAAC;GAC9C,IAAI,IAAI,YAAY,QAAQ;EAC7B;CACD;CACA,OAAO;AACR;AAEA,SAASA,iBACR,gBACA,gBACA,MACA,WAAW,MACF;CACT,MAAM,eAAe,WAAW,YAAY;CAC5C,QAAQ,KAAK,MAAb;EACC,KAAK,KAAK;GACT,IAAI,aAAa,gBAAgB,gBAAgB,IAAI,GACpD,OAAO,GAAG,UAAU,YAAY,YAAY,KAAK,KAAK,MAAM,IAAI;GAEjE,OAAO,GAAG,UAAU,YAAY,GAAG,KAAK,KAAK,QAAQ;EACtD,KAAK,KAAK,WACT,OAAO,SAASA,iBAAe,gBAAgB,gBAAgB,KAAK,IAAI,EAAE,GAAG;EAC9E,KAAK,KAAK,eACT,OAAOA,iBAAe,gBAAgB,gBAAgB,KAAK,MAAM,KAAK;EACvE,SACC,OAAO;CACT;AACD;;ACnCA,SAAgB,cAAc,QAA+B,SAAmB;CAC/E,OAAO,CAAC,aAAa,QAAQ,OAAO,GAAG,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM;AACzE;AAEA,SAAS,aAAa,QAA+B,SAAmB;CACvE,MAAM,oBAAoB,CACzB,mEACA,0CAA0C,OAAO,gBAAgB,EAClE;CACA,MAAM,oBAAoB,QAAQ,KAChC,WACA,qCAAqC,WAAW,MAAM,EAAE,wBAAwB,OAAO,GAAG,OAAO,uBAAuB,OAAO,gBAAgB,EACjJ;CACA,MAAM,gBAAgB,QAAQ,SAC5B,WAAW,UAAU,UAAU,MAAM,EAAE,WAAW,OAAO,QAAQ,OAAO,gBAAgB,EAC1F;CACA,OAAO;EAAC,GAAG;EAAmB,GAAG;EAAmB,GAAG;CAAa,CAAC,CAAC,KAAK,IAAI;AAChF;AAEA,SAAS,YAAY,SAAmB;CACvC,OAAO,qBAAqB,QAAQ,IAAI,wBAAwB,CAAC,CAAC,KAAK,KAAK,EAAE;AAC/E;AAEA,SAAS,yBAAyB,QAAgB;CACjD,OAAO,OAAO,UAAU,MAAM,EAAE,8CAA8C,WAAW,MAAM,EAAE;AAClG;;AC9BA,SAAgB,WAAW,EAAE,MAAM,SAAoD;CACtF,OAAO;EAAC,GAAG,KAAK;EAAK,GAAG,MAAM,OAAO,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;EAAG;CAAI,CAAC,CAAC,KAAK,IAAI;AAC9E;AAEA,SAAgB,eAAe,EAAE,MAAM,SAA4C;CAClF,IAAI,MAAM,WAAW,GACpB,OAAO,GAAG,KAAK;CAEhB,MAAM,eAAe,MAAM,OAAO,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK;CACpE,OAAO;EAAC,GAAG,KAAK;EAAK;EAAc;CAAG,CAAC,CAAC,KAAK,IAAI;AAClD;AAEA,SAAgB,OAAO,MAAc;CACpC,MAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE;CAC/C,SAAS,YAAY,KAAqB;EACzC,OAAO,IACL,MAAM,IAAI,CAAC,CACX,KAAK,SAAS,GAAG,QAAQ,MAAM,CAAC,CAChC,KAAK,IAAI;CACZ;CACA,OAAO;AACR;AAMA,SAAgB,0BAA0B,MAAc,IAAY;CACnE,MAAM,MAAM,UAAU,SAAS,MAAM,EAAE,CAAC;CACxC,IAAI,IAAI,WAAW,GAAG,KAAK,IAAI,WAAW,GAAG,GAC5C,OAAO;CAER,OAAO,KAAK;AACb;;AClBA,SAAgB,wBAAwB,QAA6B,YAA4B;CAChG,MAAM,cAAc,OAAO,QAAQ,OAAO,SAAS,MAAM,OAAO;CAChE,MAAM,QAAQ,YAAY,KAAK,CAAC,cAAc,QAAQ;CAEtD,OAAO;EACN,wBAAwB,QAAQ,UAAU;EAC1C,kCAAkC,YAAY,KAAK;EACnD,GAAG,YAAY,KAAK,CAAC,UAAU,YAAY,qBAAqB,UAAU,MAAM,CAAC;EACjF,uBAAuB,YAAY,OAAO,OAAO,SAAS,QAAQ,OAAO;CAC1E,CAAC,CACC,QAAQ,OAAO,MAAM,IAAI,CAAC,CAC1B,KAAK,MAAM;AACd;AAEA,SAAgB,mBAAmB,QAA6B,YAAoB;CACnF,MAAM,WAAW,0BAA0B,KAAK,OAAO,YAAY,UAAU,GAAG,OAAO,QAAQ;CAC/F,MAAM,WAAW,OAAO,SAAS,QAAQ,QAAQ,SAAS;CAC1D,OAAO;EACN,eAAe,UAAU,IAAI;EAC7B,oBAAoB,UAAU,QAAQ;EACtC,WACG,oBAAoB,UAAU,YAAY,SAAS,SAAS,QAAQ,OAAO,gBAAgB,MAC3F;EACH,oBAAoB,UAAU,UAAU,iBAAiB,OAAO,gBAAgB;CACjF,CAAC,CACC,QAAQ,OAAO,MAAM,IAAI,CAAC,CAC1B,KAAK,IAAI;AACZ;AAEA,SAAgB,oBAAoB,MAAc,KAAmB;CACpE,OAAO,eAAe;EACrB,MAAM;EACN,OAAO,CACN,QAAQ,KAAK,IACb,YAAY,KAAK,UAAU,GAAG,EAAE,iBAAiB,UAAU,QAAQ,cACpE;CACD,CAAC;AACF;AAEA,SAAgB,sBAAsB,QAA6B;CAClE,OAAO,WAAW;EACjB,MAAM;EACN,OAAO,CACN,WAAW;GACV,MAAM;GACN,OAAO,+BAA+B,QAAQ,KAAK;EACpD,CAAC,GACD,WAAW;GACV,MAAM;GACN,OAAO,CACN,GAAG,+BAA+B,QAAQ,IAAI,GAC9C,GAAG,6BAA6B,MAAM,CACvC;EACD,CAAC,CACF;CACD,CAAC;AACF;AAEA,SAAS,kCAAkC,YAAoB,OAAiB;CAC/E,OAAO,WAAW,MAAM,KAAK,IAAI,EAAE,OAAO,WAAW,UAAU,EAAE;AAClE;AAEA,SAAS,wBAAwB,QAA6B,YAAoB;CACjF,MAAM,aAAa,OAAO,SAAS,QAAQ,QAAQ,SAAS;CAC5D,MAAM,eAAe,YAAY,WAAW,UAAU,EAAE,mBAAmB,OAAO,uBAAuB,OAAO,gBAAgB;CAChI,IAAI,CAAC,YACJ,OAAO;CAER,OAAO,CAAC,gDAAgD,YAAY,CAAC,CAAC,KAAK,IAAI;AAChF;AAEA,SAAS,uBAAuB,YAAoB,OAAiB,SAAmB;CACvF,MAAM,eAAe,CACpB,GAAG,MAAM,KAAK,aAAa,GAAG,SAAS,IAAI,SAAS,UAAU,GAC9D,GAAG,QAAQ,KACT,eAAe,GAAG,WAAW,mCAAmC,WAAW,MAC7E,CACD,CAAC,CACC,IAAI,OAAO,CAAC,CAAC,CAAC,CACd,KAAK,IAAI;CAEX,OAAO,kBAAkB,WAAW,UAAU,EAAE;EAC/C,aAAa;;AAEf;AAEA,SAAS,qBAAqB,UAAkB,QAAkB;CAMjE,OAAO,SAAS,SAAS,aAAa,SAAS;EALzB,OACpB,KAAK,cAAc,0BAA0B,UAAU,SAAS,CAAC,CAAC,CAClE,IAAI,OAAO,CAAC,CAAC,CAAC,CACd,KAAK,IAGM,EAAE;;AAEhB;AAEA,SAAS,0BAA0B,UAAkB,WAAmB;CACvE,IAAI,aAAa,WAAW,aAAa,YACxC,OAAO,GAAG,UAAU,IAAI,SAAS,GAAG,UAAU;;;CAK/C,IAAI,aAAa,gBAChB,OAAO,GAAG,UAAU,IAAI,SAAS,GAAG,UAAU;;;;;;;CAS/C,OAAO,GAAG,UAAU,IAAI,SAAS,GAAG,UAAU,QAAQ,UAAU;AACjE;AAEA,SAAS,+BAA+B,QAA6B,WAAoB;CACxF,OAAO,OAAO,SAAS,QAAQ,QAC7B,KAAK,aACL,0BAA0B,UAAU,OAAO,SAAS,MAAM,SAAS,SAAS,CAC7E,CAAC,CACA,OAAO,OAAO;AACjB;AAEA,SAAS,0BACR,UACA,SACA,WACC;CAED,IAAI,CADW,QAAQ,WAEtB,OAAO;CAER,MAAM,aAAa,cAAc,QAAQ;CACzC,MAAM,cAAc,eAAe;CACnC,MAAM,WAAW,YAAY;CAC7B,IAAI,WACH,OAAO,GAAG,SAAS,IAAI,UAAU,IAAI,uBAAuB,WAAW,IAAI,YAAY,IAAI,SAAS,iCAAiC,SAAS;CAE/I,OAAO,GAAG,SAAS,IAAI,UAAU,IAAI,eAAe,WAAW,IAAI,YAAY,IAAI,SAAS,iCAAiC,SAAS,8CAA8C,SAAS;AAC9L;AAEA,SAAS,6BAA6B,QAA6B;CAClE,OAAO,OAAO,SAAS,QAAQ,QAAQ,KACrC,WAAW,GAAG,OAAO,IAAI,UAAU,QAAQ,mBAC7C;AACD;AAEA,SAAgB,4BAA4B,QAA6B;CACxE,MAAM,UAAU,OAAO,SAAS,QAAQ,QACtC,KAAK,aAAa,sBAAsB,QAAQ,UAAU,OAAO,SAAS,MAAM,OAAO,CAAC,CAAC,CACzF,OAAO,OAAO;CAChB,IAAI,QAAQ,WAAW,GACtB,OAAO;CAER,OAAO,WAAW;EACjB,MAAM;EACN,OAAO;CACR,CAAC;AACF;AAEA,SAAS,sBACR,QACA,UACA,SACC;CACD,MAAM,SAAS,QAAQ;CACvB,IAAI,CAAC,UAAU,OAAO,WAAW,GAChC,OAAO;CAER,MAAM,iBAAiB,OAAO,KAAK,UAClC,6BAA6B,QAAQ,UAAU,KAAK,CACrD;CACA,MAAM,kBAAkB,OAAO,KAAK,UACnC,8BAA8B,QAAQ,UAAU,KAAK,CACtD;CACA,OAAO,WAAW;EACjB,MAAM,GAAG,SAAS;EAClB,OAAO,CACN,WAAW;GACV,MAAM;GACN,OAAO;EACR,CAAC,GACD,WAAW;GACV,MAAM;GACN,OAAO;EACR,CAAC,CACF;CACD,CAAC;AACF;AAEA,SAAS,6BACR,QACA,UACA,OACC;CACD,MAAM,aAAa,cAAc,QAAQ;CACzC,MAAM,aAAa,cAAc,QAAQ,UAAU,KAAK;CACxD,MAAM,gBAAgB,YAAY,QAAQ,UAAU,KAAK;CACzD,MAAM,cAAc,eAAe;CACnC,MAAM,WAAW,YAAY;CAC7B,MAAM,YAAY,kBAAkB,UAAU,KAAK;CACnD,MAAM,YAAY,aAAa,iBAAiB,wBAAwB;CACxE,OAAO,GAAG,MAAM,IAAI,UAAU,IAAI,GAAG,UAAU,GAAG,WAAW,IAAI,WAAW,IAAI,YAAY,IAAI,cAAc,IAAI,SAAS,IAAI,UAAU;AAC1I;AAEA,SAAS,8BACR,QACA,UACA,OACC;CACD,MAAM,aAAa,cAAc,QAAQ;CACzC,MAAM,aAAa,cAAc,QAAQ,UAAU,KAAK;CACxD,MAAM,gBAAgB,YAAY,QAAQ,UAAU,KAAK;CACzD,MAAM,cAAc,eAAe;CACnC,MAAM,WAAW,YAAY;CAC7B,MAAM,YAAY,kBAAkB,UAAU,KAAK;CACnD,MAAM,YAAY,aAAa,iBAAiB,sBAAsB;CACtE,OAAO,GAAG,MAAM,IAAI,UAAU,IAAI,GAAG,UAAU,GAAG,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,YAAY,IAAI,cAAc,IAAI,SAAS,IAAI,UAAU;AACzJ;AAEA,SAAgB,mBAAmB,QAA6B,YAAoB;CAInF,MAAM,WAAW,eAAe;EAC/B,MAAM;EACN,OALmB,OAAO,SAAS,QAAQ,QAC1C,KAAK,aAAa,uBAAuB,UAAU,OAAO,SAAS,MAAM,OAAO,CAAC,CAAC,CAClF,OAAO,OAGD;CACR,CAAC;CACD,MAAM,oBAAoB,eAAe;EACxC,MAAM;EACN,OAAO,CAAC,GAAG,OAAO,SAAS,QAAQ,QAAQ,GAAG,OAAO,SAAS,QAAQ,UAAU,CAAC,CAAC,KAChF,SAAS,GAAG,KAAK,IAAI,sBAAsB,GAC7C;CACD,CAAC;CACD,MAAM,WAAW,YAAY;CAC7B,MAAM,cAAc,eAAe;CACnC,OAAO;EACN,gBAAgB,WAAW,UAAU,EAAE,WAAW,UAAU,IAAI,uBAAuB,YAAY,IAAI,SAAS;EAChH;EACA;EACA;EACA;CACD,CAAC,CAAC,KAAK,EAAE;AACV;AAEA,SAAS,uBAAuB,UAAkB,SAA+C;CAChG,MAAM,SAAS,QAAQ,SAAS,EAAE,KAAK,UAAU,4BAA4B,UAAU,KAAK,CAAC;CAC7F,IAAI,UAAU,QAAQ,OAAO,WAAW,GACvC,OAAO;CAER,MAAM,UAAU,eAAe;EAC9B,MAAM;EACN,OAAO;CACR,CAAC;CACD,OAAO,GAAG,SAAS,IAAI,UAAU,IAAI,sBAAsB,SAAS,IAAI,QAAQ;AACjF;AAEA,SAAS,wBAAwB;CAChC,OAAO;AACR;AAEA,SAAS,cAAc,MAAc;CACpC,IAAI;EAAC;EAAS;EAAY;CAAc,CAAC,CAAC,SAAS,IAAI,GACtD,OAAO;CAER,OAAO,GAAG,UAAU,YAAY,GAAG;AACpC;AAEA,SAAS,cAAc,QAA6B,MAAc,OAAe;CAChF,MAAM,YAAY,OAAO,UAAU,IAAI,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE;CAC1D,IAAI,aAAa,MAChB,OAAO;CAER,OAAO;AACR;AAEA,SAAS,kBAAkB,MAAc,OAAe;CACvD,IAAI,SAAS,gBACZ,OAAO,IAAI,MAAM;CAElB,OAAO,IAAI,KAAK,MAAM,MAAM;AAC7B;AAEA,SAAS,YAAY,QAA6B,MAAc,OAAe;CAE9E,IAAI,EADY,OAAO,UAAU,IAAI,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,gBAAgB,QAEvE,OAAO;CAER,MAAM,aAAa,WAAW,KAAK;CACnC,OAAO,GAAG,UAAU,YAAY,GAAG,OAAO,WAAW;AACtD;AAEA,SAAS,4BAA4B,UAAkB,OAAe;CACrE,IAAI,aAAa,gBAChB,OAAO,GAAG,MAAM,IAAI,UAAU,IAAI,8BAA8B,MAAM;CAEvE,OAAO,GAAG,MAAM,IAAI,UAAU,IAAI,uBAAuB,SAAS,MAAM,MAAM;AAC/E;AAEA,SAAS,iBAAiB;CACzB,OAAO,GAAG,UAAU,UAAU;AAC/B;AAEA,SAAS,cAAc;CACtB,OAAO,GAAG,UAAU,UAAU;AAC/B;;AClUA,SAAgB,mBAAmB,SAIhC;CAGF,OAAO;qDAFW,0BAA0B,QAAQ,YAAY,QAAQ,QAGZ,EAAE,UAAU,QAAQ,gBAAgB;;;;;;;;;;AAUjG;;ACOA,SAAgB,oBAA4B;CAC3C,OAAO,CACN,kDACA,kCACD,CAAC,CAAC,KAAK,MAAM;AACd;AAEA,MAAM,qBAAyD;CAC9D,IAAI;CACJ,QAAQ;CACR,SAAS;CACT,KAAK;CACL,OAAO;AACR;AAEA,SAAgB,iBAAiB,QAA+B;CAC/D,MAAM,iBAAiB,OAAO,eAC5B,KAAK,WAAW;EAChB,MAAM,OAAO,mBAAmB;EAChC,IAAI,QAAQ,MAAM,OAAO;EACzB,OAAO,GAAG,OAAO,IAAI,KAAK;CAC3B,CAAC,CAAC,CACD,QAAQ,OAAO,MAAM,IAAI;CAC3B,MAAM,gBAAgB,CAAC,GAAG,OAAO,kBAAkB,cAAc,OAAO,CAAC,CAAC,CAAC,KACzE,WAAW,GAAG,OAAO,KAAK,MAAM,WAClC;CAEA,OAAO,WAAW;EACjB,MAAM;EACN,OAAO,CAAC,GAAG,gBAAgB,GAAG,aAAa;CAC5C,CAAC;AACF;AAEA,SAAgB,qBAAqB,QAA+B;CAEnE,OAAO,WAAW;EACjB,MAAM;EACN,OAHmB,CAAC,GAAG,OAAO,kBAAkB,cAAc,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,KAAK,KAGnF,CAAA,CAAY,KAAK,MAAM,GAAG,EAAE,WAAW;CAC/C,CAAC;AACF;AAEA,SAAgB,kBAAkB,QAA+B;CAChE,MAAM,eAAe,0BAA0B,OAAO,UAAU,OAAO,UAAU;CACjF,OAAO;EACN,gDAAgD,OAAO,gBAAgB;EACvE,yCAAyC,aAAa,QAAQ,OAAO,gBAAgB;EACrF;EACA;CACD,CAAC,CAAC,KAAK,IAAI;AACZ;AAEA,SAAgB,sBACf,QACA,WACA,KACC;CACD,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CACtB,QAAQ,SAAS,UAAU,SAAS,KAAK,KAAK,KAAK,CAAC,CAAC,CACrD,KAAK,SAAS,gBAAgB,QAAQ,IAAI,CAAC,CAAC,CAC5C,KAAK,MAAM;AACd;AAEA,SAAgB,4BACf,QACA,KACC;CACD,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,gBAAgB,QAAQ,IAAI,CAAC;AACrE;AAEA,SAAS,gBAAgB,QAAuB,MAAgC;CAC/E,MAAM,SAAS,KAAK,QAAQ,KAAK,UAAU,qBAAqB,QAAQ,KAAK,CAAC;CAC9E,OAAO,eAAe,KAAK,KAAK,MAAM,KAAK,kBAAkB,MAAM,MAAM;AAC1E;AAEA,SAAS,qBAAqB,QAAuB,OAA4B;CAChF,MAAM,iBAAiB,oBAAoB,QAAQ,MAAM,IAAI;CAC7D,OAAO,GAAG,MAAM,KAAK,QAAQ,eAAe,IAAI,UAAU,QAAQ,MAAM,IAAI;AAC7E;AAEA,SAAgB,sBAAsB,KAA0C;CAC/E,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,aAAa;AAC3C;AAEA,SAAS,cAAc,MAA8B;CACpD,MAAM,SAAS,KAAK,QAAQ,KAAK,UAAU,IAAI,MAAM,KAAK,MAAM,EAAE;CAClE,OAAO,eAAe,KAAK,KAAK,MAAM,KAAK,QAAQ,KAAK,KAAK,KAAK;AACnE;AAEA,SAAgB,2BACf,QACA,KACC;CACD,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,mBAAmB,QAAQ,IAAI,CAAC;AACxE;AAEA,SAAS,mBAAmB,QAAuB,MAAmC;CAKrF,MAAM,QAJc,MAAM,KAAK,OAAO,kBAAkB,cAAc,OAAO,CACzC,CAAC,CAAC,QAAQ,MAC7C,EAAE,YAAY,MAAM,MAAM,EAAE,KAAK,UAAU,KAAK,KAAK,KAAK,CAE7B,CAAC,CAAC,KAAK,MAAM,2BAA2B,EAAE,KAAK,KAAK,CAAC;CACnF,OAAO,eAAe,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,KAAK,KAAK;AACjE;AAEA,SAAS,2BAA2B,MAAc;CACjD,OAAO,GAAG,KAAK,mBAAmB,KAAK;AACxC;AAEA,SAAgB,uBACf,QACA,KACC;CACD,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,eAAe,QAAQ,IAAI,CAAC;AACpE;AAEA,SAAS,eAAe,QAAuB,MAA+B;CAC7E,MAAM,QAAQ,KAAK,OAAO,KAAK,SAAS,uBAAuB,QAAQ,IAAI,CAAC;CAC5E,OAAO,eAAe,KAAK,KAAK,MAAM,KAAK,OAAO,KAAK,KAAK,KAAK;AAClE;AAEA,SAAS,uBAAuB,QAAuB,MAAqB;CAC3E,OAAO,GAAG,eAAe,QAAQ,MAAM,KAAK,EAAE,mBAAmB,KAAK,KAAK,MAAM;AAClF;AAEA,SAAgB,iCACf,QACA,KACC;CACD,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,qBAAqB,QAAQ,IAAI,CAAC;AAC1E;AAEA,SAAS,qBAAqB,QAAuB,MAAqC;CACzF,MAAM,SAAS,KAAK,QAAQ,KAAK,UAAU,0BAA0B,QAAQ,KAAK,CAAC;CACnF,OAAO,WAAW;EACjB,MAAM,eAAe,KAAK,KAAK,MAAM;EACrC,OAAO,UAAU,CAAC;CACnB,CAAC;AACF;AAEA,SAAS,0BAA0B,QAAuB,OAAiC;CAC1F,MAAM,iBAAiB,oBAAoB,QAAQ,MAAM,IAAI;CAC7D,OAAO,GAAG,MAAM,KAAK,QAAQ,eAAe,IAAI,UAAU,QAAQ,MAAM,IAAI;AAC7E;AAEA,SAAgB,iCACf,QACA,KACC;CACD,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,SAAS,oBAAoB,QAAQ,IAAI,CAAC;AAC7E;AAEA,SAAS,oBAAoB,QAAuB,MAAgC;CACnF,IAAI,KAAK,UAAU,MAClB,OAAO,CAAC;CAET,OAAO,KAAK,OACV,KAAK,UAAU,yBAAyB,QAAQ,KAAK,KAAK,OAAO,KAAK,CAAC,CAAC,CACxE,OAAO,OAAO;AACjB;AAEA,SAAS,yBACR,QACA,UACA,OACC;CAED,OAAO,WAAW;EACjB,MAAM,eAAe,GAFN,WAAW,WAAW,MAAM,KAAK,KAAK,EAAE,MAE7B;EAC1B,OAAO,MAAM,WAAW,KAAK,QAAQ,wBAAwB,QAAQ,GAAG,CAAC,KAAK,CAAC;CAChF,CAAC;AACF;AAEA,SAAS,wBAAwB,QAAuB,KAA+B;CACtF,OAAO,GAAG,IAAI,KAAK,MAAM,IAAI,UAAU,QAAQ,IAAI,IAAI;AACxD;AAEA,SAAS,UAAU,QAAuB,MAAgB,WAAW,MAAc;CAClF,QAAQ,KAAK,MAAb;EACC,KAAK,KAAK,YACT,OAAO,eAAe,QAAQ,MAAM,QAAQ;EAC7C,KAAK,KAAK,WACT,OAAO,cAAc,QAAQ,MAAM,QAAQ;EAC5C,KAAK,KAAK,eACT,OAAO,UAAU,QAAQ,KAAK,MAAM,KAAK;EAC1C,SACC,OAAO;CACT;AACD;AAEA,SAAS,cAAc,QAAuB,MAAoB,WAAW,MAAc;CAC1F,OAAO,WAAW,QAAQ,SAAS,UAAU,QAAQ,KAAK,IAAI,EAAE,IAAI,QAAQ;AAC7E;AAEA,SAAS,eAAe,QAAuB,MAAqB,WAAW,MAAc;CAC5F,IAAI,aAAa,OAAO,mBAAmB,OAAO,gBAAgB,IAAI,GACrE,OAAO,gBAAgB,QAAQ,MAAM,QAAQ;CAE9C,OAAO,WAAW,QAAQ,KAAK,KAAK,OAAO,QAAQ;AACpD;AAEA,SAAS,gBAAgB,QAAuB,MAAqB,WAAW,MAAc;CAC7F,OAAO,WAAW,QAAQ,YAAY,KAAK,KAAK,MAAM,KAAK,QAAQ;AACpE;AAEA,SAAS,WAAW,QAAuB,OAAe,UAA2B;CACpF,IAAI,CAAC,UACJ,OAAO;CAER,IAAI,OAAO,WACV,OAAO,sBAAsB,MAAM;CAEpC,OAAO,GAAG,MAAM;AACjB;AAEA,SAAS,oBAAoB,QAAuB,MAAgB;CACnE,OAAO,OAAO,gBAAgB,KAAK,SAAS,KAAK,gBAAgB,MAAM;AACxE;AAEA,SAAS,kBAAkB,MAAgC,QAA2B;CACrF,OAAO,+CAA+C,KAAK,KAAK,MAAM,SAAS,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,GAAG;AACxH;;AC3MA,eAAsB,SACrB,SACA,cAC2B;CAC3B,MAAM,EAAE,cAAc,oBAAoB,MAAM,WAC/C,QAAQ,SACR,QAAQ,KACR,QAAQ,OACT;CACA,MAAM,UAAU,qBAAqB,eAAe;CACpD,MAAM,kBAAkB,qBAAqB,SAAS,QAAQ,UAAU;CACxE,MAAM,UAAU,MAAM,KAAK,gBAAgB,KAAK,CAAC;CACjD,MAAM,oBAAoB,iCAAiC,YAAY;CACvE,MAAM,qBAAqB,gCAAgC,OAAO;CAElE,MAAM,iBAAiB;EAAC;EAAM;EAAO;EAAS;EAAU;CAAS;CAEjE,MAAM,SAAwB;EAC7B;EACA,WAAW;EACX,cAAc;EACd;EACA,iBAAiB,QAAQ;EACzB,UAAU,QAAQ;EAClB,YAAY,QAAQ;CACrB;CAEA,MAAM,YAAY,mBAAmB,mBAAmB,cAAc;CAEtE,MAAM,eAAe;EACpB,kBAAkB,MAAM;EACxB,sBACC,QACA;GAAC;GAAS;GAAY;EAAc,GACpC,kBAAkB,aACnB;EACA,GAAG,sBAAsB,kBAAkB,WAAW;EACtD,GAAG,4BAA4B,QAAQ,mBAAmB,aAAa;EACvE,GAAG,iCAAiC,QAAQ,kBAAkB,aAAa;EAC3E,GAAG,iCAAiC,QAAQ,kBAAkB,kBAAkB;EAChF,GAAG,2BAA2B,QAAQ,kBAAkB,gBAAgB;EACxE,GAAG,uBAAuB,QAAQ,kBAAkB,YAAY;CACjE,CAAC,CAAC,KAAK,MAAM;CAEb,MAAM,iBAAiB;EACtB,kBAAkB;EAClB,iBAAiB,MAAM;EACvB,qBAAqB,MAAM;CAC5B,CAAC,CAAC,KAAK,MAAM;CAEb,MAAM,QAAyB;EAC9B;GACC,UAAU,KAAK,QAAQ,UAAU,UAAU;GAC3C,SAAS;EACV;EACA;GACC,UAAU,KAAK,QAAQ,UAAU,YAAY;GAC7C,SAAS;EACV;EACA;GACC,UAAU,KAAK,QAAQ,YAAY,UAAU;GAC7C,SAAS,cACR;IACC,iBAAiB,QAAQ;IACzB,sBAAsB,QAAQ;GAC/B,GACA,OACD;EACD;EACA;GACC,UAAU,KAAK,QAAQ,YAAY,UAAU;GAC7C,SAAS,mBAAmB;IAC3B,iBAAiB,QAAQ;IACzB,UAAU,QAAQ;IAClB,YAAY,QAAQ;GACrB,CAAC;GACD,SAAS;IACR,kBAAkB;IAClB,mBAAmB;IACnB,+BAA+B;GAChC;EACD;CACD;CAEA,KAAK,MAAM,UAAU,SAAS;EAE7B,MAAM,YADU,gBAAgB,IAAI,MACZ,CAAC,EAAE,KAAK,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,OAAO,MAAM,IAAI,KAAK,CAAC;EACjF,IAAI,UAAU,WAAW,GAAG;EAC5B,MAAM,WAAW,UAAU,SAAS;EACpC,MAAM,SAA8B;GACnC,UAAU,QAAQ;GAClB;GACA,iBAAiB,QAAQ;GACzB,YAAY,QAAQ;GACpB,UAAU,qBAAqB,QAAQ;GACvC,sBAAsB,QAAQ;EAC/B;EACA,MAAM,KAAK;GACV,UAAU,KAAK,QAAQ,YAAY,IAAI,OAAO,GAAG,QAAQ,qBAAqB,IAAI;GAClF,SAAS;IACR,mBAAmB,QAAQ,MAAM;IACjC,oBAAoB,QAAQ,QAAQ;IACpC,sBAAsB,MAAM;IAC5B,4BAA4B,MAAM;IAClC,mBAAmB,QAAQ,MAAM;GAClC,CAAC,CAAC,KAAK,MAAM;EACd,CAAC;EAED,MAAM,oBAAoB,KAAK,QAAQ,YAAY,IAAI,OAAO,UAAU;EAExE,IAAI,CADwB,aAAa,MAAM,SAAS,KAAK,aAAa,iBACnD,GACtB,MAAM,KAAK;GACV,UAAU,KAAK,QAAQ,YAAY,IAAI,OAAO,UAAU;GACxD,SAAS,wBAAwB,QAAQ,MAAM;GAC/C,SAAS;IACR,kBAAkB;IAClB,mBAAmB;IACnB,+BAA+B;GAChC;EACD,CAAC;CAEH;CAEA,OAAO;AACR;;ACrKA,SAAgB,gBAAgB;CAC/B,OAAO,eAAe;EACrB,MAAM;EACN,YAAY;EACZ,QAAQ,SAAS,SAAS,WAAW;GACpC,MAAM,gBAAgB,SAAsB;IAC3C,IAAI,QAAQ,KAAK,cAAc,QAAQ,OAAO,GAC7C,OAAO,IAAI;GAEb;GACA,QAAQ,GAAG,UAAU,YAAY;GACjC,QAAQ,GAAG,UAAU,YAAY;EAClC;EACA,UAAU,OAAO,KAAK,SAAS;GAC9B,MAAM,QAAQ,MAAM,SAAS,IAAI,kBAAkB,IAAI,YAAY,KAAK;GACxE,KAAK,MAAM,QAAQ,OAClB,IAAI,YAAY,aAAa,KAAK,UAAU,KAAK,SAAS,WAAW,KAAK,OAAO;GAElF,OAAO,MAAM,KAAK;EACnB;CACD,CAAC;AACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baeta/plugin-graphql",
|
|
3
|
-
"version": "2.0.0-next.
|
|
3
|
+
"version": "2.0.0-next.18",
|
|
4
4
|
"description": "GraphQL codegen plugin for Baeta.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"baeta",
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
"types": "tsc --noEmit"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@baeta/generator-sdk": "^2.0.0-next.
|
|
59
|
-
"@baeta/util-graphql": "^2.0.0-next.
|
|
58
|
+
"@baeta/generator-sdk": "^2.0.0-next.8",
|
|
59
|
+
"@baeta/util-graphql": "^2.0.0-next.6",
|
|
60
60
|
"@baeta/util-path": "^2.0.0-next.6",
|
|
61
61
|
"change-case": "^5.4.4"
|
|
62
62
|
},
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"typescript": "^6.0.0"
|
|
70
70
|
},
|
|
71
71
|
"peerDependencies": {
|
|
72
|
-
"graphql": "^16.6.0"
|
|
72
|
+
"graphql": "^16.6.0 || ^17.0.0"
|
|
73
73
|
},
|
|
74
74
|
"ava": {
|
|
75
75
|
"extensions": [
|