@vercel/remix-builder 2.0.2 → 2.0.4

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 +0,0 @@
1
- {"version":3,"file":"hydrogen.js","sourceRoot":"","sources":["../src/hydrogen.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export declare const version = 2;
2
- export * from './build';
3
- export * from './prepare-cache';
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAa,QAAA,OAAO,GAAG,CAAC,CAAC;AACzB,0CAAwB;AACxB,kDAAgC"}
@@ -1,2 +0,0 @@
1
- import type { PrepareCache } from '@vercel/build-utils';
2
- export declare const prepareCache: PrepareCache;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.prepareCache = void 0;
4
- const build_utils_1 = require("@vercel/build-utils");
5
- const path_1 = require("path");
6
- const utils_1 = require("./utils");
7
- const prepareCache = async ({ entrypoint, repoRootPath, workPath, }) => {
8
- const root = repoRootPath || workPath;
9
- const mountpoint = (0, path_1.dirname)(entrypoint);
10
- const entrypointFsDirname = (0, path_1.join)(workPath, mountpoint);
11
- const packageJsonPath = (0, path_1.join)(entrypointFsDirname, 'package.json');
12
- const remixRunDevPath = (0, path_1.dirname)(utils_1._require.resolve('@remix-run/dev/package.json', {
13
- paths: [entrypointFsDirname],
14
- }));
15
- const remixConfig = await (0, utils_1.chdirAndReadConfig)(remixRunDevPath, entrypointFsDirname, packageJsonPath);
16
- const [nodeModulesFiles, cacheDirFiles] = await Promise.all([
17
- // Cache `node_modules`
18
- (0, build_utils_1.glob)('**/node_modules/**', root),
19
- // Cache the Remix "cacheDirectory" (typically `.cache`)
20
- (0, build_utils_1.glob)((0, path_1.relative)(root, (0, path_1.join)(remixConfig.cacheDirectory, '**')), root),
21
- ]);
22
- return { ...nodeModulesFiles, ...cacheDirFiles };
23
- };
24
- exports.prepareCache = prepareCache;
25
- //# sourceMappingURL=prepare-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepare-cache.js","sourceRoot":"","sources":["../src/prepare-cache.ts"],"names":[],"mappings":";;;AAAA,qDAA2C;AAC3C,+BAA+C;AAC/C,mCAAuD;AAGhD,MAAM,YAAY,GAAiB,KAAK,EAAE,EAC/C,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,YAAY,IAAI,QAAQ,CAAC;IACtC,MAAM,UAAU,GAAG,IAAA,cAAO,EAAC,UAAU,CAAC,CAAC;IACvC,MAAM,mBAAmB,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,IAAA,cAAO,EAC7B,gBAAQ,CAAC,OAAO,CAAC,6BAA6B,EAAE;QAC9C,KAAK,EAAE,CAAC,mBAAmB,CAAC;KAC7B,CAAC,CACH,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,IAAA,0BAAkB,EAC1C,eAAe,EACf,mBAAmB,EACnB,eAAe,CAChB,CAAC;IACF,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1D,uBAAuB;QACvB,IAAA,kBAAI,EAAC,oBAAoB,EAAE,IAAI,CAAC;QAEhC,wDAAwD;QACxD,IAAA,kBAAI,EAAC,IAAA,eAAQ,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;KACnE,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,gBAAgB,EAAE,GAAG,aAAa,EAAE,CAAC;AACnD,CAAC,CAAC;AA5BW,QAAA,YAAY,gBA4BvB"}
package/dist/utils.d.ts DELETED
@@ -1,55 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import type { ConfigRoute, RouteManifest } from '@remix-run/dev/dist/config/routes';
4
- import type { RemixConfig } from '@remix-run/dev/dist/config';
5
- import type { BaseFunctionConfig } from '@vercel/static-config';
6
- import type { CliType, SpawnOptionsExtended } from '@vercel/build-utils/dist/fs/run-user-scripts';
7
- export declare const _require: typeof require;
8
- export interface ResolvedNodeRouteConfig {
9
- runtime: 'nodejs';
10
- regions?: string[];
11
- maxDuration?: number;
12
- memory?: number;
13
- }
14
- export interface ResolvedEdgeRouteConfig {
15
- runtime: 'edge';
16
- regions?: BaseFunctionConfig['regions'];
17
- }
18
- export type ResolvedRouteConfig = ResolvedNodeRouteConfig | ResolvedEdgeRouteConfig;
19
- export interface ResolvedRoutePaths {
20
- /**
21
- * The full URL path of the route, as will be shown
22
- * on the Functions tab in the deployment inspector.
23
- */
24
- path: string;
25
- /**
26
- * The full URL path of the route, but with syntax that
27
- * is compatible with the `path-to-regexp` module.
28
- */
29
- rePath: string;
30
- }
31
- export declare function findEntry(dir: string, basename: string): string | undefined;
32
- export declare function findConfig(dir: string, basename: string): string | undefined;
33
- export declare function getResolvedRouteConfig(route: ConfigRoute, routes: RouteManifest, configs: Map<ConfigRoute, BaseFunctionConfig | null>, isHydrogen2: boolean): ResolvedRouteConfig;
34
- export declare function calculateRouteConfigHash(config: ResolvedRouteConfig): string;
35
- export declare function isLayoutRoute(routeId: string, routes: Pick<ConfigRoute, 'id' | 'parentId'>[]): boolean;
36
- export declare function getRouteIterator(route: ConfigRoute, routes: RouteManifest): Generator<ConfigRoute, void, unknown>;
37
- export declare function getPathFromRoute(route: ConfigRoute, routes: RouteManifest): ResolvedRoutePaths;
38
- export declare function getRegExpFromPath(rePath: string): RegExp | false;
39
- /**
40
- * Updates the `dest` process.env object to match the `source` one.
41
- * A function is returned to restore the the `dest` env back to how
42
- * it was originally.
43
- */
44
- export declare function syncEnv(source: NodeJS.ProcessEnv, dest: NodeJS.ProcessEnv): () => any;
45
- export declare function chdirAndReadConfig(remixRunDevPath: string, dir: string, packageJsonPath: string): Promise<RemixConfig>;
46
- export interface AddDependenciesOptions extends SpawnOptionsExtended {
47
- saveDev?: boolean;
48
- }
49
- /**
50
- * Runs `npm i ${name}` / `pnpm i ${name}` / `yarn add ${name}`.
51
- */
52
- export declare function addDependencies(cliType: CliType, names: string[], opts?: AddDependenciesOptions): Promise<void>;
53
- export declare function resolveSemverMinMax(min: string, max: string, version: string): string;
54
- export declare function ensureResolvable(start: string, base: string, pkgName: string): Promise<string>;
55
- export declare function isESM(path: string): boolean;
package/dist/utils.js DELETED
@@ -1,349 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- var _a;
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.isESM = exports.ensureResolvable = exports.resolveSemverMinMax = exports.addDependencies = exports.chdirAndReadConfig = exports.syncEnv = exports.getRegExpFromPath = exports.getPathFromRoute = exports.getRouteIterator = exports.isLayoutRoute = exports.calculateRouteConfigHash = exports.getResolvedRouteConfig = exports.findConfig = exports.findEntry = exports._require = void 0;
31
- const semver_1 = __importDefault(require("semver"));
32
- const child_process_1 = require("child_process");
33
- const fs_1 = require("fs");
34
- const path_1 = require("path");
35
- const path_to_regexp_1 = require("path-to-regexp");
36
- const build_utils_1 = require("@vercel/build-utils");
37
- const build_utils_2 = require("@vercel/build-utils");
38
- exports._require = eval('require');
39
- const SPLAT_PATH = '/:params*';
40
- const entryExts = ['.js', '.jsx', '.ts', '.tsx'];
41
- function findEntry(dir, basename) {
42
- for (const ext of entryExts) {
43
- const file = (0, path_1.resolve)(dir, basename + ext);
44
- if ((0, fs_1.existsSync)(file))
45
- return (0, path_1.relative)(dir, file);
46
- }
47
- return undefined;
48
- }
49
- exports.findEntry = findEntry;
50
- const configExts = ['.js', '.cjs', '.mjs'];
51
- function findConfig(dir, basename) {
52
- for (const ext of configExts) {
53
- const name = basename + ext;
54
- const file = (0, path_1.join)(dir, name);
55
- if ((0, fs_1.existsSync)(file))
56
- return file;
57
- }
58
- return undefined;
59
- }
60
- exports.findConfig = findConfig;
61
- function isEdgeRuntime(runtime) {
62
- return runtime === 'edge' || runtime === 'experimental-edge';
63
- }
64
- function getResolvedRouteConfig(route, routes, configs, isHydrogen2) {
65
- let runtime;
66
- let regions;
67
- let maxDuration;
68
- let memory;
69
- for (const currentRoute of getRouteIterator(route, routes)) {
70
- const staticConfig = configs.get(currentRoute);
71
- if (staticConfig) {
72
- if (typeof runtime === 'undefined' && staticConfig.runtime) {
73
- runtime = isEdgeRuntime(staticConfig.runtime) ? 'edge' : 'nodejs';
74
- }
75
- if (typeof regions === 'undefined') {
76
- regions = staticConfig.regions;
77
- }
78
- if (typeof maxDuration === 'undefined') {
79
- maxDuration = staticConfig.maxDuration;
80
- }
81
- if (typeof memory === 'undefined') {
82
- memory = staticConfig.memory;
83
- }
84
- }
85
- }
86
- if (Array.isArray(regions)) {
87
- regions = Array.from(new Set(regions)).sort();
88
- }
89
- if (isHydrogen2 || runtime === 'edge') {
90
- return { runtime: 'edge', regions };
91
- }
92
- if (regions && !Array.isArray(regions)) {
93
- throw new Error(`"regions" for route "${route.id}" must be an array of strings`);
94
- }
95
- return { runtime: 'nodejs', regions, maxDuration, memory };
96
- }
97
- exports.getResolvedRouteConfig = getResolvedRouteConfig;
98
- function calculateRouteConfigHash(config) {
99
- const str = JSON.stringify(config);
100
- return Buffer.from(str).toString('base64url');
101
- }
102
- exports.calculateRouteConfigHash = calculateRouteConfigHash;
103
- function isLayoutRoute(routeId, routes) {
104
- return routes.some(r => r.parentId === routeId);
105
- }
106
- exports.isLayoutRoute = isLayoutRoute;
107
- function* getRouteIterator(route, routes) {
108
- let currentRoute = route;
109
- do {
110
- yield currentRoute;
111
- if (currentRoute.parentId) {
112
- currentRoute = routes[currentRoute.parentId];
113
- }
114
- else {
115
- break;
116
- }
117
- } while (currentRoute);
118
- }
119
- exports.getRouteIterator = getRouteIterator;
120
- function getPathFromRoute(route, routes) {
121
- if (route.id === 'root' ||
122
- (route.parentId === 'root' && !route.path && route.index)) {
123
- return { path: 'index', rePath: '/index' };
124
- }
125
- const pathParts = [];
126
- const rePathParts = [];
127
- for (const currentRoute of getRouteIterator(route, routes)) {
128
- if (!currentRoute.path)
129
- continue;
130
- const currentRouteParts = currentRoute.path.split('/').reverse();
131
- for (const part of currentRouteParts) {
132
- if (part.endsWith('?')) {
133
- if (part.startsWith(':')) {
134
- // Optional path parameter
135
- pathParts.push(`(${part.substring(0, part.length - 1)})`);
136
- rePathParts.push(part);
137
- }
138
- else {
139
- // Optional static segment
140
- const p = `(${part.substring(0, part.length - 1)})`;
141
- pathParts.push(p);
142
- rePathParts.push(`${p}?`);
143
- }
144
- }
145
- else {
146
- pathParts.push(part);
147
- rePathParts.push(part);
148
- }
149
- }
150
- }
151
- const path = pathParts.reverse().join('/');
152
- // Replace "/*" at the end to handle "splat routes"
153
- let rePath = rePathParts.reverse().join('/');
154
- rePath =
155
- rePath === '*' ? SPLAT_PATH : `/${rePath.replace(/\/\*$/, SPLAT_PATH)}`;
156
- return { path, rePath };
157
- }
158
- exports.getPathFromRoute = getPathFromRoute;
159
- function getRegExpFromPath(rePath) {
160
- const keys = [];
161
- const re = (0, path_to_regexp_1.pathToRegexp)(rePath, keys);
162
- return keys.length > 0 ? re : false;
163
- }
164
- exports.getRegExpFromPath = getRegExpFromPath;
165
- /**
166
- * Updates the `dest` process.env object to match the `source` one.
167
- * A function is returned to restore the the `dest` env back to how
168
- * it was originally.
169
- */
170
- function syncEnv(source, dest) {
171
- const originalDest = { ...dest };
172
- Object.assign(dest, source);
173
- for (const key of Object.keys(dest)) {
174
- if (!(key in source)) {
175
- delete dest[key];
176
- }
177
- }
178
- return () => syncEnv(originalDest, dest);
179
- }
180
- exports.syncEnv = syncEnv;
181
- async function chdirAndReadConfig(remixRunDevPath, dir, packageJsonPath) {
182
- const { readConfig } = await (_a = (0, path_1.join)(remixRunDevPath, 'dist/config.js'), Promise.resolve().then(() => __importStar(require(_a))));
183
- const originalCwd = process.cwd();
184
- // As of Remix v1.14.0, reading the config may trigger adding
185
- // "isbot" as a dependency, and `npm`/`pnpm`/`yarn` may be invoked.
186
- // We want to prevent that behavior, so trick `readConfig()`
187
- // into thinking that "isbot" is already installed.
188
- let modifiedPackageJson = false;
189
- const pkgRaw = await fs_1.promises.readFile(packageJsonPath, 'utf8');
190
- const pkg = JSON.parse(pkgRaw);
191
- if (!pkg.dependencies?.['isbot']) {
192
- pkg.dependencies.isbot = 'latest';
193
- await fs_1.promises.writeFile(packageJsonPath, JSON.stringify(pkg));
194
- modifiedPackageJson = true;
195
- }
196
- // Suppress any warnings emitted from `readConfig()` to avoid
197
- // printing them > 1 time. They will already be printed during
198
- // `remix build` when invoking the Build Command.
199
- const warn = console.warn;
200
- console.warn = build_utils_1.debug;
201
- let remixConfig;
202
- try {
203
- process.chdir(dir);
204
- remixConfig = await readConfig(dir);
205
- }
206
- finally {
207
- console.warn = warn;
208
- process.chdir(originalCwd);
209
- if (modifiedPackageJson) {
210
- await fs_1.promises.writeFile(packageJsonPath, pkgRaw);
211
- }
212
- }
213
- return remixConfig;
214
- }
215
- exports.chdirAndReadConfig = chdirAndReadConfig;
216
- /**
217
- * Runs `npm i ${name}` / `pnpm i ${name}` / `yarn add ${name}`.
218
- */
219
- function addDependencies(cliType, names, opts = {}) {
220
- (0, build_utils_1.debug)('Installing additional dependencies:');
221
- for (const name of names) {
222
- (0, build_utils_1.debug)(` - ${name}`);
223
- }
224
- const args = [];
225
- if (cliType === 'npm' || cliType === 'pnpm') {
226
- args.push('install');
227
- if (opts.saveDev) {
228
- args.push('--save-dev');
229
- }
230
- }
231
- else {
232
- // 'yarn'
233
- args.push('add');
234
- if (opts.saveDev) {
235
- args.push('--dev');
236
- }
237
- const yarnVersion = (0, child_process_1.execSync)('yarn -v', { encoding: 'utf8' }).trim();
238
- const isYarnV1 = semver_1.default.satisfies(yarnVersion, '1');
239
- if (isYarnV1) {
240
- // Ignoring workspace check is only needed on Yarn v1
241
- args.push('--ignore-workspace-root-check');
242
- }
243
- }
244
- // Don't fail if pnpm is being run at the workspace root
245
- if (cliType === 'pnpm' && opts.cwd) {
246
- if ((0, fs_1.existsSync)((0, path_1.join)(opts.cwd, 'pnpm-workspace.yaml'))) {
247
- args.push('--workspace-root');
248
- }
249
- }
250
- return (0, build_utils_1.spawnAsync)(cliType, args.concat(names), opts);
251
- }
252
- exports.addDependencies = addDependencies;
253
- function resolveSemverMinMax(min, max, version) {
254
- const floored = semver_1.default.intersects(version, `>= ${min}`) ? version : min;
255
- return semver_1.default.intersects(floored, `<= ${max}`) ? floored : max;
256
- }
257
- exports.resolveSemverMinMax = resolveSemverMinMax;
258
- async function ensureResolvable(start, base, pkgName) {
259
- try {
260
- const resolvedPkgPath = exports._require.resolve(`${pkgName}/package.json`, {
261
- paths: [start],
262
- });
263
- const resolvedPath = (0, path_1.dirname)(resolvedPkgPath);
264
- if (!(0, path_1.relative)(base, resolvedPath).startsWith(`..${path_1.sep}`)) {
265
- // Resolved path is within the root of the project, so all good
266
- (0, build_utils_1.debug)(`"${pkgName}" resolved to '${resolvedPath}'`);
267
- return resolvedPath;
268
- }
269
- }
270
- catch (err) {
271
- if (err.code !== 'MODULE_NOT_FOUND') {
272
- throw err;
273
- }
274
- }
275
- // If we got to here then `pkgName` was not resolvable up to the root
276
- // of the project. Try a couple symlink tricks, otherwise we'll bail.
277
- // Attempt to find the package in `node_modules/.pnpm` (pnpm)
278
- const pnpmDir = await (0, build_utils_2.walkParentDirs)({
279
- base,
280
- start,
281
- filename: 'node_modules/.pnpm',
282
- });
283
- if (pnpmDir) {
284
- const prefix = `${pkgName.replace('/', '+')}@`;
285
- const packages = await fs_1.promises.readdir(pnpmDir);
286
- const match = packages.find(p => p.startsWith(prefix));
287
- if (match) {
288
- const pkgDir = (0, path_1.join)(pnpmDir, match, 'node_modules', pkgName);
289
- await ensureSymlink(pkgDir, (0, path_1.join)(start, 'node_modules'), pkgName);
290
- return pkgDir;
291
- }
292
- }
293
- // Attempt to find the package in `node_modules/.store` (npm 9+ linked mode)
294
- const npmDir = await (0, build_utils_2.walkParentDirs)({
295
- base,
296
- start,
297
- filename: 'node_modules/.store',
298
- });
299
- if (npmDir) {
300
- const prefix = `${(0, path_1.basename)(pkgName)}@`;
301
- const prefixDir = (0, path_1.join)(npmDir, (0, path_1.dirname)(pkgName));
302
- const packages = await fs_1.promises.readdir(prefixDir);
303
- const match = packages.find(p => p.startsWith(prefix));
304
- if (match) {
305
- const pkgDir = (0, path_1.join)(prefixDir, match, 'node_modules', pkgName);
306
- await ensureSymlink(pkgDir, (0, path_1.join)(start, 'node_modules'), pkgName);
307
- return pkgDir;
308
- }
309
- }
310
- throw new Error(`Failed to resolve "${pkgName}". To fix this error, add "${pkgName}" to "dependencies" in your \`package.json\` file.`);
311
- }
312
- exports.ensureResolvable = ensureResolvable;
313
- async function ensureSymlink(target, nodeModulesDir, pkgName) {
314
- const symlinkPath = (0, path_1.join)(nodeModulesDir, pkgName);
315
- const symlinkDir = (0, path_1.dirname)(symlinkPath);
316
- const relativeTarget = (0, path_1.relative)(symlinkDir, target);
317
- try {
318
- const existingTarget = await fs_1.promises.readlink(symlinkPath);
319
- if (existingTarget === relativeTarget) {
320
- // Symlink is already the expected value, so do nothing
321
- return;
322
- }
323
- else {
324
- // If a symlink already exists then delete it if the target doesn't match
325
- await fs_1.promises.unlink(symlinkPath);
326
- }
327
- }
328
- catch (err) {
329
- // Ignore when path does not exist or is not a symlink
330
- if (err.code !== 'ENOENT' && err.code !== 'EINVAL') {
331
- throw err;
332
- }
333
- }
334
- await fs_1.promises.symlink(relativeTarget, symlinkPath);
335
- (0, build_utils_1.debug)(`Created symlink for "${pkgName}"`);
336
- }
337
- function isESM(path) {
338
- // Figure out if the `remix.config` file is using ESM syntax
339
- let isESM = false;
340
- try {
341
- (0, exports._require)(path);
342
- }
343
- catch (err) {
344
- isESM = err.code === 'ERR_REQUIRE_ESM';
345
- }
346
- return isESM;
347
- }
348
- exports.isESM = isESM;
349
- //# sourceMappingURL=utils.js.map
package/dist/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAC5B,iDAAyC;AACzC,2BAAgD;AAChD,+BAAuE;AACvE,mDAAmD;AACnD,qDAAwD;AACxD,qDAAqD;AAYxC,QAAA,QAAQ,GAAmB,IAAI,CAAC,SAAS,CAAC,CAAC;AA+BxD,MAAM,UAAU,GAAG,WAAW,CAAC;AAE/B,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEjD,SAAgB,SAAS,CAAC,GAAW,EAAE,QAAgB;IACrD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;QAC3B,MAAM,IAAI,GAAG,IAAA,cAAO,EAAC,GAAG,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC;QAC1C,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC;YAAE,OAAO,IAAA,eAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAClD;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAPD,8BAOC;AAED,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C,SAAgB,UAAU,CAAC,GAAW,EAAE,QAAgB;IACtD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;QAC5B,MAAM,IAAI,GAAG,QAAQ,GAAG,GAAG,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;KACnC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,gCAQC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,mBAAmB,CAAC;AAC/D,CAAC;AAED,SAAgB,sBAAsB,CACpC,KAAkB,EAClB,MAAqB,EACrB,OAAoD,EACpD,WAAoB;IAEpB,IAAI,OAAmD,CAAC;IACxD,IAAI,OAAuC,CAAC;IAC5C,IAAI,WAAmD,CAAC;IACxD,IAAI,MAAyC,CAAC;IAE9C,KAAK,MAAM,YAAY,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;QAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,YAAY,EAAE;YAChB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,YAAY,CAAC,OAAO,EAAE;gBAC1D,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;aACnE;YACD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;gBAClC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;aAChC;YACD,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;gBACtC,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;aACxC;YACD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;aAC9B;SACF;KACF;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KAC/C;IAED,IAAI,WAAW,IAAI,OAAO,KAAK,MAAM,EAAE;QACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;KACrC;IAED,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CACb,wBAAwB,KAAK,CAAC,EAAE,+BAA+B,CAChE,CAAC;KACH;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAC7D,CAAC;AA5CD,wDA4CC;AAED,SAAgB,wBAAwB,CAAC,MAA2B;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAChD,CAAC;AAHD,4DAGC;AAED,SAAgB,aAAa,CAC3B,OAAe,EACf,MAA8C;IAE9C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;AAClD,CAAC;AALD,sCAKC;AAED,QAAe,CAAC,CAAC,gBAAgB,CAAC,KAAkB,EAAE,MAAqB;IACzE,IAAI,YAAY,GAAgB,KAAK,CAAC;IACtC,GAAG;QACD,MAAM,YAAY,CAAC;QACnB,IAAI,YAAY,CAAC,QAAQ,EAAE;YACzB,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SAC9C;aAAM;YACL,MAAM;SACP;KACF,QAAQ,YAAY,EAAE;AACzB,CAAC;AAVD,4CAUC;AAED,SAAgB,gBAAgB,CAC9B,KAAkB,EAClB,MAAqB;IAErB,IACE,KAAK,CAAC,EAAE,KAAK,MAAM;QACnB,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,EACzD;QACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;KAC5C;IAED,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,YAAY,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;QAC1D,IAAI,CAAC,YAAY,CAAC,IAAI;YAAE,SAAS;QACjC,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACjE,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE;YACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACtB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBACxB,0BAA0B;oBAC1B,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC1D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACxB;qBAAM;oBACL,0BAA0B;oBAC1B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;oBACpD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAC3B;aACF;iBAAM;gBACL,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;KACF;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE3C,mDAAmD;IACnD,IAAI,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM;QACJ,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;IAE1E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AA5CD,4CA4CC;AAED,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,IAAA,6BAAY,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACtC,CAAC;AAJD,8CAIC;AAED;;;;GAIG;AACH,SAAgB,OAAO,CAAC,MAAyB,EAAE,IAAuB;IACxE,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IACjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACnC,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;KACF;IAED,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAVD,0BAUC;AAEM,KAAK,UAAU,kBAAkB,CACtC,eAAuB,EACvB,GAAW,EACX,eAAuB;IAEvB,MAAM,EAAE,UAAU,EAAE,GAClB,YAAa,IAAA,WAAI,EAAC,eAAe,EAAE,gBAAgB,CAAC,0DAAC,CAAC;IAExD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,6DAA6D;IAC7D,mEAAmE;IACnE,4DAA4D;IAC5D,mDAAmD;IACnD,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE;QAChC,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG,QAAQ,CAAC;QAClC,MAAM,aAAE,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,mBAAmB,GAAG,IAAI,CAAC;KAC5B;IAED,6DAA6D;IAC7D,8DAA8D;IAC9D,iDAAiD;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,OAAO,CAAC,IAAI,GAAG,mBAAK,CAAC;IAErB,IAAI,WAAwB,CAAC;IAC7B,IAAI;QACF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,WAAW,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;KACrC;YAAS;QACR,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,mBAAmB,EAAE;YACvB,MAAM,aAAE,CAAC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;SAC7C;KACF;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AA1CD,gDA0CC;AAMD;;GAEG;AACH,SAAgB,eAAe,CAC7B,OAAgB,EAChB,KAAe,EACf,OAA+B,EAAE;IAEjC,IAAA,mBAAK,EAAC,qCAAqC,CAAC,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAA,mBAAK,EAAC,MAAM,IAAI,EAAE,CAAC,CAAC;KACrB;IACD,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,MAAM,EAAE;QAC3C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACzB;KACF;SAAM;QACL,SAAS;QACT,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACpB;QACD,MAAM,WAAW,GAAG,IAAA,wBAAQ,EAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,MAAM,QAAQ,GAAG,gBAAM,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE;YACZ,qDAAqD;YACrD,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;SAC5C;KACF;IAED,wDAAwD;IACxD,IAAI,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;QAClC,IAAI,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,EAAE;YACrD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC/B;KACF;IAED,OAAO,IAAA,wBAAU,EAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAtCD,0CAsCC;AAED,SAAgB,mBAAmB,CACjC,GAAW,EACX,GAAW,EACX,OAAe;IAEf,MAAM,OAAO,GAAG,gBAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACxE,OAAO,gBAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACjE,CAAC;AAPD,kDAOC;AAEM,KAAK,UAAU,gBAAgB,CACpC,KAAa,EACb,IAAY,EACZ,OAAe;IAEf,IAAI;QACF,MAAM,eAAe,GAAG,gBAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,eAAe,EAAE;YAClE,KAAK,EAAE,CAAC,KAAK,CAAC;SACf,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAA,eAAQ,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC,UAAU,CAAC,KAAK,UAAG,EAAE,CAAC,EAAE;YACxD,+DAA+D;YAC/D,IAAA,mBAAK,EAAC,IAAI,OAAO,kBAAkB,YAAY,GAAG,CAAC,CAAC;YACpD,OAAO,YAAY,CAAC;SACrB;KACF;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE;YACnC,MAAM,GAAG,CAAC;SACX;KACF;IAED,qEAAqE;IACrE,qEAAqE;IAErE,6DAA6D;IAC7D,MAAM,OAAO,GAAG,MAAM,IAAA,4BAAc,EAAC;QACnC,IAAI;QACJ,KAAK;QACL,QAAQ,EAAE,oBAAoB;KAC/B,CAAC,CAAC;IACH,IAAI,OAAO,EAAE;QACX,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE;YACT,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;YAC7D,MAAM,aAAa,CAAC,MAAM,EAAE,IAAA,WAAI,EAAC,KAAK,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;YAClE,OAAO,MAAM,CAAC;SACf;KACF;IAED,4EAA4E;IAC5E,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAc,EAAC;QAClC,IAAI;QACJ,KAAK;QACL,QAAQ,EAAE,qBAAqB;KAChC,CAAC,CAAC;IACH,IAAI,MAAM,EAAE;QACV,MAAM,MAAM,GAAG,GAAG,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,CAAC;QACvC,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,IAAA,cAAO,EAAC,OAAO,CAAC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE;YACT,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;YAC/D,MAAM,aAAa,CAAC,MAAM,EAAE,IAAA,WAAI,EAAC,KAAK,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;YAClE,OAAO,MAAM,CAAC;SACf;KACF;IAED,MAAM,IAAI,KAAK,CACb,sBAAsB,OAAO,8BAA8B,OAAO,oDAAoD,CACvH,CAAC;AACJ,CAAC;AA9DD,4CA8DC;AAED,KAAK,UAAU,aAAa,CAC1B,MAAc,EACd,cAAsB,EACtB,OAAe;IAEf,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,IAAA,cAAO,EAAC,WAAW,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,IAAA,eAAQ,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEpD,IAAI;QACF,MAAM,cAAc,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,cAAc,KAAK,cAAc,EAAE;YACrC,uDAAuD;YACvD,OAAO;SACR;aAAM;YACL,yEAAyE;YACzE,MAAM,aAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SAC9B;KACF;IAAC,OAAO,GAAQ,EAAE;QACjB,sDAAsD;QACtD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;YAClD,MAAM,GAAG,CAAC;SACX;KACF;IAED,MAAM,aAAE,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAC9C,IAAA,mBAAK,EAAC,wBAAwB,OAAO,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,KAAK,CAAC,IAAY;IAChC,4DAA4D;IAC5D,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI;QACF,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;KAChB;IAAC,OAAO,GAAQ,EAAE;QACjB,KAAK,GAAG,GAAG,CAAC,IAAI,KAAK,iBAAiB,CAAC;KACxC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AATD,sBASC"}