@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 CHANGED
@@ -1,3 +1,5 @@
1
1
  # workflow/nitro
2
2
 
3
3
  The docs have moved! Refer to them [here](https://useworkflow.dev/)
4
+
5
+ The Nitro module uses Nitro's `workspaceDir` as the workflow project root, so monorepo apps can import sibling workspace packages without extra workflow config.
@@ -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;AAGzC,qBAAa,aAAc,SAAQ,2BAA2B;gBAChD,KAAK,EAAE,KAAK;IAUT,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAWtC;AAED,qBAAa,YAAa,SAAQ,WAAW;;gBAE/B,KAAK,EAAE,KAAK;IAaT,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA4CtC"}
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
- dirs: ['.'], // Different apps that use nitro have different directories
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: ['.'], // Different apps that use nitro have different directories
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUQsT0FBTyxFQUNMLFdBQVcsRUFDWCx1QkFBdUIsRUFDdkIsMkJBQTJCLEdBQzVCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU3QixNQUFNLE9BQU8sYUFBYyxTQUFRLDJCQUEyQjtJQUM1RCxZQUFZLEtBQVk7UUFDdEIsS0FBSyxDQUFDO1lBQ0osR0FBRyx1QkFBdUIsQ0FBQztnQkFDekIsVUFBVSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTztnQkFDakMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsMkRBQTJEO2dCQUN4RSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTzthQUN6QyxDQUFDO1lBQ0YsV0FBVyxFQUFFLHlCQUF5QjtTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ1EsS0FBSyxDQUFDLEtBQUs7UUFDbEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFDdEIsNEJBQTRCLENBQzdCLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbEUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFP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dCI6WyJpbXBvcnQgeyBta2RpciwgcmVhZEZpbGUsIHdyaXRlRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHtcbiAgQmFzZUJ1aWxkZXIsXG4gIGNyZWF0ZUJhc2VCdWlsZGVyQ29uZmlnLFxuICBWZXJjZWxCdWlsZE91dHB1dEFQSUJ1aWxkZXIsXG59IGZyb20gJ0B3b3JrZmxvdy9idWlsZGVycyc7XG5pbXBvcnQgdHlwZSB7IE5pdHJvIH0gZnJvbSAnbml0cm8vdHlwZXMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGhlJztcblxuZXhwb3J0IGNsYXNzIFZlcmNlbEJ1aWxkZXIgZXh0ZW5kcyBWZXJjZWxCdWlsZE91dHB1dEFQSUJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihuaXRybzogTml0cm8pIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5jcmVhdGVCYXNlQnVpbGRlckNvbmZpZyh7XG4gICAgICAgIHdvcmtpbmdEaXI6IG5pdHJvLm9wdGlvbnMucm9vdERpcixcbiAgICAgICAgZGlyczogWycuJ10sIC8vIERpZmZlcmVudCBhcHBzIHRoYXQgdXNlIG5pdHJvIGhhdmUgZGlmZmVyZW50IGRpcmVjdG9yaWVzXG4gICAgICAgIHJ1bnRpbWU6IG5pdHJvLm9wdGlvbnMud29ya2Zsb3c/LnJ1bnRpbWUsXG4gICAgICB9KSxcbiAgICAgIGJ1aWxkVGFyZ2V0OiAndmVyY2VsLWJ1aWxkLW91dHB1dC1hcGknLFxuICAgIH0pO1xuICB9XG4gIG92ZXJyaWRlIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBqb2luKFxuICAgICAgdGhpcy5jb25maWcud29ya2luZ0RpcixcbiAgICAgICcudmVyY2VsL291dHB1dC9jb25maWcuanNvbidcbiAgICApO1xuICAgIGNvbnN0IG9yaWdpbmFsQ29uZmlnID0gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShjb25maWdQYXRoLCAndXRmLTgnKSk7XG4gICAgYXdhaXQgc3VwZXIuYnVpbGQoKTtcbiAgICBjb25zdCBuZXdDb25maWcgPSBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKGNvbmZpZ1BhdGgsICd1dGYtOCcpKTtcbiAgICBvcmlnaW5hbENvbmZpZy5yb3V0ZXMudW5zaGlmdCguLi5uZXdDb25maWcucm91dGVzKTtcbiAgICBhd2FpdCB3cml0ZUZpbGUoY29uZmlnUGF0aCwgSlNPTi5zdHJpbmdpZnkob3JpZ2luYWxDb25maWcsIG51bGwsIDIpKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9jYWxCdWlsZGVyIGV4dGVuZHMgQmFzZUJ1aWxkZXIge1xuICAjb3V0RGlyOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKG5pdHJvOiBOaXRybykge1xuICAgIGNvbnN0IG91dERpciA9IGpvaW4obml0cm8ub3B0aW9ucy5idWlsZERpciwgJ3dvcmtmbG93Jyk7XG4gICAgc3VwZXIoe1xuICAgICAgLi4uY3JlYXRlQmFzZUJ1aWxkZXJDb25maWcoe1xuICAgICAgICB3b3JraW5nRGlyOiBuaXRyby5vcHRpb25zLnJvb3REaXIsXG4gICAgICAgIHdhdGNoOiBuaXRyby5vcHRpb25zLmRldixcbiAgICAgICAgZGlyczogWycuJ10sIC8vIERpZmZlcmVudCBhcHBzIHRoYXQgdXNlIG5pdHJvIGhhdmUgZGlmZmVyZW50IGRpcmVjdG9yaWVzXG4gICAgICB9KSxcbiAgICAgIGJ1aWxkVGFyZ2V0OiAnbmV4dCcsIC8vIFBsYWNlaG9sZGVyLCBub3QgYWN0dWFsbHkgdXNlZFxuICAgIH0pO1xuICAgIHRoaXMuI291dERpciA9IG91dERpcjtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGlucHV0RmlsZXMgPSBhd2FpdCB0aGlzLmdldElucHV0RmlsZXMoKTtcbiAgICBhd2FpdCBta2Rpcih0aGlzLiNvdXREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgY29uc3QgeyBtYW5pZmVzdDogd29ya2Zsb3dzTWFuaWZlc3QgfSA9IGF3YWl0IHRoaXMuY3JlYXRlV29ya2Zsb3dzQnVuZGxlKHtcbiAgICAgIG91dGZpbGU6IGpvaW4odGhpcy4jb3V0RGlyLCAnd29ya2Zsb3dzLm1qcycpLFxuICAgICAgYnVuZGxlRmluYWxPdXRwdXQ6IGZhbHNlLFxuICAgICAgZm9ybWF0OiAnZXNtJyxcbiAgICAgIGlucHV0RmlsZXMsXG4gICAgfSk7XG5cbiAgICBjb25zdCB7IG1hbmlmZXN0OiBzdGVwc01hbmlmZXN0IH0gPSBhd2FpdCB0aGlzLmNyZWF0ZVN0ZXBzQnVuZGxlKHtcbiAgICAgIG91dGZpbGU6IGpvaW4odGhpcy4jb3V0RGlyLCAnc3RlcHMubWpzJyksXG4gICAgICBleHRlcm5hbGl6ZU5vblN0ZXBzOiB0cnVlLFxuICAgICAgLy8gSW4gZGV2LCBOaXRybyBkeW5hbWljYWxseSBpbXBvcnRzIHRoZSBnZW5lcmF0ZWQgd29ya2Zsb3cgZmlsZXMgZnJvbVxuICAgICAgLy8gZGlzaywgc28gdGhlcmUgaXMgbm8gbGF0ZXIgUm9sbHVwIHBhc3MgdG8gcmVzb2x2ZSBleHRlcm5hbGl6ZWQgbG9jYWxcbiAgICAgIC8vIFR5cGVTY3JpcHQgaW1wb3J0cy4gSW4gcHJvZCwgTml0cm8vUm9sbHVwIGhhbmRsZXMgdGhvc2UgaW1wb3J0cy5cbiAgICAgIGJ1bmRsZVRyYW5zaXRpdmVMb2NhbFN0ZXBEZXBlbmRlbmNpZXM6IHRoaXMuY29uZmlnLndhdGNoLFxuICAgICAgZm9ybWF0OiAnZXNtJyxcbiAgICAgIGlucHV0RmlsZXMsXG4gICAgfSk7XG5cbiAgICBjb25zdCB3ZWJob29rUm91dGVGaWxlID0gam9pbih0aGlzLiNvdXREaXIsICd3ZWJob29rLm1qcycpO1xuXG4gICAgYXdhaXQgdGhpcy5jcmVhdGVXZWJob29rQnVuZGxlKHtcbiAgICAgIG91dGZpbGU6IHdlYmhvb2tSb3V0ZUZpbGUsXG4gICAgICBidW5kbGU6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgLy8gTWVyZ2UgbWFuaWZlc3RzIGZyb20gYm90aCBidW5kbGVzXG4gICAgY29uc3QgbWFuaWZlc3QgPSB7XG4gICAgICBzdGVwczogeyAuLi5zdGVwc01hbmlmZXN0LnN0ZXBzLCAuLi53b3JrZmxvd3NNYW5pZmVzdC5zdGVwcyB9LFxuICAgICAgd29ya2Zsb3dzOiB7IC4uLnN0ZXBzTWFuaWZlc3Qud29ya2Zsb3dzLCAuLi53b3JrZmxvd3NNYW5pZmVzdC53b3JrZmxvd3MgfSxcbiAgICAgIGNsYXNzZXM6IHsgLi4uc3RlcHNNYW5pZmVzdC5jbGFzc2VzLCAuLi53b3JrZmxvd3NNYW5pZmVzdC5jbGFzc2VzIH0sXG4gICAgfTtcblxuICAgIC8vIEdlbmVyYXRlIG1hbmlmZXN0XG4gICAgY29uc3Qgd29ya2Zsb3dCdW5kbGVQYXRoID0gam9pbih0aGlzLiNvdXREaXIsICd3b3JrZmxvd3MubWpzJyk7XG4gICAgYXdhaXQgdGhpcy5jcmVhdGVNYW5pZmVzdCh7XG4gICAgICB3b3JrZmxvd0J1bmRsZVBhdGgsXG4gICAgICBtYW5pZmVzdERpcjogdGhpcy4jb3V0RGlyLFxuICAgICAgbWFuaWZlc3QsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUQsT0FBTyxFQUNMLFdBQVcsRUFDWCx1QkFBdUIsRUFDdkIsMkJBQTJCLEdBQzVCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU3QixNQUFNLFVBQVUsR0FBRywyQ0FBMkMsQ0FBQztBQUMvRCxNQUFNLFVBQVUsR0FBRywyQ0FBMkMsQ0FBQztBQUUvRCxTQUFTLG1CQUFtQixDQUFDLEtBQVk7SUFDdkMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztBQUM3RCxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxLQUFZO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sT0FBTyxhQUFjLFNBQVEsMkJBQTJCO0lBQzVELFlBQVksS0FBWTtRQUN0QixLQUFLLENBQUM7WUFDSixHQUFHLHVCQUF1QixDQUFDO2dCQUN6QixVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPO2dCQUNqQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsS0FBSyxDQUFDO2dCQUN2QyxJQUFJLEVBQUUsb0JBQW9CLENBQUMsS0FBSyxDQUFDO2dCQUNqQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTzthQUN6QyxDQUFDO1lBQ0YsV0FBVyxFQUFFLHlCQUF5QjtTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ1EsS0FBSyxDQUFDLEtBQUs7UUFDbEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFDdEIsNEJBQTRCLENBQzdCLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbEUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQzNCLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsK0JBQStCLEVBQUUsRUFDMUQsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSwrQkFBK0IsRUFBRSxFQUMxRCxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQ3BCLENBQUM7UUFDRixNQUFNLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFlBQWEsU0FBUSxXQUFXO0lBQzNDLE9BQU8sQ0FBUztJQUNoQixZQUFZLEtBQVk7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELEtBQUssQ0FBQztZQUNKLEdBQUcsdUJBQXVCLENBQUM7Z0JBQ3pCLFVBQVUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU87Z0JBQ2pDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7Z0JBQ3ZDLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUc7Z0JBQ3hCLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7YUFDbEMsQ0FBQztZQUNGLFdBQVcsRUFBRSxNQUFNLEVBQUUsaUNBQWlDO1NBQ3ZELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFUSxLQUFLLENBQUMsS0FBSztRQUNsQixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM5QyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFL0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDO1lBQ3ZFLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUM7WUFDNUMsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixNQUFNLEVBQUUsS0FBSztZQUNiLFVBQVU7U0FDWCxDQUFDLENBQUM7UUFFSCxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQy9ELE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7WUFDeEMsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixzRUFBc0U7WUFDdEUsdUVBQXVFO1lBQ3ZFLG1FQUFtRTtZQUNuRSxxQ0FBcUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEQsTUFBTSxFQUFFLEtBQUs7WUFDYixVQUFVO1NBQ1gsQ0FBQyxDQUFDO1FBRUgsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUUzRCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUM3QixPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsb0NBQW9DO1FBQ3BDLE1BQU0sUUFBUSxHQUFHO1lBQ2YsS0FBSyxFQUFFLEVBQUUsR0FBRyxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFO1lBQzdELFNBQVMsRUFBRSxFQUFFLEdBQUcsYUFBYSxDQUFDLFNBQVMsRUFBRSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsRUFBRTtZQUN6RSxPQUFPLEVBQUUsRUFBRSxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7U0FDcEUsQ0FBQztRQUVGLG9CQUFvQjtRQUNwQixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN4QixrQkFBa0I7WUFDbEIsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3pCLFFBQVE7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBta2RpciwgcmVhZEZpbGUsIHdyaXRlRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHtcbiAgQmFzZUJ1aWxkZXIsXG4gIGNyZWF0ZUJhc2VCdWlsZGVyQ29uZmlnLFxuICBWZXJjZWxCdWlsZE91dHB1dEFQSUJ1aWxkZXIsXG59IGZyb20gJ0B3b3JrZmxvdy9idWlsZGVycyc7XG5pbXBvcnQgdHlwZSB7IE5pdHJvIH0gZnJvbSAnbml0cm8vdHlwZXMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGhlJztcblxuY29uc3QgRkxPV19ST1VURSA9ICdeXFxcXC9cXFxcLndlbGwta25vd25cXFxcL3dvcmtmbG93XFxcXC92MVxcXFwvZmxvdyQnO1xuY29uc3QgU1RFUF9ST1VURSA9ICdeXFxcXC9cXFxcLndlbGwta25vd25cXFxcL3dvcmtmbG93XFxcXC92MVxcXFwvc3RlcCQnO1xuXG5mdW5jdGlvbiBnZXROaXRyb1Byb2plY3RSb290KG5pdHJvOiBOaXRybyk6IHN0cmluZyB7XG4gIHJldHVybiBuaXRyby5vcHRpb25zLndvcmtzcGFjZURpciA/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(this: void, nitro: Nitro): Promise<void>;
6
+ setup(nitro: Nitro): Promise<void>;
7
7
  };
8
8
  export default _default;
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -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;;;6BAIT,KAAK;;AAF1B,wBA4HwB"}
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
- // Pre-built workflow bundles directory - must be excluded from re-transformation
12
- const workflowBuildDir = join(nitro.options.buildDir, 'workflow');
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
- // Exclude pre-built workflow bundles from re-transformation
18
- // These are already processed and re-processing causes issues like
19
- // undefined class references when Nitro's bundler renames variables
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['debug'] ??= 'debug';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzVELGVBQWU7SUFDYixJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBWTtRQUN0QixNQUFNLGNBQWMsR0FDbEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUM7UUFFMUQseUVBQXlFO1FBQ3pFLDBDQUEwQztRQUMxQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUUxRSx1RUFBdUU7UUFDdkUsb0ZBQW9GO1FBQ3BGLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQWEsRUFBRSxNQUFvQixFQUFFLEVBQUU7WUFDdkUsTUFBTSxDQUFDLE9BQTBCLENBQUMsT0FBTyxDQUN4Qyx1QkFBdUIsQ0FBQztnQkFDdEIsdURBQXVEO2dCQUN2RCx1REFBdUQ7Z0JBQ3ZELE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQzthQUN6QixDQUFDLENBQ0gsQ0FBQztRQUNK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QStCLENBQ2hDLENBQUM7SUFDRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckQsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXBDLElBQUksQ0FBQztRQUNILE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFdBQVc7UUFFeEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTztZQUNoQyxDQUFDLENBQUM7bUJBQ1csSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUM7Ozs7Q0FJakQ7WUFDSyxDQUFDLENBQUMsb0JBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDOzs7O0NBSTFELENBQUM7UUFDRSxhQUFhLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCwrQkFBK0I7UUFDL0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTztZQUM3QixDQUFDLENBQUM7O0NBRVA7WUFDSyxDQUFDLENBQUM7Q0FDUCxDQUFDO1FBQ0UsYUFBYSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1rZGlyU3luYywgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSAnbm9kZTptb2R1bGUnO1xuaW1wb3J0IHsgcGF0aFRvRmlsZVVSTCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7IHdvcmtmbG93VHJhbnNmb3JtUGx1Z2luIH0gZnJvbSAnQHdvcmtmbG93L3JvbGx1cCc7XG5pbXBvcnQgdHlwZSB7IE5pdHJvLCBOaXRyb01vZHVsZSwgUm9sbHVwQ29uZmlnIH0gZnJvbSAnbml0cm8vdHlwZXMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGhlJztcbmltcG9ydCB7IExvY2FsQnVpbGRlciwgVmVyY2VsQnVpbGRlciB9IGZyb20gJy4vYnVpbGRlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBNb2R1bGVPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIHsgTW9kdWxlT3B0aW9ucyB9O1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICd3b3JrZmxvdy9uaXRybycsXG4gIGFzeW5jIHNldHVwKG5pdHJvOiBOaXRybykge1xuICAgIGNvbnN0IGlzVmVyY2VsRGVwbG95ID1cbiAgICAgICFuaXRyby5vcHRpb25zLmRldiAmJiBuaXRyby5vcHRpb25zLnByZXNldCA9PT0gJ3ZlcmNlbCc7XG5cbiAgICAvLyBOaXRybyBidWlsZCBhcnRpZmFjdHMgaGF2ZSBhbHJlYWR5IGJlZW4gdHJhbnNmb3JtZWQ7IGV4Y2x1ZGUgdGhlIHdob2xlXG4gICAgLy8gYnVpbGQgZGlyZWN0b3J5IGZyb20gcmUtdHJhbnNmb3JtYXRpb24uXG4gICAgY29uc3Qgbml0cm9CdWlsZERpciA9IGAke25pdHJvLm9wdGlvbnMuYnVpbGREaXIucmVwbGFjZSgvW1xcXFwvXSskLywgJycpfS9gO1xuXG4gICAgLy8gQWRkIHRyYW5zZm9ybSBwbHVnaW4gYXQgdGhlIEJFR0lOTklORyB0byBydW4gYmVmb3JlIG90aGVyIHRyYW5zZm9ybXNcbiAgICAvLyAoZXNwZWNpYWxseSBiZWZvcmUgY2xhc3MgcHJvcGVydHkgdHJhbnNmb3JtcyB0aGF0IHJlbmFtZSBjbGFzc2VzIGxpa2UgX0NsYXNzTmFtZSlcbiAgICBuaXRyby5ob29rcy5ob29rKCdyb2xsdXA6YmVmb3JlJywgKF9uaXRybzogTml0cm8sIGNvbmZpZzogUm9sbHVwQ29uZmlnKSA9PiB7XG4gICAgICAoY29uZmlnLnBsdWdpbnMgYXMgQXJyYXk8dW5rbm93bj4pLnVuc2hpZnQoXG4gICAgICAgIHdvcmtmbG93VHJhbnNmb3JtUGx1Z2luKHtcbiAgICAgICAgICAvLyBOaXRybyBidWlsZCBhcnRpZmFjdHMgaGF2ZSBhbHJlYWR5IGJlZW4gdHJhbnNmb3JtZWQuXG4gICAgICAgICAgLy8gUmUtcHJvY2Vzc2luZyB0aGVtIGNhbiBkdXBsaWNhdGUgY2xhc3MgcmVnaXN0cmF0aW9uLlxuICAgICAgICAgIGV4Y2x1ZGU6IFtuaXRyb0J1aWxkRGlyXSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBOT1RFOiBUZW1wb3Jhcnkgd29ya2Fyb3VuZCBmb3IgZGVidWcgdW5lbnYgbW9ja1xuICAgIGlmICghbml0cm8ub3B0aW9ucy53b3JrZmxvdz8uX3ZpdGUpIHtcbiAgICAgIG5pdHJvLm9wdGlvbnMuYWxpYXMuZGVidWcgPz89ICdkZWJ1Zyc7XG4gICAgfVxuXG4gICAgLy8gQWRkIHRzQ29uZmlnIHBsdWdpblxuICAgIGlmIChuaXRyby5vcHRpb25zLndvcmtmbG93Py50eXBlc2NyaXB0UGx1Z2luKSB7XG4gICAgICBuaXRyby5vcHRpb25zLnR5cGVzY3JpcHQudHNDb25maWcgfHw9IHt9O1xuICAgICAgbml0cm8ub3B0aW9ucy50eXBlc2NyaXB0LnRzQ29uZmlnLmNvbXBpbGVyT3B0aW9ucyB8fD0ge307XG4gICAgICBuaXRyby5vcHRpb25zLnR5cGVzY3JpcHQudHNDb25maWcuY29tcGlsZXJPcHRpb25zLnBsdWdpbnMgfHw9IFtdO1xuICAgICAgbml0cm8ub3B0aW9ucy50eXBlc2NyaXB0LnRzQ29uZmlnLmNvbXBpbGVyT3B0aW9ucy5wbHVnaW5zLnB1c2goe1xuICAgICAgICBuYW1lOiAnd29ya2Zsb3cnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgZnVuY3Rpb25zIGZvciB2ZXJjZWwgYnVpbGRcbiAgICBpZiAoaXNWZXJjZWxEZXBsb3kpIHtcbiAgICAgIG5pdHJvLmhvb2tzLmhvb2soJ2NvbXBpbGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCBuZXcgVmVyY2VsQnVpbGRlcihuaXRybykuYnVpbGQoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGxvY2FsIGJ1bmRsZXMgZm9yIGRldiBhbmQgbG9jYWwgcHJvZFxuICAgIGlmICghaXNWZXJjZWxEZXBsb3kpIHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgTG9jYWxCdWlsZGVyKG5pdHJvKTtcbiAgICAgIGxldCBpc0luaXRpYWxCdWlsZCA9IHRydWU7XG5cbiAgICAgIG5pdHJvLmhvb2tzLmhvb2soJ2J1aWxkOmJlZm9yZScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICAgIC8vIEZvciBwcm9kOiB3cml0ZSB0aGUgbWFuaWZlc3QgaGFuZGxlciBmaWxlIHdpdGggaW5saW5lZCBjb250ZW50XG4gICAgICAgIC8vIG5vdyB0aGF0IHRoZSBidWlsZGVyIGhhcyBnZW5lcmF0ZWQgdGhlIG1hbmlmZXN0LiBSb2xsdXAgd2lsbFxuICAgICAgICAvLyBidW5kbGUgdGhpcyBmaWxlIGludG8gdGhlIGNvbXBpbGVkIG91dHB1dC5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFuaXRyby5vcHRpb25zLmRldiAmJlxuICAgICAgICAgIHByb2Nlc3MuZW52LldPUktGTE9XX1BVQkxJQ19NQU5JRkVTVCA9PT0gJzEnXG4gICAgICAgICkge1xuICAgICAgICAgIHdyaXRlTWFuaWZlc3RIYW5kbGVyKG5pdHJvKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIEFsbG93cyBmb3IgSE1SIC0gYnV0IHNraXAgdGhlIGZpcnN0IGRldjpyZWxvYWQgc2luY2UgYnVpbGQ6YmVmb3JlIGFscmVhZHkgcmFuXG4gICAgICBpZiAobml0cm8ub3B0aW9ucy5kZXYpIHtcbiAgICAgICAgbml0cm8uaG9va3MuaG9vaygnZGV2OnJlbG9hZCcsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBpZiAoaXNJbml0aWFsQnVpbGQpIHtcbiAgICAgICAgICAgIGlzSW5pdGlhbEJ1aWxkID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChuaXRyby5vcHRpb25zLmRldikge1xuICAgICAgICBhZGREYXNoYm9hcmRIYW5kbGVyKG5pdHJvKTtcbiAgICAgIH1cblxuICAgICAgYWRkVmlydHVhbEhhbmRsZXIoXG4gICAgICAgIG5pdHJvLFxuICAgICAgICAnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL3dlYmhvb2svOnRva2VuJyxcbiAgICAgICAgJ3dvcmtmbG93L3dlYmhvb2subWpzJ1xuICAgICAgKTtcblxuICAgICAgYWRkVmlydHVhbEhhbmRsZXIoXG4gICAgICAgIG5pdHJvLFxuICAgICAgICAnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL3N0ZXAnLFxuICAgICAgICAnd29ya2Zsb3cvc3RlcHMubWpzJ1xuICAgICAgKTtcblxuICAgICAgYWRkVmlydHVhbEhhbmRsZXIoXG4gICAgICAgIG5pdHJvLFxuICAgICAgICAnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cnLFxuICAgICAgICAnd29ya2Zsb3cvd29ya2Zsb3dzLm1qcydcbiAgICAgICk7XG5cbiAgICAgIC8vIEV4cG9zZSBtYW5pZmVzdCBhcyBhIHB1YmxpYyBIVFRQIHJvdXRlIHdoZW4gV09SS0ZMT1dfUFVCTElDX01BTklGRVNUPTFcbiAgICAgIGlmIChwcm9jZXNzLmVudi5XT1JLRkxPV19QVUJMSUNfTUFOSUZFU1QgPT09ICcxJykge1xuICAgICAgICAvLyBXcml0ZSBhIHBsYWNlaG9sZGVyIG1hbmlmZXN0LWRhdGEubWpzIHNvIHJvbGx1cCBjYW4gcmVzb2x2ZSB0aGVcbiAgICAgICAgLy8gaW1wb3J0LiBJdCB3aWxsIGJlIG92ZXJ3cml0dGVuIHdpdGggdGhlIHJlYWwgbWFuaWZlc3QgaW4gYnVpbGQ6YmVmb3JlLlxuICAgICAgICAvLyBXcml0ZSBhIHBsYWNlaG9sZGVyIGhhbmRsZXIgZmlsZSBzbyByb2xsdXAgY2FuIHJlc29sdmUgdGhlIHBhdGhcbiAgICAgICAgLy8gZHVyaW5nIHByb2QgY29tcGlsYXRpb24uIEl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgcmVhbFxuICAgICAgICAvLyBtYW5pZmVzdCBjb250ZW50IGJ5IHdyaXRlTWFuaWZlc3RIYW5kbGVyKCkgaW4gYnVpbGQ6YmVmb3JlLlxuICAgICAgICBpZiAoIW5pdHJvLm9wdGlvbnMuZGV2KSB7XG4gICAgICAgICAgY29uc3QgZGlyID0gam9pbihuaXRyby5vcHRpb25zLmJ1aWxkRGlyLCAnd29ya2Zsb3cnKTtcbiAgICAgICAgICBta2RpclN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICBjb25zdCBoYW5kbGVyUGF0aCA9IGpvaW4oZGlyLCAnbWFuaWZlc3QtaGFuZGxlci5tanMnKTtcbiAgICAgICAgICB3cml0ZUZpbGVTeW5jKFxuICAgICAgICAgICAgaGFuZGxlclBhdGgsXG4gICAgICAgICAgICAnZXhwb3J0IGRlZmF1bHQgYXN5bmMgKCkgPT4gbmV3IFJlc3BvbnNlKFwiTWFuaWZlc3Qgbm90IGZvdW5kXCIsIHsgc3RhdHVzOiA0MDQgfSk7XFxuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYWRkTWFuaWZlc3RIYW5kbGVyKG5pdHJvKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG59IHNhdGlzZmllcyBOaXRyb01vZHVsZTtcblxuY29uc3QgREFTSEJPQVJEX1ZJUlRVQUxfSUQgPSAnI3dvcmtmbG93L2Rhc2hib2FyZC1oYW5kbGVyJztcblxuZnVuY3Rpb24gYWRkRGFzaGJvYXJkSGFuZGxlcihuaXRybzogTml0cm8pIHtcbiAgY29uc3Qgcm91dGUgPSAnL193b3JrZmxvdyc7XG4gIG5pdHJvLm9wdGlvbnMuaGFuZGxlcnMucHVzaCh7IHJvdXRlLCBoYW5kbGVyOiBEQVNIQk9BUkRfVklSVFVBTF9JRCB9KTtcblxuICAvLyBSZXNvbHZlIGBAd29ya2Zsb3cvd2ViL3NlcnZlcmAgcmVsYXRpdmUgdG8gdGhpcyBtb2R1bGUgc28gY29uc3VtZXJzIGRvbid0XG4gIC8vIG5lZWQgYSBkaXJlY3QgZGVwZW5kZW5jeSBvbiBgQHdvcmtmbG93L3dlYmAuIFRoZSBwYXRoIGlzIGlubGluZWQgaW50byB0aGVcbiAgLy8gdmlydHVhbCBoYW5kbGVyIGFzIGEgZmlsZTovLyBVUkwgc28gTm9kZSBjYW4gYGltcG9ydCgpYCBpdCBhdCBydW50aW1lXG4gIC8vIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUgdGhlIGdlbmVyYXRlZCBOaXRybyBidW5kbGUgZW5kcyB1cC5cbiAgY29uc3QgcmVxdWlyZV8gPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG4gIGxldCB3ZWJTZXJ2ZXJVcmw6IHN0cmluZztcbiAgdHJ5IHtcbiAgICB3ZWJTZXJ2ZXJVcmwgPSBwYXRoVG9GaWxlVVJMKHJlcXVpcmVfLnJlc29sdmUoJ0B3b3JrZmxvdy93ZWIvc2VydmVyJykpLmhyZWY7XG4gIH0gY2F0Y2gge1xuICAgIHdlYlNlcnZlclVybCA9ICdAd29ya2Zsb3cvd2ViL3NlcnZlcic7XG4gIH1cblxuICBjb25zdCBoYW5kbGVyU291cmNlID0gLyoganMgKi8gYFxuICAgIGNvbnN0IF9fd29ya2Zsb3dXZWJTZXJ2ZXJVcmwgPSAke0pTT04uc3RyaW5naWZ5KHdlYlNlcnZlclVybCl9O1xuICAgIGxldCBzZXJ2ZXJQcm9taXNlID0gbnVsbDtcbiAgICBhc3luYyBmdW5jdGlvbiBnZXREYXNoYm9hcmRVcmwoKSB7XG4gICAgICBpZiAoIXNlcnZlclByb21pc2UpIHtcbiAgICAgICAgc2VydmVyUHJvbWlzZSA9IChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzdGFydFNlcnZlciB9ID0gYXdhaXQgaW1wb3J0KC8qIEB2aXRlLWlnbm9yZSAqLyAvKiB3ZWJwYWNrSWdub3JlOiB0cnVlICovIF9fd29ya2Zsb3dXZWJTZXJ2ZXJVcmwpO1xuICAgICAgICAgIGNvbnN0IHNlcnZlciA9IGF3YWl0IHN0YXJ0U2VydmVyKDApO1xuICAgICAgICAgIGNvbnN0IGFkZHJlc3MgPSBzZXJ2ZXIuYWRkcmVzcygpO1xuICAgICAgICAgIGNvbnN0IHBvcnQgPSB0eXBlb2YgYWRkcmVzcyA9PT0gJ29iamVjdCcgJiYgYWRkcmVzcyA/IGFkZHJlc3MucG9ydCA6IDM0NTY7XG4gICAgICAgICAgcmV0dXJuICdodHRwOi8vbG9jYWxob3N0OicgKyBwb3J0O1xuICAgICAgICB9KSgpLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHNlcnZlclByb21pc2UgPSBudWxsO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzZXJ2ZXJQcm9taXNlO1xuICAgIH1cbiAgYDtcblxuICBpZiAoIW5pdHJvLnJvdXRpbmcpIHtcbiAgICBuaXRyby5vcHRpb25zLnZpcnR1YWxbREFTSEJPQVJEX1ZJUlRVQUxfSURdID0gLyoganMgKi8gYFxuICAgICAgaW1wb3J0IHsgZnJvbVdlYkhhbmRsZXIgfSBmcm9tIFwiaDNcIjtcbiAgICAgICR7aGFuZGxlclNvdXJjZX1cbiAgICAgIGV4cG9ydCBkZWZhdWx0IGZyb21XZWJIYW5kbGVyKGFzeW5jICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCBnZXREYXNoYm9hcmRVcmwoKTtcbiAgICAgICAgICByZXR1cm4gUmVzcG9uc2UucmVkaXJlY3QodXJsLCAzMDIpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCB3b3JrZmxvdyBkYXNoYm9hcmQ6JywgZXJyb3IpO1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoJ0ZhaWxlZCB0byBzdGFydCB3b3JrZmxvdyBkYXNoYm9hcmQ6ICcgKyBlcnJvci5tZXNzYWdlLCB7IHN0YXR1czogNTAwIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBgO1xuICB9IGVsc2Uge1xuICAgIG5pdHJvLm9wdGlvbnMudmlydHVhbFtEQVNIQk9BUkRfVklSVFVBTF9JRF0gPSAvKiBqcyAqLyBgXG4gICAgICAke2hhbmRsZXJTb3VyY2V9XG4gICAgICBleHBvcnQgZGVmYXVsdCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdXJsID0gYXdhaXQgZ2V0RGFzaGJvYXJkVXJsKCk7XG4gICAgICAgICAgcmV0dXJuIFJlc3BvbnNlLnJlZGlyZWN0KHVybCwgMzAyKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgd29ya2Zsb3cgZGFzaGJvYXJkOicsIGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKCdGYWlsZWQgdG8gc3RhcnQgd29ya2Zsb3cgZGFzaGJvYXJkOiAnICsgZXJyb3IubWVzc2FnZSwgeyBzdGF0dXM6IDUwMCB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICBgO1xuICB9XG59XG5cbnR5cGUgVmlydHVhbEhhbmRsZXJQYXRoID1cbiAgfCAnd29ya2Zsb3cvd2ViaG9vay5tanMnXG4gIHwgJ3dvcmtmbG93L3N0ZXBzLm1qcydcbiAgfCAnd29ya2Zsb3cvd29ya2Zsb3dzLm1qcyc7XG5cbmZ1bmN0aW9uIGFkZFZpcnR1YWxIYW5kbGVyKFxuICBuaXRybzogTml0cm8sXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGJ1aWxkUGF0aDogVmlydHVhbEhhbmRsZXJQYXRoXG4pIHtcbiAgbml0cm8ub3B0aW9ucy5oYW5kbGVycy5wdXNoKHtcbiAgICByb3V0ZSxcbiAgICBoYW5kbGVyOiBgIyR7YnVpbGRQYXRofWAsXG4gIH0pO1xuICAvLyBLZWVwIGEgYmFyZSBpbXBvcnQgYWxvbmdzaWRlIGBQT1NUYDogaW4gTnV4dCArIE5pdHJvIHByb2R1Y3Rpb24gYnVpbGRzXG4gIC8vIHVzaW5nIGBAd29ya2Zsb3cvbnV4dGAsIGltcG9ydGluZyBvbmx5IGBQT1NUYCBjb3VsZCBkcm9wIHRoZSBnZW5lcmF0ZWRcbiAgLy8gc3RlcCBidW5kbGUncyB0b3AtbGV2ZWwgcmVnaXN0cmF0aW9ucywgc28gdGhlIGhhbmRsZXIgbG9hZGVkIGJ1dCBzdGVwc1xuICAvLyB3ZXJlIG1pc3NpbmcgYXQgcnVudGltZS5cbiAgY29uc3QgaGFuZGxlckltcG9ydFBhdGggPSBKU09OLnN0cmluZ2lmeShcbiAgICBqb2luKG5pdHJvLm9wdGlvbnMuYnVpbGREaXIsIGJ1aWxkUGF0aClcbiAgKTtcbiAgY29uc3Qgc3RlcHNJbXBvcnRQYXRoID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgam9pbihuaXRyby5vcHRpb25zLmJ1aWxkRGlyLCAnd29ya2Zsb3cvc3RlcHMubWpzJylcbiAgKTtcbiAgY29uc3QgcHJlbG9hZFN0ZXBzOiBSZWNvcmQ8VmlydHVhbEhhbmRsZXJQYXRoLCBzdHJpbmc+ID0ge1xuICAgICd3b3JrZmxvdy93ZWJob29rLm1qcyc6ICcnLFxuICAgICd3b3JrZmxvdy9zdGVwcy5tanMnOiAnJyxcbiAgICAnd29ya2Zsb3cvd29ya2Zsb3dzLm1qcyc6IGBhd2FpdCBpbXBvcnQoLyogQHZpdGUtaWdub3JlICovIHBhdGhUb0ZpbGVVUkwoJHtzdGVwc0ltcG9ydFBhdGh9KS5ocmVmICsgXCI/dD1cIiArIHZlcnNpb24pO2AsXG4gIH07XG5cbiAgaWYgKG5pdHJvLm9wdGlvbnMuZGV2KSB7XG4gICAgLy8gRGV2IG1vZGU6IGxvYWQgZ2VuZXJhdGVkIHdvcmtmbG93IGJ1bmRsZXMgZnJvbSBkaXNrIGF0IHJlcXVlc3QgdGltZS5cbiAgICAvLyBUaGlzIGtlZXBzIGAubml0cm8vd29ya2Zsb3cvKi5tanNgIG91dCBvZiBOaXRybydzIG93biBidW5kbGUgZ3JhcGgsXG4gICAgLy8gd2hpY2ggYXZvaWRzIHJlYnVpbGQgbG9vcHMgYW5kIHN0YWxlIGRlcGVuZGVuY3kgZ3JhcGhzIGR1cmluZyBITVIuXG4gICAgLy8gQ2FjaGUtYnVzdCBieSBmaWxlIG10aW1lIHNvIGVhY2ggc3VjY2Vzc2Z1bCByZWJ1aWxkIGxvYWRzIGZyZXNoIGNvZGUuXG4gICAgaWYgKCFuaXRyby5yb3V0aW5nKSB7XG4gICAgICBuaXRyby5vcHRpb25zLnZpcnR1YWxbYCMke2J1aWxkUGF0aH1gXSA9IC8qIGpzICovIGBcbiAgICAgIGltcG9ydCB7IGZyb21XZWJIYW5kbGVyIH0gZnJvbSBcImgzXCI7XG4gICAgICBpbXBvcnQgeyBzdGF0U3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG4gICAgICBpbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5cbiAgICAgIGNvbnN0IGhhbmRsZXJQYXRoID0gJHtoYW5kbGVySW1wb3J0UGF0aH07XG4gICAgICBsZXQgY3VycmVudFZlcnNpb24gPSBcIlwiO1xuICAgICAgbGV0IGN1cnJlbnRJbXBvcnRQYXRoID0gXCJcIjtcblxuICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZFBPU1QoKSB7XG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSBTdHJpbmcoc3RhdFN5bmMoaGFuZGxlclBhdGgpLm10aW1lTXMpO1xuICAgICAgICBpZiAodmVyc2lvbiAhPT0gY3VycmVudFZlcnNpb24pIHtcbiAgICAgICAgICBjdXJyZW50VmVyc2lvbiA9IHZlcnNpb247XG4gICAgICAgICAgY3VycmVudEltcG9ydFBhdGggPSBwYXRoVG9GaWxlVVJMKGhhbmRsZXJQYXRoKS5ocmVmICsgXCI/dD1cIiArIHZlcnNpb247XG4gICAgICAgICAgJHtwcmVsb2FkU3RlcHNbYnVpbGRQYXRoXX1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKGF3YWl0IGltcG9ydChjdXJyZW50SW1wb3J0UGF0aCkpLlBPU1Q7XG4gICAgICB9XG5cbiAgICAgIGV4cG9ydCBkZWZhdWx0IGZyb21XZWJIYW5kbGVyKGFzeW5jIChyZXF1ZXN0LCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IFBPU1QgPSBhd2FpdCBsb2FkUE9TVCgpO1xuICAgICAgICByZXR1cm4gUE9TVChyZXF1ZXN0LCBjb250ZXh0KTtcbiAgICAgIH0pO1xuICAgIGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5pdHJvLm9wdGlvbnMudmlydHVhbFtgIyR7YnVpbGRQYXRofWBdID0gLyoganMgKi8gYFxuICAgICAgaW1wb3J0IHsgc3RhdFN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuICAgICAgaW1wb3J0IHsgcGF0aFRvRmlsZVVSTCB9IGZyb20gXCJub2RlOnVybFwiO1xuXG4gICAgICBjb25zdCBoYW5kbGVyUGF0aCA9ICR7aGFuZGxlckltcG9ydFBhdGh9O1xuICAgICAgbGV0IGN1cnJlbnRWZXJzaW9uID0gXCJcIjtcbiAgICAgIGxldCBjdXJyZW50SW1wb3J0UGF0aCA9IFwiXCI7XG5cbiAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRQT1NUKCkge1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gU3RyaW5nKHN0YXRTeW5jKGhhbmRsZXJQYXRoKS5tdGltZU1zKTtcbiAgICAgICAgaWYgKHZlcnNpb24gIT09IGN1cnJlbnRWZXJzaW9uKSB7XG4gICAgICAgICAgY3VycmVudFZlcnNpb24gPSB2ZXJzaW9uO1xuICAgICAgICAgIGN1cnJlbnRJbXBvcnRQYXRoID0gcGF0aFRvRmlsZVVSTChoYW5kbGVyUGF0aCkuaHJlZiArIFwiP3Q9XCIgKyB2ZXJzaW9uO1xuICAgICAgICAgICR7cHJlbG9hZFN0ZXBzW2J1aWxkUGF0aF19XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChhd2FpdCBpbXBvcnQoY3VycmVudEltcG9ydFBhdGgpKS5QT1NUO1xuICAgICAgfVxuXG4gICAgICBleHBvcnQgZGVmYXVsdCBhc3luYyAoeyByZXEgfSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IFBPU1QgPSBhd2FpdCBsb2FkUE9TVCgpO1xuICAgICAgICAgIHJldHVybiBhd2FpdCBQT1NUKHJlcSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignSGFuZGxlciBlcnJvcjonLCBlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZSgnSW50ZXJuYWwgU2VydmVyIEVycm9yJywgeyBzdGF0dXM6IDUwMCB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICBgO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIW5pdHJvLnJvdXRpbmcpIHtcbiAgICAvLyBOaXRybyB2MiAobGVnYWN5KVxuICAgIG5pdHJvLm9wdGlvbnMudmlydHVhbFtgIyR7YnVpbGRQYXRofWBdID0gLyoganMgKi8gYFxuICAgIGltcG9ydCAke2hhbmRsZXJJbXBvcnRQYXRofTtcbiAgICBpbXBvcnQgeyBmcm9tV2ViSGFuZGxlciB9IGZyb20gXCJoM1wiO1xuICAgIGltcG9ydCB7IFBPU1QgfSBmcm9tICR7aGFuZGxlckltcG9ydFBhdGh9O1xuICAgIGV4cG9ydCBkZWZhdWx0IGZyb21XZWJIYW5kbGVyKFBPU1QpO1xuICBgO1xuICB9IGVsc2Uge1xuICAgIC8vIE5pdHJvIHYzKyAobmF0aXZlIHdlYiBoYW5kbGVycylcbiAgICBuaXRyby5vcHRpb25zLnZpcnR1YWxbYCMke2J1aWxkUGF0aH1gXSA9IC8qIGpzICovIGBcbiAgICBpbXBvcnQgJHtoYW5kbGVySW1wb3J0UGF0aH07XG4gICAgaW1wb3J0IHsgUE9TVCB9IGZyb20gJHtoYW5kbGVySW1wb3J0UGF0aH07XG4gICAgZXhwb3J0IGRlZmF1bHQgYXN5bmMgKHsgcmVxIH0pID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBQT1NUKHJlcSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdIYW5kbGVyIGVycm9yOicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZSgnSW50ZXJuYWwgU2VydmVyIEVycm9yJywgeyBzdGF0dXM6IDUwMCB9KTtcbiAgICAgIH1cbiAgICB9O1xuICBgO1xuICB9XG59XG5cbmNvbnN0IE1BTklGRVNUX1ZJUlRVQUxfSUQgPSAnI3dvcmtmbG93L21hbmlmZXN0LWhhbmRsZXInO1xuXG5mdW5jdGlvbiBhZGRNYW5pZmVzdEhhbmRsZXIobml0cm86IE5pdHJvKSB7XG4gIGNvbnN0IHJvdXRlID0gJy8ud2VsbC1rbm93bi93b3JrZmxvdy92MS9tYW5pZmVzdC5qc29uJztcbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gam9pbihuaXRyby5vcHRpb25zLmJ1aWxkRGlyLCAnd29ya2Zsb3cvbWFuaWZlc3QuanNvbicpO1xuICBjb25zdCBoYW5kbGVyUGF0aCA9IGpvaW4oXG4gICAgbml0cm8ub3B0aW9ucy5idWlsZERpcixcbiAgICAnd29ya2Zsb3cvbWFuaWZlc3QtaGFuZGxlci5tanMnXG4gICk7XG5cbiAgaWYgKG5pdHJvLm9wdGlvbnMuZGV2KSB7XG4gICAgLy8gRGV2IG1vZGU6IHVzZSBhIHZpcnR1YWwgaGFuZGxlciB0aGF0IHJlYWRzIHRoZSBtYW5pZmVzdCBmcm9tIGRpc2sgYXRcbiAgICAvLyByZXF1ZXN0IHRpbWUuIFRoZSBhYnNvbHV0ZSBwYXRoIGlzIHZhbGlkIGJlY2F1c2Ugd2UncmUgb24gdGhlIGJ1aWxkIG1hY2hpbmUuXG4gICAgbml0cm8ub3B0aW9ucy5oYW5kbGVycy5wdXNoKHsgcm91dGUsIGhhbmRsZXI6IE1BTklGRVNUX1ZJUlRVQUxfSUQgfSk7XG4gICAgbml0cm8ub3B0aW9ucy52aXJ0dWFsW01BTklGRVNUX1ZJUlRVQUxfSURdID0gIW5pdHJvLnJvdXRpbmdcbiAgICAgID8gLyoganMgKi8gYFxuICAgICAgaW1wb3J0IHsgZnJvbVdlYkhhbmRsZXIgfSBmcm9tIFwiaDNcIjtcbiAgICAgIGltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG4gICAgICBmdW5jdGlvbiBHRVQoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbWFuaWZlc3QgPSByZWFkRmlsZVN5bmMoJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdFBhdGgpfSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG1hbmlmZXN0LCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoXCJNYW5pZmVzdCBub3QgZm91bmRcIiwgeyBzdGF0dXM6IDQwNCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZXhwb3J0IGRlZmF1bHQgZnJvbVdlYkhhbmRsZXIoR0VUKTtcbiAgICBgXG4gICAgICA6IC8qIGpzICovIGBcbiAgICAgIGltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG4gICAgICBleHBvcnQgZGVmYXVsdCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbWFuaWZlc3QgPSByZWFkRmlsZVN5bmMoJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdFBhdGgpfSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG1hbmlmZXN0LCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoXCJNYW5pZmVzdCBub3QgZm91bmRcIiwgeyBzdGF0dXM6IDQwNCB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICBgO1xuICB9IGVsc2Uge1xuICAgIC8vIFByb2QgbW9kZTogcmVnaXN0ZXIgYSBwaHlzaWNhbCBoYW5kbGVyIGZpbGUgdGhhdCB3aWxsIGJlIHdyaXR0ZW4gYnlcbiAgICAvLyB3cml0ZU1hbmlmZXN0SGFuZGxlcigpIGFmdGVyIHRoZSBidWlsZGVyIGdlbmVyYXRlcyB0aGUgbWFuaWZlc3QuXG4gICAgLy8gVGhpcyBmaWxlIGlzIGJ1bmRsZWQgYnkgcm9sbHVwIGludG8gdGhlIGNvbXBpbGVkIG91dHB1dC5cbiAgICBuaXRyby5vcHRpb25zLmhhbmRsZXJzLnB1c2goeyByb3V0ZSwgaGFuZGxlcjogaGFuZGxlclBhdGggfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBXcml0ZXMgYSBwaHlzaWNhbCBtYW5pZmVzdCBoYW5kbGVyIGZpbGUgd2l0aCB0aGUgbWFuaWZlc3QgY29udGVudCBpbmxpbmVkLlxuICogTXVzdCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIGJ1aWxkZXIgZ2VuZXJhdGVzIHRoZSBtYW5pZmVzdCAoZHVyaW5nIGJ1aWxkOmJlZm9yZSlcbiAqIGFuZCBiZWZvcmUgTml0cm8gY29tcGlsZXMgdGhlIGJ1bmRsZSB3aXRoIHJvbGx1cC5cbiAqL1xuZnVuY3Rpb24gd3JpdGVNYW5pZmVzdEhhbmRsZXIobml0cm86IE5pdHJvKSB7XG4gIGNvbnN0IG1hbmlmZXN0UGF0aCA9IGpvaW4obml0cm8ub3B0aW9ucy5idWlsZERpciwgJ3dvcmtmbG93L21hbmlmZXN0Lmpzb24nKTtcbiAgY29uc3QgaGFuZGxlclBhdGggPSBqb2luKFxuICAgIG5pdHJvLm9wdGlvbnMuYnVpbGREaXIsXG4gICAgJ3dvcmtmbG93L21hbmlmZXN0LWhhbmRsZXIubWpzJ1xuICApO1xuICBjb25zdCBkaXIgPSBqb2luKG5pdHJvLm9wdGlvbnMuYnVpbGREaXIsICd3b3JrZmxvdycpO1xuICBta2RpclN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICB0cnkge1xuICAgIGNvbnN0IG1hbmlmZXN0Q29udGVudCA9IHJlYWRGaWxlU3luYyhtYW5pZmVzdFBhdGgsICd1dGYtOCcpO1xuICAgIEpTT04ucGFyc2UobWFuaWZlc3RDb250ZW50KTsgLy8gdmFsaWRhdGVcblxuICAgIGNvbnN0IGhhbmRsZXJDb2RlID0gIW5pdHJvLnJvdXRpbmdcbiAgICAgID8gYGltcG9ydCB7IGZyb21XZWJIYW5kbGVyIH0gZnJvbSBcImgzXCI7XG5jb25zdCBtYW5pZmVzdCA9ICR7SlNPTi5zdHJpbmdpZnkobWFuaWZlc3RDb250ZW50KX07XG5leHBvcnQgZGVmYXVsdCBmcm9tV2ViSGFuZGxlcigoKSA9PiBuZXcgUmVzcG9uc2UobWFuaWZlc3QsIHtcbiAgaGVhZGVyczogeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxufSkpO1xuYFxuICAgICAgOiBgY29uc3QgbWFuaWZlc3QgPSAke0pTT04uc3RyaW5naWZ5KG1hbmlmZXN0Q29udGVudCl9O1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgKCkgPT4gbmV3IFJlc3BvbnNlKG1hbmlmZXN0LCB7XG4gIGhlYWRlcnM6IHsgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbn0pO1xuYDtcbiAgICB3cml0ZUZpbGVTeW5jKGhhbmRsZXJQYXRoLCBoYW5kbGVyQ29kZSk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIFdyaXRlIGEgNDA0IGZhbGxiYWNrIGhhbmRsZXJcbiAgICBjb25zdCBmYWxsYmFjayA9ICFuaXRyby5yb3V0aW5nXG4gICAgICA/IGBpbXBvcnQgeyBmcm9tV2ViSGFuZGxlciB9IGZyb20gXCJoM1wiO1xuZXhwb3J0IGRlZmF1bHQgZnJvbVdlYkhhbmRsZXIoKCkgPT4gbmV3IFJlc3BvbnNlKFwiTWFuaWZlc3Qgbm90IGZvdW5kXCIsIHsgc3RhdHVzOiA0MDQgfSkpO1xuYFxuICAgICAgOiBgZXhwb3J0IGRlZmF1bHQgYXN5bmMgKCkgPT4gbmV3IFJlc3BvbnNlKFwiTWFuaWZlc3Qgbm90IGZvdW5kXCIsIHsgc3RhdHVzOiA0MDQgfSk7XG5gO1xuICAgIHdyaXRlRmlsZVN5bmMoaGFuZGxlclBhdGgsIGZhbGxiYWNrKTtcbiAgfVxufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAMA,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"}
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 workflowBuildDir;
8
+ let nitroBuildDir;
10
9
  const enqueue = createBuildQueue();
11
- // Create a lazy transform plugin that excludes the workflow build directory
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
- // workflowBuildDir is set during nitro setup before transforms run
16
+ // nitroBuildDir is set during nitro setup before transforms run
18
17
  const plugin = workflowTransformPlugin({
19
- exclude: workflowBuildDir ? [workflowBuildDir] : [],
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 workflow build directory for exclusion
31
- workflowBuildDir = join(nitro.options.buildDir, 'workflow');
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3QyxPQUFPLFdBQVcsTUFBTSxZQUFZLENBQUM7QUFFckMsTUFBTSxVQUFVLFFBQVEsQ0FBQyxPQUF1QjtJQUM5QyxJQUFJLE9BQXFCLENBQUM7SUFDMUIsSUFBSSxnQkFBd0IsQ0FBQztJQUM3QixNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRW5DLDRFQUE0RTtJQUM1RSxvRkFBb0Y7SUFDcEYsTUFBTSxtQkFBbUIsR0FBVztRQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQix5REFBeUQ7WUFDekQsbUVBQW1FO1lBQ25FLE1BQU0sTUFBTSxHQUFHLHVCQUF1QixDQUFDO2dCQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTthQUNwRCxDQUFDLENBQUM7WUFDSCxPQUFRLE1BQU0sQ0FBQyxTQUFzQixFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlELENBQUM7S0FDRixDQUFDO0lBRUYsT0FBTztRQUNMLG1CQUFtQjtRQUNuQjtZQUNFLElBQUksRUFBRSxnQkFBZ0I7WUFDdEIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO29CQUN0QixxREFBcUQ7b0JBQ3JELGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFDNUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUc7d0JBQ3ZCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRO3dCQUN6QixHQUFHLE9BQU87d0JBQ1YsS0FBSyxFQUFFLElBQUk7cUJBQ1osQ0FBQztvQkFDRixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ3RCLE9BQU8sR0FBRyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDcEMsQ0FBQztvQkFDRCxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLENBQUM7YUFDRjtZQUNELGdHQUFnRztZQUNoRyw4RkFBOEY7WUFDOUYsZUFBZSxDQUFDLE1BQU07Z0JBQ3BCLGlGQUFpRjtnQkFDakYsT0FBTyxHQUFHLEVBQUU7b0JBQ1YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO3dCQUN4QyxzQ0FBc0M7d0JBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUM7NEJBQ3RELE9BQU8sSUFBSSxFQUFFLENBQUM7d0JBQ2hCLENBQUM7d0JBRUQsdURBQXVEO3dCQUN2RCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7d0JBQ3hDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsVUFBNEIsR0FBRyxJQUFXOzRCQUN4RCxNQUFNLFVBQVUsR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDOzRCQUUvRCw0RUFBNEU7NEJBQzVFLDBEQUEwRDs0QkFDMUQsc0VBQXNFOzRCQUN0RSxJQUFJLFVBQVUsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQ0FDdkIsMERBQTBEO2dDQUMxRCxHQUFHLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDOzRCQUN2QyxDQUFDOzRCQUVELGdEQUFnRDs0QkFDaEQsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUM3QyxDQUFRLENBQUM7d0JBRVQsSUFBSSxFQUFFLENBQUM7b0JBQ1QsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO1lBQ0osQ0FBQztTQUNGO1FBQ0QsdUJBQXVCLENBQUM7WUFDdEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU87WUFDdEIsT0FBTztTQUNSLENBQUM7S0FDSCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUJ1aWxkUXVldWUgfSBmcm9tICdAd29ya2Zsb3cvYnVpbGRlcnMnO1xuaW1wb3J0IHsgd29ya2Zsb3dUcmFuc2Zvcm1QbHVnaW4gfSBmcm9tICdAd29ya2Zsb3cvcm9sbHVwJztcbmltcG9ydCB7IHdvcmtmbG93SG90VXBkYXRlUGx1Z2luIH0gZnJvbSAnQHdvcmtmbG93L3ZpdGUnO1xuaW1wb3J0IHR5cGUgeyBOaXRybyB9IGZyb20gJ25pdHJvL3R5cGVzJztcbmltcG9ydCB0eXBlIHt9IGZyb20gJ25pdHJvL3ZpdGUnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGhlJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAndml0ZSc7XG5pbXBvcnQgeyBMb2NhbEJ1aWxkZXIgfSBmcm9tICcuL2J1aWxkZXJzLmpzJztcbmltcG9ydCB0eXBlIHsgTW9kdWxlT3B0aW9ucyB9IGZyb20gJy4vaW5kZXguanMnO1xuaW1wb3J0IG5pdHJvTW9kdWxlIGZyb20gJy4vaW5kZXguanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gd29ya2Zsb3cob3B0aW9ucz86IE1vZHVsZU9wdGlvbnMpOiBQbHVnaW5bXSB7XG4gIGxldCBidWlsZGVyOiBMb2NhbEJ1aWxkZXI7XG4gIGxldCB3b3JrZmxvd0J1aWxkRGlyOiBzdHJpbmc7XG4gIGNvbnN0IGVucXVldWUgPSBjcmVhdGVCdWlsZFF1ZXVlKCk7XG5cbiAgLy8gQ3JlYXRlIGEgbGF6eSB0cmFuc2Zvcm0gcGx1Z2luIHRoYXQgZXhjbHVkZXMgdGhlIHdvcmtmbG93IGJ1aWxkIGRpcmVjdG9yeVxuICAvLyBUaGUgZXhjbHVzaW9uIHBhdGggaXMgc2V0IGR1cmluZyBuaXRybyBzZXR1cCwgc28gd2UgbmVlZCB0byBkZWZlciBwbHVnaW4gY3JlYXRpb25cbiAgY29uc3QgbGF6eVRyYW5zZm9ybVBsdWdpbjogUGx1Z2luID0ge1xuICAgIG5hbWU6ICd3b3JrZmxvdzp0cmFuc2Zvcm0nLFxuICAgIHRyYW5zZm9ybShjb2RlLCBpZCkge1xuICAgICAgLy8gRGVsZWdhdGUgdG8gdGhlIGFjdHVhbCB0cmFuc2Zvcm0gcGx1Z2luIHdpdGggZXhjbHVzaW9uXG4gICAgICAvLyB3b3JrZmxvd0J1aWxkRGlyIGlzIHNldCBkdXJpbmcgbml0cm8gc2V0dXAgYmVmb3JlIHRyYW5zZm9ybXMgcnVuXG4gICAgICBjb25zdCBwbHVnaW4gPSB3b3JrZmxvd1RyYW5zZm9ybVBsdWdpbih7XG4gICAgICAgIGV4Y2x1ZGU6IHdvcmtmbG93QnVpbGREaXIgPyBbd29ya2Zsb3dCdWlsZERpcl0gOiBbXSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIChwbHVnaW4udHJhbnNmb3JtIGFzIEZ1bmN0aW9uKT8uY2FsbCh0aGlzLCBjb2RlLCBpZCk7XG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gW1xuICAgIGxhenlUcmFuc2Zvcm1QbHVnaW4sXG4gICAge1xuICAgICAgbmFtZTogJ3dvcmtmbG93Om5pdHJvJyxcbiAgICAgIG5pdHJvOiB7XG4gICAgICAgIHNldHVwOiAobml0cm86IE5pdHJvKSA9PiB7XG4gICAgICAgICAgLy8gQ2FwdHVyZSB0aGUgd29ya2Zsb3cgYnVpbGQgZGlyZWN0b3J5IGZvciBleGNsdXNpb25cbiAgICAgICAgICB3b3JrZmxvd0J1aWxkRGlyID0gam9pbihuaXRyby5vcHRpb25zLmJ1aWxkRGlyLCAnd29ya2Zsb3cnKTtcbiAgICAgICAgICBuaXRyby5vcHRpb25zLndvcmtmbG93ID0ge1xuICAgICAgICAgICAgLi4ubml0cm8ub3B0aW9ucy53b3JrZmxvdyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICBfdml0ZTogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmIChuaXRyby5vcHRpb25zLmRldikge1xuICAgICAgICAgICAgYnVpbGRlciA9IG5ldyBMb2NhbEJ1aWxkZXIobml0cm8pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbml0cm9Nb2R1bGUuc2V0dXAobml0cm8pO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIC8vIE5PVEU6IFRoaXMgaXMgYSB3b3JrYXJvdW5kIGJlY2F1c2UgTml0cm8gcGFzc2VzIHRoZSA0MDQgcmVxdWVzdHMgdG8gdGhlIGRldiBzZXJ2ZXIgdG8gaGFuZGxlLlxuICAgICAgLy8gRm9yIHdvcmtmbG93IHJvdXRlcywgd2Ugb3ZlcnJpZGUgdG8gc2VuZCBhbiBlbXB0eSBib2R5IHRvIHByZXZlbnQgSG9uby9WaXRlJ3MgU1BBIGZhbGxiYWNrLlxuICAgICAgY29uZmlndXJlU2VydmVyKHNlcnZlcikge1xuICAgICAgICAvLyBBZGQgbWlkZGxld2FyZSB0byBpbnRlcmNlcHQgNDA0cyBvbiB3b3JrZmxvdyByb3V0ZXMgYmVmb3JlIFZpdGUncyBTUEEgZmFsbGJhY2tcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICBzZXJ2ZXIubWlkZGxld2FyZXMudXNlKChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgICAgICAgICAgLy8gT25seSBoYW5kbGUgd29ya2Zsb3cgd2ViaG9vayByb3V0ZXNcbiAgICAgICAgICAgIGlmICghcmVxLnVybD8uc3RhcnRzV2l0aCgnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxLycpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFdyYXAgd3JpdGVIZWFkIHRvIGVuc3VyZSB3ZSBzZW5kIGVtcHR5IGJvZHkgZm9yIDQwNHNcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsV3JpdGVIZWFkID0gcmVzLndyaXRlSGVhZDtcbiAgICAgICAgICAgIHJlcy53cml0ZUhlYWQgPSBmdW5jdGlvbiAodGhpczogdHlwZW9mIHJlcywgLi4uYXJnczogYW55W10pIHtcbiAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQ29kZSA9IHR5cGVvZiBhcmdzWzBdID09PSAnbnVtYmVyJyA/IGFyZ3NbMF0gOiAyMDA7XG5cbiAgICAgICAgICAgICAgLy8gTk9URTogV29ya2Fyb3VuZCBiZWNhdXNlIE5pdHJvIHBhc3NlcyA0MDQgcmVxdWVzdHMgdG8gdGhlIHZpdGUgdG8gaGFuZGxlLlxuICAgICAgICAgICAgICAvLyBDYXVzZXMgYHdlYmhvb2sgcm91dGUgd2l0aCBpbnZhbGlkIHRva2VuYCB0ZXN0IHRvIGZhaWwuXG4gICAgICAgICAgICAgIC8vIEZvciA0MDRzIG9uIHdvcmtmbG93IHJvdXRlcywgZW5zdXJlIHdlJ3JlIHNlbmRpbmcgdGhlIHJpZ2h0IGhlYWRlcnNcbiAgICAgICAgICAgICAgaWYgKHN0YXR1c0NvZGUgPT09IDQwNCkge1xuICAgICAgICAgICAgICAgIC8vIFNldCBjb250ZW50LWxlbmd0aCB0byAwIHRvIHByZXZlbnQgVml0ZSBmcm9tIG92ZXJyaWRpbmdcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LUxlbmd0aCcsICcwJyk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gQ29tcGxleCBvdmVybG9hZCBzaWduYXR1cmVcbiAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsV3JpdGVIZWFkLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICAgICAgfSBhcyBhbnk7XG5cbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB3b3JrZmxvd0hvdFVwZGF0ZVBsdWdpbih7XG4gICAgICBidWlsZGVyOiAoKSA9PiBidWlsZGVyLFxuICAgICAgZW5xdWV1ZSxcbiAgICB9KSxcbiAgXTtcbn1cbiJdfQ==
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.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.0",
28
- "@workflow/core": "4.5.0",
29
- "@workflow/rollup": "4.0.10",
30
- "@workflow/swc-plugin": "4.1.1",
31
- "@workflow/vite": "4.0.10",
32
- "@workflow/web": "4.1.11"
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.1-alpha.1",
37
- "vite": "7.1.12",
36
+ "nitro": "3.0.260610-beta",
37
+ "vite": "7.3.6",
38
38
  "@workflow/tsconfig": "4.0.1"
39
39
  },
40
40
  "scripts": {