obsidian-dev-utils 6.0.0 → 6.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.
@@ -27,60 +27,99 @@ var __copyProps = (to, from, except, desc) => {
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
28
  var Npm_exports = {};
29
29
  __export(Npm_exports, {
30
- editNpmPackage: () => editNpmPackage,
31
- editNpmPackageLock: () => editNpmPackageLock,
30
+ editPackageJson: () => editPackageJson,
31
+ editPackageJsonSync: () => editPackageJsonSync,
32
+ editPackageLockJson: () => editPackageLockJson,
33
+ editPackageLockJsonSync: () => editPackageLockJsonSync,
32
34
  getPackageJsonPath: () => getPackageJsonPath,
33
35
  getPackageLockJsonPath: () => getPackageLockJsonPath,
34
- readNpmPackage: () => readNpmPackage,
35
- readNpmPackageLock: () => readNpmPackageLock,
36
- writeNpmPackage: () => writeNpmPackage,
37
- writeNpmPackageLock: () => writeNpmPackageLock
36
+ readPackageJson: () => readPackageJson,
37
+ readPackageJsonSync: () => readPackageJsonSync,
38
+ readPackageLockJson: () => readPackageLockJson,
39
+ readPackageLockJsonSync: () => readPackageLockJsonSync,
40
+ writePackageJson: () => writePackageJson,
41
+ writePackageJsonSync: () => writePackageJsonSync,
42
+ writePackageLockJson: () => writePackageLockJson,
43
+ writePackageLockJsonSync: () => writePackageLockJsonSync
38
44
  });
39
45
  module.exports = __toCommonJS(Npm_exports);
46
+ var import_Error = require('../Error.cjs');
40
47
  var import_ObsidianPluginRepoPaths = require('../obsidian/Plugin/ObsidianPluginRepoPaths.cjs');
41
48
  var import_JSON = require('./JSON.cjs');
42
49
  var import_Root = require('./Root.cjs');
43
- async function editNpmPackage(editFn, options = {}) {
50
+ async function editPackageJson(editFn, options = {}) {
44
51
  const {
45
52
  cwd,
46
- skipIfMissing
53
+ shouldSkipIfMissing
47
54
  } = options;
48
- await (0, import_JSON.editJson)(getPackageJsonPath(cwd), editFn, { shouldSkipIfMissing: skipIfMissing });
55
+ await (0, import_JSON.editJson)(getPackageJsonPath(cwd), editFn, { shouldSkipIfMissing });
49
56
  }
50
- async function editNpmPackageLock(editFn, options = {}) {
57
+ function editPackageJsonSync(editFn, options = {}) {
51
58
  const {
52
59
  cwd,
53
- skipIfMissing
60
+ shouldSkipIfMissing
54
61
  } = options;
55
- await (0, import_JSON.editJson)(getPackageLockJsonPath(cwd), editFn, { shouldSkipIfMissing: skipIfMissing });
62
+ (0, import_JSON.editJsonSync)(getPackageJsonPath(cwd), editFn, { shouldSkipIfMissing });
63
+ }
64
+ async function editPackageLockJson(editFn, options = {}) {
65
+ const {
66
+ cwd,
67
+ shouldSkipIfMissing
68
+ } = options;
69
+ await (0, import_JSON.editJson)(getPackageLockJsonPath(cwd), editFn, { shouldSkipIfMissing });
70
+ }
71
+ function editPackageLockJsonSync(editFn, options = {}) {
72
+ const {
73
+ cwd,
74
+ shouldSkipIfMissing
75
+ } = options;
76
+ (0, import_JSON.editJsonSync)(getPackageLockJsonPath(cwd), editFn, { shouldSkipIfMissing });
56
77
  }
57
78
  function getPackageJsonPath(cwd) {
58
- return (0, import_Root.resolvePathFromRoot)(import_ObsidianPluginRepoPaths.ObsidianPluginRepoPaths.PackageJson, cwd);
79
+ return (0, import_Root.resolvePathFromRoot)(import_ObsidianPluginRepoPaths.ObsidianPluginRepoPaths.PackageJson, cwd) ?? (0, import_Error.throwExpression)(new Error("Could not determine the package.json path"));
59
80
  }
60
81
  function getPackageLockJsonPath(cwd) {
61
- return (0, import_Root.resolvePathFromRoot)(import_ObsidianPluginRepoPaths.ObsidianPluginRepoPaths.PackageLockJson, cwd);
82
+ return (0, import_Root.resolvePathFromRoot)(import_ObsidianPluginRepoPaths.ObsidianPluginRepoPaths.PackageLockJson, cwd) ?? (0, import_Error.throwExpression)(new Error("Could not determine the package-lock.json path"));
62
83
  }
63
- async function readNpmPackage(cwd) {
84
+ async function readPackageJson(cwd) {
64
85
  return await (0, import_JSON.readJson)(getPackageJsonPath(cwd));
65
86
  }
66
- async function readNpmPackageLock(cwd) {
87
+ function readPackageJsonSync(cwd) {
88
+ return (0, import_JSON.readJsonSync)(getPackageJsonPath(cwd));
89
+ }
90
+ async function readPackageLockJson(cwd) {
67
91
  return await (0, import_JSON.readJson)(getPackageLockJsonPath(cwd));
68
92
  }
69
- async function writeNpmPackage(npmPackage, cwd) {
70
- await (0, import_JSON.writeJson)(getPackageJsonPath(cwd), npmPackage);
93
+ function readPackageLockJsonSync(cwd) {
94
+ return (0, import_JSON.readJsonSync)(getPackageLockJsonPath(cwd));
95
+ }
96
+ async function writePackageJson(packageJson, cwd) {
97
+ await (0, import_JSON.writeJson)(getPackageJsonPath(cwd), packageJson);
98
+ }
99
+ function writePackageJsonSync(packageJson, cwd) {
100
+ (0, import_JSON.writeJsonSync)(getPackageJsonPath(cwd), packageJson);
101
+ }
102
+ async function writePackageLockJson(packageLockJson, cwd) {
103
+ await (0, import_JSON.writeJson)(getPackageLockJsonPath(cwd), packageLockJson);
71
104
  }
72
- async function writeNpmPackageLock(npmPackage, cwd) {
73
- await (0, import_JSON.writeJson)(getPackageLockJsonPath(cwd), npmPackage);
105
+ function writePackageLockJsonSync(packageLockJson, cwd) {
106
+ (0, import_JSON.writeJsonSync)(getPackageLockJsonPath(cwd), packageLockJson);
74
107
  }
75
108
  // Annotate the CommonJS export names for ESM import in node:
76
109
  0 && (module.exports = {
77
- editNpmPackage,
78
- editNpmPackageLock,
110
+ editPackageJson,
111
+ editPackageJsonSync,
112
+ editPackageLockJson,
113
+ editPackageLockJsonSync,
79
114
  getPackageJsonPath,
80
115
  getPackageLockJsonPath,
81
- readNpmPackage,
82
- readNpmPackageLock,
83
- writeNpmPackage,
84
- writeNpmPackageLock
116
+ readPackageJson,
117
+ readPackageJsonSync,
118
+ readPackageLockJson,
119
+ readPackageLockJsonSync,
120
+ writePackageJson,
121
+ writePackageJsonSync,
122
+ writePackageLockJson,
123
+ writePackageLockJsonSync
85
124
  });
86
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvTnBtLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBOcG1cbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBOUE0gcGFja2FnZS5qc29uLlxuICovXG5cbmltcG9ydCB0eXBlIHsgTWF5YmVQcm9taXNlIH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuXG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uL29ic2lkaWFuL1BsdWdpbi9PYnNpZGlhblBsdWdpblJlcG9QYXRocy50cyc7XG5pbXBvcnQge1xuICBlZGl0SnNvbixcbiAgcmVhZEpzb24sXG4gIHdyaXRlSnNvblxufSBmcm9tICcuL0pTT04udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVBhdGhGcm9tUm9vdCB9IGZyb20gJy4vUm9vdC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZWRpdGluZyBhbiBOUE0gcGFja2FnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0TnBtUGFja2FnZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnkgd2hlcmUgYHBhY2thZ2UuanNvbmAgaXMgbG9jYXRlZC5cbiAgICovXG4gIGN3ZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgc2tpcHMgZWRpdGluZyBpZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdC5cbiAgICovXG4gIHNraXBJZk1pc3Npbmc/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHN0cnVjdHVyZSBvZiBhbiBgTnBtUGFja2FnZWAgYXMgZGVmaW5lZCBpbiBhIGBwYWNrYWdlLmpzb25gIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnBtUGFja2FnZSB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgcGFja2FnZSdzIGRlcGVuZGVuY2llcywgd2hlcmUgdGhlIGtleSBpcyB0aGUgcGFja2FnZSBuYW1lXG4gICAqIGFuZCB0aGUgdmFsdWUgaXMgdGhlIHZlcnNpb24gcmVxdWlyZWQuXG4gICAqL1xuICBkZXBlbmRlbmNpZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgcGFja2FnZSdzIGRldmVsb3BtZW50IGRlcGVuZGVuY2llcywgd2hlcmUgdGhlIGtleSBpcyB0aGUgcGFja2FnZSBuYW1lXG4gICAqIGFuZCB0aGUgdmFsdWUgaXMgdGhlIHZlcnNpb24gcmVxdWlyZWQuXG4gICAqL1xuICBkZXZEZXBlbmRlbmNpZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBvYmplY3QgdGhhdCBkZWZpbmVzIHRoZSBwYWNrYWdlJ3MgZXhwb3J0IG1hcHBpbmdzLCB3aGVyZSB0aGUga2V5IGlzIHRoZSBleHBvcnQgbmFtZVxuICAgKiBhbmQgdGhlIHZhbHVlIGlzIHRoZSBleHBvcnQgZGV0YWlscy5cbiAgICovXG4gIGV4cG9ydHM/OiBSZWNvcmQ8c3RyaW5nLCBFeHBvcnQ+O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcGFja2FnZS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIHBhY2thZ2UncyBwZWVyIGRlcGVuZGVuY2llcywgd2hlcmUgdGhlIGtleSBpcyB0aGUgcGFja2FnZSBuYW1lXG4gICAqL1xuICBwYWNrYWdlcz86IFJlY29yZDxzdHJpbmcsIE5wbVBhY2thZ2U+O1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgcGFja2FnZS5cbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBleHBvcnQgZGV0YWlscyBpbiB0aGUgYGV4cG9ydHNgIGZpZWxkIG9mIGEgYHBhY2thZ2UuanNvbmAgZmlsZS5cbiAqL1xuaW50ZXJmYWNlIEV4cG9ydCB7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBleHBvcnQgcGF0aCBmb3IgdGhlIHBhY2thZ2UuXG4gICAqL1xuICBkZWZhdWx0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSB0eXBlcyBmaWxlIGZvciB0aGUgcGFja2FnZS5cbiAgICovXG4gIHR5cGVzOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgdXNpbmcgdGhlIHByb3ZpZGVkIGVkaXQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGVkaXRGbiAtIFRoZSBmdW5jdGlvbiB0byBlZGl0IHRoZSBwYXJzZWQgYE5wbVBhY2thZ2VgIG9iamVjdC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiBlZGl0ZWQgYW5kIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlZGl0TnBtUGFja2FnZShcbiAgZWRpdEZuOiAobnBtUGFja2FnZTogTnBtUGFja2FnZSkgPT4gTWF5YmVQcm9taXNlPHZvaWQ+LCBvcHRpb25zOiBFZGl0TnBtUGFja2FnZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgY3dkLFxuICAgIHNraXBJZk1pc3NpbmdcbiAgfSA9IG9wdGlvbnM7XG4gIGF3YWl0IGVkaXRKc29uPE5wbVBhY2thZ2U+KGdldFBhY2thZ2VKc29uUGF0aChjd2QpLCBlZGl0Rm4sIHsgc2hvdWxkU2tpcElmTWlzc2luZzogc2tpcElmTWlzc2luZyB9KTtcbn1cblxuLyoqXG4gKiBSZWFkcywgZWRpdHMsIGFuZCB3cml0ZXMgYmFjayB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIHVzaW5nIHRoZSBwcm92aWRlZCBlZGl0IGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBlZGl0Rm4gLSBUaGUgZnVuY3Rpb24gdG8gZWRpdCB0aGUgcGFyc2VkIGBOcG1QYWNrYWdlYCBvYmplY3QuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgZWRpdGluZy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gZWRpdGVkIGFuZCB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZWRpdE5wbVBhY2thZ2VMb2NrKFxuICBlZGl0Rm46IChucG1QYWNrYWdlOiBOcG1QYWNrYWdlKSA9PiBNYXliZVByb21pc2U8dm9pZD4sXG4gIG9wdGlvbnM6IEVkaXROcG1QYWNrYWdlT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBjd2QsXG4gICAgc2tpcElmTWlzc2luZ1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgZWRpdEpzb248TnBtUGFja2FnZT4oZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2QpLCBlZGl0Rm4sIHsgc2hvdWxkU2tpcElmTWlzc2luZzogc2tpcElmTWlzc2luZyB9KTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgcGF0aCB0byB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSBvciBpbiB0aGUgcm9vdCBpZiBubyBkaXJlY3RvcnkgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgVGhlIHJlc29sdmVkIHBhdGggdG8gdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlSnNvblBhdGgoY3dkPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJlc29sdmVQYXRoRnJvbVJvb3QoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuUGFja2FnZUpzb24sIGN3ZCk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHBhdGggdG8gdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSBvciBpbiB0aGUgcm9vdCBpZiBubyBkaXJlY3RvcnkgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgcGFja2FnZS1sb2NrLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgcGF0aCB0byB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVzb2x2ZVBhdGhGcm9tUm9vdChPYnNpZGlhblBsdWdpblJlcG9QYXRocy5QYWNrYWdlTG9ja0pzb24sIGN3ZCk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgZnJvbSB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSBvciBmcm9tIHRoZSByb290IGlmIG5vIGRpcmVjdG9yeSBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBwYXJzZWQgYE5wbVBhY2thZ2VgIG9iamVjdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWROcG1QYWNrYWdlKGN3ZD86IHN0cmluZyk6IFByb21pc2U8TnBtUGFja2FnZT4ge1xuICByZXR1cm4gYXdhaXQgcmVhZEpzb248TnBtUGFja2FnZT4oZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCkpO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUgZnJvbSB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSBvciBmcm9tIHRoZSByb290IGlmIG5vIGRpcmVjdG9yeSBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHdoZXJlIGBwYWNrYWdlLWxvY2suanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHBhcnNlZCBgTnBtUGFja2FnZWAgb2JqZWN0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZE5wbVBhY2thZ2VMb2NrKGN3ZD86IHN0cmluZyk6IFByb21pc2U8TnBtUGFja2FnZT4ge1xuICByZXR1cm4gYXdhaXQgcmVhZEpzb248TnBtUGFja2FnZT4oZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2QpKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgdGhlIHByb3ZpZGVkIGBOcG1QYWNrYWdlYCBvYmplY3QgdG8gdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgaW4gdGhlIHNwZWNpZmllZCBkaXJlY3Rvcnkgb3IgaW4gdGhlIHJvb3QuXG4gKlxuICogQHBhcmFtIG5wbVBhY2thZ2UgLSBUaGUgYE5wbVBhY2thZ2VgIG9iamVjdCB0byB3cml0ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVOcG1QYWNrYWdlKG5wbVBhY2thZ2U6IE5wbVBhY2thZ2UsIGN3ZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCB3cml0ZUpzb24oZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCksIG5wbVBhY2thZ2UpO1xufVxuXG4vKipcbiAqIFdyaXRlcyB0aGUgcHJvdmlkZWQgYE5wbVBhY2thZ2VgIG9iamVjdCB0byB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IG9yIGluIHRoZSByb290LlxuICpcbiAqIEBwYXJhbSBucG1QYWNrYWdlIC0gVGhlIGBOcG1QYWNrYWdlYCBvYmplY3QgdG8gd3JpdGUuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnkgd2hlcmUgYHBhY2thZ2UtbG9jay5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVOcG1QYWNrYWdlTG9jayhucG1QYWNrYWdlOiBOcG1QYWNrYWdlLCBjd2Q/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgd3JpdGVKc29uKGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSwgbnBtUGFja2FnZSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQSxxQ0FBd0M7QUFDeEMsa0JBSU87QUFDUCxrQkFBb0M7QUE2RXBDLGVBQXNCLGVBQ3BCLFFBQXdELFVBQWlDLENBQUMsR0FBa0I7QUFDNUcsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osWUFBTSxzQkFBcUIsbUJBQW1CLEdBQUcsR0FBRyxRQUFRLEVBQUUscUJBQXFCLGNBQWMsQ0FBQztBQUNwRztBQVNBLGVBQXNCLG1CQUNwQixRQUNBLFVBQWlDLENBQUMsR0FBa0I7QUFDcEQsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osWUFBTSxzQkFBcUIsdUJBQXVCLEdBQUcsR0FBRyxRQUFRLEVBQUUscUJBQXFCLGNBQWMsQ0FBQztBQUN4RztBQVFPLFNBQVMsbUJBQW1CLEtBQXNCO0FBQ3ZELGFBQU8saUNBQW9CLHVEQUF3QixhQUFhLEdBQUc7QUFDckU7QUFRTyxTQUFTLHVCQUF1QixLQUFzQjtBQUMzRCxhQUFPLGlDQUFvQix1REFBd0IsaUJBQWlCLEdBQUc7QUFDekU7QUFRQSxlQUFzQixlQUFlLEtBQW1DO0FBQ3RFLFNBQU8sVUFBTSxzQkFBcUIsbUJBQW1CLEdBQUcsQ0FBQztBQUMzRDtBQVFBLGVBQXNCLG1CQUFtQixLQUFtQztBQUMxRSxTQUFPLFVBQU0sc0JBQXFCLHVCQUF1QixHQUFHLENBQUM7QUFDL0Q7QUFTQSxlQUFzQixnQkFBZ0IsWUFBd0IsS0FBNkI7QUFDekYsWUFBTSx1QkFBVSxtQkFBbUIsR0FBRyxHQUFHLFVBQVU7QUFDckQ7QUFTQSxlQUFzQixvQkFBb0IsWUFBd0IsS0FBNkI7QUFDN0YsWUFBTSx1QkFBVSx1QkFBdUIsR0FBRyxHQUFHLFVBQVU7QUFDekQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
125
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvTnBtLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBOcG1cbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBOUE0gcGFja2FnZS5qc29uLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGFja2FnZUpzb24gfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSB9IGZyb20gJy4uL0FzeW5jLnRzJztcblxuaW1wb3J0IHsgdGhyb3dFeHByZXNzaW9uIH0gZnJvbSAnLi4vRXJyb3IudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi9vYnNpZGlhbi9QbHVnaW4vT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZWRpdEpzb24sXG4gIGVkaXRKc29uU3luYyxcbiAgcmVhZEpzb24sXG4gIHJlYWRKc29uU3luYyxcbiAgd3JpdGVKc29uLFxuICB3cml0ZUpzb25TeW5jXG59IGZyb20gJy4vSlNPTi50cyc7XG5pbXBvcnQgeyByZXNvbHZlUGF0aEZyb21Sb290IH0gZnJvbSAnLi9Sb290LnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBlZGl0aW5nIGEgcGFja2FnZS5qc29uIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdFBhY2thZ2VKc29uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICAgKi9cbiAgY3dkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCBza2lwcyBlZGl0aW5nIGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LlxuICAgKi9cbiAgc2hvdWxkU2tpcElmTWlzc2luZz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUuXG4gKi9cbmV4cG9ydCB0eXBlIHsgUGFja2FnZUpzb24gfTtcblxuLyoqXG4gKiBUaGUgdHlwZSBvZiB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VMb2NrSnNvbiBleHRlbmRzIFBhcnRpYWw8UGFja2FnZUpzb24+IHtcbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdlcyBpbiB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlLlxuICAgKi9cbiAgcGFja2FnZXM/OiBSZWNvcmQ8c3RyaW5nLCBQYWNrYWdlSnNvbj47XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgdXNpbmcgdGhlIHByb3ZpZGVkIGVkaXQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGVkaXRGbiAtIFRoZSBmdW5jdGlvbiB0byBlZGl0IHRoZSBwYXJzZWQgYFBhY2thZ2VKc29uYCBvYmplY3QuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgZWRpdGluZy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gZWRpdGVkIGFuZCB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZWRpdFBhY2thZ2VKc29uKFxuICBlZGl0Rm46IChwYWNrYWdlSnNvbjogUGFja2FnZUpzb24pID0+IE1heWJlUHJvbWlzZTx2b2lkPiwgb3B0aW9uczogRWRpdFBhY2thZ2VKc29uT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBjd2QsXG4gICAgc2hvdWxkU2tpcElmTWlzc2luZ1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgZWRpdEpzb248UGFja2FnZUpzb24+KGdldFBhY2thZ2VKc29uUGF0aChjd2QpLCBlZGl0Rm4sIHsgc2hvdWxkU2tpcElmTWlzc2luZyB9KTtcbn1cblxuLyoqXG4gKiBSZWFkcywgZWRpdHMsIGFuZCB3cml0ZXMgYmFjayB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgUGFja2FnZUpzb25gIG9iamVjdC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiBlZGl0ZWQgYW5kIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlZGl0UGFja2FnZUpzb25TeW5jKFxuICBlZGl0Rm46IChwYWNrYWdlSnNvbjogUGFja2FnZUpzb24pID0+IHZvaWQsIG9wdGlvbnM6IEVkaXRQYWNrYWdlSnNvbk9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgY3dkLFxuICAgIHNob3VsZFNraXBJZk1pc3NpbmdcbiAgfSA9IG9wdGlvbnM7XG4gIGVkaXRKc29uU3luYzxQYWNrYWdlSnNvbj4oZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCksIGVkaXRGbiwgeyBzaG91bGRTa2lwSWZNaXNzaW5nIH0pO1xufVxuXG4vKipcbiAqIFJlYWRzLCBlZGl0cywgYW5kIHdyaXRlcyBiYWNrIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUgdXNpbmcgdGhlIHByb3ZpZGVkIGVkaXQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGVkaXRGbiAtIFRoZSBmdW5jdGlvbiB0byBlZGl0IHRoZSBwYXJzZWQgYFBhY2thZ2VKc29uYCBvYmplY3QuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgZWRpdGluZy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gZWRpdGVkIGFuZCB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZWRpdFBhY2thZ2VMb2NrSnNvbihcbiAgZWRpdEZuOiAoUGFja2FnZUxvY2tKc29uOiBQYWNrYWdlTG9ja0pzb24pID0+IE1heWJlUHJvbWlzZTx2b2lkPixcbiAgb3B0aW9uczogRWRpdFBhY2thZ2VKc29uT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBjd2QsXG4gICAgc2hvdWxkU2tpcElmTWlzc2luZ1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgZWRpdEpzb248UGFja2FnZUpzb24+KGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSwgZWRpdEZuLCB7IHNob3VsZFNraXBJZk1pc3NpbmcgfSk7XG59XG5cbi8qKlxuICogUmVhZHMsIGVkaXRzLCBhbmQgd3JpdGVzIGJhY2sgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgZWRpdGluZy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gZWRpdGVkIGFuZCB3cml0dGVuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWRpdFBhY2thZ2VMb2NrSnNvblN5bmMoXG4gIGVkaXRGbjogKFBhY2thZ2VMb2NrSnNvbjogUGFja2FnZUxvY2tKc29uKSA9PiB2b2lkLFxuICBvcHRpb25zOiBFZGl0UGFja2FnZUpzb25PcHRpb25zID0ge30pOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGN3ZCxcbiAgICBzaG91bGRTa2lwSWZNaXNzaW5nXG4gIH0gPSBvcHRpb25zO1xuICBlZGl0SnNvblN5bmM8UGFja2FnZUxvY2tKc29uPihnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZCksIGVkaXRGbiwgeyBzaG91bGRTa2lwSWZNaXNzaW5nIH0pO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBwYXRoIHRvIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IG9yIGluIHRoZSByb290IGlmIG5vIGRpcmVjdG9yeSBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgcGF0aCB0byB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhY2thZ2VKc29uUGF0aChjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVzb2x2ZVBhdGhGcm9tUm9vdChPYnNpZGlhblBsdWdpblJlcG9QYXRocy5QYWNrYWdlSnNvbiwgY3dkKSA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBwYWNrYWdlLmpzb24gcGF0aCcpKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgcGF0aCB0byB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IG9yIGluIHRoZSByb290IGlmIG5vIGRpcmVjdG9yeSBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHdoZXJlIGBwYWNrYWdlLWxvY2suanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBwYXRoIHRvIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXNvbHZlUGF0aEZyb21Sb290KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlBhY2thZ2VMb2NrSnNvbiwgY3dkKSA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBwYWNrYWdlLWxvY2suanNvbiBwYXRoJykpO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGZyb20gdGhlIHNwZWNpZmllZCBkaXJlY3Rvcnkgb3IgZnJvbSB0aGUgcm9vdCBpZiBubyBkaXJlY3RvcnkgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgcGFyc2VkIGBQYWNrYWdlSnNvbmAgb2JqZWN0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFBhY2thZ2VKc29uKGN3ZD86IHN0cmluZyk6IFByb21pc2U8UGFja2FnZUpzb24+IHtcbiAgcmV0dXJuIGF3YWl0IHJlYWRKc29uPFBhY2thZ2VKc29uPihnZXRQYWNrYWdlSnNvblBhdGgoY3dkKSk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgZnJvbSB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSBvciBmcm9tIHRoZSByb290IGlmIG5vIGRpcmVjdG9yeSBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGBQYWNrYWdlSnNvbmAgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZFBhY2thZ2VKc29uU3luYyhjd2Q/OiBzdHJpbmcpOiBQYWNrYWdlSnNvbiB7XG4gIHJldHVybiByZWFkSnNvblN5bmM8UGFja2FnZUpzb24+KGdldFBhY2thZ2VKc29uUGF0aChjd2QpKTtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIGZyb20gdGhlIHNwZWNpZmllZCBkaXJlY3Rvcnkgb3IgZnJvbSB0aGUgcm9vdCBpZiBubyBkaXJlY3RvcnkgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgcGFja2FnZS1sb2NrLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBwYXJzZWQgYFBhY2thZ2VKc29uYCBvYmplY3QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkUGFja2FnZUxvY2tKc29uKGN3ZD86IHN0cmluZyk6IFByb21pc2U8UGFja2FnZUxvY2tKc29uPiB7XG4gIHJldHVybiBhd2FpdCByZWFkSnNvbjxQYWNrYWdlTG9ja0pzb24+KGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBmcm9tIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IG9yIGZyb20gdGhlIHJvb3QgaWYgbm8gZGlyZWN0b3J5IGlzIHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnkgd2hlcmUgYHBhY2thZ2UtbG9jay5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWFkUGFja2FnZUxvY2tKc29uU3luYyhjd2Q/OiBzdHJpbmcpOiBQYWNrYWdlTG9ja0pzb24ge1xuICByZXR1cm4gcmVhZEpzb25TeW5jPFBhY2thZ2VMb2NrSnNvbj4oZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2QpKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgdGhlIHByb3ZpZGVkIGBQYWNrYWdlSnNvbmAgb2JqZWN0IHRvIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IG9yIGluIHRoZSByb290LlxuICpcbiAqIEBwYXJhbSBwYWNrYWdlSnNvbiAtIFRoZSBgUGFja2FnZUpzb25gIG9iamVjdCB0byB3cml0ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVQYWNrYWdlSnNvbihwYWNrYWdlSnNvbjogUGFja2FnZUpzb24sIGN3ZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCB3cml0ZUpzb24oZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCksIHBhY2thZ2VKc29uKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgdGhlIHByb3ZpZGVkIGBQYWNrYWdlSnNvbmAgb2JqZWN0IHRvIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IG9yIGluIHRoZSByb290LlxuICpcbiAqIEBwYXJhbSBwYWNrYWdlSnNvbiAtIFRoZSBgUGFja2FnZUpzb25gIG9iamVjdCB0byB3cml0ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVQYWNrYWdlSnNvblN5bmMocGFja2FnZUpzb246IFBhY2thZ2VKc29uLCBjd2Q/OiBzdHJpbmcpOiB2b2lkIHtcbiAgd3JpdGVKc29uU3luYyhnZXRQYWNrYWdlSnNvblBhdGgoY3dkKSwgcGFja2FnZUpzb24pO1xufVxuXG4vKipcbiAqIFdyaXRlcyB0aGUgcHJvdmlkZWQgYFBhY2thZ2VKc29uYCBvYmplY3QgdG8gdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSBvciBpbiB0aGUgcm9vdC5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZUxvY2tKc29uIC0gVGhlIGBQYWNrYWdlTG9ja0pzb25gIG9iamVjdCB0byB3cml0ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgcGFja2FnZS1sb2NrLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZVBhY2thZ2VMb2NrSnNvbihwYWNrYWdlTG9ja0pzb246IFBhY2thZ2VMb2NrSnNvbiwgY3dkPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHdyaXRlSnNvbihnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZCksIHBhY2thZ2VMb2NrSnNvbik7XG59XG5cbi8qKlxuICogV3JpdGVzIHRoZSBwcm92aWRlZCBgUGFja2FnZUxvY2tKc29uYCBvYmplY3QgdG8gdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSBvciBpbiB0aGUgcm9vdC5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZUxvY2tKc29uIC0gVGhlIGBQYWNrYWdlTG9ja0pzb25gIG9iamVjdCB0byB3cml0ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgcGFja2FnZS1sb2NrLmpzb25gIGlzIGxvY2F0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVBhY2thZ2VMb2NrSnNvblN5bmMocGFja2FnZUxvY2tKc29uOiBQYWNrYWdlTG9ja0pzb24sIGN3ZD86IHN0cmluZyk6IHZvaWQge1xuICB3cml0ZUpzb25TeW5jKGdldFBhY2thZ2VMb2NrSnNvblBhdGgoY3dkKSwgcGFja2FnZUxvY2tKc29uKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBLG1CQUFnQztBQUNoQyxxQ0FBd0M7QUFDeEMsa0JBT087QUFDUCxrQkFBb0M7QUF1Q3BDLGVBQXNCLGdCQUNwQixRQUEwRCxVQUFrQyxDQUFDLEdBQWtCO0FBQy9HLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLFlBQU0sc0JBQXNCLG1CQUFtQixHQUFHLEdBQUcsUUFBUSxFQUFFLG9CQUFvQixDQUFDO0FBQ3RGO0FBU08sU0FBUyxvQkFDZCxRQUE0QyxVQUFrQyxDQUFDLEdBQVM7QUFDeEYsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osZ0NBQTBCLG1CQUFtQixHQUFHLEdBQUcsUUFBUSxFQUFFLG9CQUFvQixDQUFDO0FBQ3BGO0FBU0EsZUFBc0Isb0JBQ3BCLFFBQ0EsVUFBa0MsQ0FBQyxHQUFrQjtBQUNyRCxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixZQUFNLHNCQUFzQix1QkFBdUIsR0FBRyxHQUFHLFFBQVEsRUFBRSxvQkFBb0IsQ0FBQztBQUMxRjtBQVNPLFNBQVMsd0JBQ2QsUUFDQSxVQUFrQyxDQUFDLEdBQVM7QUFDNUMsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osZ0NBQThCLHVCQUF1QixHQUFHLEdBQUcsUUFBUSxFQUFFLG9CQUFvQixDQUFDO0FBQzVGO0FBUU8sU0FBUyxtQkFBbUIsS0FBc0I7QUFDdkQsYUFBTyxpQ0FBb0IsdURBQXdCLGFBQWEsR0FBRyxTQUFLLDhCQUFnQixJQUFJLE1BQU0sMkNBQTJDLENBQUM7QUFDaEo7QUFRTyxTQUFTLHVCQUF1QixLQUFzQjtBQUMzRCxhQUFPLGlDQUFvQix1REFBd0IsaUJBQWlCLEdBQUcsU0FBSyw4QkFBZ0IsSUFBSSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pKO0FBUUEsZUFBc0IsZ0JBQWdCLEtBQW9DO0FBQ3hFLFNBQU8sVUFBTSxzQkFBc0IsbUJBQW1CLEdBQUcsQ0FBQztBQUM1RDtBQVFPLFNBQVMsb0JBQW9CLEtBQTJCO0FBQzdELGFBQU8sMEJBQTBCLG1CQUFtQixHQUFHLENBQUM7QUFDMUQ7QUFRQSxlQUFzQixvQkFBb0IsS0FBd0M7QUFDaEYsU0FBTyxVQUFNLHNCQUEwQix1QkFBdUIsR0FBRyxDQUFDO0FBQ3BFO0FBUU8sU0FBUyx3QkFBd0IsS0FBK0I7QUFDckUsYUFBTywwQkFBOEIsdUJBQXVCLEdBQUcsQ0FBQztBQUNsRTtBQVNBLGVBQXNCLGlCQUFpQixhQUEwQixLQUE2QjtBQUM1RixZQUFNLHVCQUFVLG1CQUFtQixHQUFHLEdBQUcsV0FBVztBQUN0RDtBQVFPLFNBQVMscUJBQXFCLGFBQTBCLEtBQW9CO0FBQ2pGLGlDQUFjLG1CQUFtQixHQUFHLEdBQUcsV0FBVztBQUNwRDtBQVNBLGVBQXNCLHFCQUFxQixpQkFBa0MsS0FBNkI7QUFDeEcsWUFBTSx1QkFBVSx1QkFBdUIsR0FBRyxHQUFHLGVBQWU7QUFDOUQ7QUFRTyxTQUFTLHlCQUF5QixpQkFBa0MsS0FBb0I7QUFDN0YsaUNBQWMsdUJBQXVCLEdBQUcsR0FBRyxlQUFlO0FBQzVEOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -2,11 +2,12 @@
2
2
  * @packageDocumentation Npm
3
3
  * Contains utility functions for NPM package.json.
4
4
  */
5
+ import type { PackageJson } from 'type-fest';
5
6
  import type { MaybePromise } from '../Async.ts';
6
7
  /**
7
- * Options for editing an NPM package.
8
+ * Options for editing a package.json file.
8
9
  */
9
- export interface EditNpmPackageOptions {
10
+ export interface EditPackageJsonOptions {
10
11
  /**
11
12
  * The current working directory where `package.json` is located.
12
13
  */
@@ -14,69 +15,53 @@ export interface EditNpmPackageOptions {
14
15
  /**
15
16
  * If true, skips editing if the file does not exist.
16
17
  */
17
- skipIfMissing?: boolean | undefined;
18
+ shouldSkipIfMissing?: boolean | undefined;
18
19
  }
19
20
  /**
20
- * Represents the structure of an `NpmPackage` as defined in a `package.json` file.
21
+ * The type of the `package.json` file.
21
22
  */
22
- export interface NpmPackage {
23
- /**
24
- * An optional object that contains the package's dependencies, where the key is the package name
25
- * and the value is the version required.
26
- */
27
- dependencies?: Record<string, string>;
28
- /**
29
- * An optional object that contains the package's development dependencies, where the key is the package name
30
- * and the value is the version required.
31
- */
32
- devDependencies?: Record<string, string>;
33
- /**
34
- * An optional object that defines the package's export mappings, where the key is the export name
35
- * and the value is the export details.
36
- */
37
- exports?: Record<string, Export>;
38
- /**
39
- * The name of the package.
40
- */
41
- name: string;
42
- /**
43
- * An optional object that contains the package's peer dependencies, where the key is the package name
44
- */
45
- packages?: Record<string, NpmPackage>;
46
- /**
47
- * The version of the package.
48
- */
49
- version: string;
50
- }
23
+ export type { PackageJson };
51
24
  /**
52
- * Represents the export details in the `exports` field of a `package.json` file.
25
+ * The type of the `package-lock.json` file.
53
26
  */
54
- interface Export {
55
- /**
56
- * The default export path for the package.
57
- */
58
- default: string;
27
+ export interface PackageLockJson extends Partial<PackageJson> {
59
28
  /**
60
- * The path to the types file for the package.
29
+ * The packages in the `package-lock.json` file.
61
30
  */
62
- types: string;
31
+ packages?: Record<string, PackageJson>;
63
32
  }
64
33
  /**
65
34
  * Reads, edits, and writes back the `package.json` file using the provided edit function.
66
35
  *
67
- * @param editFn - The function to edit the parsed `NpmPackage` object.
36
+ * @param editFn - The function to edit the parsed `PackageJson` object.
68
37
  * @param options - Additional options for editing.
69
38
  * @returns A promise that resolves when the file has been edited and written.
70
39
  */
71
- export declare function editNpmPackage(editFn: (npmPackage: NpmPackage) => MaybePromise<void>, options?: EditNpmPackageOptions): Promise<void>;
40
+ export declare function editPackageJson(editFn: (packageJson: PackageJson) => MaybePromise<void>, options?: EditPackageJsonOptions): Promise<void>;
41
+ /**
42
+ * Reads, edits, and writes back the `package.json` file using the provided edit function.
43
+ *
44
+ * @param editFn - The function to edit the parsed `PackageJson` object.
45
+ * @param options - Additional options for editing.
46
+ * @returns A promise that resolves when the file has been edited and written.
47
+ */
48
+ export declare function editPackageJsonSync(editFn: (packageJson: PackageJson) => void, options?: EditPackageJsonOptions): void;
72
49
  /**
73
50
  * Reads, edits, and writes back the `package-lock.json` file using the provided edit function.
74
51
  *
75
- * @param editFn - The function to edit the parsed `NpmPackage` object.
52
+ * @param editFn - The function to edit the parsed `PackageJson` object.
76
53
  * @param options - Additional options for editing.
77
54
  * @returns A promise that resolves when the file has been edited and written.
78
55
  */
79
- export declare function editNpmPackageLock(editFn: (npmPackage: NpmPackage) => MaybePromise<void>, options?: EditNpmPackageOptions): Promise<void>;
56
+ export declare function editPackageLockJson(editFn: (PackageLockJson: PackageLockJson) => MaybePromise<void>, options?: EditPackageJsonOptions): Promise<void>;
57
+ /**
58
+ * Reads, edits, and writes back the `package-lock.json` file using the provided edit function.
59
+ *
60
+ * @param editFn - The function to edit the parsed `PackageLockJson` object.
61
+ * @param options - Additional options for editing.
62
+ * @returns A promise that resolves when the file has been edited and written.
63
+ */
64
+ export declare function editPackageLockJsonSync(editFn: (PackageLockJson: PackageLockJson) => void, options?: EditPackageJsonOptions): void;
80
65
  /**
81
66
  * Resolves the path to the `package.json` file in the specified directory or in the root if no directory is specified.
82
67
  *
@@ -95,30 +80,57 @@ export declare function getPackageLockJsonPath(cwd?: string): string;
95
80
  * Reads the `package.json` file from the specified directory or from the root if no directory is specified.
96
81
  *
97
82
  * @param cwd - The current working directory where `package.json` is located.
98
- * @returns A promise that resolves with the parsed `NpmPackage` object.
83
+ * @returns A promise that resolves with the parsed `PackageJson` object.
84
+ */
85
+ export declare function readPackageJson(cwd?: string): Promise<PackageJson>;
86
+ /**
87
+ * Reads the `package.json` file from the specified directory or from the root if no directory is specified.
88
+ *
89
+ * @param cwd - The current working directory where `package.json` is located.
90
+ * @returns The parsed `PackageJson` object.
91
+ */
92
+ export declare function readPackageJsonSync(cwd?: string): PackageJson;
93
+ /**
94
+ * Reads the `package-lock.json` file from the specified directory or from the root if no directory is specified.
95
+ *
96
+ * @param cwd - The current working directory where `package-lock.json` is located.
97
+ * @returns A promise that resolves with the parsed `PackageJson` object.
99
98
  */
100
- export declare function readNpmPackage(cwd?: string): Promise<NpmPackage>;
99
+ export declare function readPackageLockJson(cwd?: string): Promise<PackageLockJson>;
101
100
  /**
102
101
  * Reads the `package-lock.json` file from the specified directory or from the root if no directory is specified.
103
102
  *
104
103
  * @param cwd - The current working directory where `package-lock.json` is located.
105
- * @returns A promise that resolves with the parsed `NpmPackage` object.
104
+ * @returns The parsed `PackageLockJson` object.
106
105
  */
107
- export declare function readNpmPackageLock(cwd?: string): Promise<NpmPackage>;
106
+ export declare function readPackageLockJsonSync(cwd?: string): PackageLockJson;
108
107
  /**
109
- * Writes the provided `NpmPackage` object to the `package.json` file in the specified directory or in the root.
108
+ * Writes the provided `PackageJson` object to the `package.json` file in the specified directory or in the root.
110
109
  *
111
- * @param npmPackage - The `NpmPackage` object to write.
110
+ * @param packageJson - The `PackageJson` object to write.
112
111
  * @param cwd - The current working directory where `package.json` is located.
113
112
  * @returns A promise that resolves when the file has been written.
114
113
  */
115
- export declare function writeNpmPackage(npmPackage: NpmPackage, cwd?: string): Promise<void>;
114
+ export declare function writePackageJson(packageJson: PackageJson, cwd?: string): Promise<void>;
116
115
  /**
117
- * Writes the provided `NpmPackage` object to the `package-lock.json` file in the specified directory or in the root.
116
+ * Writes the provided `PackageJson` object to the `package.json` file in the specified directory or in the root.
118
117
  *
119
- * @param npmPackage - The `NpmPackage` object to write.
118
+ * @param packageJson - The `PackageJson` object to write.
119
+ * @param cwd - The current working directory where `package.json` is located.
120
+ */
121
+ export declare function writePackageJsonSync(packageJson: PackageJson, cwd?: string): void;
122
+ /**
123
+ * Writes the provided `PackageJson` object to the `package-lock.json` file in the specified directory or in the root.
124
+ *
125
+ * @param packageLockJson - The `PackageLockJson` object to write.
120
126
  * @param cwd - The current working directory where `package-lock.json` is located.
121
127
  * @returns A promise that resolves when the file has been written.
122
128
  */
123
- export declare function writeNpmPackageLock(npmPackage: NpmPackage, cwd?: string): Promise<void>;
124
- export {};
129
+ export declare function writePackageLockJson(packageLockJson: PackageLockJson, cwd?: string): Promise<void>;
130
+ /**
131
+ * Writes the provided `PackageLockJson` object to the `package-lock.json` file in the specified directory or in the root.
132
+ *
133
+ * @param packageLockJson - The `PackageLockJson` object to write.
134
+ * @param cwd - The current working directory where `package-lock.json` is located.
135
+ */
136
+ export declare function writePackageLockJsonSync(packageLockJson: PackageLockJson, cwd?: string): void;
@@ -43,7 +43,13 @@ var __process = globalThis["process"] ?? {
43
43
  "platform": "android"
44
44
  };
45
45
  function execFromRoot(command, options = {}) {
46
- const root = getRootDir(options.cwd);
46
+ let root = getRootDir(options.cwd);
47
+ if (!root) {
48
+ if (options.shouldFailIfCalledFromOutsideRoot ?? true) {
49
+ throw new Error("Could not find root directory");
50
+ }
51
+ root = options.cwd ?? __process.cwd();
52
+ }
47
53
  if (options.shouldIncludeDetails) {
48
54
  return (0, import_Exec.exec)(command, { ...options, cwd: root, shouldIncludeDetails: true });
49
55
  }
@@ -57,13 +63,20 @@ function getRootDir(cwd) {
57
63
  }
58
64
  currentDir = (0, import_Path.dirname)(currentDir);
59
65
  }
60
- throw new Error("Could not find root directory");
66
+ return null;
61
67
  }
62
68
  function resolvePathFromRoot(path, cwd) {
63
- return (0, import_Path.resolve)(getRootDir(cwd), path);
69
+ const rootDir = getRootDir(cwd);
70
+ if (!rootDir) {
71
+ return null;
72
+ }
73
+ return (0, import_Path.resolve)(rootDir, path);
64
74
  }
65
75
  function toRelativeFromRoot(path, cwd) {
66
76
  const rootDir = getRootDir(cwd);
77
+ if (!rootDir) {
78
+ return null;
79
+ }
67
80
  path = (0, import_Path.toPosixPath)(path);
68
81
  return (0, import_Path.relative)(rootDir, path);
69
82
  }
@@ -74,4 +87,4 @@ function toRelativeFromRoot(path, cwd) {
74
87
  resolvePathFromRoot,
75
88
  toRelativeFromRoot
76
89
  });
77
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvUm9vdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9fcHJvY2VzcyA9IGdsb2JhbFRoaXNbJ3Byb2Nlc3MnXSA/PyB7XG4gIFwiY3dkXCI6ICgpPT5cIi9cIixcbiAgXCJlbnZcIjoge30sXG4gIFwicGxhdGZvcm1cIjogXCJhbmRyb2lkXCJcbn07XG4vKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBSb290XG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgZXhlY3V0aW5nIGNvbW1hbmRzIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIGEgcHJvamVjdCxcbiAqIHJlc29sdmluZyBwYXRocyByZWxhdGl2ZSB0byB0aGUgcm9vdC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEV4ZWNPcHRpb24sXG4gIEV4ZWNSZXN1bHRcbn0gZnJvbSAnLi9FeGVjLnRzJztcblxuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pbixcbiAgcmVsYXRpdmUsXG4gIHJlc29sdmUsXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4uL1BhdGgudHMnO1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gJy4vRXhlYy50cyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnLi9Ob2RlTW9kdWxlcy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi9PYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLnRzJztcblxuLyoqXG4gKiBFeGVjdXRlcyBhIGNvbW1hbmQgZnJvbSB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBleGVjdXRlLiBJdCBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBleGVjdXRpb24uXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGZhbHNlLlxuICogICAgICAgICBUaGUgZXJyb3IgbWVzc2FnZSBpbmNsdWRlcyB0aGUgZXhpdCBjb2RlIGFuZCBzdGRlcnIuXG4gKiAgICAgICAgIElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBhbmQgaWdub3JlRXhpdENvZGUgaXMgdHJ1ZSxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhlY0Zyb21Sb290KGNvbW1hbmQ6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zPzogeyB3aXRoRGV0YWlscz86IGZhbHNlIH0gJiBFeGVjT3B0aW9uKTogUHJvbWlzZTxzdHJpbmc+O1xuXG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCBmcm9tIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuIEl0IGNhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGV4ZWN1dGlvbi5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggRXhlY1Jlc3VsdCBvYmplY3QuXG4gKiAgICAgICAgICBUaGUgRXhlY1Jlc3VsdCBvYmplY3QgY29udGFpbnMgdGhlIGV4aXQgY29kZSwgZXhpdCBzaWduYWwsIHN0ZGVyciwgYW5kIHN0ZG91dC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgZmFsc2UuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyB0cnVlLFxuICogICAgICAgICB0aGUgZXJyb3IgaXMgcmVzb2x2ZWQgd2l0aCB0aGUgc3Rkb3V0IGFuZCBzdGRlcnIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjRnJvbVJvb3QoY29tbWFuZDogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM6IHsgd2l0aERldGFpbHM6IHRydWUgfSAmIEV4ZWNPcHRpb24pOiBQcm9taXNlPEV4ZWNSZXN1bHQ+O1xuXG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCBmcm9tIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuIEl0IGNhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGV4ZWN1dGlvbi5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZCBvciBhbiBFeGVjUmVzdWx0IG9iamVjdC5cbiAqICAgICAgICAgIFRoZSBFeGVjUmVzdWx0IG9iamVjdCBjb250YWlucyB0aGUgZXhpdCBjb2RlLCBleGl0IHNpZ25hbCwgc3RkZXJyLCBhbmQgc3Rkb3V0LlxuICogQHRocm93cyBJZiB0aGUgY29tbWFuZCBmYWlscyB3aXRoIGEgbm9uLXplcm8gZXhpdCBjb2RlIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBmYWxzZS5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIHRydWUsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNGcm9tUm9vdChjb21tYW5kOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9uczogRXhlY09wdGlvbiA9IHt9KTogUHJvbWlzZTxFeGVjUmVzdWx0IHwgc3RyaW5nPiB7XG4gIGNvbnN0IHJvb3QgPSBnZXRSb290RGlyKG9wdGlvbnMuY3dkKTtcbiAgaWYgKG9wdGlvbnMuc2hvdWxkSW5jbHVkZURldGFpbHMpIHtcbiAgICByZXR1cm4gZXhlYyhjb21tYW5kLCB7IC4uLm9wdGlvbnMsIGN3ZDogcm9vdCwgc2hvdWxkSW5jbHVkZURldGFpbHM6IHRydWUgfSk7XG4gIH1cblxuICByZXR1cm4gZXhlYyhjb21tYW5kLCB7IC4uLm9wdGlvbnMsIGN3ZDogcm9vdCwgc2hvdWxkSW5jbHVkZURldGFpbHM6IGZhbHNlIH0pO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBwYXRoIHRvIHRoZSByb290IGRpcmVjdG9yeS5cbiAqIEB0aHJvd3MgSWYgdGhlIHJvb3QgZGlyZWN0b3J5IGNhbm5vdCBiZSBmb3VuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvb3REaXIoY3dkPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IGN1cnJlbnREaXIgPSB0b1Bvc2l4UGF0aChjd2QgPz8gcHJvY2Vzcy5jd2QoKSk7XG4gIHdoaWxlIChjdXJyZW50RGlyICE9PSAnLicgJiYgY3VycmVudERpciAhPT0gJy8nKSB7XG4gICAgaWYgKGV4aXN0c1N5bmMoam9pbihjdXJyZW50RGlyLCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlBhY2thZ2VKc29uKSkpIHtcbiAgICAgIHJldHVybiB0b1Bvc2l4UGF0aChjdXJyZW50RGlyKTtcbiAgICB9XG4gICAgY3VycmVudERpciA9IGRpcm5hbWUoY3VycmVudERpcik7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHJvb3QgZGlyZWN0b3J5Jyk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgYSBwYXRoIHJlbGF0aXZlIHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIHJlc29sdmUuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIHJlc29sdmVkIGFic29sdXRlIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUGF0aEZyb21Sb290KHBhdGg6IHN0cmluZywgY3dkPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJlc29sdmUoZ2V0Um9vdERpcihjd2QpLCBwYXRoKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhYnNvbHV0ZSBwYXRoIHRvIGEgcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIGNvbnZlcnQuXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcm9vdCBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1JlbGF0aXZlRnJvbVJvb3QocGF0aDogc3RyaW5nLCBjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCByb290RGlyID0gZ2V0Um9vdERpcihjd2QpO1xuICBwYXRoID0gdG9Qb3NpeFBhdGgocGF0aCk7XG4gIHJldHVybiByZWxhdGl2ZShyb290RGlyLCBwYXRoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQkEsa0JBTU87QUFDUCxrQkFBcUI7QUFDckIseUJBQTJCO0FBQzNCLHVDQUEwQztBQXpCMUMsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQThETyxTQUFTLGFBQWEsU0FBNEIsVUFBc0IsQ0FBQyxHQUFpQztBQUMvRyxRQUFNLE9BQU8sV0FBVyxRQUFRLEdBQUc7QUFDbkMsTUFBSSxRQUFRLHNCQUFzQjtBQUNoQyxlQUFPLGtCQUFLLFNBQVMsRUFBRSxHQUFHLFNBQVMsS0FBSyxNQUFNLHNCQUFzQixLQUFLLENBQUM7QUFBQSxFQUM1RTtBQUVBLGFBQU8sa0JBQUssU0FBUyxFQUFFLEdBQUcsU0FBUyxLQUFLLE1BQU0sc0JBQXNCLE1BQU0sQ0FBQztBQUM3RTtBQVNPLFNBQVMsV0FBVyxLQUFzQjtBQUMvQyxNQUFJLGlCQUFhLHlCQUFZLE9BQU8sVUFBUSxJQUFJLENBQUM7QUFDakQsU0FBTyxlQUFlLE9BQU8sZUFBZSxLQUFLO0FBQy9DLFlBQUksbUNBQVcsa0JBQUssWUFBWSwyREFBMEIsV0FBVyxDQUFDLEdBQUc7QUFDdkUsaUJBQU8seUJBQVksVUFBVTtBQUFBLElBQy9CO0FBQ0EscUJBQWEscUJBQVEsVUFBVTtBQUFBLEVBQ2pDO0FBRUEsUUFBTSxJQUFJLE1BQU0sK0JBQStCO0FBQ2pEO0FBU08sU0FBUyxvQkFBb0IsTUFBYyxLQUFzQjtBQUN0RSxhQUFPLHFCQUFRLFdBQVcsR0FBRyxHQUFHLElBQUk7QUFDdEM7QUFTTyxTQUFTLG1CQUFtQixNQUFjLEtBQXNCO0FBQ3JFLFFBQU0sVUFBVSxXQUFXLEdBQUc7QUFDOUIsYUFBTyx5QkFBWSxJQUFJO0FBQ3ZCLGFBQU8sc0JBQVMsU0FBUyxJQUFJO0FBQy9COyIsCiAgIm5hbWVzIjogW10KfQo=
90
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvUm9vdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9fcHJvY2VzcyA9IGdsb2JhbFRoaXNbJ3Byb2Nlc3MnXSA/PyB7XG4gIFwiY3dkXCI6ICgpPT5cIi9cIixcbiAgXCJlbnZcIjoge30sXG4gIFwicGxhdGZvcm1cIjogXCJhbmRyb2lkXCJcbn07XG4vKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBSb290XG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgZXhlY3V0aW5nIGNvbW1hbmRzIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIGEgcHJvamVjdCxcbiAqIHJlc29sdmluZyBwYXRocyByZWxhdGl2ZSB0byB0aGUgcm9vdC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEV4ZWNPcHRpb24sXG4gIEV4ZWNSZXN1bHRcbn0gZnJvbSAnLi9FeGVjLnRzJztcblxuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pbixcbiAgcmVsYXRpdmUsXG4gIHJlc29sdmUsXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4uL1BhdGgudHMnO1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gJy4vRXhlYy50cyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnLi9Ob2RlTW9kdWxlcy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi9PYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLnRzJztcblxuLyoqXG4gKiBFeGVjdXRlcyBhIGNvbW1hbmQgZnJvbSB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBleGVjdXRlLiBJdCBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBleGVjdXRpb24uXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGZhbHNlLlxuICogICAgICAgICBUaGUgZXJyb3IgbWVzc2FnZSBpbmNsdWRlcyB0aGUgZXhpdCBjb2RlIGFuZCBzdGRlcnIuXG4gKiAgICAgICAgIElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBhbmQgaWdub3JlRXhpdENvZGUgaXMgdHJ1ZSxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhlY0Zyb21Sb290KGNvbW1hbmQ6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zPzogeyB3aXRoRGV0YWlscz86IGZhbHNlIH0gJiBFeGVjT3B0aW9uKTogUHJvbWlzZTxzdHJpbmc+O1xuXG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCBmcm9tIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuIEl0IGNhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGV4ZWN1dGlvbi5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggRXhlY1Jlc3VsdCBvYmplY3QuXG4gKiAgICAgICAgICBUaGUgRXhlY1Jlc3VsdCBvYmplY3QgY29udGFpbnMgdGhlIGV4aXQgY29kZSwgZXhpdCBzaWduYWwsIHN0ZGVyciwgYW5kIHN0ZG91dC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgZmFsc2UuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyB0cnVlLFxuICogICAgICAgICB0aGUgZXJyb3IgaXMgcmVzb2x2ZWQgd2l0aCB0aGUgc3Rkb3V0IGFuZCBzdGRlcnIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjRnJvbVJvb3QoY29tbWFuZDogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM6IHsgd2l0aERldGFpbHM6IHRydWUgfSAmIEV4ZWNPcHRpb24pOiBQcm9taXNlPEV4ZWNSZXN1bHQ+O1xuXG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCBmcm9tIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuIEl0IGNhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGV4ZWN1dGlvbi5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZCBvciBhbiBFeGVjUmVzdWx0IG9iamVjdC5cbiAqICAgICAgICAgIFRoZSBFeGVjUmVzdWx0IG9iamVjdCBjb250YWlucyB0aGUgZXhpdCBjb2RlLCBleGl0IHNpZ25hbCwgc3RkZXJyLCBhbmQgc3Rkb3V0LlxuICogQHRocm93cyBJZiB0aGUgY29tbWFuZCBmYWlscyB3aXRoIGEgbm9uLXplcm8gZXhpdCBjb2RlIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBmYWxzZS5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIHRydWUsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNGcm9tUm9vdChjb21tYW5kOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9uczogRXhlY09wdGlvbiA9IHt9KTogUHJvbWlzZTxFeGVjUmVzdWx0IHwgc3RyaW5nPiB7XG4gIGxldCByb290ID0gZ2V0Um9vdERpcihvcHRpb25zLmN3ZCk7XG5cbiAgaWYgKCFyb290KSB7XG4gICAgaWYgKG9wdGlvbnMuc2hvdWxkRmFpbElmQ2FsbGVkRnJvbU91dHNpZGVSb290ID8/IHRydWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgcm9vdCBkaXJlY3RvcnknKTtcbiAgICB9XG5cbiAgICByb290ID0gb3B0aW9ucy5jd2QgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnNob3VsZEluY2x1ZGVEZXRhaWxzKSB7XG4gICAgcmV0dXJuIGV4ZWMoY29tbWFuZCwgeyAuLi5vcHRpb25zLCBjd2Q6IHJvb3QsIHNob3VsZEluY2x1ZGVEZXRhaWxzOiB0cnVlIH0pO1xuICB9XG5cbiAgcmV0dXJuIGV4ZWMoY29tbWFuZCwgeyAuLi5vcHRpb25zLCBjd2Q6IHJvb3QsIHNob3VsZEluY2x1ZGVEZXRhaWxzOiBmYWxzZSB9KTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgcGF0aCB0byB0aGUgcm9vdCBkaXJlY3RvcnkuXG4gKiBAdGhyb3dzIElmIHRoZSByb290IGRpcmVjdG9yeSBjYW5ub3QgYmUgZm91bmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290RGlyKGN3ZD86IHN0cmluZyk6IG51bGwgfCBzdHJpbmcge1xuICBsZXQgY3VycmVudERpciA9IHRvUG9zaXhQYXRoKGN3ZCA/PyBwcm9jZXNzLmN3ZCgpKTtcbiAgd2hpbGUgKGN1cnJlbnREaXIgIT09ICcuJyAmJiBjdXJyZW50RGlyICE9PSAnLycpIHtcbiAgICBpZiAoZXhpc3RzU3luYyhqb2luKGN1cnJlbnREaXIsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuUGFja2FnZUpzb24pKSkge1xuICAgICAgcmV0dXJuIHRvUG9zaXhQYXRoKGN1cnJlbnREaXIpO1xuICAgIH1cbiAgICBjdXJyZW50RGlyID0gZGlybmFtZShjdXJyZW50RGlyKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byByZXNvbHZlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBhYnNvbHV0ZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBhdGhGcm9tUm9vdChwYXRoOiBzdHJpbmcsIGN3ZD86IHN0cmluZyk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCByb290RGlyID0gZ2V0Um9vdERpcihjd2QpO1xuICBpZiAoIXJvb3REaXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiByZXNvbHZlKHJvb3REaXIsIHBhdGgpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIGFic29sdXRlIHBhdGggdG8gYSByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gY29udmVydC5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSByb290IGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUmVsYXRpdmVGcm9tUm9vdChwYXRoOiBzdHJpbmcsIGN3ZD86IHN0cmluZyk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCByb290RGlyID0gZ2V0Um9vdERpcihjd2QpO1xuICBpZiAoIXJvb3REaXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHBhdGggPSB0b1Bvc2l4UGF0aChwYXRoKTtcbiAgcmV0dXJuIHJlbGF0aXZlKHJvb3REaXIsIHBhdGgpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQSxrQkFNTztBQUNQLGtCQUFxQjtBQUNyQix5QkFBMkI7QUFDM0IsdUNBQTBDO0FBekIxQyxJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBOERPLFNBQVMsYUFBYSxTQUE0QixVQUFzQixDQUFDLEdBQWlDO0FBQy9HLE1BQUksT0FBTyxXQUFXLFFBQVEsR0FBRztBQUVqQyxNQUFJLENBQUMsTUFBTTtBQUNULFFBQUksUUFBUSxxQ0FBcUMsTUFBTTtBQUNyRCxZQUFNLElBQUksTUFBTSwrQkFBK0I7QUFBQSxJQUNqRDtBQUVBLFdBQU8sUUFBUSxPQUFPLFVBQVEsSUFBSTtBQUFBLEVBQ3BDO0FBRUEsTUFBSSxRQUFRLHNCQUFzQjtBQUNoQyxlQUFPLGtCQUFLLFNBQVMsRUFBRSxHQUFHLFNBQVMsS0FBSyxNQUFNLHNCQUFzQixLQUFLLENBQUM7QUFBQSxFQUM1RTtBQUVBLGFBQU8sa0JBQUssU0FBUyxFQUFFLEdBQUcsU0FBUyxLQUFLLE1BQU0sc0JBQXNCLE1BQU0sQ0FBQztBQUM3RTtBQVNPLFNBQVMsV0FBVyxLQUE2QjtBQUN0RCxNQUFJLGlCQUFhLHlCQUFZLE9BQU8sVUFBUSxJQUFJLENBQUM7QUFDakQsU0FBTyxlQUFlLE9BQU8sZUFBZSxLQUFLO0FBQy9DLFlBQUksbUNBQVcsa0JBQUssWUFBWSwyREFBMEIsV0FBVyxDQUFDLEdBQUc7QUFDdkUsaUJBQU8seUJBQVksVUFBVTtBQUFBLElBQy9CO0FBQ0EscUJBQWEscUJBQVEsVUFBVTtBQUFBLEVBQ2pDO0FBRUEsU0FBTztBQUNUO0FBU08sU0FBUyxvQkFBb0IsTUFBYyxLQUE2QjtBQUM3RSxRQUFNLFVBQVUsV0FBVyxHQUFHO0FBQzlCLE1BQUksQ0FBQyxTQUFTO0FBQ1osV0FBTztBQUFBLEVBQ1Q7QUFFQSxhQUFPLHFCQUFRLFNBQVMsSUFBSTtBQUM5QjtBQVNPLFNBQVMsbUJBQW1CLE1BQWMsS0FBNkI7QUFDNUUsUUFBTSxVQUFVLFdBQVcsR0FBRztBQUM5QixNQUFJLENBQUMsU0FBUztBQUNaLFdBQU87QUFBQSxFQUNUO0FBRUEsYUFBTyx5QkFBWSxJQUFJO0FBQ3ZCLGFBQU8sc0JBQVMsU0FBUyxJQUFJO0FBQy9COyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -40,7 +40,7 @@ export declare function execFromRoot(command: string | string[], options: {
40
40
  * @returns The path to the root directory.
41
41
  * @throws If the root directory cannot be found.
42
42
  */
43
- export declare function getRootDir(cwd?: string): string;
43
+ export declare function getRootDir(cwd?: string): null | string;
44
44
  /**
45
45
  * Resolves a path relative to the root directory of the project.
46
46
  *
@@ -48,7 +48,7 @@ export declare function getRootDir(cwd?: string): string;
48
48
  * @param cwd - The current working directory to resolve from.
49
49
  * @returns The resolved absolute path.
50
50
  */
51
- export declare function resolvePathFromRoot(path: string, cwd?: string): string;
51
+ export declare function resolvePathFromRoot(path: string, cwd?: string): null | string;
52
52
  /**
53
53
  * Converts an absolute path to a relative path from the root directory of the project.
54
54
  *
@@ -56,4 +56,4 @@ export declare function resolvePathFromRoot(path: string, cwd?: string): string;
56
56
  * @param cwd - The current working directory to resolve from.
57
57
  * @returns The relative path from the root directory.
58
58
  */
59
- export declare function toRelativeFromRoot(path: string, cwd?: string): string;
59
+ export declare function toRelativeFromRoot(path: string, cwd?: string): null | string;
@@ -59,9 +59,9 @@ var __import_meta_url = globalThis["import.meta.url"] ?? (() => {
59
59
  const NODE_SCRIPT_ARGV_SKIP_COUNT = 2;
60
60
  function cli(argv = import_NodeModules.process.argv.slice(NODE_SCRIPT_ARGV_SKIP_COUNT)) {
61
61
  (0, import_Async.invokeAsyncSafely)(() => (0, import_CliUtils.wrapCliTask)(async () => {
62
- const npmPackage = await (0, import_Npm.readNpmPackage)((0, import_Path.getDirname)(__import_meta_url));
62
+ const packageJson = await (0, import_Npm.readPackageJson)((0, import_Path.getDirname)(__import_meta_url));
63
63
  const program = new import_commander.Command();
64
- program.name(npmPackage.name).description("CLI for Obsidian plugin development utilities").version(npmPackage.version);
64
+ program.name(packageJson.name ?? "(unknown)").description("CLI for Obsidian plugin development utilities").version(packageJson.version ?? "(unknown)");
65
65
  addCommand(program, "build" /* Build */, "Build the plugin", () => (0, import_ObsidianPluginBuilder.buildObsidianPlugin)({ mode: import_ObsidianPluginBuilder.BuildMode.Production }));
66
66
  addCommand(program, "build:clean" /* BuildClean */, "Clean the dist folder", () => (0, import_build.buildClean)());
67
67
  addCommand(program, "build:static" /* BuildStatic */, "Copy static content to dist", () => (0, import_build.buildStatic)());
@@ -82,4 +82,4 @@ function addCommand(program, name, description, taskFn) {
82
82
  0 && (module.exports = {
83
83
  cli
84
84
  });
85
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvY2xpLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbnZhciBfX2ltcG9ydF9tZXRhX3VybCA9IGdsb2JhbFRoaXNbJ2ltcG9ydC5tZXRhLnVybCddID8/ICgoKT0+e2lmKHR5cGVvZiBtb2R1bGVbXCJleHBvcnRzXCJdIT09XCJ1bmRlZmluZWRcIil7Y29uc3QgdXJsPXJlcXVpcmUoXCJub2RlOnVybFwiKTtyZXR1cm4gdXJsLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkuaHJlZn1pZih0eXBlb2Ygd2luZG93IT09XCJ1bmRlZmluZWRcIil7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmfXJldHVyblwiXCJ9KSgpO1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gY2xpXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGEgQ0xJIGZvciBtYW5hZ2luZyB2YXJpb3VzIHRhc2tzIHJlbGF0ZWQgdG8gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICogSXQgbGV2ZXJhZ2VzIHRoZSBgY29tbWFuZGVyYCBsaWJyYXJ5IHRvIGRlZmluZSBjb21tYW5kcyBmb3IgYnVpbGRpbmcsIGxpbnRpbmcsIHNwZWxsY2hlY2tpbmcsXG4gKiBhbmQgdXBkYXRpbmcgdGhlIHZlcnNpb24gb2YgdGhlIHBsdWdpbi4gVGhlIENMSSBpcyBkZXNpZ25lZCB0byBiZSBmbGV4aWJsZSBhbmQgY2FuIGhhbmRsZSBib3RoXG4gKiBzeW5jaHJvbm91cyBhbmQgYXN5bmNocm9ub3VzIHRhc2tzLlxuICovXG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSB9IGZyb20gJy4uL0FzeW5jLnRzJztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tICcuLi9Bc3luYy50cyc7XG5pbXBvcnQgeyBnZXREaXJuYW1lIH0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQge1xuICBidWlsZENsZWFuLFxuICBidWlsZFN0YXRpYyxcbiAgYnVpbGRWYWxpZGF0ZVxufSBmcm9tICcuL2J1aWxkLnRzJztcbmltcG9ydCB7XG4gIENsaVRhc2tSZXN1bHQsXG4gIHdyYXBDbGlUYXNrXG59IGZyb20gJy4vQ2xpVXRpbHMudHMnO1xuaW1wb3J0IHtcbiAgQnVpbGRNb2RlLFxuICBidWlsZE9ic2lkaWFuUGx1Z2luXG59IGZyb20gJy4vZXNidWlsZC9PYnNpZGlhblBsdWdpbkJ1aWxkZXIudHMnO1xuaW1wb3J0IHsgbGludCB9IGZyb20gJy4vRVNMaW50L0VTTGludC50cyc7XG5pbXBvcnQgeyBwcm9jZXNzIH0gZnJvbSAnLi9Ob2RlTW9kdWxlcy50cyc7XG5pbXBvcnQgeyByZWFkTnBtUGFja2FnZSB9IGZyb20gJy4vTnBtLnRzJztcbmltcG9ydCB7IHNwZWxsY2hlY2sgfSBmcm9tICcuL3NwZWxsY2hlY2sudHMnO1xuaW1wb3J0IHsgdXBkYXRlVmVyc2lvbiB9IGZyb20gJy4vdmVyc2lvbi50cyc7XG5cbi8qKlxuICogVGhlIG51bWJlciBvZiBsZWFkaW5nIGFyZ3VtZW50cyB0byBza2lwIHdoZW4gcGFyc2luZyBjb21tYW5kLWxpbmUgYXJndW1lbnRzLlxuICogVGhlIGZpcnN0IHR3byBlbGVtZW50cyB0eXBpY2FsbHkgcmVwcmVzZW50IHRoZSBOb2RlLmpzIGV4ZWN1dGFibGUgYW5kIHRoZSBzY3JpcHQgcGF0aDpcbiAqIGBbXCJub2RlXCIsIFwicGF0aC90by9jbGkuY2pzXCIsIC4uLmFjdHVhbEFyZ3NdYFxuICovXG5jb25zdCBOT0RFX1NDUklQVF9BUkdWX1NLSVBfQ09VTlQgPSAyO1xuXG4vKipcbiAqIEVudW0gcmVwcmVzZW50aW5nIHRoZSBuYW1lcyBvZiB0aGUgY29tbWFuZHMgYXZhaWxhYmxlIGluIHRoZSBDTEkuXG4gKi9cbmVudW0gQ29tbWFuZE5hbWVzIHtcbiAgQnVpbGQgPSAnYnVpbGQnLFxuICBCdWlsZENsZWFuID0gJ2J1aWxkOmNsZWFuJyxcbiAgQnVpbGRTdGF0aWMgPSAnYnVpbGQ6c3RhdGljJyxcbiAgQnVpbGRWYWxpZGF0ZSA9ICdidWlsZDp2YWxpZGF0ZScsXG4gIERldiA9ICdkZXYnLFxuICBMaW50ID0gJ2xpbnQnLFxuICBMaW50Rml4ID0gJ2xpbnQ6Zml4JyxcbiAgU3BlbGxjaGVjayA9ICdzcGVsbGNoZWNrJyxcbiAgVmVyc2lvbiA9ICd2ZXJzaW9uJ1xufVxuXG4vKipcbiAqIE1haW4gZnVuY3Rpb24gdG8gcnVuIHRoZSBDTEkuIEl0IHNldHMgdXAgdGhlIGNvbW1hbmRzIHVzaW5nIHRoZSBgY29tbWFuZGVyYCBsaWJyYXJ5IGFuZFxuICogaGFuZGxlcyB0aGUgZXhlY3V0aW9uIG9mIHRhc2tzIGxpa2UgYnVpbGRpbmcsIGNsZWFuaW5nLCBsaW50aW5nLCBzcGVsbGNoZWNraW5nLCBhbmQgdmVyc2lvbmluZy5cbiAqXG4gKiBAcGFyYW0gYXJndiAtIFRoZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHRvIHBhcnNlLiBEZWZhdWx0cyB0byBgcHJvY2Vzcy5hcmd2YCBtaW51cyB0aGUgZmlyc3QgdHdvIGVsZW1lbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xpKGFyZ3Y6IHN0cmluZ1tdID0gcHJvY2Vzcy5hcmd2LnNsaWNlKE5PREVfU0NSSVBUX0FSR1ZfU0tJUF9DT1VOVCkpOiB2b2lkIHtcbiAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gd3JhcENsaVRhc2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG5wbVBhY2thZ2UgPSBhd2FpdCByZWFkTnBtUGFja2FnZShnZXREaXJuYW1lKGltcG9ydC5tZXRhLnVybCkpO1xuICAgIGNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXG4gICAgcHJvZ3JhbVxuICAgICAgLm5hbWUobnBtUGFja2FnZS5uYW1lKVxuICAgICAgLmRlc2NyaXB0aW9uKCdDTEkgZm9yIE9ic2lkaWFuIHBsdWdpbiBkZXZlbG9wbWVudCB1dGlsaXRpZXMnKVxuICAgICAgLnZlcnNpb24obnBtUGFja2FnZS52ZXJzaW9uKTtcblxuICAgIGFkZENvbW1hbmQocHJvZ3JhbSwgQ29tbWFuZE5hbWVzLkJ1aWxkLCAnQnVpbGQgdGhlIHBsdWdpbicsICgpID0+IGJ1aWxkT2JzaWRpYW5QbHVnaW4oeyBtb2RlOiBCdWlsZE1vZGUuUHJvZHVjdGlvbiB9KSk7XG4gICAgYWRkQ29tbWFuZChwcm9ncmFtLCBDb21tYW5kTmFtZXMuQnVpbGRDbGVhbiwgJ0NsZWFuIHRoZSBkaXN0IGZvbGRlcicsICgpID0+IGJ1aWxkQ2xlYW4oKSk7XG4gICAgYWRkQ29tbWFuZChwcm9ncmFtLCBDb21tYW5kTmFtZXMuQnVpbGRTdGF0aWMsICdDb3B5IHN0YXRpYyBjb250ZW50IHRvIGRpc3QnLCAoKSA9PiBidWlsZFN0YXRpYygpKTtcbiAgICBhZGRDb21tYW5kKHByb2dyYW0sIENvbW1hbmROYW1lcy5CdWlsZFZhbGlkYXRlLCAnVmFsaWRhdGVzIGlmIFR5cGVTY3JpcHQgY29kZSBjb21waWxlcycsICgpID0+IGJ1aWxkVmFsaWRhdGUoKSk7XG4gICAgYWRkQ29tbWFuZChwcm9ncmFtLCBDb21tYW5kTmFtZXMuRGV2LCAnQnVpbGQgdGhlIHBsdWdpbiBpbiBkZXZlbG9wbWVudCBtb2RlJywgKCkgPT4gYnVpbGRPYnNpZGlhblBsdWdpbih7IG1vZGU6IEJ1aWxkTW9kZS5EZXZlbG9wbWVudCB9KSk7XG4gICAgYWRkQ29tbWFuZChwcm9ncmFtLCBDb21tYW5kTmFtZXMuTGludCwgJ0xpbnQgdGhlIHNvdXJjZSBjb2RlJywgKCkgPT4gbGludCgpKTtcbiAgICBhZGRDb21tYW5kKHByb2dyYW0sIENvbW1hbmROYW1lcy5MaW50Rml4LCAnTGludCB0aGUgc291cmNlIGNvZGUgYW5kIGFwcGx5IGF1dG9tYXRpYyBmaXhlcycsICgpID0+IGxpbnQodHJ1ZSkpO1xuICAgIGFkZENvbW1hbmQocHJvZ3JhbSwgQ29tbWFuZE5hbWVzLlNwZWxsY2hlY2ssICdTcGVsbGNoZWNrIHRoZSBzb3VyY2UgY29kZScsICgpID0+IHNwZWxsY2hlY2soKSk7XG4gICAgYWRkQ29tbWFuZChwcm9ncmFtLCBDb21tYW5kTmFtZXMuVmVyc2lvbiwgJ1JlbGVhc2UgYSBuZXcgdmVyc2lvbicsICh2ZXJzaW9uVXBkYXRlVHlwZTogc3RyaW5nKSA9PiB1cGRhdGVWZXJzaW9uKHZlcnNpb25VcGRhdGVUeXBlKSlcbiAgICAgIC5hcmd1bWVudCgnW3ZlcnNpb25VcGRhdGVUeXBlXScsICdWZXJzaW9uIHVwZGF0ZSB0eXBlOiBtYWpvciwgbWlub3IsIHBhdGNoLCBiZXRhLCBvciB4Lnkuelstc3VmZml4XScpO1xuICAgIGF3YWl0IHByb2dyYW0ucGFyc2VBc3luYyhhcmd2LCB7IGZyb206ICd1c2VyJyB9KTtcbiAgICByZXR1cm4gQ2xpVGFza1Jlc3VsdC5Eb05vdEV4aXQoKTtcbiAgfSkpO1xufVxuXG4vKipcbiAqIEFkZHMgYSBjb21tYW5kIHRvIHRoZSBDTEkgcHJvZ3JhbSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSwgZGVzY3JpcHRpb24sIGFuZCB0YXNrIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBwcm9ncmFtIC0gVGhlIGBjb21tYW5kZXJgIHByb2dyYW0gaW5zdGFuY2UgdG8gd2hpY2ggdGhlIGNvbW1hbmQgaXMgYWRkZWQuXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBjb21tYW5kLlxuICogQHBhcmFtIGRlc2NyaXB0aW9uIC0gQSBicmllZiBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoZSBjb21tYW5kIGRvZXMuXG4gKiBAcGFyYW0gdGFza0ZuIC0gVGhlIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgd2hlbiB0aGUgY29tbWFuZCBpcyBpbnZva2VkLiBDYW4gcmV0dXJuIGEgYFRhc2tSZXN1bHRgIG9yIHZvaWQuXG4gKiBAcmV0dXJucyBUaGUgYGNvbW1hbmRlcmAgY29tbWFuZCBpbnN0YW5jZSBmb3IgZnVydGhlciBjaGFpbmluZy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLXBhcmFtZXRlcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbnZhbGlkLXZvaWQtdHlwZVxuZnVuY3Rpb24gYWRkQ29tbWFuZDxBcmdzIGV4dGVuZHMgdW5rbm93bltdPihwcm9ncmFtOiBDb21tYW5kLCBuYW1lOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcsIHRhc2tGbjogKC4uLmFyZ3M6IEFyZ3MpID0+IE1heWJlUHJvbWlzZTxDbGlUYXNrUmVzdWx0IHwgdm9pZD4pOiBDb21tYW5kIHtcbiAgcmV0dXJuIHByb2dyYW0uY29tbWFuZChuYW1lKVxuICAgIC5kZXNjcmlwdGlvbihkZXNjcmlwdGlvbilcbiAgICAuYWN0aW9uKCguLi5hcmdzOiBBcmdzKSA9PiB3cmFwQ2xpVGFzaygoKSA9PiB0YXNrRm4oLi4uYXJncykpKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQSx1QkFBd0I7QUFJeEIsbUJBQWtDO0FBQ2xDLGtCQUEyQjtBQUMzQixtQkFJTztBQUNQLHNCQUdPO0FBQ1AsbUNBR087QUFDUCxvQkFBcUI7QUFDckIseUJBQXdCO0FBQ3hCLGlCQUErQjtBQUMvQix3QkFBMkI7QUFDM0IscUJBQThCO0FBckM5QixJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBQ0EsSUFBSSxvQkFBb0IsV0FBVyxpQkFBaUIsTUFBTSxNQUFJO0FBQUMsTUFBRyxPQUFPLE9BQU8sU0FBUyxNQUFJLGFBQVk7QUFBQyxVQUFNLE1BQUksUUFBUSxVQUFVO0FBQUUsV0FBTyxJQUFJLGNBQWMsVUFBVSxFQUFFO0FBQUEsRUFBSTtBQUFDLE1BQUcsT0FBTyxXQUFTLGFBQVk7QUFBQyxXQUFPLE9BQU8sU0FBUztBQUFBLEVBQUk7QUFBQyxTQUFNO0FBQUUsR0FBRztBQXVDelAsTUFBTSw4QkFBOEI7QUF1QjdCLFNBQVMsSUFBSSxPQUFpQiwyQkFBUSxLQUFLLE1BQU0sMkJBQTJCLEdBQVM7QUFDMUYsc0NBQWtCLFVBQU0sNkJBQVksWUFBWTtBQUM5QyxVQUFNLGFBQWEsVUFBTSwrQkFBZSx3QkFBVyxpQkFBZSxDQUFDO0FBQ25FLFVBQU0sVUFBVSxJQUFJLHlCQUFRO0FBRTVCLFlBQ0csS0FBSyxXQUFXLElBQUksRUFDcEIsWUFBWSwrQ0FBK0MsRUFDM0QsUUFBUSxXQUFXLE9BQU87QUFFN0IsZUFBVyxTQUFTLHFCQUFvQixvQkFBb0IsVUFBTSxrREFBb0IsRUFBRSxNQUFNLHVDQUFVLFdBQVcsQ0FBQyxDQUFDO0FBQ3JILGVBQVcsU0FBUyxnQ0FBeUIseUJBQXlCLFVBQU0seUJBQVcsQ0FBQztBQUN4RixlQUFXLFNBQVMsa0NBQTBCLCtCQUErQixVQUFNLDBCQUFZLENBQUM7QUFDaEcsZUFBVyxTQUFTLHNDQUE0Qix5Q0FBeUMsVUFBTSw0QkFBYyxDQUFDO0FBQzlHLGVBQVcsU0FBUyxpQkFBa0Isd0NBQXdDLFVBQU0sa0RBQW9CLEVBQUUsTUFBTSx1Q0FBVSxZQUFZLENBQUMsQ0FBQztBQUN4SSxlQUFXLFNBQVMsbUJBQW1CLHdCQUF3QixVQUFNLG9CQUFLLENBQUM7QUFDM0UsZUFBVyxTQUFTLDBCQUFzQixrREFBa0QsVUFBTSxvQkFBSyxJQUFJLENBQUM7QUFDNUcsZUFBVyxTQUFTLCtCQUF5Qiw4QkFBOEIsVUFBTSw4QkFBVyxDQUFDO0FBQzdGLGVBQVcsU0FBUyx5QkFBc0IseUJBQXlCLENBQUMsMEJBQThCLDhCQUFjLGlCQUFpQixDQUFDLEVBQy9ILFNBQVMsdUJBQXVCLG1FQUFtRTtBQUN0RyxVQUFNLFFBQVEsV0FBVyxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDL0MsV0FBTyw4QkFBYyxVQUFVO0FBQUEsRUFDakMsQ0FBQyxDQUFDO0FBQ0o7QUFZQSxTQUFTLFdBQW1DLFNBQWtCLE1BQWMsYUFBcUIsUUFBd0U7QUFDdkssU0FBTyxRQUFRLFFBQVEsSUFBSSxFQUN4QixZQUFZLFdBQVcsRUFDdkIsT0FBTyxJQUFJLGFBQWUsNkJBQVksTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDakU7IiwKICAibmFtZXMiOiBbXQp9Cg==
85
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvY2xpLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbnZhciBfX2ltcG9ydF9tZXRhX3VybCA9IGdsb2JhbFRoaXNbJ2ltcG9ydC5tZXRhLnVybCddID8/ICgoKT0+e2lmKHR5cGVvZiBtb2R1bGVbXCJleHBvcnRzXCJdIT09XCJ1bmRlZmluZWRcIil7Y29uc3QgdXJsPXJlcXVpcmUoXCJub2RlOnVybFwiKTtyZXR1cm4gdXJsLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkuaHJlZn1pZih0eXBlb2Ygd2luZG93IT09XCJ1bmRlZmluZWRcIil7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmfXJldHVyblwiXCJ9KSgpO1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gY2xpXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGEgQ0xJIGZvciBtYW5hZ2luZyB2YXJpb3VzIHRhc2tzIHJlbGF0ZWQgdG8gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICogSXQgbGV2ZXJhZ2VzIHRoZSBgY29tbWFuZGVyYCBsaWJyYXJ5IHRvIGRlZmluZSBjb21tYW5kcyBmb3IgYnVpbGRpbmcsIGxpbnRpbmcsIHNwZWxsY2hlY2tpbmcsXG4gKiBhbmQgdXBkYXRpbmcgdGhlIHZlcnNpb24gb2YgdGhlIHBsdWdpbi4gVGhlIENMSSBpcyBkZXNpZ25lZCB0byBiZSBmbGV4aWJsZSBhbmQgY2FuIGhhbmRsZSBib3RoXG4gKiBzeW5jaHJvbm91cyBhbmQgYXN5bmNocm9ub3VzIHRhc2tzLlxuICovXG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSB9IGZyb20gJy4uL0FzeW5jLnRzJztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tICcuLi9Bc3luYy50cyc7XG5pbXBvcnQgeyBnZXREaXJuYW1lIH0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQge1xuICBidWlsZENsZWFuLFxuICBidWlsZFN0YXRpYyxcbiAgYnVpbGRWYWxpZGF0ZVxufSBmcm9tICcuL2J1aWxkLnRzJztcbmltcG9ydCB7XG4gIENsaVRhc2tSZXN1bHQsXG4gIHdyYXBDbGlUYXNrXG59IGZyb20gJy4vQ2xpVXRpbHMudHMnO1xuaW1wb3J0IHtcbiAgQnVpbGRNb2RlLFxuICBidWlsZE9ic2lkaWFuUGx1Z2luXG59IGZyb20gJy4vZXNidWlsZC9PYnNpZGlhblBsdWdpbkJ1aWxkZXIudHMnO1xuaW1wb3J0IHsgbGludCB9IGZyb20gJy4vRVNMaW50L0VTTGludC50cyc7XG5pbXBvcnQgeyBwcm9jZXNzIH0gZnJvbSAnLi9Ob2RlTW9kdWxlcy50cyc7XG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuL05wbS50cyc7XG5pbXBvcnQgeyBzcGVsbGNoZWNrIH0gZnJvbSAnLi9zcGVsbGNoZWNrLnRzJztcbmltcG9ydCB7IHVwZGF0ZVZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb24udHMnO1xuXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgbGVhZGluZyBhcmd1bWVudHMgdG8gc2tpcCB3aGVuIHBhcnNpbmcgY29tbWFuZC1saW5lIGFyZ3VtZW50cy5cbiAqIFRoZSBmaXJzdCB0d28gZWxlbWVudHMgdHlwaWNhbGx5IHJlcHJlc2VudCB0aGUgTm9kZS5qcyBleGVjdXRhYmxlIGFuZCB0aGUgc2NyaXB0IHBhdGg6XG4gKiBgW1wibm9kZVwiLCBcInBhdGgvdG8vY2xpLmNqc1wiLCAuLi5hY3R1YWxBcmdzXWBcbiAqL1xuY29uc3QgTk9ERV9TQ1JJUFRfQVJHVl9TS0lQX0NPVU5UID0gMjtcblxuLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgbmFtZXMgb2YgdGhlIGNvbW1hbmRzIGF2YWlsYWJsZSBpbiB0aGUgQ0xJLlxuICovXG5lbnVtIENvbW1hbmROYW1lcyB7XG4gIEJ1aWxkID0gJ2J1aWxkJyxcbiAgQnVpbGRDbGVhbiA9ICdidWlsZDpjbGVhbicsXG4gIEJ1aWxkU3RhdGljID0gJ2J1aWxkOnN0YXRpYycsXG4gIEJ1aWxkVmFsaWRhdGUgPSAnYnVpbGQ6dmFsaWRhdGUnLFxuICBEZXYgPSAnZGV2JyxcbiAgTGludCA9ICdsaW50JyxcbiAgTGludEZpeCA9ICdsaW50OmZpeCcsXG4gIFNwZWxsY2hlY2sgPSAnc3BlbGxjaGVjaycsXG4gIFZlcnNpb24gPSAndmVyc2lvbidcbn1cblxuLyoqXG4gKiBNYWluIGZ1bmN0aW9uIHRvIHJ1biB0aGUgQ0xJLiBJdCBzZXRzIHVwIHRoZSBjb21tYW5kcyB1c2luZyB0aGUgYGNvbW1hbmRlcmAgbGlicmFyeSBhbmRcbiAqIGhhbmRsZXMgdGhlIGV4ZWN1dGlvbiBvZiB0YXNrcyBsaWtlIGJ1aWxkaW5nLCBjbGVhbmluZywgbGludGluZywgc3BlbGxjaGVja2luZywgYW5kIHZlcnNpb25pbmcuXG4gKlxuICogQHBhcmFtIGFyZ3YgLSBUaGUgY29tbWFuZC1saW5lIGFyZ3VtZW50cyB0byBwYXJzZS4gRGVmYXVsdHMgdG8gYHByb2Nlc3MuYXJndmAgbWludXMgdGhlIGZpcnN0IHR3byBlbGVtZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsaShhcmd2OiBzdHJpbmdbXSA9IHByb2Nlc3MuYXJndi5zbGljZShOT0RFX1NDUklQVF9BUkdWX1NLSVBfQ09VTlQpKTogdm9pZCB7XG4gIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IHdyYXBDbGlUYXNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbihnZXREaXJuYW1lKGltcG9ydC5tZXRhLnVybCkpO1xuICAgIGNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXG4gICAgcHJvZ3JhbVxuICAgICAgLm5hbWUocGFja2FnZUpzb24ubmFtZSA/PyAnKHVua25vd24pJylcbiAgICAgIC5kZXNjcmlwdGlvbignQ0xJIGZvciBPYnNpZGlhbiBwbHVnaW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzJylcbiAgICAgIC52ZXJzaW9uKHBhY2thZ2VKc29uLnZlcnNpb24gPz8gJyh1bmtub3duKScpO1xuXG4gICAgYWRkQ29tbWFuZChwcm9ncmFtLCBDb21tYW5kTmFtZXMuQnVpbGQsICdCdWlsZCB0aGUgcGx1Z2luJywgKCkgPT4gYnVpbGRPYnNpZGlhblBsdWdpbih7IG1vZGU6IEJ1aWxkTW9kZS5Qcm9kdWN0aW9uIH0pKTtcbiAgICBhZGRDb21tYW5kKHByb2dyYW0sIENvbW1hbmROYW1lcy5CdWlsZENsZWFuLCAnQ2xlYW4gdGhlIGRpc3QgZm9sZGVyJywgKCkgPT4gYnVpbGRDbGVhbigpKTtcbiAgICBhZGRDb21tYW5kKHByb2dyYW0sIENvbW1hbmROYW1lcy5CdWlsZFN0YXRpYywgJ0NvcHkgc3RhdGljIGNvbnRlbnQgdG8gZGlzdCcsICgpID0+IGJ1aWxkU3RhdGljKCkpO1xuICAgIGFkZENvbW1hbmQocHJvZ3JhbSwgQ29tbWFuZE5hbWVzLkJ1aWxkVmFsaWRhdGUsICdWYWxpZGF0ZXMgaWYgVHlwZVNjcmlwdCBjb2RlIGNvbXBpbGVzJywgKCkgPT4gYnVpbGRWYWxpZGF0ZSgpKTtcbiAgICBhZGRDb21tYW5kKHByb2dyYW0sIENvbW1hbmROYW1lcy5EZXYsICdCdWlsZCB0aGUgcGx1Z2luIGluIGRldmVsb3BtZW50IG1vZGUnLCAoKSA9PiBidWlsZE9ic2lkaWFuUGx1Z2luKHsgbW9kZTogQnVpbGRNb2RlLkRldmVsb3BtZW50IH0pKTtcbiAgICBhZGRDb21tYW5kKHByb2dyYW0sIENvbW1hbmROYW1lcy5MaW50LCAnTGludCB0aGUgc291cmNlIGNvZGUnLCAoKSA9PiBsaW50KCkpO1xuICAgIGFkZENvbW1hbmQocHJvZ3JhbSwgQ29tbWFuZE5hbWVzLkxpbnRGaXgsICdMaW50IHRoZSBzb3VyY2UgY29kZSBhbmQgYXBwbHkgYXV0b21hdGljIGZpeGVzJywgKCkgPT4gbGludCh0cnVlKSk7XG4gICAgYWRkQ29tbWFuZChwcm9ncmFtLCBDb21tYW5kTmFtZXMuU3BlbGxjaGVjaywgJ1NwZWxsY2hlY2sgdGhlIHNvdXJjZSBjb2RlJywgKCkgPT4gc3BlbGxjaGVjaygpKTtcbiAgICBhZGRDb21tYW5kKHByb2dyYW0sIENvbW1hbmROYW1lcy5WZXJzaW9uLCAnUmVsZWFzZSBhIG5ldyB2ZXJzaW9uJywgKHZlcnNpb25VcGRhdGVUeXBlOiBzdHJpbmcpID0+IHVwZGF0ZVZlcnNpb24odmVyc2lvblVwZGF0ZVR5cGUpKVxuICAgICAgLmFyZ3VtZW50KCdbdmVyc2lvblVwZGF0ZVR5cGVdJywgJ1ZlcnNpb24gdXBkYXRlIHR5cGU6IG1ham9yLCBtaW5vciwgcGF0Y2gsIGJldGEsIG9yIHgueS56Wy1zdWZmaXhdJyk7XG4gICAgYXdhaXQgcHJvZ3JhbS5wYXJzZUFzeW5jKGFyZ3YsIHsgZnJvbTogJ3VzZXInIH0pO1xuICAgIHJldHVybiBDbGlUYXNrUmVzdWx0LkRvTm90RXhpdCgpO1xuICB9KSk7XG59XG5cbi8qKlxuICogQWRkcyBhIGNvbW1hbmQgdG8gdGhlIENMSSBwcm9ncmFtIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLCBkZXNjcmlwdGlvbiwgYW5kIHRhc2sgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHByb2dyYW0gLSBUaGUgYGNvbW1hbmRlcmAgcHJvZ3JhbSBpbnN0YW5jZSB0byB3aGljaCB0aGUgY29tbWFuZCBpcyBhZGRlZC5cbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGNvbW1hbmQuXG4gKiBAcGFyYW0gZGVzY3JpcHRpb24gLSBBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhlIGNvbW1hbmQgZG9lcy5cbiAqIEBwYXJhbSB0YXNrRm4gLSBUaGUgZnVuY3Rpb24gdG8gZXhlY3V0ZSB3aGVuIHRoZSBjb21tYW5kIGlzIGludm9rZWQuIENhbiByZXR1cm4gYSBgVGFza1Jlc3VsdGAgb3Igdm9pZC5cbiAqIEByZXR1cm5zIFRoZSBgY29tbWFuZGVyYCBjb21tYW5kIGluc3RhbmNlIGZvciBmdXJ0aGVyIGNoYWluaW5nLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWludmFsaWQtdm9pZC10eXBlXG5mdW5jdGlvbiBhZGRDb21tYW5kPEFyZ3MgZXh0ZW5kcyB1bmtub3duW10+KHByb2dyYW06IENvbW1hbmQsIG5hbWU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdGFza0ZuOiAoLi4uYXJnczogQXJncykgPT4gTWF5YmVQcm9taXNlPENsaVRhc2tSZXN1bHQgfCB2b2lkPik6IENvbW1hbmQge1xuICByZXR1cm4gcHJvZ3JhbS5jb21tYW5kKG5hbWUpXG4gICAgLmRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKVxuICAgIC5hY3Rpb24oKC4uLmFyZ3M6IEFyZ3MpID0+IHdyYXBDbGlUYXNrKCgpID0+IHRhc2tGbiguLi5hcmdzKSkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBLHVCQUF3QjtBQUl4QixtQkFBa0M7QUFDbEMsa0JBQTJCO0FBQzNCLG1CQUlPO0FBQ1Asc0JBR087QUFDUCxtQ0FHTztBQUNQLG9CQUFxQjtBQUNyQix5QkFBd0I7QUFDeEIsaUJBQWdDO0FBQ2hDLHdCQUEyQjtBQUMzQixxQkFBOEI7QUFyQzlCLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUFDQSxJQUFJLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLE1BQUk7QUFBQyxNQUFHLE9BQU8sT0FBTyxTQUFTLE1BQUksYUFBWTtBQUFDLFVBQU0sTUFBSSxRQUFRLFVBQVU7QUFBRSxXQUFPLElBQUksY0FBYyxVQUFVLEVBQUU7QUFBQSxFQUFJO0FBQUMsTUFBRyxPQUFPLFdBQVMsYUFBWTtBQUFDLFdBQU8sT0FBTyxTQUFTO0FBQUEsRUFBSTtBQUFDLFNBQU07QUFBRSxHQUFHO0FBdUN6UCxNQUFNLDhCQUE4QjtBQXVCN0IsU0FBUyxJQUFJLE9BQWlCLDJCQUFRLEtBQUssTUFBTSwyQkFBMkIsR0FBUztBQUMxRixzQ0FBa0IsVUFBTSw2QkFBWSxZQUFZO0FBQzlDLFVBQU0sY0FBYyxVQUFNLGdDQUFnQix3QkFBVyxpQkFBZSxDQUFDO0FBQ3JFLFVBQU0sVUFBVSxJQUFJLHlCQUFRO0FBRTVCLFlBQ0csS0FBSyxZQUFZLFFBQVEsV0FBVyxFQUNwQyxZQUFZLCtDQUErQyxFQUMzRCxRQUFRLFlBQVksV0FBVyxXQUFXO0FBRTdDLGVBQVcsU0FBUyxxQkFBb0Isb0JBQW9CLFVBQU0sa0RBQW9CLEVBQUUsTUFBTSx1Q0FBVSxXQUFXLENBQUMsQ0FBQztBQUNySCxlQUFXLFNBQVMsZ0NBQXlCLHlCQUF5QixVQUFNLHlCQUFXLENBQUM7QUFDeEYsZUFBVyxTQUFTLGtDQUEwQiwrQkFBK0IsVUFBTSwwQkFBWSxDQUFDO0FBQ2hHLGVBQVcsU0FBUyxzQ0FBNEIseUNBQXlDLFVBQU0sNEJBQWMsQ0FBQztBQUM5RyxlQUFXLFNBQVMsaUJBQWtCLHdDQUF3QyxVQUFNLGtEQUFvQixFQUFFLE1BQU0sdUNBQVUsWUFBWSxDQUFDLENBQUM7QUFDeEksZUFBVyxTQUFTLG1CQUFtQix3QkFBd0IsVUFBTSxvQkFBSyxDQUFDO0FBQzNFLGVBQVcsU0FBUywwQkFBc0Isa0RBQWtELFVBQU0sb0JBQUssSUFBSSxDQUFDO0FBQzVHLGVBQVcsU0FBUywrQkFBeUIsOEJBQThCLFVBQU0sOEJBQVcsQ0FBQztBQUM3RixlQUFXLFNBQVMseUJBQXNCLHlCQUF5QixDQUFDLDBCQUE4Qiw4QkFBYyxpQkFBaUIsQ0FBQyxFQUMvSCxTQUFTLHVCQUF1QixtRUFBbUU7QUFDdEcsVUFBTSxRQUFRLFdBQVcsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQy9DLFdBQU8sOEJBQWMsVUFBVTtBQUFBLEVBQ2pDLENBQUMsQ0FBQztBQUNKO0FBWUEsU0FBUyxXQUFtQyxTQUFrQixNQUFjLGFBQXFCLFFBQXdFO0FBQ3ZLLFNBQU8sUUFBUSxRQUFRLElBQUksRUFDeEIsWUFBWSxXQUFXLEVBQ3ZCLE9BQU8sSUFBSSxhQUFlLDZCQUFZLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ2pFOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -83,8 +83,8 @@ async function getDependenciesToBundle() {
83
83
  return Array.from(dependenciesToBundle).sort();
84
84
  }
85
85
  async function getDependenciesToSkip() {
86
- const npmPackage = await (0, import_Npm.readNpmPackage)((0, import_Path.getDirname)(__import_meta_url));
87
- const dependenciesToSkip = /* @__PURE__ */ new Set([...import_NodeModules.builtinModules, ...Object.keys(npmPackage.dependencies ?? {}).filter(canSkipFromBundling)]);
86
+ const packageJson = await (0, import_Npm.readPackageJson)((0, import_Path.getDirname)(__import_meta_url));
87
+ const dependenciesToSkip = /* @__PURE__ */ new Set([...import_NodeModules.builtinModules, ...Object.keys(packageJson.dependencies ?? {}).filter(canSkipFromBundling)]);
88
88
  return dependenciesToSkip;
89
89
  }
90
90
  function canSkipFromBundling(moduleName) {
@@ -125,4 +125,4 @@ function extractDependenciesToBundlePlugin(dependenciesToSkip, dependenciesToBun
125
125
  getDependenciesToBundle,
126
126
  getDependenciesToSkip
127
127
  });
128
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdHMvZXNidWlsZC9EZXBlbmRlbmN5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbnZhciBfX2ltcG9ydF9tZXRhX3VybCA9IGdsb2JhbFRoaXNbJ2ltcG9ydC5tZXRhLnVybCddID8/ICgoKT0+e2lmKHR5cGVvZiBtb2R1bGVbXCJleHBvcnRzXCJdIT09XCJ1bmRlZmluZWRcIil7Y29uc3QgdXJsPXJlcXVpcmUoXCJub2RlOnVybFwiKTtyZXR1cm4gdXJsLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkuaHJlZn1pZih0eXBlb2Ygd2luZG93IT09XCJ1bmRlZmluZWRcIil7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmfXJldHVyblwiXCJ9KSgpO1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gRGVwZW5kZW5jeVxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0aWVzIGZvciBtYW5hZ2luZyBkZXBlbmRlbmNpZXMgZHVyaW5nIHRoZSBlc2J1aWxkIHByb2Nlc3MuXG4gKiBJdCBpbmNsdWRlcyBmdW5jdGlvbnMgdG8gZGV0ZXJtaW5lIHdoaWNoIGRlcGVuZGVuY2llcyBzaG91bGQgYmUgc2tpcHBlZCBhbmQgd2hpY2hcbiAqIHNob3VsZCBiZSBidW5kbGVkLCBhcyB3ZWxsIGFzIGFuIGVzYnVpbGQgcGx1Z2luIGZvciBleHRyYWN0aW5nIGRlcGVuZGVuY2llcyB0byBidW5kbGUuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBCdWlsZE9wdGlvbnMsXG4gIFBsdWdpblxufSBmcm9tICdlc2J1aWxkJztcblxuaW1wb3J0IHsgY29udGV4dCB9IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyB0aHJvd0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9FcnJvci50cyc7XG5pbXBvcnQge1xuICBnZXREaXJuYW1lLFxuICBqb2luXG59IGZyb20gJy4uLy4uL1BhdGgudHMnO1xuaW1wb3J0IHsgdHJpbVN0YXJ0IH0gZnJvbSAnLi4vLi4vU3RyaW5nLnRzJztcbmltcG9ydCB7XG4gIGJ1aWx0aW5Nb2R1bGVzLFxuICBjcmVhdGVSZXF1aXJlXG59IGZyb20gJy4uL05vZGVNb2R1bGVzLnRzJztcbmltcG9ydCB7IHJlYWROcG1QYWNrYWdlIH0gZnJvbSAnLi4vTnBtLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuLi9PYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLnRzJztcbmltcG9ydCB7XG4gIGJhbm5lcixcbiAgaW52b2tlRXNidWlsZFxufSBmcm9tICcuL09ic2lkaWFuUGx1Z2luQnVpbGRlci50cyc7XG5pbXBvcnQgeyBwcmVwcm9jZXNzUGx1Z2luIH0gZnJvbSAnLi9wcmVwcm9jZXNzUGx1Z2luLnRzJztcblxuY29uc3QgcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxuaW50ZXJmYWNlIE1vZHVsZVdpdGhEZWZhdWx0RXhwb3J0IHtcbiAgZGVmYXVsdDogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoaWNoIGRlcGVuZGVuY2llcyBzaG91bGQgYmUgYnVuZGxlZCBieSBlc2J1aWxkLlxuICpcbiAqIEByZXR1cm5zIEEgYFByb21pc2VgIHRoYXQgcmVzb2x2ZXMgdG8gYW4gYXJyYXkgb2YgZGVwZW5kZW5jeSBuYW1lcyB0byBidW5kbGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREZXBlbmRlbmNpZXNUb0J1bmRsZSgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IGRlcGVuZGVuY2llc1RvU2tpcCA9IGF3YWl0IGdldERlcGVuZGVuY2llc1RvU2tpcCgpO1xuICBjb25zdCBkZXBlbmRlbmNpZXNUb0J1bmRsZSA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0IGJ1aWxkT3B0aW9uczogQnVpbGRPcHRpb25zID0ge1xuICAgIGJhbm5lcjoge1xuICAgICAganM6IGJhbm5lclxuICAgIH0sXG4gICAgYnVuZGxlOiB0cnVlLFxuICAgIGVudHJ5UG9pbnRzOiBbam9pbihPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkFueVRzKV0sXG4gICAgZm9ybWF0OiAnY2pzJyxcbiAgICBsb2dMZXZlbDogJ2luZm8nLFxuICAgIG91dGRpcjogJ25vdGhpbmctd2lsbC1iZS13cml0dGVuLW9uLWRpc2stc28tdGhpcy1kb2VzLW5vdC1tYXR0ZXInLFxuICAgIHBsYXRmb3JtOiAnbm9kZScsXG4gICAgcGx1Z2luczogW1xuICAgICAgcHJlcHJvY2Vzc1BsdWdpbigpLFxuICAgICAgZXh0cmFjdERlcGVuZGVuY2llc1RvQnVuZGxlUGx1Z2luKGRlcGVuZGVuY2llc1RvU2tpcCwgZGVwZW5kZW5jaWVzVG9CdW5kbGUpXG4gICAgXSxcbiAgICBzb3VyY2VtYXA6ICdpbmxpbmUnLFxuICAgIHRhcmdldDogJ0VTTmV4dCcsXG4gICAgdHJlZVNoYWtpbmc6IHRydWUsXG4gICAgd3JpdGU6IGZhbHNlXG4gIH07XG5cbiAgY29uc3QgYnVpbGRDb250ZXh0ID0gYXdhaXQgY29udGV4dChidWlsZE9wdGlvbnMpO1xuICBhd2FpdCBpbnZva2VFc2J1aWxkKGJ1aWxkQ29udGV4dCwgdHJ1ZSk7XG4gIHJldHVybiBBcnJheS5mcm9tKGRlcGVuZGVuY2llc1RvQnVuZGxlKS5zb3J0KCk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGRlcGVuZGVuY2llcyB0aGF0IHNob3VsZCBiZSBza2lwcGVkIGR1cmluZyB0aGUgYnVuZGxpbmcgcHJvY2Vzcy5cbiAqXG4gKiBAcmV0dXJucyBBIGBQcm9taXNlYCB0aGF0IHJlc29sdmVzIHRvIGEgYFNldGAgb2YgZGVwZW5kZW5jeSBuYW1lcyB0byBza2lwLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGVwZW5kZW5jaWVzVG9Ta2lwKCk6IFByb21pc2U8U2V0PHN0cmluZz4+IHtcbiAgY29uc3QgbnBtUGFja2FnZSA9IGF3YWl0IHJlYWROcG1QYWNrYWdlKGdldERpcm5hbWUoaW1wb3J0Lm1ldGEudXJsKSk7XG4gIGNvbnN0IGRlcGVuZGVuY2llc1RvU2tpcCA9IG5ldyBTZXQ8c3RyaW5nPihbLi4uYnVpbHRpbk1vZHVsZXMsIC4uLk9iamVjdC5rZXlzKG5wbVBhY2thZ2UuZGVwZW5kZW5jaWVzID8/IHt9KS5maWx0ZXIoY2FuU2tpcEZyb21CdW5kbGluZyldKTtcbiAgcmV0dXJuIGRlcGVuZGVuY2llc1RvU2tpcDtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBtb2R1bGUgY2FuIGJlIHNraXBwZWQgZnJvbSBidW5kbGluZy5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtb2R1bGUuXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBtb2R1bGUgY2FuIGJlIHNraXBwZWQgZnJvbSBidW5kbGluZy5cbiAqL1xuZnVuY3Rpb24gY2FuU2tpcEZyb21CdW5kbGluZyhtb2R1bGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKG1vZHVsZU5hbWUuc3RhcnRzV2l0aCgnQHR5cGVzLycpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAobW9kdWxlTmFtZS5zdGFydHNXaXRoKCdvYnNpZGlhbicpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAobW9kdWxlTmFtZSA9PT0gJ2VzYnVpbGQnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB0cnkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1keW5hbWljLXJlcXVpcmVcbiAgICBjb25zdCBtb2R1bGUgPSByZXF1aXJlKG1vZHVsZU5hbWUpIGFzIE1vZHVsZVdpdGhEZWZhdWx0RXhwb3J0O1xuICAgIHJldHVybiAhbW9kdWxlLmRlZmF1bHQ7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBpZGVudGlmaWVzIHdoaWNoIGRlcGVuZGVuY2llcyBzaG91bGQgYmUgYnVuZGxlZC5cbiAqXG4gKiBAcGFyYW0gZGVwZW5kZW5jaWVzVG9Ta2lwIC0gQSBzZXQgb2YgZGVwZW5kZW5jeSBuYW1lcyB0aGF0IHNob3VsZCBiZSBza2lwcGVkIGR1cmluZyBidW5kbGluZy5cbiAqIEBwYXJhbSBkZXBlbmRlbmNpZXNUb0J1bmRsZSAtIEEgc2V0IHdoZXJlIHRoZSBuYW1lcyBvZiBkZXBlbmRlbmNpZXMgdG8gYmUgYnVuZGxlZCB3aWxsIGJlIGFkZGVkLlxuICogQHJldHVybnMgQW4gZXNidWlsZCBgUGx1Z2luYCBvYmplY3QgdGhhdCBleHRyYWN0cyBkZXBlbmRlbmNpZXMgdG8gYnVuZGxlLlxuICovXG5mdW5jdGlvbiBleHRyYWN0RGVwZW5kZW5jaWVzVG9CdW5kbGVQbHVnaW4oZGVwZW5kZW5jaWVzVG9Ta2lwOiBTZXQ8c3RyaW5nPiwgZGVwZW5kZW5jaWVzVG9CdW5kbGU6IFNldDxzdHJpbmc+KTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAndGVzdCcsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uUmVzb2x2ZSh7IGZpbHRlcjogL15bXi4vXS8gfSwgKGFyZ3MpID0+IHtcbiAgICAgICAgaWYgKCFhcmdzLmltcG9ydGVyLmVuZHNXaXRoKCcuZC50cycpKSB7XG4gICAgICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IHRyaW1TdGFydChhcmdzLnBhdGguc3BsaXQoJy8nKVswXSA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdXcm9uZyBwYXRoJykpLCAnbm9kZTonKTtcbiAgICAgICAgICBpZiAoIWRlcGVuZGVuY2llc1RvU2tpcC5oYXMoYXJncy5wYXRoKSAmJiAhZGVwZW5kZW5jaWVzVG9Ta2lwLmhhcyhtb2R1bGVOYW1lKSkge1xuICAgICAgICAgICAgZGVwZW5kZW5jaWVzVG9CdW5kbGUuYWRkKGFyZ3MucGF0aCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGV4dGVybmFsOiB0cnVlLCBwYXRoOiBhcmdzLnBhdGggfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWtCQSxxQkFBd0I7QUFFeEIsbUJBQWdDO0FBQ2hDLGtCQUdPO0FBQ1Asb0JBQTBCO0FBQzFCLHlCQUdPO0FBQ1AsaUJBQStCO0FBQy9CLHVDQUEwQztBQUMxQyxtQ0FHTztBQUNQLDhCQUFpQztBQXBDakMsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQUNBLElBQUksb0JBQW9CLFdBQVcsaUJBQWlCLE1BQU0sTUFBSTtBQUFDLE1BQUcsT0FBTyxPQUFPLFNBQVMsTUFBSSxhQUFZO0FBQUMsVUFBTSxNQUFJQSxTQUFRLFVBQVU7QUFBRSxXQUFPLElBQUksY0FBYyxVQUFVLEVBQUU7QUFBQSxFQUFJO0FBQUMsTUFBRyxPQUFPLFdBQVMsYUFBWTtBQUFDLFdBQU8sT0FBTyxTQUFTO0FBQUEsRUFBSTtBQUFDLFNBQU07QUFBRSxHQUFHO0FBaUN6UCxNQUFNQSxlQUFVLGtDQUFjLGlCQUFlO0FBVzdDLGVBQXNCLDBCQUE2QztBQUNqRSxRQUFNLHFCQUFxQixNQUFNLHNCQUFzQjtBQUN2RCxRQUFNLHVCQUF1QixvQkFBSSxJQUFZO0FBRTdDLFFBQU0sZUFBNkI7QUFBQSxJQUNqQyxRQUFRO0FBQUEsTUFDTixJQUFJO0FBQUEsSUFDTjtBQUFBLElBQ0EsUUFBUTtBQUFBLElBQ1IsYUFBYSxLQUFDLGtCQUFLLDJEQUEwQixLQUFLLDJEQUEwQixTQUFTLDJEQUEwQixLQUFLLENBQUM7QUFBQSxJQUNySCxRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsVUFDUCwwQ0FBaUI7QUFBQSxNQUNqQixrQ0FBa0Msb0JBQW9CLG9CQUFvQjtBQUFBLElBQzVFO0FBQUEsSUFDQSxXQUFXO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixPQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sZUFBZSxVQUFNLHdCQUFRLFlBQVk7QUFDL0MsWUFBTSw0Q0FBYyxjQUFjLElBQUk7QUFDdEMsU0FBTyxNQUFNLEtBQUssb0JBQW9CLEVBQUUsS0FBSztBQUMvQztBQU9BLGVBQXNCLHdCQUE4QztBQUNsRSxRQUFNLGFBQWEsVUFBTSwrQkFBZSx3QkFBVyxpQkFBZSxDQUFDO0FBQ25FLFFBQU0scUJBQXFCLG9CQUFJLElBQVksQ0FBQyxHQUFHLG1DQUFnQixHQUFHLE9BQU8sS0FBSyxXQUFXLGdCQUFnQixDQUFDLENBQUMsRUFBRSxPQUFPLG1CQUFtQixDQUFDLENBQUM7QUFDekksU0FBTztBQUNUO0FBUUEsU0FBUyxvQkFBb0IsWUFBNkI7QUFDeEQsTUFBSSxXQUFXLFdBQVcsU0FBUyxHQUFHO0FBQ3BDLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxXQUFXLFdBQVcsVUFBVSxHQUFHO0FBQ3JDLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxlQUFlLFdBQVc7QUFDNUIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJO0FBRUYsVUFBTUMsVUFBU0QsU0FBUSxVQUFVO0FBQ2pDLFdBQU8sQ0FBQ0MsUUFBTztBQUFBLEVBQ2pCLFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUNGO0FBU0EsU0FBUyxrQ0FBa0Msb0JBQWlDLHNCQUEyQztBQUNySCxTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixNQUFNLE9BQWE7QUFDakIsWUFBTSxVQUFVLEVBQUUsUUFBUSxTQUFTLEdBQUcsQ0FBQyxTQUFTO0FBQzlDLFlBQUksQ0FBQyxLQUFLLFNBQVMsU0FBUyxPQUFPLEdBQUc7QUFDcEMsZ0JBQU0saUJBQWEseUJBQVUsS0FBSyxLQUFLLE1BQU0sR0FBRyxFQUFFLENBQUMsU0FBSyw4QkFBZ0IsSUFBSSxNQUFNLFlBQVksQ0FBQyxHQUFHLE9BQU87QUFDekcsY0FBSSxDQUFDLG1CQUFtQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsbUJBQW1CLElBQUksVUFBVSxHQUFHO0FBQzdFLGlDQUFxQixJQUFJLEtBQUssSUFBSTtBQUFBLFVBQ3BDO0FBQUEsUUFDRjtBQUNBLGVBQU8sRUFBRSxVQUFVLE1BQU0sTUFBTSxLQUFLLEtBQUs7QUFBQSxNQUMzQyxDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFsicmVxdWlyZSIsICJtb2R1bGUiXQp9Cg==
128
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdHMvZXNidWlsZC9EZXBlbmRlbmN5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbnZhciBfX2ltcG9ydF9tZXRhX3VybCA9IGdsb2JhbFRoaXNbJ2ltcG9ydC5tZXRhLnVybCddID8/ICgoKT0+e2lmKHR5cGVvZiBtb2R1bGVbXCJleHBvcnRzXCJdIT09XCJ1bmRlZmluZWRcIil7Y29uc3QgdXJsPXJlcXVpcmUoXCJub2RlOnVybFwiKTtyZXR1cm4gdXJsLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkuaHJlZn1pZih0eXBlb2Ygd2luZG93IT09XCJ1bmRlZmluZWRcIil7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmfXJldHVyblwiXCJ9KSgpO1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gRGVwZW5kZW5jeVxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0aWVzIGZvciBtYW5hZ2luZyBkZXBlbmRlbmNpZXMgZHVyaW5nIHRoZSBlc2J1aWxkIHByb2Nlc3MuXG4gKiBJdCBpbmNsdWRlcyBmdW5jdGlvbnMgdG8gZGV0ZXJtaW5lIHdoaWNoIGRlcGVuZGVuY2llcyBzaG91bGQgYmUgc2tpcHBlZCBhbmQgd2hpY2hcbiAqIHNob3VsZCBiZSBidW5kbGVkLCBhcyB3ZWxsIGFzIGFuIGVzYnVpbGQgcGx1Z2luIGZvciBleHRyYWN0aW5nIGRlcGVuZGVuY2llcyB0byBidW5kbGUuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBCdWlsZE9wdGlvbnMsXG4gIFBsdWdpblxufSBmcm9tICdlc2J1aWxkJztcblxuaW1wb3J0IHsgY29udGV4dCB9IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyB0aHJvd0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9FcnJvci50cyc7XG5pbXBvcnQge1xuICBnZXREaXJuYW1lLFxuICBqb2luXG59IGZyb20gJy4uLy4uL1BhdGgudHMnO1xuaW1wb3J0IHsgdHJpbVN0YXJ0IH0gZnJvbSAnLi4vLi4vU3RyaW5nLnRzJztcbmltcG9ydCB7XG4gIGJ1aWx0aW5Nb2R1bGVzLFxuICBjcmVhdGVSZXF1aXJlXG59IGZyb20gJy4uL05vZGVNb2R1bGVzLnRzJztcbmltcG9ydCB7IHJlYWRQYWNrYWdlSnNvbiB9IGZyb20gJy4uL05wbS50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi4vT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy50cyc7XG5pbXBvcnQge1xuICBiYW5uZXIsXG4gIGludm9rZUVzYnVpbGRcbn0gZnJvbSAnLi9PYnNpZGlhblBsdWdpbkJ1aWxkZXIudHMnO1xuaW1wb3J0IHsgcHJlcHJvY2Vzc1BsdWdpbiB9IGZyb20gJy4vcHJlcHJvY2Vzc1BsdWdpbi50cyc7XG5cbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5cbmludGVyZmFjZSBNb2R1bGVXaXRoRGVmYXVsdEV4cG9ydCB7XG4gIGRlZmF1bHQ6IHVua25vd247XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGljaCBkZXBlbmRlbmNpZXMgc2hvdWxkIGJlIGJ1bmRsZWQgYnkgZXNidWlsZC5cbiAqXG4gKiBAcmV0dXJucyBBIGBQcm9taXNlYCB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IG9mIGRlcGVuZGVuY3kgbmFtZXMgdG8gYnVuZGxlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGVwZW5kZW5jaWVzVG9CdW5kbGUoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCBkZXBlbmRlbmNpZXNUb1NraXAgPSBhd2FpdCBnZXREZXBlbmRlbmNpZXNUb1NraXAoKTtcbiAgY29uc3QgZGVwZW5kZW5jaWVzVG9CdW5kbGUgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBjb25zdCBidWlsZE9wdGlvbnM6IEJ1aWxkT3B0aW9ucyA9IHtcbiAgICBiYW5uZXI6IHtcbiAgICAgIGpzOiBiYW5uZXJcbiAgICB9LFxuICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICBlbnRyeVBvaW50czogW2pvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5TcmMsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5BbnlUcyldLFxuICAgIGZvcm1hdDogJ2NqcycsXG4gICAgbG9nTGV2ZWw6ICdpbmZvJyxcbiAgICBvdXRkaXI6ICdub3RoaW5nLXdpbGwtYmUtd3JpdHRlbi1vbi1kaXNrLXNvLXRoaXMtZG9lcy1ub3QtbWF0dGVyJyxcbiAgICBwbGF0Zm9ybTogJ25vZGUnLFxuICAgIHBsdWdpbnM6IFtcbiAgICAgIHByZXByb2Nlc3NQbHVnaW4oKSxcbiAgICAgIGV4dHJhY3REZXBlbmRlbmNpZXNUb0J1bmRsZVBsdWdpbihkZXBlbmRlbmNpZXNUb1NraXAsIGRlcGVuZGVuY2llc1RvQnVuZGxlKVxuICAgIF0sXG4gICAgc291cmNlbWFwOiAnaW5saW5lJyxcbiAgICB0YXJnZXQ6ICdFU05leHQnLFxuICAgIHRyZWVTaGFraW5nOiB0cnVlLFxuICAgIHdyaXRlOiBmYWxzZVxuICB9O1xuXG4gIGNvbnN0IGJ1aWxkQ29udGV4dCA9IGF3YWl0IGNvbnRleHQoYnVpbGRPcHRpb25zKTtcbiAgYXdhaXQgaW52b2tlRXNidWlsZChidWlsZENvbnRleHQsIHRydWUpO1xuICByZXR1cm4gQXJyYXkuZnJvbShkZXBlbmRlbmNpZXNUb0J1bmRsZSkuc29ydCgpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBkZXBlbmRlbmNpZXMgdGhhdCBzaG91bGQgYmUgc2tpcHBlZCBkdXJpbmcgdGhlIGJ1bmRsaW5nIHByb2Nlc3MuXG4gKlxuICogQHJldHVybnMgQSBgUHJvbWlzZWAgdGhhdCByZXNvbHZlcyB0byBhIGBTZXRgIG9mIGRlcGVuZGVuY3kgbmFtZXMgdG8gc2tpcC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldERlcGVuZGVuY2llc1RvU2tpcCgpOiBQcm9taXNlPFNldDxzdHJpbmc+PiB7XG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKGdldERpcm5hbWUoaW1wb3J0Lm1ldGEudXJsKSk7XG4gIGNvbnN0IGRlcGVuZGVuY2llc1RvU2tpcCA9IG5ldyBTZXQ8c3RyaW5nPihbLi4uYnVpbHRpbk1vZHVsZXMsIC4uLk9iamVjdC5rZXlzKHBhY2thZ2VKc29uLmRlcGVuZGVuY2llcyA/PyB7fSkuZmlsdGVyKGNhblNraXBGcm9tQnVuZGxpbmcpXSk7XG4gIHJldHVybiBkZXBlbmRlbmNpZXNUb1NraXA7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbW9kdWxlIGNhbiBiZSBza2lwcGVkIGZyb20gYnVuZGxpbmcuXG4gKlxuICogQHBhcmFtIG1vZHVsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgbW9kdWxlIGNhbiBiZSBza2lwcGVkIGZyb20gYnVuZGxpbmcuXG4gKi9cbmZ1bmN0aW9uIGNhblNraXBGcm9tQnVuZGxpbmcobW9kdWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChtb2R1bGVOYW1lLnN0YXJ0c1dpdGgoJ0B0eXBlcy8nKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKG1vZHVsZU5hbWUuc3RhcnRzV2l0aCgnb2JzaWRpYW4nKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKG1vZHVsZU5hbWUgPT09ICdlc2J1aWxkJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tZHluYW1pYy1yZXF1aXJlXG4gICAgY29uc3QgbW9kdWxlID0gcmVxdWlyZShtb2R1bGVOYW1lKSBhcyBNb2R1bGVXaXRoRGVmYXVsdEV4cG9ydDtcbiAgICByZXR1cm4gIW1vZHVsZS5kZWZhdWx0O1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgaWRlbnRpZmllcyB3aGljaCBkZXBlbmRlbmNpZXMgc2hvdWxkIGJlIGJ1bmRsZWQuXG4gKlxuICogQHBhcmFtIGRlcGVuZGVuY2llc1RvU2tpcCAtIEEgc2V0IG9mIGRlcGVuZGVuY3kgbmFtZXMgdGhhdCBzaG91bGQgYmUgc2tpcHBlZCBkdXJpbmcgYnVuZGxpbmcuXG4gKiBAcGFyYW0gZGVwZW5kZW5jaWVzVG9CdW5kbGUgLSBBIHNldCB3aGVyZSB0aGUgbmFtZXMgb2YgZGVwZW5kZW5jaWVzIHRvIGJlIGJ1bmRsZWQgd2lsbCBiZSBhZGRlZC5cbiAqIEByZXR1cm5zIEFuIGVzYnVpbGQgYFBsdWdpbmAgb2JqZWN0IHRoYXQgZXh0cmFjdHMgZGVwZW5kZW5jaWVzIHRvIGJ1bmRsZS5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdERlcGVuZGVuY2llc1RvQnVuZGxlUGx1Z2luKGRlcGVuZGVuY2llc1RvU2tpcDogU2V0PHN0cmluZz4sIGRlcGVuZGVuY2llc1RvQnVuZGxlOiBTZXQ8c3RyaW5nPik6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3Rlc3QnLFxuICAgIHNldHVwKGJ1aWxkKTogdm9pZCB7XG4gICAgICBidWlsZC5vblJlc29sdmUoeyBmaWx0ZXI6IC9eW14uL10vIH0sIChhcmdzKSA9PiB7XG4gICAgICAgIGlmICghYXJncy5pbXBvcnRlci5lbmRzV2l0aCgnLmQudHMnKSkge1xuICAgICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSB0cmltU3RhcnQoYXJncy5wYXRoLnNwbGl0KCcvJylbMF0gPz8gdGhyb3dFeHByZXNzaW9uKG5ldyBFcnJvcignV3JvbmcgcGF0aCcpKSwgJ25vZGU6Jyk7XG4gICAgICAgICAgaWYgKCFkZXBlbmRlbmNpZXNUb1NraXAuaGFzKGFyZ3MucGF0aCkgJiYgIWRlcGVuZGVuY2llc1RvU2tpcC5oYXMobW9kdWxlTmFtZSkpIHtcbiAgICAgICAgICAgIGRlcGVuZGVuY2llc1RvQnVuZGxlLmFkZChhcmdzLnBhdGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBleHRlcm5hbDogdHJ1ZSwgcGF0aDogYXJncy5wYXRoIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFrQkEscUJBQXdCO0FBRXhCLG1CQUFnQztBQUNoQyxrQkFHTztBQUNQLG9CQUEwQjtBQUMxQix5QkFHTztBQUNQLGlCQUFnQztBQUNoQyx1Q0FBMEM7QUFDMUMsbUNBR087QUFDUCw4QkFBaUM7QUFwQ2pDLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUFDQSxJQUFJLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLE1BQUk7QUFBQyxNQUFHLE9BQU8sT0FBTyxTQUFTLE1BQUksYUFBWTtBQUFDLFVBQU0sTUFBSUEsU0FBUSxVQUFVO0FBQUUsV0FBTyxJQUFJLGNBQWMsVUFBVSxFQUFFO0FBQUEsRUFBSTtBQUFDLE1BQUcsT0FBTyxXQUFTLGFBQVk7QUFBQyxXQUFPLE9BQU8sU0FBUztBQUFBLEVBQUk7QUFBQyxTQUFNO0FBQUUsR0FBRztBQWlDelAsTUFBTUEsZUFBVSxrQ0FBYyxpQkFBZTtBQVc3QyxlQUFzQiwwQkFBNkM7QUFDakUsUUFBTSxxQkFBcUIsTUFBTSxzQkFBc0I7QUFDdkQsUUFBTSx1QkFBdUIsb0JBQUksSUFBWTtBQUU3QyxRQUFNLGVBQTZCO0FBQUEsSUFDakMsUUFBUTtBQUFBLE1BQ04sSUFBSTtBQUFBLElBQ047QUFBQSxJQUNBLFFBQVE7QUFBQSxJQUNSLGFBQWEsS0FBQyxrQkFBSywyREFBMEIsS0FBSywyREFBMEIsU0FBUywyREFBMEIsS0FBSyxDQUFDO0FBQUEsSUFDckgsUUFBUTtBQUFBLElBQ1IsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLFVBQ1AsMENBQWlCO0FBQUEsTUFDakIsa0NBQWtDLG9CQUFvQixvQkFBb0I7QUFBQSxJQUM1RTtBQUFBLElBQ0EsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLGVBQWUsVUFBTSx3QkFBUSxZQUFZO0FBQy9DLFlBQU0sNENBQWMsY0FBYyxJQUFJO0FBQ3RDLFNBQU8sTUFBTSxLQUFLLG9CQUFvQixFQUFFLEtBQUs7QUFDL0M7QUFPQSxlQUFzQix3QkFBOEM7QUFDbEUsUUFBTSxjQUFjLFVBQU0sZ0NBQWdCLHdCQUFXLGlCQUFlLENBQUM7QUFDckUsUUFBTSxxQkFBcUIsb0JBQUksSUFBWSxDQUFDLEdBQUcsbUNBQWdCLEdBQUcsT0FBTyxLQUFLLFlBQVksZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLE9BQU8sbUJBQW1CLENBQUMsQ0FBQztBQUMxSSxTQUFPO0FBQ1Q7QUFRQSxTQUFTLG9CQUFvQixZQUE2QjtBQUN4RCxNQUFJLFdBQVcsV0FBVyxTQUFTLEdBQUc7QUFDcEMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLFdBQVcsV0FBVyxVQUFVLEdBQUc7QUFDckMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLGVBQWUsV0FBVztBQUM1QixXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUk7QUFFRixVQUFNQyxVQUFTRCxTQUFRLFVBQVU7QUFDakMsV0FBTyxDQUFDQyxRQUFPO0FBQUEsRUFDakIsUUFBUTtBQUNOLFdBQU87QUFBQSxFQUNUO0FBQ0Y7QUFTQSxTQUFTLGtDQUFrQyxvQkFBaUMsc0JBQTJDO0FBQ3JILFNBQU87QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU0sT0FBYTtBQUNqQixZQUFNLFVBQVUsRUFBRSxRQUFRLFNBQVMsR0FBRyxDQUFDLFNBQVM7QUFDOUMsWUFBSSxDQUFDLEtBQUssU0FBUyxTQUFTLE9BQU8sR0FBRztBQUNwQyxnQkFBTSxpQkFBYSx5QkFBVSxLQUFLLEtBQUssTUFBTSxHQUFHLEVBQUUsQ0FBQyxTQUFLLDhCQUFnQixJQUFJLE1BQU0sWUFBWSxDQUFDLEdBQUcsT0FBTztBQUN6RyxjQUFJLENBQUMsbUJBQW1CLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxVQUFVLEdBQUc7QUFDN0UsaUNBQXFCLElBQUksS0FBSyxJQUFJO0FBQUEsVUFDcEM7QUFBQSxRQUNGO0FBQ0EsZUFBTyxFQUFFLFVBQVUsTUFBTSxNQUFNLEtBQUssS0FBSztBQUFBLE1BQzNDLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogWyJyZXF1aXJlIiwgIm1vZHVsZSJdCn0K