@mnaoumov/typescript-dev-toolkit 5.0.0 → 5.2.0

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.
Files changed (84) hide show
  1. package/bundlers/esbuild-impl/svelte-preprocessor/package.json +6 -0
  2. package/dist/lib/cjs/bulk-concurrency.cjs +49 -0
  3. package/dist/lib/cjs/bulk-concurrency.d.cts +14 -0
  4. package/dist/lib/cjs/bundlers/esbuild-impl/index.cjs +4 -1
  5. package/dist/lib/cjs/bundlers/esbuild-impl/index.d.cts +1 -0
  6. package/dist/lib/cjs/bundlers/esbuild-impl/svelte-preprocessor.cjs +152 -0
  7. package/dist/lib/cjs/bundlers/esbuild-impl/svelte-preprocessor.d.cts +95 -0
  8. package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +4 -3
  9. package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.d.cts +1 -1
  10. package/dist/lib/cjs/docs-site/docs-links.cjs +3 -2
  11. package/dist/lib/cjs/docs-site/og-images.cjs +3 -2
  12. package/dist/lib/cjs/index.cjs +4 -1
  13. package/dist/lib/cjs/index.d.cts +1 -0
  14. package/dist/lib/cjs/linters/eslint-config.cjs +2 -1
  15. package/dist/lib/cjs/linters/eslint-no-restricted-syntax.cjs +5 -1
  16. package/dist/lib/cjs/linters/eslint-rules/import-fix.cjs +116 -0
  17. package/dist/lib/cjs/linters/eslint-rules/import-fix.d.cts +49 -0
  18. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +5 -1
  19. package/dist/lib/cjs/linters/eslint-rules/index.cjs +10 -1
  20. package/dist/lib/cjs/linters/eslint-rules/index.d.cts +3 -0
  21. package/dist/lib/cjs/linters/eslint-rules/prefer-dedent.cjs +189 -0
  22. package/dist/lib/cjs/linters/eslint-rules/prefer-dedent.d.cts +10 -0
  23. package/dist/lib/cjs/linters/eslint-rules/prefer-noop-async.cjs +57 -3
  24. package/dist/lib/cjs/linters/eslint-rules/readonly-member-arrays.cjs +130 -0
  25. package/dist/lib/cjs/linters/eslint-rules/readonly-member-arrays.d.cts +6 -0
  26. package/dist/lib/cjs/linters/markdownlint.cjs +8 -2
  27. package/dist/lib/cjs/linters/over-exposure.cjs +14 -3
  28. package/dist/lib/cjs/linters/over-exposure.d.cts +3 -1
  29. package/dist/lib/cjs/nano-staged-config.cjs +24 -3
  30. package/dist/lib/cjs/nano-staged-config.d.cts +4 -0
  31. package/dist/lib/cjs/test-runners/auto.cjs +1 -1
  32. package/dist/lib/cjs/test-runners/auto.d.cts +5 -0
  33. package/dist/lib/cjs/test-runners/forwarded-arguments.cjs +50 -0
  34. package/dist/lib/cjs/test-runners/forwarded-arguments.d.cts +49 -0
  35. package/dist/lib/cjs/test-runners/index.cjs +4 -1
  36. package/dist/lib/cjs/test-runners/index.d.cts +1 -0
  37. package/dist/lib/cjs/test-runners/jest.cjs +16 -3
  38. package/dist/lib/cjs/test-runners/jest.d.cts +5 -0
  39. package/dist/lib/cjs/test-runners/vitest.cjs +111 -5
  40. package/dist/lib/cjs/test-runners/vitest.d.cts +5 -0
  41. package/dist/lib/esm/bulk-concurrency.d.mts +14 -0
  42. package/dist/lib/esm/bulk-concurrency.mjs +15 -0
  43. package/dist/lib/esm/bundlers/esbuild-impl/index.d.mts +1 -0
  44. package/dist/lib/esm/bundlers/esbuild-impl/index.mjs +3 -1
  45. package/dist/lib/esm/bundlers/esbuild-impl/svelte-preprocessor.d.mts +95 -0
  46. package/dist/lib/esm/bundlers/esbuild-impl/svelte-preprocessor.mjs +126 -0
  47. package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.d.mts +1 -1
  48. package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +4 -3
  49. package/dist/lib/esm/docs-site/docs-links.mjs +3 -2
  50. package/dist/lib/esm/docs-site/og-images.mjs +3 -2
  51. package/dist/lib/esm/index.d.mts +1 -0
  52. package/dist/lib/esm/index.mjs +3 -1
  53. package/dist/lib/esm/linters/eslint-config.mjs +2 -1
  54. package/dist/lib/esm/linters/eslint-no-restricted-syntax.mjs +5 -1
  55. package/dist/lib/esm/linters/eslint-rules/import-fix.d.mts +49 -0
  56. package/dist/lib/esm/linters/eslint-rules/import-fix.mjs +90 -0
  57. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +5 -1
  58. package/dist/lib/esm/linters/eslint-rules/index.d.mts +3 -0
  59. package/dist/lib/esm/linters/eslint-rules/index.mjs +7 -1
  60. package/dist/lib/esm/linters/eslint-rules/prefer-dedent.d.mts +10 -0
  61. package/dist/lib/esm/linters/eslint-rules/prefer-dedent.mjs +168 -0
  62. package/dist/lib/esm/linters/eslint-rules/prefer-noop-async.mjs +61 -3
  63. package/dist/lib/esm/linters/eslint-rules/readonly-member-arrays.d.mts +6 -0
  64. package/dist/lib/esm/linters/eslint-rules/readonly-member-arrays.mjs +106 -0
  65. package/dist/lib/esm/linters/markdownlint.mjs +8 -2
  66. package/dist/lib/esm/linters/over-exposure.d.mts +3 -1
  67. package/dist/lib/esm/linters/over-exposure.mjs +16 -3
  68. package/dist/lib/esm/nano-staged-config.d.mts +4 -0
  69. package/dist/lib/esm/nano-staged-config.mjs +24 -3
  70. package/dist/lib/esm/test-runners/auto.d.mts +5 -0
  71. package/dist/lib/esm/test-runners/auto.mjs +1 -1
  72. package/dist/lib/esm/test-runners/forwarded-arguments.d.mts +49 -0
  73. package/dist/lib/esm/test-runners/forwarded-arguments.mjs +26 -0
  74. package/dist/lib/esm/test-runners/index.d.mts +1 -0
  75. package/dist/lib/esm/test-runners/index.mjs +3 -1
  76. package/dist/lib/esm/test-runners/jest.d.mts +5 -0
  77. package/dist/lib/esm/test-runners/jest.mjs +16 -3
  78. package/dist/lib/esm/test-runners/vitest.d.mts +5 -0
  79. package/dist/lib/esm/test-runners/vitest.mjs +105 -6
  80. package/linters/eslint-rules/import-fix/package.json +6 -0
  81. package/linters/eslint-rules/prefer-dedent/package.json +6 -0
  82. package/linters/eslint-rules/readonly-member-arrays/package.json +6 -0
  83. package/package.json +5 -2
  84. package/test-runners/forwarded-arguments/package.json +6 -0
@@ -2,11 +2,46 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
+ (function () {
6
+ function ensureBrowserProcess() {
7
+ const browserProcess = {
8
+ browser: true,
9
+ cwd() {
10
+ return '/';
11
+ },
12
+ env: {},
13
+ platform: 'android'
14
+ };
15
+
16
+ const existingProcess = globalThis.process;
17
+
18
+ if (!existingProcess) {
19
+ globalThis.process = browserProcess;
20
+ return;
21
+ }
22
+
23
+ if (existingProcess.versions?.node) {
24
+ return;
25
+ }
26
+
27
+ const existingProcessRecord = existingProcess;
28
+
29
+ for (const [key, value] of Object.entries(browserProcess)) {
30
+ existingProcessRecord[key] ??= value;
31
+ }
32
+
33
+ existingProcessRecord['browser'] = true;
34
+ }
35
+
36
+ ensureBrowserProcess();
37
+ })();
5
38
 
6
39
  "use strict";
40
+ var __create = Object.create;
7
41
  var __defProp = Object.defineProperty;
8
42
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
43
  var __getOwnPropNames = Object.getOwnPropertyNames;
44
+ var __getProtoOf = Object.getPrototypeOf;
10
45
  var __hasOwnProp = Object.prototype.hasOwnProperty;
11
46
  var __export = (target, all) => {
12
47
  for (var name in all)
@@ -20,6 +55,14 @@ var __copyProps = (to, from, except, desc) => {
20
55
  }
21
56
  return to;
22
57
  };
58
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
59
+ // If the importer is in node compatibility mode or this is not an ESM
60
+ // file that has been converted to a CommonJS file using a Babel-
61
+ // compatible transform (i.e. "__esModule" has not been set), then set
62
+ // "default" to the CommonJS "module.exports" for node compatibility.
63
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
64
+ mod
65
+ ));
23
66
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
67
  var vitest_exports = {};
25
68
  __export(vitest_exports, {
@@ -28,9 +71,25 @@ __export(vitest_exports, {
28
71
  testWatch: () => testWatch
29
72
  });
30
73
  module.exports = __toCommonJS(vitest_exports);
74
+ var import_node_os = require('node:os');
75
+ var import_node_process = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('node:process')), 1);
76
+ var import_bulk_concurrency = require('../bulk-concurrency.cjs');
31
77
  var import_root = require('../root.cjs');
78
+ var import_forwarded_arguments = require('./forwarded-arguments.cjs');
79
+ const WATCH_WORKER_DIVISOR = 2;
80
+ const workerEnvironmentQueue = { pending: Promise.resolve(void 0) };
81
+ const PROJECT_OPTION = { names: ["--project"], replacement: "the `projects` option" };
82
+ const RUN_MODE_OPTION = { names: ["--run", "--watch", "-w"], replacement: "the `test`, `testCoverage` or `testWatch` wrapper" };
83
+ const COVERAGE_OPTION = {
84
+ names: ["--coverage", "--no-coverage"],
85
+ prefixes: ["--coverage."],
86
+ replacement: "the `testCoverage` wrapper and its `minCoverageInPercents` option"
87
+ };
88
+ const OWNED_OPTIONS = [PROJECT_OPTION, RUN_MODE_OPTION, COVERAGE_OPTION];
32
89
  async function test(options = {}) {
33
- await (0, import_root.execFromRoot)(["vitest", "run", ...buildProjectFlags(options.projects)]);
90
+ await (0, import_root.execFromRoot)(["vitest", "run", ...buildProjectFlags(options.projects), ...getAdditionalArguments(options)], {
91
+ env: await getWorkerEnvironment(options)
92
+ });
34
93
  }
35
94
  async function testCoverage(options = {}) {
36
95
  const threshold = String(options.minCoverageInPercents ?? 0);
@@ -42,19 +101,66 @@ async function testCoverage(options = {}) {
42
101
  `--coverage.thresholds.lines=${threshold}`,
43
102
  `--coverage.thresholds.functions=${threshold}`,
44
103
  `--coverage.thresholds.branches=${threshold}`,
45
- `--coverage.thresholds.statements=${threshold}`
46
- ]);
104
+ `--coverage.thresholds.statements=${threshold}`,
105
+ ...getAdditionalArguments(options)
106
+ ], { env: await getWorkerEnvironment(options) });
47
107
  }
48
108
  async function testWatch(options = {}) {
49
- await (0, import_root.execFromRoot)(["vitest", ...buildProjectFlags(options.projects)]);
109
+ await (0, import_root.execFromRoot)(["vitest", ...buildProjectFlags(options.projects), ...getAdditionalArguments(options)], {
110
+ env: await getWorkerEnvironment(options, true)
111
+ });
50
112
  }
51
113
  function buildProjectFlags(projects) {
52
114
  return (projects ?? []).flatMap((project) => [`--project=${project}`, `--project=${project}:*`]);
53
115
  }
116
+ function getAdditionalArguments(options) {
117
+ const { additionalArguments = [] } = options;
118
+ (0, import_forwarded_arguments.assertNoOwnedArguments)({ forwardedArguments: additionalArguments, ownedOptions: OWNED_OPTIONS, runnerName: "vitest" });
119
+ return additionalArguments;
120
+ }
121
+ async function getWorkerEnvironment(options, isWatch = false) {
122
+ const next = workerEnvironmentQueue.pending.then(() => resolveWorkerEnvironment(options, isWatch));
123
+ workerEnvironmentQueue.pending = next.catch(() => void 0);
124
+ return next;
125
+ }
126
+ async function resolveWorkerEnvironment(options, isWatch) {
127
+ const budget = (0, import_bulk_concurrency.getBulkConcurrency)(Infinity);
128
+ if (!Number.isFinite(budget)) {
129
+ return {};
130
+ }
131
+ const { resolveConfig } = await import("vitest/node");
132
+ const inheritedWorkers = import_node_process.default.env["VITEST_MAX_WORKERS"];
133
+ delete import_node_process.default.env["VITEST_MAX_WORKERS"];
134
+ let config;
135
+ try {
136
+ config = await resolveConfig({
137
+ project: (options.projects ?? []).flatMap((project) => [project, `${project}:*`]),
138
+ root: (0, import_root.resolvePathFromRootSafe)({ path: "." }),
139
+ watch: isWatch
140
+ });
141
+ } finally {
142
+ if (inheritedWorkers !== void 0) {
143
+ import_node_process.default.env["VITEST_MAX_WORKERS"] = inheritedWorkers;
144
+ }
145
+ }
146
+ const ordinaryWorkers = Math.max(isWatch ? Math.floor((0, import_node_os.availableParallelism)() / WATCH_WORKER_DIVISOR) : (0, import_node_os.availableParallelism)() - 1, 1);
147
+ const inheritedLimit = Number.parseInt(inheritedWorkers ?? "", 10);
148
+ let workers = Math.min(budget, ordinaryWorkers);
149
+ if (Number.isSafeInteger(inheritedLimit) && inheritedLimit > 0) {
150
+ workers = Math.min(workers, inheritedLimit);
151
+ }
152
+ const configs = [config.test, ...config.test.resolvedProjects.filter((entry) => !entry.hidden).map((entry) => entry.projectConfig)];
153
+ for (const testConfig of configs) {
154
+ if (testConfig.maxWorkers) {
155
+ workers = Math.min(workers, testConfig.maxWorkers);
156
+ }
157
+ }
158
+ return { VITEST_MAX_WORKERS: String(workers) };
159
+ }
54
160
  // Annotate the CommonJS export names for ESM import in node:
55
161
  0 && (module.exports = {
56
162
  test,
57
163
  testCoverage,
58
164
  testWatch
59
165
  });
60
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy92aXRlc3QudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBmdW5jdGlvbnMgZm9yIHJ1bm5pbmcgdGVzdHMgdXNpbmcgdGhlIFZpdGVzdCBmcmFtZXdvcmsuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEV4ZWN1dGVzIHZpdGVzdCBhcyBhIENMSSBzdWJwcm9jZXNzOyBjb3JyZWN0bmVzcyBpcyB2ZXJpZmllZCBieSBydW5uaW5nIHRlc3RzLCBub3QgdW5pdCB0ZXN0cy4gKi9cblxuaW1wb3J0IHsgZXhlY0Zyb21Sb290IH0gZnJvbSAnLi4vcm9vdC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcnVubmluZyB0ZXN0cyB3aXRoIGNvdmVyYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RDb3ZlcmFnZU9wdGlvbnMgZXh0ZW5kcyBUZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIGNvdmVyYWdlIHBlcmNlbnRhZ2UgcmVxdWlyZWQuIElmIHRoZSBhY3R1YWwgY292ZXJhZ2UgZmFsbHMgYmVsb3dcbiAgICogdGhpcyB0aHJlc2hvbGQsIHRoZSBwcm9jZXNzIGV4aXRzIHdpdGggYSBub24temVybyBjb2RlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMGBcbiAgICovXG4gIHJlYWRvbmx5IG1pbkNvdmVyYWdlSW5QZXJjZW50cz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBydW5uaW5nIHRlc3RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0cyB0byBydW4uXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0cz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHJ1bm5pbmcgdGVzdHMgaW4gd2F0Y2ggbW9kZS5cbiAqL1xuZXhwb3J0IHR5cGUgVGVzdFdhdGNoT3B0aW9ucyA9IFRlc3RPcHRpb25zO1xuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIHRlc3QuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdChvcHRpb25zOiBUZXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ3ZpdGVzdCcsICdydW4nLCAuLi5idWlsZFByb2plY3RGbGFncyhvcHRpb25zLnByb2plY3RzKV0pO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUgd2l0aCBjb3ZlcmFnZS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIGNvdmVyYWdlIGNvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdENvdmVyYWdlKG9wdGlvbnM6IFRlc3RDb3ZlcmFnZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0aHJlc2hvbGQgPSBTdHJpbmcob3B0aW9ucy5taW5Db3ZlcmFnZUluUGVyY2VudHMgPz8gMCk7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbXG4gICAgJ3ZpdGVzdCcsXG4gICAgJ3J1bicsXG4gICAgLi4uYnVpbGRQcm9qZWN0RmxhZ3Mob3B0aW9ucy5wcm9qZWN0cyksXG4gICAgJy0tY292ZXJhZ2UnLFxuICAgIGAtLWNvdmVyYWdlLnRocmVzaG9sZHMubGluZXM9JHt0aHJlc2hvbGR9YCxcbiAgICBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLmZ1bmN0aW9ucz0ke3RocmVzaG9sZH1gLFxuICAgIGAtLWNvdmVyYWdlLnRocmVzaG9sZHMuYnJhbmNoZXM9JHt0aHJlc2hvbGR9YCxcbiAgICBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLnN0YXRlbWVudHM9JHt0aHJlc2hvbGR9YFxuICBdKTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlIGluIHdhdGNoIG1vZGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIHRlc3QuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdFdhdGNoKG9wdGlvbnM6IFRlc3RXYXRjaE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWyd2aXRlc3QnLCAuLi5idWlsZFByb2plY3RGbGFncyhvcHRpb25zLnByb2plY3RzKV0pO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBgLS1wcm9qZWN0YCBmbGFncyBmb3IgdGhlIGdpdmVuIHByb2plY3QgcHJlZml4ZXMuXG4gKiBFYWNoIHByZWZpeCBleHBhbmRzIHRvIGJvdGggYC0tcHJvamVjdD1wcmVmaXhgIChleGFjdCBtYXRjaClcbiAqIGFuZCBgLS1wcm9qZWN0PXByZWZpeDoqYCAoc3ViLXByb2plY3RzKS5cbiAqXG4gKiBAcGFyYW0gcHJvamVjdHMgLSBUaGUgcHJvamVjdCBuYW1lIHByZWZpeGVzLlxuICogQHJldHVybnMgVGhlIGAtLXByb2plY3RgIGZsYWdzIGFycmF5LlxuICovXG5mdW5jdGlvbiBidWlsZFByb2plY3RGbGFncyhwcm9qZWN0cz86IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICByZXR1cm4gKHByb2plY3RzID8/IFtdKS5mbGF0TWFwKChwcm9qZWN0KSA9PiBbYC0tcHJvamVjdD0ke3Byb2plY3R9YCwgYC0tcHJvamVjdD0ke3Byb2plY3R9OipgXSk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEsa0JBQTZCO0FBb0M3QixlQUFzQixLQUFLLFVBQXVCLENBQUMsR0FBa0I7QUFDbkUsWUFBTSwwQkFBYSxDQUFDLFVBQVUsT0FBTyxHQUFHLGtCQUFrQixRQUFRLFFBQVEsQ0FBQyxDQUFDO0FBQzlFO0FBUUEsZUFBc0IsYUFBYSxVQUErQixDQUFDLEdBQWtCO0FBQ25GLFFBQU0sWUFBWSxPQUFPLFFBQVEseUJBQXlCLENBQUM7QUFDM0QsWUFBTSwwQkFBYTtBQUFBLElBQ2pCO0FBQUEsSUFDQTtBQUFBLElBQ0EsR0FBRyxrQkFBa0IsUUFBUSxRQUFRO0FBQUEsSUFDckM7QUFBQSxJQUNBLCtCQUErQixTQUFTO0FBQUEsSUFDeEMsbUNBQW1DLFNBQVM7QUFBQSxJQUM1QyxrQ0FBa0MsU0FBUztBQUFBLElBQzNDLG9DQUFvQyxTQUFTO0FBQUEsRUFDL0MsQ0FBQztBQUNIO0FBUUEsZUFBc0IsVUFBVSxVQUE0QixDQUFDLEdBQWtCO0FBQzdFLFlBQU0sMEJBQWEsQ0FBQyxVQUFVLEdBQUcsa0JBQWtCLFFBQVEsUUFBUSxDQUFDLENBQUM7QUFDdkU7QUFVQSxTQUFTLGtCQUFrQixVQUErQjtBQUN4RCxVQUFRLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsYUFBYSxPQUFPLElBQUksYUFBYSxPQUFPLElBQUksQ0FBQztBQUNqRzsiLAogICJuYW1lcyI6IFtdCn0K
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXN0LXJ1bm5lcnMvdml0ZXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBmdW5jdGlvbnMgZm9yIHJ1bm5pbmcgdGVzdHMgdXNpbmcgdGhlIFZpdGVzdCBmcmFtZXdvcmsuXG4gKi9cblxuaW1wb3J0IHsgYXZhaWxhYmxlUGFyYWxsZWxpc20gfSBmcm9tICdub2RlOm9zJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB0eXBlIHsgT3duZWRPcHRpb24gfSBmcm9tICcuL2ZvcndhcmRlZC1hcmd1bWVudHMudHMnO1xuXG5pbXBvcnQgeyBnZXRCdWxrQ29uY3VycmVuY3kgfSBmcm9tICcuLi9idWxrLWNvbmN1cnJlbmN5LnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi4vcm9vdC50cyc7XG5pbXBvcnQgeyBhc3NlcnROb093bmVkQXJndW1lbnRzIH0gZnJvbSAnLi9mb3J3YXJkZWQtYXJndW1lbnRzLnRzJztcblxuY29uc3QgV0FUQ0hfV09SS0VSX0RJVklTT1IgPSAyO1xuY29uc3Qgd29ya2VyRW52aXJvbm1lbnRRdWV1ZSA9IHsgcGVuZGluZzogUHJvbWlzZS5yZXNvbHZlPHVua25vd24+KHVuZGVmaW5lZCkgfTtcblxuY29uc3QgUFJPSkVDVF9PUFRJT046IE93bmVkT3B0aW9uID0geyBuYW1lczogWyctLXByb2plY3QnXSwgcmVwbGFjZW1lbnQ6ICd0aGUgYHByb2plY3RzYCBvcHRpb24nIH07XG5jb25zdCBSVU5fTU9ERV9PUFRJT046IE93bmVkT3B0aW9uID0geyBuYW1lczogWyctLXJ1bicsICctLXdhdGNoJywgJy13J10sIHJlcGxhY2VtZW50OiAndGhlIGB0ZXN0YCwgYHRlc3RDb3ZlcmFnZWAgb3IgYHRlc3RXYXRjaGAgd3JhcHBlcicgfTtcbmNvbnN0IENPVkVSQUdFX09QVElPTjogT3duZWRPcHRpb24gPSB7XG4gIG5hbWVzOiBbJy0tY292ZXJhZ2UnLCAnLS1uby1jb3ZlcmFnZSddLFxuICBwcmVmaXhlczogWyctLWNvdmVyYWdlLiddLFxuICByZXBsYWNlbWVudDogJ3RoZSBgdGVzdENvdmVyYWdlYCB3cmFwcGVyIGFuZCBpdHMgYG1pbkNvdmVyYWdlSW5QZXJjZW50c2Agb3B0aW9uJ1xufTtcbmNvbnN0IE9XTkVEX09QVElPTlM6IHJlYWRvbmx5IE93bmVkT3B0aW9uW10gPSBbUFJPSkVDVF9PUFRJT04sIFJVTl9NT0RFX09QVElPTiwgQ09WRVJBR0VfT1BUSU9OXTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBydW5uaW5nIHRlc3RzIHdpdGggY292ZXJhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdENvdmVyYWdlT3B0aW9ucyBleHRlbmRzIFRlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1pbmltdW0gY292ZXJhZ2UgcGVyY2VudGFnZSByZXF1aXJlZC4gSWYgdGhlIGFjdHVhbCBjb3ZlcmFnZSBmYWxscyBiZWxvd1xuICAgKiB0aGlzIHRocmVzaG9sZCwgdGhlIHByb2Nlc3MgZXhpdHMgd2l0aCBhIG5vbi16ZXJvIGNvZGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAwYFxuICAgKi9cbiAgcmVhZG9ubHkgbWluQ292ZXJhZ2VJblBlcmNlbnRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHJ1bm5pbmcgdGVzdHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdE9wdGlvbnMge1xuICAvKipcbiAgICogRnVydGhlciB2aXRlc3QgQ0xJIGFyZ3VtZW50cywgYXBwZW5kZWQgYWZ0ZXIgdGhlIHdyYXBwZXIncyBvd246IGZpbGUgZmlsdGVycywgYC10YCwgYC0tbWF4V29ya2Vyc2AsIGAtLXJlcG9ydGVyYC5cbiAgICogQW4gYXJndW1lbnQgbmFtaW5nIGFuIG9wdGlvbiB0aGUgd3JhcHBlciBzZXRzIGl0c2VsZiAoYC0tcHJvamVjdGAsIGAtLWNvdmVyYWdlKmAsIGAtLXJ1bmAsIGAtLXdhdGNoYCkgdGhyb3dzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbEFyZ3VtZW50cz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvamVjdHMgdG8gcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdHM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBydW5uaW5nIHRlc3RzIGluIHdhdGNoIG1vZGUuXG4gKi9cbmV4cG9ydCB0eXBlIFRlc3RXYXRjaE9wdGlvbnMgPSBUZXN0T3B0aW9ucztcblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSB0ZXN0LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0ZXN0cyBoYXZlIGNvbXBsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3Qob3B0aW9uczogVGVzdE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWyd2aXRlc3QnLCAncnVuJywgLi4uYnVpbGRQcm9qZWN0RmxhZ3Mob3B0aW9ucy5wcm9qZWN0cyksIC4uLmdldEFkZGl0aW9uYWxBcmd1bWVudHMob3B0aW9ucyldLCB7XG4gICAgZW52OiBhd2FpdCBnZXRXb3JrZXJFbnZpcm9ubWVudChvcHRpb25zKVxuICB9KTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlIHdpdGggY292ZXJhZ2UuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBjb3ZlcmFnZSBjb25maWd1cmF0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0ZXN0cyBoYXZlIGNvbXBsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3RDb3ZlcmFnZShvcHRpb25zOiBUZXN0Q292ZXJhZ2VPcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdGhyZXNob2xkID0gU3RyaW5nKG9wdGlvbnMubWluQ292ZXJhZ2VJblBlcmNlbnRzID8/IDApO1xuICBhd2FpdCBleGVjRnJvbVJvb3QoW1xuICAgICd2aXRlc3QnLFxuICAgICdydW4nLFxuICAgIC4uLmJ1aWxkUHJvamVjdEZsYWdzKG9wdGlvbnMucHJvamVjdHMpLFxuICAgICctLWNvdmVyYWdlJyxcbiAgICBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLmxpbmVzPSR7dGhyZXNob2xkfWAsXG4gICAgYC0tY292ZXJhZ2UudGhyZXNob2xkcy5mdW5jdGlvbnM9JHt0aHJlc2hvbGR9YCxcbiAgICBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLmJyYW5jaGVzPSR7dGhyZXNob2xkfWAsXG4gICAgYC0tY292ZXJhZ2UudGhyZXNob2xkcy5zdGF0ZW1lbnRzPSR7dGhyZXNob2xkfWAsXG4gICAgLi4uZ2V0QWRkaXRpb25hbEFyZ3VtZW50cyhvcHRpb25zKVxuICBdLCB7IGVudjogYXdhaXQgZ2V0V29ya2VyRW52aXJvbm1lbnQob3B0aW9ucykgfSk7XG59XG5cbi8qKlxuICogUnVucyB0aGUgdGVzdCBzdWl0ZSBpbiB3YXRjaCBtb2RlLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSB0ZXN0LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0ZXN0cyBoYXZlIGNvbXBsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3RXYXRjaChvcHRpb25zOiBUZXN0V2F0Y2hPcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsndml0ZXN0JywgLi4uYnVpbGRQcm9qZWN0RmxhZ3Mob3B0aW9ucy5wcm9qZWN0cyksIC4uLmdldEFkZGl0aW9uYWxBcmd1bWVudHMob3B0aW9ucyldLCB7XG4gICAgZW52OiBhd2FpdCBnZXRXb3JrZXJFbnZpcm9ubWVudChvcHRpb25zLCB0cnVlKVxuICB9KTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYC0tcHJvamVjdGAgZmxhZ3MgZm9yIHRoZSBnaXZlbiBwcm9qZWN0IHByZWZpeGVzLlxuICogRWFjaCBwcmVmaXggZXhwYW5kcyB0byBib3RoIGAtLXByb2plY3Q9cHJlZml4YCAoZXhhY3QgbWF0Y2gpXG4gKiBhbmQgYC0tcHJvamVjdD1wcmVmaXg6KmAgKHN1Yi1wcm9qZWN0cykuXG4gKlxuICogQHBhcmFtIHByb2plY3RzIC0gVGhlIHByb2plY3QgbmFtZSBwcmVmaXhlcy5cbiAqIEByZXR1cm5zIFRoZSBgLS1wcm9qZWN0YCBmbGFncyBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYnVpbGRQcm9qZWN0RmxhZ3MocHJvamVjdHM/OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIChwcm9qZWN0cyA/PyBbXSkuZmxhdE1hcCgocHJvamVjdCkgPT4gW2AtLXByb2plY3Q9JHtwcm9qZWN0fWAsIGAtLXByb2plY3Q9JHtwcm9qZWN0fToqYF0pO1xufVxuXG4vKipcbiAqIENoZWNrcyB0aGUgZm9yd2FyZGVkIGFyZ3VtZW50cyBhZ2FpbnN0IHRoZSBvcHRpb25zIHRoZSB3cmFwcGVycyBzZXQgdGhlbXNlbHZlcy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgdGVzdC5cbiAqIEByZXR1cm5zIFRoZSBmb3J3YXJkZWQgYXJndW1lbnRzLlxuICovXG5mdW5jdGlvbiBnZXRBZGRpdGlvbmFsQXJndW1lbnRzKG9wdGlvbnM6IFRlc3RPcHRpb25zKTogcmVhZG9ubHkgc3RyaW5nW10ge1xuICBjb25zdCB7IGFkZGl0aW9uYWxBcmd1bWVudHMgPSBbXSB9ID0gb3B0aW9ucztcbiAgYXNzZXJ0Tm9Pd25lZEFyZ3VtZW50cyh7IGZvcndhcmRlZEFyZ3VtZW50czogYWRkaXRpb25hbEFyZ3VtZW50cywgb3duZWRPcHRpb25zOiBPV05FRF9PUFRJT05TLCBydW5uZXJOYW1lOiAndml0ZXN0JyB9KTtcbiAgcmV0dXJuIGFkZGl0aW9uYWxBcmd1bWVudHM7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGJ1bGsgY2FwIHdpdGhvdXQgbGV0dGluZyBWaXRlc3QncyBlbnZpcm9ubWVudCBvdmVycmlkZSBoaWRlIG5hcnJvd2VyIHByb2plY3QgbGltaXRzLlxuICogVGhlIG5hcnJvd2VzdCBsaW1pdCBhcHBsaWVzIHRvIHRoZSB3aG9sZSBpbnZvY2F0aW9uIGJlY2F1c2UgQ0xJIGFuZCBlbnZpcm9ubWVudCBsaW1pdHMgcmVwbGFjZSBwcm9qZWN0IGxpbWl0cy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBzZWxlY3RlZCB0ZXN0IHByb2plY3RzLlxuICogQHBhcmFtIGlzV2F0Y2ggLSBXaGV0aGVyIHRoaXMgaW52b2NhdGlvbiB3YXRjaGVzIGZvciBjaGFuZ2VzLlxuICogQHJldHVybnMgQ2hpbGQgZW52aXJvbm1lbnQgb3ZlcnJpZGVzLCBlbXB0eSBvdXRzaWRlIGJ1bGsgd29yay5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0V29ya2VyRW52aXJvbm1lbnQob3B0aW9uczogVGVzdE9wdGlvbnMsIGlzV2F0Y2ggPSBmYWxzZSk6IFByb21pc2U8Tm9kZUpTLlByb2Nlc3NFbnY+IHtcbiAgY29uc3QgbmV4dCA9IHdvcmtlckVudmlyb25tZW50UXVldWUucGVuZGluZy50aGVuKCgpID0+IHJlc29sdmVXb3JrZXJFbnZpcm9ubWVudChvcHRpb25zLCBpc1dhdGNoKSk7XG4gIHdvcmtlckVudmlyb25tZW50UXVldWUucGVuZGluZyA9IG5leHQuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgcmV0dXJuIG5leHQ7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgb25lIGludm9jYXRpb24ncyB3b3JrZXIgZW52aXJvbm1lbnQgd2hpbGUgaG9sZGluZyB0aGUgY29uZmlndXJhdGlvbi1yZXNvbHV0aW9uIHF1ZXVlLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHNlbGVjdGVkIHRlc3QgcHJvamVjdHMuXG4gKiBAcGFyYW0gaXNXYXRjaCAtIFdoZXRoZXIgdGhpcyBpbnZvY2F0aW9uIHdhdGNoZXMgZm9yIGNoYW5nZXMuXG4gKiBAcmV0dXJucyBDaGlsZCBlbnZpcm9ubWVudCBvdmVycmlkZXMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVXb3JrZXJFbnZpcm9ubWVudChvcHRpb25zOiBUZXN0T3B0aW9ucywgaXNXYXRjaDogYm9vbGVhbik6IFByb21pc2U8Tm9kZUpTLlByb2Nlc3NFbnY+IHtcbiAgY29uc3QgYnVkZ2V0ID0gZ2V0QnVsa0NvbmN1cnJlbmN5KEluZmluaXR5KTtcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoYnVkZ2V0KSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8vIE9wdGlvbmFsIHBlZXI6IGxlYXZlIGxvYWRpbmcgVml0ZXN0IHRvIHRoZSBDTEkgb3V0c2lkZSBidWxrIHdvcmsuXG4gIGNvbnN0IHsgcmVzb2x2ZUNvbmZpZyB9ID0gYXdhaXQgaW1wb3J0KCd2aXRlc3Qvbm9kZScpO1xuICBjb25zdCBpbmhlcml0ZWRXb3JrZXJzID0gcHJvY2Vzcy5lbnZbJ1ZJVEVTVF9NQVhfV09SS0VSUyddO1xuICBkZWxldGUgcHJvY2Vzcy5lbnZbJ1ZJVEVTVF9NQVhfV09SS0VSUyddO1xuICBsZXQgY29uZmlnO1xuICB0cnkge1xuICAgIGNvbmZpZyA9IGF3YWl0IHJlc29sdmVDb25maWcoe1xuICAgICAgcHJvamVjdDogKG9wdGlvbnMucHJvamVjdHMgPz8gW10pLmZsYXRNYXAoKHByb2plY3QpID0+IFtwcm9qZWN0LCBgJHtwcm9qZWN0fToqYF0pLFxuICAgICAgcm9vdDogcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiAnLicgfSksXG4gICAgICB3YXRjaDogaXNXYXRjaFxuICAgIH0pO1xuICB9IGZpbmFsbHkge1xuICAgIGlmIChpbmhlcml0ZWRXb3JrZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF0b21pYy11cGRhdGVzIC0tIFdvcmtlciBlbnZpcm9ubWVudCByZXNvbHV0aW9ucyBhcmUgc2VyaWFsaXplZDsgcmVzdG9yZSB0aGUgaW5oZXJpdGVkIHZhbHVlIGJlZm9yZSB0aGUgbmV4dCBpbnZvY2F0aW9uIHJlYWRzIGl0LlxuICAgICAgcHJvY2Vzcy5lbnZbJ1ZJVEVTVF9NQVhfV09SS0VSUyddID0gaW5oZXJpdGVkV29ya2VycztcbiAgICB9XG4gIH1cblxuICBjb25zdCBvcmRpbmFyeVdvcmtlcnMgPSBNYXRoLm1heChpc1dhdGNoID8gTWF0aC5mbG9vcihhdmFpbGFibGVQYXJhbGxlbGlzbSgpIC8gV0FUQ0hfV09SS0VSX0RJVklTT1IpIDogYXZhaWxhYmxlUGFyYWxsZWxpc20oKSAtIDEsIDEpO1xuICBjb25zdCBpbmhlcml0ZWRMaW1pdCA9IE51bWJlci5wYXJzZUludChpbmhlcml0ZWRXb3JrZXJzID8/ICcnLCAxMCk7XG4gIGxldCB3b3JrZXJzID0gTWF0aC5taW4oYnVkZ2V0LCBvcmRpbmFyeVdvcmtlcnMpO1xuICBpZiAoTnVtYmVyLmlzU2FmZUludGVnZXIoaW5oZXJpdGVkTGltaXQpICYmIGluaGVyaXRlZExpbWl0ID4gMCkge1xuICAgIHdvcmtlcnMgPSBNYXRoLm1pbih3b3JrZXJzLCBpbmhlcml0ZWRMaW1pdCk7XG4gIH1cblxuICBjb25zdCBjb25maWdzID0gW2NvbmZpZy50ZXN0LCAuLi5jb25maWcudGVzdC5yZXNvbHZlZFByb2plY3RzLmZpbHRlcigoZW50cnkpID0+ICFlbnRyeS5oaWRkZW4pLm1hcCgoZW50cnkpID0+IGVudHJ5LnByb2plY3RDb25maWcpXTtcbiAgZm9yIChjb25zdCB0ZXN0Q29uZmlnIG9mIGNvbmZpZ3MpIHtcbiAgICBpZiAodGVzdENvbmZpZy5tYXhXb3JrZXJzKSB7XG4gICAgICB3b3JrZXJzID0gTWF0aC5taW4od29ya2VycywgdGVzdENvbmZpZy5tYXhXb3JrZXJzKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBWSVRFU1RfTUFYX1dPUktFUlM6IFN0cmluZyh3b3JrZXJzKSB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLHFCQUFxQztBQUNyQywwQkFBb0I7QUFJcEIsOEJBQW1DO0FBQ25DLGtCQUdPO0FBQ1AsaUNBQXVDO0FBRXZDLE1BQU0sdUJBQXVCO0FBQzdCLE1BQU0seUJBQXlCLEVBQUUsU0FBUyxRQUFRLFFBQWlCLE1BQVMsRUFBRTtBQUU5RSxNQUFNLGlCQUE4QixFQUFFLE9BQU8sQ0FBQyxXQUFXLEdBQUcsYUFBYSx3QkFBd0I7QUFDakcsTUFBTSxrQkFBK0IsRUFBRSxPQUFPLENBQUMsU0FBUyxXQUFXLElBQUksR0FBRyxhQUFhLG9EQUFvRDtBQUMzSSxNQUFNLGtCQUErQjtBQUFBLEVBQ25DLE9BQU8sQ0FBQyxjQUFjLGVBQWU7QUFBQSxFQUNyQyxVQUFVLENBQUMsYUFBYTtBQUFBLEVBQ3hCLGFBQWE7QUFDZjtBQUNBLE1BQU0sZ0JBQXdDLENBQUMsZ0JBQWdCLGlCQUFpQixlQUFlO0FBMEMvRixlQUFzQixLQUFLLFVBQXVCLENBQUMsR0FBa0I7QUFDbkUsWUFBTSwwQkFBYSxDQUFDLFVBQVUsT0FBTyxHQUFHLGtCQUFrQixRQUFRLFFBQVEsR0FBRyxHQUFHLHVCQUF1QixPQUFPLENBQUMsR0FBRztBQUFBLElBQ2hILEtBQUssTUFBTSxxQkFBcUIsT0FBTztBQUFBLEVBQ3pDLENBQUM7QUFDSDtBQVFBLGVBQXNCLGFBQWEsVUFBK0IsQ0FBQyxHQUFrQjtBQUNuRixRQUFNLFlBQVksT0FBTyxRQUFRLHlCQUF5QixDQUFDO0FBQzNELFlBQU0sMEJBQWE7QUFBQSxJQUNqQjtBQUFBLElBQ0E7QUFBQSxJQUNBLEdBQUcsa0JBQWtCLFFBQVEsUUFBUTtBQUFBLElBQ3JDO0FBQUEsSUFDQSwrQkFBK0IsU0FBUztBQUFBLElBQ3hDLG1DQUFtQyxTQUFTO0FBQUEsSUFDNUMsa0NBQWtDLFNBQVM7QUFBQSxJQUMzQyxvQ0FBb0MsU0FBUztBQUFBLElBQzdDLEdBQUcsdUJBQXVCLE9BQU87QUFBQSxFQUNuQyxHQUFHLEVBQUUsS0FBSyxNQUFNLHFCQUFxQixPQUFPLEVBQUUsQ0FBQztBQUNqRDtBQVFBLGVBQXNCLFVBQVUsVUFBNEIsQ0FBQyxHQUFrQjtBQUM3RSxZQUFNLDBCQUFhLENBQUMsVUFBVSxHQUFHLGtCQUFrQixRQUFRLFFBQVEsR0FBRyxHQUFHLHVCQUF1QixPQUFPLENBQUMsR0FBRztBQUFBLElBQ3pHLEtBQUssTUFBTSxxQkFBcUIsU0FBUyxJQUFJO0FBQUEsRUFDL0MsQ0FBQztBQUNIO0FBVUEsU0FBUyxrQkFBa0IsVUFBK0I7QUFDeEQsVUFBUSxZQUFZLENBQUMsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLGFBQWEsT0FBTyxJQUFJLGFBQWEsT0FBTyxJQUFJLENBQUM7QUFDakc7QUFRQSxTQUFTLHVCQUF1QixTQUF5QztBQUN2RSxRQUFNLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxJQUFJO0FBQ3JDLHlEQUF1QixFQUFFLG9CQUFvQixxQkFBcUIsY0FBYyxlQUFlLFlBQVksU0FBUyxDQUFDO0FBQ3JILFNBQU87QUFDVDtBQVVBLGVBQWUscUJBQXFCLFNBQXNCLFVBQVUsT0FBbUM7QUFDckcsUUFBTSxPQUFPLHVCQUF1QixRQUFRLEtBQUssTUFBTSx5QkFBeUIsU0FBUyxPQUFPLENBQUM7QUFDakcseUJBQXVCLFVBQVUsS0FBSyxNQUFNLE1BQU0sTUFBUztBQUMzRCxTQUFPO0FBQ1Q7QUFTQSxlQUFlLHlCQUF5QixTQUFzQixTQUE4QztBQUMxRyxRQUFNLGFBQVMsNENBQW1CLFFBQVE7QUFDMUMsTUFBSSxDQUFDLE9BQU8sU0FBUyxNQUFNLEdBQUc7QUFDNUIsV0FBTyxDQUFDO0FBQUEsRUFDVjtBQUdBLFFBQU0sRUFBRSxjQUFjLElBQUksTUFBTSxPQUFPLGFBQWE7QUFDcEQsUUFBTSxtQkFBbUIsb0JBQUFBLFFBQVEsSUFBSSxvQkFBb0I7QUFDekQsU0FBTyxvQkFBQUEsUUFBUSxJQUFJLG9CQUFvQjtBQUN2QyxNQUFJO0FBQ0osTUFBSTtBQUNGLGFBQVMsTUFBTSxjQUFjO0FBQUEsTUFDM0IsVUFBVSxRQUFRLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLE9BQU8sSUFBSSxDQUFDO0FBQUEsTUFDaEYsVUFBTSxxQ0FBd0IsRUFBRSxNQUFNLElBQUksQ0FBQztBQUFBLE1BQzNDLE9BQU87QUFBQSxJQUNULENBQUM7QUFBQSxFQUNILFVBQUU7QUFDQSxRQUFJLHFCQUFxQixRQUFXO0FBRWxDLDBCQUFBQSxRQUFRLElBQUksb0JBQW9CLElBQUk7QUFBQSxJQUN0QztBQUFBLEVBQ0Y7QUFFQSxRQUFNLGtCQUFrQixLQUFLLElBQUksVUFBVSxLQUFLLFVBQU0scUNBQXFCLElBQUksb0JBQW9CLFFBQUkscUNBQXFCLElBQUksR0FBRyxDQUFDO0FBQ3BJLFFBQU0saUJBQWlCLE9BQU8sU0FBUyxvQkFBb0IsSUFBSSxFQUFFO0FBQ2pFLE1BQUksVUFBVSxLQUFLLElBQUksUUFBUSxlQUFlO0FBQzlDLE1BQUksT0FBTyxjQUFjLGNBQWMsS0FBSyxpQkFBaUIsR0FBRztBQUM5RCxjQUFVLEtBQUssSUFBSSxTQUFTLGNBQWM7QUFBQSxFQUM1QztBQUVBLFFBQU0sVUFBVSxDQUFDLE9BQU8sTUFBTSxHQUFHLE9BQU8sS0FBSyxpQkFBaUIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUNsSSxhQUFXLGNBQWMsU0FBUztBQUNoQyxRQUFJLFdBQVcsWUFBWTtBQUN6QixnQkFBVSxLQUFLLElBQUksU0FBUyxXQUFXLFVBQVU7QUFBQSxJQUNuRDtBQUFBLEVBQ0Y7QUFFQSxTQUFPLEVBQUUsb0JBQW9CLE9BQU8sT0FBTyxFQUFFO0FBQy9DOyIsIm5hbWVzIjpbInByb2Nlc3MiXX0=
@@ -20,6 +20,11 @@ export interface TestCoverageOptions extends TestOptions {
20
20
  * Options for running tests.
21
21
  */
22
22
  export interface TestOptions {
23
+ /**
24
+ * Further vitest CLI arguments, appended after the wrapper's own: file filters, `-t`, `--maxWorkers`, `--reporter`.
25
+ * An argument naming an option the wrapper sets itself (`--project`, `--coverage*`, `--run`, `--watch`) throws.
26
+ */
27
+ readonly additionalArguments?: readonly string[];
23
28
  /**
24
29
  * The projects to run.
25
30
  */
@@ -0,0 +1,14 @@
1
+ /// <reference path="./library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Caps tool concurrency to the bulk worker's processor budget.
6
+ */
7
+ /**
8
+ * Caps a tool's ordinary concurrency when `BULK_CORES` names a positive safe integer.
9
+ * Missing or malformed budgets leave the ordinary default unchanged. Reads the environment on each call.
10
+ *
11
+ * @param defaultConcurrency - The tool's ordinary positive concurrency limit.
12
+ * @returns The default capped by the valid bulk budget, or the unchanged default.
13
+ */
14
+ export declare function getBulkConcurrency(defaultConcurrency: number): number;
@@ -0,0 +1,15 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ import process from "node:process";
7
+ function getBulkConcurrency(defaultConcurrency) {
8
+ const budget = process.env["BULK_CORES"]?.trim() ?? "";
9
+ const cores = Number(budget);
10
+ return /^[1-9]\d*$/.test(budget) && Number.isSafeInteger(cores) ? Math.min(defaultConcurrency, cores) : defaultConcurrency;
11
+ }
12
+ export {
13
+ getBulkConcurrency
14
+ };
15
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2J1bGstY29uY3VycmVuY3kudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDYXBzIHRvb2wgY29uY3VycmVuY3kgdG8gdGhlIGJ1bGsgd29ya2VyJ3MgcHJvY2Vzc29yIGJ1ZGdldC5cbiAqL1xuXG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG4vKipcbiAqIENhcHMgYSB0b29sJ3Mgb3JkaW5hcnkgY29uY3VycmVuY3kgd2hlbiBgQlVMS19DT1JFU2AgbmFtZXMgYSBwb3NpdGl2ZSBzYWZlIGludGVnZXIuXG4gKiBNaXNzaW5nIG9yIG1hbGZvcm1lZCBidWRnZXRzIGxlYXZlIHRoZSBvcmRpbmFyeSBkZWZhdWx0IHVuY2hhbmdlZC4gUmVhZHMgdGhlIGVudmlyb25tZW50IG9uIGVhY2ggY2FsbC5cbiAqXG4gKiBAcGFyYW0gZGVmYXVsdENvbmN1cnJlbmN5IC0gVGhlIHRvb2wncyBvcmRpbmFyeSBwb3NpdGl2ZSBjb25jdXJyZW5jeSBsaW1pdC5cbiAqIEByZXR1cm5zIFRoZSBkZWZhdWx0IGNhcHBlZCBieSB0aGUgdmFsaWQgYnVsayBidWRnZXQsIG9yIHRoZSB1bmNoYW5nZWQgZGVmYXVsdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJ1bGtDb25jdXJyZW5jeShkZWZhdWx0Q29uY3VycmVuY3k6IG51bWJlcik6IG51bWJlciB7XG4gIGNvbnN0IGJ1ZGdldCA9IHByb2Nlc3MuZW52WydCVUxLX0NPUkVTJ10/LnRyaW0oKSA/PyAnJztcbiAgY29uc3QgY29yZXMgPSBOdW1iZXIoYnVkZ2V0KTtcbiAgcmV0dXJuIC9eWzEtOV1cXGQqJC8udGVzdChidWRnZXQpICYmIE51bWJlci5pc1NhZmVJbnRlZ2VyKGNvcmVzKVxuICAgID8gTWF0aC5taW4oZGVmYXVsdENvbmN1cnJlbmN5LCBjb3JlcylcbiAgICA6IGRlZmF1bHRDb25jdXJyZW5jeTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBTUEsT0FBTyxhQUFhO0FBU2IsU0FBUyxtQkFBbUIsb0JBQW9DO0FBQ3JFLFFBQU0sU0FBUyxRQUFRLElBQUksWUFBWSxHQUFHLEtBQUssS0FBSztBQUNwRCxRQUFNLFFBQVEsT0FBTyxNQUFNO0FBQzNCLFNBQU8sYUFBYSxLQUFLLE1BQU0sS0FBSyxPQUFPLGNBQWMsS0FBSyxJQUMxRCxLQUFLLElBQUksb0JBQW9CLEtBQUssSUFDbEM7QUFDTjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -3,4 +3,5 @@ export * as 'change-extension-plugin' from './change-extension-plugin.mjs';
3
3
  export * as 'custom-esbuild-options-plugin' from './custom-esbuild-options-plugin.mjs';
4
4
  export * as 'fix-esm-plugin' from './fix-esm-plugin.mjs';
5
5
  export * as 'preprocess-plugin' from './preprocess-plugin.mjs';
6
+ export * as 'svelte-preprocessor' from './svelte-preprocessor.mjs';
6
7
  export * as 'svelte-wrapper-plugin' from './svelte-wrapper-plugin.mjs';
@@ -7,12 +7,14 @@ import * as change_extension_plugin from "./change-extension-plugin.mjs";
7
7
  import * as custom_esbuild_options_plugin from "./custom-esbuild-options-plugin.mjs";
8
8
  import * as fix_esm_plugin from "./fix-esm-plugin.mjs";
9
9
  import * as preprocess_plugin from "./preprocess-plugin.mjs";
10
+ import * as svelte_preprocessor from "./svelte-preprocessor.mjs";
10
11
  import * as svelte_wrapper_plugin from "./svelte-wrapper-plugin.mjs";
11
12
  export {
12
13
  change_extension_plugin as "change-extension-plugin",
13
14
  custom_esbuild_options_plugin as "custom-esbuild-options-plugin",
14
15
  fix_esm_plugin as "fix-esm-plugin",
15
16
  preprocess_plugin as "preprocess-plugin",
17
+ svelte_preprocessor as "svelte-preprocessor",
16
18
  svelte_wrapper_plugin as "svelte-wrapper-plugin"
17
19
  };
18
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2J1bmRsZXJzL2VzYnVpbGQtaW1wbC9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdjaGFuZ2UtZXh0ZW5zaW9uLXBsdWdpbicgZnJvbSAnLi9jaGFuZ2UtZXh0ZW5zaW9uLXBsdWdpbi50cyc7XG5leHBvcnQgKiBhcyAnY3VzdG9tLWVzYnVpbGQtb3B0aW9ucy1wbHVnaW4nIGZyb20gJy4vY3VzdG9tLWVzYnVpbGQtb3B0aW9ucy1wbHVnaW4udHMnO1xuZXhwb3J0ICogYXMgJ2ZpeC1lc20tcGx1Z2luJyBmcm9tICcuL2ZpeC1lc20tcGx1Z2luLnRzJztcbmV4cG9ydCAqIGFzICdwcmVwcm9jZXNzLXBsdWdpbicgZnJvbSAnLi9wcmVwcm9jZXNzLXBsdWdpbi50cyc7XG5leHBvcnQgKiBhcyAnc3ZlbHRlLXdyYXBwZXItcGx1Z2luJyBmcm9tICcuL3N2ZWx0ZS13cmFwcGVyLXBsdWdpbi50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQUVBLFlBQVlBLDZCQUErQjtBQUMzQyxZQUFZQyxtQ0FBcUM7QUFDakQsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQywyQkFBNkI7IiwKICAibmFtZXMiOiBbImNoYW5nZS1leHRlbnNpb24tcGx1Z2luIiwgImN1c3RvbS1lc2J1aWxkLW9wdGlvbnMtcGx1Z2luIiwgImZpeC1lc20tcGx1Z2luIiwgInByZXByb2Nlc3MtcGx1Z2luIiwgInN2ZWx0ZS13cmFwcGVyLXBsdWdpbiJdCn0K
20
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2J1bmRsZXJzL2VzYnVpbGQtaW1wbC9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdjaGFuZ2UtZXh0ZW5zaW9uLXBsdWdpbicgZnJvbSAnLi9jaGFuZ2UtZXh0ZW5zaW9uLXBsdWdpbi50cyc7XG5leHBvcnQgKiBhcyAnY3VzdG9tLWVzYnVpbGQtb3B0aW9ucy1wbHVnaW4nIGZyb20gJy4vY3VzdG9tLWVzYnVpbGQtb3B0aW9ucy1wbHVnaW4udHMnO1xuZXhwb3J0ICogYXMgJ2ZpeC1lc20tcGx1Z2luJyBmcm9tICcuL2ZpeC1lc20tcGx1Z2luLnRzJztcbmV4cG9ydCAqIGFzICdwcmVwcm9jZXNzLXBsdWdpbicgZnJvbSAnLi9wcmVwcm9jZXNzLXBsdWdpbi50cyc7XG5leHBvcnQgKiBhcyAnc3ZlbHRlLXByZXByb2Nlc3NvcicgZnJvbSAnLi9zdmVsdGUtcHJlcHJvY2Vzc29yLnRzJztcbmV4cG9ydCAqIGFzICdzdmVsdGUtd3JhcHBlci1wbHVnaW4nIGZyb20gJy4vc3ZlbHRlLXdyYXBwZXItcGx1Z2luLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBRUEsWUFBWUEsNkJBQStCO0FBQzNDLFlBQVlDLG1DQUFxQztBQUNqRCxZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLHlCQUEyQjtBQUN2QyxZQUFZQywyQkFBNkI7IiwKICAibmFtZXMiOiBbImNoYW5nZS1leHRlbnNpb24tcGx1Z2luIiwgImN1c3RvbS1lc2J1aWxkLW9wdGlvbnMtcGx1Z2luIiwgImZpeC1lc20tcGx1Z2luIiwgInByZXByb2Nlc3MtcGx1Z2luIiwgInN2ZWx0ZS1wcmVwcm9jZXNzb3IiLCAic3ZlbHRlLXdyYXBwZXItcGx1Z2luIl0KfQo=
@@ -0,0 +1,95 @@
1
+ /// <reference path="../../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Svelte preprocessor that compiles TypeScript scripts with esbuild.
6
+ *
7
+ * It replaces `svelte-preprocess` for the one language every Svelte component of these projects uses, `lang="ts"`, so
8
+ * the toolkit no longer depends on `svelte-preprocess`, whose optional `@babel/core` 7 peer conflicts with the Babel 8
9
+ * that Stryker installs. Any other script or style language is handed to `svelte-preprocess`, an optional peer, when the
10
+ * project installs it.
11
+ */
12
+ /**
13
+ * The attributes of a `<script>` or `<style>` block.
14
+ */
15
+ export type SvelteBlockAttributes = Record<string, boolean | string>;
16
+ /**
17
+ * A Svelte preprocessor for one kind of block.
18
+ */
19
+ export type SvelteBlockPreprocessor = (params: SveltePreprocessorParams) => Promise<SveltePreprocessorResult | undefined>;
20
+ /**
21
+ * A Svelte preprocessor group, in the shape `svelte/compiler`'s `preprocess` takes.
22
+ */
23
+ export interface SveltePreprocessorGroup {
24
+ /**
25
+ * The name of the group.
26
+ */
27
+ readonly name: string;
28
+ /**
29
+ * The preprocessor of `<script>` blocks.
30
+ */
31
+ readonly script: SvelteBlockPreprocessor;
32
+ /**
33
+ * The preprocessor of `<style>` blocks.
34
+ */
35
+ readonly style: SvelteBlockPreprocessor;
36
+ }
37
+ /**
38
+ * What a Svelte preprocessor is given for one `<script>` or `<style>` block.
39
+ */
40
+ export interface SveltePreprocessorParams {
41
+ /**
42
+ * The attributes of the block.
43
+ */
44
+ readonly attributes: SvelteBlockAttributes;
45
+ /**
46
+ * The content of the block.
47
+ */
48
+ readonly content: string;
49
+ /**
50
+ * The path of the component.
51
+ */
52
+ readonly filename?: string;
53
+ /**
54
+ * The whole component.
55
+ */
56
+ readonly markup: string;
57
+ }
58
+ /**
59
+ * What a Svelte preprocessor returns for a block it changed.
60
+ */
61
+ export interface SveltePreprocessorResult {
62
+ /**
63
+ * The new content of the block.
64
+ */
65
+ readonly code: string;
66
+ /**
67
+ * The source map of the change.
68
+ */
69
+ readonly map?: object | string;
70
+ }
71
+ /**
72
+ * Creates the Svelte preprocessor the toolkit's esbuild build uses.
73
+ *
74
+ * A `<script lang="ts">` block is transpiled with esbuild under `verbatimModuleSyntax`, as Svelte's own `vitePreprocess`
75
+ * does, so an import that only the markup uses is kept and a type import must say `import type`. A plain script or
76
+ * style block is left alone. Any other language is handed to `svelte-preprocess`, loaded only then; when the project
77
+ * does not install it, preprocessing that block fails naming the package.
78
+ *
79
+ * @returns The preprocessor group.
80
+ */
81
+ export declare function createSveltePreprocessor(): SveltePreprocessorGroup;
82
+ /**
83
+ * Gets the language of a `<script>` or `<style>` block from its `lang` attribute, or else its `type` attribute.
84
+ *
85
+ * @param attributes - The attributes of the block.
86
+ * @returns The language, lowercased, or `undefined` when the block names none.
87
+ */
88
+ export declare function getBlockLanguage(attributes: SvelteBlockAttributes): string | undefined;
89
+ /**
90
+ * Checks whether an error is the one loading `svelte-preprocess` throws when the project does not install it.
91
+ *
92
+ * @param error - The error to check.
93
+ * @returns Whether the error says that the `svelte-preprocess` package cannot be found.
94
+ */
95
+ export declare function isMissingSveltePreprocessError(error: unknown): boolean;
@@ -0,0 +1,126 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+ (function () {
6
+ function ensureBrowserProcess() {
7
+ const browserProcess = {
8
+ browser: true,
9
+ cwd() {
10
+ return '/';
11
+ },
12
+ env: {},
13
+ platform: 'android'
14
+ };
15
+
16
+ const existingProcess = globalThis.process;
17
+
18
+ if (!existingProcess) {
19
+ globalThis.process = browserProcess;
20
+ return;
21
+ }
22
+
23
+ if (existingProcess.versions?.node) {
24
+ return;
25
+ }
26
+
27
+ const existingProcessRecord = existingProcess;
28
+
29
+ for (const [key, value] of Object.entries(browserProcess)) {
30
+ existingProcessRecord[key] ??= value;
31
+ }
32
+
33
+ existingProcessRecord['browser'] = true;
34
+ }
35
+
36
+ ensureBrowserProcess();
37
+ })();
38
+
39
+ import { transform } from "esbuild";
40
+ const SVELTE_PREPROCESS_PACKAGE_NAME = "svelte-preprocess";
41
+ const JAVASCRIPT_LANGUAGES = /* @__PURE__ */ new Set(["javascript", "js"]);
42
+ const MISSING_SVELTE_PREPROCESS_MESSAGE_REG_EXP = /Cannot find (?:module|package) 'svelte-preprocess'/;
43
+ const MODULE_NOT_FOUND_CODES = /* @__PURE__ */ new Set(["ERR_MODULE_NOT_FOUND", "MODULE_NOT_FOUND"]);
44
+ const TEXT_TYPE_PREFIX = "text/";
45
+ const TYPESCRIPT_LANGUAGES = /* @__PURE__ */ new Set(["ts", "typescript"]);
46
+ function createSveltePreprocessor() {
47
+ let fallbackPromise;
48
+ async function getFallbackPreprocessorGroup() {
49
+ fallbackPromise ??= loadFallbackPreprocessorGroup().catch((error) => {
50
+ fallbackPromise = void 0;
51
+ throw error;
52
+ });
53
+ return await fallbackPromise;
54
+ }
55
+ async function preprocessWithFallback(kind, language, params) {
56
+ let fallback;
57
+ try {
58
+ fallback = await getFallbackPreprocessorGroup();
59
+ } catch (error) {
60
+ if (!isMissingSveltePreprocessError(error)) {
61
+ throw error;
62
+ }
63
+ throw new Error(
64
+ `Cannot preprocess the <${kind} lang="${language}"> block of ${params.filename ?? "a Svelte component"}: install \`svelte-preprocess\` in the project to compile ${language}.`,
65
+ { cause: error }
66
+ );
67
+ }
68
+ return await fallback[kind]?.(params) ?? void 0;
69
+ }
70
+ return {
71
+ name: "typescript-dev-toolkit-svelte",
72
+ async script(params) {
73
+ const language = getBlockLanguage(params.attributes);
74
+ if (language === void 0 || JAVASCRIPT_LANGUAGES.has(language)) {
75
+ return void 0;
76
+ }
77
+ return TYPESCRIPT_LANGUAGES.has(language) ? await transpileTypeScript(params) : await preprocessWithFallback("script", language, params);
78
+ },
79
+ async style(params) {
80
+ const language = getBlockLanguage(params.attributes);
81
+ return language === void 0 || language === "css" ? void 0 : await preprocessWithFallback("style", language, params);
82
+ }
83
+ };
84
+ }
85
+ function getBlockLanguage(attributes) {
86
+ const lang = attributes["lang"];
87
+ if (typeof lang === "string" && lang !== "") {
88
+ return lang.toLowerCase();
89
+ }
90
+ const type = attributes["type"];
91
+ return typeof type === "string" && type.toLowerCase().startsWith(TEXT_TYPE_PREFIX) ? type.slice(TEXT_TYPE_PREFIX.length).toLowerCase() : void 0;
92
+ }
93
+ function isMissingSveltePreprocessError(error) {
94
+ if (!(error instanceof Error)) {
95
+ return false;
96
+ }
97
+ const code = error.code;
98
+ return typeof code === "string" && MODULE_NOT_FOUND_CODES.has(code) && MISSING_SVELTE_PREPROCESS_MESSAGE_REG_EXP.test(error.message);
99
+ }
100
+ async function loadFallbackPreprocessorGroup() {
101
+ const svelteFallbackModule = await import(SVELTE_PREPROCESS_PACKAGE_NAME);
102
+ return svelteFallbackModule.sveltePreprocess();
103
+ }
104
+ async function transpileTypeScript(params) {
105
+ const result = await transform(params.content, {
106
+ loader: "ts",
107
+ sourcefile: params.filename ?? "",
108
+ sourcemap: "external",
109
+ target: "esnext",
110
+ tsconfigRaw: {
111
+ compilerOptions: {
112
+ verbatimModuleSyntax: true
113
+ }
114
+ }
115
+ });
116
+ return {
117
+ code: result.code,
118
+ map: result.map
119
+ };
120
+ }
121
+ export {
122
+ createSveltePreprocessor,
123
+ getBlockLanguage,
124
+ isMissingSveltePreprocessError
125
+ };
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9idW5kbGVycy9lc2J1aWxkLWltcGwvc3ZlbHRlLXByZXByb2Nlc3Nvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogU3ZlbHRlIHByZXByb2Nlc3NvciB0aGF0IGNvbXBpbGVzIFR5cGVTY3JpcHQgc2NyaXB0cyB3aXRoIGVzYnVpbGQuXG4gKlxuICogSXQgcmVwbGFjZXMgYHN2ZWx0ZS1wcmVwcm9jZXNzYCBmb3IgdGhlIG9uZSBsYW5ndWFnZSBldmVyeSBTdmVsdGUgY29tcG9uZW50IG9mIHRoZXNlIHByb2plY3RzIHVzZXMsIGBsYW5nPVwidHNcImAsIHNvXG4gKiB0aGUgdG9vbGtpdCBubyBsb25nZXIgZGVwZW5kcyBvbiBgc3ZlbHRlLXByZXByb2Nlc3NgLCB3aG9zZSBvcHRpb25hbCBgQGJhYmVsL2NvcmVgIDcgcGVlciBjb25mbGljdHMgd2l0aCB0aGUgQmFiZWwgOFxuICogdGhhdCBTdHJ5a2VyIGluc3RhbGxzLiBBbnkgb3RoZXIgc2NyaXB0IG9yIHN0eWxlIGxhbmd1YWdlIGlzIGhhbmRlZCB0byBgc3ZlbHRlLXByZXByb2Nlc3NgLCBhbiBvcHRpb25hbCBwZWVyLCB3aGVuIHRoZVxuICogcHJvamVjdCBpbnN0YWxscyBpdC5cbiAqL1xuXG5pbXBvcnQgeyB0cmFuc2Zvcm0gfSBmcm9tICdlc2J1aWxkJztcblxuLyoqXG4gKiBUaGUgYXR0cmlidXRlcyBvZiBhIGA8c2NyaXB0PmAgb3IgYDxzdHlsZT5gIGJsb2NrLlxuICovXG5leHBvcnQgdHlwZSBTdmVsdGVCbG9ja0F0dHJpYnV0ZXMgPSBSZWNvcmQ8c3RyaW5nLCBib29sZWFuIHwgc3RyaW5nPjtcblxuLyoqXG4gKiBBIFN2ZWx0ZSBwcmVwcm9jZXNzb3IgZm9yIG9uZSBraW5kIG9mIGJsb2NrLlxuICovXG5leHBvcnQgdHlwZSBTdmVsdGVCbG9ja1ByZXByb2Nlc3NvciA9IChwYXJhbXM6IFN2ZWx0ZVByZXByb2Nlc3NvclBhcmFtcykgPT4gUHJvbWlzZTxTdmVsdGVQcmVwcm9jZXNzb3JSZXN1bHQgfCB1bmRlZmluZWQ+O1xuXG4vKipcbiAqIEEgU3ZlbHRlIHByZXByb2Nlc3NvciBncm91cCwgaW4gdGhlIHNoYXBlIGBzdmVsdGUvY29tcGlsZXJgJ3MgYHByZXByb2Nlc3NgIHRha2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN2ZWx0ZVByZXByb2Nlc3Nvckdyb3VwIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByZXByb2Nlc3NvciBvZiBgPHNjcmlwdD5gIGJsb2Nrcy5cbiAgICovXG4gIHJlYWRvbmx5IHNjcmlwdDogU3ZlbHRlQmxvY2tQcmVwcm9jZXNzb3I7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmVwcm9jZXNzb3Igb2YgYDxzdHlsZT5gIGJsb2Nrcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0eWxlOiBTdmVsdGVCbG9ja1ByZXByb2Nlc3Nvcjtcbn1cblxuLyoqXG4gKiBXaGF0IGEgU3ZlbHRlIHByZXByb2Nlc3NvciBpcyBnaXZlbiBmb3Igb25lIGA8c2NyaXB0PmAgb3IgYDxzdHlsZT5gIGJsb2NrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN2ZWx0ZVByZXByb2Nlc3NvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgYXR0cmlidXRlcyBvZiB0aGUgYmxvY2suXG4gICAqL1xuICByZWFkb25seSBhdHRyaWJ1dGVzOiBTdmVsdGVCbG9ja0F0dHJpYnV0ZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBibG9jay5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgd2hvbGUgY29tcG9uZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbWFya3VwOiBzdHJpbmc7XG59XG5cbi8qKlxuICogV2hhdCBhIFN2ZWx0ZSBwcmVwcm9jZXNzb3IgcmV0dXJucyBmb3IgYSBibG9jayBpdCBjaGFuZ2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN2ZWx0ZVByZXByb2Nlc3NvclJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgbmV3IGNvbnRlbnQgb2YgdGhlIGJsb2NrLlxuICAgKi9cbiAgcmVhZG9ubHkgY29kZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc291cmNlIG1hcCBvZiB0aGUgY2hhbmdlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWFwPzogb2JqZWN0IHwgc3RyaW5nO1xufVxuXG50eXBlIEJsb2NrS2luZCA9ICdzY3JpcHQnIHwgJ3N0eWxlJztcblxudHlwZSBGYWxsYmFja1ByZXByb2Nlc3Nvckdyb3VwID0gUGFydGlhbDxSZWNvcmQ8QmxvY2tLaW5kLCAocGFyYW1zOiBTdmVsdGVQcmVwcm9jZXNzb3JQYXJhbXMpID0+IHVua25vd24+PjtcblxuaW50ZXJmYWNlIFN2ZWx0ZVByZXByb2Nlc3NNb2R1bGUge1xuICByZWFkb25seSBzdmVsdGVQcmVwcm9jZXNzOiAoKSA9PiBGYWxsYmFja1ByZXByb2Nlc3Nvckdyb3VwO1xufVxuXG5jb25zdCBTVkVMVEVfUFJFUFJPQ0VTU19QQUNLQUdFX05BTUUgPSAnc3ZlbHRlLXByZXByb2Nlc3MnO1xuXG5jb25zdCBKQVZBU0NSSVBUX0xBTkdVQUdFUyA9IG5ldyBTZXQoWydqYXZhc2NyaXB0JywgJ2pzJ10pO1xuY29uc3QgTUlTU0lOR19TVkVMVEVfUFJFUFJPQ0VTU19NRVNTQUdFX1JFR19FWFAgPSAvQ2Fubm90IGZpbmQgKD86bW9kdWxlfHBhY2thZ2UpICdzdmVsdGUtcHJlcHJvY2VzcycvO1xuY29uc3QgTU9EVUxFX05PVF9GT1VORF9DT0RFUyA9IG5ldyBTZXQoWydFUlJfTU9EVUxFX05PVF9GT1VORCcsICdNT0RVTEVfTk9UX0ZPVU5EJ10pO1xuY29uc3QgVEVYVF9UWVBFX1BSRUZJWCA9ICd0ZXh0Lyc7XG5jb25zdCBUWVBFU0NSSVBUX0xBTkdVQUdFUyA9IG5ldyBTZXQoWyd0cycsICd0eXBlc2NyaXB0J10pO1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIFN2ZWx0ZSBwcmVwcm9jZXNzb3IgdGhlIHRvb2xraXQncyBlc2J1aWxkIGJ1aWxkIHVzZXMuXG4gKlxuICogQSBgPHNjcmlwdCBsYW5nPVwidHNcIj5gIGJsb2NrIGlzIHRyYW5zcGlsZWQgd2l0aCBlc2J1aWxkIHVuZGVyIGB2ZXJiYXRpbU1vZHVsZVN5bnRheGAsIGFzIFN2ZWx0ZSdzIG93biBgdml0ZVByZXByb2Nlc3NgXG4gKiBkb2VzLCBzbyBhbiBpbXBvcnQgdGhhdCBvbmx5IHRoZSBtYXJrdXAgdXNlcyBpcyBrZXB0IGFuZCBhIHR5cGUgaW1wb3J0IG11c3Qgc2F5IGBpbXBvcnQgdHlwZWAuIEEgcGxhaW4gc2NyaXB0IG9yXG4gKiBzdHlsZSBibG9jayBpcyBsZWZ0IGFsb25lLiBBbnkgb3RoZXIgbGFuZ3VhZ2UgaXMgaGFuZGVkIHRvIGBzdmVsdGUtcHJlcHJvY2Vzc2AsIGxvYWRlZCBvbmx5IHRoZW47IHdoZW4gdGhlIHByb2plY3RcbiAqIGRvZXMgbm90IGluc3RhbGwgaXQsIHByZXByb2Nlc3NpbmcgdGhhdCBibG9jayBmYWlscyBuYW1pbmcgdGhlIHBhY2thZ2UuXG4gKlxuICogQHJldHVybnMgVGhlIHByZXByb2Nlc3NvciBncm91cC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN2ZWx0ZVByZXByb2Nlc3NvcigpOiBTdmVsdGVQcmVwcm9jZXNzb3JHcm91cCB7XG4gIGxldCBmYWxsYmFja1Byb21pc2U6IFByb21pc2U8RmFsbGJhY2tQcmVwcm9jZXNzb3JHcm91cD4gfCB1bmRlZmluZWQ7XG5cbiAgLy8gQSBmYWlsZWQgbG9hZCBpcyBmb3Jnb3R0ZW4sIHNvIGEgYmxvY2sgYWZ0ZXIgdGhlIHByb2plY3QgaW5zdGFsbHMgdGhlIHBhY2thZ2UgdHJpZXMgYWdhaW4uXG4gIGFzeW5jIGZ1bmN0aW9uIGdldEZhbGxiYWNrUHJlcHJvY2Vzc29yR3JvdXAoKTogUHJvbWlzZTxGYWxsYmFja1ByZXByb2Nlc3Nvckdyb3VwPiB7XG4gICAgZmFsbGJhY2tQcm9taXNlID8/PSBsb2FkRmFsbGJhY2tQcmVwcm9jZXNzb3JHcm91cCgpLmNhdGNoKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgZmFsbGJhY2tQcm9taXNlID0gdW5kZWZpbmVkO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gICAgcmV0dXJuIGF3YWl0IGZhbGxiYWNrUHJvbWlzZTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHByZXByb2Nlc3NXaXRoRmFsbGJhY2soa2luZDogQmxvY2tLaW5kLCBsYW5ndWFnZTogc3RyaW5nLCBwYXJhbXM6IFN2ZWx0ZVByZXByb2Nlc3NvclBhcmFtcyk6IFByb21pc2U8U3ZlbHRlUHJlcHJvY2Vzc29yUmVzdWx0IHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IGZhbGxiYWNrOiBGYWxsYmFja1ByZXByb2Nlc3Nvckdyb3VwO1xuICAgIHRyeSB7XG4gICAgICBmYWxsYmFjayA9IGF3YWl0IGdldEZhbGxiYWNrUHJlcHJvY2Vzc29yR3JvdXAoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKCFpc01pc3NpbmdTdmVsdGVQcmVwcm9jZXNzRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ2Fubm90IHByZXByb2Nlc3MgdGhlIDwke2tpbmR9IGxhbmc9XCIke2xhbmd1YWdlfVwiPiBibG9jayBvZiAke3BhcmFtcy5maWxlbmFtZSA/PyAnYSBTdmVsdGUgY29tcG9uZW50J306IGluc3RhbGwgXFxgc3ZlbHRlLXByZXByb2Nlc3NcXGAgaW4gdGhlIHByb2plY3QgdG8gY29tcGlsZSAke2xhbmd1YWdlfS5gLFxuICAgICAgICB7IGNhdXNlOiBlcnJvciB9XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgZmFsbGJhY2tba2luZF0/LihwYXJhbXMpIGFzIFN2ZWx0ZVByZXByb2Nlc3NvclJlc3VsdCB8IHVuZGVmaW5lZCA/PyB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICd0eXBlc2NyaXB0LWRldi10b29sa2l0LXN2ZWx0ZScsXG4gICAgYXN5bmMgc2NyaXB0KHBhcmFtcyk6IFByb21pc2U8U3ZlbHRlUHJlcHJvY2Vzc29yUmVzdWx0IHwgdW5kZWZpbmVkPiB7XG4gICAgICBjb25zdCBsYW5ndWFnZSA9IGdldEJsb2NrTGFuZ3VhZ2UocGFyYW1zLmF0dHJpYnV0ZXMpO1xuICAgICAgaWYgKGxhbmd1YWdlID09PSB1bmRlZmluZWQgfHwgSkFWQVNDUklQVF9MQU5HVUFHRVMuaGFzKGxhbmd1YWdlKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFRZUEVTQ1JJUFRfTEFOR1VBR0VTLmhhcyhsYW5ndWFnZSkgPyAoYXdhaXQgdHJhbnNwaWxlVHlwZVNjcmlwdChwYXJhbXMpKSA6IChhd2FpdCBwcmVwcm9jZXNzV2l0aEZhbGxiYWNrKCdzY3JpcHQnLCBsYW5ndWFnZSwgcGFyYW1zKSk7XG4gICAgfSxcbiAgICBhc3luYyBzdHlsZShwYXJhbXMpOiBQcm9taXNlPFN2ZWx0ZVByZXByb2Nlc3NvclJlc3VsdCB8IHVuZGVmaW5lZD4ge1xuICAgICAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRCbG9ja0xhbmd1YWdlKHBhcmFtcy5hdHRyaWJ1dGVzKTtcbiAgICAgIHJldHVybiBsYW5ndWFnZSA9PT0gdW5kZWZpbmVkIHx8IGxhbmd1YWdlID09PSAnY3NzJyA/IHVuZGVmaW5lZCA6IChhd2FpdCBwcmVwcm9jZXNzV2l0aEZhbGxiYWNrKCdzdHlsZScsIGxhbmd1YWdlLCBwYXJhbXMpKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogR2V0cyB0aGUgbGFuZ3VhZ2Ugb2YgYSBgPHNjcmlwdD5gIG9yIGA8c3R5bGU+YCBibG9jayBmcm9tIGl0cyBgbGFuZ2AgYXR0cmlidXRlLCBvciBlbHNlIGl0cyBgdHlwZWAgYXR0cmlidXRlLlxuICpcbiAqIEBwYXJhbSBhdHRyaWJ1dGVzIC0gVGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGJsb2NrLlxuICogQHJldHVybnMgVGhlIGxhbmd1YWdlLCBsb3dlcmNhc2VkLCBvciBgdW5kZWZpbmVkYCB3aGVuIHRoZSBibG9jayBuYW1lcyBub25lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmxvY2tMYW5ndWFnZShhdHRyaWJ1dGVzOiBTdmVsdGVCbG9ja0F0dHJpYnV0ZXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBsYW5nID0gYXR0cmlidXRlc1snbGFuZyddO1xuICBpZiAodHlwZW9mIGxhbmcgPT09ICdzdHJpbmcnICYmIGxhbmcgIT09ICcnKSB7XG4gICAgcmV0dXJuIGxhbmcudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIGNvbnN0IHR5cGUgPSBhdHRyaWJ1dGVzWyd0eXBlJ107XG4gIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgJiYgdHlwZS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoVEVYVF9UWVBFX1BSRUZJWCkgPyB0eXBlLnNsaWNlKFRFWFRfVFlQRV9QUkVGSVgubGVuZ3RoKS50b0xvd2VyQ2FzZSgpIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGVycm9yIGlzIHRoZSBvbmUgbG9hZGluZyBgc3ZlbHRlLXByZXByb2Nlc3NgIHRocm93cyB3aGVuIHRoZSBwcm9qZWN0IGRvZXMgbm90IGluc3RhbGwgaXQuXG4gKlxuICogQHBhcmFtIGVycm9yIC0gVGhlIGVycm9yIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZXJyb3Igc2F5cyB0aGF0IHRoZSBgc3ZlbHRlLXByZXByb2Nlc3NgIHBhY2thZ2UgY2Fubm90IGJlIGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNNaXNzaW5nU3ZlbHRlUHJlcHJvY2Vzc0Vycm9yKGVycm9yOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIGlmICghKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgY29kZSA9IChlcnJvciBhcyBQYXJ0aWFsPFJlY29yZDwnY29kZScsIHVua25vd24+PikuY29kZTtcbiAgcmV0dXJuIHR5cGVvZiBjb2RlID09PSAnc3RyaW5nJyAmJiBNT0RVTEVfTk9UX0ZPVU5EX0NPREVTLmhhcyhjb2RlKSAmJiBNSVNTSU5HX1NWRUxURV9QUkVQUk9DRVNTX01FU1NBR0VfUkVHX0VYUC50ZXN0KGVycm9yLm1lc3NhZ2UpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBsb2FkRmFsbGJhY2tQcmVwcm9jZXNzb3JHcm91cCgpOiBQcm9taXNlPEZhbGxiYWNrUHJlcHJvY2Vzc29yR3JvdXA+IHtcbiAgLypcbiAgICogVGhlIHNwZWNpZmllciBpcyBhIHZhcmlhYmxlIHNvIHRoYXQgdHlwZS1jaGVja2luZyBkb2VzIG5vdCBuZWVkIHRoZSBwYWNrYWdlOiBpbnN0YWxsaW5nIGl0IGhlcmUgd291bGQgYnJpbmcgYmFjayB0aGVcbiAgICogYEBiYWJlbC9jb3JlYCBwZWVyIGNvbmZsaWN0IHdpdGggU3RyeWtlciB0aGlzIG1vZHVsZSBleGlzdHMgdG8gYXZvaWQuXG4gICAqL1xuICBjb25zdCBzdmVsdGVGYWxsYmFja01vZHVsZSA9IGF3YWl0IGltcG9ydChTVkVMVEVfUFJFUFJPQ0VTU19QQUNLQUdFX05BTUUpIGFzIFN2ZWx0ZVByZXByb2Nlc3NNb2R1bGU7XG4gIHJldHVybiBzdmVsdGVGYWxsYmFja01vZHVsZS5zdmVsdGVQcmVwcm9jZXNzKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRyYW5zcGlsZVR5cGVTY3JpcHQocGFyYW1zOiBTdmVsdGVQcmVwcm9jZXNzb3JQYXJhbXMpOiBQcm9taXNlPFN2ZWx0ZVByZXByb2Nlc3NvclJlc3VsdD4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCB0cmFuc2Zvcm0ocGFyYW1zLmNvbnRlbnQsIHtcbiAgICBsb2FkZXI6ICd0cycsXG4gICAgc291cmNlZmlsZTogcGFyYW1zLmZpbGVuYW1lID8/ICcnLFxuICAgIHNvdXJjZW1hcDogJ2V4dGVybmFsJyxcbiAgICB0YXJnZXQ6ICdlc25leHQnLFxuICAgIHRzY29uZmlnUmF3OiB7XG4gICAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICAgICAgdmVyYmF0aW1Nb2R1bGVTeW50YXg6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGNvZGU6IHJlc3VsdC5jb2RlLFxuICAgIG1hcDogcmVzdWx0Lm1hcFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBLFNBQVMsaUJBQWlCO0FBZ0YxQixNQUFNLGlDQUFpQztBQUV2QyxNQUFNLHVCQUF1QixvQkFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUM7QUFDekQsTUFBTSw0Q0FBNEM7QUFDbEQsTUFBTSx5QkFBeUIsb0JBQUksSUFBSSxDQUFDLHdCQUF3QixrQkFBa0IsQ0FBQztBQUNuRixNQUFNLG1CQUFtQjtBQUN6QixNQUFNLHVCQUF1QixvQkFBSSxJQUFJLENBQUMsTUFBTSxZQUFZLENBQUM7QUFZbEQsU0FBUywyQkFBb0Q7QUFDbEUsTUFBSTtBQUdKLGlCQUFlLCtCQUFtRTtBQUNoRix3QkFBb0IsOEJBQThCLEVBQUUsTUFBTSxDQUFDLFVBQW1CO0FBQzVFLHdCQUFrQjtBQUNsQixZQUFNO0FBQUEsSUFDUixDQUFDO0FBQ0QsV0FBTyxNQUFNO0FBQUEsRUFDZjtBQUVBLGlCQUFlLHVCQUF1QixNQUFpQixVQUFrQixRQUFpRjtBQUN4SixRQUFJO0FBQ0osUUFBSTtBQUNGLGlCQUFXLE1BQU0sNkJBQTZCO0FBQUEsSUFDaEQsU0FBUyxPQUFPO0FBQ2QsVUFBSSxDQUFDLCtCQUErQixLQUFLLEdBQUc7QUFDMUMsY0FBTTtBQUFBLE1BQ1I7QUFDQSxZQUFNLElBQUk7QUFBQSxRQUNSLDBCQUEwQixJQUFJLFVBQVUsUUFBUSxlQUFlLE9BQU8sWUFBWSxvQkFBb0IsNkRBQTZELFFBQVE7QUFBQSxRQUMzSyxFQUFFLE9BQU8sTUFBTTtBQUFBLE1BQ2pCO0FBQUEsSUFDRjtBQUNBLFdBQU8sTUFBTSxTQUFTLElBQUksSUFBSSxNQUFNLEtBQTZDO0FBQUEsRUFDbkY7QUFFQSxTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixNQUFNLE9BQU8sUUFBdUQ7QUFDbEUsWUFBTSxXQUFXLGlCQUFpQixPQUFPLFVBQVU7QUFDbkQsVUFBSSxhQUFhLFVBQWEscUJBQXFCLElBQUksUUFBUSxHQUFHO0FBQ2hFLGVBQU87QUFBQSxNQUNUO0FBQ0EsYUFBTyxxQkFBcUIsSUFBSSxRQUFRLElBQUssTUFBTSxvQkFBb0IsTUFBTSxJQUFNLE1BQU0sdUJBQXVCLFVBQVUsVUFBVSxNQUFNO0FBQUEsSUFDNUk7QUFBQSxJQUNBLE1BQU0sTUFBTSxRQUF1RDtBQUNqRSxZQUFNLFdBQVcsaUJBQWlCLE9BQU8sVUFBVTtBQUNuRCxhQUFPLGFBQWEsVUFBYSxhQUFhLFFBQVEsU0FBYSxNQUFNLHVCQUF1QixTQUFTLFVBQVUsTUFBTTtBQUFBLElBQzNIO0FBQUEsRUFDRjtBQUNGO0FBUU8sU0FBUyxpQkFBaUIsWUFBdUQ7QUFDdEYsUUFBTSxPQUFPLFdBQVcsTUFBTTtBQUM5QixNQUFJLE9BQU8sU0FBUyxZQUFZLFNBQVMsSUFBSTtBQUMzQyxXQUFPLEtBQUssWUFBWTtBQUFBLEVBQzFCO0FBRUEsUUFBTSxPQUFPLFdBQVcsTUFBTTtBQUM5QixTQUFPLE9BQU8sU0FBUyxZQUFZLEtBQUssWUFBWSxFQUFFLFdBQVcsZ0JBQWdCLElBQUksS0FBSyxNQUFNLGlCQUFpQixNQUFNLEVBQUUsWUFBWSxJQUFJO0FBQzNJO0FBUU8sU0FBUywrQkFBK0IsT0FBeUI7QUFDdEUsTUFBSSxFQUFFLGlCQUFpQixRQUFRO0FBQzdCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxPQUFRLE1BQTJDO0FBQ3pELFNBQU8sT0FBTyxTQUFTLFlBQVksdUJBQXVCLElBQUksSUFBSSxLQUFLLDBDQUEwQyxLQUFLLE1BQU0sT0FBTztBQUNySTtBQUVBLGVBQWUsZ0NBQW9FO0FBS2pGLFFBQU0sdUJBQXVCLE1BQU0sT0FBTztBQUMxQyxTQUFPLHFCQUFxQixpQkFBaUI7QUFDL0M7QUFFQSxlQUFlLG9CQUFvQixRQUFxRTtBQUN0RyxRQUFNLFNBQVMsTUFBTSxVQUFVLE9BQU8sU0FBUztBQUFBLElBQzdDLFFBQVE7QUFBQSxJQUNSLFlBQVksT0FBTyxZQUFZO0FBQUEsSUFDL0IsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLE1BQ1gsaUJBQWlCO0FBQUEsUUFDZixzQkFBc0I7QUFBQSxNQUN4QjtBQUFBLElBQ0Y7QUFBQSxFQUNGLENBQUM7QUFDRCxTQUFPO0FBQUEsSUFDTCxNQUFNLE9BQU87QUFBQSxJQUNiLEtBQUssT0FBTztBQUFBLEVBQ2Q7QUFDRjsiLCJuYW1lcyI6W119
@@ -18,7 +18,7 @@ export declare function isMissingSveltePackageError(error: unknown): boolean;
18
18
  /**
19
19
  * Wraps the esbuild-svelte plugin to ensure that the correct format is used.
20
20
  *
21
- * `esbuild-svelte` and `svelte-preprocess` are loaded when the plugin is set up, not when this module is imported. When
21
+ * `esbuild-svelte` is loaded when the plugin is set up, not when this module is imported. When
22
22
  * the `svelte` package is not installed, a build with no `.svelte` file succeeds, and a build that reaches one fails
23
23
  * with an error that names the missing package.
24
24
  *
@@ -38,6 +38,7 @@ ensureBrowserProcess();
38
38
 
39
39
  import { extractDefaultExportInterop } from "@mnaoumov/typescript-lib/object-utils";
40
40
  import { readPackageJson } from "../../npm.mjs";
41
+ import { createSveltePreprocessor } from "./svelte-preprocessor.mjs";
41
42
  const MISSING_SVELTE_MESSAGE_REG_EXP = /Cannot find (?:module|package) 'svelte(?:\/[^']*)?'/;
42
43
  const MODULE_NOT_FOUND_CODES = /* @__PURE__ */ new Set(["ERR_MODULE_NOT_FOUND", "MODULE_NOT_FOUND"]);
43
44
  const SVELTE_FILTER = /\.svelte$/;
@@ -75,7 +76,7 @@ function svelteWrapperPlugin(isProductionBuild) {
75
76
  };
76
77
  }
77
78
  async function createEsbuildSveltePlugin(isProductionBuild) {
78
- const [esbuildSvelteModule, { sveltePreprocess }] = await Promise.all([import("esbuild-svelte"), import("svelte-preprocess")]);
79
+ const esbuildSvelteModule = await import("esbuild-svelte");
79
80
  const esbuildSvelte = extractDefaultExportInterop(esbuildSvelteModule.default);
80
81
  return esbuildSvelte({
81
82
  compilerOptions: {
@@ -85,7 +86,7 @@ async function createEsbuildSveltePlugin(isProductionBuild) {
85
86
  moduleCompilerOptions: {
86
87
  dev: !isProductionBuild
87
88
  },
88
- preprocess: sveltePreprocess()
89
+ preprocess: createSveltePreprocessor()
89
90
  });
90
91
  }
91
92
  function registerMissingSvelteLoader(build) {
@@ -99,4 +100,4 @@ export {
99
100
  isMissingSveltePackageError,
100
101
  svelteWrapperPlugin
101
102
  };
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9idW5kbGVycy9lc2J1aWxkLWltcGwvc3ZlbHRlLXdyYXBwZXItcGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTdmVsdGUgd3JhcHBlciBlc2J1aWxkIHBsdWdpbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbixcbiAgUGx1Z2luQnVpbGRcbn0gZnJvbSAnZXNidWlsZCc7XG5cbmltcG9ydCB7IGV4dHJhY3REZWZhdWx0RXhwb3J0SW50ZXJvcCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuXG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuLi8uLi9ucG0udHMnO1xuXG5jb25zdCBNSVNTSU5HX1NWRUxURV9NRVNTQUdFX1JFR19FWFAgPSAvQ2Fubm90IGZpbmQgKD86bW9kdWxlfHBhY2thZ2UpICdzdmVsdGUoPzpcXC9bXiddKik/Jy87XG5jb25zdCBNT0RVTEVfTk9UX0ZPVU5EX0NPREVTID0gbmV3IFNldChbJ0VSUl9NT0RVTEVfTk9UX0ZPVU5EJywgJ01PRFVMRV9OT1RfRk9VTkQnXSk7XG5jb25zdCBTVkVMVEVfRklMVEVSID0gL1xcLnN2ZWx0ZSQvO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGVycm9yIGlzIHRoZSBvbmUgbG9hZGluZyBgZXNidWlsZC1zdmVsdGVgIHRocm93cyB3aGVuIHRoZSBgc3ZlbHRlYCBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQuXG4gKlxuICogYGVzYnVpbGQtc3ZlbHRlYCBpbXBvcnRzIGBzdmVsdGUvY29tcGlsZXJgIHdoZW4gaXQgbG9hZHMsIGFuZCBwYWNrYWdlIG1hbmFnZXJzIHRoYXQgZG8gbm90IGluc3RhbGwgcGVlcnMgKFlhcm4gMSlcbiAqIGxlYXZlIGBzdmVsdGVgIG91dCBvZiBhIHByb2plY3QgdGhhdCBoYXMgbm8gU3ZlbHRlIGNvbXBvbmVudHMuXG4gKlxuICogQHBhcmFtIGVycm9yIC0gVGhlIGVycm9yIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZXJyb3Igc2F5cyB0aGF0IHRoZSBgc3ZlbHRlYCBwYWNrYWdlIGNhbm5vdCBiZSBmb3VuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWlzc2luZ1N2ZWx0ZVBhY2thZ2VFcnJvcihlcnJvcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGNvZGUgPSAoZXJyb3IgYXMgUGFydGlhbDxSZWNvcmQ8J2NvZGUnLCB1bmtub3duPj4pLmNvZGU7XG4gIHJldHVybiB0eXBlb2YgY29kZSA9PT0gJ3N0cmluZycgJiYgTU9EVUxFX05PVF9GT1VORF9DT0RFUy5oYXMoY29kZSkgJiYgTUlTU0lOR19TVkVMVEVfTUVTU0FHRV9SRUdfRVhQLnRlc3QoZXJyb3IubWVzc2FnZSk7XG59XG5cbi8qKlxuICogV3JhcHMgdGhlIGVzYnVpbGQtc3ZlbHRlIHBsdWdpbiB0byBlbnN1cmUgdGhhdCB0aGUgY29ycmVjdCBmb3JtYXQgaXMgdXNlZC5cbiAqXG4gKiBgZXNidWlsZC1zdmVsdGVgIGFuZCBgc3ZlbHRlLXByZXByb2Nlc3NgIGFyZSBsb2FkZWQgd2hlbiB0aGUgcGx1Z2luIGlzIHNldCB1cCwgbm90IHdoZW4gdGhpcyBtb2R1bGUgaXMgaW1wb3J0ZWQuIFdoZW5cbiAqIHRoZSBgc3ZlbHRlYCBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGEgYnVpbGQgd2l0aCBubyBgLnN2ZWx0ZWAgZmlsZSBzdWNjZWVkcywgYW5kIGEgYnVpbGQgdGhhdCByZWFjaGVzIG9uZSBmYWlsc1xuICogd2l0aCBhbiBlcnJvciB0aGF0IG5hbWVzIHRoZSBtaXNzaW5nIHBhY2thZ2UuXG4gKlxuICogQHBhcmFtIGlzUHJvZHVjdGlvbkJ1aWxkIC0gV2hldGhlciB0aGUgYnVpbGQgaXMgYSBwcm9kdWN0aW9uIGJ1aWxkLlxuICogQHJldHVybnMgVGhlIGVzYnVpbGQgcGx1Z2luLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3ZlbHRlV3JhcHBlclBsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZDogYm9vbGVhbik6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3N2ZWx0ZS13cmFwcGVyJyxcbiAgICBhc3luYyBzZXR1cChidWlsZCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgbGV0IHN2ZWx0ZVBsdWdpbjogUGx1Z2luO1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3ZlbHRlUGx1Z2luID0gYXdhaXQgY3JlYXRlRXNidWlsZFN2ZWx0ZVBsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIWlzTWlzc2luZ1N2ZWx0ZVBhY2thZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZWdpc3Rlck1pc3NpbmdTdmVsdGVMb2FkZXIoYnVpbGQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG4gICAgICBjb25zdCBmb3JtYXQgPSBwYWNrYWdlSnNvbi50eXBlID09PSAnbW9kdWxlJyA/ICdlc20nIDogJ2Nqcyc7XG4gICAgICBhd2FpdCBzdmVsdGVQbHVnaW4uc2V0dXAoe1xuICAgICAgICAuLi5idWlsZCxcbiAgICAgICAgaW5pdGlhbE9wdGlvbnM6IHtcbiAgICAgICAgICAuLi5idWlsZC5pbml0aWFsT3B0aW9ucyxcbiAgICAgICAgICBmb3JtYXRcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gbG9hZHMgZXNidWlsZC1zdmVsdGUgd2l0aCBzdmVsdGUtcHJlcHJvY2VzczsgZXNidWlsZC1zdmVsdGUgY29tcGlsZXMgb25seSBpbnNpZGUgYSBsaXZlIGVzYnVpbGQgYnVpbGQuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVFc2J1aWxkU3ZlbHRlUGx1Z2luKGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuKTogUHJvbWlzZTxQbHVnaW4+IHtcbiAgY29uc3QgW2VzYnVpbGRTdmVsdGVNb2R1bGUsIHsgc3ZlbHRlUHJlcHJvY2VzcyB9XSA9IGF3YWl0IFByb21pc2UuYWxsKFtpbXBvcnQoJ2VzYnVpbGQtc3ZlbHRlJyksIGltcG9ydCgnc3ZlbHRlLXByZXByb2Nlc3MnKV0pO1xuICBjb25zdCBlc2J1aWxkU3ZlbHRlID0gZXh0cmFjdERlZmF1bHRFeHBvcnRJbnRlcm9wKGVzYnVpbGRTdmVsdGVNb2R1bGUuZGVmYXVsdCk7XG4gIHJldHVybiBlc2J1aWxkU3ZlbHRlKHtcbiAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICAgIGNzczogJ2luamVjdGVkJyxcbiAgICAgIGRldjogIWlzUHJvZHVjdGlvbkJ1aWxkXG4gICAgfSxcbiAgICBtb2R1bGVDb21waWxlck9wdGlvbnM6IHtcbiAgICAgIGRldjogIWlzUHJvZHVjdGlvbkJ1aWxkXG4gICAgfSxcbiAgICBwcmVwcm9jZXNzOiBzdmVsdGVQcmVwcm9jZXNzKClcbiAgfSk7XG59XG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG5mdW5jdGlvbiByZWdpc3Rlck1pc3NpbmdTdmVsdGVMb2FkZXIoYnVpbGQ6IFBsdWdpbkJ1aWxkKTogdm9pZCB7XG4gIGJ1aWxkLm9uTG9hZCh7IGZpbHRlcjogU1ZFTFRFX0ZJTFRFUiB9LCAoYXJndW1lbnRzXykgPT4gKHtcbiAgICBlcnJvcnM6IFt7XG4gICAgICB0ZXh0OiBgQ2Fubm90IGNvbXBpbGUgJHthcmd1bWVudHNfLnBhdGh9OiB0aGUgXFxgc3ZlbHRlXFxgIHBhY2thZ2UgaXMgbm90IGluc3RhbGxlZC4gSW5zdGFsbCBcXGBzdmVsdGVcXGAgaW4gdGhlIHByb2plY3QgdG8gYnVpbGQgU3ZlbHRlIGNvbXBvbmVudHMuYFxuICAgIH1dXG4gIH0pKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxTQUFTLG1DQUFtQztBQUU1QyxTQUFTLHVCQUF1QjtBQUVoQyxNQUFNLGlDQUFpQztBQUN2QyxNQUFNLHlCQUF5QixvQkFBSSxJQUFJLENBQUMsd0JBQXdCLGtCQUFrQixDQUFDO0FBQ25GLE1BQU0sZ0JBQWdCO0FBV2YsU0FBUyw0QkFBNEIsT0FBeUI7QUFDbkUsTUFBSSxFQUFFLGlCQUFpQixRQUFRO0FBQzdCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxPQUFRLE1BQTJDO0FBQ3pELFNBQU8sT0FBTyxTQUFTLFlBQVksdUJBQXVCLElBQUksSUFBSSxLQUFLLCtCQUErQixLQUFLLE1BQU0sT0FBTztBQUMxSDtBQVlPLFNBQVMsb0JBQW9CLG1CQUFvQztBQUN0RSxTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixNQUFNLE1BQU0sT0FBc0I7QUFDaEMsVUFBSTtBQUNKLFVBQUk7QUFDRix1QkFBZSxNQUFNLDBCQUEwQixpQkFBaUI7QUFBQSxNQUNsRSxTQUFTLE9BQU87QUFDZCxZQUFJLENBQUMsNEJBQTRCLEtBQUssR0FBRztBQUN2QyxnQkFBTTtBQUFBLFFBQ1I7QUFDQSxvQ0FBNEIsS0FBSztBQUNqQztBQUFBLE1BQ0Y7QUFFQSxZQUFNLGNBQWMsTUFBTSxnQkFBZ0I7QUFDMUMsWUFBTSxTQUFTLFlBQVksU0FBUyxXQUFXLFFBQVE7QUFDdkQsWUFBTSxhQUFhLE1BQU07QUFBQSxRQUN2QixHQUFHO0FBQUEsUUFDSCxnQkFBZ0I7QUFBQSxVQUNkLEdBQUcsTUFBTTtBQUFBLFVBQ1Q7QUFBQSxRQUNGO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFDRjtBQUdBLGVBQWUsMEJBQTBCLG1CQUE2QztBQUNwRixRQUFNLENBQUMscUJBQXFCLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxNQUFNLFFBQVEsSUFBSSxDQUFDLE9BQU8sZ0JBQWdCLEdBQUcsT0FBTyxtQkFBbUIsQ0FBQyxDQUFDO0FBQzdILFFBQU0sZ0JBQWdCLDRCQUE0QixvQkFBb0IsT0FBTztBQUM3RSxTQUFPLGNBQWM7QUFBQSxJQUNuQixpQkFBaUI7QUFBQSxNQUNmLEtBQUs7QUFBQSxNQUNMLEtBQUssQ0FBQztBQUFBLElBQ1I7QUFBQSxJQUNBLHVCQUF1QjtBQUFBLE1BQ3JCLEtBQUssQ0FBQztBQUFBLElBQ1I7QUFBQSxJQUNBLFlBQVksaUJBQWlCO0FBQUEsRUFDL0IsQ0FBQztBQUNIO0FBR0EsU0FBUyw0QkFBNEIsT0FBMEI7QUFDN0QsUUFBTSxPQUFPLEVBQUUsUUFBUSxjQUFjLEdBQUcsQ0FBQyxnQkFBZ0I7QUFBQSxJQUN2RCxRQUFRLENBQUM7QUFBQSxNQUNQLE1BQU0sa0JBQWtCLFdBQVcsSUFBSTtBQUFBLElBQ3pDLENBQUM7QUFBQSxFQUNILEVBQUU7QUFDSjsiLCJuYW1lcyI6W119
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9idW5kbGVycy9lc2J1aWxkLWltcGwvc3ZlbHRlLXdyYXBwZXItcGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTdmVsdGUgd3JhcHBlciBlc2J1aWxkIHBsdWdpbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbixcbiAgUGx1Z2luQnVpbGRcbn0gZnJvbSAnZXNidWlsZCc7XG5cbmltcG9ydCB7IGV4dHJhY3REZWZhdWx0RXhwb3J0SW50ZXJvcCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuXG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuLi8uLi9ucG0udHMnO1xuaW1wb3J0IHsgY3JlYXRlU3ZlbHRlUHJlcHJvY2Vzc29yIH0gZnJvbSAnLi9zdmVsdGUtcHJlcHJvY2Vzc29yLnRzJztcblxuY29uc3QgTUlTU0lOR19TVkVMVEVfTUVTU0FHRV9SRUdfRVhQID0gL0Nhbm5vdCBmaW5kICg/Om1vZHVsZXxwYWNrYWdlKSAnc3ZlbHRlKD86XFwvW14nXSopPycvO1xuY29uc3QgTU9EVUxFX05PVF9GT1VORF9DT0RFUyA9IG5ldyBTZXQoWydFUlJfTU9EVUxFX05PVF9GT1VORCcsICdNT0RVTEVfTk9UX0ZPVU5EJ10pO1xuY29uc3QgU1ZFTFRFX0ZJTFRFUiA9IC9cXC5zdmVsdGUkLztcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhbiBlcnJvciBpcyB0aGUgb25lIGxvYWRpbmcgYGVzYnVpbGQtc3ZlbHRlYCB0aHJvd3Mgd2hlbiB0aGUgYHN2ZWx0ZWAgcGFja2FnZSBpcyBub3QgaW5zdGFsbGVkLlxuICpcbiAqIGBlc2J1aWxkLXN2ZWx0ZWAgaW1wb3J0cyBgc3ZlbHRlL2NvbXBpbGVyYCB3aGVuIGl0IGxvYWRzLCBhbmQgcGFja2FnZSBtYW5hZ2VycyB0aGF0IGRvIG5vdCBpbnN0YWxsIHBlZXJzIChZYXJuIDEpXG4gKiBsZWF2ZSBgc3ZlbHRlYCBvdXQgb2YgYSBwcm9qZWN0IHRoYXQgaGFzIG5vIFN2ZWx0ZSBjb21wb25lbnRzLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGVycm9yIHNheXMgdGhhdCB0aGUgYHN2ZWx0ZWAgcGFja2FnZSBjYW5ub3QgYmUgZm91bmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc01pc3NpbmdTdmVsdGVQYWNrYWdlRXJyb3IoZXJyb3I6IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjb2RlID0gKGVycm9yIGFzIFBhcnRpYWw8UmVjb3JkPCdjb2RlJywgdW5rbm93bj4+KS5jb2RlO1xuICByZXR1cm4gdHlwZW9mIGNvZGUgPT09ICdzdHJpbmcnICYmIE1PRFVMRV9OT1RfRk9VTkRfQ09ERVMuaGFzKGNvZGUpICYmIE1JU1NJTkdfU1ZFTFRFX01FU1NBR0VfUkVHX0VYUC50ZXN0KGVycm9yLm1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIFdyYXBzIHRoZSBlc2J1aWxkLXN2ZWx0ZSBwbHVnaW4gdG8gZW5zdXJlIHRoYXQgdGhlIGNvcnJlY3QgZm9ybWF0IGlzIHVzZWQuXG4gKlxuICogYGVzYnVpbGQtc3ZlbHRlYCBpcyBsb2FkZWQgd2hlbiB0aGUgcGx1Z2luIGlzIHNldCB1cCwgbm90IHdoZW4gdGhpcyBtb2R1bGUgaXMgaW1wb3J0ZWQuIFdoZW5cbiAqIHRoZSBgc3ZlbHRlYCBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGEgYnVpbGQgd2l0aCBubyBgLnN2ZWx0ZWAgZmlsZSBzdWNjZWVkcywgYW5kIGEgYnVpbGQgdGhhdCByZWFjaGVzIG9uZSBmYWlsc1xuICogd2l0aCBhbiBlcnJvciB0aGF0IG5hbWVzIHRoZSBtaXNzaW5nIHBhY2thZ2UuXG4gKlxuICogQHBhcmFtIGlzUHJvZHVjdGlvbkJ1aWxkIC0gV2hldGhlciB0aGUgYnVpbGQgaXMgYSBwcm9kdWN0aW9uIGJ1aWxkLlxuICogQHJldHVybnMgVGhlIGVzYnVpbGQgcGx1Z2luLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3ZlbHRlV3JhcHBlclBsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZDogYm9vbGVhbik6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3N2ZWx0ZS13cmFwcGVyJyxcbiAgICBhc3luYyBzZXR1cChidWlsZCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgbGV0IHN2ZWx0ZVBsdWdpbjogUGx1Z2luO1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3ZlbHRlUGx1Z2luID0gYXdhaXQgY3JlYXRlRXNidWlsZFN2ZWx0ZVBsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIWlzTWlzc2luZ1N2ZWx0ZVBhY2thZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZWdpc3Rlck1pc3NpbmdTdmVsdGVMb2FkZXIoYnVpbGQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG4gICAgICBjb25zdCBmb3JtYXQgPSBwYWNrYWdlSnNvbi50eXBlID09PSAnbW9kdWxlJyA/ICdlc20nIDogJ2Nqcyc7XG4gICAgICBhd2FpdCBzdmVsdGVQbHVnaW4uc2V0dXAoe1xuICAgICAgICAuLi5idWlsZCxcbiAgICAgICAgaW5pdGlhbE9wdGlvbnM6IHtcbiAgICAgICAgICAuLi5idWlsZC5pbml0aWFsT3B0aW9ucyxcbiAgICAgICAgICBmb3JtYXRcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZC1zdmVsdGUgY29tcGlsZXMgb25seSBpbnNpZGUgYSBsaXZlIGVzYnVpbGQgYnVpbGQ7IHN2ZWx0ZS13cmFwcGVyLXBsdWdpbi5pbnRlZ3JhdGlvbi50ZXN0LnRzIHJ1bnMgb25lLiAqL1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlRXNidWlsZFN2ZWx0ZVBsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZDogYm9vbGVhbik6IFByb21pc2U8UGx1Z2luPiB7XG4gIGNvbnN0IGVzYnVpbGRTdmVsdGVNb2R1bGUgPSBhd2FpdCBpbXBvcnQoJ2VzYnVpbGQtc3ZlbHRlJyk7XG4gIGNvbnN0IGVzYnVpbGRTdmVsdGUgPSBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AoZXNidWlsZFN2ZWx0ZU1vZHVsZS5kZWZhdWx0KTtcbiAgcmV0dXJuIGVzYnVpbGRTdmVsdGUoe1xuICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgY3NzOiAnaW5qZWN0ZWQnLFxuICAgICAgZGV2OiAhaXNQcm9kdWN0aW9uQnVpbGRcbiAgICB9LFxuICAgIG1vZHVsZUNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgZGV2OiAhaXNQcm9kdWN0aW9uQnVpbGRcbiAgICB9LFxuICAgIHByZXByb2Nlc3M6IGNyZWF0ZVN2ZWx0ZVByZXByb2Nlc3NvcigpXG4gIH0pO1xufVxuLyogdjggaWdub3JlIHN0b3AgKi9cblxuZnVuY3Rpb24gcmVnaXN0ZXJNaXNzaW5nU3ZlbHRlTG9hZGVyKGJ1aWxkOiBQbHVnaW5CdWlsZCk6IHZvaWQge1xuICBidWlsZC5vbkxvYWQoeyBmaWx0ZXI6IFNWRUxURV9GSUxURVIgfSwgKGFyZ3VtZW50c18pID0+ICh7XG4gICAgZXJyb3JzOiBbe1xuICAgICAgdGV4dDogYENhbm5vdCBjb21waWxlICR7YXJndW1lbnRzXy5wYXRofTogdGhlIFxcYHN2ZWx0ZVxcYCBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQuIEluc3RhbGwgXFxgc3ZlbHRlXFxgIGluIHRoZSBwcm9qZWN0IHRvIGJ1aWxkIFN2ZWx0ZSBjb21wb25lbnRzLmBcbiAgICB9XVxuICB9KSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0EsU0FBUyxtQ0FBbUM7QUFFNUMsU0FBUyx1QkFBdUI7QUFDaEMsU0FBUyxnQ0FBZ0M7QUFFekMsTUFBTSxpQ0FBaUM7QUFDdkMsTUFBTSx5QkFBeUIsb0JBQUksSUFBSSxDQUFDLHdCQUF3QixrQkFBa0IsQ0FBQztBQUNuRixNQUFNLGdCQUFnQjtBQVdmLFNBQVMsNEJBQTRCLE9BQXlCO0FBQ25FLE1BQUksRUFBRSxpQkFBaUIsUUFBUTtBQUM3QixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sT0FBUSxNQUEyQztBQUN6RCxTQUFPLE9BQU8sU0FBUyxZQUFZLHVCQUF1QixJQUFJLElBQUksS0FBSywrQkFBK0IsS0FBSyxNQUFNLE9BQU87QUFDMUg7QUFZTyxTQUFTLG9CQUFvQixtQkFBb0M7QUFDdEUsU0FBTztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTSxNQUFNLE9BQXNCO0FBQ2hDLFVBQUk7QUFDSixVQUFJO0FBQ0YsdUJBQWUsTUFBTSwwQkFBMEIsaUJBQWlCO0FBQUEsTUFDbEUsU0FBUyxPQUFPO0FBQ2QsWUFBSSxDQUFDLDRCQUE0QixLQUFLLEdBQUc7QUFDdkMsZ0JBQU07QUFBQSxRQUNSO0FBQ0Esb0NBQTRCLEtBQUs7QUFDakM7QUFBQSxNQUNGO0FBRUEsWUFBTSxjQUFjLE1BQU0sZ0JBQWdCO0FBQzFDLFlBQU0sU0FBUyxZQUFZLFNBQVMsV0FBVyxRQUFRO0FBQ3ZELFlBQU0sYUFBYSxNQUFNO0FBQUEsUUFDdkIsR0FBRztBQUFBLFFBQ0gsZ0JBQWdCO0FBQUEsVUFDZCxHQUFHLE1BQU07QUFBQSxVQUNUO0FBQUEsUUFDRjtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0Y7QUFHQSxlQUFlLDBCQUEwQixtQkFBNkM7QUFDcEYsUUFBTSxzQkFBc0IsTUFBTSxPQUFPLGdCQUFnQjtBQUN6RCxRQUFNLGdCQUFnQiw0QkFBNEIsb0JBQW9CLE9BQU87QUFDN0UsU0FBTyxjQUFjO0FBQUEsSUFDbkIsaUJBQWlCO0FBQUEsTUFDZixLQUFLO0FBQUEsTUFDTCxLQUFLLENBQUM7QUFBQSxJQUNSO0FBQUEsSUFDQSx1QkFBdUI7QUFBQSxNQUNyQixLQUFLLENBQUM7QUFBQSxJQUNSO0FBQUEsSUFDQSxZQUFZLHlCQUF5QjtBQUFBLEVBQ3ZDLENBQUM7QUFDSDtBQUdBLFNBQVMsNEJBQTRCLE9BQTBCO0FBQzdELFFBQU0sT0FBTyxFQUFFLFFBQVEsY0FBYyxHQUFHLENBQUMsZ0JBQWdCO0FBQUEsSUFDdkQsUUFBUSxDQUFDO0FBQUEsTUFDUCxNQUFNLGtCQUFrQixXQUFXLElBQUk7QUFBQSxJQUN6QyxDQUFDO0FBQUEsRUFDSCxFQUFFO0FBQ0o7IiwibmFtZXMiOltdfQ==