@workflow/nitro 4.1.1 → 4.1.3
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/README.md +2 -0
- package/dist/builders.d.ts.map +1 -1
- package/dist/builders.js +14 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +78 -16
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +7 -8
- package/package.json +9 -9
package/README.md
CHANGED
package/dist/builders.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAEX,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAEX,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAczC,qBAAa,aAAc,SAAQ,2BAA2B;gBAChD,KAAK,EAAE,KAAK;IAWT,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAetC;AAED,qBAAa,YAAa,SAAQ,WAAW;;gBAE/B,KAAK,EAAE,KAAK;IAcT,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA4CtC"}
|
package/dist/builders.js
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { BaseBuilder, createBaseBuilderConfig, VercelBuildOutputAPIBuilder, } from '@workflow/builders';
|
|
3
3
|
import { join } from 'pathe';
|
|
4
|
+
const FLOW_ROUTE = '^\\/\\.well-known\\/workflow\\/v1\\/flow$';
|
|
5
|
+
const STEP_ROUTE = '^\\/\\.well-known\\/workflow\\/v1\\/step$';
|
|
6
|
+
function getNitroProjectRoot(nitro) {
|
|
7
|
+
return nitro.options.workspaceDir ?? nitro.options.rootDir;
|
|
8
|
+
}
|
|
9
|
+
function getNitroWorkflowDirs(nitro) {
|
|
10
|
+
return nitro.options.workflow?.dirs ?? ['.'];
|
|
11
|
+
}
|
|
4
12
|
export class VercelBuilder extends VercelBuildOutputAPIBuilder {
|
|
5
13
|
constructor(nitro) {
|
|
6
14
|
super({
|
|
7
15
|
...createBaseBuilderConfig({
|
|
8
16
|
workingDir: nitro.options.rootDir,
|
|
9
|
-
|
|
17
|
+
projectRoot: getNitroProjectRoot(nitro),
|
|
18
|
+
dirs: getNitroWorkflowDirs(nitro),
|
|
10
19
|
runtime: nitro.options.workflow?.runtime,
|
|
11
20
|
}),
|
|
12
21
|
buildTarget: 'vercel-build-output-api',
|
|
@@ -17,7 +26,7 @@ export class VercelBuilder extends VercelBuildOutputAPIBuilder {
|
|
|
17
26
|
const originalConfig = JSON.parse(await readFile(configPath, 'utf-8'));
|
|
18
27
|
await super.build();
|
|
19
28
|
const newConfig = JSON.parse(await readFile(configPath, 'utf-8'));
|
|
20
|
-
originalConfig.routes.unshift(...newConfig.routes);
|
|
29
|
+
originalConfig.routes.unshift({ src: FLOW_ROUTE, dest: '/.well-known/workflow/v1/flow' }, { src: STEP_ROUTE, dest: '/.well-known/workflow/v1/step' }, ...newConfig.routes);
|
|
21
30
|
await writeFile(configPath, JSON.stringify(originalConfig, null, 2));
|
|
22
31
|
}
|
|
23
32
|
}
|
|
@@ -28,8 +37,9 @@ export class LocalBuilder extends BaseBuilder {
|
|
|
28
37
|
super({
|
|
29
38
|
...createBaseBuilderConfig({
|
|
30
39
|
workingDir: nitro.options.rootDir,
|
|
40
|
+
projectRoot: getNitroProjectRoot(nitro),
|
|
31
41
|
watch: nitro.options.dev,
|
|
32
|
-
dirs:
|
|
42
|
+
dirs: getNitroWorkflowDirs(nitro),
|
|
33
43
|
}),
|
|
34
44
|
buildTarget: 'next', // Placeholder, not actually used
|
|
35
45
|
});
|
|
@@ -74,4 +84,4 @@ export class LocalBuilder extends BaseBuilder {
|
|
|
74
84
|
});
|
|
75
85
|
}
|
|
76
86
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUQsT0FBTyxFQUNMLFdBQVcsRUFDWCx1QkFBdUIsRUFDdkIsMkJBQTJCLEdBQzVCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU3QixNQUFNLFVBQVUsR0FBRywyQ0FBMkMsQ0FBQztBQUMvRCxNQUFNLFVBQVUsR0FBRywyQ0FBMkMsQ0FBQztBQUUvRCxTQUFTLG1CQUFtQixDQUFDLEtBQVk7SUFDdkMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztBQUM3RCxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxLQUFZO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sT0FBTyxhQUFjLFNBQVEsMkJBQTJCO0lBQzVELFlBQVksS0FBWTtRQUN0QixLQUFLLENBQUM7WUFDSixHQUFHLHVCQUF1QixDQUFDO2dCQUN6QixVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPO2dCQUNqQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsS0FBSyxDQUFDO2dCQUN2QyxJQUFJLEVBQUUsb0JBQW9CLENBQUMsS0FBSyxDQUFDO2dCQUNqQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTzthQUN6QyxDQUFDO1lBQ0YsV0FBVyxFQUFFLHlCQUF5QjtTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ1EsS0FBSyxDQUFDLEtBQUs7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Q3BDLE1BQU0sUUFBUSxHQUFHO1lBQ2YsS0FBSyxFQUFFLEVBQUUsR0FBRyxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFO1lBQzdELFNBQVMsRUFBRSxFQUFFLEdBQUcsYUFBYSxDQUFDLFNBQVMsRUFBRSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsRUFBRTtZQUN6RSxPQUFPLEVBQUUsRUFBRSxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7U0FDcEUsQ0FBQztRQUVGLG9CQUFvQjtRQUNwQixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN4QixrQkFBa0I7WUFDbEIsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3pCLFFBQVE7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBta2RpciwgcmVhZEZpbGUsIHdyaXRlRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHtcbiAgQmFzZUJ1aWxkZXIsXG4gIGNyZWF0ZUJhc2VCdWlsZGVyQ29uZmlnLFxuICBWZXJjZWxCdWlsZE91dHB1dEFQSUJ1aWxkZXIsXG59IGZyb20gJ0B3b3JrZmxvdy9idWlsZGVycyc7XG5pbXBvcnQgdHlwZSB7IE5pdHJvIH0gZnJvbSAnbml0cm8vdHlwZXMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGhlJztcblxuY29uc3QgRkxPV19ST1VURSA9ICdeXFxcXC9cXFxcLndlbGwta25vd25cXFxcL3dvcmtmbG93XFxcXC92MVxcXFwvZmxvdyQnO1xuY29uc3QgU1RFUF9ST1VURSA9ICdeXFxcXC9cXFxcLndlbGwta25vd25cXFxcL3dvcmtmbG93XFxcXC92MVxcXFwvc3RlcCQnO1xuXG5mdW5jdGlvbiBnZXROaXRyb1Byb2plY3RSb290KG5pdHJvOiBOaXRybyk6IHN0cmluZyB7XG4gIHJldHVybiBuaXRyby5vcHRpb25zLndvcmtzcGFjZURpciA/PyBuaXRyby5vcHRpb25zLnJvb3REaXI7XG59XG5cbmZ1bmN0aW9uIGdldE5pdHJvV29ya2Zsb3dEaXJzKG5pdHJvOiBOaXRybyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIG5pdHJvLm9wdGlvbnMud29ya2Zsb3c/LmRpcnMgPz8gWycuJ107XG59XG5cbmV4cG9ydCBjbGFzcyBWZXJjZWxCdWlsZGVyIGV4dGVuZHMgVmVyY2VsQnVpbGRPdXRwdXRBUElCdWlsZGVyIHtcbiAgY29uc3RydWN0b3Iobml0cm86IE5pdHJvKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4uY3JlYXRlQmFzZUJ1aWxkZXJDb25maWcoe1xuICAgICAgICB3b3JraW5nRGlyOiBuaXRyby5vcHRpb25zLnJvb3REaXIsXG4gICAgICAgIHByb2plY3RSb290OiBnZXROaXRyb1Byb2plY3RSb290KG5pdHJvKSxcbiAgICAgICAgZGlyczogZ2V0Tml0cm9Xb3JrZmxvd0RpcnMobml0cm8pLFxuICAgICAgICBydW50aW1lOiBuaXRyby5vcHRpb25zLndvcmtmbG93Py5ydW50aW1lLFxuICAgICAgfSksXG4gICAgICBidWlsZFRhcmdldDogJ3ZlcmNlbC1idWlsZC1vdXRwdXQtYXBpJyxcbiAgICB9KTtcbiAgfVxuICBvdmVycmlkZSBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb25maWdQYXRoID0gam9pbihcbiAgICAgIHRoaXMuY29uZmlnLndvcmtpbmdEaXIsXG4gICAgICAnLnZlcmNlbC9vdXRwdXQvY29uZmlnLmpzb24nXG4gICAgKTtcbiAgICBjb25zdCBvcmlnaW5hbENvbmZpZyA9IEpTT04ucGFyc2UoYXdhaXQgcmVhZEZpbGUoY29uZmlnUGF0aCwgJ3V0Zi04JykpO1xuICAgIGF3YWl0IHN1cGVyLmJ1aWxkKCk7XG4gICAgY29uc3QgbmV3Q29uZmlnID0gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShjb25maWdQYXRoLCAndXRmLTgnKSk7XG4gICAgb3JpZ2luYWxDb25maWcucm91dGVzLnVuc2hpZnQoXG4gICAgICB7IHNyYzogRkxPV19ST1VURSwgZGVzdDogJy8ud2VsbC1rbm93bi93b3JrZmxvdy92MS9mbG93JyB9LFxuICAgICAgeyBzcmM6IFNURVBfUk9VVEUsIGRlc3Q6ICcvLndlbGwta25vd24vd29ya2Zsb3cvdjEvc3RlcCcgfSxcbiAgICAgIC4uLm5ld0NvbmZpZy5yb3V0ZXNcbiAgICApO1xuICAgIGF3YWl0IHdyaXRlRmlsZShjb25maWdQYXRoLCBKU09OLnN0cmluZ2lmeShvcmlnaW5hbENvbmZpZywgbnVsbCwgMikpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2NhbEJ1aWxkZXIgZXh0ZW5kcyBCYXNlQnVpbGRlciB7XG4gICNvdXREaXI6IHN0cmluZztcbiAgY29uc3RydWN0b3Iobml0cm86IE5pdHJvKSB7XG4gICAgY29uc3Qgb3V0RGlyID0gam9pbihuaXRyby5vcHRpb25zLmJ1aWxkRGlyLCAnd29ya2Zsb3cnKTtcbiAgICBzdXBlcih7XG4gICAgICAuLi5jcmVhdGVCYXNlQnVpbGRlckNvbmZpZyh7XG4gICAgICAgIHdvcmtpbmdEaXI6IG5pdHJvLm9wdGlvbnMucm9vdERpcixcbiAgICAgICAgcHJvamVjdFJvb3Q6IGdldE5pdHJvUHJvamVjdFJvb3Qobml0cm8pLFxuICAgICAgICB3YXRjaDogbml0cm8ub3B0aW9ucy5kZXYsXG4gICAgICAgIGRpcnM6IGdldE5pdHJvV29ya2Zsb3dEaXJzKG5pdHJvKSxcbiAgICAgIH0pLFxuICAgICAgYnVpbGRUYXJnZXQ6ICduZXh0JywgLy8gUGxhY2Vob2xkZXIsIG5vdCBhY3R1YWxseSB1c2VkXG4gICAgfSk7XG4gICAgdGhpcy4jb3V0RGlyID0gb3V0RGlyO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5wdXRGaWxlcyA9IGF3YWl0IHRoaXMuZ2V0SW5wdXRGaWxlcygpO1xuICAgIGF3YWl0IG1rZGlyKHRoaXMuI291dERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICBjb25zdCB7IG1hbmlmZXN0OiB3b3JrZmxvd3NNYW5pZmVzdCB9ID0gYXdhaXQgdGhpcy5jcmVhdGVXb3JrZmxvd3NCdW5kbGUoe1xuICAgICAgb3V0ZmlsZTogam9pbih0aGlzLiNvdXREaXIsICd3b3JrZmxvd3MubWpzJyksXG4gICAgICBidW5kbGVGaW5hbE91dHB1dDogZmFsc2UsXG4gICAgICBmb3JtYXQ6ICdlc20nLFxuICAgICAgaW5wdXRGaWxlcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHsgbWFuaWZlc3Q6IHN0ZXBzTWFuaWZlc3QgfSA9IGF3YWl0IHRoaXMuY3JlYXRlU3RlcHNCdW5kbGUoe1xuICAgICAgb3V0ZmlsZTogam9pbih0aGlzLiNvdXREaXIsICdzdGVwcy5tanMnKSxcbiAgICAgIGV4dGVybmFsaXplTm9uU3RlcHM6IHRydWUsXG4gICAgICAvLyBJbiBkZXYsIE5pdHJvIGR5bmFtaWNhbGx5IGltcG9ydHMgdGhlIGdlbmVyYXRlZCB3b3JrZmxvdyBmaWxlcyBmcm9tXG4gICAgICAvLyBkaXNrLCBzbyB0aGVyZSBpcyBubyBsYXRlciBSb2xsdXAgcGFzcyB0byByZXNvbHZlIGV4dGVybmFsaXplZCBsb2NhbFxuICAgICAgLy8gVHlwZVNjcmlwdCBpbXBvcnRzLiBJbiBwcm9kLCBOaXRyby9Sb2xsdXAgaGFuZGxlcyB0aG9zZSBpbXBvcnRzLlxuICAgICAgYnVuZGxlVHJhbnNpdGl2ZUxvY2FsU3RlcERlcGVuZGVuY2llczogdGhpcy5jb25maWcud2F0Y2gsXG4gICAgICBmb3JtYXQ6ICdlc20nLFxuICAgICAgaW5wdXRGaWxlcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHdlYmhvb2tSb3V0ZUZpbGUgPSBqb2luKHRoaXMuI291dERpciwgJ3dlYmhvb2subWpzJyk7XG5cbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVdlYmhvb2tCdW5kbGUoe1xuICAgICAgb3V0ZmlsZTogd2ViaG9va1JvdXRlRmlsZSxcbiAgICAgIGJ1bmRsZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICAvLyBNZXJnZSBtYW5pZmVzdHMgZnJvbSBib3RoIGJ1bmRsZXNcbiAgICBjb25zdCBtYW5pZmVzdCA9IHtcbiAgICAgIHN0ZXBzOiB7IC4uLnN0ZXBzTWFuaWZlc3Quc3RlcHMsIC4uLndvcmtmbG93c01hbmlmZXN0LnN0ZXBzIH0sXG4gICAgICB3b3JrZmxvd3M6IHsgLi4uc3RlcHNNYW5pZmVzdC53b3JrZmxvd3MsIC4uLndvcmtmbG93c01hbmlmZXN0LndvcmtmbG93cyB9LFxuICAgICAgY2xhc3NlczogeyAuLi5zdGVwc01hbmlmZXN0LmNsYXNzZXMsIC4uLndvcmtmbG93c01hbmlmZXN0LmNsYXNzZXMgfSxcbiAgICB9O1xuXG4gICAgLy8gR2VuZXJhdGUgbWFuaWZlc3RcbiAgICBjb25zdCB3b3JrZmxvd0J1bmRsZVBhdGggPSBqb2luKHRoaXMuI291dERpciwgJ3dvcmtmbG93cy5tanMnKTtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZU1hbmlmZXN0KHtcbiAgICAgIHdvcmtmbG93QnVuZGxlUGF0aCxcbiAgICAgIG1hbmlmZXN0RGlyOiB0aGlzLiNvdXREaXIsXG4gICAgICBtYW5pZmVzdCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { ModuleOptions } from './types';
|
|
|
3
3
|
export type { ModuleOptions };
|
|
4
4
|
declare const _default: {
|
|
5
5
|
name: string;
|
|
6
|
-
setup(
|
|
6
|
+
setup(nitro: Nitro): Promise<void>;
|
|
7
7
|
};
|
|
8
8
|
export default _default;
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,aAAa,CAAC;AAGpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,YAAY,EAAE,aAAa,EAAE,CAAC;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,aAAa,CAAC;AAGpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,YAAY,EAAE,aAAa,EAAE,CAAC;;;iBAIT,KAAK;;AAF1B,wBAoHwB"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';
|
|
2
1
|
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
3
|
import { pathToFileURL } from 'node:url';
|
|
4
4
|
import { workflowTransformPlugin } from '@workflow/rollup';
|
|
5
5
|
import { join } from 'pathe';
|
|
@@ -8,28 +8,21 @@ export default {
|
|
|
8
8
|
name: 'workflow/nitro',
|
|
9
9
|
async setup(nitro) {
|
|
10
10
|
const isVercelDeploy = !nitro.options.dev && nitro.options.preset === 'vercel';
|
|
11
|
-
//
|
|
12
|
-
|
|
11
|
+
// Nitro build artifacts have already been transformed; exclude the whole
|
|
12
|
+
// build directory from re-transformation.
|
|
13
|
+
const nitroBuildDir = `${nitro.options.buildDir.replace(/[\\/]+$/, '')}/`;
|
|
13
14
|
// Add transform plugin at the BEGINNING to run before other transforms
|
|
14
15
|
// (especially before class property transforms that rename classes like _ClassName)
|
|
15
16
|
nitro.hooks.hook('rollup:before', (_nitro, config) => {
|
|
16
17
|
config.plugins.unshift(workflowTransformPlugin({
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
|
|
20
|
-
exclude: [workflowBuildDir],
|
|
18
|
+
// Nitro build artifacts have already been transformed.
|
|
19
|
+
// Re-processing them can duplicate class registration.
|
|
20
|
+
exclude: [nitroBuildDir],
|
|
21
21
|
}));
|
|
22
22
|
});
|
|
23
23
|
// NOTE: Temporary workaround for debug unenv mock
|
|
24
24
|
if (!nitro.options.workflow?._vite) {
|
|
25
|
-
nitro.options.alias
|
|
26
|
-
}
|
|
27
|
-
// NOTE: Externalize .nitro/workflow to prevent dev reloads
|
|
28
|
-
if (nitro.options.dev) {
|
|
29
|
-
nitro.options.externals ||= {};
|
|
30
|
-
nitro.options.externals.external ||= [];
|
|
31
|
-
const outDir = join(nitro.options.buildDir, 'workflow');
|
|
32
|
-
nitro.options.externals.external.push((id) => id.startsWith(outDir));
|
|
25
|
+
nitro.options.alias.debug ??= 'debug';
|
|
33
26
|
}
|
|
34
27
|
// Add tsConfig plugin
|
|
35
28
|
if (nitro.options.workflow?.typescriptPlugin) {
|
|
@@ -169,6 +162,75 @@ function addVirtualHandler(nitro, route, buildPath) {
|
|
|
169
162
|
// step bundle's top-level registrations, so the handler loaded but steps
|
|
170
163
|
// were missing at runtime.
|
|
171
164
|
const handlerImportPath = JSON.stringify(join(nitro.options.buildDir, buildPath));
|
|
165
|
+
const stepsImportPath = JSON.stringify(join(nitro.options.buildDir, 'workflow/steps.mjs'));
|
|
166
|
+
const preloadSteps = {
|
|
167
|
+
'workflow/webhook.mjs': '',
|
|
168
|
+
'workflow/steps.mjs': '',
|
|
169
|
+
'workflow/workflows.mjs': `await import(/* @vite-ignore */ pathToFileURL(${stepsImportPath}).href + "?t=" + version);`,
|
|
170
|
+
};
|
|
171
|
+
if (nitro.options.dev) {
|
|
172
|
+
// Dev mode: load generated workflow bundles from disk at request time.
|
|
173
|
+
// This keeps `.nitro/workflow/*.mjs` out of Nitro's own bundle graph,
|
|
174
|
+
// which avoids rebuild loops and stale dependency graphs during HMR.
|
|
175
|
+
// Cache-bust by file mtime so each successful rebuild loads fresh code.
|
|
176
|
+
if (!nitro.routing) {
|
|
177
|
+
nitro.options.virtual[`#${buildPath}`] = /* js */ `
|
|
178
|
+
import { fromWebHandler } from "h3";
|
|
179
|
+
import { statSync } from "node:fs";
|
|
180
|
+
import { pathToFileURL } from "node:url";
|
|
181
|
+
|
|
182
|
+
const handlerPath = ${handlerImportPath};
|
|
183
|
+
let currentVersion = "";
|
|
184
|
+
let currentImportPath = "";
|
|
185
|
+
|
|
186
|
+
async function loadPOST() {
|
|
187
|
+
const version = String(statSync(handlerPath).mtimeMs);
|
|
188
|
+
if (version !== currentVersion) {
|
|
189
|
+
currentVersion = version;
|
|
190
|
+
currentImportPath = pathToFileURL(handlerPath).href + "?t=" + version;
|
|
191
|
+
${preloadSteps[buildPath]}
|
|
192
|
+
}
|
|
193
|
+
return (await import(currentImportPath)).POST;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export default fromWebHandler(async (request, context) => {
|
|
197
|
+
const POST = await loadPOST();
|
|
198
|
+
return POST(request, context);
|
|
199
|
+
});
|
|
200
|
+
`;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
nitro.options.virtual[`#${buildPath}`] = /* js */ `
|
|
204
|
+
import { statSync } from "node:fs";
|
|
205
|
+
import { pathToFileURL } from "node:url";
|
|
206
|
+
|
|
207
|
+
const handlerPath = ${handlerImportPath};
|
|
208
|
+
let currentVersion = "";
|
|
209
|
+
let currentImportPath = "";
|
|
210
|
+
|
|
211
|
+
async function loadPOST() {
|
|
212
|
+
const version = String(statSync(handlerPath).mtimeMs);
|
|
213
|
+
if (version !== currentVersion) {
|
|
214
|
+
currentVersion = version;
|
|
215
|
+
currentImportPath = pathToFileURL(handlerPath).href + "?t=" + version;
|
|
216
|
+
${preloadSteps[buildPath]}
|
|
217
|
+
}
|
|
218
|
+
return (await import(currentImportPath)).POST;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export default async ({ req }) => {
|
|
222
|
+
try {
|
|
223
|
+
const POST = await loadPOST();
|
|
224
|
+
return await POST(req);
|
|
225
|
+
} catch (error) {
|
|
226
|
+
console.error('Handler error:', error);
|
|
227
|
+
return new Response('Internal Server Error', { status: 500 });
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
`;
|
|
231
|
+
}
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
172
234
|
if (!nitro.routing) {
|
|
173
235
|
// Nitro v2 (legacy)
|
|
174
236
|
nitro.options.virtual[`#${buildPath}`] = /* js */ `
|
|
@@ -278,4 +340,4 @@ export default fromWebHandler(() => new Response("Manifest not found", { status:
|
|
|
278
340
|
writeFileSync(handlerPath, fallback);
|
|
279
341
|
}
|
|
280
342
|
}
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzVELGVBQWU7SUFDYixJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBWTtRQUN0QixNQUFNLGNBQWMsR0FDbEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUM7UUFFMUQsaUZBQWlGO1FBQ2pGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRWxFLHVFQUF1RTtRQUN2RSxvRkFBb0Y7UUFDcEYsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBYSxFQUFFLE1BQW9CLEVBQUUsRUFBRTtZQUN2RSxNQUFNLENBQUMsT0FBMEIsQ0FBQyxPQUFPLENBQ3hDLHVCQUF1QixDQUFDO2dCQUN0Qiw0REFBNEQ7Z0JBQzVELG1FQUFtRTtnQkFDbkUsb0VBQW9FO2dCQUNwRSxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzthQUM1QixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFD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QUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQzs7OztDQUlqRDtZQUNLLENBQUMsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUM7Ozs7Q0FJMUQsQ0FBQztRQUNFLGFBQWEsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLCtCQUErQjtRQUMvQixNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQzdCLENBQUMsQ0FBQzs7Q0FFUDtZQUNLLENBQUMsQ0FBQztDQUNQLENBQUM7UUFDRSxhQUFhLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gJ25vZGU6bW9kdWxlJztcbmltcG9ydCB7IG1rZGlyU3luYywgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHsgd29ya2Zsb3dUcmFuc2Zvcm1QbHVnaW4gfSBmcm9tICdAd29ya2Zsb3cvcm9sbHVwJztcbmltcG9ydCB0eXBlIHsgTml0cm8sIE5pdHJvTW9kdWxlLCBSb2xsdXBDb25maWcgfSBmcm9tICduaXRyby90eXBlcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aGUnO1xuaW1wb3J0IHsgTG9jYWxCdWlsZGVyLCBWZXJjZWxCdWlsZGVyIH0gZnJvbSAnLi9idWlsZGVycy5qcyc7XG5pbXBvcnQgdHlwZSB7IE1vZHVsZU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgeyBNb2R1bGVPcHRpb25zIH07XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ3dvcmtmbG93L25pdHJvJyxcbiAgYXN5bmMgc2V0dXAobml0cm86IE5pdHJvKSB7XG4gICAgY29uc3QgaXNWZXJjZWxEZXBsb3kgPVxuICAgICAgIW5pdHJvLm9wdGlvbnMuZGV2ICYmIG5pdHJvLm9wdGlvbnMucHJlc2V0ID09PSAndmVyY2VsJztcblxuICAgIC8vIFByZS1idWlsdCB3b3JrZmxvdyBidW5kbGVzIGRpcmVjdG9yeSAtIG11c3QgYmUgZXhjbHVkZWQgZnJvbSByZS10cmFuc2Zvcm1hdGlvblxuICAgIGNvbnN0IHdvcmtmbG93QnVpbGREaXIgPSBqb2luKG5pdHJvLm9wdGlvbnMuYnVpbGREaXIsICd3b3JrZmxvdycpO1xuXG4gICAgLy8gQWRkIHRyYW5zZm9ybSBwbHVnaW4gYXQgdGhlIEJFR0lOTklORyB0byBydW4gYmVmb3JlIG90aGVyIHRyYW5zZm9ybXNcbiAgICAvLyAoZXNwZWNpYWxseSBiZWZvcmUgY2xhc3MgcHJvcGVydHkgdHJhbnNmb3JtcyB0aGF0IHJlbmFtZSBjbGFzc2VzIGxpa2UgX0NsYXNzTmFtZSlcbiAgICBuaXRyby5ob29rcy5ob29rKCdyb2xsdXA6YmVmb3JlJywgKF9uaXRybzogTml0cm8sIGNvbmZpZzogUm9sbHVwQ29uZmlnKSA9PiB7XG4gICAgICAoY29uZmlnLnBsdWdpbnMgYXMgQXJyYXk8dW5rbm93bj4pLnVuc2hpZnQoXG4gICAgICAgIHdvcmtmbG93VHJhbnNmb3JtUGx1Z2luKHtcbiAgICAgICAgICAvLyBFeGNsdWRlIHByZS1idWlsdCB3b3JrZmxvdyBidW5kbGVzIGZyb20gcmUtdHJhbnNmb3JtYXRpb25cbiAgICAgICAgICAvLyBUaGVzZSBhcmUgYWxyZWFkeSBwcm9jZXNzZWQgYW5kIHJlLXByb2Nlc3NpbmcgY2F1c2VzIGlzc3VlcyBsaWtlXG4gICAgICAgICAgLy8gdW5kZWZpbmVkIGNsYXNzIHJlZmVyZW5jZXMgd2hlbiBOaXRybydzIGJ1bmRsZXIgcmVuYW1lcyB2YXJpYWJsZXNcbiAgICAgICAgICBleGNsdWRlOiBbd29ya2Zsb3dCdWlsZERpcl0sXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgLy8gTk9URTogVGVtcG9yYXJ5IHdvcmthcm91bmQgZm9yIGRlYnVnIHVuZW52IG1vY2tcbiAgICBpZiAoIW5pdHJvLm9wdGlvbnMud29ya2Zsb3c/Ll92aXRlKSB7XG4gICAgICBuaXRyby5vcHRpb25zLmFsaWFzWydkZWJ1ZyddID8/PSAnZGVidWcnO1xuICAgIH1cblxuICAgIC8vIE5PVEU6IEV4dGVybmFsaXplIC5uaXRyby93b3JrZmxvdyB0byBwcmV2ZW50IGRldiByZWxvYWRzXG4gICAgaWYgKG5pdHJvLm9wdGlvbnMuZGV2KSB7XG4gICAgICBuaXRyby5vcHRpb25zLmV4dGVybmFscyB8fD0ge307XG4gICAgICBuaXRyby5vcHRpb25zLmV4dGVybmFscy5leHRlcm5hbCB8fD0gW107XG4gICAgICBjb25zdCBvdXREaXIgPSBqb2luKG5pdHJvLm9wdGlvbnMuYnVpbGREaXIsICd3b3JrZmxvdycpO1xuICAgICAgbml0cm8ub3B0aW9ucy5leHRlcm5hbHMuZXh0ZXJuYWwucHVzaCgoaWQpID0+IGlkLnN0YXJ0c1dpdGgob3V0RGlyKSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIHRzQ29uZmlnIHBsdWdpblxuICAgIGlmIChuaXRyby5vcHRpb25zLndvcmtmbG93Py50eXBlc2NyaXB0UGx1Z2luKSB7XG4gICAgICBuaXRyby5vcHRpb25zLnR5cGVzY3JpcHQudHNDb25maWcgfHw9IHt9O1xuICAgICAgbml0cm8ub3B0aW9ucy50eXBlc2NyaXB0LnRzQ29uZmlnLmNvbXBpbGVyT3B0aW9ucyB8fD0ge307XG4gICAgICBuaXRyby5vcHRpb25zLnR5cGVzY3JpcHQudHNDb25maWcuY29tcGlsZXJPcHRpb25zLnBsdWdpbnMgfHw9IFtdO1xuICAgICAgbml0cm8ub3B0aW9ucy50eXBlc2NyaXB0LnRzQ29uZmlnLmNvbXBpbGVyT3B0aW9ucy5wbHVnaW5zLnB1c2goe1xuICAgICAgICBuYW1lOiAnd29ya2Zsb3cnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgZnVuY3Rpb25zIGZvciB2ZXJjZWwgYnVpbGRcbiAgICBpZiAoaXNWZXJjZWxEZXBsb3kpIHtcbiAgICAgIG5pdHJvLmhvb2tzLmhvb2soJ2NvbXBpbGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCBuZXcgVmVyY2VsQnVpbGRlcihuaXRybykuYnVpbGQoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGxvY2FsIGJ1bmRsZXMgZm9yIGRldiBhbmQgbG9jYWwgcHJvZFxuICAgIGlmICghaXNWZXJjZWxEZXBsb3kpIHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgTG9jYWxCdWlsZGVyKG5pdHJvKTtcbiAgICAgIGxldCBpc0luaXRpYWxCdWlsZCA9IHRydWU7XG5cbiAgICAgIG5pdHJvLmhvb2tzLmhvb2soJ2J1aWxkOmJlZm9yZScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICAgIC8vIEZvciBwcm9kOiB3cml0ZSB0aGUgbWFuaWZlc3QgaGFuZGxlciBmaWxlIHdpdGggaW5saW5lZCBjb250ZW50XG4gICAgICAgIC8vIG5vdyB0aGF0IHRoZSBidWlsZGVyIGhhcyBnZW5lcmF0ZWQgdGhlIG1hbmlmZXN0LiBSb2xsdXAgd2lsbFxuICAgICAgICAvLyBidW5kbGUgdGhpcyBmaWxlIGludG8gdGhlIGNvbXBpbGVkIG91dHB1dC5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFuaXRyby5vcHRpb25zLmRldiAmJlxuICAgICAgICAgIHByb2Nlc3MuZW52LldPUktGTE9XX1BVQkxJQ19NQU5JRkVTVCA9PT0gJzEnXG4gICAgICAgICkge1xuICAgICAgICAgIHdyaXRlTWFuaWZlc3RIYW5kbGVyKG5pdHJvKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIEFsbG93cyBmb3IgSE1SIC0gYnV0IHNraXAgdGhlIGZpcnN0IGRldjpyZWxvYWQgc2luY2UgYnVpbGQ6YmVmb3JlIGFscmVhZHkgcmFuXG4gICAgICBpZiAobml0cm8ub3B0aW9ucy5kZXYpIHtcbiAgICAgICAgbml0cm8uaG9va3MuaG9vaygnZGV2OnJlbG9hZCcsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBpZiAoaXNJbml0aWFsQnVpbGQpIHtcbiAgICAgICAgICAgIGlzSW5pdGlhbEJ1aWxkID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChuaXRyby5vcHRpb25zLmRldikge1xuICAgICAgICBhZGREYXNoYm9hcmRIYW5kbGVyKG5pdHJvKTtcbiAgICAgIH1cblxuICAgICAgYWRkVmlydHVhbEhhbmRsZXIoXG4gICAgICAgIG5pdHJvLFxuICAgICAgICAnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL3dlYmhvb2svOnRva2VuJyxcbiAgICAgICAgJ3dvcmtmbG93L3dlYmhvb2subWpzJ1xuICAgICAgKTtcblxuICAgICAgYWRkVmlydHVhbEhhbmRsZXIoXG4gICAgICAgIG5pdHJvLFxuICAgICAgICAnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL3N0ZXAnLFxuICAgICAgICAnd29ya2Zsb3cvc3RlcHMubWpzJ1xuICAgICAgKTtcblxuICAgICAgYWRkVmlydHVhbEhhbmRsZXIoXG4gICAgICAgIG5pdHJvLFxuICAgICAgICAnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cnLFxuICAgICAgICAnd29ya2Zsb3cvd29ya2Zsb3dzLm1qcydcbiAgICAgICk7XG5cbiAgICAgIC8vIEV4cG9zZSBtYW5pZmVzdCBhcyBhIHB1YmxpYyBIVFRQIHJvdXRlIHdoZW4gV09SS0ZMT1dfUFVCTElDX01BTklGRVNUPTFcbiAgICAgIGlmIChwcm9jZXNzLmVudi5XT1JLRkxPV19QVUJMSUNfTUFOSUZFU1QgPT09ICcxJykge1xuICAgICAgICAvLyBXcml0ZSBhIHBsYWNlaG9sZGVyIG1hbmlmZXN0LWRhdGEubWpzIHNvIHJvbGx1cCBjYW4gcmVzb2x2ZSB0aGVcbiAgICAgICAgLy8gaW1wb3J0LiBJdCB3aWxsIGJlIG92ZXJ3cml0dGVuIHdpdGggdGhlIHJlYWwgbWFuaWZlc3QgaW4gYnVpbGQ6YmVmb3JlLlxuICAgICAgICAvLyBXcml0ZSBhIHBsYWNlaG9sZGVyIGhhbmRsZXIgZmlsZSBzbyByb2xsdXAgY2FuIHJlc29sdmUgdGhlIHBhdGhcbiAgICAgICAgLy8gZHVyaW5nIHByb2QgY29tcGlsYXRpb24uIEl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgcmVhbFxuICAgICAgICAvLyBtYW5pZmVzdCBjb250ZW50IGJ5IHdyaXRlTWFuaWZlc3RIYW5kbGVyKCkgaW4gYnVpbGQ6YmVmb3JlLlxuICAgICAgICBpZiAoIW5pdHJvLm9wdGlvbnMuZGV2KSB7XG4gICAgICAgICAgY29uc3QgZGlyID0gam9pbihuaXRyby5vcHRpb25zLmJ1aWxkRGlyLCAnd29ya2Zsb3cnKTtcbiAgICAgICAgICBta2RpclN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICBjb25zdCBoYW5kbGVyUGF0aCA9IGpvaW4oZGlyLCAnbWFuaWZlc3QtaGFuZGxlci5tanMnKTtcbiAgICAgICAgICB3cml0ZUZpbGVTeW5jKFxuICAgICAgICAgICAgaGFuZGxlclBhdGgsXG4gICAgICAgICAgICAnZXhwb3J0IGRlZmF1bHQgYXN5bmMgKCkgPT4gbmV3IFJlc3BvbnNlKFwiTWFuaWZlc3Qgbm90IGZvdW5kXCIsIHsgc3RhdHVzOiA0MDQgfSk7XFxuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYWRkTWFuaWZlc3RIYW5kbGVyKG5pdHJvKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG59IHNhdGlzZmllcyBOaXRyb01vZHVsZTtcblxuY29uc3QgREFTSEJPQVJEX1ZJUlRVQUxfSUQgPSAnI3dvcmtmbG93L2Rhc2hib2FyZC1oYW5kbGVyJztcblxuZnVuY3Rpb24gYWRkRGFzaGJvYXJkSGFuZGxlcihuaXRybzogTml0cm8pIHtcbiAgY29uc3Qgcm91dGUgPSAnL193b3JrZmxvdyc7XG4gIG5pdHJvLm9wdGlvbnMuaGFuZGxlcnMucHVzaCh7IHJvdXRlLCBoYW5kbGVyOiBEQVNIQk9BUkRfVklSVFVBTF9JRCB9KTtcblxuICAvLyBSZXNvbHZlIGBAd29ya2Zsb3cvd2ViL3NlcnZlcmAgcmVsYXRpdmUgdG8gdGhpcyBtb2R1bGUgc28gY29uc3VtZXJzIGRvbid0XG4gIC8vIG5lZWQgYSBkaXJlY3QgZGVwZW5kZW5jeSBvbiBgQHdvcmtmbG93L3dlYmAuIFRoZSBwYXRoIGlzIGlubGluZWQgaW50byB0aGVcbiAgLy8gdmlydHVhbCBoYW5kbGVyIGFzIGEgZmlsZTovLyBVUkwgc28gTm9kZSBjYW4gYGltcG9ydCgpYCBpdCBhdCBydW50aW1lXG4gIC8vIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUgdGhlIGdlbmVyYXRlZCBOaXRybyBidW5kbGUgZW5kcyB1cC5cbiAgY29uc3QgcmVxdWlyZV8gPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG4gIGxldCB3ZWJTZXJ2ZXJVcmw6IHN0cmluZztcbiAgdHJ5IHtcbiAgICB3ZWJTZXJ2ZXJVcmwgPSBwYXRoVG9GaWxlVVJMKHJlcXVpcmVfLnJlc29sdmUoJ0B3b3JrZmxvdy93ZWIvc2VydmVyJykpLmhyZWY7XG4gIH0gY2F0Y2gge1xuICAgIHdlYlNlcnZlclVybCA9ICdAd29ya2Zsb3cvd2ViL3NlcnZlcic7XG4gIH1cblxuICBjb25zdCBoYW5kbGVyU291cmNlID0gLyoganMgKi8gYFxuICAgIGNvbnN0IF9fd29ya2Zsb3dXZWJTZXJ2ZXJVcmwgPSAke0pTT04uc3RyaW5naWZ5KHdlYlNlcnZlclVybCl9O1xuICAgIGxldCBzZXJ2ZXJQcm9taXNlID0gbnVsbDtcbiAgICBhc3luYyBmdW5jdGlvbiBnZXREYXNoYm9hcmRVcmwoKSB7XG4gICAgICBpZiAoIXNlcnZlclByb21pc2UpIHtcbiAgICAgICAgc2VydmVyUHJvbWlzZSA9IChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzdGFydFNlcnZlciB9ID0gYXdhaXQgaW1wb3J0KC8qIEB2aXRlLWlnbm9yZSAqLyAvKiB3ZWJwYWNrSWdub3JlOiB0cnVlICovIF9fd29ya2Zsb3dXZWJTZXJ2ZXJVcmwpO1xuICAgICAgICAgIGNvbnN0IHNlcnZlciA9IGF3YWl0IHN0YXJ0U2VydmVyKDApO1xuICAgICAgICAgIGNvbnN0IGFkZHJlc3MgPSBzZXJ2ZXIuYWRkcmVzcygpO1xuICAgICAgICAgIGNvbnN0IHBvcnQgPSB0eXBlb2YgYWRkcmVzcyA9PT0gJ29iamVjdCcgJiYgYWRkcmVzcyA/IGFkZHJlc3MucG9ydCA6IDM0NTY7XG4gICAgICAgICAgcmV0dXJuICdodHRwOi8vbG9jYWxob3N0OicgKyBwb3J0O1xuICAgICAgICB9KSgpLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHNlcnZlclByb21pc2UgPSBudWxsO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzZXJ2ZXJQcm9taXNlO1xuICAgIH1cbiAgYDtcblxuICBpZiAoIW5pdHJvLnJvdXRpbmcpIHtcbiAgICBuaXRyby5vcHRpb25zLnZpcnR1YWxbREFTSEJPQVJEX1ZJUlRVQUxfSURdID0gLyoganMgKi8gYFxuICAgICAgaW1wb3J0IHsgZnJvbVdlYkhhbmRsZXIgfSBmcm9tIFwiaDNcIjtcbiAgICAgICR7aGFuZGxlclNvdXJjZX1cbiAgICAgIGV4cG9ydCBkZWZhdWx0IGZyb21XZWJIYW5kbGVyKGFzeW5jICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCBnZXREYXNoYm9hcmRVcmwoKTtcbiAgICAgICAgICByZXR1cm4gUmVzcG9uc2UucmVkaXJlY3QodXJsLCAzMDIpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCB3b3JrZmxvdyBkYXNoYm9hcmQ6JywgZXJyb3IpO1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoJ0ZhaWxlZCB0byBzdGFydCB3b3JrZmxvdyBkYXNoYm9hcmQ6ICcgKyBlcnJvci5tZXNzYWdlLCB7IHN0YXR1czogNTAwIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBgO1xuICB9IGVsc2Uge1xuICAgIG5pdHJvLm9wdGlvbnMudmlydHVhbFtEQVNIQk9BUkRfVklSVFVBTF9JRF0gPSAvKiBqcyAqLyBgXG4gICAgICAke2hhbmRsZXJTb3VyY2V9XG4gICAgICBleHBvcnQgZGVmYXVsdCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdXJsID0gYXdhaXQgZ2V0RGFzaGJvYXJkVXJsKCk7XG4gICAgICAgICAgcmV0dXJuIFJlc3BvbnNlLnJlZGlyZWN0KHVybCwgMzAyKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgd29ya2Zsb3cgZGFzaGJvYXJkOicsIGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKCdGYWlsZWQgdG8gc3RhcnQgd29ya2Zsb3cgZGFzaGJvYXJkOiAnICsgZXJyb3IubWVzc2FnZSwgeyBzdGF0dXM6IDUwMCB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICBgO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFkZFZpcnR1YWxIYW5kbGVyKG5pdHJvOiBOaXRybywgcm91dGU6IHN0cmluZywgYnVpbGRQYXRoOiBzdHJpbmcpIHtcbiAgbml0cm8ub3B0aW9ucy5oYW5kbGVycy5wdXNoKHtcbiAgICByb3V0ZSxcbiAgICBoYW5kbGVyOiBgIyR7YnVpbGRQYXRofWAsXG4gIH0pO1xuICAvLyBLZWVwIGEgYmFyZSBpbXBvcnQgYWxvbmdzaWRlIGBQT1NUYDogaW4gTnV4dCArIE5pdHJvIHByb2R1Y3Rpb24gYnVpbGRzXG4gIC8vIHVzaW5nIGBAd29ya2Zsb3cvbnV4dGAsIGltcG9ydGluZyBvbmx5IGBQT1NUYCBjb3VsZCBkcm9wIHRoZSBnZW5lcmF0ZWRcbiAgLy8gc3RlcCBidW5kbGUncyB0b3AtbGV2ZWwgcmVnaXN0cmF0aW9ucywgc28gdGhlIGhhbmRsZXIgbG9hZGVkIGJ1dCBzdGVwc1xuICAvLyB3ZXJlIG1pc3NpbmcgYXQgcnVudGltZS5cbiAgY29uc3QgaGFuZGxlckltcG9ydFBhdGggPSBKU09OLnN0cmluZ2lmeShcbiAgICBqb2luKG5pdHJvLm9wdGlvbnMuYnVpbGREaXIsIGJ1aWxkUGF0aClcbiAgKTtcblxuICBpZiAoIW5pdHJvLnJvdXRpbmcpIHtcbiAgICAvLyBOaXRybyB2MiAobGVnYWN5KVxuICAgIG5pdHJvLm9wdGlvbnMudmlydHVhbFtgIyR7YnVpbGRQYXRofWBdID0gLyoganMgKi8gYFxuICAgIGltcG9ydCAke2hhbmRsZXJJbXBvcnRQYXRofTtcbiAgICBpbXBvcnQgeyBmcm9tV2ViSGFuZGxlciB9IGZyb20gXCJoM1wiO1xuICAgIGltcG9ydCB7IFBPU1QgfSBmcm9tICR7aGFuZGxlckltcG9ydFBhdGh9O1xuICAgIGV4cG9ydCBkZWZhdWx0IGZyb21XZWJIYW5kbGVyKFBPU1QpO1xuICBgO1xuICB9IGVsc2Uge1xuICAgIC8vIE5pdHJvIHYzKyAobmF0aXZlIHdlYiBoYW5kbGVycylcbiAgICBuaXRyby5vcHRpb25zLnZpcnR1YWxbYCMke2J1aWxkUGF0aH1gXSA9IC8qIGpzICovIGBcbiAgICBpbXBvcnQgJHtoYW5kbGVySW1wb3J0UGF0aH07XG4gICAgaW1wb3J0IHsgUE9TVCB9IGZyb20gJHtoYW5kbGVySW1wb3J0UGF0aH07XG4gICAgZXhwb3J0IGRlZmF1bHQgYXN5bmMgKHsgcmVxIH0pID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBQT1NUKHJlcSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdIYW5kbGVyIGVycm9yOicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZSgnSW50ZXJuYWwgU2VydmVyIEVycm9yJywgeyBzdGF0dXM6IDUwMCB9KTtcbiAgICAgIH1cbiAgICB9O1xuICBgO1xuICB9XG59XG5cbmNvbnN0IE1BTklGRVNUX1ZJUlRVQUxfSUQgPSAnI3dvcmtmbG93L21hbmlmZXN0LWhhbmRsZXInO1xuXG5mdW5jdGlvbiBhZGRNYW5pZmVzdEhhbmRsZXIobml0cm86IE5pdHJvKSB7XG4gIGNvbnN0IHJvdXRlID0gJy8ud2VsbC1rbm93bi93b3JrZmxvdy92MS9tYW5pZmVzdC5qc29uJztcbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gam9pbihuaXRyby5vcHRpb25zLmJ1aWxkRGlyLCAnd29ya2Zsb3cvbWFuaWZlc3QuanNvbicpO1xuICBjb25zdCBoYW5kbGVyUGF0aCA9IGpvaW4oXG4gICAgbml0cm8ub3B0aW9ucy5idWlsZERpcixcbiAgICAnd29ya2Zsb3cvbWFuaWZlc3QtaGFuZGxlci5tanMnXG4gICk7XG5cbiAgaWYgKG5pdHJvLm9wdGlvbnMuZGV2KSB7XG4gICAgLy8gRGV2IG1vZGU6IHVzZSBhIHZpcnR1YWwgaGFuZGxlciB0aGF0IHJlYWRzIHRoZSBtYW5pZmVzdCBmcm9tIGRpc2sgYXRcbiAgICAvLyByZXF1ZXN0IHRpbWUuIFRoZSBhYnNvbHV0ZSBwYXRoIGlzIHZhbGlkIGJlY2F1c2Ugd2UncmUgb24gdGhlIGJ1aWxkIG1hY2hpbmUuXG4gICAgbml0cm8ub3B0aW9ucy5oYW5kbGVycy5wdXNoKHsgcm91dGUsIGhhbmRsZXI6IE1BTklGRVNUX1ZJUlRVQUxfSUQgfSk7XG4gICAgbml0cm8ub3B0aW9ucy52aXJ0dWFsW01BTklGRVNUX1ZJUlRVQUxfSURdID0gIW5pdHJvLnJvdXRpbmdcbiAgICAgID8gLyoganMgKi8gYFxuICAgICAgaW1wb3J0IHsgZnJvbVdlYkhhbmRsZXIgfSBmcm9tIFwiaDNcIjtcbiAgICAgIGltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG4gICAgICBmdW5jdGlvbiBHRVQoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbWFuaWZlc3QgPSByZWFkRmlsZVN5bmMoJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdFBhdGgpfSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG1hbmlmZXN0LCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoXCJNYW5pZmVzdCBub3QgZm91bmRcIiwgeyBzdGF0dXM6IDQwNCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZXhwb3J0IGRlZmF1bHQgZnJvbVdlYkhhbmRsZXIoR0VUKTtcbiAgICBgXG4gICAgICA6IC8qIGpzICovIGBcbiAgICAgIGltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG4gICAgICBleHBvcnQgZGVmYXVsdCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbWFuaWZlc3QgPSByZWFkRmlsZVN5bmMoJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdFBhdGgpfSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG1hbmlmZXN0LCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoXCJNYW5pZmVzdCBub3QgZm91bmRcIiwgeyBzdGF0dXM6IDQwNCB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICBgO1xuICB9IGVsc2Uge1xuICAgIC8vIFByb2QgbW9kZTogcmVnaXN0ZXIgYSBwaHlzaWNhbCBoYW5kbGVyIGZpbGUgdGhhdCB3aWxsIGJlIHdyaXR0ZW4gYnlcbiAgICAvLyB3cml0ZU1hbmlmZXN0SGFuZGxlcigpIGFmdGVyIHRoZSBidWlsZGVyIGdlbmVyYXRlcyB0aGUgbWFuaWZlc3QuXG4gICAgLy8gVGhpcyBmaWxlIGlzIGJ1bmRsZWQgYnkgcm9sbHVwIGludG8gdGhlIGNvbXBpbGVkIG91dHB1dC5cbiAgICBuaXRyby5vcHRpb25zLmhhbmRsZXJzLnB1c2goeyByb3V0ZSwgaGFuZGxlcjogaGFuZGxlclBhdGggfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBXcml0ZXMgYSBwaHlzaWNhbCBtYW5pZmVzdCBoYW5kbGVyIGZpbGUgd2l0aCB0aGUgbWFuaWZlc3QgY29udGVudCBpbmxpbmVkLlxuICogTXVzdCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIGJ1aWxkZXIgZ2VuZXJhdGVzIHRoZSBtYW5pZmVzdCAoZHVyaW5nIGJ1aWxkOmJlZm9yZSlcbiAqIGFuZCBiZWZvcmUgTml0cm8gY29tcGlsZXMgdGhlIGJ1bmRsZSB3aXRoIHJvbGx1cC5cbiAqL1xuZnVuY3Rpb24gd3JpdGVNYW5pZmVzdEhhbmRsZXIobml0cm86IE5pdHJvKSB7XG4gIGNvbnN0IG1hbmlmZXN0UGF0aCA9IGpvaW4obml0cm8ub3B0aW9ucy5idWlsZERpciwgJ3dvcmtmbG93L21hbmlmZXN0Lmpzb24nKTtcbiAgY29uc3QgaGFuZGxlclBhdGggPSBqb2luKFxuICAgIG5pdHJvLm9wdGlvbnMuYnVpbGREaXIsXG4gICAgJ3dvcmtmbG93L21hbmlmZXN0LWhhbmRsZXIubWpzJ1xuICApO1xuICBjb25zdCBkaXIgPSBqb2luKG5pdHJvLm9wdGlvbnMuYnVpbGREaXIsICd3b3JrZmxvdycpO1xuICBta2RpclN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICB0cnkge1xuICAgIGNvbnN0IG1hbmlmZXN0Q29udGVudCA9IHJlYWRGaWxlU3luYyhtYW5pZmVzdFBhdGgsICd1dGYtOCcpO1xuICAgIEpTT04ucGFyc2UobWFuaWZlc3RDb250ZW50KTsgLy8gdmFsaWRhdGVcblxuICAgIGNvbnN0IGhhbmRsZXJDb2RlID0gIW5pdHJvLnJvdXRpbmdcbiAgICAgID8gYGltcG9ydCB7IGZyb21XZWJIYW5kbGVyIH0gZnJvbSBcImgzXCI7XG5jb25zdCBtYW5pZmVzdCA9ICR7SlNPTi5zdHJpbmdpZnkobWFuaWZlc3RDb250ZW50KX07XG5leHBvcnQgZGVmYXVsdCBmcm9tV2ViSGFuZGxlcigoKSA9PiBuZXcgUmVzcG9uc2UobWFuaWZlc3QsIHtcbiAgaGVhZGVyczogeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxufSkpO1xuYFxuICAgICAgOiBgY29uc3QgbWFuaWZlc3QgPSAke0pTT04uc3RyaW5naWZ5KG1hbmlmZXN0Q29udGVudCl9O1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgKCkgPT4gbmV3IFJlc3BvbnNlKG1hbmlmZXN0LCB7XG4gIGhlYWRlcnM6IHsgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbn0pO1xuYDtcbiAgICB3cml0ZUZpbGVTeW5jKGhhbmRsZXJQYXRoLCBoYW5kbGVyQ29kZSk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIFdyaXRlIGEgNDA0IGZhbGxiYWNrIGhhbmRsZXJcbiAgICBjb25zdCBmYWxsYmFjayA9ICFuaXRyby5yb3V0aW5nXG4gICAgICA/IGBpbXBvcnQgeyBmcm9tV2ViSGFuZGxlciB9IGZyb20gXCJoM1wiO1xuZXhwb3J0IGRlZmF1bHQgZnJvbVdlYkhhbmRsZXIoKCkgPT4gbmV3IFJlc3BvbnNlKFwiTWFuaWZlc3Qgbm90IGZvdW5kXCIsIHsgc3RhdHVzOiA0MDQgfSkpO1xuYFxuICAgICAgOiBgZXhwb3J0IGRlZmF1bHQgYXN5bmMgKCkgPT4gbmV3IFJlc3BvbnNlKFwiTWFuaWZlc3Qgbm90IGZvdW5kXCIsIHsgc3RhdHVzOiA0MDQgfSk7XG5gO1xuICAgIHdyaXRlRmlsZVN5bmMoaGFuZGxlclBhdGgsIGZhbGxiYWNrKTtcbiAgfVxufVxuIl19
|
|
343
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzVELGVBQWU7SUFDYixJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBWTtRQUN0QixNQUFNLGNBQWMsR0FDbEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUM7UUFFMUQseUVBQXlFO1FBQ3pFLDBDQUEwQztRQUMxQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUUxRSx1RUFBdUU7UUFDdkUsb0ZBQW9GO1FBQ3BGLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQWEsRUFBRSxNQUFvQixFQUFFLEVBQUU7WUFDdkUsTUFBTSxDQUFDLE9BQTBCLENBQUMsT0FBTyxDQUN4Qyx1QkFBdUIsQ0FBQztnQkFDdEIsdURBQXVEO2dCQUN2RCx1REFBdUQ7Z0JBQ3ZELE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQzthQUN6QixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNuQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDO1FBQ3hDLENBQUM7UUFFRCxzQkFBc0I7UUFDdEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1lBQzdDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDekMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsS0FBSyxFQUFFLENBQUM7WUFDekQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2pFLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDN0QsSUFBSSxFQUFFLFVBQVU7YUFDakIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELHNDQUFzQztRQUN0QyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDdEMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQztZQUUxQixLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQzFDLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUV0QixpRUFBaUU7Z0JBQ2pFLCtEQUErRDtnQkFDL0QsNkNBQTZDO2dCQUM3QyxJQUNFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHO29CQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixLQUFLLEdBQUcsRUFDNUMsQ0FBQztvQkFDRCxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUIsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsZ0ZBQWdGO1lBQ2hGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxFQUFFO29CQUN4QyxJQUFJLGNBQWMsRUFBRSxDQUFDO3dCQUNuQixjQUFjLEdBQUcsS0FBSyxDQUFDO3dCQUN2QixPQUFPO29CQUNULENBQUM7b0JBQ0QsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDdEIsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUVELGlCQUFpQixDQUNmLEtBQUssRUFDTCx5Q0FBeUMsRUFDekMsc0JBQXNCLENBQ3ZCLENBQUM7WUFFRixpQkFBaUIsQ0FDZixLQUFLLEVBQ0wsK0JBQStCLEVBQy9CLG9CQUFvQixDQUNyQixDQUFDO1lBRUYsaUJBQWlCLENBQ2YsS0FBSyxFQUNMLCtCQUErQixFQUMvQix3QkFBd0IsQ0FDekIsQ0FBQztZQUVGLHlFQUF5RTtZQUN6RSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2pELGtFQUFrRTtnQkFDbEUseUVBQXlFO2dCQUN6RSxrRUFBa0U7Z0JBQ2xFLGdFQUFnRTtnQkFDaEUsOERBQThEO2dCQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDdkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUNyRCxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQ3BDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztvQkFDdEQsYUFBYSxDQUNYLFdBQVcsRUFDWCxtRkFBbUYsQ0FDcEYsQ0FBQztnQkFDSixDQUFDO2dCQUNELGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNvQixDQUFDO0FBRXhCLE1BQU0sb0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7QUFFM0QsU0FBUyxtQkFBbUIsQ0FBQyxLQUFZO0lBQ3ZDLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQztJQUMzQixLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUV0RSw0RUFBNEU7SUFDNUUsNEVBQTRFO0lBQzVFLHdFQUF3RTtJQUN4RSwwREFBMEQ7SUFDMUQsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsSUFBSSxZQUFvQixDQUFDO0lBQ3pCLElBQUksQ0FBQztRQUNILFlBQVksR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzlFLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxZQUFZLEdBQUcsc0JBQXNCLENBQUM7SUFDeEMsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQztxQ0FDSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQjlELENBQUM7SUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsUUFBUSxDQUFDOztRQUVuRCxhQUFhOzs7Ozs7Ozs7O0tBVWhCLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ25ELGFBQWE7Ozs7Ozs7Ozs7S0FVaEIsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDO0FBT0QsU0FBUyxpQkFBaUIsQ0FDeEIsS0FBWSxFQUNaLEtBQWEsRUFDYixTQUE2QjtJQUU3QixLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDMUIsS0FBSztRQUNMLE9BQU8sRUFBRSxJQUFJLFNBQVMsRUFBRTtLQUN6QixDQUFDLENBQUM7SUFDSCx5RUFBeUU7SUFDekUseUVBQXlFO0lBQ3pFLHlFQUF5RTtJQUN6RSwyQkFBMkI7SUFDM0IsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQ3hDLENBQUM7SUFDRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLENBQUMsQ0FDbkQsQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUF1QztRQUN2RCxzQkFBc0IsRUFBRSxFQUFFO1FBQzFCLG9CQUFvQixFQUFFLEVBQUU7UUFDeEIsd0JBQXdCLEVBQUUsaURBQWlELGVBQWUsNEJBQTRCO0tBQ3ZILENBQUM7SUFFRixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEIsdUVBQXVFO1FBQ3ZFLHNFQUFzRTtRQUN0RSxxRUFBcUU7UUFDckUsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQzs7Ozs7NEJBSzVCLGlCQUFpQjs7Ozs7Ozs7O1lBU2pDLFlBQVksQ0FBQyxTQUFTLENBQUM7Ozs7Ozs7OztLQVM5QixDQUFDO1FBQ0YsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDOzs7OzRCQUk1QixpQkFBaUI7Ozs7Ozs7OztZQVNqQyxZQUFZLENBQUMsU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7OztLQWM5QixDQUFDO1FBQ0YsQ0FBQztRQUNELE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixvQkFBb0I7UUFDcEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQzthQUN6QyxpQkFBaUI7OzJCQUVILGlCQUFpQjs7R0FFekMsQ0FBQztJQUNGLENBQUM7U0FBTSxDQUFDO1FBQ04sa0NBQWtDO1FBQ2xDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUM7YUFDekMsaUJBQWlCOzJCQUNILGlCQUFpQjs7Ozs7Ozs7O0dBU3pDLENBQUM7SUFDRixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sbUJBQW1CLEdBQUcsNEJBQTRCLENBQUM7QUFFekQsU0FBUyxrQkFBa0IsQ0FBQyxLQUFZO0lBQ3RDLE1BQU0sS0FBSyxHQUFHLHdDQUF3QyxDQUFDO0lBQ3ZELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FDdEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQ3RCLCtCQUErQixDQUNoQyxDQUFDO0lBRUYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLHVFQUF1RTtRQUN2RSwrRUFBK0U7UUFDL0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFDckUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQ3pELENBQUMsQ0FBQyxRQUFRLENBQUM7Ozs7OzBDQUt5QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzs7Ozs7Ozs7O0tBU2pFO1lBQ0MsQ0FBQyxDQUFDLFFBQVEsQ0FBQzs7OzswQ0FJeUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7Ozs7Ozs7O0tBUWpFLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLHNFQUFzRTtRQUN0RSxtRUFBbUU7UUFDbkUsMkRBQTJEO1FBQzNELEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLG9CQUFvQixDQUFDLEtBQVk7SUFDeEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFDNUUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUN0QixLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFDdEIsK0JBQStCLENBQ2hDLENBQUM7SUFDRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckQsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXBDLElBQUksQ0FBQztRQUNILE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFdBQVc7UUFFeEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTztZQUNoQyxDQUFDLENBQUM7bUJBQ1csSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUM7Ozs7Q0FJakQ7WUFDSyxDQUFDLENBQUMsb0JBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDOzs7O0NBSTFELENBQUM7UUFDRSxhQUFhLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCwrQkFBK0I7UUFDL0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTztZQUM3QixDQUFDLENBQUM7O0NBRVA7WUFDSyxDQUFDLENBQUM7Q0FDUCxDQUFDO1FBQ0UsYUFBYSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1rZGlyU3luYywgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSAnbm9kZTptb2R1bGUnO1xuaW1wb3J0IHsgcGF0aFRvRmlsZVVSTCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7IHdvcmtmbG93VHJhbnNmb3JtUGx1Z2luIH0gZnJvbSAnQHdvcmtmbG93L3JvbGx1cCc7XG5pbXBvcnQgdHlwZSB7IE5pdHJvLCBOaXRyb01vZHVsZSwgUm9sbHVwQ29uZmlnIH0gZnJvbSAnbml0cm8vdHlwZXMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGhlJztcbmltcG9ydCB7IExvY2FsQnVpbGRlciwgVmVyY2VsQnVpbGRlciB9IGZyb20gJy4vYnVpbGRlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBNb2R1bGVPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIHsgTW9kdWxlT3B0aW9ucyB9O1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICd3b3JrZmxvdy9uaXRybycsXG4gIGFzeW5jIHNldHVwKG5pdHJvOiBOaXRybykge1xuICAgIGNvbnN0IGlzVmVyY2VsRGVwbG95ID1cbiAgICAgICFuaXRyby5vcHRpb25zLmRldiAmJiBuaXRyby5vcHRpb25zLnByZXNldCA9PT0gJ3ZlcmNlbCc7XG5cbiAgICAvLyBOaXRybyBidWlsZCBhcnRpZmFjdHMgaGF2ZSBhbHJlYWR5IGJlZW4gdHJhbnNmb3JtZWQ7IGV4Y2x1ZGUgdGhlIHdob2xlXG4gICAgLy8gYnVpbGQgZGlyZWN0b3J5IGZyb20gcmUtdHJhbnNmb3JtYXRpb24uXG4gICAgY29uc3Qgbml0cm9CdWlsZERpciA9IGAke25pdHJvLm9wdGlvbnMuYnVpbGREaXIucmVwbGFjZSgvW1xcXFwvXSskLywgJycpfS9gO1xuXG4gICAgLy8gQWRkIHRyYW5zZm9ybSBwbHVnaW4gYXQgdGhlIEJFR0lOTklORyB0byBydW4gYmVmb3JlIG90aGVyIHRyYW5zZm9ybXNcbiAgICAvLyAoZXNwZWNpYWxseSBiZWZvcmUgY2xhc3MgcHJvcGVydHkgdHJhbnNmb3JtcyB0aGF0IHJlbmFtZSBjbGFzc2VzIGxpa2UgX0NsYXNzTmFtZSlcbiAgICBuaXRyby5ob29rcy5ob29rKCdyb2xsdXA6YmVmb3JlJywgKF9uaXRybzogTml0cm8sIGNvbmZpZzogUm9sbHVwQ29uZmlnKSA9PiB7XG4gICAgICAoY29uZmlnLnBsdWdpbnMgYXMgQXJyYXk8dW5rbm93bj4pLnVuc2hpZnQoXG4gICAgICAgIHdvcmtmbG93VHJhbnNmb3JtUGx1Z2luKHtcbiAgICAgICAgICAvLyBOaXRybyBidWlsZCBhcnRpZmFjdHMgaGF2ZSBhbHJlYWR5IGJlZW4gdHJhbnNmb3JtZWQuXG4gICAgICAgICAgLy8gUmUtcHJvY2Vzc2luZyB0aGVtIGNhbiBkdXBsaWNhdGUgY2xhc3MgcmVnaXN0cmF0aW9uLlxuICAgICAgICAgIGV4Y2x1ZGU6IFtuaXRyb0J1aWxkRGlyXSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBOT1RFOiBUZW1wb3Jhcnkgd29ya2Fyb3VuZCBmb3IgZGVidWcgdW5lbnYgbW9ja1xuICAgIGlmICghbml0cm8ub3B0aW9ucy53b3JrZmxvdz8uX3ZpdGUpIHtcbiAgICAgIG5pdHJvLm9wdGlvbnMuYWxpYXMuZGVidWcgPz89ICdkZWJ1Zyc7XG4gICAgfVxuXG4gICAgLy8gQWRkIHRzQ29uZmlnIHBsdWdpblxuICAgIGlmIChuaXRyby5vcHRpb25zLndvcmtmbG93Py50eXBlc2NyaXB0UGx1Z2luKSB7XG4gICAgICBuaXRyby5vcHRpb25zLnR5cGVzY3JpcHQudHNDb25maWcgfHw9IHt9O1xuICAgICAgbml0cm8ub3B0aW9ucy50eXBlc2NyaXB0LnRzQ29uZmlnLmNvbXBpbGVyT3B0aW9ucyB8fD0ge307XG4gICAgICBuaXRyby5vcHRpb25zLnR5cGVzY3JpcHQudHNDb25maWcuY29tcGlsZXJPcHRpb25zLnBsdWdpbnMgfHw9IFtdO1xuICAgICAgbml0cm8ub3B0aW9ucy50eXBlc2NyaXB0LnRzQ29uZmlnLmNvbXBpbGVyT3B0aW9ucy5wbHVnaW5zLnB1c2goe1xuICAgICAgICBuYW1lOiAnd29ya2Zsb3cnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgZnVuY3Rpb25zIGZvciB2ZXJjZWwgYnVpbGRcbiAgICBpZiAoaXNWZXJjZWxEZXBsb3kpIHtcbiAgICAgIG5pdHJvLmhvb2tzLmhvb2soJ2NvbXBpbGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCBuZXcgVmVyY2VsQnVpbGRlcihuaXRybykuYnVpbGQoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGxvY2FsIGJ1bmRsZXMgZm9yIGRldiBhbmQgbG9jYWwgcHJvZFxuICAgIGlmICghaXNWZXJjZWxEZXBsb3kpIHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgTG9jYWxCdWlsZGVyKG5pdHJvKTtcbiAgICAgIGxldCBpc0luaXRpYWxCdWlsZCA9IHRydWU7XG5cbiAgICAgIG5pdHJvLmhvb2tzLmhvb2soJ2J1aWxkOmJlZm9yZScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICAgIC8vIEZvciBwcm9kOiB3cml0ZSB0aGUgbWFuaWZlc3QgaGFuZGxlciBmaWxlIHdpdGggaW5saW5lZCBjb250ZW50XG4gICAgICAgIC8vIG5vdyB0aGF0IHRoZSBidWlsZGVyIGhhcyBnZW5lcmF0ZWQgdGhlIG1hbmlmZXN0LiBSb2xsdXAgd2lsbFxuICAgICAgICAvLyBidW5kbGUgdGhpcyBmaWxlIGludG8gdGhlIGNvbXBpbGVkIG91dHB1dC5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFuaXRyby5vcHRpb25zLmRldiAmJlxuICAgICAgICAgIHByb2Nlc3MuZW52LldPUktGTE9XX1BVQkxJQ19NQU5JRkVTVCA9PT0gJzEnXG4gICAgICAgICkge1xuICAgICAgICAgIHdyaXRlTWFuaWZlc3RIYW5kbGVyKG5pdHJvKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIEFsbG93cyBmb3IgSE1SIC0gYnV0IHNraXAgdGhlIGZpcnN0IGRldjpyZWxvYWQgc2luY2UgYnVpbGQ6YmVmb3JlIGFscmVhZHkgcmFuXG4gICAgICBpZiAobml0cm8ub3B0aW9ucy5kZXYpIHtcbiAgICAgICAgbml0cm8uaG9va3MuaG9vaygnZGV2OnJlbG9hZCcsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBpZiAoaXNJbml0aWFsQnVpbGQpIHtcbiAgICAgICAgICAgIGlzSW5pdGlhbEJ1aWxkID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChuaXRyby5vcHRpb25zLmRldikge1xuICAgICAgICBhZGREYXNoYm9hcmRIYW5kbGVyKG5pdHJvKTtcbiAgICAgIH1cblxuICAgICAgYWRkVmlydHVhbEhhbmRsZXIoXG4gICAgICAgIG5pdHJvLFxuICAgICAgICAnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL3dlYmhvb2svOnRva2VuJyxcbiAgICAgICAgJ3dvcmtmbG93L3dlYmhvb2subWpzJ1xuICAgICAgKTtcblxuICAgICAgYWRkVmlydHVhbEhhbmRsZXIoXG4gICAgICAgIG5pdHJvLFxuICAgICAgICAnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL3N0ZXAnLFxuICAgICAgICAnd29ya2Zsb3cvc3RlcHMubWpzJ1xuICAgICAgKTtcblxuICAgICAgYWRkVmlydHVhbEhhbmRsZXIoXG4gICAgICAgIG5pdHJvLFxuICAgICAgICAnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cnLFxuICAgICAgICAnd29ya2Zsb3cvd29ya2Zsb3dzLm1qcydcbiAgICAgICk7XG5cbiAgICAgIC8vIEV4cG9zZSBtYW5pZmVzdCBhcyBhIHB1YmxpYyBIVFRQIHJvdXRlIHdoZW4gV09SS0ZMT1dfUFVCTElDX01BTklGRVNUPTFcbiAgICAgIGlmIChwcm9jZXNzLmVudi5XT1JLRkxPV19QVUJMSUNfTUFOSUZFU1QgPT09ICcxJykge1xuICAgICAgICAvLyBXcml0ZSBhIHBsYWNlaG9sZGVyIG1hbmlmZXN0LWRhdGEubWpzIHNvIHJvbGx1cCBjYW4gcmVzb2x2ZSB0aGVcbiAgICAgICAgLy8gaW1wb3J0LiBJdCB3aWxsIGJlIG92ZXJ3cml0dGVuIHdpdGggdGhlIHJlYWwgbWFuaWZlc3QgaW4gYnVpbGQ6YmVmb3JlLlxuICAgICAgICAvLyBXcml0ZSBhIHBsYWNlaG9sZGVyIGhhbmRsZXIgZmlsZSBzbyByb2xsdXAgY2FuIHJlc29sdmUgdGhlIHBhdGhcbiAgICAgICAgLy8gZHVyaW5nIHByb2QgY29tcGlsYXRpb24uIEl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgcmVhbFxuICAgICAgICAvLyBtYW5pZmVzdCBjb250ZW50IGJ5IHdyaXRlTWFuaWZlc3RIYW5kbGVyKCkgaW4gYnVpbGQ6YmVmb3JlLlxuICAgICAgICBpZiAoIW5pdHJvLm9wdGlvbnMuZGV2KSB7XG4gICAgICAgICAgY29uc3QgZGlyID0gam9pbihuaXRyby5vcHRpb25zLmJ1aWxkRGlyLCAnd29ya2Zsb3cnKTtcbiAgICAgICAgICBta2RpclN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICBjb25zdCBoYW5kbGVyUGF0aCA9IGpvaW4oZGlyLCAnbWFuaWZlc3QtaGFuZGxlci5tanMnKTtcbiAgICAgICAgICB3cml0ZUZpbGVTeW5jKFxuICAgICAgICAgICAgaGFuZGxlclBhdGgsXG4gICAgICAgICAgICAnZXhwb3J0IGRlZmF1bHQgYXN5bmMgKCkgPT4gbmV3IFJlc3BvbnNlKFwiTWFuaWZlc3Qgbm90IGZvdW5kXCIsIHsgc3RhdHVzOiA0MDQgfSk7XFxuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYWRkTWFuaWZlc3RIYW5kbGVyKG5pdHJvKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG59IHNhdGlzZmllcyBOaXRyb01vZHVsZTtcblxuY29uc3QgREFTSEJPQVJEX1ZJUlRVQUxfSUQgPSAnI3dvcmtmbG93L2Rhc2hib2FyZC1oYW5kbGVyJztcblxuZnVuY3Rpb24gYWRkRGFzaGJvYXJkSGFuZGxlcihuaXRybzogTml0cm8pIHtcbiAgY29uc3Qgcm91dGUgPSAnL193b3JrZmxvdyc7XG4gIG5pdHJvLm9wdGlvbnMuaGFuZGxlcnMucHVzaCh7IHJvdXRlLCBoYW5kbGVyOiBEQVNIQk9BUkRfVklSVFVBTF9JRCB9KTtcblxuICAvLyBSZXNvbHZlIGBAd29ya2Zsb3cvd2ViL3NlcnZlcmAgcmVsYXRpdmUgdG8gdGhpcyBtb2R1bGUgc28gY29uc3VtZXJzIGRvbid0XG4gIC8vIG5lZWQgYSBkaXJlY3QgZGVwZW5kZW5jeSBvbiBgQHdvcmtmbG93L3dlYmAuIFRoZSBwYXRoIGlzIGlubGluZWQgaW50byB0aGVcbiAgLy8gdmlydHVhbCBoYW5kbGVyIGFzIGEgZmlsZTovLyBVUkwgc28gTm9kZSBjYW4gYGltcG9ydCgpYCBpdCBhdCBydW50aW1lXG4gIC8vIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUgdGhlIGdlbmVyYXRlZCBOaXRybyBidW5kbGUgZW5kcyB1cC5cbiAgY29uc3QgcmVxdWlyZV8gPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG4gIGxldCB3ZWJTZXJ2ZXJVcmw6IHN0cmluZztcbiAgdHJ5IHtcbiAgICB3ZWJTZXJ2ZXJVcmwgPSBwYXRoVG9GaWxlVVJMKHJlcXVpcmVfLnJlc29sdmUoJ0B3b3JrZmxvdy93ZWIvc2VydmVyJykpLmhyZWY7XG4gIH0gY2F0Y2gge1xuICAgIHdlYlNlcnZlclVybCA9ICdAd29ya2Zsb3cvd2ViL3NlcnZlcic7XG4gIH1cblxuICBjb25zdCBoYW5kbGVyU291cmNlID0gLyoganMgKi8gYFxuICAgIGNvbnN0IF9fd29ya2Zsb3dXZWJTZXJ2ZXJVcmwgPSAke0pTT04uc3RyaW5naWZ5KHdlYlNlcnZlclVybCl9O1xuICAgIGxldCBzZXJ2ZXJQcm9taXNlID0gbnVsbDtcbiAgICBhc3luYyBmdW5jdGlvbiBnZXREYXNoYm9hcmRVcmwoKSB7XG4gICAgICBpZiAoIXNlcnZlclByb21pc2UpIHtcbiAgICAgICAgc2VydmVyUHJvbWlzZSA9IChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzdGFydFNlcnZlciB9ID0gYXdhaXQgaW1wb3J0KC8qIEB2aXRlLWlnbm9yZSAqLyAvKiB3ZWJwYWNrSWdub3JlOiB0cnVlICovIF9fd29ya2Zsb3dXZWJTZXJ2ZXJVcmwpO1xuICAgICAgICAgIGNvbnN0IHNlcnZlciA9IGF3YWl0IHN0YXJ0U2VydmVyKDApO1xuICAgICAgICAgIGNvbnN0IGFkZHJlc3MgPSBzZXJ2ZXIuYWRkcmVzcygpO1xuICAgICAgICAgIGNvbnN0IHBvcnQgPSB0eXBlb2YgYWRkcmVzcyA9PT0gJ29iamVjdCcgJiYgYWRkcmVzcyA/IGFkZHJlc3MucG9ydCA6IDM0NTY7XG4gICAgICAgICAgcmV0dXJuICdodHRwOi8vbG9jYWxob3N0OicgKyBwb3J0O1xuICAgICAgICB9KSgpLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHNlcnZlclByb21pc2UgPSBudWxsO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzZXJ2ZXJQcm9taXNlO1xuICAgIH1cbiAgYDtcblxuICBpZiAoIW5pdHJvLnJvdXRpbmcpIHtcbiAgICBuaXRyby5vcHRpb25zLnZpcnR1YWxbREFTSEJPQVJEX1ZJUlRVQUxfSURdID0gLyoganMgKi8gYFxuICAgICAgaW1wb3J0IHsgZnJvbVdlYkhhbmRsZXIgfSBmcm9tIFwiaDNcIjtcbiAgICAgICR7aGFuZGxlclNvdXJjZX1cbiAgICAgIGV4cG9ydCBkZWZhdWx0IGZyb21XZWJIYW5kbGVyKGFzeW5jICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCBnZXREYXNoYm9hcmRVcmwoKTtcbiAgICAgICAgICByZXR1cm4gUmVzcG9uc2UucmVkaXJlY3QodXJsLCAzMDIpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCB3b3JrZmxvdyBkYXNoYm9hcmQ6JywgZXJyb3IpO1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoJ0ZhaWxlZCB0byBzdGFydCB3b3JrZmxvdyBkYXNoYm9hcmQ6ICcgKyBlcnJvci5tZXNzYWdlLCB7IHN0YXR1czogNTAwIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBgO1xuICB9IGVsc2Uge1xuICAgIG5pdHJvLm9wdGlvbnMudmlydHVhbFtEQVNIQk9BUkRfVklSVFVBTF9JRF0gPSAvKiBqcyAqLyBgXG4gICAgICAke2hhbmRsZXJTb3VyY2V9XG4gICAgICBleHBvcnQgZGVmYXVsdCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdXJsID0gYXdhaXQgZ2V0RGFzaGJvYXJkVXJsKCk7XG4gICAgICAgICAgcmV0dXJuIFJlc3BvbnNlLnJlZGlyZWN0KHVybCwgMzAyKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgd29ya2Zsb3cgZGFzaGJvYXJkOicsIGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKCdGYWlsZWQgdG8gc3RhcnQgd29ya2Zsb3cgZGFzaGJvYXJkOiAnICsgZXJyb3IubWVzc2FnZSwgeyBzdGF0dXM6IDUwMCB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICBgO1xuICB9XG59XG5cbnR5cGUgVmlydHVhbEhhbmRsZXJQYXRoID1cbiAgfCAnd29ya2Zsb3cvd2ViaG9vay5tanMnXG4gIHwgJ3dvcmtmbG93L3N0ZXBzLm1qcydcbiAgfCAnd29ya2Zsb3cvd29ya2Zsb3dzLm1qcyc7XG5cbmZ1bmN0aW9uIGFkZFZpcnR1YWxIYW5kbGVyKFxuICBuaXRybzogTml0cm8sXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGJ1aWxkUGF0aDogVmlydHVhbEhhbmRsZXJQYXRoXG4pIHtcbiAgbml0cm8ub3B0aW9ucy5oYW5kbGVycy5wdXNoKHtcbiAgICByb3V0ZSxcbiAgICBoYW5kbGVyOiBgIyR7YnVpbGRQYXRofWAsXG4gIH0pO1xuICAvLyBLZWVwIGEgYmFyZSBpbXBvcnQgYWxvbmdzaWRlIGBQT1NUYDogaW4gTnV4dCArIE5pdHJvIHByb2R1Y3Rpb24gYnVpbGRzXG4gIC8vIHVzaW5nIGBAd29ya2Zsb3cvbnV4dGAsIGltcG9ydGluZyBvbmx5IGBQT1NUYCBjb3VsZCBkcm9wIHRoZSBnZW5lcmF0ZWRcbiAgLy8gc3RlcCBidW5kbGUncyB0b3AtbGV2ZWwgcmVnaXN0cmF0aW9ucywgc28gdGhlIGhhbmRsZXIgbG9hZGVkIGJ1dCBzdGVwc1xuICAvLyB3ZXJlIG1pc3NpbmcgYXQgcnVudGltZS5cbiAgY29uc3QgaGFuZGxlckltcG9ydFBhdGggPSBKU09OLnN0cmluZ2lmeShcbiAgICBqb2luKG5pdHJvLm9wdGlvbnMuYnVpbGREaXIsIGJ1aWxkUGF0aClcbiAgKTtcbiAgY29uc3Qgc3RlcHNJbXBvcnRQYXRoID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgam9pbihuaXRyby5vcHRpb25zLmJ1aWxkRGlyLCAnd29ya2Zsb3cvc3RlcHMubWpzJylcbiAgKTtcbiAgY29uc3QgcHJlbG9hZFN0ZXBzOiBSZWNvcmQ8VmlydHVhbEhhbmRsZXJQYXRoLCBzdHJpbmc+ID0ge1xuICAgICd3b3JrZmxvdy93ZWJob29rLm1qcyc6ICcnLFxuICAgICd3b3JrZmxvdy9zdGVwcy5tanMnOiAnJyxcbiAgICAnd29ya2Zsb3cvd29ya2Zsb3dzLm1qcyc6IGBhd2FpdCBpbXBvcnQoLyogQHZpdGUtaWdub3JlICovIHBhdGhUb0ZpbGVVUkwoJHtzdGVwc0ltcG9ydFBhdGh9KS5ocmVmICsgXCI/dD1cIiArIHZlcnNpb24pO2AsXG4gIH07XG5cbiAgaWYgKG5pdHJvLm9wdGlvbnMuZGV2KSB7XG4gICAgLy8gRGV2IG1vZGU6IGxvYWQgZ2VuZXJhdGVkIHdvcmtmbG93IGJ1bmRsZXMgZnJvbSBkaXNrIGF0IHJlcXVlc3QgdGltZS5cbiAgICAvLyBUaGlzIGtlZXBzIGAubml0cm8vd29ya2Zsb3cvKi5tanNgIG91dCBvZiBOaXRybydzIG93biBidW5kbGUgZ3JhcGgsXG4gICAgLy8gd2hpY2ggYXZvaWRzIHJlYnVpbGQgbG9vcHMgYW5kIHN0YWxlIGRlcGVuZGVuY3kgZ3JhcGhzIGR1cmluZyBITVIuXG4gICAgLy8gQ2FjaGUtYnVzdCBieSBmaWxlIG10aW1lIHNvIGVhY2ggc3VjY2Vzc2Z1bCByZWJ1aWxkIGxvYWRzIGZyZXNoIGNvZGUuXG4gICAgaWYgKCFuaXRyby5yb3V0aW5nKSB7XG4gICAgICBuaXRyby5vcHRpb25zLnZpcnR1YWxbYCMke2J1aWxkUGF0aH1gXSA9IC8qIGpzICovIGBcbiAgICAgIGltcG9ydCB7IGZyb21XZWJIYW5kbGVyIH0gZnJvbSBcImgzXCI7XG4gICAgICBpbXBvcnQgeyBzdGF0U3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG4gICAgICBpbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5cbiAgICAgIGNvbnN0IGhhbmRsZXJQYXRoID0gJHtoYW5kbGVySW1wb3J0UGF0aH07XG4gICAgICBsZXQgY3VycmVudFZlcnNpb24gPSBcIlwiO1xuICAgICAgbGV0IGN1cnJlbnRJbXBvcnRQYXRoID0gXCJcIjtcblxuICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZFBPU1QoKSB7XG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSBTdHJpbmcoc3RhdFN5bmMoaGFuZGxlclBhdGgpLm10aW1lTXMpO1xuICAgICAgICBpZiAodmVyc2lvbiAhPT0gY3VycmVudFZlcnNpb24pIHtcbiAgICAgICAgICBjdXJyZW50VmVyc2lvbiA9IHZlcnNpb247XG4gICAgICAgICAgY3VycmVudEltcG9ydFBhdGggPSBwYXRoVG9GaWxlVVJMKGhhbmRsZXJQYXRoKS5ocmVmICsgXCI/dD1cIiArIHZlcnNpb247XG4gICAgICAgICAgJHtwcmVsb2FkU3RlcHNbYnVpbGRQYXRoXX1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKGF3YWl0IGltcG9ydChjdXJyZW50SW1wb3J0UGF0aCkpLlBPU1Q7XG4gICAgICB9XG5cbiAgICAgIGV4cG9ydCBkZWZhdWx0IGZyb21XZWJIYW5kbGVyKGFzeW5jIChyZXF1ZXN0LCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IFBPU1QgPSBhd2FpdCBsb2FkUE9TVCgpO1xuICAgICAgICByZXR1cm4gUE9TVChyZXF1ZXN0LCBjb250ZXh0KTtcbiAgICAgIH0pO1xuICAgIGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5pdHJvLm9wdGlvbnMudmlydHVhbFtgIyR7YnVpbGRQYXRofWBdID0gLyoganMgKi8gYFxuICAgICAgaW1wb3J0IHsgc3RhdFN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuICAgICAgaW1wb3J0IHsgcGF0aFRvRmlsZVVSTCB9IGZyb20gXCJub2RlOnVybFwiO1xuXG4gICAgICBjb25zdCBoYW5kbGVyUGF0aCA9ICR7aGFuZGxlckltcG9ydFBhdGh9O1xuICAgICAgbGV0IGN1cnJlbnRWZXJzaW9uID0gXCJcIjtcbiAgICAgIGxldCBjdXJyZW50SW1wb3J0UGF0aCA9IFwiXCI7XG5cbiAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRQT1NUKCkge1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gU3RyaW5nKHN0YXRTeW5jKGhhbmRsZXJQYXRoKS5tdGltZU1zKTtcbiAgICAgICAgaWYgKHZlcnNpb24gIT09IGN1cnJlbnRWZXJzaW9uKSB7XG4gICAgICAgICAgY3VycmVudFZlcnNpb24gPSB2ZXJzaW9uO1xuICAgICAgICAgIGN1cnJlbnRJbXBvcnRQYXRoID0gcGF0aFRvRmlsZVVSTChoYW5kbGVyUGF0aCkuaHJlZiArIFwiP3Q9XCIgKyB2ZXJzaW9uO1xuICAgICAgICAgICR7cHJlbG9hZFN0ZXBzW2J1aWxkUGF0aF19XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChhd2FpdCBpbXBvcnQoY3VycmVudEltcG9ydFBhdGgpKS5QT1NUO1xuICAgICAgfVxuXG4gICAgICBleHBvcnQgZGVmYXVsdCBhc3luYyAoeyByZXEgfSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IFBPU1QgPSBhd2FpdCBsb2FkUE9TVCgpO1xuICAgICAgICAgIHJldHVybiBhd2FpdCBQT1NUKHJlcSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignSGFuZGxlciBlcnJvcjonLCBlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZSgnSW50ZXJuYWwgU2VydmVyIEVycm9yJywgeyBzdGF0dXM6IDUwMCB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICBgO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIW5pdHJvLnJvdXRpbmcpIHtcbiAgICAvLyBOaXRybyB2MiAobGVnYWN5KVxuICAgIG5pdHJvLm9wdGlvbnMudmlydHVhbFtgIyR7YnVpbGRQYXRofWBdID0gLyoganMgKi8gYFxuICAgIGltcG9ydCAke2hhbmRsZXJJbXBvcnRQYXRofTtcbiAgICBpbXBvcnQgeyBmcm9tV2ViSGFuZGxlciB9IGZyb20gXCJoM1wiO1xuICAgIGltcG9ydCB7IFBPU1QgfSBmcm9tICR7aGFuZGxlckltcG9ydFBhdGh9O1xuICAgIGV4cG9ydCBkZWZhdWx0IGZyb21XZWJIYW5kbGVyKFBPU1QpO1xuICBgO1xuICB9IGVsc2Uge1xuICAgIC8vIE5pdHJvIHYzKyAobmF0aXZlIHdlYiBoYW5kbGVycylcbiAgICBuaXRyby5vcHRpb25zLnZpcnR1YWxbYCMke2J1aWxkUGF0aH1gXSA9IC8qIGpzICovIGBcbiAgICBpbXBvcnQgJHtoYW5kbGVySW1wb3J0UGF0aH07XG4gICAgaW1wb3J0IHsgUE9TVCB9IGZyb20gJHtoYW5kbGVySW1wb3J0UGF0aH07XG4gICAgZXhwb3J0IGRlZmF1bHQgYXN5bmMgKHsgcmVxIH0pID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBQT1NUKHJlcSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdIYW5kbGVyIGVycm9yOicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZSgnSW50ZXJuYWwgU2VydmVyIEVycm9yJywgeyBzdGF0dXM6IDUwMCB9KTtcbiAgICAgIH1cbiAgICB9O1xuICBgO1xuICB9XG59XG5cbmNvbnN0IE1BTklGRVNUX1ZJUlRVQUxfSUQgPSAnI3dvcmtmbG93L21hbmlmZXN0LWhhbmRsZXInO1xuXG5mdW5jdGlvbiBhZGRNYW5pZmVzdEhhbmRsZXIobml0cm86IE5pdHJvKSB7XG4gIGNvbnN0IHJvdXRlID0gJy8ud2VsbC1rbm93bi93b3JrZmxvdy92MS9tYW5pZmVzdC5qc29uJztcbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gam9pbihuaXRyby5vcHRpb25zLmJ1aWxkRGlyLCAnd29ya2Zsb3cvbWFuaWZlc3QuanNvbicpO1xuICBjb25zdCBoYW5kbGVyUGF0aCA9IGpvaW4oXG4gICAgbml0cm8ub3B0aW9ucy5idWlsZERpcixcbiAgICAnd29ya2Zsb3cvbWFuaWZlc3QtaGFuZGxlci5tanMnXG4gICk7XG5cbiAgaWYgKG5pdHJvLm9wdGlvbnMuZGV2KSB7XG4gICAgLy8gRGV2IG1vZGU6IHVzZSBhIHZpcnR1YWwgaGFuZGxlciB0aGF0IHJlYWRzIHRoZSBtYW5pZmVzdCBmcm9tIGRpc2sgYXRcbiAgICAvLyByZXF1ZXN0IHRpbWUuIFRoZSBhYnNvbHV0ZSBwYXRoIGlzIHZhbGlkIGJlY2F1c2Ugd2UncmUgb24gdGhlIGJ1aWxkIG1hY2hpbmUuXG4gICAgbml0cm8ub3B0aW9ucy5oYW5kbGVycy5wdXNoKHsgcm91dGUsIGhhbmRsZXI6IE1BTklGRVNUX1ZJUlRVQUxfSUQgfSk7XG4gICAgbml0cm8ub3B0aW9ucy52aXJ0dWFsW01BTklGRVNUX1ZJUlRVQUxfSURdID0gIW5pdHJvLnJvdXRpbmdcbiAgICAgID8gLyoganMgKi8gYFxuICAgICAgaW1wb3J0IHsgZnJvbVdlYkhhbmRsZXIgfSBmcm9tIFwiaDNcIjtcbiAgICAgIGltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG4gICAgICBmdW5jdGlvbiBHRVQoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbWFuaWZlc3QgPSByZWFkRmlsZVN5bmMoJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdFBhdGgpfSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG1hbmlmZXN0LCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoXCJNYW5pZmVzdCBub3QgZm91bmRcIiwgeyBzdGF0dXM6IDQwNCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZXhwb3J0IGRlZmF1bHQgZnJvbVdlYkhhbmRsZXIoR0VUKTtcbiAgICBgXG4gICAgICA6IC8qIGpzICovIGBcbiAgICAgIGltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG4gICAgICBleHBvcnQgZGVmYXVsdCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbWFuaWZlc3QgPSByZWFkRmlsZVN5bmMoJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdFBhdGgpfSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG1hbmlmZXN0LCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoXCJNYW5pZmVzdCBub3QgZm91bmRcIiwgeyBzdGF0dXM6IDQwNCB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICBgO1xuICB9IGVsc2Uge1xuICAgIC8vIFByb2QgbW9kZTogcmVnaXN0ZXIgYSBwaHlzaWNhbCBoYW5kbGVyIGZpbGUgdGhhdCB3aWxsIGJlIHdyaXR0ZW4gYnlcbiAgICAvLyB3cml0ZU1hbmlmZXN0SGFuZGxlcigpIGFmdGVyIHRoZSBidWlsZGVyIGdlbmVyYXRlcyB0aGUgbWFuaWZlc3QuXG4gICAgLy8gVGhpcyBmaWxlIGlzIGJ1bmRsZWQgYnkgcm9sbHVwIGludG8gdGhlIGNvbXBpbGVkIG91dHB1dC5cbiAgICBuaXRyby5vcHRpb25zLmhhbmRsZXJzLnB1c2goeyByb3V0ZSwgaGFuZGxlcjogaGFuZGxlclBhdGggfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBXcml0ZXMgYSBwaHlzaWNhbCBtYW5pZmVzdCBoYW5kbGVyIGZpbGUgd2l0aCB0aGUgbWFuaWZlc3QgY29udGVudCBpbmxpbmVkLlxuICogTXVzdCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIGJ1aWxkZXIgZ2VuZXJhdGVzIHRoZSBtYW5pZmVzdCAoZHVyaW5nIGJ1aWxkOmJlZm9yZSlcbiAqIGFuZCBiZWZvcmUgTml0cm8gY29tcGlsZXMgdGhlIGJ1bmRsZSB3aXRoIHJvbGx1cC5cbiAqL1xuZnVuY3Rpb24gd3JpdGVNYW5pZmVzdEhhbmRsZXIobml0cm86IE5pdHJvKSB7XG4gIGNvbnN0IG1hbmlmZXN0UGF0aCA9IGpvaW4obml0cm8ub3B0aW9ucy5idWlsZERpciwgJ3dvcmtmbG93L21hbmlmZXN0Lmpzb24nKTtcbiAgY29uc3QgaGFuZGxlclBhdGggPSBqb2luKFxuICAgIG5pdHJvLm9wdGlvbnMuYnVpbGREaXIsXG4gICAgJ3dvcmtmbG93L21hbmlmZXN0LWhhbmRsZXIubWpzJ1xuICApO1xuICBjb25zdCBkaXIgPSBqb2luKG5pdHJvLm9wdGlvbnMuYnVpbGREaXIsICd3b3JrZmxvdycpO1xuICBta2RpclN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICB0cnkge1xuICAgIGNvbnN0IG1hbmlmZXN0Q29udGVudCA9IHJlYWRGaWxlU3luYyhtYW5pZmVzdFBhdGgsICd1dGYtOCcpO1xuICAgIEpTT04ucGFyc2UobWFuaWZlc3RDb250ZW50KTsgLy8gdmFsaWRhdGVcblxuICAgIGNvbnN0IGhhbmRsZXJDb2RlID0gIW5pdHJvLnJvdXRpbmdcbiAgICAgID8gYGltcG9ydCB7IGZyb21XZWJIYW5kbGVyIH0gZnJvbSBcImgzXCI7XG5jb25zdCBtYW5pZmVzdCA9ICR7SlNPTi5zdHJpbmdpZnkobWFuaWZlc3RDb250ZW50KX07XG5leHBvcnQgZGVmYXVsdCBmcm9tV2ViSGFuZGxlcigoKSA9PiBuZXcgUmVzcG9uc2UobWFuaWZlc3QsIHtcbiAgaGVhZGVyczogeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxufSkpO1xuYFxuICAgICAgOiBgY29uc3QgbWFuaWZlc3QgPSAke0pTT04uc3RyaW5naWZ5KG1hbmlmZXN0Q29udGVudCl9O1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgKCkgPT4gbmV3IFJlc3BvbnNlKG1hbmlmZXN0LCB7XG4gIGhlYWRlcnM6IHsgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbn0pO1xuYDtcbiAgICB3cml0ZUZpbGVTeW5jKGhhbmRsZXJQYXRoLCBoYW5kbGVyQ29kZSk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIFdyaXRlIGEgNDA0IGZhbGxiYWNrIGhhbmRsZXJcbiAgICBjb25zdCBmYWxsYmFjayA9ICFuaXRyby5yb3V0aW5nXG4gICAgICA/IGBpbXBvcnQgeyBmcm9tV2ViSGFuZGxlciB9IGZyb20gXCJoM1wiO1xuZXhwb3J0IGRlZmF1bHQgZnJvbVdlYkhhbmRsZXIoKCkgPT4gbmV3IFJlc3BvbnNlKFwiTWFuaWZlc3Qgbm90IGZvdW5kXCIsIHsgc3RhdHVzOiA0MDQgfSkpO1xuYFxuICAgICAgOiBgZXhwb3J0IGRlZmF1bHQgYXN5bmMgKCkgPT4gbmV3IFJlc3BvbnNlKFwiTWFuaWZlc3Qgbm90IGZvdW5kXCIsIHsgc3RhdHVzOiA0MDQgfSk7XG5gO1xuICAgIHdyaXRlRmlsZVN5bmMoaGFuZGxlclBhdGgsIGZhbGxiYWNrKTtcbiAgfVxufVxuIl19
|
package/dist/vite.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,EAAE,CA4E1D"}
|
package/dist/vite.js
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
import { createBuildQueue } from '@workflow/builders';
|
|
2
2
|
import { workflowTransformPlugin } from '@workflow/rollup';
|
|
3
3
|
import { workflowHotUpdatePlugin } from '@workflow/vite';
|
|
4
|
-
import { join } from 'pathe';
|
|
5
4
|
import { LocalBuilder } from './builders.js';
|
|
6
5
|
import nitroModule from './index.js';
|
|
7
6
|
export function workflow(options) {
|
|
8
7
|
let builder;
|
|
9
|
-
let
|
|
8
|
+
let nitroBuildDir;
|
|
10
9
|
const enqueue = createBuildQueue();
|
|
11
|
-
// Create a lazy transform plugin that excludes
|
|
10
|
+
// Create a lazy transform plugin that excludes Nitro build artifacts.
|
|
12
11
|
// The exclusion path is set during nitro setup, so we need to defer plugin creation
|
|
13
12
|
const lazyTransformPlugin = {
|
|
14
13
|
name: 'workflow:transform',
|
|
15
14
|
transform(code, id) {
|
|
16
15
|
// Delegate to the actual transform plugin with exclusion
|
|
17
|
-
//
|
|
16
|
+
// nitroBuildDir is set during nitro setup before transforms run
|
|
18
17
|
const plugin = workflowTransformPlugin({
|
|
19
|
-
exclude:
|
|
18
|
+
exclude: nitroBuildDir ? [nitroBuildDir] : [],
|
|
20
19
|
});
|
|
21
20
|
return plugin.transform?.call(this, code, id);
|
|
22
21
|
},
|
|
@@ -27,8 +26,8 @@ export function workflow(options) {
|
|
|
27
26
|
name: 'workflow:nitro',
|
|
28
27
|
nitro: {
|
|
29
28
|
setup: (nitro) => {
|
|
30
|
-
// Capture the
|
|
31
|
-
|
|
29
|
+
// Capture the Nitro build directory for exclusion
|
|
30
|
+
nitroBuildDir = `${nitro.options.buildDir.replace(/[\\/]+$/, '')}/`;
|
|
32
31
|
nitro.options.workflow = {
|
|
33
32
|
...nitro.options.workflow,
|
|
34
33
|
...options,
|
|
@@ -75,4 +74,4 @@ export function workflow(options) {
|
|
|
75
74
|
}),
|
|
76
75
|
];
|
|
77
76
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0MsT0FBTyxXQUFXLE1BQU0sWUFBWSxDQUFDO0FBRXJDLE1BQU0sVUFBVSxRQUFRLENBQUMsT0FBdUI7SUFDOUMsSUFBSSxPQUFxQixDQUFDO0lBQzFCLElBQUksYUFBcUIsQ0FBQztJQUMxQixNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRW5DLHNFQUFzRTtJQUN0RSxvRkFBb0Y7SUFDcEYsTUFBTSxtQkFBbUIsR0FBVztRQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQix5REFBeUQ7WUFDekQsZ0VBQWdFO1lBQ2hFLE1BQU0sTUFBTSxHQUFHLHVCQUF1QixDQUFDO2dCQUNyQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2FBQzlDLENBQUMsQ0FBQztZQUNILE9BQVEsTUFBTSxDQUFDLFNBQXNCLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQztLQUNGLENBQUM7SUFFRixPQUFPO1FBQ0wsbUJBQW1CO1FBQ25CO1lBQ0UsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixLQUFLLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLENBQUMsS0FBWSxFQUFFLEVBQUU7b0JBQ3RCLGtEQUFrRDtvQkFDbEQsYUFBYSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDO29CQUNwRSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRzt3QkFDdkIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVE7d0JBQ3pCLEdBQUcsT0FBTzt3QkFDVixLQUFLLEVBQUUsSUFBSTtxQkFDWixDQUFDO29CQUNGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDdEIsT0FBTyxHQUFHLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwQyxDQUFDO29CQUNELE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEMsQ0FBQzthQUNGO1lBQ0QsZ0dBQWdHO1lBQ2hHLDhGQUE4RjtZQUM5RixlQUFlLENBQUMsTUFBTTtnQkFDcEIsaUZBQWlGO2dCQUNqRixPQUFPLEdBQUcsRUFBRTtvQkFDVixNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7d0JBQ3hDLHNDQUFzQzt3QkFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsQ0FBQzs0QkFDdEQsT0FBTyxJQUFJLEVBQUUsQ0FBQzt3QkFDaEIsQ0FBQzt3QkFFRCx1REFBdUQ7d0JBQ3ZELE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQzt3QkFDeEMsR0FBRyxDQUFDLFNBQVMsR0FBRyxVQUE0QixHQUFHLElBQVc7NEJBQ3hELE1BQU0sVUFBVSxHQUFHLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7NEJBRS9ELDRFQUE0RTs0QkFDNUUsMERBQTBEOzRCQUMxRCxzRUFBc0U7NEJBQ3RFLElBQUksVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dDQUN2QiwwREFBMEQ7Z0NBQzFELEdBQUcsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7NEJBQ3ZDLENBQUM7NEJBRUQsZ0RBQWdEOzRCQUNoRCxPQUFPLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQzdDLENBQVEsQ0FBQzt3QkFFVCxJQUFJLEVBQUUsQ0FBQztvQkFDVCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUM7WUFDSixDQUFDO1NBQ0Y7UUFDRCx1QkFBdUIsQ0FBQztZQUN0QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTztZQUN0QixPQUFPO1NBQ1IsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQnVpbGRRdWV1ZSB9IGZyb20gJ0B3b3JrZmxvdy9idWlsZGVycyc7XG5pbXBvcnQgeyB3b3JrZmxvd1RyYW5zZm9ybVBsdWdpbiB9IGZyb20gJ0B3b3JrZmxvdy9yb2xsdXAnO1xuaW1wb3J0IHsgd29ya2Zsb3dIb3RVcGRhdGVQbHVnaW4gfSBmcm9tICdAd29ya2Zsb3cvdml0ZSc7XG5pbXBvcnQgdHlwZSB7IE5pdHJvIH0gZnJvbSAnbml0cm8vdHlwZXMnO1xuaW1wb3J0IHR5cGUge30gZnJvbSAnbml0cm8vdml0ZSc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHsgTG9jYWxCdWlsZGVyIH0gZnJvbSAnLi9idWlsZGVycy5qcyc7XG5pbXBvcnQgdHlwZSB7IE1vZHVsZU9wdGlvbnMgfSBmcm9tICcuL2luZGV4LmpzJztcbmltcG9ydCBuaXRyb01vZHVsZSBmcm9tICcuL2luZGV4LmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHdvcmtmbG93KG9wdGlvbnM/OiBNb2R1bGVPcHRpb25zKTogUGx1Z2luW10ge1xuICBsZXQgYnVpbGRlcjogTG9jYWxCdWlsZGVyO1xuICBsZXQgbml0cm9CdWlsZERpcjogc3RyaW5nO1xuICBjb25zdCBlbnF1ZXVlID0gY3JlYXRlQnVpbGRRdWV1ZSgpO1xuXG4gIC8vIENyZWF0ZSBhIGxhenkgdHJhbnNmb3JtIHBsdWdpbiB0aGF0IGV4Y2x1ZGVzIE5pdHJvIGJ1aWxkIGFydGlmYWN0cy5cbiAgLy8gVGhlIGV4Y2x1c2lvbiBwYXRoIGlzIHNldCBkdXJpbmcgbml0cm8gc2V0dXAsIHNvIHdlIG5lZWQgdG8gZGVmZXIgcGx1Z2luIGNyZWF0aW9uXG4gIGNvbnN0IGxhenlUcmFuc2Zvcm1QbHVnaW46IFBsdWdpbiA9IHtcbiAgICBuYW1lOiAnd29ya2Zsb3c6dHJhbnNmb3JtJyxcbiAgICB0cmFuc2Zvcm0oY29kZSwgaWQpIHtcbiAgICAgIC8vIERlbGVnYXRlIHRvIHRoZSBhY3R1YWwgdHJhbnNmb3JtIHBsdWdpbiB3aXRoIGV4Y2x1c2lvblxuICAgICAgLy8gbml0cm9CdWlsZERpciBpcyBzZXQgZHVyaW5nIG5pdHJvIHNldHVwIGJlZm9yZSB0cmFuc2Zvcm1zIHJ1blxuICAgICAgY29uc3QgcGx1Z2luID0gd29ya2Zsb3dUcmFuc2Zvcm1QbHVnaW4oe1xuICAgICAgICBleGNsdWRlOiBuaXRyb0J1aWxkRGlyID8gW25pdHJvQnVpbGREaXJdIDogW10sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiAocGx1Z2luLnRyYW5zZm9ybSBhcyBGdW5jdGlvbik/LmNhbGwodGhpcywgY29kZSwgaWQpO1xuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIFtcbiAgICBsYXp5VHJhbnNmb3JtUGx1Z2luLFxuICAgIHtcbiAgICAgIG5hbWU6ICd3b3JrZmxvdzpuaXRybycsXG4gICAgICBuaXRybzoge1xuICAgICAgICBzZXR1cDogKG5pdHJvOiBOaXRybykgPT4ge1xuICAgICAgICAgIC8vIENhcHR1cmUgdGhlIE5pdHJvIGJ1aWxkIGRpcmVjdG9yeSBmb3IgZXhjbHVzaW9uXG4gICAgICAgICAgbml0cm9CdWlsZERpciA9IGAke25pdHJvLm9wdGlvbnMuYnVpbGREaXIucmVwbGFjZSgvW1xcXFwvXSskLywgJycpfS9gO1xuICAgICAgICAgIG5pdHJvLm9wdGlvbnMud29ya2Zsb3cgPSB7XG4gICAgICAgICAgICAuLi5uaXRyby5vcHRpb25zLndvcmtmbG93LFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIF92aXRlOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKG5pdHJvLm9wdGlvbnMuZGV2KSB7XG4gICAgICAgICAgICBidWlsZGVyID0gbmV3IExvY2FsQnVpbGRlcihuaXRybyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuaXRyb01vZHVsZS5zZXR1cChuaXRybyk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLy8gTk9URTogVGhpcyBpcyBhIHdvcmthcm91bmQgYmVjYXVzZSBOaXRybyBwYXNzZXMgdGhlIDQwNCByZXF1ZXN0cyB0byB0aGUgZGV2IHNlcnZlciB0byBoYW5kbGUuXG4gICAgICAvLyBGb3Igd29ya2Zsb3cgcm91dGVzLCB3ZSBvdmVycmlkZSB0byBzZW5kIGFuIGVtcHR5IGJvZHkgdG8gcHJldmVudCBIb25vL1ZpdGUncyBTUEEgZmFsbGJhY2suXG4gICAgICBjb25maWd1cmVTZXJ2ZXIoc2VydmVyKSB7XG4gICAgICAgIC8vIEFkZCBtaWRkbGV3YXJlIHRvIGludGVyY2VwdCA0MDRzIG9uIHdvcmtmbG93IHJvdXRlcyBiZWZvcmUgVml0ZSdzIFNQQSBmYWxsYmFja1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgIHNlcnZlci5taWRkbGV3YXJlcy51c2UoKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgICAgICAgICAvLyBPbmx5IGhhbmRsZSB3b3JrZmxvdyB3ZWJob29rIHJvdXRlc1xuICAgICAgICAgICAgaWYgKCFyZXEudXJsPy5zdGFydHNXaXRoKCcvLndlbGwta25vd24vd29ya2Zsb3cvdjEvJykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV3JhcCB3cml0ZUhlYWQgdG8gZW5zdXJlIHdlIHNlbmQgZW1wdHkgYm9keSBmb3IgNDA0c1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxXcml0ZUhlYWQgPSByZXMud3JpdGVIZWFkO1xuICAgICAgICAgICAgcmVzLndyaXRlSGVhZCA9IGZ1bmN0aW9uICh0aGlzOiB0eXBlb2YgcmVzLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gdHlwZW9mIGFyZ3NbMF0gPT09ICdudW1iZXInID8gYXJnc1swXSA6IDIwMDtcblxuICAgICAgICAgICAgICAvLyBOT1RFOiBXb3JrYXJvdW5kIGJlY2F1c2UgTml0cm8gcGFzc2VzIDQwNCByZXF1ZXN0cyB0byB0aGUgdml0ZSB0byBoYW5kbGUuXG4gICAgICAgICAgICAgIC8vIENhdXNlcyBgd2ViaG9vayByb3V0ZSB3aXRoIGludmFsaWQgdG9rZW5gIHRlc3QgdG8gZmFpbC5cbiAgICAgICAgICAgICAgLy8gRm9yIDQwNHMgb24gd29ya2Zsb3cgcm91dGVzLCBlbnN1cmUgd2UncmUgc2VuZGluZyB0aGUgcmlnaHQgaGVhZGVyc1xuICAgICAgICAgICAgICBpZiAoc3RhdHVzQ29kZSA9PT0gNDA0KSB7XG4gICAgICAgICAgICAgICAgLy8gU2V0IGNvbnRlbnQtbGVuZ3RoIHRvIDAgdG8gcHJldmVudCBWaXRlIGZyb20gb3ZlcnJpZGluZ1xuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJywgJzAnKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBDb21wbGV4IG92ZXJsb2FkIHNpZ25hdHVyZVxuICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxXcml0ZUhlYWQuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgICAgICB9IGFzIGFueTtcblxuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9LFxuICAgIHdvcmtmbG93SG90VXBkYXRlUGx1Z2luKHtcbiAgICAgIGJ1aWxkZXI6ICgpID0+IGJ1aWxkZXIsXG4gICAgICBlbnF1ZXVlLFxuICAgIH0pLFxuICBdO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/nitro",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.3",
|
|
4
4
|
"description": "Nitro integration for Workflow SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,17 +24,17 @@
|
|
|
24
24
|
"@swc/core": "1.15.3",
|
|
25
25
|
"exsolve": "1.0.8",
|
|
26
26
|
"pathe": "2.0.3",
|
|
27
|
-
"@workflow/builders": "4.1.
|
|
28
|
-
"@workflow/core": "4.
|
|
29
|
-
"@workflow/rollup": "4.0.
|
|
30
|
-
"@workflow/swc-plugin": "4.1.
|
|
31
|
-
"@workflow/vite": "4.0.
|
|
32
|
-
"@workflow/web": "4.1.
|
|
27
|
+
"@workflow/builders": "4.1.2",
|
|
28
|
+
"@workflow/core": "4.6.1",
|
|
29
|
+
"@workflow/rollup": "4.0.12",
|
|
30
|
+
"@workflow/swc-plugin": "4.1.2",
|
|
31
|
+
"@workflow/vite": "4.0.12",
|
|
32
|
+
"@workflow/web": "4.1.13"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "22.19.0",
|
|
36
|
-
"nitro": "3.0.
|
|
37
|
-
"vite": "7.
|
|
36
|
+
"nitro": "3.0.260610-beta",
|
|
37
|
+
"vite": "7.3.6",
|
|
38
38
|
"@workflow/tsconfig": "4.0.1"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|