@workflow/sveltekit 5.0.0-beta.26 → 5.0.0-beta.28
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/dist/builder.d.ts +6 -2
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +59 -38
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +87 -16
- package/package.json +4 -4
package/dist/builder.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { BaseBuilder, type SvelteKitConfig } from '@workflow/builders';
|
|
2
2
|
export declare class SvelteKitBuilder extends BaseBuilder {
|
|
3
|
-
|
|
3
|
+
#private;
|
|
4
|
+
constructor(config?: Partial<SvelteKitConfig> & {
|
|
5
|
+
routesDir?: string;
|
|
6
|
+
});
|
|
4
7
|
build(): Promise<void>;
|
|
5
8
|
private buildWebhookRoute;
|
|
6
|
-
private
|
|
9
|
+
private loadRoutesDirectory;
|
|
7
10
|
}
|
|
11
|
+
export declare function loadSvelteKitRoutesDir(workingDir: string): Promise<string>;
|
|
8
12
|
//# sourceMappingURL=builder.d.ts.map
|
package/dist/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,WAAW,EAIX,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAS5B,qBAAa,gBAAiB,SAAQ,WAAW;;gBAGnC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO;IAgC3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YA+EvB,iBAAiB;YAqDjB,mBAAmB;CAMlC;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAoBjB"}
|
package/dist/builder.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { constants } from 'node:fs';
|
|
2
2
|
import { access, copyFile, mkdir, readFile, rm, stat, writeFile, } from 'node:fs/promises';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { createRequire } from 'node:module';
|
|
4
|
+
import { dirname, join, resolve } from 'node:path';
|
|
5
|
+
import { pathToFileURL } from 'node:url';
|
|
6
|
+
import { BaseBuilder, createBaseBuilderConfig, NORMALIZE_REQUEST_CODE, resolveProjectRoot, } from '@workflow/builders';
|
|
5
7
|
const SVELTEKIT_VIRTUAL_MODULES = [
|
|
6
8
|
'$env/*', // All $env subpaths
|
|
7
9
|
'$lib', // Exact $lib import
|
|
@@ -9,23 +11,40 @@ const SVELTEKIT_VIRTUAL_MODULES = [
|
|
|
9
11
|
'$app/*', // All $app subpaths
|
|
10
12
|
];
|
|
11
13
|
export class SvelteKitBuilder extends BaseBuilder {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
#routesDir;
|
|
15
|
+
constructor(config = {}) {
|
|
16
|
+
const workingDir = resolve(config.workingDir || process.cwd());
|
|
17
|
+
const dirs = config.dirs ?? [
|
|
18
|
+
'workflows',
|
|
19
|
+
'src/workflows',
|
|
20
|
+
'routes',
|
|
21
|
+
'src/routes',
|
|
22
|
+
];
|
|
23
|
+
const projectRoot = config.projectRoot ?? resolveProjectRoot(workingDir);
|
|
24
|
+
const routesDir = config.routesDir
|
|
25
|
+
? resolve(workingDir, config.routesDir)
|
|
26
|
+
: undefined;
|
|
14
27
|
super({
|
|
28
|
+
...createBaseBuilderConfig({
|
|
29
|
+
workingDir,
|
|
30
|
+
projectRoot,
|
|
31
|
+
dirs,
|
|
32
|
+
watch: config.watch,
|
|
33
|
+
externalPackages: [...SVELTEKIT_VIRTUAL_MODULES],
|
|
34
|
+
sourcemap: config.sourcemap,
|
|
35
|
+
}),
|
|
15
36
|
...config,
|
|
16
|
-
dirs
|
|
37
|
+
dirs,
|
|
17
38
|
buildTarget: 'sveltekit',
|
|
18
|
-
stepsBundlePath: '', // unused in base
|
|
19
|
-
workflowsBundlePath: '', // unused in base
|
|
20
|
-
webhookBundlePath: '', // unused in base
|
|
21
39
|
workingDir,
|
|
40
|
+
projectRoot,
|
|
41
|
+
moduleSpecifierRoot: config.moduleSpecifierRoot ?? workingDir,
|
|
22
42
|
externalPackages: [...SVELTEKIT_VIRTUAL_MODULES],
|
|
23
|
-
sourcemap: config?.sourcemap,
|
|
24
43
|
});
|
|
44
|
+
this.#routesDir = routesDir;
|
|
25
45
|
}
|
|
26
46
|
async build() {
|
|
27
|
-
|
|
28
|
-
const routesDir = await this.findRoutesDirectory();
|
|
47
|
+
const routesDir = await this.loadRoutesDirectory();
|
|
29
48
|
const workflowGeneratedDir = join(routesDir, '.well-known/workflow/v1');
|
|
30
49
|
// Ensure output directories exist
|
|
31
50
|
await mkdir(workflowGeneratedDir, { recursive: true });
|
|
@@ -112,32 +131,34 @@ export const HEAD = createSvelteKitHandler('HEAD');
|
|
|
112
131
|
export const OPTIONS = createSvelteKitHandler('OPTIONS');`);
|
|
113
132
|
await writeFile(webhookRouteFile, webhookRouteContent);
|
|
114
133
|
}
|
|
115
|
-
async
|
|
116
|
-
const routesDir =
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
134
|
+
async loadRoutesDirectory() {
|
|
135
|
+
const routesDir = this.#routesDir ?? (await loadSvelteKitRoutesDir(this.config.workingDir));
|
|
136
|
+
await assertDirectory(routesDir);
|
|
137
|
+
return routesDir;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
export async function loadSvelteKitRoutesDir(workingDir) {
|
|
141
|
+
const require = createRequire(join(workingDir, 'package.json'));
|
|
142
|
+
const packageJsonPath = require.resolve('@sveltejs/kit/package.json');
|
|
143
|
+
const loaderPath = join(dirname(packageJsonPath), 'src/core/config/index.js');
|
|
144
|
+
const configModule = await import(pathToFileURL(loaderPath).href);
|
|
145
|
+
// SvelteKit 2.62+ `load_config()` resolves Vite config first. Calling it
|
|
146
|
+
// while `workflow/sveltekit` is imported from vite.config.ts recursively
|
|
147
|
+
// reloads vite.config.ts and leaves this top-level build unresolved.
|
|
148
|
+
const config = configModule.load_svelte_config != null
|
|
149
|
+
? await configModule.load_svelte_config(workingDir)
|
|
150
|
+
: await configModule.load_config({ cwd: workingDir });
|
|
151
|
+
const routesDir = config.kit?.files?.routes;
|
|
152
|
+
if (routesDir == null || typeof routesDir !== 'string') {
|
|
153
|
+
throw new Error('Expected SvelteKit config loader to return kit.files.routes as a string.');
|
|
154
|
+
}
|
|
155
|
+
return routesDir;
|
|
156
|
+
}
|
|
157
|
+
async function assertDirectory(path) {
|
|
158
|
+
await access(path, constants.F_OK);
|
|
159
|
+
const stats = await stat(path);
|
|
160
|
+
if (!stats.isDirectory()) {
|
|
161
|
+
throw new Error(`Path exists but is not a directory: ${path}`);
|
|
141
162
|
}
|
|
142
163
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDcEMsT0FBTyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixFQUFFLEVBQ0YsSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsc0JBQXNCLEdBRXZCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsTUFBTSx5QkFBeUIsR0FBRztJQUNoQyxRQUFRLEVBQUUsb0JBQW9CO0lBQzlCLE1BQU0sRUFBRSxvQkFBb0I7SUFDNUIsUUFBUSxFQUFFLG9CQUFvQjtJQUM5QixRQUFRLEVBQUUsb0JBQW9CO0NBQy9CLENBQUM7QUFFRixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FBVztJQUMvQyxZQUFZLE1BQWlDO1FBQzNDLE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxVQUFVLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXZELEtBQUssQ0FBQztZQUNKLEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQztZQUM1RCxXQUFXLEVBQUUsV0FBb0I7WUFDakMsZUFBZSxFQUFFLEVBQUUsRUFBRSxpQkFBaUI7WUFDdEMsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLGlCQUFpQjtZQUMxQyxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsaUJBQWlCO1lBQ3hDLFVBQVU7WUFDVixnQkFBZ0IsRUFBRSxDQUFDLEdBQUcseUJBQXlCLENBQUM7WUFDaEQsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTO1NBQzdCLENB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bXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7XG4gIGFjY2VzcyxcbiAgY29weUZpbGUsXG4gIG1rZGlyLFxuICByZWFkRmlsZSxcbiAgcm0sXG4gIHN0YXQsXG4gIHdyaXRlRmlsZSxcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBqb2luLCByZXNvbHZlIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7XG4gIEJhc2VCdWlsZGVyLFxuICBOT1JNQUxJWkVfUkVRVUVTVF9DT0RFLFxuICB0eXBlIFN2ZWx0ZUtpdENvbmZpZyxcbn0gZnJvbSAnQHdvcmtmbG93L2J1aWxkZXJzJztcblxuY29uc3QgU1ZFTFRFS0lUX1ZJUlRVQUxfTU9EVUxFUyA9IFtcbiAgJyRlbnYvKicsIC8vIEFsbCAkZW52IHN1YnBhdGhzXG4gICckbGliJywgLy8gRXhhY3QgJGxpYiBpbXBvcnRcbiAgJyRsaWIvKicsIC8vIEFsbCAkbGliIHN1YnBhdGhzXG4gICckYXBwLyonLCAvLyBBbGwgJGFwcCBzdWJwYXRoc1xuXTtcblxuZXhwb3J0IGNsYXNzIFN2ZWx0ZUtpdEJ1aWxkZXIgZXh0ZW5kcyBCYXNlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IFBhcnRpYWw8U3ZlbHRlS2l0Q29uZmlnPikge1xuICAgIGNvbnN0IHdvcmtpbmdEaXIgPSBjb25maWc/LndvcmtpbmdEaXIgfHwgcHJvY2Vzcy5jd2QoKTtcblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGRpcnM6IFsnd29ya2Zsb3dzJywgJ3NyYy93b3JrZmxvd3MnLCAncm91dGVzJywgJ3NyYy9yb3V0ZXMnXSxcbiAgICAgIGJ1aWxkVGFyZ2V0OiAnc3ZlbHRla2l0JyBhcyBjb25zdCxcbiAgICAgIHN0ZXBzQnVuZGxlUGF0aDogJycsIC8vIHVudXNlZCBpbiBiYXNlXG4gICAgICB3b3JrZmxvd3NCdW5kbGVQYXRoOiAnJywgLy8gdW51c2VkIGluIGJhc2VcbiAgICAgIHdlYmhvb2tCdW5kbGVQYXRoOiAnJywgLy8gdW51c2VkIGluIGJhc2VcbiAgICAgIHdvcmtpbmdEaXIsXG4gICAgICBleHRlcm5hbFBhY2thZ2VzOiBbLi4uU1ZFTFRFS0lUX1ZJUlRVQUxfTU9EVUxFU10sXG4gICAgICBzb3VyY2VtYXA6IGNvbmZpZz8uc291cmNlbWFwLFxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gRmluZCBTdmVsdGVLaXQgcm91dGVzIGRpcmVjdG9yeSAoc3JjL3JvdXRlcyBvciByb3V0ZXMpXG4gICAgY29uc3Qgcm91dGVzRGlyID0gYXdhaXQgdGhpcy5maW5kUm91dGVzRGlyZWN0b3J5KCk7XG4gICAgY29uc3Qgd29ya2Zsb3dHZW5lcmF0ZWREaXIgPSBqb2luKHJvdXRlc0RpciwgJy53ZWxsLWtub3duL3dvcmtmbG93L3YxJyk7XG5cbiAgICAvLyBFbnN1cmUgb3V0cHV0IGRpcmVjdG9yaWVzIGV4aXN0XG4gICAgYXdhaXQgbWtkaXIod29ya2Zsb3dHZW5lcmF0ZWREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgLy8gQWRkIC5naXRpZ25vcmUgdG8gZXhjbHVkZSBnZW5lcmF0ZWQgZmlsZXMgZnJvbSB2ZXJzaW9uIGNvbnRyb2xcbiAgICBpZiAocHJvY2Vzcy5lbnYuVkVSQ0VMX0RFUExPWU1FTlRfSUQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgd3JpdGVGaWxlKGpvaW4od29ya2Zsb3dHZW5lcmF0ZWREaXIsICcuZ2l0aWdub3JlJyksICcqJyk7XG4gICAgfVxuXG4gICAgLy8gQ2xlYW4gdXAgc3RhbGUgVjEgc3RlcCByb3V0ZSBkaXJlY3RvcnkgKG1heSBwZXJzaXN0IHZpYSBWZXJjZWwgYnVpbGQgY2FjaGUpXG4gICAgYXdhaXQgcm0oam9pbih3b3JrZmxvd0dlbmVyYXRlZERpciwgJ3N0ZXAnKSwge1xuICAgICAgcmVjdXJzaXZlOiB0cnVlLFxuICAgICAgZm9yY2U6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBHZXQgd29ya2Zsb3cgYW5kIHN0ZXAgZmlsZXMgdG8gYnVuZGxlXG4gICAgY29uc3QgaW5wdXRGaWxlcyA9IGF3YWl0IHRoaXMuZ2V0SW5wdXRGaWxlcygpO1xuICAgIGNvbnN0IHRzY29uZmlnUGF0aCA9IGF3YWl0IHRoaXMuZmluZFRzQ29uZmlnUGF0aCgpO1xuXG4gICAgLy8gQ3JlYXRlIGNvbWJpbmVkIGJ1bmRsZSBmb3IgZmxvdyByb3V0ZVxuICAgIGNvbnN0IGZsb3dSb3V0ZURpciA9IGpvaW4od29ya2Zsb3dHZW5lcmF0ZWREaXIsICdmbG93Jyk7XG4gICAgYXdhaXQgbWtkaXIoZmxvd1JvdXRlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIGNvbnN0IHsgbWFuaWZlc3QgfSA9IGF3YWl0IHRoaXMuY3JlYXRlQ29tYmluZWRCdW5kbGUoe1xuICAgICAgaW5wdXRGaWxlcyxcbiAgICAgIHN0ZXBzT3V0ZmlsZTogam9pbihmbG93Um91dGVEaXIsICdfX3N0ZXBfcmVnaXN0cmF0aW9ucy5qcycpLFxuICAgICAgZmxvd091dGZpbGU6IGpvaW4oZmxvd1JvdXRlRGlyLCAnK3NlcnZlci5qcycpLFxuICAgICAgZm9ybWF0OiAnZXNtJyxcbiAgICAgIGJ1bmRsZUZpbmFsT3V0cHV0OiBmYWxzZSxcbiAgICAgIGV4dGVybmFsaXplTm9uU3RlcHM6IHRydWUsXG4gICAgICB0c2NvbmZpZ1BhdGgsXG4gICAgfSk7XG5cbiAgICAvLyBQb3N0LXByb2Nlc3MgdGhlIGdlbmVyYXRlZCBmaWxlIHRvIHdyYXAgd2l0aCBTdmVsdGVLaXQgcmVxdWVzdCBjb252ZXJ0ZXJcbiAgICBjb25zdCB3b3JrZmxvd3NSb3V0ZUZpbGUgPSBqb2luKGZsb3dSb3V0ZURpciwgJytzZXJ2ZXIuanMnKTtcbiAgICBsZXQgd29ya2Zsb3dzUm91dGVDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUod29ya2Zsb3dzUm91dGVGaWxlLCAndXRmLTgnKTtcblxuICAgIC8vIFJlcGxhY2UgdGhlIGRlZmF1bHQgZXhwb3J0IHdpdGggU3ZlbHRlS2l0LWNvbXBhdGlibGUgaGFuZGxlclxuICAgIHdvcmtmbG93c1JvdXRlQ29udGVudCA9IHdvcmtmbG93c1JvdXRlQ29udGVudC5yZXBsYWNlKFxuICAgICAgL2V4cG9ydCBjb25zdCBQT1NUID0gd29ya2Zsb3dFbnRyeXBvaW50XFwod29ya2Zsb3dDb2RlKD88b3B0aW9ucz5bXildKilcXCk7PyQvbSxcbiAgICAgIChfbWF0Y2gsIG9wdGlvbnMgPSAnJykgPT4gYCR7Tk9STUFMSVpFX1JFUVVFU1RfQ09ERX1cbmV4cG9ydCBjb25zdCBQT1NUID0gYXN5bmMgKHtyZXF1ZXN0fSkgPT4ge1xuICBjb25zdCBub3JtYWxSZXF1ZXN0ID0gYXdhaXQgbm9ybWFsaXplUmVxdWVzdChyZXF1ZXN0KTtcbiAgcmV0dXJuIHdvcmtmbG93RW50cnlwb2ludCh3b3JrZmxvd0NvZGUke29wdGlvbnN9KShub3JtYWxSZXF1ZXN0KTtcbn1gXG4gICAgKTtcbiAgICBhd2FpdCB3cml0ZUZpbGUod29ya2Zsb3dzUm91dGVGaWxlLCB3b3JrZmxvd3NSb3V0ZUNvbnRlbnQpO1xuXG4gICAgYXdhaXQgdGhpcy5idWlsZFdlYmhvb2tSb3V0ZSh7IHdvcmtmbG93R2VuZXJhdGVkRGlyIH0pO1xuXG4gICAgLy8gR2VuZXJhdGUgdW5pZmllZCBtYW5pZmVzdFxuICAgIGNvbnN0IHdvcmtmbG93QnVuZGxlUGF0aCA9IGpvaW4od29ya2Zsb3dHZW5lcmF0ZWREaXIsICdmbG93LytzZXJ2ZXIuanMnKTtcbiAgICBjb25zdCBtYW5pZmVzdEpzb24gPSBhd2FpdCB0aGlzLmNyZWF0ZU1hbmlmZXN0KHtcbiAgICAgIHdvcmtmbG93QnVuZGxlUGF0aCxcbiAgICAgIG1hbmlmZXN0RGlyOiB3b3JrZmxvd0dlbmVyYXRlZERpcixcbiAgICAgIG1hbmlmZXN0LFxuICAgIH0pO1xuXG4gICAgLy8gRXhwb3NlIG1hbmlmZXN0IGFzIGEgc3RhdGljIGZpbGUgd2hlbiBXT1JLRkxPV19QVUJMSUNfTUFOSUZFU1Q9MS5cbiAgICAvLyBTdmVsdGVLaXQgc2VydmVzIGZpbGVzIGZyb20gc3RhdGljLyBhdCB0aGUgcm9vdCBVUkwuXG4gICAgaWYgKHRoaXMuc2hvdWxkRXhwb3NlUHVibGljTWFuaWZlc3QgJiYgbWFuaWZlc3RKc29uKSB7XG4gICAgICBjb25zdCBzdGF0aWNNYW5pZmVzdERpciA9IGpvaW4oXG4gICAgICAgIHRoaXMuY29uZmlnLndvcmtpbmdEaXIsXG4gICAgICAgICdzdGF0aWMvLndlbGwta25vd24vd29ya2Zsb3cvdjEnXG4gICAgICApO1xuICAgICAgYXdhaXQgbWtkaXIoc3RhdGljTWFuaWZlc3REaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgaWYgKHByb2Nlc3MuZW52LlZFUkNFTF9ERVBMT1lNRU5UX0lEID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGpvaW4oc3RhdGljTWFuaWZlc3REaXIsICcuZ2l0aWdub3JlJyksICcqJyk7XG4gICAgICB9XG4gICAgICBhd2FpdCBjb3B5RmlsZShcbiAgICAgICAgam9pbih3b3JrZmxvd0dlbmVyYXRlZERpciwgJ21hbmlmZXN0Lmpzb24nKSxcbiAgICAgICAgam9pbihzdGF0aWNNYW5pZmVzdERpciwgJ21hbmlmZXN0Lmpzb24nKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGJ1aWxkV2ViaG9va1JvdXRlKHtcbiAgICB3b3JrZmxvd0dlbmVyYXRlZERpcixcbiAgfToge1xuICAgIHdvcmtmbG93R2VuZXJhdGVkRGlyOiBzdHJpbmc7XG4gIH0pIHtcbiAgICAvLyBDcmVhdGUgd2ViaG9vayByb3V0ZTogLndlbGwta25vd24vd29ya2Zsb3cvdjEvd2ViaG9vay9bdG9rZW5dLytzZXJ2ZXIuanNcbiAgICBjb25zdCB3ZWJob29rUm91dGVGaWxlID0gam9pbihcbiAgICAgIHdvcmtmbG93R2VuZXJhdGVkRGlyLFxuICAgICAgJ3dlYmhvb2svW3Rva2VuXS8rc2VydmVyLmpzJ1xuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVdlYmhvb2tCdW5kbGUoe1xuICAgICAgb3V0ZmlsZTogd2ViaG9va1JvdXRlRmlsZSxcbiAgICAgIGJ1bmRsZTogZmFsc2UsIC8vIFN2ZWx0ZUtpdCB3aWxsIGhhbmRsZSBidW5kbGluZ1xuICAgIH0pO1xuXG4gICAgLy8gUG9zdC1wcm9jZXNzIHRoZSBnZW5lcmF0ZWQgZmlsZSB0byB3cmFwIHdpdGggU3ZlbHRlS2l0IHJlcXVlc3QgY29udmVydGVyXG4gICAgbGV0IHdlYmhvb2tSb3V0ZUNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZSh3ZWJob29rUm91dGVGaWxlLCAndXRmLTgnKTtcblxuICAgIC8vIFVwZGF0ZSBoYW5kbGVyIHNpZ25hdHVyZSB0byBhY2NlcHQgdG9rZW4gYXMgcGFyYW1ldGVyXG4gICAgd2ViaG9va1JvdXRlQ29udGVudCA9IHdlYmhvb2tSb3V0ZUNvbnRlbnQucmVwbGFjZShcbiAgICAgIC9hc3luYyBmdW5jdGlvbiBoYW5kbGVyXFwocmVxdWVzdFxcKSBcXHtbXFxzXFxTXSo/Y29uc3QgdG9rZW4gPSBkZWNvZGVVUklDb21wb25lbnRcXChwYXRoUGFydHNcXFtwYXRoUGFydHNcXC5sZW5ndGggLSAxXFxdXFwpOy8sXG4gICAgICBgYXN5bmMgZnVuY3Rpb24gaGFuZGxlcihyZXF1ZXN0LCB0b2tlbikge2BcbiAgICApO1xuXG4gICAgLy8gUmVtb3ZlIHRoZSBVUkwgcGFyc2luZyBjb2RlIHNpbmNlIHdlIGdldCB0b2tlbiBmcm9tIHBhcmFtc1xuICAgIHdlYmhvb2tSb3V0ZUNvbnRlbnQgPSB3ZWJob29rUm91dGVDb250ZW50LnJlcGxhY2UoXG4gICAgICAvY29uc3QgdXJsID0gbmV3IFVSTFxcKHJlcXVlc3RcXC51cmxcXCk7W1xcc1xcU10qP2NvbnN0IHBhdGhQYXJ0cyA9IHVybFxcLnBhdGhuYW1lXFwuc3BsaXRcXCgnXFwvJ1xcKTtbXFxzXFxTXSo/XFxuLyxcbiAgICAgICcnXG4gICAgKTtcblxuICAgIC8vIFJlcGxhY2UgYWxsIEhUVFAgbWV0aG9kIGV4cG9ydHMgd2l0aCBTdmVsdGVLaXQtY29tcGF0aWJsZSBoYW5kbGVyc1xuICAgIHdlYmhvb2tSb3V0ZUNvbnRlbnQgPSB3ZWJob29rUm91dGVDb250ZW50LnJlcGxhY2UoXG4gICAgICAvZXhwb3J0IGNvbnN0IEdFVCA9IGhhbmRsZXI7XFxuZXhwb3J0IGNvbnN0IFBPU1QgPSBoYW5kbGVyO1xcbmV4cG9ydCBjb25zdCBQVVQgPSBoYW5kbGVyO1xcbmV4cG9ydCBjb25zdCBQQVRDSCA9IGhhbmRsZXI7XFxuZXhwb3J0IGNvbnN0IERFTEVURSA9IGhhbmRsZXI7XFxuZXhwb3J0IGNvbnN0IEhFQUQgPSBoYW5kbGVyO1xcbmV4cG9ydCBjb25zdCBPUFRJT05TID0gaGFuZGxlcjsvLFxuICAgICAgYCR7Tk9STUFMSVpFX1JFUVVFU1RfQ09ERX1cbmNvbnN0IGNyZWF0ZVN2ZWx0ZUtpdEhhbmRsZXIgPSAobWV0aG9kKSA9PiBhc3luYyAoeyByZXF1ZXN0LCBwYXJhbXMsIHBsYXRmb3JtIH0pID0+IHtcbiAgY29uc3Qgbm9ybWFsUmVxdWVzdCA9IGF3YWl0IG5vcm1hbGl6ZVJlcXVlc3QocmVxdWVzdCk7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgaGFuZGxlcihub3JtYWxSZXF1ZXN0LCBwYXJhbXMudG9rZW4pO1xuICByZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5leHBvcnQgY29uc3QgR0VUID0gY3JlYXRlU3ZlbHRlS2l0SGFuZGxlcignR0VUJyk7XG5leHBvcnQgY29uc3QgUE9TVCA9IGNyZWF0ZVN2ZWx0ZUtpdEhhbmRsZXIoJ1BPU1QnKTtcbmV4cG9ydCBjb25zdCBQVVQgPSBjcmVhdGVTdmVsdGVLaXRIYW5kbGVyKCdQVVQnKTtcbmV4cG9ydCBjb25zdCBQQVRDSCA9IGNyZWF0ZVN2ZWx0ZUtpdEhhbmRsZXIoJ1BBVENIJyk7XG5leHBvcnQgY29uc3QgREVMRVRFID0gY3JlYXRlU3ZlbHRlS2l0SGFuZGxlcignREVMRVRFJyk7XG5leHBvcnQgY29uc3QgSEVBRCA9IGNyZWF0ZVN2ZWx0ZUtpdEhhbmRsZXIoJ0hFQUQnKTtcbmV4cG9ydCBjb25zdCBPUFRJT05TID0gY3JlYXRlU3ZlbHRlS2l0SGFuZGxlcignT1BUSU9OUycpO2BcbiAgICApO1xuXG4gICAgYXdhaXQgd3JpdGVGaWxlKHdlYmhvb2tSb3V0ZUZpbGUsIHdlYmhvb2tSb3V0ZUNvbnRlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5kUm91dGVzRGlyZWN0b3J5KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgcm91dGVzRGlyID0gcmVzb2x2ZSh0aGlzLmNvbmZpZy53b3JraW5nRGlyLCAnc3JjL3JvdXRlcycpO1xuICAgIGNvbnN0IHJvb3RSb3V0ZXNEaXIgPSByZXNvbHZlKHRoaXMuY29uZmlnLndvcmtpbmdEaXIsICdyb3V0ZXMnKTtcblxuICAgIC8vIFRyeSBzcmMvcm91dGVzIGZpcnN0IChzdGFuZGFyZCBTdmVsdGVLaXQgY29udmVudGlvbilcbiAgICB0cnkge1xuICAgICAgYXdhaXQgYWNjZXNzKHJvdXRlc0RpciwgY29uc3RhbnRzLkZfT0spO1xuICAgICAgY29uc3Qgcm91dGVzU3RhdHMgPSBhd2FpdCBzdGF0KHJvdXRlc0Rpcik7XG4gICAgICBpZiAoIXJvdXRlc1N0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRoIGV4aXN0cyBidXQgaXMgbm90IGEgZGlyZWN0b3J5OiAke3JvdXRlc0Rpcn1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByb3V0ZXNEaXI7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBUcnkgcm91dGVzIGFzIGZhbGxiYWNrXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBhY2Nlc3Mocm9vdFJvdXRlc0RpciwgY29uc3RhbnRzLkZfT0spO1xuICAgICAgICBjb25zdCByb290Um91dGVzU3RhdHMgPSBhd2FpdCBzdGF0KHJvb3RSb3V0ZXNEaXIpO1xuICAgICAgICBpZiAoIXJvb3RSb3V0ZXNTdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFBhdGggZXhpc3RzIGJ1dCBpcyBub3QgYSBkaXJlY3Rvcnk6ICR7cm9vdFJvdXRlc0Rpcn1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm9vdFJvdXRlc0RpcjtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ0NvdWxkIG5vdCBmaW5kIFN2ZWx0ZUtpdCByb3V0ZXMgZGlyZWN0b3J5LiBFeHBlY3RlZCBlaXRoZXIgXCJzcmMvcm91dGVzXCIgb3IgXCJyb3V0ZXNcIiB0byBleGlzdC4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDcEMsT0FBTyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixFQUFFLEVBQ0YsSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUNMLFdBQVcsRUFDWCx1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLGtCQUFrQixHQUVuQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsUUFBUSxFQUFFLG9CQUFvQjtJQUM5QixNQUFNLEVBQUUsb0JBQW9CO0lBQzVCLFFBQVEsRUFBRSxvQkFBb0I7SUFDOUIsUUFBUSxFQUFFLG9CQUFvQjtDQUMvQixDQUFDO0FBRUYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQVc7SUFDL0MsVUFBVSxDQUFxQjtJQUUvQixZQUFZLFNBQTRELEVBQUU7UUFDeEUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSTtZQUMxQixXQUFXO1lBQ1gsZUFBZTtZQUNmLFFBQVE7WUFDUixZQUFZO1NBQ2IsQ0FBQztRQUNGLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksa0JBQWtCLENBQUMsVUFBVSxD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biAgYWNjZXNzLFxuICBjb3B5RmlsZSxcbiAgbWtkaXIsXG4gIHJlYWRGaWxlLFxuICBybSxcbiAgc3RhdCxcbiAgd3JpdGVGaWxlLFxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdub2RlOm1vZHVsZSc7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luLCByZXNvbHZlIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IHBhdGhUb0ZpbGVVUkwgfSBmcm9tICdub2RlOnVybCc7XG5pbXBvcnQge1xuICBCYXNlQnVpbGRlcixcbiAgY3JlYXRlQmFzZUJ1aWxkZXJDb25maWcsXG4gIE5PUk1BTElaRV9SRVFVRVNUX0NPREUsXG4gIHJlc29sdmVQcm9qZWN0Um9vdCxcbiAgdHlwZSBTdmVsdGVLaXRDb25maWcsXG59IGZyb20gJ0B3b3JrZmxvdy9idWlsZGVycyc7XG5cbmNvbnN0IFNWRUxURUtJVF9WSVJUVUFMX01PRFVMRVMgPSBbXG4gICckZW52LyonLCAvLyBBbGwgJGVudiBzdWJwYXRoc1xuICAnJGxpYicsIC8vIEV4YWN0ICRsaWIgaW1wb3J0XG4gICckbGliLyonLCAvLyBBbGwgJGxpYiBzdWJwYXRoc1xuICAnJGFwcC8qJywgLy8gQWxsICRhcHAgc3VicGF0aHNcbl07XG5cbmV4cG9ydCBjbGFzcyBTdmVsdGVLaXRCdWlsZGVyIGV4dGVuZHMgQmFzZUJ1aWxkZXIge1xuICAjcm91dGVzRGlyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBQYXJ0aWFsPFN2ZWx0ZUtpdENvbmZpZz4gJiB7IHJvdXRlc0Rpcj86IHN0cmluZyB9ID0ge30pIHtcbiAgICBjb25zdCB3b3JraW5nRGlyID0gcmVzb2x2ZShjb25maWcud29ya2luZ0RpciB8fCBwcm9jZXNzLmN3ZCgpKTtcbiAgICBjb25zdCBkaXJzID0gY29uZmlnLmRpcnMgPz8gW1xuICAgICAgJ3dvcmtmbG93cycsXG4gICAgICAnc3JjL3dvcmtmbG93cycsXG4gICAgICAncm91dGVzJyxcbiAgICAgICdzcmMvcm91dGVzJyxcbiAgICBdO1xuICAgIGNvbnN0IHByb2plY3RSb290ID0gY29uZmlnLnByb2plY3RSb290ID8/IHJlc29sdmVQcm9qZWN0Um9vdCh3b3JraW5nRGlyKTtcbiAgICBjb25zdCByb3V0ZXNEaXIgPSBjb25maWcucm91dGVzRGlyXG4gICAgICA/IHJlc29sdmUod29ya2luZ0RpciwgY29uZmlnLnJvdXRlc0RpcilcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLmNyZWF0ZUJhc2VCdWlsZGVyQ29uZmlnKHtcbiAgICAgICAgd29ya2luZ0RpcixcbiAgICAgICAgcHJvamVjdFJvb3QsXG4gICAgICAgIGRpcnMsXG4gICAgICAgIHdhdGNoOiBjb25maWcud2F0Y2gsXG4gICAgICAgIGV4dGVybmFsUGFja2FnZXM6IFsuLi5TVkVMVEVLSVRfVklSVFVBTF9NT0RVTEVTXSxcbiAgICAgICAgc291cmNlbWFwOiBjb25maWcuc291cmNlbWFwLFxuICAgICAgfSksXG4gICAgICAuLi5jb25maWcsXG4gICAgICBkaXJzLFxuICAgICAgYnVpbGRUYXJnZXQ6ICdzdmVsdGVraXQnIGFzIGNvbnN0LFxuICAgICAgd29ya2luZ0RpcixcbiAgICAgIHByb2plY3RSb290LFxuICAgICAgbW9kdWxlU3BlY2lmaWVyUm9vdDogY29uZmlnLm1vZHVsZVNwZWNpZmllclJvb3QgPz8gd29ya2luZ0RpcixcbiAgICAgIGV4dGVybmFsUGFja2FnZXM6IFsuLi5TVkVMVEVLSVRfVklSVFVBTF9NT0RVTEVTXSxcbiAgICB9KTtcbiAgICB0aGlzLiNyb3V0ZXNEaXIgPSByb3V0ZXNEaXI7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByb3V0ZXNEaXIgPSBhd2FpdCB0aGlzLmxvYWRSb3V0ZXNEaXJlY3RvcnkoKTtcbiAgICBjb25zdCB3b3JrZmxvd0dlbmVyYXRlZERpciA9IGpvaW4ocm91dGVzRGlyLCAnLndlbGwta25vd24vd29ya2Zsb3cvdjEnKTtcblxuICAgIC8vIEVuc3VyZSBvdXRwdXQgZGlyZWN0b3JpZXMgZXhpc3RcbiAgICBhd2FpdCBta2Rpcih3b3JrZmxvd0dlbmVyYXRlZERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICAvLyBBZGQgLmdpdGlnbm9yZSB0byBleGNsdWRlIGdlbmVyYXRlZCBmaWxlcyBmcm9tIHZlcnNpb24gY29udHJvbFxuICAgIGlmIChwcm9jZXNzLmVudi5WRVJDRUxfREVQTE9ZTUVOVF9JRCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBhd2FpdCB3cml0ZUZpbGUoam9pbih3b3JrZmxvd0dlbmVyYXRlZERpciwgJy5naXRpZ25vcmUnKSwgJyonKTtcbiAgICB9XG5cbiAgICAvLyBDbGVhbiB1cCBzdGFsZSBWMSBzdGVwIHJvdXRlIGRpcmVjdG9yeSAobWF5IHBlcnNpc3QgdmlhIFZlcmNlbCBidWlsZCBjYWNoZSlcbiAgICBhd2FpdCBybShqb2luKHdvcmtmbG93R2VuZXJhdGVkRGlyLCAnc3RlcCcpLCB7XG4gICAgICByZWN1cnNpdmU6IHRydWUsXG4gICAgICBmb3JjZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIEdldCB3b3JrZmxvdyBhbmQgc3RlcCBmaWxlcyB0byBidW5kbGVcbiAgICBjb25zdCBpbnB1dEZpbGVzID0gYXdhaXQgdGhpcy5nZXRJbnB1dEZpbGVzKCk7XG4gICAgY29uc3QgdHNjb25maWdQYXRoID0gYXdhaXQgdGhpcy5maW5kVHNDb25maWdQYXRoKCk7XG5cbiAgICAvLyBDcmVhdGUgY29tYmluZWQgYnVuZGxlIGZvciBmbG93IHJvdXRlXG4gICAgY29uc3QgZmxvd1JvdXRlRGlyID0gam9pbih3b3JrZmxvd0dlbmVyYXRlZERpciwgJ2Zsb3cnKTtcbiAgICBhd2FpdCBta2RpcihmbG93Um91dGVEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgY29uc3QgeyBtYW5pZmVzdCB9ID0gYXdhaXQgdGhpcy5jcmVhdGVDb21iaW5lZEJ1bmRsZSh7XG4gICAgICBpbnB1dEZpbGVzLFxuICAgICAgc3RlcHNPdXRmaWxlOiBqb2luKGZsb3dSb3V0ZURpciwgJ19fc3RlcF9yZWdpc3RyYXRpb25zLmpzJyksXG4gICAgICBmbG93T3V0ZmlsZTogam9pbihmbG93Um91dGVEaXIsICcrc2VydmVyLmpzJyksXG4gICAgICBmb3JtYXQ6ICdlc20nLFxuICAgICAgYnVuZGxlRmluYWxPdXRwdXQ6IGZhbHNlLFxuICAgICAgZXh0ZXJuYWxpemVOb25TdGVwczogdHJ1ZSxcbiAgICAgIHRzY29uZmlnUGF0aCxcbiAgICB9KTtcblxuICAgIC8vIFBvc3QtcHJvY2VzcyB0aGUgZ2VuZXJhdGVkIGZpbGUgdG8gd3JhcCB3aXRoIFN2ZWx0ZUtpdCByZXF1ZXN0IGNvbnZlcnRlclxuICAgIGNvbnN0IHdvcmtmbG93c1JvdXRlRmlsZSA9IGpvaW4oZmxvd1JvdXRlRGlyLCAnK3NlcnZlci5qcycpO1xuICAgIGxldCB3b3JrZmxvd3NSb3V0ZUNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZSh3b3JrZmxvd3NSb3V0ZUZpbGUsICd1dGYtOCcpO1xuXG4gICAgLy8gUmVwbGFjZSB0aGUgZGVmYXVsdCBleHBvcnQgd2l0aCBTdmVsdGVLaXQtY29tcGF0aWJsZSBoYW5kbGVyXG4gICAgd29ya2Zsb3dzUm91dGVDb250ZW50ID0gd29ya2Zsb3dzUm91dGVDb250ZW50LnJlcGxhY2UoXG4gICAgICAvZXhwb3J0IGNvbnN0IFBPU1QgPSB3b3JrZmxvd0VudHJ5cG9pbnRcXCh3b3JrZmxvd0NvZGUoPzxvcHRpb25zPlteKV0qKVxcKTs/JC9tLFxuICAgICAgKF9tYXRjaCwgb3B0aW9ucyA9ICcnKSA9PiBgJHtOT1JNQUxJWkVfUkVRVUVTVF9DT0RFfVxuZXhwb3J0IGNvbnN0IFBPU1QgPSBhc3luYyAoe3JlcXVlc3R9KSA9PiB7XG4gIGNvbnN0IG5vcm1hbFJlcXVlc3QgPSBhd2FpdCBub3JtYWxpemVSZXF1ZXN0KHJlcXVlc3QpO1xuICByZXR1cm4gd29ya2Zsb3dFbnRyeXBvaW50KHdvcmtmbG93Q29kZSR7b3B0aW9uc30pKG5vcm1hbFJlcXVlc3QpO1xufWBcbiAgICApO1xuICAgIGF3YWl0IHdyaXRlRmlsZSh3b3JrZmxvd3NSb3V0ZUZpbGUsIHdvcmtmbG93c1JvdXRlQ29udGVudCk7XG5cbiAgICBhd2FpdCB0aGlzLmJ1aWxkV2ViaG9va1JvdXRlKHsgd29ya2Zsb3dHZW5lcmF0ZWREaXIgfSk7XG5cbiAgICAvLyBHZW5lcmF0ZSB1bmlmaWVkIG1hbmlmZXN0XG4gICAgY29uc3Qgd29ya2Zsb3dCdW5kbGVQYXRoID0gam9pbih3b3JrZmxvd0dlbmVyYXRlZERpciwgJ2Zsb3cvK3NlcnZlci5qcycpO1xuICAgIGNvbnN0IG1hbmlmZXN0SnNvbiA9IGF3YWl0IHRoaXMuY3JlYXRlTWFuaWZlc3Qoe1xuICAgICAgd29ya2Zsb3dCdW5kbGVQYXRoLFxuICAgICAgbWFuaWZlc3REaXI6IHdvcmtmbG93R2VuZXJhdGVkRGlyLFxuICAgICAgbWFuaWZlc3QsXG4gICAgfSk7XG5cbiAgICAvLyBFeHBvc2UgbWFuaWZlc3QgYXMgYSBzdGF0aWMgZmlsZSB3aGVuIFdPUktGTE9XX1BVQkxJQ19NQU5JRkVTVD0xLlxuICAgIC8vIFN2ZWx0ZUtpdCBzZXJ2ZXMgZmlsZXMgZnJvbSBzdGF0aWMvIGF0IHRoZSByb290IFVSTC5cbiAgICBpZiAodGhpcy5zaG91bGRFeHBvc2VQdWJsaWNNYW5pZmVzdCAmJiBtYW5pZmVzdEpzb24pIHtcbiAgICAgIGNvbnN0IHN0YXRpY01hbmlmZXN0RGlyID0gam9pbihcbiAgICAgICAgdGhpcy5jb25maWcud29ya2luZ0RpcixcbiAgICAgICAgJ3N0YXRpYy8ud2VsbC1rbm93bi93b3JrZmxvdy92MSdcbiAgICAgICk7XG4gICAgICBhd2FpdCBta2RpcihzdGF0aWNNYW5pZmVzdERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuVkVSQ0VMX0RFUExPWU1FTlRfSUQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhd2FpdCB3cml0ZUZpbGUoam9pbihzdGF0aWNNYW5pZmVzdERpciwgJy5naXRpZ25vcmUnKSwgJyonKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGNvcHlGaWxlKFxuICAgICAgICBqb2luKHdvcmtmbG93R2VuZXJhdGVkRGlyLCAnbWFuaWZlc3QuanNvbicpLFxuICAgICAgICBqb2luKHN0YXRpY01hbmlmZXN0RGlyLCAnbWFuaWZlc3QuanNvbicpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYnVpbGRXZWJob29rUm91dGUoe1xuICAgIHdvcmtmbG93R2VuZXJhdGVkRGlyLFxuICB9OiB7XG4gICAgd29ya2Zsb3dHZW5lcmF0ZWREaXI6IHN0cmluZztcbiAgfSkge1xuICAgIC8vIENyZWF0ZSB3ZWJob29rIHJvdXRlOiAud2VsbC1rbm93bi93b3JrZmxvdy92MS93ZWJob29rL1t0b2tlbl0vK3NlcnZlci5qc1xuICAgIGNvbnN0IHdlYmhvb2tSb3V0ZUZpbGUgPSBqb2luKFxuICAgICAgd29ya2Zsb3dHZW5lcmF0ZWREaXIsXG4gICAgICAnd2ViaG9vay9bdG9rZW5dLytzZXJ2ZXIuanMnXG4gICAgKTtcblxuICAgIGF3YWl0IHRoaXMuY3JlYXRlV2ViaG9va0J1bmRsZSh7XG4gICAgICBvdXRmaWxlOiB3ZWJob29rUm91dGVGaWxlLFxuICAgICAgYnVuZGxlOiBmYWxzZSwgLy8gU3ZlbHRlS2l0IHdpbGwgaGFuZGxlIGJ1bmRsaW5nXG4gICAgfSk7XG5cbiAgICAvLyBQb3N0LXByb2Nlc3MgdGhlIGdlbmVyYXRlZCBmaWxlIHRvIHdyYXAgd2l0aCBTdmVsdGVLaXQgcmVxdWVzdCBjb252ZXJ0ZXJcbiAgICBsZXQgd2ViaG9va1JvdXRlQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKHdlYmhvb2tSb3V0ZUZpbGUsICd1dGYtOCcpO1xuXG4gICAgLy8gVXBkYXRlIGhhbmRsZXIgc2lnbmF0dXJlIHRvIGFjY2VwdCB0b2tlbiBhcyBwYXJhbWV0ZXJcbiAgICB3ZWJob29rUm91dGVDb250ZW50ID0gd2ViaG9va1JvdXRlQ29udGVudC5yZXBsYWNlKFxuICAgICAgL2FzeW5jIGZ1bmN0aW9uIGhhbmRsZXJcXChyZXF1ZXN0XFwpIFxce1tcXHNcXFNdKj9jb25zdCB0b2tlbiA9IGRlY29kZVVSSUNvbXBvbmVudFxcKHBhdGhQYXJ0c1xcW3BhdGhQYXJ0c1xcLmxlbmd0aCAtIDFcXF1cXCk7LyxcbiAgICAgIGBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKHJlcXVlc3QsIHRva2VuKSB7YFxuICAgICk7XG5cbiAgICAvLyBSZW1vdmUgdGhlIFVSTCBwYXJzaW5nIGNvZGUgc2luY2Ugd2UgZ2V0IHRva2VuIGZyb20gcGFyYW1zXG4gICAgd2ViaG9va1JvdXRlQ29udGVudCA9IHdlYmhvb2tSb3V0ZUNvbnRlbnQucmVwbGFjZShcbiAgICAgIC9jb25zdCB1cmwgPSBuZXcgVVJMXFwocmVxdWVzdFxcLnVybFxcKTtbXFxzXFxTXSo/Y29uc3QgcGF0aFBhcnRzID0gdXJsXFwucGF0aG5hbWVcXC5zcGxpdFxcKCdcXC8nXFwpO1tcXHNcXFNdKj9cXG4vLFxuICAgICAgJydcbiAgICApO1xuXG4gICAgLy8gUmVwbGFjZSBhbGwgSFRUUCBtZXRob2QgZXhwb3J0cyB3aXRoIFN2ZWx0ZUtpdC1jb21wYXRpYmxlIGhhbmRsZXJzXG4gICAgd2ViaG9va1JvdXRlQ29udGVudCA9IHdlYmhvb2tSb3V0ZUNvbnRlbnQucmVwbGFjZShcbiAgICAgIC9leHBvcnQgY29uc3QgR0VUID0gaGFuZGxlcjtcXG5leHBvcnQgY29uc3QgUE9TVCA9IGhhbmRsZXI7XFxuZXhwb3J0IGNvbnN0IFBVVCA9IGhhbmRsZXI7XFxuZXhwb3J0IGNvbnN0IFBBVENIID0gaGFuZGxlcjtcXG5leHBvcnQgY29uc3QgREVMRVRFID0gaGFuZGxlcjtcXG5leHBvcnQgY29uc3QgSEVBRCA9IGhhbmRsZXI7XFxuZXhwb3J0IGNvbnN0IE9QVElPTlMgPSBoYW5kbGVyOy8sXG4gICAgICBgJHtOT1JNQUxJWkVfUkVRVUVTVF9DT0RFfVxuY29uc3QgY3JlYXRlU3ZlbHRlS2l0SGFuZGxlciA9IChtZXRob2QpID0+IGFzeW5jICh7IHJlcXVlc3QsIHBhcmFtcywgcGxhdGZvcm0gfSkgPT4ge1xuICBjb25zdCBub3JtYWxSZXF1ZXN0ID0gYXdhaXQgbm9ybWFsaXplUmVxdWVzdChyZXF1ZXN0KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBoYW5kbGVyKG5vcm1hbFJlcXVlc3QsIHBhcmFtcy50b2tlbik7XG4gIHJldHVybiByZXNwb25zZTtcbn07XG5cbmV4cG9ydCBjb25zdCBHRVQgPSBjcmVhdGVTdmVsdGVLaXRIYW5kbGVyKCdHRVQnKTtcbmV4cG9ydCBjb25zdCBQT1NUID0gY3JlYXRlU3ZlbHRlS2l0SGFuZGxlcignUE9TVCcpO1xuZXhwb3J0IGNvbnN0IFBVVCA9IGNyZWF0ZVN2ZWx0ZUtpdEhhbmRsZXIoJ1BVVCcpO1xuZXhwb3J0IGNvbnN0IFBBVENIID0gY3JlYXRlU3ZlbHRlS2l0SGFuZGxlcignUEFUQ0gnKTtcbmV4cG9ydCBjb25zdCBERUxFVEUgPSBjcmVhdGVTdmVsdGVLaXRIYW5kbGVyKCdERUxFVEUnKTtcbmV4cG9ydCBjb25zdCBIRUFEID0gY3JlYXRlU3ZlbHRlS2l0SGFuZGxlcignSEVBRCcpO1xuZXhwb3J0IGNvbnN0IE9QVElPTlMgPSBjcmVhdGVTdmVsdGVLaXRIYW5kbGVyKCdPUFRJT05TJyk7YFxuICAgICk7XG5cbiAgICBhd2FpdCB3cml0ZUZpbGUod2ViaG9va1JvdXRlRmlsZSwgd2ViaG9va1JvdXRlQ29udGVudCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRSb3V0ZXNEaXJlY3RvcnkoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByb3V0ZXNEaXIgPVxuICAgICAgdGhpcy4jcm91dGVzRGlyID8/IChhd2FpdCBsb2FkU3ZlbHRlS2l0Um91dGVzRGlyKHRoaXMuY29uZmlnLndvcmtpbmdEaXIpKTtcbiAgICBhd2FpdCBhc3NlcnREaXJlY3Rvcnkocm91dGVzRGlyKTtcbiAgICByZXR1cm4gcm91dGVzRGlyO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkU3ZlbHRlS2l0Um91dGVzRGlyKFxuICB3b3JraW5nRGlyOiBzdHJpbmdcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGpvaW4od29ya2luZ0RpciwgJ3BhY2thZ2UuanNvbicpKTtcbiAgY29uc3QgcGFja2FnZUpzb25QYXRoID0gcmVxdWlyZS5yZXNvbHZlKCdAc3ZlbHRlanMva2l0L3BhY2thZ2UuanNvbicpO1xuICBjb25zdCBsb2FkZXJQYXRoID0gam9pbihkaXJuYW1lKHBhY2thZ2VKc29uUGF0aCksICdzcmMvY29yZS9jb25maWcvaW5kZXguanMnKTtcblxuICBjb25zdCBjb25maWdNb2R1bGUgPSBhd2FpdCBpbXBvcnQocGF0aFRvRmlsZVVSTChsb2FkZXJQYXRoKS5ocmVmKTtcbiAgLy8gU3ZlbHRlS2l0IDIuNjIrIGBsb2FkX2NvbmZpZygpYCByZXNvbHZlcyBWaXRlIGNvbmZpZyBmaXJzdC4gQ2FsbGluZyBpdFxuICAvLyB3aGlsZSBgd29ya2Zsb3cvc3ZlbHRla2l0YCBpcyBpbXBvcnRlZCBmcm9tIHZpdGUuY29uZmlnLnRzIHJlY3Vyc2l2ZWx5XG4gIC8vIHJlbG9hZHMgdml0ZS5jb25maWcudHMgYW5kIGxlYXZlcyB0aGlzIHRvcC1sZXZlbCBidWlsZCB1bnJlc29sdmVkLlxuICBjb25zdCBjb25maWcgPVxuICAgIGNvbmZpZ01vZHVsZS5sb2FkX3N2ZWx0ZV9jb25maWcgIT0gbnVsbFxuICAgICAgPyBhd2FpdCBjb25maWdNb2R1bGUubG9hZF9zdmVsdGVfY29uZmlnKHdvcmtpbmdEaXIpXG4gICAgICA6IGF3YWl0IGNvbmZpZ01vZHVsZS5sb2FkX2NvbmZpZyh7IGN3ZDogd29ya2luZ0RpciB9KTtcbiAgY29uc3Qgcm91dGVzRGlyID0gY29uZmlnLmtpdD8uZmlsZXM/LnJvdXRlcztcbiAgaWYgKHJvdXRlc0RpciA9PSBudWxsIHx8IHR5cGVvZiByb3V0ZXNEaXIgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0V4cGVjdGVkIFN2ZWx0ZUtpdCBjb25maWcgbG9hZGVyIHRvIHJldHVybiBraXQuZmlsZXMucm91dGVzIGFzIGEgc3RyaW5nLidcbiAgICApO1xuICB9XG4gIHJldHVybiByb3V0ZXNEaXI7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFzc2VydERpcmVjdG9yeShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgYWNjZXNzKHBhdGgsIGNvbnN0YW50cy5GX09LKTtcbiAgY29uc3Qgc3RhdHMgPSBhd2FpdCBzdGF0KHBhdGgpO1xuICBpZiAoIXN0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGggZXhpc3RzIGJ1dCBpcyBub3QgYSBkaXJlY3Rvcnk6ICR7cGF0aH1gKTtcbiAgfVxufVxuIl19
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;CACjE;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,EAAE,CA6F5E"}
|
package/dist/plugin.js
CHANGED
|
@@ -1,14 +1,36 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { existsSync, readdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { createBuildQueue, ensureWorkflowTargetWorldEnv, resolveWorkflowTargetWorldAlias, WORKFLOW_NODE_COMPAT_BANNER, WORKFLOW_NODE_FILENAME_BANNER, WORKFLOW_OPTIONAL_PG_NATIVE_ALIAS, WORKFLOW_OPTIONAL_TYPESCRIPT_ALIAS, WORKFLOW_WORLD_TARGET_MODULE, } from '@workflow/builders';
|
|
2
4
|
import { workflowTransformPlugin } from '@workflow/rollup';
|
|
3
5
|
import { workflowHotUpdatePlugin } from '@workflow/vite';
|
|
4
6
|
import { SvelteKitBuilder } from './builder.js';
|
|
5
7
|
export function workflowPlugin(options = {}) {
|
|
6
|
-
|
|
8
|
+
let builder;
|
|
7
9
|
const enqueue = createBuildQueue();
|
|
8
10
|
return [
|
|
9
11
|
workflowTransformPlugin(),
|
|
10
12
|
{
|
|
11
13
|
name: 'workflow:sveltekit',
|
|
14
|
+
enforce: 'post',
|
|
15
|
+
config() {
|
|
16
|
+
const workflowTargetWorld = ensureWorkflowTargetWorldEnv();
|
|
17
|
+
const workflowTargetWorldAlias = resolveWorkflowTargetWorldAlias({
|
|
18
|
+
workingDir: process.cwd(),
|
|
19
|
+
targetWorld: workflowTargetWorld,
|
|
20
|
+
});
|
|
21
|
+
return {
|
|
22
|
+
define: {
|
|
23
|
+
'process.env.WORKFLOW_TARGET_WORLD': JSON.stringify(workflowTargetWorld),
|
|
24
|
+
},
|
|
25
|
+
resolve: {
|
|
26
|
+
alias: {
|
|
27
|
+
[WORKFLOW_WORLD_TARGET_MODULE]: workflowTargetWorldAlias,
|
|
28
|
+
'pg-native': WORKFLOW_OPTIONAL_PG_NATIVE_ALIAS,
|
|
29
|
+
typescript: WORKFLOW_OPTIONAL_TYPESCRIPT_ALIAS,
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
},
|
|
12
34
|
// SvelteKit bundles the server (including undici, via the world adapter)
|
|
13
35
|
// into ESM output. undici loads most node: builtins as ESM imports, but
|
|
14
36
|
// pulls in `node:http2` lazily via a bare `require('node:http2')` inside a
|
|
@@ -36,31 +58,80 @@ export function workflowPlugin(options = {}) {
|
|
|
36
58
|
// bundled lib that, on seeing `require`, does `require()` of an ESM-only
|
|
37
59
|
// dependency on a Node version without `require(ESM)` support.
|
|
38
60
|
configResolved(config) {
|
|
61
|
+
if (config.command === 'serve') {
|
|
62
|
+
builder = new SvelteKitBuilder({
|
|
63
|
+
workingDir: config.root,
|
|
64
|
+
sourcemap: options.sourcemap,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
39
67
|
if (!config.build?.ssr) {
|
|
40
68
|
return;
|
|
41
69
|
}
|
|
42
|
-
const banner =
|
|
70
|
+
const banner = WORKFLOW_NODE_COMPAT_BANNER;
|
|
43
71
|
const rollupOptions = config.build.rollupOptions;
|
|
44
|
-
|
|
45
|
-
rollupOptions.output = {};
|
|
46
|
-
}
|
|
72
|
+
rollupOptions.output ??= {};
|
|
47
73
|
const output = rollupOptions.output;
|
|
48
74
|
const outputs = Array.isArray(output) ? output : [output];
|
|
49
|
-
for (const
|
|
50
|
-
const existing =
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
75
|
+
for (const output of outputs) {
|
|
76
|
+
const existing = output.banner;
|
|
77
|
+
if (existing == null) {
|
|
78
|
+
output.banner = banner;
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
output.banner =
|
|
82
|
+
typeof existing === 'function'
|
|
83
|
+
? async (chunk) => `${banner}\n${await existing(chunk)}`
|
|
84
|
+
: `${banner}\n${existing}`;
|
|
57
85
|
}
|
|
58
86
|
},
|
|
87
|
+
closeBundle() {
|
|
88
|
+
patchAdapterNodeServerChunks(process.cwd());
|
|
89
|
+
},
|
|
59
90
|
},
|
|
60
91
|
workflowHotUpdatePlugin({
|
|
61
|
-
builder,
|
|
92
|
+
builder: () => builder,
|
|
62
93
|
enqueue,
|
|
63
94
|
}),
|
|
64
95
|
];
|
|
65
96
|
}
|
|
66
|
-
|
|
97
|
+
function patchAdapterNodeServerChunks(cwd) {
|
|
98
|
+
const serverDir = join(cwd, 'build/server');
|
|
99
|
+
if (!existsSync(serverDir)) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const banner = WORKFLOW_NODE_FILENAME_BANNER;
|
|
103
|
+
const visit = (dir) => {
|
|
104
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
105
|
+
const file = join(dir, entry.name);
|
|
106
|
+
if (entry.isDirectory()) {
|
|
107
|
+
visit(file);
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (!entry.isFile() || !entry.name.endsWith('.js')) {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const source = readFileSync(file, 'utf-8');
|
|
114
|
+
// Only patch chunks that reference __filename/__dirname without
|
|
115
|
+
// declaring their own binding. Prepending the banner onto a chunk
|
|
116
|
+
// that already declares either identifier (const/let/var, e.g. a
|
|
117
|
+
// CJS-interop shim) would produce a duplicate top-level declaration
|
|
118
|
+
// and crash the server with a SyntaxError at startup.
|
|
119
|
+
//
|
|
120
|
+
// The `(?![\w$])` lookaheads matter: when adapter-node re-bundles the
|
|
121
|
+
// intermediate output, rollup renames colliding declarations to e.g.
|
|
122
|
+
// `__filename$1`. A bare `\b` boundary matches those ($ is not a word
|
|
123
|
+
// character), which made this skip chunks that declare only a RENAMED
|
|
124
|
+
// binding while still referencing the bare `__filename` (observed with
|
|
125
|
+
// the bundled `typescript` compiler pulled in via cosmiconfig — the
|
|
126
|
+
// server crashed at boot with "__filename is not defined").
|
|
127
|
+
const referencesFilename = /(?<![\w$])__(?:file|dir)name(?![\w$])/.test(source);
|
|
128
|
+
const declaresOwnBinding = /\b(?:const|let|var)\s+__(?:file|dir)name(?![\w$])/.test(source);
|
|
129
|
+
if (!referencesFilename || declaresOwnBinding) {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
writeFileSync(file, `${banner}\n${source}`);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
visit(serverDir);
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQiw0QkFBNEIsRUFDNUIsK0JBQStCLEVBQy9CLDJCQUEyQixFQUMzQiw2QkFBNkIsRUFDN0IsaUNBQWlDLEVBQ2pDLGtDQUFrQyxFQUNsQyw0QkFBNEIsR0FDN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFZaEQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxVQUFpQyxFQUFFO0lBQ2hFLElBQUksT0FBcUMsQ0FBQztJQUMxQyxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRW5DLE9BQU87UUFDTCx1QkFBdUIsRUFBWTtRQUNuQztZQUNFLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsT0FBTyxFQUFFLE1BQU07WUFDZixNQUFNO2dCQUNKLE1BQU0sbUJBQW1CLEdBQUcsNEJBQTRCLEVBQUUsQ0FBQztnQkFDM0QsTUFBTSx3QkFBd0IsR0FBRywrQkFBK0IsQ0FBQztvQkFDL0QsVUFBVSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUU7b0JBQ3pCLFdBQVcsRUFBRSxtQkFBbUI7aUJBQ2pDLENBQUMsQ0FBQztnQkFDSCxPQUFPO29CQUNMLE1BQU0sRUFBRTt3QkFDTixtQ0FBbUMsRUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztx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QUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYywgcmVhZGRpclN5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge1xuICBjcmVhdGVCdWlsZFF1ZXVlLFxuICBlbnN1cmVXb3JrZmxvd1RhcmdldFdvcmxkRW52LFxuICByZXNvbHZlV29ya2Zsb3dUYXJnZXRXb3JsZEFsaWFzLFxuICBXT1JLRkxPV19OT0RFX0NPTVBBVF9CQU5ORVIsXG4gIFdPUktGTE9XX05PREVfRklMRU5BTUVfQkFOTkVSLFxuICBXT1JLRkxPV19PUFRJT05BTF9QR19OQVRJVkVfQUxJQVMsXG4gIFdPUktGTE9XX09QVElPTkFMX1RZUEVTQ1JJUFRfQUxJQVMsXG4gIFdPUktGTE9XX1dPUkxEX1RBUkdFVF9NT0RVTEUsXG59IGZyb20gJ0B3b3JrZmxvdy9idWlsZGVycyc7XG5pbXBvcnQgeyB3b3JrZmxvd1RyYW5zZm9ybVBsdWdpbiB9IGZyb20gJ0B3b3JrZmxvdy9yb2xsdXAnO1xuaW1wb3J0IHsgd29ya2Zsb3dIb3RVcGRhdGVQbHVnaW4gfSBmcm9tICdAd29ya2Zsb3cvdml0ZSc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHsgU3ZlbHRlS2l0QnVpbGRlciB9IGZyb20gJy4vYnVpbGRlci5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dQbHVnaW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIENvbnRyb2xzIGhvdyBzb3VyY2UgbWFwcyBhcmUgZW1pdHRlZCBmb3Igd29ya2Zsb3cgYnVuZGxlcy4gQWNjZXB0cyB0aGVcbiAgICogc2FtZSB2YWx1ZXMgYXMgZXNidWlsZCdzIGBzb3VyY2VtYXBgIG9wdGlvbjogYHRydWVgL2AnaW5saW5lJ2AgKGRlZmF1bHQpLFxuICAgKiBgJ2xpbmtlZCdgLCBgJ2V4dGVybmFsJ2AsIGAnYm90aCdgLCBvciBgZmFsc2VgIHRvIG9taXQgc291cmNlIG1hcHMuIENhblxuICAgKiBhbHNvIGJlIHNldCB2aWEgdGhlIGBXT1JLRkxPV19TT1VSQ0VNQVBgIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgc291cmNlbWFwPzogYm9vbGVhbiB8ICdpbmxpbmUnIHwgJ2xpbmtlZCcgfCAnZXh0ZXJuYWwnIHwgJ2JvdGgnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd29ya2Zsb3dQbHVnaW4ob3B0aW9uczogV29ya2Zsb3dQbHVnaW5PcHRpb25zID0ge30pOiBQbHVnaW5bXSB7XG4gIGxldCBidWlsZGVyOiBTdmVsdGVLaXRCdWlsZGVyIHwgdW5kZWZpbmVkO1xuICBjb25zdCBlbnF1ZXVlID0gY3JlYXRlQnVpbGRRdWV1ZSgpO1xuXG4gIHJldHVybiBbXG4gICAgd29ya2Zsb3dUcmFuc2Zvcm1QbHVnaW4oKSBhcyBQbHVnaW4sXG4gICAge1xuICAgICAgbmFtZTogJ3dvcmtmbG93OnN2ZWx0ZWtpdCcsXG4gICAgICBlbmZvcmNlOiAncG9zdCcsXG4gICAgICBjb25maWcoKSB7XG4gICAgICAgIGNvbnN0IHdvcmtmbG93VGFyZ2V0V29ybGQgPSBlbnN1cmVXb3JrZmxvd1RhcmdldFdvcmxkRW52KCk7XG4gICAgICAgIGNvbnN0IHdvcmtmbG93VGFyZ2V0V29ybGRBbGlhcyA9IHJlc29sdmVXb3JrZmxvd1RhcmdldFdvcmxkQWxpYXMoe1xuICAgICAgICAgIHdvcmtpbmdEaXI6IHByb2Nlc3MuY3dkKCksXG4gICAgICAgICAgdGFyZ2V0V29ybGQ6IHdvcmtmbG93VGFyZ2V0V29ybGQsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRlZmluZToge1xuICAgICAgICAgICAgJ3Byb2Nlc3MuZW52LldPUktGTE9XX1RBUkdFVF9XT1JMRCc6XG4gICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHdvcmtmbG93VGFyZ2V0V29ybGQpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzb2x2ZToge1xuICAgICAgICAgICAgYWxpYXM6IHtcbiAgICAgICAgICAgICAgW1dPUktGTE9XX1dPUkxEX1RBUkdFVF9NT0RVTEVdOiB3b3JrZmxvd1RhcmdldFdvcmxkQWxpYXMsXG4gICAgICAgICAgICAgICdwZy1uYXRpdmUnOiBXT1JLRkxPV19PUFRJT05BTF9QR19OQVRJVkVfQUxJQVMsXG4gICAgICAgICAgICAgIHR5cGVzY3JpcHQ6IFdPUktGTE9XX09QVElPTkFMX1RZUEVTQ1JJUFRfQUxJQVMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgLy8gU3ZlbHRlS2l0IGJ1bmRsZXMgdGhlIHNlcnZlciAoaW5jbHVkaW5nIHVuZGljaSwgdmlhIHRoZSB3b3JsZCBhZGFwdGVyKVxuICAgICAgLy8gaW50byBFU00gb3V0cHV0LiB1bmRpY2kgbG9hZHMgbW9zdCBub2RlOiBidWlsdGlucyBhcyBFU00gaW1wb3J0cywgYnV0XG4gICAgICAvLyBwdWxscyBpbiBgbm9kZTpodHRwMmAgbGF6aWx5IHZpYSBhIGJhcmUgYHJlcXVpcmUoJ25vZGU6aHR0cDInKWAgaW5zaWRlIGFcbiAgICAgIC8vIHRyeS9jYXRjaCDigJQgd2hpY2ggdGhlIGJ1bmRsZXIgbGVhdmVzIHVuLXdpcmVkLCBzbyBpbiB0aGUgRVNNIGJ1bmRsZSB0aGVcbiAgICAgIC8vIHJlcXVpcmUgdGhyb3dzIGFuZCB1bmRpY2kgc2lsZW50bHkgZmFsbHMgYmFjayB0byBhIHN0dWIgd2hvc2VcbiAgICAgIC8vIGBodHRwMi5jb25uZWN0YCBpcyB1bmRlZmluZWQuIFRoYXQgYnJlYWtzIGFueSBIVFRQLzIgcmVxdWVzdCAob2JzZXJ2ZWRcbiAgICAgIC8vIGFzIHRoZSB3b3JrZmxvdyBmbG93LXJvdXRlIGNhbGxiYWNrIGZhaWxpbmcgd2l0aCBcImZldGNoIGZhaWxlZFwiIC0+XG4gICAgICAvLyBydW5zIG5ldmVyIHN0YXJ0KS4gUHJvdmlkZSBhIHdvcmtpbmcgQ0pTIGByZXF1aXJlYCBmb3IgdGhlICpzZXJ2ZXIqXG4gICAgICAvLyBidWlsZCBzbyB0aGUgcmVhbCBgbm9kZTpodHRwMmAgcmVzb2x2ZXMuXG4gICAgICAvL1xuICAgICAgLy8gRGV0ZWN0aW9uIHJ1bnMgaW4gYGNvbmZpZ1Jlc29sdmVkYCAobm90IHRoZSBgY29uZmlnYCBob29rKTogU3ZlbHRlS2l0XG4gICAgICAvLyBkb2VzIG5vdCBzZXQgYGVudi5pc1NzckJ1aWxkYCBmb3IgaXRzIHNlcnZlciBwYXNzLCBidXQgYGJ1aWxkLnNzcmAgaXNcbiAgICAgIC8vIHNldCBvbiB0aGUgcmVzb2x2ZWQgY29uZmlnLiBXZSBnYXRlIHRvIHRoZSBTU1IgYnVpbGQgYmVjYXVzZSBhXG4gICAgICAvLyBgbm9kZTptb2R1bGVgIGltcG9ydCBpbiB0aGUgY2xpZW50L2Jyb3dzZXIgYnVuZGxlIHdvdWxkIGJyZWFrIGl0LlxuICAgICAgLy9cbiAgICAgIC8vIFRoaXMgaXMgYSBOb2RlLXNlcnZlci1ydW50aW1lLW9ubHkgc2hpbS4gTm90ZSB0aGUgZGVsaWJlcmF0ZSBnbG9iYWxcbiAgICAgIC8vIHNpZGUgZWZmZWN0OiBkZWZpbmluZyBgZ2xvYmFsVGhpcy5yZXF1aXJlYCBtYWtlcyBgdHlwZW9mIHJlcXVpcmVgIHRydXRoeVxuICAgICAgLy8gZm9yICpldmVyeSogYnVuZGxlZCBkZXBlbmRlbmN5IGluIHRoaXMgRVNNIHNlcnZlciBvdXRwdXQsIHNvIGFueSBsaWJyYXJ5XG4gICAgICAvLyB0aGF0IGZlYXR1cmUtZGV0ZWN0cyBgcmVxdWlyZWAgd2lsbCB0YWtlIGl0cyBDSlMgcGF0aCBoZXJlLiBUaGF0IGlzIHNhZmVcbiAgICAgIC8vIGJlY2F1c2UgKGEpIGl0IG5ldmVyIHRvdWNoZXMgdGhlIGNsaWVudCBidW5kbGUsIChiKSB0aGUgYHR5cGVvZiByZXF1aXJlXG4gICAgICAvLyA9PT0gJ3VuZGVmaW5lZCdgIGd1YXJkIG1ha2VzIGl0IGEgbm8tb3AgaW4gQ0pTIGNodW5rcyB3aGVyZSBhIHJlYWxcbiAgICAgIC8vIGByZXF1aXJlYCBhbHJlYWR5IGV4aXN0cywgYW5kIChjKSB0aGUgYHJlcXVpcmVgIHdlIGluc3RhbGwgaXMgYSB3b3JraW5nXG4gICAgICAvLyBgY3JlYXRlUmVxdWlyZWAsIHNvIGEgbGlicmFyeSB0aGF0IHN3aXRjaGVzIHRvIHRoZSByZXF1aXJlIHBhdGggZ2V0cyBhXG4gICAgICAvLyBmdW5jdGlvbmFsIGByZXF1aXJlYCwgbm90IGEgYnJva2VuIHN0dWIuIFRoZSBiZWhhdmlvciB0byB3YXRjaCBmb3IgaXMgYVxuICAgICAgLy8gYnVuZGxlZCBsaWIgdGhhdCwgb24gc2VlaW5nIGByZXF1aXJlYCwgZG9lcyBgcmVxdWlyZSgpYCBvZiBhbiBFU00tb25seVxuICAgICAgLy8gZGVwZW5kZW5jeSBvbiBhIE5vZGUgdmVyc2lvbiB3aXRob3V0IGByZXF1aXJlKEVTTSlgIHN1cHBvcnQuXG4gICAgICBjb25maWdSZXNvbHZlZChjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZy5jb21tYW5kID09PSAnc2VydmUnKSB7XG4gICAgICAgICAgYnVpbGRlciA9IG5ldyBTdmVsdGVLaXRCdWlsZGVyKHtcbiAgICAgICAgICAgIHdvcmtpbmdEaXI6IGNvbmZpZy5yb290LFxuICAgICAgICAgICAgc291cmNlbWFwOiBvcHRpb25zLnNvdXJjZW1hcCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY29uZmlnLmJ1aWxkPy5zc3IpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBiYW5uZXIgPSBXT1JLRkxPV19OT0RFX0NPTVBBVF9CQU5ORVI7XG4gICAgICAgIGNvbnN0IHJvbGx1cE9wdGlvbnMgPSBjb25maWcuYnVpbGQucm9sbHVwT3B0aW9ucztcbiAgICAgICAgcm9sbHVwT3B0aW9ucy5vdXRwdXQgPz89IHt9O1xuICAgICAgICBjb25zdCBvdXRwdXQgPSByb2xsdXBPcHRpb25zLm91dHB1dDtcbiAgICAgICAgY29uc3Qgb3V0cHV0cyA9IEFycmF5LmlzQXJyYXkob3V0cHV0KSA/IG91dHB1dCA6IFtvdXRwdXRdO1xuICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBvdXRwdXRzKSB7XG4gICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBvdXRwdXQuYmFubmVyO1xuICAgICAgICAgIGlmIChleGlzdGluZyA9PSBudWxsKSB7XG4gICAgICAgICAgICBvdXRwdXQuYmFubmVyID0gYmFubmVyO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dHB1dC5iYW5uZXIgPVxuICAgICAgICAgICAgdHlwZW9mIGV4aXN0aW5nID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgID8gYXN5bmMgKGNodW5rKSA9PiBgJHtiYW5uZXJ9XFxuJHthd2FpdCBleGlzdGluZyhjaHVuayl9YFxuICAgICAgICAgICAgICA6IGAke2Jhbm5lcn1cXG4ke2V4aXN0aW5nfWA7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjbG9zZUJ1bmRsZSgpIHtcbiAgICAgICAgcGF0Y2hBZGFwdGVyTm9kZVNlcnZlckNodW5rcyhwcm9jZXNzLmN3ZCgpKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB3b3JrZmxvd0hvdFVwZGF0ZVBsdWdpbih7XG4gICAgICBidWlsZGVyOiAoKSA9PiBidWlsZGVyLFxuICAgICAgZW5xdWV1ZSxcbiAgICB9KSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gcGF0Y2hBZGFwdGVyTm9kZVNlcnZlckNodW5rcyhjd2Q6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBzZXJ2ZXJEaXIgPSBqb2luKGN3ZCwgJ2J1aWxkL3NlcnZlcicpO1xuICBpZiAoIWV4aXN0c1N5bmMoc2VydmVyRGlyKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGJhbm5lciA9IFdPUktGTE9XX05PREVfRklMRU5BTUVfQkFOTkVSO1xuXG4gIGNvbnN0IHZpc2l0ID0gKGRpcjogc3RyaW5nKSA9PiB7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiByZWFkZGlyU3luYyhkaXIsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KSkge1xuICAgICAgY29uc3QgZmlsZSA9IGpvaW4oZGlyLCBlbnRyeS5uYW1lKTtcbiAgICAgIGlmIChlbnRyeS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIHZpc2l0KGZpbGUpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICghZW50cnkuaXNGaWxlKCkgfHwgIWVudHJ5Lm5hbWUuZW5kc1dpdGgoJy5qcycpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzb3VyY2UgPSByZWFkRmlsZVN5bmMoZmlsZSwgJ3V0Zi04Jyk7XG4gICAgICAvLyBPbmx5IHBhdGNoIGNodW5rcyB0aGF0IHJlZmVyZW5jZSBfX2ZpbGVuYW1lL19fZGlybmFtZSB3aXRob3V0XG4gICAgICAvLyBkZWNsYXJpbmcgdGhlaXIgb3duIGJpbmRpbmcuIFByZXBlbmRpbmcgdGhlIGJhbm5lciBvbnRvIGEgY2h1bmtcbiAgICAgIC8vIHRoYXQgYWxyZWFkeSBkZWNsYXJlcyBlaXRoZXIgaWRlbnRpZmllciAoY29uc3QvbGV0L3ZhciwgZS5nLiBhXG4gICAgICAvLyBDSlMtaW50ZXJvcCBzaGltKSB3b3VsZCBwcm9kdWNlIGEgZHVwbGljYXRlIHRvcC1sZXZlbCBkZWNsYXJhdGlvblxuICAgICAgLy8gYW5kIGNyYXNoIHRoZSBzZXJ2ZXIgd2l0aCBhIFN5bnRheEVycm9yIGF0IHN0YXJ0dXAuXG4gICAgICAvL1xuICAgICAgLy8gVGhlIGAoPyFbXFx3JF0pYCBsb29rYWhlYWRzIG1hdHRlcjogd2hlbiBhZGFwdGVyLW5vZGUgcmUtYnVuZGxlcyB0aGVcbiAgICAgIC8vIGludGVybWVkaWF0ZSBvdXRwdXQsIHJvbGx1cCByZW5hbWVzIGNvbGxpZGluZyBkZWNsYXJhdGlvbnMgdG8gZS5nLlxuICAgICAgLy8gYF9fZmlsZW5hbWUkMWAuIEEgYmFyZSBgXFxiYCBib3VuZGFyeSBtYXRjaGVzIHRob3NlICgkIGlzIG5vdCBhIHdvcmRcbiAgICAgIC8vIGNoYXJhY3RlciksIHdoaWNoIG1hZGUgdGhpcyBza2lwIGNodW5rcyB0aGF0IGRlY2xhcmUgb25seSBhIFJFTkFNRURcbiAgICAgIC8vIGJpbmRpbmcgd2hpbGUgc3RpbGwgcmVmZXJlbmNpbmcgdGhlIGJhcmUgYF9fZmlsZW5hbWVgIChvYnNlcnZlZCB3aXRoXG4gICAgICAvLyB0aGUgYnVuZGxlZCBgdHlwZXNjcmlwdGAgY29tcGlsZXIgcHVsbGVkIGluIHZpYSBjb3NtaWNvbmZpZyDigJQgdGhlXG4gICAgICAvLyBzZXJ2ZXIgY3Jhc2hlZCBhdCBib290IHdpdGggXCJfX2ZpbGVuYW1lIGlzIG5vdCBkZWZpbmVkXCIpLlxuICAgICAgY29uc3QgcmVmZXJlbmNlc0ZpbGVuYW1lID0gLyg/PCFbXFx3JF0pX18oPzpmaWxlfGRpciluYW1lKD8hW1xcdyRdKS8udGVzdChcbiAgICAgICAgc291cmNlXG4gICAgICApO1xuICAgICAgY29uc3QgZGVjbGFyZXNPd25CaW5kaW5nID1cbiAgICAgICAgL1xcYig/OmNvbnN0fGxldHx2YXIpXFxzK19fKD86ZmlsZXxkaXIpbmFtZSg/IVtcXHckXSkvLnRlc3Qoc291cmNlKTtcbiAgICAgIGlmICghcmVmZXJlbmNlc0ZpbGVuYW1lIHx8IGRlY2xhcmVzT3duQmluZGluZykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgd3JpdGVGaWxlU3luYyhmaWxlLCBgJHtiYW5uZXJ9XFxuJHtzb3VyY2V9YCk7XG4gICAgfVxuICB9O1xuXG4gIHZpc2l0KHNlcnZlckRpcik7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/sveltekit",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.28",
|
|
4
4
|
"description": "SvelteKit integration for Workflow SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
"exsolve": "^1.0.8",
|
|
25
25
|
"fs-extra": "^11.3.2",
|
|
26
26
|
"pathe": "^2.0.3",
|
|
27
|
-
"@workflow/builders": "5.0.0-beta.
|
|
28
|
-
"@workflow/rollup": "5.0.0-beta.
|
|
27
|
+
"@workflow/builders": "5.0.0-beta.28",
|
|
28
|
+
"@workflow/rollup": "5.0.0-beta.28",
|
|
29
29
|
"@workflow/swc-plugin": "5.0.0-beta.5",
|
|
30
|
-
"@workflow/vite": "5.0.0-beta.
|
|
30
|
+
"@workflow/vite": "5.0.0-beta.28"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/fs-extra": "11.0.4",
|