@newmo/graphql-fake-server 0.25.1 → 0.26.1

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,10 +1,11 @@
1
- import { type MockObject } from "@newmo/graphql-fake-core";
2
- import type { GraphQLSchema } from "graphql/index.js";
1
+ import { type MockFactory } from "@newmo/graphql-fake-core";
2
+ import { type GraphQLSchema } from "graphql/index.js";
3
3
  import type { RequiredFakeServerConfig } from "./config.js";
4
4
  import { type LogLevel } from "./logger.js";
5
5
  export type CreateFakeServerOptions = RequiredFakeServerConfig;
6
6
  type FakeServerInternal = {
7
- mockObject: MockObject;
7
+ mockFactories: Record<string, MockFactory>;
8
+ emptyListFields: Map<string, Set<string>>;
8
9
  schema: GraphQLSchema;
9
10
  ports: {
10
11
  fakeServer: number;
@@ -12,6 +13,7 @@ type FakeServerInternal = {
12
13
  };
13
14
  maxQueryDepth: number;
14
15
  maxRegisteredSequences: number;
16
+ listLength: number;
15
17
  logLevel: LogLevel;
16
18
  allowedCORSOrigins: string[];
17
19
  allowedHosts: string[] | "auto";
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAe1D,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAE/D,KAAK,kBAAkB,GAAG;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,mDAIlC;IACC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CACpC,KAAG,GAAG,CAAC,MAAM,CAqCb,CAAC;AA6IF,MAAM,MAAM,aAAa,GACnB;IACI,IAAI,EAAE,QAAQ,CAAC;CAClB,GACD;IACI,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAGR,MAAM,MAAM,YAAY,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;IACF,QAAQ,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,EAAE,OAAO,CAAC;KACjB,CAAC;CACL,CAAC;AAGF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACvC,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAElC,gBAAgB,EAAE,aAAa,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9B,gBAAgB,EAAE,aAAa,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,GAAG,yBAAyB,CAAC;AA0tB/F,eAAO,MAAM,gBAAgB,GAAU,SAAS,uBAAuB;;;;;;;;EA0BtE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAU,SAAS,kBAAkB;;;;;;;;EAuCzE,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGxE,OAAO,EAGH,KAAK,aAAa,EAMrB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAe1D,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAE/D,KAAK,kBAAkB,GAAG;IACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,mDAIlC;IACC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CACpC,KAAG,GAAG,CAAC,MAAM,CAqCb,CAAC;AAuOF,MAAM,MAAM,aAAa,GACnB;IACI,IAAI,EAAE,QAAQ,CAAC;CAClB,GACD;IACI,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAGR,MAAM,MAAM,YAAY,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;IACF,QAAQ,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,EAAE,OAAO,CAAC;KACjB,CAAC;CACL,CAAC;AAGF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACvC,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAElC,gBAAgB,EAAE,aAAa,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9B,gBAAgB,EAAE,aAAa,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,GAAG,yBAAyB,CAAC;AA0tB/F,eAAO,MAAM,gBAAgB,GAAU,SAAS,uBAAuB;;;;;;;;EA2BtE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAU,SAAS,kBAAkB;;;;;;;;EAuCzE,CAAC"}
@@ -10,6 +10,7 @@ import { serve } from "@hono/node-server";
10
10
  import { createMock } from "@newmo/graphql-fake-core";
11
11
  import corsExpress from "cors";
12
12
  import express from "express";
13
+ import { isInterfaceType, isListType, isNonNullType, isObjectType, isUnionType, } from "graphql/index.js";
13
14
  import { buildSchema } from "graphql/utilities/index.js";
14
15
  // @ts-expect-error -- no types
15
16
  import depthLimit from "graphql-depth-limit";
@@ -145,16 +146,99 @@ const startStandaloneServerWithCORS = async (server, options, allowedCORSOrigins
145
146
  httpServer,
146
147
  };
147
148
  };
148
- const creteApolloServer = async (options) => {
149
- const mocks = Object.fromEntries(Object.entries(options.mockObject).map(([key, value]) => {
150
- return [key, () => value];
151
- }));
149
+ /**
150
+ * Get the inner named type from a possibly wrapped type (NonNull, List).
151
+ */
152
+ const getInnerNamedType = (type) => {
153
+ if (isNonNullType(type)) {
154
+ return getInnerNamedType(type.ofType);
155
+ }
156
+ if (isListType(type)) {
157
+ return getInnerNamedType(type.ofType);
158
+ }
159
+ return type;
160
+ };
161
+ /**
162
+ * Check if a type is a list type (possibly wrapped in NonNull).
163
+ */
164
+ const isListFieldType = (type) => {
165
+ if (isNonNullType(type)) {
166
+ return isListFieldType(type.ofType);
167
+ }
168
+ return isListType(type);
169
+ };
170
+ // Depth value that exceeds any maxDepth config, causing factories to return scalar-only fields.
171
+ const SCALAR_ONLY_DEPTH = Number.MAX_SAFE_INTEGER;
172
+ // Mock resolution strategy:
173
+ //
174
+ // To avoid OOM from eagerly expanding deeply nested mock trees (listLength^depth),
175
+ // mock generation is split into two layers:
176
+ //
177
+ // 1. `mocks` — Provides scalar field values.
178
+ // Factory functions registered per type return only scalar fields
179
+ // (depth = SCALAR_ONLY_DEPTH), so no nested objects are created upfront.
180
+ // @graphql-tools/mock's MockStore references these when resolving scalar fields.
181
+ //
182
+ // 2. `resolvers` — Lazy generation of nested object field values at query time.
183
+ // When a query traverses into a nested field, the resolver invokes
184
+ // the target type's factory at that point. For list fields, it creates
185
+ // `listLength` instances. Only fields actually requested by the query
186
+ // are materialized.
187
+ //
188
+ // Fields marked with @error directive (tracked in emptyListFields) are excluded
189
+ // from resolver generation so they remain as empty arrays [].
190
+ const createApolloServer = async (options) => {
191
+ const executableSchema = makeExecutableSchema({
192
+ typeDefs: options.schema,
193
+ });
194
+ // Layer 1: type-level mocks — scalar fields only, no nested expansion
195
+ const mocks = {};
196
+ for (const [typeName, factory] of Object.entries(options.mockFactories)) {
197
+ mocks[typeName] = () => factory({ depth: SCALAR_ONLY_DEPTH });
198
+ }
199
+ // Layer 2: field-level resolvers — lazy generation of nested object fields at query time
200
+ const objectFieldResolvers = {};
201
+ const typeMap = executableSchema.getTypeMap();
202
+ for (const [typeName, graphqlType] of Object.entries(typeMap)) {
203
+ // Skip introspection types (__Schema, __Type, etc.)
204
+ if (!isObjectType(graphqlType) || typeName.startsWith("__"))
205
+ continue;
206
+ const fields = graphqlType.getFields();
207
+ const fieldResolvers = {};
208
+ const emptyFields = options.emptyListFields.get(typeName);
209
+ for (const [fieldName, field] of Object.entries(fields)) {
210
+ const innerType = getInnerNamedType(field.type);
211
+ // Skip scalar/enum fields — their values are provided by `mocks` (layer 1)
212
+ if (!isObjectType(innerType) && !isInterfaceType(innerType) && !isUnionType(innerType))
213
+ continue;
214
+ const innerTypeName = innerType.name;
215
+ const innerFactory = options.mockFactories[innerTypeName];
216
+ if (!innerFactory)
217
+ continue;
218
+ if (isListFieldType(field.type)) {
219
+ // Skip list fields intentionally set to empty arrays (e.g., @error directive)
220
+ if (emptyFields?.has(fieldName))
221
+ continue;
222
+ fieldResolvers[fieldName] = () => {
223
+ return Array.from({ length: options.listLength }, () => innerFactory({ depth: SCALAR_ONLY_DEPTH }));
224
+ };
225
+ }
226
+ else {
227
+ // Single object field
228
+ fieldResolvers[fieldName] = () => {
229
+ return innerFactory({ depth: SCALAR_ONLY_DEPTH });
230
+ };
231
+ }
232
+ }
233
+ if (Object.keys(fieldResolvers).length > 0) {
234
+ objectFieldResolvers[typeName] = fieldResolvers;
235
+ }
236
+ }
152
237
  return new ApolloServer({
153
238
  schema: addMocksToSchema({
154
- schema: makeExecutableSchema({
155
- typeDefs: options.schema,
156
- }),
239
+ schema: executableSchema,
157
240
  mocks,
241
+ resolvers: () => objectFieldResolvers,
158
242
  }),
159
243
  validationRules: [depthLimit(options.maxQueryDepth)],
160
244
  });
@@ -777,20 +861,21 @@ export const createFakeServer = async (options) => {
777
861
  });
778
862
  }
779
863
  logger.debug("created mock code", mockResult.code);
780
- logger.debug("created mock data", mockResult.mock);
781
864
  return createFakeServerInternal({
782
865
  ports: server.ports,
783
866
  schema,
784
- mockObject: mockResult.mock,
867
+ mockFactories: mockResult.factories,
868
+ emptyListFields: mockResult.emptyListFields,
785
869
  maxQueryDepth: server.maxQueryDepth,
786
870
  maxRegisteredSequences: server.maxRegisteredSequences,
871
+ listLength: mock.listLength,
787
872
  logLevel: logLevel,
788
873
  allowedCORSOrigins: server.allowedCORSOrigins,
789
874
  allowedHosts: server.allowedHosts,
790
875
  });
791
876
  };
792
877
  export const createFakeServerInternal = async (options) => {
793
- const apolloServer = await creteApolloServer(options);
878
+ const apolloServer = await createApolloServer(options);
794
879
  const routingServer = await createRoutingServer({
795
880
  logLevel: options.logLevel,
796
881
  ports: options.ports,
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iCAAiC,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAmB,MAAM,0BAA0B,CAAC;AACvE,OAAO,WAAW,MAAM,MAAM,CAAC;AAC/B,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,+BAA+B;AAC/B,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAgB,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAiB,MAAM,aAAa,CAAC;AAE1D,kCAAkC;AAClC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC;AAEvD,8BAA8B;AAC9B,MAAM,2BAA2B,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAEnF,+BAA+B;AAC/B,MAAM,iBAAiB,GAAG;IACtB,8BAA8B,EAAE,iBAAiB;IACjD,iCAAiC,EAAE,aAAa;IAChD,8CAA8C,EAAE,gBAAgB;CACnE,CAAC;AAkBF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACjC,UAAU,EACV,kBAAkB,GAAG,EAAE,EACvB,YAAY,GAAG,MAAM,GAKxB,EAAe,EAAE;IACd,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QAC1B,iCAAiC;QACjC,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,0EAA0E;IAC1E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,mDAAmD;IACnD,2BAA2B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7C,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,kDAAkD;IAClD,IAAI,YAAY,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACtE,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,kCAAkC;IAClC,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAClC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,0CAA0C;YAC1C,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEpB,0CAA0C;YAC1C,6DAA6D;YAC7D,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,IAAI,UAAU,EAAE,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACV,oBAAoB;QACxB,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,6BAA6B,GAAG,KAAK,EACvC,MAAoB,EACpB,OAGC,EACD,qBAA+B,EAAE,EACjC,eAAkC,MAAM,EAC1C,EAAE;IACA,oDAAoD;IACpD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;IAExD,yCAAyC;IACzC,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAEpE,2BAA2B;IAC3B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAErB,yBAAyB;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;IACzC,MAAM,UAAU,GAAG,oBAAoB,CAAC;QACpC,UAAU,EAAE,IAAI;QAChB,kBAAkB,EAAE,kBAAkB;QACtC,YAAY,EAAE,YAAY;KAC7B,CAAC,CAAC;IAEH,uDAAuD;IACvD,uDAAuD;IACvD,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;QAEpC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,8CAA8C,UAAU,EAAE,CAAC,CAAC;YACxE,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACzD,OAAO;QACX,CAAC;QAED,IAAI,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,WAAW,GAA4B;QACzC,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YACzB,8DAA8D;YAC9D,IAAI,CAAC,MAAM;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEzC,sEAAsE;YACtE,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,CAAC;YAED,sDAAsD;YACtD,IAAI,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,CAAC;YAED,yBAAyB;YACzB,OAAO,QAAQ,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;QACnC,WAAW,EAAE,KAAK;KACrB,CAAC;IAEF,4BAA4B;IAC5B,GAAG,CAAC,GAAG,CACH,CACI,GAAY,EACZ,GAAoB,EACpB,GAAqB,EACrB,KAA2B,EAC7B,EAAE;QACA,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;YAC1C,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;YAC/C,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACnD,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,OAAO,EAAE,GAAG,CAAC,OAAO;SACvB,CAAC,CAAC;QAEH,oCAAoC;QACpC,MAAM,SAAS,GAAI,GAAyB,EAAE,IAAI,CAAC;QACnD,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACpD,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC7D,CAAC,CACJ,CAAC;IAEF,yBAAyB;IACzB,GAAG,CAAC,GAAG,CACH,GAAG,EACH,WAAW,CAAC,WAAW,CAAC,EACxB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/B,4EAA4E;IAC5E,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CACrC,CAAC;IAEF,mBAAmB;IACnB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3E,OAAO;QACH,GAAG,EAAE,UAAU,YAAY,IAAI,IAAI,EAAE;QACrC,UAAU;KACb,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAA2B,EAAE,EAAE;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC5B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CACL,CAAC;IACF,OAAO,IAAI,YAAY,CAAC;QACpB,MAAM,EAAE,gBAAgB,CAAC;YACrB,MAAM,EAAE,oBAAoB,CAAC;gBACzB,QAAQ,EAAE,OAAO,CAAC,MAAM;aAC3B,CAAC;YACF,KAAK;SACR,CAAC;QACF,eAAe,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;KACvD,CAAC,CAAC;AACP,CAAC,CAAC;AACF,0BAA0B;AAC1B,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAU,CAAC;AAqDjE;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,SAAkB,EAAmC,EAAE;IAClF,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;IAC/D,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/D,OAAO;YACH,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,mDAAmD;SAC7D,CAAC;IACN,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAA4B,CAAC,EAAE,CAAC;QAC5E,OAAO;YACH,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,2BACH,SAAS,CAAC,IACd,qBAAqB,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC5D,CAAC;IACN,CAAC;IAED,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,QAAQ;YACT,wCAAwC;YACxC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAA0B,EAAE,CAAC;QAE1D,KAAK,WAAW;YACZ,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,+CAA+C,EAAE,CAAC;YACjF,CAAC;YACD,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAClE,OAAO;oBACH,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,6CAA6C;iBACvD,CAAC;YACN,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO;oBACH,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,2DAA2D;iBACrE,CAAC;YACN,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAA0B,EAAE,CAAC;QAE1D;YACI,OAAO;gBACH,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,+BAA+B,SAAS,CAAC,IAAI,GAAG;aAC1D,CAAC;IACV,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,IAAa,EAA6C,EAAE;IAC9F,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;IAClE,CAAC;IAED,mEAAmE;IACnE,MAAM,gBAAgB,GAClB,kBAAkB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAE5E,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;YACtB,OAAO;gBACH,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,+BAA+B,eAAe,CAAC,KAAK,EAAE;aAChE,CAAC;QACN,CAAC;QACD,OAAO;YACH,EAAE,EAAE,IAAI;YACR,IAAI,EAAE;gBACF,GAAG,IAAI;gBACP,gBAAgB,EAAE,eAAe,CAAC,IAAI;aACd;SAC/B,CAAC;IACN,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrD,OAAO;YACH,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,sDAAsD;SAChE,CAAC;IACN,CAAC;IAED,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO;YACH,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,gEAAgE;SAC1E,CAAC;IACN,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,OAAO;gBACH,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,8DAA8D;aACxE,CAAC;QACN,CAAC;QACD,IAAI,CAAC,CAAC,oBAAoB,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;YACjF,OAAO;gBACH,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,0EAA0E;aACpF,CAAC;QACN,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAA+B,EAAE,CAAC;IAC/D,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC3E,OAAO;gBACH,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,wDAAwD;aAClE,CAAC;QACN,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACH,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,+EAA+E;aACzF,CAAC;QACN,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAA+B,EAAE,CAAC;IAC/D,CAAC;IAED,OAAO;QACH,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,yBAAyB,IAAI,CAAC,IAAI,gDAAgD;KAC5F,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,MAAM;IACA,GAAG,GAAG,IAAI,GAAG,EAAQ,CAAC;IACtB,IAAI,GAAQ,EAAE,CAAC;IACf,OAAO,CAAS;IAExB,YAAY,EAAE,OAAO,EAAuB;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAChB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,SAAS,EAAE,CAAC;gBACZ,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;IACL,CAAC;IAED,GAAG,CAAC,GAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACJ;AAED,wCAAwC;AACxC,kFAAkF;AAClF,qDAAqD;AACrD,wFAAwF;AACxF,MAAM,YAAY,GAAG,CAAC,EAClB,UAAU,EACV,aAAa,GAIhB,EAAE,EAAE;IACD,OAAO,GAAG,UAAU,IAAI,aAAa,EAAE,CAAC;AAC5C,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,MAAiC,EAAW,EAAE;IAClE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE9B,4CAA4C;QAC5C,IAAI,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,qBAAqB;QACrB,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,mCAAmC;QACnC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,KAAK,EAAE,EAC/B,QAAQ,EACR,KAAK,EACL,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,GAAG,MAAM,GAUxB,EAAE,EAAE;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,yBAAyB;IACzB,MAAM,UAAU,GAAG,oBAAoB,CAAC;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,kBAAkB,EAAE,kBAAkB;QACtC,YAAY,EAAE,YAAY;KAC7B,CAAC,CAAC;IAEH,oEAAoE;IACpE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,8CAA8C,UAAU,EAAE,CAAC,CAAC;YACxE,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,MAAM,IAAI,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,gCAAgC;IAChC,MAAM,YAAY,GAAG,KAAK,EAAE,CAAU,EAAE,EAAE;QACtC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvC,gBAAgB;QAChB,qCAAqC;QACrC,wBAAwB;QACxB,6CAA6C;QAC7C,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE;YACnC,IAAI;YACJ,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS;SAC7B,CAAC,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7E,IAAI,GAAG,GAAG,UAAU,YAAY,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC;QAChE,oBAAoB;QACpB,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE;YAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAEjD,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAEnE,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAEhE,MAAM,aAAa,GACf,OAAO,WAAW,KAAK,QAAQ;YAC/B,WAAW,KAAK,IAAI;YACpB,eAAe,IAAI,WAAW;YAC1B,CAAC,CAAC,WAAW,CAAC,aAAa;YAC3B,CAAC,CAAC,SAAS,CAAC;QAEpB,UAAU;QACV,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE;YACxC,GAAG;YACH,UAAU;YACV,aAAa;YACb,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE;SAC1B,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YACnC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG;YACd,OAAO,EAAE;gBACL,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE;aACpB;SACJ,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;YAC/C,UAAU;YACV,aAAa;YACb,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC;SACrD,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,aAAa,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE;gBACpD,UAAU;gBACV,aAAa;gBACb,MAAM,EAAE,aAAa,CAAC,MAAM;aAC/B,CAAC,CAAC;QACP,CAAC;QAED,yBAAyB;QACzB,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,aAAa,CAAC;QAEvD,4CAA4C;QAC5C,IAAI,UAAU,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YAChE,MAAM,YAAY,GAAG,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAA4B,CAAC;YACrF,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;gBAC/C,YAAY;aACf,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,YAAY,CAAC;gBAC1B,UAAU;gBACV,aAAa;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE;gBAC/B,UAAU;gBACV,aAAa;gBACb,QAAQ;aACX,CAAC,CAAC;YAEH,0BAA0B,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACrC,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnD;oBACI,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE;oBAC5B,OAAO,EAAE;wBACL,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;wBAC9C,IAAI,EAAE,WAAsC;qBAC/C;oBACD,QAAQ,EAAE;wBACN,MAAM,EAAE,aAAa,CAAC,MAAM;wBAC5B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC;wBAClD,IAAI,EAAE,YAAY;qBACrB;iBACJ;aACJ,CAAC,CAAC;QACP,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE;YACnD,UAAU;YACV,aAAa;YACb,MAAM,EAAE,aAAa,CAAC,MAAM;SAC/B,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;IACzB,CAAC,CAAC;IACF,6CAA6C;IAC7C,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAAkC;QAC3E,OAAO,EAAE,sBAAsB;KAClC,CAAC,CAAC;IACH,2EAA2E;IAC3E,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAAoC;QAC7E,OAAO,EAAE,sBAAsB;KAClC,CAAC,CAAC;IACH,8CAA8C;IAC9C,gFAAgF;IAChF,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAAyB;QAClE,OAAO,EAAE,sBAAsB;KAClC,CAAC,CAAC;IACH,kCAAkC;IAClC,oDAAoD;IACpD,+EAA+E;IAC/E,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAClD,OAAO,QAAQ,CAAC,IAAI,CAChB;gBACI,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,CAAC,yBAAyB,CAAC;aACtC,EACD;gBACI,MAAM,EAAE,GAAG;aACd,CACJ,CAAC;QACN,CAAC;QAED,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACD,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE;gBAClD,UAAU;gBACV,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;aACxD,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,CAChB;gBACI,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,CAAC,8BAA8B,CAAC;aAC3C,EACD;gBACI,MAAM,EAAE,GAAG;aACd,CACJ,CAAC;QACN,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE;YACjC,UAAU;YACV,IAAI;SACP,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACvB,OAAO,QAAQ,CAAC,IAAI,CAChB,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAC/C;gBACI,MAAM,EAAE,GAAG;aACd,CACJ,CAAC;QACN,CAAC;QACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE;YAChC,UAAU;YACV,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI;YAChC,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,CAAC,gBAAgB;SAC3D,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,YAAY,CAAC;YACzB,UAAU;YACV,aAAa;SAChB,CAAC,CAAC;QAEH,gEAAgE;QAChE,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,QAAQ,CAAC;QAEvF,IAAI,qBAAqB,EAAE,CAAC;YACxB,MAAM,wBAAwB,GAAG,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/E,wDAAwD;YACxD,MAAM,aAAa,GAAG,wBAAwB,CAAC,SAAS,CACpD,CAAC,IAAI,EAAE,EAAE,CACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACrC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAC7D,CAAC;YAEF,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;gBACrB,wBAAwB,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACJ,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC;YAED,2DAA2D;YAC3D,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAG,6BAA6B,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;gBACjE,MAAM,MAAM,GAAG,6BAA6B,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;gBAEjE,mCAAmC;gBACnC,OAAO,MAAM,GAAG,MAAM,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE;gBAC1D,UAAU;gBACV,aAAa;gBACb,aAAa,EAAE,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI;gBAC1D,eAAe,EAAE,wBAAwB,CAAC,MAAM;aACnD,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,yEAAyE;YACzE,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;gBAC9C,UAAU;gBACV,aAAa;gBACb,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI;aACnC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAChB,EAAE,EAAE,EAAE,IAAI,EAAE,EACZ;YACI,MAAM,EAAE,GAAG;SACd,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChC,0DAA0D;QAC1D,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,QAAQ,CAAC,IAAI,CAChB;gBACI,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,CAAC,yBAAyB,CAAC;aACtC,EACD;gBACI,MAAM,EAAE,GAAG;aACd,CACJ,CAAC;QACN,CAAC;QACD,kCAAkC;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO,QAAQ,CAAC,IAAI,CAChB;gBACI,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,CAAC,2BAA2B,CAAC;aACxC,EACD;gBACI,MAAM,EAAE,GAAG;aACd,CACJ,CAAC;QACN,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC;YACrB,UAAU;YACV,aAAa;SAChB,CAAC,CAAC;QACH,mCAAmC;QACnC,MAAM,MAAM,GAAG,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,QAAQ,CAAC,IAAI,CAChB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EACtB;gBACI,MAAM,EAAE,GAAG;aACd,CACJ,CAAC;QACN,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAChB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAC1B;YACI,MAAM,EAAE,GAAG;SACd,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,KAAK,EAAE,CAAU,EAAE,EAAE;QAC1C,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrC;;;;;;;WAOG;QACH,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE/C,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;YAC/C,WAAW;SACd,CAAC,CAAC;QAEH,MAAM,oBAAoB,GACtB,OAAO,WAAW,KAAK,QAAQ;YAC/B,WAAW,KAAK,IAAI;YACpB,eAAe,IAAI,WAAW;YAC9B,WAAW,CAAC,aAAa;YACzB,OAAO,WAAW,CAAC,aAAa,KAAK,QAAQ;YACzC,CAAC,CAAC,WAAW,CAAC,aAAa;YAC3B,CAAC,CAAC,SAAS,CAAC;QACpB,MAAM,CAAC,KAAK,CACR,oCAAoC,oBAAoB,gBAAgB,UAAU,EAAE,EACpF;YACI,UAAU;SACb,CACJ,CAAC;QACF,oCAAoC;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACnE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC;YACzB,UAAU;YACV,aAAa,EAAE,oBAAoB;SACtC,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,gBAAgB,GAClB,OAAO,WAAW,KAAK,QAAQ;YAC/B,WAAW,KAAK,IAAI;YACpB,WAAW,IAAI,WAAW;YAC1B,OAAO,WAAW,CAAC,SAAS,KAAK,QAAQ;YACzC,WAAW,CAAC,SAAS,KAAK,IAAI;YAC1B,CAAC,CAAE,WAAW,CAAC,SAAqC;YACpD,CAAC,CAAC,SAAS,CAAC;QAEpB,gCAAgC;QAChC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEjE,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE;YACtD,UAAU;YACV,aAAa,EAAE,oBAAoB;YACnC,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;YACpD,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC/C,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aAC1C,CAAC,CAAC;YACH,gBAAgB;SACnB,CAAC,CAAC;QACH,8DAA8D;QAC9D,uFAAuF;QACvF,MAAM,WAAW,GACb,0BAA0B,CAAC;YACvB,gBAAgB,EAAE,gBAAgB;YAClC,gBAAgB,EAAE,gBAAgB;YAClC,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,UAAU;YACtB,oBAAoB,EAAE,oBAAoB;SAC7C,CAAC,IAAI,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAElD,MAAM,CAAC,KAAK,CACR,kCAAkC,UAAU,qBAAqB,oBAAoB,kBAAkB,OAAO,CAC1G,WAAW,CACd,EAAE,EACH;YACI,WAAW;YACX,UAAU;YACV,aAAa,EAAE,oBAAoB;SACtC,CACJ,CAAC;QAEF,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACnE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,oBAAoB,KAAK,WAAW,CAAC,aAAa,EAAE,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC1E,OAAO,QAAQ,CAAC,IAAI,CAChB;gBACI,MAAM,EAAE;oBACJ,gDAAgD,oBAAoB,gBAAgB,UAAU,EAAE;iBACnG;aACJ,EACD;gBACI,MAAM,EAAE,GAAG;aACd,CACJ,CAAC;QACN,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAEtE,kDAAkD;YAClD,MAAM,QAAQ,GAAG,YAAY,CAAC;gBAC1B,UAAU;gBACV,aAAa,EAAE,oBAAoB;aACtC,CAAC,CAAC;YACH,0BAA0B,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACrC,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnD;oBACI,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE;oBAC5B,OAAO,EAAE;wBACL,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;wBAC9C,IAAI,EAAE,WAAsC;qBAC/C;oBACD,QAAQ,EAAE;wBACN,MAAM,EAAE,WAAW,CAAC,kBAAkB;wBACtC,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;wBAC/C,IAAI,EAAE;4BACF,MAAM,EAAE,WAAW,CAAC,MAAM;yBAC7B;qBACJ;iBACJ;aACJ,CAAC,CAAC;YAEH,OAAO,IAAI,QAAQ,CACf,IAAI,CAAC,SAAS,CAAC;gBACX,MAAM,EAAE,WAAW,CAAC,MAAM;aAC7B,CAAC,EACF;gBACI,MAAM,EAAE,WAAW,CAAC,kBAAkB;aACzC,CACJ,CAAC;QACN,CAAC;QAED,mEAAmE;QACnE,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,sDAAsD,UAAU,EAAE,EAAE;YAC7E,QAAQ;SACX,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,YAAY,GAAG,QAAQ,CAAC;QAE9B,MAAM,QAAQ,GAAG,YAAY,CAAC;YAC1B,UAAU;YACV,aAAa,EAAE,oBAAoB;SACtC,CAAC,CAAC;QACH,0BAA0B,CAAC,GAAG,CAAC,QAAQ,EAAE;YACrC,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnD;gBACI,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE;gBAC5B,OAAO,EAAE;oBACL,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;oBAC9C,IAAI,EAAE,WAAsC;iBAC/C;gBACD,QAAQ,EAAE;oBACN,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE;wBACF,IAAI,EAAE,YAAY;qBACrB;iBACJ;aACJ;SACJ,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC1D,mGAAmG;QACnG,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE;YAC9B,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;aACrC;SACJ,CAAC,CAAC;IACP,CAAC,CAAC;IACF,2CAA2C;IAC3C,MAAM,WAAW,GAAG;QAChB,MAAM,EAAE,CAAC,MAA0B,EAAE,EAAE;YACnC,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,OAAO,MAAM,CAAC;YAClB,CAAC;YACD,IAAI,MAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChD,OAAO,MAAM,CAAC;YAClB,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC;IAEF,qDAAqD;IACrD,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACzD,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACvD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAgC,EAAE,EAAE;IACvE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC;QAChC,MAAM;QACN,IAAI;KACP,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,4BAA4B,EAAE;YAC1C,KAAK,EAAE,UAAU,CAAC,KAAK;SAC1B,CAAC,CAAC;IACP,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,wBAAwB,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM;QACN,UAAU,EAAE,UAAU,CAAC,IAAI;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;QACrD,QAAQ,EAAE,QAAQ;QAClB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;QAC7C,YAAY,EAAE,MAAM,CAAC,YAAY;KACpC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,OAA2B,EAAE,EAAE;IAC1E,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC;QAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;QACtD,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,YAAY,EAAE,OAAO,CAAC,YAAY;KACrC,CAAC,CAAC;IACH,IAAI,YAAY,GAAoC,IAAI,CAAC;IACzD,OAAO;QACH,KAAK,EAAE,KAAK,IAAI,EAAE;YACd,+DAA+D;YAC/D,MAAM,6BAA6B,CAC/B,YAAY,EACZ;gBACI,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC7B,EACD,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,YAAY,CACvB,CAAC;YACF,YAAY,GAAG,KAAK,CAAC;gBACjB,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;aACjC,CAAC,CAAC;YAEH,OAAO;gBACH,IAAI,EAAE;oBACF,UAAU,EAAE,UAAU,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE;oBAChE,YAAY,EAAE,UAAU,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;iBACvE;aACJ,CAAC;QACN,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACP,YAAY,CAAC,IAAI,EAAE,CAAC;YACpB,YAAY,EAAE,KAAK,EAAE,CAAC;QAC1B,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG,CACtB,SAAwB,EACxB,OAEC,EACM,EAAE;IACT,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,QAAQ;YACT,OAAO,IAAI,CAAC;QAEhB,KAAK,WAAW;YACZ,IAAI,CAAC,OAAO,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC;YACrC,OAAO,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAEjE;YACI,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,6BAA6B,GAAG,CAAC,SAAwB,EAAU,EAAE;IACvE,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,QAAQ;YACT,OAAO,CAAC,CAAC,CAAC,yCAAyC;QAEvD,KAAK,WAAW;YACZ,OAAO,EAAE,CAAC,CAAC,0CAA0C;QAEzD;YACI,OAAO,CAAC,CAAC;IACjB,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,0BAA0B,GAAG,CAAC,EAChC,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,oBAAoB,GAOvB,EAAuC,EAAE;IACtC,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,yEAAyE;QACzE,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG;gBACZ,GAAG,CAAC,gBAAgB,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;aAC3D,CAAC;YAEF,IAAI,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE;oBACvD,UAAU;oBACV,aAAa,EAAE,oBAAoB;oBACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;oBACvC,SAAS,EAAE,gBAAgB;oBAC3B,iBAAiB,EAAE,OAAO;iBAC7B,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE;gBAC7D,UAAU;gBACV,aAAa,EAAE,oBAAoB;gBACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,SAAS,EAAE,gBAAgB;gBAC3B,iBAAiB,EAAE,OAAO;aAC7B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newmo/graphql-fake-server",
3
- "version": "0.25.1",
3
+ "version": "0.26.1",
4
4
  "private": false,
5
5
  "description": "GraphQL fake server for testing",
6
6
  "keywords": [
@@ -47,27 +47,27 @@
47
47
  "updateSnapshot": "vitest run -u"
48
48
  },
49
49
  "dependencies": {
50
- "@apollo/server": "^4.12.2",
51
- "@as-integrations/express5": "^1.1.0",
52
- "@graphql-tools/mock": "^9.0.23",
53
- "@graphql-tools/schema": "^10.0.23",
54
- "@hono/node-server": "^1.14.4",
55
- "@newmo/graphql-fake-core": "0.25.1",
56
- "cors": "^2.8.5",
57
- "express": "^5.1.0",
50
+ "@apollo/server": "4.12.2",
51
+ "@as-integrations/express5": "1.1.0",
52
+ "@graphql-tools/mock": "9.0.23",
53
+ "@graphql-tools/schema": "10.0.23",
54
+ "@hono/node-server": "1.14.4",
55
+ "@newmo/graphql-fake-core": "0.26.1",
56
+ "cors": "2.8.5",
57
+ "express": "5.1.0",
58
58
  "graphql-depth-limit": "^1.1.0",
59
- "hono": "^4.8.0"
59
+ "hono": "4.8.0"
60
60
  },
61
61
  "devDependencies": {
62
- "@tsconfig/node18": "^18.2.0",
63
- "@tsconfig/strictest": "^2.0.1",
62
+ "@tsconfig/node18": "18.2.4",
63
+ "@tsconfig/strictest": "2.0.5",
64
64
  "@types/cors": "^2.8.19",
65
65
  "@types/eslint": "^9.6.1",
66
- "@types/express": "^5.0.3",
67
- "@types/node": "^24.0.3",
68
- "graphql": "^16.11.0",
69
- "typescript": "^5.8.3",
70
- "vitest": "^3.2.4",
66
+ "@types/express": "5.0.3",
67
+ "@types/node": "24.0.3",
68
+ "graphql": "16.11.0",
69
+ "typescript": "5.8.3",
70
+ "vitest": "3.2.4",
71
71
  "vitest-github-actions-reporter": "^0.11.1"
72
72
  },
73
73
  "peerDependencies": {
@@ -80,5 +80,5 @@
80
80
  "access": "public",
81
81
  "registry": "https://registry.npmjs.org/"
82
82
  },
83
- "gitHead": "9efa1e9dd4dca27a37c5328ed9b33186e2bc505f"
83
+ "gitHead": "a7603f0c8469c02a3620c778941b47a20493e185"
84
84
  }
package/src/server.ts CHANGED
@@ -7,10 +7,19 @@ import { expressMiddleware } from "@as-integrations/express5";
7
7
  import { addMocksToSchema } from "@graphql-tools/mock";
8
8
  import { makeExecutableSchema } from "@graphql-tools/schema";
9
9
  import { serve } from "@hono/node-server";
10
- import { createMock, type MockObject } from "@newmo/graphql-fake-core";
10
+ import { createMock, type MockFactory } from "@newmo/graphql-fake-core";
11
11
  import corsExpress from "cors";
12
12
  import express from "express";
13
- import type { GraphQLSchema } from "graphql/index.js";
13
+ import {
14
+ type GraphQLNamedType,
15
+ type GraphQLOutputType,
16
+ type GraphQLSchema,
17
+ isInterfaceType,
18
+ isListType,
19
+ isNonNullType,
20
+ isObjectType,
21
+ isUnionType,
22
+ } from "graphql/index.js";
14
23
  import { buildSchema } from "graphql/utilities/index.js";
15
24
  // @ts-expect-error -- no types
16
25
  import depthLimit from "graphql-depth-limit";
@@ -36,7 +45,8 @@ const PRIVATE_IP_RANGES = [
36
45
  export type CreateFakeServerOptions = RequiredFakeServerConfig;
37
46
 
38
47
  type FakeServerInternal = {
39
- mockObject: MockObject;
48
+ mockFactories: Record<string, MockFactory>;
49
+ emptyListFields: Map<string, Set<string>>;
40
50
  schema: GraphQLSchema;
41
51
  ports: {
42
52
  fakeServer: number;
@@ -44,6 +54,7 @@ type FakeServerInternal = {
44
54
  };
45
55
  maxQueryDepth: number;
46
56
  maxRegisteredSequences: number;
57
+ listLength: number;
47
58
  logLevel: LogLevel;
48
59
  allowedCORSOrigins: string[];
49
60
  allowedHosts: string[] | "auto";
@@ -214,18 +225,108 @@ const startStandaloneServerWithCORS = async (
214
225
  };
215
226
  };
216
227
 
217
- const creteApolloServer = async (options: FakeServerInternal) => {
218
- const mocks = Object.fromEntries(
219
- Object.entries(options.mockObject).map(([key, value]) => {
220
- return [key, () => value];
221
- }),
222
- );
228
+ /**
229
+ * Get the inner named type from a possibly wrapped type (NonNull, List).
230
+ */
231
+ const getInnerNamedType = (type: GraphQLOutputType): GraphQLNamedType => {
232
+ if (isNonNullType(type)) {
233
+ return getInnerNamedType(type.ofType);
234
+ }
235
+ if (isListType(type)) {
236
+ return getInnerNamedType(type.ofType);
237
+ }
238
+ return type;
239
+ };
240
+
241
+ /**
242
+ * Check if a type is a list type (possibly wrapped in NonNull).
243
+ */
244
+ const isListFieldType = (type: GraphQLOutputType): boolean => {
245
+ if (isNonNullType(type)) {
246
+ return isListFieldType(type.ofType);
247
+ }
248
+ return isListType(type);
249
+ };
250
+
251
+ // Depth value that exceeds any maxDepth config, causing factories to return scalar-only fields.
252
+ const SCALAR_ONLY_DEPTH = Number.MAX_SAFE_INTEGER;
253
+
254
+ // Mock resolution strategy:
255
+ //
256
+ // To avoid OOM from eagerly expanding deeply nested mock trees (listLength^depth),
257
+ // mock generation is split into two layers:
258
+ //
259
+ // 1. `mocks` — Provides scalar field values.
260
+ // Factory functions registered per type return only scalar fields
261
+ // (depth = SCALAR_ONLY_DEPTH), so no nested objects are created upfront.
262
+ // @graphql-tools/mock's MockStore references these when resolving scalar fields.
263
+ //
264
+ // 2. `resolvers` — Lazy generation of nested object field values at query time.
265
+ // When a query traverses into a nested field, the resolver invokes
266
+ // the target type's factory at that point. For list fields, it creates
267
+ // `listLength` instances. Only fields actually requested by the query
268
+ // are materialized.
269
+ //
270
+ // Fields marked with @error directive (tracked in emptyListFields) are excluded
271
+ // from resolver generation so they remain as empty arrays [].
272
+ const createApolloServer = async (options: FakeServerInternal) => {
273
+ const executableSchema = makeExecutableSchema({
274
+ typeDefs: options.schema,
275
+ });
276
+
277
+ // Layer 1: type-level mocks — scalar fields only, no nested expansion
278
+ const mocks: Record<string, () => Record<string, unknown>> = {};
279
+ for (const [typeName, factory] of Object.entries(options.mockFactories)) {
280
+ mocks[typeName] = () => factory({ depth: SCALAR_ONLY_DEPTH });
281
+ }
282
+
283
+ // Layer 2: field-level resolvers — lazy generation of nested object fields at query time
284
+ const objectFieldResolvers: Record<string, Record<string, () => unknown>> = {};
285
+ const typeMap = executableSchema.getTypeMap();
286
+
287
+ for (const [typeName, graphqlType] of Object.entries(typeMap)) {
288
+ // Skip introspection types (__Schema, __Type, etc.)
289
+ if (!isObjectType(graphqlType) || typeName.startsWith("__")) continue;
290
+ const fields = graphqlType.getFields();
291
+ const fieldResolvers: Record<string, () => unknown> = {};
292
+
293
+ const emptyFields = options.emptyListFields.get(typeName);
294
+ for (const [fieldName, field] of Object.entries(fields)) {
295
+ const innerType = getInnerNamedType(field.type);
296
+ // Skip scalar/enum fields — their values are provided by `mocks` (layer 1)
297
+ if (!isObjectType(innerType) && !isInterfaceType(innerType) && !isUnionType(innerType))
298
+ continue;
299
+
300
+ const innerTypeName = innerType.name;
301
+ const innerFactory = options.mockFactories[innerTypeName];
302
+ if (!innerFactory) continue;
303
+
304
+ if (isListFieldType(field.type)) {
305
+ // Skip list fields intentionally set to empty arrays (e.g., @error directive)
306
+ if (emptyFields?.has(fieldName)) continue;
307
+ fieldResolvers[fieldName] = () => {
308
+ return Array.from({ length: options.listLength }, () =>
309
+ innerFactory({ depth: SCALAR_ONLY_DEPTH }),
310
+ );
311
+ };
312
+ } else {
313
+ // Single object field
314
+ fieldResolvers[fieldName] = () => {
315
+ return innerFactory({ depth: SCALAR_ONLY_DEPTH });
316
+ };
317
+ }
318
+ }
319
+
320
+ if (Object.keys(fieldResolvers).length > 0) {
321
+ objectFieldResolvers[typeName] = fieldResolvers;
322
+ }
323
+ }
324
+
223
325
  return new ApolloServer({
224
326
  schema: addMocksToSchema({
225
- schema: makeExecutableSchema({
226
- typeDefs: options.schema,
227
- }),
327
+ schema: executableSchema,
228
328
  mocks,
329
+ resolvers: () => objectFieldResolvers,
229
330
  }),
230
331
  validationRules: [depthLimit(options.maxQueryDepth)],
231
332
  });
@@ -1027,13 +1128,14 @@ export const createFakeServer = async (options: CreateFakeServerOptions) => {
1027
1128
  });
1028
1129
  }
1029
1130
  logger.debug("created mock code", mockResult.code);
1030
- logger.debug("created mock data", mockResult.mock);
1031
1131
  return createFakeServerInternal({
1032
1132
  ports: server.ports,
1033
1133
  schema,
1034
- mockObject: mockResult.mock,
1134
+ mockFactories: mockResult.factories,
1135
+ emptyListFields: mockResult.emptyListFields,
1035
1136
  maxQueryDepth: server.maxQueryDepth,
1036
1137
  maxRegisteredSequences: server.maxRegisteredSequences,
1138
+ listLength: mock.listLength,
1037
1139
  logLevel: logLevel,
1038
1140
  allowedCORSOrigins: server.allowedCORSOrigins,
1039
1141
  allowedHosts: server.allowedHosts,
@@ -1041,7 +1143,7 @@ export const createFakeServer = async (options: CreateFakeServerOptions) => {
1041
1143
  };
1042
1144
 
1043
1145
  export const createFakeServerInternal = async (options: FakeServerInternal) => {
1044
- const apolloServer = await creteApolloServer(options);
1146
+ const apolloServer = await createApolloServer(options);
1045
1147
  const routingServer = await createRoutingServer({
1046
1148
  logLevel: options.logLevel,
1047
1149
  ports: options.ports,