@dbx-tools/core 0.9.153 → 0.9.157

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/lib/src/bundle.js CHANGED
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import { opendir, realpath, stat } from "node:fs/promises";
12
12
  import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
13
- import { json, object, stringUtils } from "@dbx-tools/shared-core";
13
+ import { parseRecord, isRecord, optional, trimToNull } from "@dbx-tools/shared-core";
14
14
  import { spawn } from "./exec.js";
15
15
  import { resolveWorkingDirectory, root } from "./project-utils.js";
16
16
  const BUNDLE_FILE_NAMES = new Set(["databricks.yml", "databricks.yaml"]);
@@ -45,15 +45,15 @@ export async function* appResources(projectBoundary, cwd, profile) {
45
45
  for await (const bundlePath of bundlePaths(boundary, startDirectory)) {
46
46
  const validated = await validateBundle(bundlePath, profile);
47
47
  for (const [key, config] of Object.entries(bundleApps(validated.data))) {
48
- if (!object.isRecord(config))
48
+ if (!isRecord(config))
49
49
  continue;
50
50
  yield {
51
51
  bundlePath,
52
52
  key,
53
53
  config,
54
54
  data: validated.data,
55
- ...object.optional("sourceCodePath", resolveSourceCodePath(bundlePath, config.source_code_path)),
56
- ...object.optional("bundleFailure", validated.bundleFailure),
55
+ ...optional("sourceCodePath", resolveSourceCodePath(bundlePath, config.source_code_path)),
56
+ ...optional("bundleFailure", validated.bundleFailure),
57
57
  };
58
58
  }
59
59
  }
@@ -140,21 +140,21 @@ async function validateBundle(bundlePath, profile) {
140
140
  stdout: "capture",
141
141
  stderr: "capture",
142
142
  });
143
- const detail = stringUtils.trimToNull(result.stderr) ?? stringUtils.trimToNull(result.stdout);
143
+ const detail = trimToNull(result.stderr) ?? trimToNull(result.stdout);
144
144
  const bundleFailure = result.exitCode === 0
145
145
  ? undefined
146
146
  : new Error(`databricks bundle validate failed for ${bundlePath} (exit ${result.exitCode})${detail ? `: ${detail}` : ""}`);
147
- const parsed = json.parseRecord(result.stdout);
147
+ const parsed = parseRecord(result.stdout);
148
148
  if (!parsed) {
149
149
  if (bundleFailure)
150
150
  return { data: {}, bundleFailure };
151
151
  throw new Error(`Databricks CLI returned invalid bundle JSON for ${bundlePath}`);
152
152
  }
153
- return { data: parsed, ...object.optional("bundleFailure", bundleFailure) };
153
+ return { data: parsed, ...optional("bundleFailure", bundleFailure) };
154
154
  }
155
155
  function bundleApps(bundle) {
156
- const resources = object.isRecord(bundle.resources) ? bundle.resources : undefined;
157
- return object.isRecord(resources?.apps) ? resources.apps : {};
156
+ const resources = isRecord(bundle.resources) ? bundle.resources : undefined;
157
+ return isRecord(resources?.apps) ? resources.apps : {};
158
158
  }
159
159
  async function isFile(path) {
160
160
  try {
@@ -178,4 +178,4 @@ async function main() {
178
178
  }
179
179
  if (import.meta.main)
180
180
  void main();
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1bmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbkUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQztBQUN6RSxNQUFNLG1CQUFtQixHQUFHO0lBQzFCLE9BQU87SUFDUCxjQUFjO0lBQ2QsTUFBTTtJQUNOLE9BQU87SUFDUCxLQUFLO0lBQ0wsUUFBUTtJQUNSLEtBQUs7SUFDTCxRQUFRO0NBQ0EsQ0FBQztBQWlCWDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FDakMsZUFBdUIsRUFDdkIsR0FBWSxFQUNaLE9BQWdCO0lBRWhCLE1BQU0sUUFBUSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekQsTUFBTSxjQUFjLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxRQUFRLENB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QUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsU0FBaUIsRUFBRSxNQUFjO0lBQ3hELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDekMsT0FBTyxJQUFJLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDN0YsQ0FBQztBQUVELEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsSUFBSSxDQUFDLElBQUk7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDMUQsSUFBSSxLQUFLLEVBQUUsTUFBTSxRQUFRLElBQUksWUFBWSxDQUFDLElBQUksRUFBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDekQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0FBQ0gsQ0FBQztBQUVELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJO0lBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RyZWFtaW5nIGRpc2NvdmVyeSBvZiBEYXRhYnJpY2tzIGJ1bmRsZSBBcHAgcmVzb3VyY2VzLlxuICpcbiAqIEJ1bmRsZSBmaWxlcyBhcmUgZm91bmQgd2l0aCBuYXRpdmUgZmlsZXN5c3RlbSB0cmF2ZXJzYWwgaW5zaWRlIGEgaGFyZCBwcm9qZWN0XG4gKiBib3VuZGFyeS4gRWFjaCBjYW5kaWRhdGUgaXMgcmVzb2x2ZWQgdGhyb3VnaCBgZGF0YWJyaWNrcyBidW5kbGUgdmFsaWRhdGVcbiAqIC0tb3V0cHV0IGpzb25gIHNvIGluY2x1ZGVzLCB0YXJnZXRzLCB2YXJpYWJsZXMsIGFuZCBBcHAgY29uZmlndXJhdGlvbiBmb2xsb3dcbiAqIHRoZSBEYXRhYnJpY2tzIENMSSdzIHNlbWFudGljcy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgb3BlbmRpciwgcmVhbHBhdGgsIHN0YXQgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgZGlybmFtZSwgaXNBYnNvbHV0ZSwgam9pbiwgcmVsYXRpdmUsIHJlc29sdmUsIHNlcCB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGpzb24sIG9iamVjdCwgc3RyaW5nVXRpbHMgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgc3Bhd24gfSBmcm9tIFwiLi9leGVjLnRzXCI7XG5pbXBvcnQgeyByZXNvbHZlV29ya2luZ0RpcmVjdG9yeSwgcm9vdCB9IGZyb20gXCIuL3Byb2plY3QtdXRpbHMudHNcIjtcblxuY29uc3QgQlVORExFX0ZJTEVfTkFNRVMgPSBuZXcgU2V0KFtcImRhdGFicmlja3MueW1sXCIsIFwiZGF0YWJyaWNrcy55YW1sXCJdKTtcbmNvbnN0IElHTk9SRURfRElSRUNUT1JJRVMgPSBbXG4gIC9eXFwuLiovLFxuICBcIm5vZGVfbW9kdWxlc1wiLFxuICBcImRpc3RcIixcbiAgXCJidWlsZFwiLFxuICBcIm91dFwiLFxuICBcInRhcmdldFwiLFxuICBcInRtcFwiLFxuICBcInZlbmRvclwiLFxuXSBhcyBjb25zdDtcblxudHlwZSBBcHBSZXNvdXJjZSA9IHtcbiAgLyoqIEFic29sdXRlIHBhdGggdG8gdGhlIGJ1bmRsZSdzIHJvb3QgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBidW5kbGVQYXRoOiBzdHJpbmc7XG4gIC8qKiBSZXNvdXJjZSBrZXkgdW5kZXIgYHJlc291cmNlcy5hcHBzYC4gKi9cbiAga2V5OiBzdHJpbmc7XG4gIC8qKiBBYnNvbHV0ZSBzb3VyY2UgZGlyZWN0b3J5IHJlc29sdmVkIGZyb20gYHNvdXJjZV9jb2RlX3BhdGhgLiAqL1xuICBzb3VyY2VDb2RlUGF0aD86IHN0cmluZztcbiAgLyoqIEFwcCByZXNvdXJjZSByZXR1cm5lZCBieSBgZGF0YWJyaWNrcyBidW5kbGUgdmFsaWRhdGVgLiAqL1xuICBjb25maWc6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKiogQ29tcGxldGUgcmVzb2x2ZWQgYnVuZGxlIHJldHVybmVkIGJ5IGBkYXRhYnJpY2tzIGJ1bmRsZSB2YWxpZGF0ZWAuICovXG4gIGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKiogVmFsaWRhdGlvbiBmYWlsdXJlIGFzc29jaWF0ZWQgd2l0aCBwYXJ0aWFsIGJ1bmRsZSBvdXRwdXQuICovXG4gIGJ1bmRsZUZhaWx1cmU/OiBFcnJvcjtcbn07XG5cbi8qKlxuICogU3RyZWFtIGV2ZXJ5IEFwcCByZXNvdXJjZSBpbiBidW5kbGVzIHVuZGVyIGBwcm9qZWN0Qm91bmRhcnlgLlxuICpcbiAqIGBjd2RgIGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBhbmQgbWF5IG5hbWUgYSBmaWxlIG9yIGRpcmVjdG9yeS5cbiAqIEJ1bmRsZSBmaWxlcyBpbiBpdHMgYW5jZXN0b3IgY2hhaW4gYXJlIGNoZWNrZWQgYmVmb3JlIHRoZSByZXN0IG9mIHRoZSBwcm9qZWN0XG4gKiBib3VuZGFyeS4gTm8gQXBwIFlBTUwgZmlsZSBpcyByZXF1aXJlZC5cbiAqXG4gKiBBIG1pc3Npbmcgb3IgaW52YWxpZCBib3VuZGFyeS9jd2QsIG9yIGEgY3dkIG91dHNpZGUgdGhlIGJvdW5kYXJ5LCB5aWVsZHNcbiAqIG5vdGhpbmcuIEEgbm9uLXplcm8gdmFsaWRhdGlvbiB3aXRoIHBhcnRpYWwgSlNPTiBhdHRhY2hlc1xuICogYGJ1bmRsZUZhaWx1cmVgIHRvIGVhY2ggQXBwIHJlc291cmNlIHBhcnNlZCBmcm9tIHRoYXQgYnVuZGxlLiBBIGZhaWxlZFxuICogdmFsaWRhdGlvbiB3aXRoIG5vIEFwcCByZXNvdXJjZXMgeWllbGRzIG5vdGhpbmcuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogYXBwUmVzb3VyY2VzKFxuICBwcm9qZWN0Qm91bmRhcnk6IHN0cmluZyxcbiAgY3dkPzogc3RyaW5nLFxuICBwcm9maWxlPzogc3RyaW5nLFxuKTogQXN5bmNHZW5lcmF0b3I8QXBwUmVzb3VyY2UsIHZvaWQsIHZvaWQ+IHtcbiAgY29uc3QgYm91bmRhcnkgPSBhd2FpdCByZXNvbHZlRGlyZWN0b3J5KHByb2plY3RCb3VuZGFyeSk7XG4gIGNvbnN0IHN0YXJ0RGlyZWN0b3J5ID0gYXdhaXQgcmVzb2x2ZVN0YXJ0RGlyZWN0b3J5KGN3ZCk7XG4gIGlmICghYm91bmRhcnkgfHwgIXN0YXJ0RGlyZWN0b3J5IHx8ICFpc1dpdGhpbk9yRXF1YWwoc3RhcnREaXJlY3RvcnksIGJvdW5kYXJ5KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZvciBhd2FpdCAoY29uc3QgYnVuZGxlUGF0aCBvZiBidW5kbGVQYXRocyhib3VuZGFyeSwgc3RhcnREaXJlY3RvcnkpKSB7XG4gICAgY29uc3QgdmFsaWRhdGVkID0gYXdhaXQgdmFsaWRhdGVCdW5kbGUoYnVuZGxlUGF0aCwgcHJvZmlsZSk7XG4gICAgZm9yIChjb25zdCBba2V5LCBjb25maWddIG9mIE9iamVjdC5lbnRyaWVzKGJ1bmRsZUFwcHModmFsaWRhdGVkLmRhdGEpKSkge1xuICAgICAgaWYgKCFvYmplY3QuaXNSZWNvcmQoY29uZmlnKSkgY29udGludWU7XG4gICAgICB5aWVsZCB7XG4gICAgICAgIGJ1bmRsZVBhdGgsXG4gICAgICAgIGtleSxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBkYXRhOiB2YWxpZGF0ZWQuZGF0YSxcbiAgICAgICAgLi4ub2JqZWN0Lm9wdGlvbmFsKFxuICAgICAgICAgIFwic291cmNlQ29kZVBhdGhcIixcbiAgICAgICAgICByZXNvbHZlU291cmNlQ29kZVBhdGgoYnVuZGxlUGF0aCwgY29uZmlnLnNvdXJjZV9jb2RlX3BhdGgpLFxuICAgICAgICApLFxuICAgICAgICAuLi5vYmplY3Qub3B0aW9uYWwoXCJidW5kbGVGYWlsdXJlXCIsIHZhbGlkYXRlZC5idW5kbGVGYWlsdXJlKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVEaXJlY3RvcnkodmFsdWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBhd2FpdCByZWFscGF0aChyZXNvbHZlKHZhbHVlKSk7XG4gICAgcmV0dXJuIChhd2FpdCBzdGF0KHJlc29sdmVkKSkuaXNEaXJlY3RvcnkoKSA/IHJlc29sdmVkIDogdW5kZWZpbmVkO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVTdGFydERpcmVjdG9yeShjd2Q/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgcmVhbHBhdGgocmVzb2x2ZVdvcmtpbmdEaXJlY3RvcnkoY3dkKSk7XG4gICAgY29uc3QgaW5mbyA9IGF3YWl0IHN0YXQocmVzb2x2ZWQpO1xuICAgIGlmIChpbmZvLmlzRGlyZWN0b3J5KCkpIHJldHVybiByZXNvbHZlZDtcbiAgICBpZiAoaW5mby5pc0ZpbGUoKSkgcmV0dXJuIGRpcm5hbWUocmVzb2x2ZWQpO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVNvdXJjZUNvZGVQYXRoKGJ1bmRsZVBhdGg6IHN0cmluZywgc291cmNlQ29kZVBhdGg6IHVua25vd24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIHNvdXJjZUNvZGVQYXRoICE9PSBcInN0cmluZ1wiKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gaXNBYnNvbHV0ZShzb3VyY2VDb2RlUGF0aCkgPyBzb3VyY2VDb2RlUGF0aCA6IHJlc29sdmUoZGlybmFtZShidW5kbGVQYXRoKSwgc291cmNlQ29kZVBhdGgpO1xufVxuXG5hc3luYyBmdW5jdGlvbiogYnVuZGxlUGF0aHMoXG4gIGJvdW5kYXJ5OiBzdHJpbmcsXG4gIHN0YXJ0RGlyZWN0b3J5OiBzdHJpbmcsXG4pOiBBc3luY0dlbmVyYXRvcjxzdHJpbmcsIHZvaWQsIHZvaWQ+IHtcbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBsZXQgY3VycmVudCA9IHN0YXJ0RGlyZWN0b3J5O1xuICB3aGlsZSAoaXNXaXRoaW5PckVxdWFsKGN1cnJlbnQsIGJvdW5kYXJ5KSkge1xuICAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgQlVORExFX0ZJTEVfTkFNRVMpIHtcbiAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9IGpvaW4oY3VycmVudCwgZmlsZW5hbWUpO1xuICAgICAgaWYgKCEoYXdhaXQgaXNGaWxlKGNhbmRpZGF0ZSkpKSBjb250aW51ZTtcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgcmVhbHBhdGgoY2FuZGlkYXRlKTtcbiAgICAgIGlmIChzZWVuLmhhcyhyZXNvbHZlZCkpIGNvbnRpbnVlO1xuICAgICAgc2Vlbi5hZGQocmVzb2x2ZWQpO1xuICAgICAgeWllbGQgcmVzb2x2ZWQ7XG4gICAgfVxuICAgIGlmIChjdXJyZW50ID09PSBib3VuZGFyeSkgYnJlYWs7XG4gICAgY3VycmVudCA9IGRpcm5hbWUoY3VycmVudCk7XG4gIH1cblxuICB5aWVsZCogZGVzY2VuZEJ1bmRsZVBhdGhzKGJvdW5kYXJ5LCBzZWVuKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24qIGRlc2NlbmRCdW5kbGVQYXRocyhcbiAgZGlyZWN0b3J5OiBzdHJpbmcsXG4gIHNlZW46IFNldDxzdHJpbmc+LFxuKTogQXN5bmNHZW5lcmF0b3I8c3RyaW5nLCB2b2lkLCB2b2lkPiB7XG4gIGNvbnN0IGVudHJpZXMgPSBhd2FpdCBvcGVuZGlyKGRpcmVjdG9yeSk7XG4gIGZvciBhd2FpdCAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgIGNvbnN0IGNhbmRpZGF0ZSA9IGpvaW4oZGlyZWN0b3J5LCBlbnRyeS5uYW1lKTtcbiAgICBpZiAoZW50cnkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgY29uc3QgaWdub3JlZCA9IElHTk9SRURfRElSRUNUT1JJRVMuc29tZSgoaWdub3JlKSA9PiB7XG4gICAgICAgIGlmIChpZ25vcmUgaW5zdGFuY2VvZiBSZWdFeHApIHJldHVybiBpZ25vcmUudGVzdChlbnRyeS5uYW1lKTtcbiAgICAgICAgcmV0dXJuIGlnbm9yZSA9PT0gZW50cnkubmFtZTtcbiAgICAgIH0pO1xuICAgICAgaWYgKCFpZ25vcmVkKSB7XG4gICAgICAgIHlpZWxkKiBkZXNjZW5kQnVuZGxlUGF0aHMoY2FuZGlkYXRlLCBzZWVuKTtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoIWVudHJ5LmlzRmlsZSgpIHx8ICFCVU5ETEVfRklMRV9OQU1FUy5oYXMoZW50cnkubmFtZSkpIGNvbnRpbnVlO1xuICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgcmVhbHBhdGgoY2FuZGlkYXRlKTtcbiAgICBpZiAoc2Vlbi5oYXMocmVzb2x2ZWQpKSBjb250aW51ZTtcbiAgICBzZWVuLmFkZChyZXNvbHZlZCk7XG4gICAgeWllbGQgcmVzb2x2ZWQ7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVCdW5kbGUoXG4gIGJ1bmRsZVBhdGg6IHN0cmluZyxcbiAgcHJvZmlsZT86IHN0cmluZyxcbik6IFByb21pc2U8UGljazxBcHBSZXNvdXJjZSwgXCJkYXRhXCIgfCBcImJ1bmRsZUZhaWx1cmVcIj4+IHtcbiAgY29uc3QgZW52aXJvbm1lbnQgPSB7IC4uLnByb2Nlc3MuZW52IH07XG4gIGRlbGV0ZSBlbnZpcm9ubWVudC5EQVRBQlJJQ0tTX0NPTkZJR19QUk9GSUxFO1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBzcGF3bihcbiAgICBcImRhdGFicmlja3NcIixcbiAgICBbXCJidW5kbGVcIiwgXCJ2YWxpZGF0ZVwiLCBcIi0tb3V0cHV0XCIsIFwianNvblwiLCAuLi4ocHJvZmlsZSA/IFtcIi0tcHJvZmlsZVwiLCBwcm9maWxlXSA6IFtdKV0sXG4gICAge1xuICAgICAgY3dkOiBkaXJuYW1lKGJ1bmRsZVBhdGgpLFxuICAgICAgZW52OiBlbnZpcm9ubWVudCxcbiAgICAgIHN0ZGluOiBcImlnbm9yZVwiLFxuICAgICAgc3Rkb3V0OiBcImNhcHR1cmVcIixcbiAgICAgIHN0ZGVycjogXCJjYXB0dXJlXCIsXG4gICAgfSxcbiAgKTtcbiAgY29uc3QgZGV0YWlsID0gc3RyaW5nVXRpbHMudHJpbVRvTnVsbChyZXN1bHQuc3RkZXJyKSA/PyBzdHJpbmdVdGlscy50cmltVG9OdWxsKHJlc3VsdC5zdGRvdXQpO1xuICBjb25zdCBidW5kbGVGYWlsdXJlID1cbiAgICByZXN1bHQuZXhpdENvZGUgPT09IDBcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IG5ldyBFcnJvcihcbiAgICAgICAgICBgZGF0YWJyaWNrcyBidW5kbGUgdmFsaWRhdGUgZmFpbGVkIGZvciAke2J1bmRsZVBhdGh9IChleGl0ICR7cmVzdWx0LmV4aXRDb2RlfSkke1xuICAgICAgICAgICAgZGV0YWlsID8gYDogJHtkZXRhaWx9YCA6IFwiXCJcbiAgICAgICAgICB9YCxcbiAgICAgICAgKTtcblxuICBjb25zdCBwYXJzZWQgPSBqc29uLnBhcnNlUmVjb3JkKHJlc3VsdC5zdGRvdXQpO1xuICBpZiAoIXBhcnNlZCkge1xuICAgIGlmIChidW5kbGVGYWlsdXJlKSByZXR1cm4geyBkYXRhOiB7fSwgYnVuZGxlRmFpbHVyZSB9O1xuICAgIHRocm93IG5ldyBFcnJvcihgRGF0YWJyaWNrcyBDTEkgcmV0dXJuZWQgaW52YWxpZCBidW5kbGUgSlNPTiBmb3IgJHtidW5kbGVQYXRofWApO1xuICB9XG4gIHJldHVybiB7IGRhdGE6IHBhcnNlZCwgLi4ub2JqZWN0Lm9wdGlvbmFsKFwiYnVuZGxlRmFpbHVyZVwiLCBidW5kbGVGYWlsdXJlKSB9O1xufVxuXG5mdW5jdGlvbiBidW5kbGVBcHBzKGJ1bmRsZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIGNvbnN0IHJlc291cmNlcyA9IG9iamVjdC5pc1JlY29yZChidW5kbGUucmVzb3VyY2VzKSA/IGJ1bmRsZS5yZXNvdXJjZXMgOiB1bmRlZmluZWQ7XG4gIHJldHVybiBvYmplY3QuaXNSZWNvcmQocmVzb3VyY2VzPy5hcHBzKSA/IHJlc291cmNlcy5hcHBzIDoge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGlzRmlsZShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gKGF3YWl0IHN0YXQocGF0aCkpLmlzRmlsZSgpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNXaXRoaW5PckVxdWFsKGNhbmRpZGF0ZTogc3RyaW5nLCBwYXJlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBwYXRoID0gcmVsYXRpdmUocGFyZW50LCBjYW5kaWRhdGUpO1xuICByZXR1cm4gcGF0aCA9PT0gXCJcIiB8fCAocGF0aCAhPT0gXCIuLlwiICYmICFwYXRoLnN0YXJ0c1dpdGgoYC4uJHtzZXB9YCkgJiYgIWlzQWJzb2x1dGUocGF0aCkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBtYWluKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwYXRoID0gcHJvY2Vzcy5hcmd2WzJdO1xuICBpZiAoIXBhdGgpIHRocm93IG5ldyBFcnJvcihcIlVzYWdlOiBidW4gYnVuZGxlLnRzIDxwYXRoPlwiKTtcbiAgZm9yIGF3YWl0IChjb25zdCByZXNvdXJjZSBvZiBhcHBSZXNvdXJjZXMocm9vdCgpISwgcGF0aCkpIHtcbiAgICBjb25zb2xlLmRpcihyZXNvdXJjZSwgeyBkZXB0aDogbnVsbCB9KTtcbiAgfVxufVxuXG5pZiAoaW1wb3J0Lm1ldGEubWFpbikgdm9pZCBtYWluKCk7XG4iXX0=
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1bmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5FLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7QUFDekUsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixPQUFPO0lBQ1AsY0FBYztJQUNkLE1BQU07SUFDTixPQUFPO0lBQ1AsS0FBSztJQUNMLFFBQVE7SUFDUixLQUFLO0lBQ0wsUUFBUTtDQUNBLENBQUM7QUFpQlg7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQ2pDLGVBQXVCLEVBQ3ZCLEdBQVksRUFDWixPQUFnQjtJQUVoQixNQUFNLFFBQVEsR0FBRyxNQUFNLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sY0FBYyxHQUFHLE1BQU0scUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEQsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVB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QixFQUFFLE1BQWM7SUFDeEQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6QyxPQUFPLElBQUksS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM3RixDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixJQUFJLENBQUMsSUFBSTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUMxRCxJQUFJLEtBQUssRUFBRSxNQUFNLFFBQVEsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6RCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7QUFDSCxDQUFDO0FBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUk7SUFBRSxLQUFLLElBQUksRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdHJlYW1pbmcgZGlzY292ZXJ5IG9mIERhdGFicmlja3MgYnVuZGxlIEFwcCByZXNvdXJjZXMuXG4gKlxuICogQnVuZGxlIGZpbGVzIGFyZSBmb3VuZCB3aXRoIG5hdGl2ZSBmaWxlc3lzdGVtIHRyYXZlcnNhbCBpbnNpZGUgYSBoYXJkIHByb2plY3RcbiAqIGJvdW5kYXJ5LiBFYWNoIGNhbmRpZGF0ZSBpcyByZXNvbHZlZCB0aHJvdWdoIGBkYXRhYnJpY2tzIGJ1bmRsZSB2YWxpZGF0ZVxuICogLS1vdXRwdXQganNvbmAgc28gaW5jbHVkZXMsIHRhcmdldHMsIHZhcmlhYmxlcywgYW5kIEFwcCBjb25maWd1cmF0aW9uIGZvbGxvd1xuICogdGhlIERhdGFicmlja3MgQ0xJJ3Mgc2VtYW50aWNzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBvcGVuZGlyLCByZWFscGF0aCwgc3RhdCB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBkaXJuYW1lLCBpc0Fic29sdXRlLCBqb2luLCByZWxhdGl2ZSwgcmVzb2x2ZSwgc2VwIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgcGFyc2VSZWNvcmQsIGlzUmVjb3JkLCBvcHRpb25hbCwgdHJpbVRvTnVsbCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBzcGF3biB9IGZyb20gXCIuL2V4ZWMudHNcIjtcbmltcG9ydCB7IHJlc29sdmVXb3JraW5nRGlyZWN0b3J5LCByb290IH0gZnJvbSBcIi4vcHJvamVjdC11dGlscy50c1wiO1xuXG5jb25zdCBCVU5ETEVfRklMRV9OQU1FUyA9IG5ldyBTZXQoW1wiZGF0YWJyaWNrcy55bWxcIiwgXCJkYXRhYnJpY2tzLnlhbWxcIl0pO1xuY29uc3QgSUdOT1JFRF9ESVJFQ1RPUklFUyA9IFtcbiAgL15cXC4uKi8sXG4gIFwibm9kZV9tb2R1bGVzXCIsXG4gIFwiZGlzdFwiLFxuICBcImJ1aWxkXCIsXG4gIFwib3V0XCIsXG4gIFwidGFyZ2V0XCIsXG4gIFwidG1wXCIsXG4gIFwidmVuZG9yXCIsXG5dIGFzIGNvbnN0O1xuXG50eXBlIEFwcFJlc291cmNlID0ge1xuICAvKiogQWJzb2x1dGUgcGF0aCB0byB0aGUgYnVuZGxlJ3Mgcm9vdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIGJ1bmRsZVBhdGg6IHN0cmluZztcbiAgLyoqIFJlc291cmNlIGtleSB1bmRlciBgcmVzb3VyY2VzLmFwcHNgLiAqL1xuICBrZXk6IHN0cmluZztcbiAgLyoqIEFic29sdXRlIHNvdXJjZSBkaXJlY3RvcnkgcmVzb2x2ZWQgZnJvbSBgc291cmNlX2NvZGVfcGF0aGAuICovXG4gIHNvdXJjZUNvZGVQYXRoPzogc3RyaW5nO1xuICAvKiogQXBwIHJlc291cmNlIHJldHVybmVkIGJ5IGBkYXRhYnJpY2tzIGJ1bmRsZSB2YWxpZGF0ZWAuICovXG4gIGNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKiBDb21wbGV0ZSByZXNvbHZlZCBidW5kbGUgcmV0dXJuZWQgYnkgYGRhdGFicmlja3MgYnVuZGxlIHZhbGlkYXRlYC4gKi9cbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKiBWYWxpZGF0aW9uIGZhaWx1cmUgYXNzb2NpYXRlZCB3aXRoIHBhcnRpYWwgYnVuZGxlIG91dHB1dC4gKi9cbiAgYnVuZGxlRmFpbHVyZT86IEVycm9yO1xufTtcblxuLyoqXG4gKiBTdHJlYW0gZXZlcnkgQXBwIHJlc291cmNlIGluIGJ1bmRsZXMgdW5kZXIgYHByb2plY3RCb3VuZGFyeWAuXG4gKlxuICogYGN3ZGAgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFuZCBtYXkgbmFtZSBhIGZpbGUgb3IgZGlyZWN0b3J5LlxuICogQnVuZGxlIGZpbGVzIGluIGl0cyBhbmNlc3RvciBjaGFpbiBhcmUgY2hlY2tlZCBiZWZvcmUgdGhlIHJlc3Qgb2YgdGhlIHByb2plY3RcbiAqIGJvdW5kYXJ5LiBObyBBcHAgWUFNTCBmaWxlIGlzIHJlcXVpcmVkLlxuICpcbiAqIEEgbWlzc2luZyBvciBpbnZhbGlkIGJvdW5kYXJ5L2N3ZCwgb3IgYSBjd2Qgb3V0c2lkZSB0aGUgYm91bmRhcnksIHlpZWxkc1xuICogbm90aGluZy4gQSBub24temVybyB2YWxpZGF0aW9uIHdpdGggcGFydGlhbCBKU09OIGF0dGFjaGVzXG4gKiBgYnVuZGxlRmFpbHVyZWAgdG8gZWFjaCBBcHAgcmVzb3VyY2UgcGFyc2VkIGZyb20gdGhhdCBidW5kbGUuIEEgZmFpbGVkXG4gKiB2YWxpZGF0aW9uIHdpdGggbm8gQXBwIHJlc291cmNlcyB5aWVsZHMgbm90aGluZy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uKiBhcHBSZXNvdXJjZXMoXG4gIHByb2plY3RCb3VuZGFyeTogc3RyaW5nLFxuICBjd2Q/OiBzdHJpbmcsXG4gIHByb2ZpbGU/OiBzdHJpbmcsXG4pOiBBc3luY0dlbmVyYXRvcjxBcHBSZXNvdXJjZSwgdm9pZCwgdm9pZD4ge1xuICBjb25zdCBib3VuZGFyeSA9IGF3YWl0IHJlc29sdmVEaXJlY3RvcnkocHJvamVjdEJvdW5kYXJ5KTtcbiAgY29uc3Qgc3RhcnREaXJlY3RvcnkgPSBhd2FpdCByZXNvbHZlU3RhcnREaXJlY3RvcnkoY3dkKTtcbiAgaWYgKCFib3VuZGFyeSB8fCAhc3RhcnREaXJlY3RvcnkgfHwgIWlzV2l0aGluT3JFcXVhbChzdGFydERpcmVjdG9yeSwgYm91bmRhcnkpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZm9yIGF3YWl0IChjb25zdCBidW5kbGVQYXRoIG9mIGJ1bmRsZVBhdGhzKGJvdW5kYXJ5LCBzdGFydERpcmVjdG9yeSkpIHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBhd2FpdCB2YWxpZGF0ZUJ1bmRsZShidW5kbGVQYXRoLCBwcm9maWxlKTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIGNvbmZpZ10gb2YgT2JqZWN0LmVudHJpZXMoYnVuZGxlQXBwcyh2YWxpZGF0ZWQuZGF0YSkpKSB7XG4gICAgICBpZiAoIWlzUmVjb3JkKGNvbmZpZykpIGNvbnRpbnVlO1xuICAgICAgeWllbGQge1xuICAgICAgICBidW5kbGVQYXRoLFxuICAgICAgICBrZXksXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgZGF0YTogdmFsaWRhdGVkLmRhdGEsXG4gICAgICAgIC4uLm9wdGlvbmFsKFwic291cmNlQ29kZVBhdGhcIiwgcmVzb2x2ZVNvdXJjZUNvZGVQYXRoKGJ1bmRsZVBhdGgsIGNvbmZpZy5zb3VyY2VfY29kZV9wYXRoKSksXG4gICAgICAgIC4uLm9wdGlvbmFsKFwiYnVuZGxlRmFpbHVyZVwiLCB2YWxpZGF0ZWQuYnVuZGxlRmFpbHVyZSksXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlRGlyZWN0b3J5KHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgcmVhbHBhdGgocmVzb2x2ZSh2YWx1ZSkpO1xuICAgIHJldHVybiAoYXdhaXQgc3RhdChyZXNvbHZlZCkpLmlzRGlyZWN0b3J5KCkgPyByZXNvbHZlZCA6IHVuZGVmaW5lZDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlU3RhcnREaXJlY3RvcnkoY3dkPzogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNvbHZlZCA9IGF3YWl0IHJlYWxwYXRoKHJlc29sdmVXb3JraW5nRGlyZWN0b3J5KGN3ZCkpO1xuICAgIGNvbnN0IGluZm8gPSBhd2FpdCBzdGF0KHJlc29sdmVkKTtcbiAgICBpZiAoaW5mby5pc0RpcmVjdG9yeSgpKSByZXR1cm4gcmVzb2x2ZWQ7XG4gICAgaWYgKGluZm8uaXNGaWxlKCkpIHJldHVybiBkaXJuYW1lKHJlc29sdmVkKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVTb3VyY2VDb2RlUGF0aChidW5kbGVQYXRoOiBzdHJpbmcsIHNvdXJjZUNvZGVQYXRoOiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiBzb3VyY2VDb2RlUGF0aCAhPT0gXCJzdHJpbmdcIikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgcmV0dXJuIGlzQWJzb2x1dGUoc291cmNlQ29kZVBhdGgpID8gc291cmNlQ29kZVBhdGggOiByZXNvbHZlKGRpcm5hbWUoYnVuZGxlUGF0aCksIHNvdXJjZUNvZGVQYXRoKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24qIGJ1bmRsZVBhdGhzKFxuICBib3VuZGFyeTogc3RyaW5nLFxuICBzdGFydERpcmVjdG9yeTogc3RyaW5nLFxuKTogQXN5bmNHZW5lcmF0b3I8c3RyaW5nLCB2b2lkLCB2b2lkPiB7XG4gIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgbGV0IGN1cnJlbnQgPSBzdGFydERpcmVjdG9yeTtcbiAgd2hpbGUgKGlzV2l0aGluT3JFcXVhbChjdXJyZW50LCBib3VuZGFyeSkpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIEJVTkRMRV9GSUxFX05BTUVTKSB7XG4gICAgICBjb25zdCBjYW5kaWRhdGUgPSBqb2luKGN1cnJlbnQsIGZpbGVuYW1lKTtcbiAgICAgIGlmICghKGF3YWl0IGlzRmlsZShjYW5kaWRhdGUpKSkgY29udGludWU7XG4gICAgICBjb25zdCByZXNvbHZlZCA9IGF3YWl0IHJlYWxwYXRoKGNhbmRpZGF0ZSk7XG4gICAgICBpZiAoc2Vlbi5oYXMocmVzb2x2ZWQpKSBjb250aW51ZTtcbiAgICAgIHNlZW4uYWRkKHJlc29sdmVkKTtcbiAgICAgIHlpZWxkIHJlc29sdmVkO1xuICAgIH1cbiAgICBpZiAoY3VycmVudCA9PT0gYm91bmRhcnkpIGJyZWFrO1xuICAgIGN1cnJlbnQgPSBkaXJuYW1lKGN1cnJlbnQpO1xuICB9XG5cbiAgeWllbGQqIGRlc2NlbmRCdW5kbGVQYXRocyhib3VuZGFyeSwgc2Vlbik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uKiBkZXNjZW5kQnVuZGxlUGF0aHMoXG4gIGRpcmVjdG9yeTogc3RyaW5nLFxuICBzZWVuOiBTZXQ8c3RyaW5nPixcbik6IEFzeW5jR2VuZXJhdG9yPHN0cmluZywgdm9pZCwgdm9pZD4ge1xuICBjb25zdCBlbnRyaWVzID0gYXdhaXQgb3BlbmRpcihkaXJlY3RvcnkpO1xuICBmb3IgYXdhaXQgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICBjb25zdCBjYW5kaWRhdGUgPSBqb2luKGRpcmVjdG9yeSwgZW50cnkubmFtZSk7XG4gICAgaWYgKGVudHJ5LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIGNvbnN0IGlnbm9yZWQgPSBJR05PUkVEX0RJUkVDVE9SSUVTLnNvbWUoKGlnbm9yZSkgPT4ge1xuICAgICAgICBpZiAoaWdub3JlIGluc3RhbmNlb2YgUmVnRXhwKSByZXR1cm4gaWdub3JlLnRlc3QoZW50cnkubmFtZSk7XG4gICAgICAgIHJldHVybiBpZ25vcmUgPT09IGVudHJ5Lm5hbWU7XG4gICAgICB9KTtcbiAgICAgIGlmICghaWdub3JlZCkge1xuICAgICAgICB5aWVsZCogZGVzY2VuZEJ1bmRsZVBhdGhzKGNhbmRpZGF0ZSwgc2Vlbik7XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKCFlbnRyeS5pc0ZpbGUoKSB8fCAhQlVORExFX0ZJTEVfTkFNRVMuaGFzKGVudHJ5Lm5hbWUpKSBjb250aW51ZTtcbiAgICBjb25zdCByZXNvbHZlZCA9IGF3YWl0IHJlYWxwYXRoKGNhbmRpZGF0ZSk7XG4gICAgaWYgKHNlZW4uaGFzKHJlc29sdmVkKSkgY29udGludWU7XG4gICAgc2Vlbi5hZGQocmVzb2x2ZWQpO1xuICAgIHlpZWxkIHJlc29sdmVkO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlQnVuZGxlKFxuICBidW5kbGVQYXRoOiBzdHJpbmcsXG4gIHByb2ZpbGU/OiBzdHJpbmcsXG4pOiBQcm9taXNlPFBpY2s8QXBwUmVzb3VyY2UsIFwiZGF0YVwiIHwgXCJidW5kbGVGYWlsdXJlXCI+PiB7XG4gIGNvbnN0IGVudmlyb25tZW50ID0geyAuLi5wcm9jZXNzLmVudiB9O1xuICBkZWxldGUgZW52aXJvbm1lbnQuREFUQUJSSUNLU19DT05GSUdfUFJPRklMRTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3Bhd24oXG4gICAgXCJkYXRhYnJpY2tzXCIsXG4gICAgW1wiYnVuZGxlXCIsIFwidmFsaWRhdGVcIiwgXCItLW91dHB1dFwiLCBcImpzb25cIiwgLi4uKHByb2ZpbGUgPyBbXCItLXByb2ZpbGVcIiwgcHJvZmlsZV0gOiBbXSldLFxuICAgIHtcbiAgICAgIGN3ZDogZGlybmFtZShidW5kbGVQYXRoKSxcbiAgICAgIGVudjogZW52aXJvbm1lbnQsXG4gICAgICBzdGRpbjogXCJpZ25vcmVcIixcbiAgICAgIHN0ZG91dDogXCJjYXB0dXJlXCIsXG4gICAgICBzdGRlcnI6IFwiY2FwdHVyZVwiLFxuICAgIH0sXG4gICk7XG4gIGNvbnN0IGRldGFpbCA9IHRyaW1Ub051bGwocmVzdWx0LnN0ZGVycikgPz8gdHJpbVRvTnVsbChyZXN1bHQuc3Rkb3V0KTtcbiAgY29uc3QgYnVuZGxlRmFpbHVyZSA9XG4gICAgcmVzdWx0LmV4aXRDb2RlID09PSAwXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiBuZXcgRXJyb3IoXG4gICAgICAgICAgYGRhdGFicmlja3MgYnVuZGxlIHZhbGlkYXRlIGZhaWxlZCBmb3IgJHtidW5kbGVQYXRofSAoZXhpdCAke3Jlc3VsdC5leGl0Q29kZX0pJHtcbiAgICAgICAgICAgIGRldGFpbCA/IGA6ICR7ZGV0YWlsfWAgOiBcIlwiXG4gICAgICAgICAgfWAsXG4gICAgICAgICk7XG5cbiAgY29uc3QgcGFyc2VkID0gcGFyc2VSZWNvcmQocmVzdWx0LnN0ZG91dCk7XG4gIGlmICghcGFyc2VkKSB7XG4gICAgaWYgKGJ1bmRsZUZhaWx1cmUpIHJldHVybiB7IGRhdGE6IHt9LCBidW5kbGVGYWlsdXJlIH07XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEYXRhYnJpY2tzIENMSSByZXR1cm5lZCBpbnZhbGlkIGJ1bmRsZSBKU09OIGZvciAke2J1bmRsZVBhdGh9YCk7XG4gIH1cbiAgcmV0dXJuIHsgZGF0YTogcGFyc2VkLCAuLi5vcHRpb25hbChcImJ1bmRsZUZhaWx1cmVcIiwgYnVuZGxlRmFpbHVyZSkgfTtcbn1cblxuZnVuY3Rpb24gYnVuZGxlQXBwcyhidW5kbGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICBjb25zdCByZXNvdXJjZXMgPSBpc1JlY29yZChidW5kbGUucmVzb3VyY2VzKSA/IGJ1bmRsZS5yZXNvdXJjZXMgOiB1bmRlZmluZWQ7XG4gIHJldHVybiBpc1JlY29yZChyZXNvdXJjZXM/LmFwcHMpID8gcmVzb3VyY2VzLmFwcHMgOiB7fTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaXNGaWxlKHBhdGg6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICB0cnkge1xuICAgIHJldHVybiAoYXdhaXQgc3RhdChwYXRoKSkuaXNGaWxlKCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1dpdGhpbk9yRXF1YWwoY2FuZGlkYXRlOiBzdHJpbmcsIHBhcmVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHBhdGggPSByZWxhdGl2ZShwYXJlbnQsIGNhbmRpZGF0ZSk7XG4gIHJldHVybiBwYXRoID09PSBcIlwiIHx8IChwYXRoICE9PSBcIi4uXCIgJiYgIXBhdGguc3RhcnRzV2l0aChgLi4ke3NlcH1gKSAmJiAhaXNBYnNvbHV0ZShwYXRoKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBhdGggPSBwcm9jZXNzLmFyZ3ZbMl07XG4gIGlmICghcGF0aCkgdGhyb3cgbmV3IEVycm9yKFwiVXNhZ2U6IGJ1biBidW5kbGUudHMgPHBhdGg+XCIpO1xuICBmb3IgYXdhaXQgKGNvbnN0IHJlc291cmNlIG9mIGFwcFJlc291cmNlcyhyb290KCkhLCBwYXRoKSkge1xuICAgIGNvbnNvbGUuZGlyKHJlc291cmNlLCB7IGRlcHRoOiBudWxsIH0pO1xuICB9XG59XG5cbmlmIChpbXBvcnQubWV0YS5tYWluKSB2b2lkIG1haW4oKTtcbiJdfQ==
@@ -30,7 +30,6 @@
30
30
  *
31
31
  * @module
32
32
  */
33
- import { object } from "@dbx-tools/shared-core";
34
33
  import { z } from "zod";
35
34
  type ConfigKey = string | readonly string[];
36
35
  /** Scalar or list value accepted by an in-memory configuration map. */
@@ -65,8 +64,6 @@ export interface ConfigFile {
65
64
  path: string;
66
65
  data: Record<string, unknown>;
67
66
  }
68
- /** Highest valid TCP port number. */
69
- export declare const MAX_TCP_PORT = 65535;
70
67
  /** Exact process-environment lookup for callers that do not read local config files. */
71
68
  export declare const ENV_ONLY: {
72
69
  scope: readonly [];
@@ -156,8 +153,6 @@ export declare function string(configured: unknown, input: ConfigKey, options?:
156
153
  * is interpretable, so the caller picks a default with `??`.
157
154
  */
158
155
  export declare function boolean(configured: unknown, input: ConfigKey, options?: ConfigOptions): boolean | undefined;
159
- /** Parse a finite number with the shared scalar coercion rules. */
160
- export declare const toNumber: typeof object.toNumber;
161
156
  /**
162
157
  * Resolve a positive number that may be fractional (a score threshold, a ratio).
163
158
  * Use {@link positiveInt} for a count, port, or timeout.