@zenstackhq/testtools 1.0.0-beta.2 → 1.0.0-beta.20

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/db.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function createPostgresDb(db: string): Promise<string>;
2
+ export declare function dropPostgresDb(db: string): Promise<void>;
package/db.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.dropPostgresDb = exports.createPostgresDb = void 0;
13
+ const pg_1 = require("pg");
14
+ const USERNAME = 'postgres';
15
+ const PASSWORD = 'abc123';
16
+ function createPostgresDb(db) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ const pool = new pg_1.Pool({ user: USERNAME, password: PASSWORD });
19
+ yield pool.query(`DROP DATABASE IF EXISTS "${db}";`);
20
+ yield pool.query(`CREATE DATABASE "${db}";`);
21
+ return `postgresql://${USERNAME}:${PASSWORD}@localhost:5432/${db}`;
22
+ });
23
+ }
24
+ exports.createPostgresDb = createPostgresDb;
25
+ function dropPostgresDb(db) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const pool = new pg_1.Pool({ user: USERNAME, password: PASSWORD });
28
+ yield pool.query(`DROP DATABASE IF EXISTS "${db}";`);
29
+ });
30
+ }
31
+ exports.dropPostgresDb = dropPostgresDb;
32
+ //# sourceMappingURL=db.js.map
package/db.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2BAA0B;AAE1B,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC;AAE1B,SAAsB,gBAAgB,CAAC,EAAU;;QAC7C,MAAM,IAAI,GAAG,IAAI,SAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAC7C,OAAO,gBAAgB,QAAQ,IAAI,QAAQ,mBAAmB,EAAE,EAAE,CAAC;IACvE,CAAC;CAAA;AALD,4CAKC;AAED,SAAsB,cAAc,CAAC,EAAU;;QAC3C,MAAM,IAAI,GAAG,IAAI,SAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;CAAA;AAHD,wCAGC"}
package/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './schema';
2
+ export * from './db';
package/index.js CHANGED
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./schema"), exports);
18
+ __exportStar(require("./db"), exports);
18
19
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,uCAAqB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenstackhq/testtools",
3
- "version": "1.0.0-beta.2",
3
+ "version": "1.0.0-beta.20",
4
4
  "description": "ZenStack Test Tools",
5
5
  "main": "index.js",
6
6
  "publishConfig": {
@@ -11,17 +11,18 @@
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",
16
+ "pg": "^8.11.1",
18
17
  "tmp": "^0.2.1",
19
- "@zenstackhq/language": "1.0.0-beta.2",
20
- "@zenstackhq/runtime": "1.0.0-beta.2",
21
- "zenstack": "1.0.0-beta.2"
18
+ "@zenstackhq/runtime": "1.0.0-beta.20",
19
+ "@zenstackhq/language": "1.0.0-beta.20",
20
+ "@zenstackhq/sdk": "1.0.0-beta.20",
21
+ "zenstack": "1.0.0-beta.20"
22
22
  },
23
23
  "devDependencies": {
24
- "@types/node": "^18.14.2",
24
+ "@types/node": "^18.0.0",
25
+ "@types/pg": "^8.10.2",
25
26
  "@types/tmp": "^0.2.3",
26
27
  "copyfiles": "^2.4.1",
27
28
  "rimraf": "^3.0.2",
@@ -30,7 +31,7 @@
30
31
  "scripts": {
31
32
  "clean": "rimraf dist",
32
33
  "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",
34
+ "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
35
  "watch": "tsc --watch"
35
36
  }
36
37
  }
@@ -7,12 +7,12 @@
7
7
  "author": "",
8
8
  "license": "ISC",
9
9
  "dependencies": {
10
- "@prisma/client": "^4.0.0",
10
+ "@prisma/client": "^4.8.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
- "prisma": "^4.0.0",
15
+ "prisma": "^4.8.0",
16
16
  "typescript": "^4.9.3",
17
17
  "zenstack": "file:<root>/packages/schema/dist",
18
18
  "zod": "3.21.1"
package/schema.d.ts CHANGED
@@ -27,24 +27,36 @@ export type WeakDbClientContract = Record<string, WeakDbOperations> & {
27
27
  export declare function run(cmd: string, env?: Record<string, string>, cwd?: string): void;
28
28
  export declare function getWorkspaceRoot(start: string): string | undefined;
29
29
  export declare function getWorkspaceNpmCacheFolder(start: string): string;
30
- export declare function loadSchemaFromFile(schemaFile: string, addPrelude?: boolean, pushDb?: boolean, logPrismaQuery?: 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
+ provider?: 'sqlite' | 'postgresql';
39
+ dbUrl?: string;
40
+ pulseApiKey?: string;
41
+ };
42
+ export declare function loadSchemaFromFile(schemaFile: string, options?: SchemaLoadOptions): Promise<{
31
43
  projectDir: string;
32
44
  prisma: any;
33
45
  withPolicy: (user?: AuthUser | undefined) => WeakDbClientContract;
34
46
  withOmit: () => WeakDbClientContract;
35
47
  withPassword: () => WeakDbClientContract;
36
- withPresets: (user?: AuthUser | undefined) => WeakDbClientContract;
48
+ enhance: (user?: AuthUser | undefined) => WeakDbClientContract;
37
49
  policy: any;
38
50
  modelMeta: any;
39
51
  zodSchemas: any;
40
52
  }>;
41
- export declare function loadSchema(schema: string, addPrelude?: boolean, pushDb?: boolean, extraDependencies?: string[], compile?: boolean, customSchemaFilePath?: string, logPrismaQuery?: boolean): Promise<{
53
+ export declare function loadSchema(schema: string, options?: SchemaLoadOptions): Promise<{
42
54
  projectDir: string;
43
55
  prisma: any;
44
56
  withPolicy: (user?: AuthUser) => WeakDbClientContract;
45
57
  withOmit: () => WeakDbClientContract;
46
58
  withPassword: () => WeakDbClientContract;
47
- withPresets: (user?: AuthUser) => WeakDbClientContract;
59
+ enhance: (user?: AuthUser) => WeakDbClientContract;
48
60
  policy: any;
49
61
  modelMeta: any;
50
62
  zodSchemas: any;
package/schema.js CHANGED
@@ -36,10 +36,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.loadZModelAndDmmf = exports.loadSchema = exports.loadSchemaFromFile = exports.getWorkspaceNpmCacheFolder = exports.getWorkspaceRoot = exports.run = exports.FILE_SPLITTER = void 0;
39
- const internals_1 = require("@prisma/internals");
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");
@@ -56,12 +57,14 @@ const prisma_1 = __importDefault(require("zenstack/plugins/prisma"));
56
57
  */
57
58
  exports.FILE_SPLITTER = '#FILE_SPLITTER#';
58
59
  function run(cmd, env, cwd) {
60
+ const start = Date.now();
59
61
  (0, child_process_1.execSync)(cmd, {
60
62
  stdio: 'pipe',
61
63
  encoding: 'utf-8',
62
64
  env: Object.assign(Object.assign(Object.assign({}, process.env), { DO_NOT_TRACK: '1' }), env),
63
65
  cwd,
64
66
  });
67
+ console.log('Execution took', Date.now() - start, 'ms', '-', cmd);
65
68
  }
66
69
  exports.run = run;
67
70
  function normalizePath(p) {
@@ -85,10 +88,11 @@ function getWorkspaceNpmCacheFolder(start) {
85
88
  return root ? path.join(root, '.npmcache') : './.npmcache';
86
89
  }
87
90
  exports.getWorkspaceNpmCacheFolder = getWorkspaceNpmCacheFolder;
88
- const MODEL_PRELUDE = `
91
+ function makePrelude(options) {
92
+ return `
89
93
  datasource db {
90
- provider = 'sqlite'
91
- url = 'file:./test.db'
94
+ provider = '${options.provider}'
95
+ url = '${options.dbUrl}'
92
96
  }
93
97
 
94
98
  generator js {
@@ -96,30 +100,33 @@ generator js {
96
100
  previewFeatures = ['clientExtensions']
97
101
  }
98
102
 
99
- plugin meta {
100
- provider = '@core/model-meta'
101
- output = '.zenstack'
102
- }
103
-
104
- plugin policy {
105
- provider = '@core/access-policy'
106
- output = '.zenstack'
107
- }
108
-
109
103
  plugin zod {
110
104
  provider = '@core/zod'
111
- output = '.zenstack/zod'
105
+ modelOnly = ${!options.fullZod}
112
106
  }
113
107
  `;
114
- function loadSchemaFromFile(schemaFile, addPrelude = true, pushDb = true, logPrismaQuery = false) {
108
+ }
109
+ const defaultOptions = {
110
+ addPrelude: true,
111
+ pushDb: true,
112
+ fullZod: false,
113
+ extraDependencies: [],
114
+ compile: false,
115
+ logPrismaQuery: false,
116
+ provider: 'sqlite',
117
+ dbUrl: 'file:./test.db',
118
+ };
119
+ function loadSchemaFromFile(schemaFile, options) {
115
120
  return __awaiter(this, void 0, void 0, function* () {
116
121
  const content = fs.readFileSync(schemaFile, { encoding: 'utf-8' });
117
- return loadSchema(content, addPrelude, pushDb, [], false, undefined, logPrismaQuery);
122
+ return loadSchema(content, options);
118
123
  });
119
124
  }
120
125
  exports.loadSchemaFromFile = loadSchemaFromFile;
121
- function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies = [], compile = false, customSchemaFilePath, logPrismaQuery = false) {
126
+ function loadSchema(schema, options) {
127
+ var _a, _b;
122
128
  return __awaiter(this, void 0, void 0, function* () {
129
+ const opt = Object.assign(Object.assign({}, defaultOptions), options);
123
130
  const { name: projectRoot } = tmp_1.default.dirSync({ unsafeCleanup: true });
124
131
  const root = getWorkspaceRoot(__dirname);
125
132
  if (!root) {
@@ -143,9 +150,9 @@ function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies
143
150
  if (index === 0) {
144
151
  // The first file is the main schema file
145
152
  zmodelPath = path.join(projectRoot, fileName);
146
- if (addPrelude) {
153
+ if (opt.addPrelude) {
147
154
  // plugin need to be added after import statement
148
- fileContent = `${fileContent}\n${MODEL_PRELUDE}`;
155
+ fileContent = `${fileContent}\n${makePrelude(opt)}`;
149
156
  }
150
157
  }
151
158
  fileContent = fileContent.replaceAll('$projectRoot', projectRoot);
@@ -155,9 +162,9 @@ function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies
155
162
  }
156
163
  else {
157
164
  schema = schema.replaceAll('$projectRoot', projectRoot);
158
- const content = addPrelude ? `${MODEL_PRELUDE}\n${schema}` : schema;
159
- if (customSchemaFilePath) {
160
- zmodelPath = path.join(projectRoot, customSchemaFilePath);
165
+ const content = opt.addPrelude ? `${makePrelude(opt)}\n${schema}` : schema;
166
+ if (opt.customSchemaFilePath) {
167
+ zmodelPath = path.join(projectRoot, opt.customSchemaFilePath);
161
168
  fs.mkdirSync(path.dirname(zmodelPath), { recursive: true });
162
169
  fs.writeFileSync(zmodelPath, content);
163
170
  }
@@ -166,7 +173,7 @@ function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies
166
173
  }
167
174
  }
168
175
  run('npm install');
169
- if (customSchemaFilePath) {
176
+ if (opt.customSchemaFilePath) {
170
177
  run(`npx zenstack generate --schema ${zmodelPath} --no-dependency-check`, {
171
178
  NODE_PATH: './node_modules',
172
179
  });
@@ -174,30 +181,63 @@ function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies
174
181
  else {
175
182
  run('npx zenstack generate --no-dependency-check', { NODE_PATH: './node_modules' });
176
183
  }
177
- if (pushDb) {
184
+ if (opt.pushDb) {
178
185
  run('npx prisma db push');
179
186
  }
180
- const PrismaClient = require(path.join(projectRoot, 'node_modules/.prisma/client')).PrismaClient;
181
- const prisma = new PrismaClient({ log: ['info', 'warn', 'error'] });
182
- extraDependencies.forEach((dep) => {
187
+ if (opt.pulseApiKey) {
188
+ (_a = opt.extraDependencies) === null || _a === void 0 ? void 0 : _a.push('@prisma/extension-pulse');
189
+ }
190
+ (_b = opt.extraDependencies) === null || _b === void 0 ? void 0 : _b.forEach((dep) => {
183
191
  console.log(`Installing dependency ${dep}`);
184
192
  run(`npm install ${dep}`);
185
193
  });
186
- if (compile) {
194
+ const PrismaClient = require(path.join(projectRoot, 'node_modules/.prisma/client')).PrismaClient;
195
+ let prisma = new PrismaClient({ log: ['info', 'warn', 'error'] });
196
+ if (opt.pulseApiKey) {
197
+ const withPulse = require(path.join(projectRoot, 'node_modules/@prisma/extension-pulse/dist/cjs')).withPulse;
198
+ prisma = prisma.$extends(withPulse({ apiKey: opt.pulseApiKey }));
199
+ }
200
+ if (opt.compile) {
187
201
  console.log('Compiling...');
188
202
  run('npx tsc --init');
203
+ // add generated '.zenstack/zod' folder to typescript's search path,
204
+ // so that it can be resolved from symbolic-linked files
205
+ const tsconfig = json5_1.default.parse(fs.readFileSync(path.join(projectRoot, './tsconfig.json'), 'utf-8'));
206
+ tsconfig.compilerOptions.paths = {
207
+ '.zenstack/zod/input': ['./node_modules/.zenstack/zod/input/index.d.ts'],
208
+ };
209
+ fs.writeFileSync(path.join(projectRoot, './tsconfig.json'), JSON.stringify(tsconfig, null, 2));
189
210
  run('npx tsc --project tsconfig.json');
190
211
  }
191
- const policy = require(path.join(path.dirname(zmodelPath), '.zenstack/policy')).default;
192
- const modelMeta = require(path.join(path.dirname(zmodelPath), '.zenstack/model-meta')).default;
193
- const zodSchemas = require(path.join(path.dirname(zmodelPath), '.zenstack/zod'));
212
+ let policy;
213
+ let modelMeta;
214
+ let zodSchemas;
215
+ const outputPath = path.join(projectRoot, 'node_modules');
216
+ try {
217
+ policy = require(path.join(outputPath, '.zenstack/policy')).default;
218
+ }
219
+ catch (_c) {
220
+ /* noop */
221
+ }
222
+ try {
223
+ modelMeta = require(path.join(outputPath, '.zenstack/model-meta')).default;
224
+ }
225
+ catch (_d) {
226
+ /* noop */
227
+ }
228
+ try {
229
+ zodSchemas = require(path.join(outputPath, '.zenstack/zod'));
230
+ }
231
+ catch (_e) {
232
+ /* noop */
233
+ }
194
234
  return {
195
235
  projectDir: projectRoot,
196
236
  prisma,
197
- withPolicy: (user) => (0, runtime_1.withPolicy)(prisma, { user }, { policy, modelMeta, logPrismaQuery }),
237
+ withPolicy: (user) => (0, runtime_1.withPolicy)(prisma, { user }, { policy, modelMeta, zodSchemas, logPrismaQuery: opt.logPrismaQuery }),
198
238
  withOmit: () => (0, runtime_1.withOmit)(prisma, { modelMeta }),
199
239
  withPassword: () => (0, runtime_1.withPassword)(prisma, { modelMeta }),
200
- withPresets: (user) => (0, runtime_1.withPresets)(prisma, { user }, { policy, modelMeta, logPrismaQuery }),
240
+ enhance: (user) => (0, runtime_1.enhance)(prisma, { user }, { policy, modelMeta, zodSchemas, logPrismaQuery: opt.logPrismaQuery }),
201
241
  policy,
202
242
  modelMeta,
203
243
  zodSchemas,
@@ -224,7 +264,7 @@ function loadZModelAndDmmf(content) {
224
264
  const { name: prismaFile } = tmp_1.default.fileSync({ postfix: '.prisma' });
225
265
  yield (0, prisma_1.default)(model, { schemaPath: modelFile, name: 'Prisma', output: prismaFile, generateClient: false });
226
266
  const prismaContent = fs.readFileSync(prismaFile, { encoding: 'utf-8' });
227
- const dmmf = yield (0, internals_1.getDMMF)({ datamodel: prismaContent });
267
+ const dmmf = yield (0, sdk_1.getDMMF)({ datamodel: prismaContent });
228
268
  return { model, dmmf, modelFile };
229
269
  });
230
270
  }
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,iDAAoH;AACpH,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,SAAS,WAAW,CAAC,OAA0B;IAC3C,OAAO;;kBAEO,OAAO,CAAC,QAAQ;aACrB,OAAO,CAAC,KAAK;;;;;;;;;;kBAUR,CAAC,OAAO,CAAC,OAAO;;CAEjC,CAAC;AACF,CAAC;AAeD,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;IACrB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,gBAAgB;CAC1B,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,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;qBACvD;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,WAAW,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAC3E,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,IAAI,GAAG,CAAC,WAAW,EAAE;YACjB,MAAA,GAAG,CAAC,iBAAiB,0CAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;SAC1D;QAED,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,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC,CAAC,YAAY,CAAC;QACjG,IAAI,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAElE,IAAI,GAAG,CAAC,WAAW,EAAE;YACjB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,+CAA+C,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7G,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SACpE;QAED,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,OAAO,EAAE,CAAC,IAAe,EAAE,EAAE,CACzB,IAAA,iBAAO,EACH,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;AAhJD,gCAgJC;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"}