@newmo/graphql-fake-core 0.23.0 → 0.25.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"code-generator.d.ts","sourceRoot":"","sources":["../../src/code-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAER,gBAAgB,EAGhB,QAAQ,EAEX,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,gBAAgB,GAAG;IAC3B,UAAU,EAAE,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;CACxD,GAAG,MAAM,CAAC;AACX,eAAO,MAAM,4BAA4B,GAAI,kBAAkB,gBAAgB,KAAG,MAQjF,CAAC;AACF,eAAO,MAAM,yBAAyB,GAAI,kBAEvC;IACC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB,KAAG,MAGH,CAAC;AACF,eAAO,MAAM,2BAA2B,GAAI,qCAIzC;IACC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB,KAAG,MASH,CAAC;AAwIF,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CA2BpF"}
1
+ {"version":3,"file":"code-generator.d.ts","sourceRoot":"","sources":["../../src/code-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAER,gBAAgB,EAGhB,QAAQ,EAEX,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,gBAAgB,GAAG;IAC3B,UAAU,EAAE,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;CACxD,GAAG,MAAM,CAAC;AACX,eAAO,MAAM,4BAA4B,GAAI,kBAAkB,gBAAgB,KAAG,MAQjF,CAAC;AACF,eAAO,MAAM,yBAAyB,GAAI,kBAEvC;IACC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB,KAAG,MAGH,CAAC;AACF,eAAO,MAAM,2BAA2B,GAAI,qCAIzC;IACC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB,KAAG,MAgBH,CAAC;AAyIF,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CA2BpF"}
@@ -13,13 +13,20 @@ export const generateEnumReferenceCode = ({ rawTypeName, }) => {
13
13
  };
14
14
  export const generateCreateReferenceCode = ({ fieldName, rawTypeName, config, }) => {
15
15
  /**
16
- * function createAuthor({ defaultFields, depth = 0 }: { defaultFields?: Partial<Author>, depth?: number } = {}): Author {
17
- * return {
18
- * foo: depth < 1 ? createAuthor({ defaultFields: defaultFields?.foo, depth: depth + 1 }) : undefined,
19
- * }
20
- *}
16
+ * Track both depth and type visit count to prevent exponential explosion.
17
+ *
18
+ * - depth: Total nesting depth across all types (prevents A -> B -> C -> D... explosion)
19
+ * - typeVisitCount: How many times each specific type has been visited (prevents User -> User -> User... recursion)
20
+ *
21
+ * Example: For User -> User recursion with maxTypeRecursion=2, maxDepth=9:
22
+ * - First User: depth=0, typeVisitCount["User"] = 0, creates User
23
+ * - Second User: depth=1, typeVisitCount["User"] = 1, creates User
24
+ * - Third User: depth=2, typeVisitCount["User"] = 2, returns undefined (stops by typeVisitCount)
25
+ *
26
+ * Example: For A -> B -> C -> D -> E -> F -> G -> H -> I -> J with maxDepth=9:
27
+ * - Stops at depth 9, regardless of type
21
28
  */
22
- return `(depth < ${config.maxFieldRecursionDepth} ? create${rawTypeName}({ defaultFields: defaultFields?.${fieldName} ?? {}, depth: depth + 1 }) : undefined)`;
29
+ return `(depth < ${config.mock.maxDepth} && (typeVisitCount["${rawTypeName}"] ?? 0) < ${config.mock.maxTypeRecursion} ? create${rawTypeName}({ defaultFields: defaultFields?.${fieldName} ?? {}, depth: depth + 1, typeVisitCount: { ...typeVisitCount, "${rawTypeName}": (typeVisitCount["${rawTypeName}"] ?? 0) + 1 } }) : undefined)`;
23
30
  };
24
31
  // GraphQL AST Limitations
25
32
  // GraphQL ASTs do not distinguish between object references and enum references.
@@ -56,14 +63,16 @@ ${indent}};
56
63
  `.trim();
57
64
  if (config.outputType === "commonjs") {
58
65
  return `
59
- function create${rawName}({ defaultFields, depth = 0 } = {}) {
66
+ function create${rawName}({ defaultFields, depth = 0, typeVisitCount = Object.create(null) } = {}) {
60
67
  ${functionBodyCode}
61
68
  }
62
69
  exports.create${rawName} = create${rawName};
63
70
  `.trim();
64
71
  }
65
72
  return `
66
- export function create${rawName}({ defaultFields, depth = 0 }${isTypescript ? `: { defaultFields?: Partial<${name}>, depth?: number }` : ""} = {})${isTypescript ? `: ${name}` : ""} {
73
+ export function create${rawName}({ defaultFields, depth = 0, typeVisitCount = Object.create(null) }${isTypescript
74
+ ? `: { defaultFields?: Partial<${name}>, depth?: number, typeVisitCount?: Record<string, number> }`
75
+ : ""} = {})${isTypescript ? `: ${name}` : ""} {
67
76
  ${functionBodyCode}
68
77
  }
69
78
  `.trimStart();
@@ -85,23 +94,22 @@ function generateImportTypeCode(config, typeInfos) {
85
94
  .filter(({ type }) => type === "object")
86
95
  .map(({ name }) => `${indent}${name}`)
87
96
  .join(",\n");
88
- return `import type {
97
+ return `import type {
89
98
  ${joinedTypeNames}
90
99
  } from '${config.typesFile}';`;
91
100
  }
92
101
  function idGeneratorCode(config) {
93
102
  // __id("name");
94
103
  const isTypescript = config.outputType === "typescript";
95
- // ${name}_g${__idGlobalId}_d${depth}_c${count}
104
+ // ${name}_g${__idGlobalId}_c${count}
96
105
  // g: global id - starts from 0
97
- // d: depth - starts from 0
98
106
  // c: name context count - starts from 0
99
107
  return `
100
108
  let __idGlobalId = 0; // global id
101
109
  const __idContextCountMap = new Map${isTypescript ? "<string, number>" : ""}() // context count
102
- function __id({ name, key, depth }${isTypescript ? ": { name: string; key: string; depth: number; }" : ""})${isTypescript ? ": string" : ""} {
110
+ function __id({ name, key }${isTypescript ? ": { name: string; key: string; }" : ""})${isTypescript ? ": string" : ""} {
103
111
  const count = __idContextCountMap.get(key) ?? 0;
104
- const id = name + "_g" + String(__idGlobalId) + "_d" + String(depth) + "_c" + String(count);
112
+ const id = name + "_g" + String(__idGlobalId) + "_c" + String(count);
105
113
  __idGlobalId += 1;
106
114
  __idContextCountMap.set(key, count + 1);
107
115
  return id;
@@ -133,13 +141,13 @@ ${indent}${indent}...${generateCreateReferenceCode({
133
141
  `.trim();
134
142
  if (config.outputType === "typescript") {
135
143
  return `
136
- export function create${rawName}({ defaultFields, depth = 0 }: { defaultFields?: Partial<${name}>, depth?: number } = {}): ${name} {
144
+ export function create${rawName}({ defaultFields, depth = 0, typeVisitCount = Object.create(null) }: { defaultFields?: Partial<${name}>, depth?: number, typeVisitCount?: Record<string, number> } = {}): ${name} {
137
145
  ${functionBodyCode}
138
146
  }
139
147
  `.trim();
140
148
  }
141
149
  return `
142
- function create${rawName}({ defaultFields, depth = 0 } = {}) {
150
+ function create${rawName}({ defaultFields, depth = 0, typeVisitCount = Object.create(null) } = {}) {
143
151
  ${functionBodyCode}
144
152
  }`;
145
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../src/code-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../src/code-generator.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,47 @@
1
1
  import type { RawTypesConfig } from "@graphql-codegen/visitor-plugin-common";
2
- export type RawConfig = {
2
+ /**
3
+ * Mock data generation options (user input - all fields optional).
4
+ *
5
+ * Mock generation uses two complementary depth controls:
6
+ * - `maxDepth`: Limits total nesting depth across ALL types (A → B → C → D stops at depth limit)
7
+ * - `maxTypeRecursion`: Limits how many times the SAME type can appear in a chain (User → User → User)
8
+ *
9
+ * Both conditions must pass for generation to continue:
10
+ * `depth < maxDepth && typeVisitCount[type] < maxTypeRecursion`
11
+ */
12
+ export type RawMockConfig = {
3
13
  /**
4
- * path to type definitions file
5
- * this is generated by client preset
6
- * e.g. ) "typeFile: "./graphql"
14
+ * Maximum total nesting depth across all types.
15
+ * Prevents deep chains like: Query → Book → Author → Publisher → Address → Country → ...
16
+ * @default 9
17
+ * @example
18
+ * // With maxDepth: 3, generation stops at depth 3 regardless of type
19
+ * // Query(0) → Book(1) → Author(2) → Publisher(3) → stops
20
+ */
21
+ maxDepth?: number | undefined;
22
+ /**
23
+ * Maximum times a specific type can be visited in a single path.
24
+ * Prevents same-type recursion like: User → User → User → ...
25
+ * @default 2
26
+ * @example
27
+ * // With maxTypeRecursion: 2
28
+ * // User(visit:1) → friends: User(visit:2) → friends: undefined (stops)
29
+ */
30
+ maxTypeRecursion?: number | undefined;
31
+ /**
32
+ * Number of elements to generate for array/list fields.
33
+ * @default 3
34
+ */
35
+ listLength?: number | undefined;
36
+ /**
37
+ * Default values for GraphQL scalar types.
7
38
  */
8
- typesFile?: string | undefined;
9
- skipTypename?: RawTypesConfig["skipTypename"] | undefined;
10
- namingConvention?: RawTypesConfig["namingConvention"] | undefined;
11
- typesPrefix?: RawTypesConfig["typesPrefix"] | undefined;
12
- typesSuffix?: RawTypesConfig["typesSuffix"] | undefined;
13
- maxFieldRecursionDepth?: number | undefined;
14
39
  defaultValues?: {
15
40
  String?: string | undefined;
16
41
  Int?: number | undefined;
17
42
  Float?: number | undefined;
18
43
  Boolean?: boolean | undefined;
19
44
  ID?: string | undefined;
20
- listLength?: number | undefined;
21
45
  CustomScalar?: {
22
46
  /**
23
47
  * CustomScalar default expression
@@ -36,33 +60,126 @@ export type RawConfig = {
36
60
  };
37
61
  } | undefined;
38
62
  };
63
+ /**
64
+ * Code generation config (user input - all fields optional).
65
+ * Used by graphql-codegen plugin to generate mock factory functions.
66
+ */
67
+ export type RawConfig = {
68
+ /**
69
+ * Path to type definitions file generated by graphql-codegen client preset.
70
+ * Required for TypeScript output.
71
+ * @example "typeFile: "./graphql"
72
+ */
73
+ typesFile?: string | undefined;
74
+ /**
75
+ * Whether to skip __typename field in generated types.
76
+ * @see https://the-guild.dev/graphql/codegen/plugins/typescript/typescript#skiptypename
77
+ */
78
+ skipTypename?: RawTypesConfig["skipTypename"] | undefined;
79
+ /**
80
+ * Naming convention for generated types.
81
+ * @see https://the-guild.dev/graphql/codegen/plugins/typescript/typescript#namingconvention
82
+ */
83
+ namingConvention?: RawTypesConfig["namingConvention"] | undefined;
84
+ /**
85
+ * Prefix for generated type names.
86
+ */
87
+ typesPrefix?: RawTypesConfig["typesPrefix"] | undefined;
88
+ /**
89
+ * Suffix for generated type names.
90
+ */
91
+ typesSuffix?: RawTypesConfig["typesSuffix"] | undefined;
92
+ /**
93
+ * Mock data generation options.
94
+ * Controls depth limits, list lengths, and default scalar values.
95
+ */
96
+ mock?: RawMockConfig | undefined;
97
+ };
98
+ /**
99
+ * Default values for mock generation options.
100
+ */
101
+ export declare const MockDefaults: {
102
+ /** @see RawMockConfig.maxDepth */
103
+ readonly maxDepth: 9;
104
+ /** @see RawMockConfig.maxTypeRecursion */
105
+ readonly maxTypeRecursion: 2;
106
+ /** @see RawMockConfig.listLength */
107
+ readonly listLength: 3;
108
+ };
109
+ /**
110
+ * Default values for GraphQL scalar types.
111
+ */
39
112
  export declare const DefaultValues: {
40
- String: string;
41
- Int: number;
42
- Float: number;
43
- Boolean: boolean;
44
- ID: string;
45
- listLength: number;
113
+ readonly String: "string";
114
+ readonly Int: 12;
115
+ readonly Float: 12.3;
116
+ readonly Boolean: true;
117
+ readonly ID: "xxxx-xxxx-xxxx-xxxx";
46
118
  };
47
- export type Config = {
48
- typesFile: string;
49
- skipTypename: Exclude<RawTypesConfig["skipTypename"], undefined>;
50
- typesPrefix: Exclude<RawTypesConfig["typesPrefix"], undefined>;
51
- typesSuffix: Exclude<RawTypesConfig["typesSuffix"], undefined>;
52
- namingConvention: Exclude<RawTypesConfig["namingConvention"], undefined>;
53
- maxFieldRecursionDepth: number;
119
+ /**
120
+ * Mock data generation options (normalized - all fields required).
121
+ * This is the internal config type with defaults applied.
122
+ *
123
+ * @see RawMockConfig for user-facing config with optional fields
124
+ */
125
+ export type MockConfig = {
126
+ /**
127
+ * Maximum total nesting depth across all types.
128
+ * @see RawMockConfig.maxDepth
129
+ */
130
+ maxDepth: number;
131
+ /**
132
+ * Maximum times a specific type can be visited in a single path.
133
+ * @see RawMockConfig.maxTypeRecursion
134
+ */
135
+ maxTypeRecursion: number;
136
+ /**
137
+ * Number of elements to generate for array/list fields.
138
+ */
139
+ listLength: number;
140
+ /**
141
+ * Default values for GraphQL scalar types.
142
+ */
54
143
  defaultValues: {
144
+ /** Default value for String scalar */
55
145
  String: string;
146
+ /** Default value for Int scalar */
56
147
  Int: number;
148
+ /** Default value for Float scalar */
57
149
  Float: number;
150
+ /** Default value for Boolean scalar */
58
151
  Boolean: boolean;
152
+ /** Default value for ID scalar */
59
153
  ID: string;
60
- listLength: number;
154
+ /**
155
+ * Default values for custom scalars.
156
+ * Key is the scalar name, value is a JavaScript expression.
157
+ */
61
158
  CustomScalar?: {
62
159
  [key: string]: string;
63
160
  };
64
161
  };
65
162
  };
163
+ /**
164
+ * Code generation config (normalized - all fields required).
165
+ * This is the internal config type with defaults applied.
166
+ *
167
+ * @see RawConfig for user-facing config with optional fields
168
+ */
169
+ export type Config = {
170
+ /** Path to type definitions file */
171
+ typesFile: string;
172
+ /** Whether to skip __typename field */
173
+ skipTypename: Exclude<RawTypesConfig["skipTypename"], undefined>;
174
+ /** Prefix for generated type names */
175
+ typesPrefix: Exclude<RawTypesConfig["typesPrefix"], undefined>;
176
+ /** Suffix for generated type names */
177
+ typesSuffix: Exclude<RawTypesConfig["typesSuffix"], undefined>;
178
+ /** Naming convention for generated types */
179
+ namingConvention: Exclude<RawTypesConfig["namingConvention"], undefined>;
180
+ /** Mock data generation options (normalized) */
181
+ mock: MockConfig;
182
+ };
66
183
  export declare function validateConfig(rawConfig: unknown, outputType?: "typescript" | "javascript"): asserts rawConfig is RawConfig;
67
184
  export declare function normalizeConfig(rawConfig: RawConfig): Config;
68
185
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,MAAM,MAAM,SAAS,GAAG;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC1D,gBAAgB,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAClE,WAAW,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IACxD,WAAW,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IACxD,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,aAAa,CAAC,EACR;QACI,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,YAAY,CAAC,EAAE;YACX;;;;;;;;;;;;eAYG;YACH,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;SACzB,CAAC;KACL,GACD,SAAS,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;CAOzB,CAAC;AACF,MAAM,MAAM,MAAM,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC;IACjE,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/D,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/D,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC,CAAC;IACzE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QAEnB,YAAY,CAAC,EAAE;YAEX,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;SACzB,CAAC;KACL,CAAC;CACL,CAAC;AAEF,wBAAgB,cAAc,CAC1B,SAAS,EAAE,OAAO,EAClB,UAAU,GAAE,YAAY,GAAG,YAA2B,GACvD,OAAO,CAAC,SAAS,IAAI,SAAS,CAmDhC;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAkB5D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,56 +1,80 @@
1
+ /**
2
+ * Default values for mock generation options.
3
+ */
4
+ export const MockDefaults = {
5
+ /** @see RawMockConfig.maxDepth */
6
+ maxDepth: 9,
7
+ /** @see RawMockConfig.maxTypeRecursion */
8
+ maxTypeRecursion: 2,
9
+ /** @see RawMockConfig.listLength */
10
+ listLength: 3,
11
+ };
12
+ /**
13
+ * Default values for GraphQL scalar types.
14
+ */
1
15
  export const DefaultValues = {
2
16
  String: "string",
3
17
  Int: 12,
4
18
  Float: 12.3,
5
19
  Boolean: true,
6
20
  ID: "xxxx-xxxx-xxxx-xxxx",
7
- listLength: 3,
8
21
  };
9
22
  export function validateConfig(rawConfig, outputType = "javascript") {
10
- // defaultValues type validations
11
23
  if (rawConfig === null || rawConfig === undefined) {
12
- throw new Error("config.defaultValues must be an object");
24
+ throw new Error("config must be an object");
13
25
  }
14
26
  if (typeof rawConfig !== "object") {
15
- throw new Error("config.defaultValues must be an object");
16
- }
17
- if ("maxFieldRecursionDepth" in rawConfig) {
18
- if (typeof rawConfig.maxFieldRecursionDepth !== "number") {
19
- throw new Error("config.maxFieldRecursionDepth must be a number");
20
- }
27
+ throw new Error("config must be an object");
21
28
  }
22
29
  if (outputType === "typescript") {
23
30
  if (!("typesFile" in rawConfig)) {
24
31
  throw new Error("config.typesFile is required");
25
32
  }
26
33
  }
27
- if ("defaultValues" in rawConfig) {
28
- if (typeof rawConfig.defaultValues !== "object") {
29
- throw new Error("config.defaultValues must be an object");
30
- }
31
- const defaultValues = rawConfig.defaultValues;
32
- if (defaultValues.String !== undefined && typeof defaultValues.String !== "string") {
33
- throw new Error("config.defaultValues.String must be a string");
34
+ if ("mock" in rawConfig && rawConfig.mock !== undefined) {
35
+ if (typeof rawConfig.mock !== "object") {
36
+ throw new Error("config.mock must be an object");
34
37
  }
35
- if (defaultValues.Int !== undefined && typeof defaultValues.Int !== "number") {
36
- throw new Error("config.defaultValues.Int must be a number");
38
+ const mock = rawConfig.mock;
39
+ if (mock.maxDepth !== undefined && typeof mock.maxDepth !== "number") {
40
+ throw new Error("config.mock.maxDepth must be a number");
37
41
  }
38
- if (defaultValues.Float !== undefined && typeof defaultValues.Float !== "number") {
39
- throw new Error("config.defaultValues.Float must be a number");
42
+ if (mock.maxDepth !== undefined && mock.maxDepth < 1) {
43
+ throw new Error("config.mock.maxDepth must be at least 1");
40
44
  }
41
- if (defaultValues.Boolean !== undefined && typeof defaultValues.Boolean !== "boolean") {
42
- throw new Error("config.defaultValues.Boolean must be a boolean");
45
+ if (mock.maxTypeRecursion !== undefined && typeof mock.maxTypeRecursion !== "number") {
46
+ throw new Error("config.mock.maxTypeRecursion must be a number");
43
47
  }
44
- if (defaultValues.ID !== undefined && typeof defaultValues.ID !== "string") {
45
- throw new Error("config.defaultValues.ID must be a string");
48
+ if (mock.maxTypeRecursion !== undefined && mock.maxTypeRecursion < 1) {
49
+ throw new Error("config.mock.maxTypeRecursion must be at least 1");
46
50
  }
47
- if (defaultValues.listLength !== undefined &&
48
- typeof defaultValues.listLength !== "number") {
49
- throw new Error("config.defaultValues.listLength must be a number");
51
+ if (mock.listLength !== undefined && typeof mock.listLength !== "number") {
52
+ throw new Error("config.mock.listLength must be a number");
50
53
  }
51
- if (defaultValues.CustomScalar !== undefined &&
52
- typeof defaultValues.CustomScalar !== "object") {
53
- throw new Error("config.defaultValues.CustomScalar must be an object");
54
+ if (mock.defaultValues !== undefined) {
55
+ if (typeof mock.defaultValues !== "object") {
56
+ throw new Error("config.mock.defaultValues must be an object");
57
+ }
58
+ const defaultValues = mock.defaultValues;
59
+ if (defaultValues.String !== undefined && typeof defaultValues.String !== "string") {
60
+ throw new Error("config.mock.defaultValues.String must be a string");
61
+ }
62
+ if (defaultValues.Int !== undefined && typeof defaultValues.Int !== "number") {
63
+ throw new Error("config.mock.defaultValues.Int must be a number");
64
+ }
65
+ if (defaultValues.Float !== undefined && typeof defaultValues.Float !== "number") {
66
+ throw new Error("config.mock.defaultValues.Float must be a number");
67
+ }
68
+ if (defaultValues.Boolean !== undefined && typeof defaultValues.Boolean !== "boolean") {
69
+ throw new Error("config.mock.defaultValues.Boolean must be a boolean");
70
+ }
71
+ if (defaultValues.ID !== undefined && typeof defaultValues.ID !== "string") {
72
+ throw new Error("config.mock.defaultValues.ID must be a string");
73
+ }
74
+ if (defaultValues.CustomScalar !== undefined &&
75
+ typeof defaultValues.CustomScalar !== "object") {
76
+ throw new Error("config.mock.defaultValues.CustomScalar must be an object");
77
+ }
54
78
  }
55
79
  }
56
80
  }
@@ -61,15 +85,18 @@ export function normalizeConfig(rawConfig) {
61
85
  typesPrefix: rawConfig.typesPrefix ?? "",
62
86
  typesSuffix: rawConfig.typesSuffix ?? "",
63
87
  namingConvention: rawConfig.namingConvention ?? "",
64
- maxFieldRecursionDepth: rawConfig.maxFieldRecursionDepth ?? 9,
65
- defaultValues: {
66
- String: rawConfig.defaultValues?.String ?? DefaultValues.String,
67
- Int: rawConfig.defaultValues?.Int ?? DefaultValues.Int,
68
- Float: rawConfig.defaultValues?.Float ?? DefaultValues.Float,
69
- Boolean: rawConfig.defaultValues?.Boolean ?? DefaultValues.Boolean,
70
- ID: rawConfig.defaultValues?.ID ?? DefaultValues.ID,
71
- listLength: rawConfig.defaultValues?.listLength ?? DefaultValues.listLength,
72
- CustomScalar: rawConfig.defaultValues?.CustomScalar ?? {},
88
+ mock: {
89
+ maxDepth: rawConfig.mock?.maxDepth ?? MockDefaults.maxDepth,
90
+ maxTypeRecursion: rawConfig.mock?.maxTypeRecursion ?? MockDefaults.maxTypeRecursion,
91
+ listLength: rawConfig.mock?.listLength ?? MockDefaults.listLength,
92
+ defaultValues: {
93
+ String: rawConfig.mock?.defaultValues?.String ?? DefaultValues.String,
94
+ Int: rawConfig.mock?.defaultValues?.Int ?? DefaultValues.Int,
95
+ Float: rawConfig.mock?.defaultValues?.Float ?? DefaultValues.Float,
96
+ Boolean: rawConfig.mock?.defaultValues?.Boolean ?? DefaultValues.Boolean,
97
+ ID: rawConfig.mock?.defaultValues?.ID ?? DefaultValues.ID,
98
+ CustomScalar: rawConfig.mock?.defaultValues?.CustomScalar ?? {},
99
+ },
73
100
  },
74
101
  };
75
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createMock.d.ts","sourceRoot":"","sources":["../../src/createMock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,EAAE,aAAa,CAAC;CACzB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAIvB,MAAM,MAAM,gBAAgB,GACtB;IACI,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CACpB,GACD;IACI,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC;AACR;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAU,SAAS,iBAAiB,KAAG,OAAO,CAAC,gBAAgB,CAkCrF,CAAC"}
1
+ {"version":3,"file":"createMock.d.ts","sourceRoot":"","sources":["../../src/createMock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,EAAE,aAAa,CAAC;CACzB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAIvB,MAAM,MAAM,gBAAgB,GACtB;IACI,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CACpB,GACD;IACI,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC;AACR;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAU,SAAS,iBAAiB,KAAG,OAAO,CAAC,gBAAgB,CA+BrF,CAAC"}
@@ -11,10 +11,7 @@ const cloneAsJSON = (obj) => {
11
11
  */
12
12
  export const createMock = async (options) => {
13
13
  const { schema, ...rawConfig } = options;
14
- const normalizedConfig = normalizeConfig({
15
- maxFieldRecursionDepth: rawConfig.maxFieldRecursionDepth ?? 3,
16
- ...rawConfig,
17
- });
14
+ const normalizedConfig = normalizeConfig(rawConfig);
18
15
  const typeInfos = getTypeInfos(normalizedConfig, schema);
19
16
  const code = generateCode({
20
17
  ...normalizedConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"createMock.js","sourceRoot":"","sources":["../../src/createMock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAkB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAiB,MAAM,qBAAqB,CAAC;AAMlE,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,EAAE;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAaF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,OAA0B,EAA6B,EAAE;IACtF,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,gBAAgB,GAAG,eAAe,CAAC;QACrC,sBAAsB,EAAE,SAAS,CAAC,sBAAsB,IAAI,CAAC;QAC7D,GAAG,SAAS;KACf,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,YAAY,CACrB;QACI,GAAG,gBAAgB;QACnB,UAAU,EAAE,UAAU;KACzB,EACD,SAAS,CACZ,CAAC;IAEF,IAAI,CAAC;QACD,yCAAyC;QACzC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACtC,8DAA8D;QAC9D,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO;YACH,EAAE,EAAE,IAAI;YACR,IAAI;YACJ,IAAI,EAAE,WAAW;SACpB,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,EAAE,EAAE,KAAK;YACT,IAAI;YACJ,SAAS;YACT,KAAK,EAAE,KAAc;SACxB,CAAC;IACN,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"createMock.js","sourceRoot":"","sources":["../../src/createMock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAkB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAiB,MAAM,qBAAqB,CAAC;AAMlE,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,EAAE;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAaF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,OAA0B,EAA6B,EAAE;IACtF,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,YAAY,CACrB;QACI,GAAG,gBAAgB;QACnB,UAAU,EAAE,UAAU;KACzB,EACD,SAAS,CACZ,CAAC;IAEF,IAAI,CAAC;QACD,yCAAyC;QACzC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACtC,8DAA8D;QAC9D,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO;YACH,EAAE,EAAE,IAAI;YACR,IAAI;YACJ,IAAI,EAAE,WAAW;SACpB,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,EAAE,EAAE,KAAK;YACT,IAAI;YACJ,SAAS;YACT,KAAK,EAAE,KAAc;SACxB,CAAC;IACN,CAAC;AACL,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export type { ConfigWithOutput } from "./code-generator.js";
2
2
  export { generateCode } from "./code-generator.js";
3
- export type { Config, RawConfig } from "./config.js";
4
- export { normalizeConfig, validateConfig } from "./config.js";
3
+ export type { Config, MockConfig, RawConfig, RawMockConfig } from "./config.js";
4
+ export { DefaultValues, MockDefaults, normalizeConfig, validateConfig } from "./config.js";
5
5
  export type { CreateMockOptions, CreateMockResult, MockObject } from "./createMock.js";
6
6
  export { createMock } from "./createMock.js";
7
7
  export { EXAMPLE_DIRECTIVE, extendSchema } from "./extend-schema.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,YAAY,EACR,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,QAAQ,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3F,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,YAAY,EACR,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,QAAQ,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { generateCode } from "./code-generator.js";
2
- export { normalizeConfig, validateConfig } from "./config.js";
2
+ export { DefaultValues, MockDefaults, normalizeConfig, validateConfig } from "./config.js";
3
3
  export { createMock } from "./createMock.js";
4
4
  export { EXAMPLE_DIRECTIVE, extendSchema } from "./extend-schema.js";
5
5
  export { getTypeInfos } from "./schema-scanner.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASrE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3F,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASrE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-scanner.d.ts","sourceRoot":"","sources":["../../src/schema-scanner.ts"],"names":[],"mappings":"AACA,OAAO,EAIH,KAAK,aAAa,EAWrB,MAAM,SAAS,CAAC;AAMjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAsC1C,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AACvD,KAAK,UAAU,GAAG,cAAc,EAAE,CAAC;AACnC,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAC,CAAC;AAC/D,MAAM,MAAM,qBAAqB,GAAG;IAEhC,KAAK,EAAE,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;CACpD,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,0BAA0B,CAAC;AA8clF,KAAK,SAAS,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;CAC/C,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,MAAM,CAAC;IAEhB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,QAAQ,GACd,cAAc,GACd,iBAAiB,GACjB,YAAY,GACZ,aAAa,GACb,cAAc,CAAC;AAmMrB,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,QAAQ,EAAE,CAkB9E"}
1
+ {"version":3,"file":"schema-scanner.d.ts","sourceRoot":"","sources":["../../src/schema-scanner.ts"],"names":[],"mappings":"AACA,OAAO,EAIH,KAAK,aAAa,EAWrB,MAAM,SAAS,CAAC;AAMjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAsC1C,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AACvD,KAAK,UAAU,GAAG,cAAc,EAAE,CAAC;AACnC,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAC,CAAC;AAC/D,MAAM,MAAM,qBAAqB,GAAG;IAEhC,KAAK,EAAE,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;CACpD,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,0BAA0B,CAAC;AA8dlF,KAAK,SAAS,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;CAC/C,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,MAAM,CAAC;IAEhB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,QAAQ,GACd,cAAc,GACd,iBAAiB,GACjB,YAAY,GACZ,aAAa,GACb,cAAc,CAAC;AAmMrB,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,QAAQ,EAAE,CAkB9E"}