@zenstackhq/testtools 1.0.0-alpha.99 → 1.0.0-beta.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenstackhq/testtools",
3
- "version": "1.0.0-alpha.99",
3
+ "version": "1.0.0-beta.10",
4
4
  "description": "ZenStack Test Tools",
5
5
  "main": "index.js",
6
6
  "publishConfig": {
@@ -11,17 +11,16 @@
11
11
  "author": "",
12
12
  "license": "MIT",
13
13
  "dependencies": {
14
- "@prisma/client": "^4.7.0",
15
- "@prisma/generator-helper": "^4.7.1",
16
- "@prisma/internals": "^4.7.1",
17
- "prisma": "~4.7.0",
14
+ "@prisma/generator-helper": "^5.0.0",
15
+ "json5": "^2.2.3",
18
16
  "tmp": "^0.2.1",
19
- "@zenstackhq/runtime": "1.0.0-alpha.99",
20
- "zenstack": "1.0.0-alpha.99",
21
- "@zenstackhq/language": "1.0.0-alpha.99"
17
+ "@zenstackhq/language": "1.0.0-beta.10",
18
+ "zenstack": "1.0.0-beta.10",
19
+ "@zenstackhq/sdk": "1.0.0-beta.10",
20
+ "@zenstackhq/runtime": "1.0.0-beta.10"
22
21
  },
23
22
  "devDependencies": {
24
- "@types/node": "^18.14.2",
23
+ "@types/node": "^18.0.0",
25
24
  "@types/tmp": "^0.2.3",
26
25
  "copyfiles": "^2.4.1",
27
26
  "rimraf": "^3.0.2",
@@ -30,7 +29,7 @@
30
29
  "scripts": {
31
30
  "clean": "rimraf dist",
32
31
  "lint": "eslint src --ext ts",
33
- "build": "pnpm lint && pnpm clean && tsc && copyfiles ./package.json ./LICENSE ./README.md dist && copyfiles -u 1 src/package.template.json src/.npmrc.template dist",
32
+ "build": "pnpm lint && pnpm clean && tsc && copyfiles ./package.json ./LICENSE ./README.md dist && copyfiles -u 1 src/package.template.json src/.npmrc.template dist && pnpm pack dist --pack-destination '../../../.build'",
34
33
  "watch": "tsc --watch"
35
34
  }
36
35
  }
@@ -9,12 +9,12 @@
9
9
  "dependencies": {
10
10
  "@prisma/client": "^4.0.0",
11
11
  "@zenstackhq/runtime": "file:<root>/packages/runtime/dist",
12
- "@zenstackhq/react": "file:<root>/packages/plugins/react/dist",
12
+ "@zenstackhq/swr": "file:<root>/packages/plugins/swr/dist",
13
13
  "@zenstackhq/trpc": "file:<root>/packages/plugins/trpc/dist",
14
14
  "@zenstackhq/openapi": "file:<root>/packages/plugins/openapi/dist",
15
15
  "prisma": "^4.0.0",
16
16
  "typescript": "^4.9.3",
17
17
  "zenstack": "file:<root>/packages/schema/dist",
18
- "zod": "^3.19.1"
18
+ "zod": "3.21.1"
19
19
  }
20
20
  }
package/schema.d.ts CHANGED
@@ -1,6 +1,17 @@
1
1
  import type { DMMF } from '@prisma/generator-helper';
2
2
  import type { Model } from '@zenstackhq/language/ast';
3
3
  import { type AuthUser, type DbOperations } from '@zenstackhq/runtime';
4
+ /**
5
+ * Use it to represent multiple files in a single string like this
6
+ `schema.zmodel
7
+ import "user"
8
+ ${FILE_SPLITTER}user.zmodel
9
+ import "schema"
10
+ model User {
11
+ ...
12
+ }`
13
+ */
14
+ export declare const FILE_SPLITTER = "#FILE_SPLITTER#";
4
15
  export type WeakDbOperations = {
5
16
  [key in keyof DbOperations]: (...args: any[]) => Promise<any>;
6
17
  };
@@ -16,22 +27,35 @@ export type WeakDbClientContract = Record<string, WeakDbOperations> & {
16
27
  export declare function run(cmd: string, env?: Record<string, string>, cwd?: string): void;
17
28
  export declare function getWorkspaceRoot(start: string): string | undefined;
18
29
  export declare function getWorkspaceNpmCacheFolder(start: string): string;
19
- export declare function loadSchemaFromFile(schemaFile: string, addPrelude?: boolean, pushDb?: boolean): Promise<{
30
+ export type SchemaLoadOptions = {
31
+ addPrelude?: boolean;
32
+ pushDb?: boolean;
33
+ fullZod?: boolean;
34
+ extraDependencies?: string[];
35
+ compile?: boolean;
36
+ customSchemaFilePath?: string;
37
+ logPrismaQuery?: boolean;
38
+ };
39
+ export declare function loadSchemaFromFile(schemaFile: string, options?: SchemaLoadOptions): Promise<{
20
40
  projectDir: string;
21
41
  prisma: any;
22
42
  withPolicy: (user?: AuthUser | undefined) => WeakDbClientContract;
23
43
  withOmit: () => WeakDbClientContract;
24
44
  withPassword: () => WeakDbClientContract;
25
45
  withPresets: (user?: AuthUser | undefined) => WeakDbClientContract;
46
+ policy: any;
47
+ modelMeta: any;
26
48
  zodSchemas: any;
27
49
  }>;
28
- export declare function loadSchema(schema: string, addPrelude?: boolean, pushDb?: boolean, extraDependencies?: string[], compile?: boolean): Promise<{
50
+ export declare function loadSchema(schema: string, options?: SchemaLoadOptions): Promise<{
29
51
  projectDir: string;
30
52
  prisma: any;
31
53
  withPolicy: (user?: AuthUser) => WeakDbClientContract;
32
54
  withOmit: () => WeakDbClientContract;
33
55
  withPassword: () => WeakDbClientContract;
34
56
  withPresets: (user?: AuthUser) => WeakDbClientContract;
57
+ policy: any;
58
+ modelMeta: any;
35
59
  zodSchemas: any;
36
60
  }>;
37
61
  /**
package/schema.js CHANGED
@@ -35,22 +35,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.loadZModelAndDmmf = exports.loadSchema = exports.loadSchemaFromFile = exports.getWorkspaceNpmCacheFolder = exports.getWorkspaceRoot = exports.run = void 0;
39
- const internals_1 = require("@prisma/internals");
38
+ exports.loadZModelAndDmmf = exports.loadSchema = exports.loadSchemaFromFile = exports.getWorkspaceNpmCacheFolder = exports.getWorkspaceRoot = exports.run = exports.FILE_SPLITTER = void 0;
40
39
  const runtime_1 = require("@zenstackhq/runtime");
40
+ const sdk_1 = require("@zenstackhq/sdk");
41
41
  const child_process_1 = require("child_process");
42
42
  const fs = __importStar(require("fs"));
43
+ const json5_1 = __importDefault(require("json5"));
43
44
  const path = __importStar(require("path"));
44
45
  const tmp_1 = __importDefault(require("tmp"));
45
46
  const cli_util_1 = require("zenstack/cli/cli-util");
46
47
  const prisma_1 = __importDefault(require("zenstack/plugins/prisma"));
48
+ /**
49
+ * Use it to represent multiple files in a single string like this
50
+ `schema.zmodel
51
+ import "user"
52
+ ${FILE_SPLITTER}user.zmodel
53
+ import "schema"
54
+ model User {
55
+ ...
56
+ }`
57
+ */
58
+ exports.FILE_SPLITTER = '#FILE_SPLITTER#';
47
59
  function run(cmd, env, cwd) {
60
+ const start = Date.now();
48
61
  (0, child_process_1.execSync)(cmd, {
49
62
  stdio: 'pipe',
50
63
  encoding: 'utf-8',
51
64
  env: Object.assign(Object.assign(Object.assign({}, process.env), { DO_NOT_TRACK: '1' }), env),
52
65
  cwd,
53
66
  });
67
+ console.log('Execution took', Date.now() - start, 'ms', '-', cmd);
54
68
  }
55
69
  exports.run = run;
56
70
  function normalizePath(p) {
@@ -85,71 +99,152 @@ generator js {
85
99
  previewFeatures = ['clientExtensions']
86
100
  }
87
101
 
88
- plugin meta {
89
- provider = '@core/model-meta'
90
- output = '.zenstack'
102
+ plugin zod {
103
+ provider = '@core/zod'
104
+ modelOnly = true
105
+ }
106
+ `;
107
+ const MODEL_PRELUDE_FULL_ZOD = `
108
+ datasource db {
109
+ provider = 'sqlite'
110
+ url = 'file:./test.db'
91
111
  }
92
112
 
93
- plugin policy {
94
- provider = '@core/access-policy'
95
- output = '.zenstack'
113
+ generator js {
114
+ provider = 'prisma-client-js'
115
+ previewFeatures = ['clientExtensions']
96
116
  }
97
117
 
98
118
  plugin zod {
99
119
  provider = '@core/zod'
100
- output = '.zenstack/zod'
120
+ modelOnly = false
101
121
  }
102
122
  `;
103
- function loadSchemaFromFile(schemaFile, addPrelude = true, pushDb = true) {
123
+ const defaultOptions = {
124
+ addPrelude: true,
125
+ pushDb: true,
126
+ fullZod: false,
127
+ extraDependencies: [],
128
+ compile: false,
129
+ logPrismaQuery: false,
130
+ };
131
+ function loadSchemaFromFile(schemaFile, options) {
104
132
  return __awaiter(this, void 0, void 0, function* () {
105
133
  const content = fs.readFileSync(schemaFile, { encoding: 'utf-8' });
106
- return loadSchema(content, addPrelude, pushDb);
134
+ return loadSchema(content, options);
107
135
  });
108
136
  }
109
137
  exports.loadSchemaFromFile = loadSchemaFromFile;
110
- function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies = [], compile = false) {
138
+ function loadSchema(schema, options) {
139
+ var _a;
111
140
  return __awaiter(this, void 0, void 0, function* () {
112
- const { name: projectRoot } = tmp_1.default.dirSync();
141
+ const opt = Object.assign(Object.assign({}, defaultOptions), options);
142
+ const { name: projectRoot } = tmp_1.default.dirSync({ unsafeCleanup: true });
113
143
  const root = getWorkspaceRoot(__dirname);
114
144
  if (!root) {
115
145
  throw new Error('Could not find workspace root');
116
146
  }
117
- console.log('Workspace root:', root);
118
147
  const pkgContent = fs.readFileSync(path.join(__dirname, 'package.template.json'), { encoding: 'utf-8' });
119
148
  fs.writeFileSync(path.join(projectRoot, 'package.json'), pkgContent.replaceAll('<root>', root));
120
149
  const npmrcContent = fs.readFileSync(path.join(__dirname, '.npmrc.template'), { encoding: 'utf-8' });
121
150
  fs.writeFileSync(path.join(projectRoot, '.npmrc'), npmrcContent.replaceAll('<root>', root));
122
151
  console.log('Workdir:', projectRoot);
123
152
  process.chdir(projectRoot);
124
- schema = schema.replaceAll('$projectRoot', projectRoot);
125
- const content = addPrelude ? `${MODEL_PRELUDE}\n${schema}` : schema;
126
- fs.writeFileSync('schema.zmodel', content);
153
+ let zmodelPath = path.join(projectRoot, 'schema.zmodel');
154
+ const files = schema.split(exports.FILE_SPLITTER);
155
+ if (files.length > 1) {
156
+ // multiple files
157
+ files.forEach((file, index) => {
158
+ //first line is the file name
159
+ const firstLine = file.indexOf('\n');
160
+ const fileName = file.substring(0, firstLine).trim();
161
+ let fileContent = file.substring(firstLine + 1);
162
+ if (index === 0) {
163
+ // The first file is the main schema file
164
+ zmodelPath = path.join(projectRoot, fileName);
165
+ if (opt.addPrelude) {
166
+ // plugin need to be added after import statement
167
+ fileContent = `${fileContent}\n${opt.fullZod ? MODEL_PRELUDE_FULL_ZOD : MODEL_PRELUDE}`;
168
+ }
169
+ }
170
+ fileContent = fileContent.replaceAll('$projectRoot', projectRoot);
171
+ const filePath = path.join(projectRoot, fileName);
172
+ fs.writeFileSync(filePath, fileContent);
173
+ });
174
+ }
175
+ else {
176
+ schema = schema.replaceAll('$projectRoot', projectRoot);
177
+ const content = opt.addPrelude ? `${opt.fullZod ? MODEL_PRELUDE_FULL_ZOD : MODEL_PRELUDE}\n${schema}` : schema;
178
+ if (opt.customSchemaFilePath) {
179
+ zmodelPath = path.join(projectRoot, opt.customSchemaFilePath);
180
+ fs.mkdirSync(path.dirname(zmodelPath), { recursive: true });
181
+ fs.writeFileSync(zmodelPath, content);
182
+ }
183
+ else {
184
+ fs.writeFileSync('schema.zmodel', content);
185
+ }
186
+ }
127
187
  run('npm install');
128
- run('npx zenstack generate --no-dependency-check', { NODE_PATH: './node_modules' });
129
- if (pushDb) {
188
+ if (opt.customSchemaFilePath) {
189
+ run(`npx zenstack generate --schema ${zmodelPath} --no-dependency-check`, {
190
+ NODE_PATH: './node_modules',
191
+ });
192
+ }
193
+ else {
194
+ run('npx zenstack generate --no-dependency-check', { NODE_PATH: './node_modules' });
195
+ }
196
+ if (opt.pushDb) {
130
197
  run('npx prisma db push');
131
198
  }
132
199
  const PrismaClient = require(path.join(projectRoot, 'node_modules/.prisma/client')).PrismaClient;
133
200
  const prisma = new PrismaClient({ log: ['info', 'warn', 'error'] });
134
- extraDependencies.forEach((dep) => {
201
+ (_a = opt.extraDependencies) === null || _a === void 0 ? void 0 : _a.forEach((dep) => {
135
202
  console.log(`Installing dependency ${dep}`);
136
203
  run(`npm install ${dep}`);
137
204
  });
138
- if (compile) {
205
+ if (opt.compile) {
139
206
  console.log('Compiling...');
140
207
  run('npx tsc --init');
208
+ // add genetated '.zenstack/zod' folder to typescript's search path,
209
+ // so that it can be resolved from symbolic-linked files
210
+ const tsconfig = json5_1.default.parse(fs.readFileSync(path.join(projectRoot, './tsconfig.json'), 'utf-8'));
211
+ tsconfig.compilerOptions.paths = {
212
+ '.zenstack/zod/input': ['./node_modules/.zenstack/zod/input/index.d.ts'],
213
+ };
214
+ fs.writeFileSync(path.join(projectRoot, './tsconfig.json'), JSON.stringify(tsconfig, null, 2));
141
215
  run('npx tsc --project tsconfig.json');
142
216
  }
143
- const policy = require(path.join(projectRoot, '.zenstack/policy')).default;
144
- const modelMeta = require(path.join(projectRoot, '.zenstack/model-meta')).default;
145
- const zodSchemas = require(path.join(projectRoot, '.zenstack/zod')).default;
217
+ let policy;
218
+ let modelMeta;
219
+ let zodSchemas;
220
+ const outputPath = path.join(projectRoot, 'node_modules');
221
+ try {
222
+ policy = require(path.join(outputPath, '.zenstack/policy')).default;
223
+ }
224
+ catch (_b) {
225
+ /* noop */
226
+ }
227
+ try {
228
+ modelMeta = require(path.join(outputPath, '.zenstack/model-meta')).default;
229
+ }
230
+ catch (_c) {
231
+ /* noop */
232
+ }
233
+ try {
234
+ zodSchemas = require(path.join(outputPath, '.zenstack/zod'));
235
+ }
236
+ catch (_d) {
237
+ /* noop */
238
+ }
146
239
  return {
147
240
  projectDir: projectRoot,
148
241
  prisma,
149
- withPolicy: (user) => (0, runtime_1.withPolicy)(prisma, { user }, policy, modelMeta),
150
- withOmit: () => (0, runtime_1.withOmit)(prisma, modelMeta),
151
- withPassword: () => (0, runtime_1.withPassword)(prisma, modelMeta),
152
- withPresets: (user) => (0, runtime_1.withPresets)(prisma, { user }, policy, modelMeta),
242
+ withPolicy: (user) => (0, runtime_1.withPolicy)(prisma, { user }, { policy, modelMeta, zodSchemas, logPrismaQuery: opt.logPrismaQuery }),
243
+ withOmit: () => (0, runtime_1.withOmit)(prisma, { modelMeta }),
244
+ withPassword: () => (0, runtime_1.withPassword)(prisma, { modelMeta }),
245
+ withPresets: (user) => (0, runtime_1.withPresets)(prisma, { user }, { policy, modelMeta, zodSchemas, logPrismaQuery: opt.logPrismaQuery }),
246
+ policy,
247
+ modelMeta,
153
248
  zodSchemas,
154
249
  };
155
250
  });
@@ -172,9 +267,9 @@ function loadZModelAndDmmf(content) {
172
267
  fs.writeFileSync(modelFile, `${prelude}\n${content}`);
173
268
  const model = yield (0, cli_util_1.loadDocument)(modelFile);
174
269
  const { name: prismaFile } = tmp_1.default.fileSync({ postfix: '.prisma' });
175
- yield (0, prisma_1.default)(model, { schemaPath: modelFile, output: prismaFile, generateClient: false });
270
+ yield (0, prisma_1.default)(model, { schemaPath: modelFile, name: 'Prisma', output: prismaFile, generateClient: false });
176
271
  const prismaContent = fs.readFileSync(prismaFile, { encoding: 'utf-8' });
177
- const dmmf = yield (0, internals_1.getDMMF)({ datamodel: prismaContent });
272
+ const dmmf = yield (0, sdk_1.getDMMF)({ datamodel: prismaContent });
178
273
  return { model, dmmf, modelFile };
179
274
  });
180
275
  }
package/schema.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,iDAAwH;AACxH,yCAA0C;AAC1C,iDAAyC;AACzC,uCAAyB;AACzB,kDAAyB;AACzB,2CAA6B;AAC7B,8CAAsB;AACtB,oDAAqD;AACrD,qEAAmD;AAEnD;;;;;;;;;EASE;AACW,QAAA,aAAa,GAAG,iBAAiB,CAAC;AAgB/C,SAAgB,GAAG,CAAC,GAAW,EAAE,GAA4B,EAAE,GAAY;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAA,wBAAQ,EAAC,GAAG,EAAE;QACV,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,OAAO;QACjB,GAAG,gDAAO,OAAO,CAAC,GAAG,KAAE,YAAY,EAAE,GAAG,KAAK,GAAG,CAAE;QAClD,GAAG;KACN,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtE,CAAC;AATD,kBASC;AAED,SAAS,aAAa,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAa;IAC1C,IAAI,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;QACzB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE;YACvD,OAAO,IAAI,CAAC;SACf;aAAM;YACH,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5C;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAVD,4CAUC;AAED,SAAgB,0BAA0B,CAAC,KAAa;IACpD,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;AAC/D,CAAC;AAHD,gEAGC;AAED,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;CAerB,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;CAe9B,CAAC;AAYF,MAAM,cAAc,GAAsB;IACtC,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,KAAK;IACd,iBAAiB,EAAE,EAAE;IACrB,OAAO,EAAE,KAAK;IACd,cAAc,EAAE,KAAK;CACxB,CAAC;AAEF,SAAsB,kBAAkB,CAAC,UAAkB,EAAE,OAA2B;;QACpF,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACnE,OAAO,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;CAAA;AAHD,gDAGC;AAED,SAAsB,UAAU,CAAC,MAAc,EAAE,OAA2B;;;QACxE,MAAM,GAAG,mCAAQ,cAAc,GAAK,OAAO,CAAE,CAAC;QAE9C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,aAAG,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnE,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACpD;QAED,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACzG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAEhG,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACrG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5F,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE3B,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAEzD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAa,CAAC,CAAC;QAE1C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,iBAAiB;YACjB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC1B,6BAA6B;gBAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrD,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBAChD,IAAI,KAAK,KAAK,CAAC,EAAE;oBACb,yCAAyC;oBACzC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;oBAC9C,IAAI,GAAG,CAAC,UAAU,EAAE;wBAChB,iDAAiD;wBACjD,WAAW,GAAG,GAAG,WAAW,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;qBAC3F;iBACJ;gBAED,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;gBAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAClD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;SACN;aAAM;YACH,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/G,IAAI,GAAG,CAAC,oBAAoB,EAAE;gBAC1B,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAC9D,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;aACzC;iBAAM;gBACH,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;aAC9C;SACJ;QAED,GAAG,CAAC,aAAa,CAAC,CAAC;QAEnB,IAAI,GAAG,CAAC,oBAAoB,EAAE;YAC1B,GAAG,CAAC,kCAAkC,UAAU,wBAAwB,EAAE;gBACtE,SAAS,EAAE,gBAAgB;aAC9B,CAAC,CAAC;SACN;aAAM;YACH,GAAG,CAAC,6CAA6C,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;SACvF;QAED,IAAI,GAAG,CAAC,MAAM,EAAE;YACZ,GAAG,CAAC,oBAAoB,CAAC,CAAC;SAC7B;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC,CAAC,YAAY,CAAC;QACjG,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAEpE,MAAA,GAAG,CAAC,iBAAiB,0CAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnC,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;YAC5C,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,OAAO,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAEtB,oEAAoE;YACpE,wDAAwD;YACxD,MAAM,QAAQ,GAAG,eAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACjG,QAAQ,CAAC,eAAe,CAAC,KAAK,GAAG;gBAC7B,qBAAqB,EAAE,CAAC,+CAA+C,CAAC;aAC3E,CAAC;YACF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/F,GAAG,CAAC,iCAAiC,CAAC,CAAC;SAC1C;QAED,IAAI,MAAW,CAAC;QAChB,IAAI,SAAc,CAAC;QACnB,IAAI,UAAe,CAAC;QAEpB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAE1D,IAAI;YACA,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;SACvE;QAAC,WAAM;YACJ,UAAU;SACb;QACD,IAAI;YACA,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC;SAC9E;QAAC,WAAM;YACJ,UAAU;SACb;QACD,IAAI;YACA,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;SAChE;QAAC,WAAM;YACJ,UAAU;SACb;QAED,OAAO;YACH,UAAU,EAAE,WAAW;YACvB,MAAM;YACN,UAAU,EAAE,CAAC,IAAe,EAAE,EAAE,CAC5B,IAAA,oBAAU,EACN,MAAM,EACN,EAAE,IAAI,EAAE,EACR,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CACxE;YACL,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,kBAAQ,EAAuB,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC;YACrE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,sBAAY,EAAuB,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC;YAC7E,WAAW,EAAE,CAAC,IAAe,EAAE,EAAE,CAC7B,IAAA,qBAAW,EACP,MAAM,EACN,EAAE,IAAI,EAAE,EACR,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CACxE;YACL,MAAM;YACN,SAAS;YACT,UAAU;SACb,CAAC;;CACL;AAvID,gCAuIC;AAED;;;;GAIG;AACH,SAAsB,iBAAiB,CACnC,OAAe;;QAEf,MAAM,OAAO,GAAG;;;;;CAKnB,CAAC;QAEE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,aAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,MAAM,IAAA,uBAAY,EAAC,SAAS,CAAC,CAAC;QAE5C,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,aAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAClE,MAAM,IAAA,gBAAY,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhH,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAEzE,MAAM,IAAI,GAAG,MAAM,IAAA,aAAO,EAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;CAAA;AAtBD,8CAsBC"}