obsidian-dev-utils 82.0.0 → 83.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/dev/main.js +322 -188
  3. package/dist/lib/cjs/blob.cjs +3 -3
  4. package/dist/lib/cjs/debug.cjs +4 -11
  5. package/dist/lib/cjs/generated-during-build.cjs +139 -0
  6. package/dist/lib/cjs/generated-during-build.d.cts +19 -0
  7. package/dist/lib/cjs/html-element.cjs +103 -31
  8. package/dist/lib/cjs/html-element.d.cts +8 -8
  9. package/dist/lib/cjs/index.cjs +4 -4
  10. package/dist/lib/cjs/index.d.cts +1 -1
  11. package/dist/lib/cjs/library.cjs +58 -7
  12. package/dist/lib/cjs/library.d.cts +65 -6
  13. package/dist/lib/cjs/obsidian/components/plugin-context-component.cjs +5 -1
  14. package/dist/lib/cjs/obsidian/css-class.cjs +180 -0
  15. package/dist/lib/cjs/{css-class.d.cts → obsidian/css-class.d.cts} +9 -1
  16. package/dist/lib/cjs/obsidian/editor-lock.cjs +9 -11
  17. package/dist/lib/cjs/obsidian/editor-lock.d.cts +10 -7
  18. package/dist/lib/cjs/obsidian/{plugin/plugin-id.cjs → html-element.cjs} +11 -19
  19. package/dist/lib/cjs/obsidian/html-element.d.cts +18 -0
  20. package/dist/lib/cjs/obsidian/index.cjs +7 -1
  21. package/dist/lib/cjs/obsidian/index.d.cts +2 -0
  22. package/dist/lib/cjs/obsidian/modals/alert.cjs +2 -2
  23. package/dist/lib/cjs/obsidian/modals/confirm.cjs +2 -2
  24. package/dist/lib/cjs/obsidian/modals/minimizable-modal.cjs +2 -2
  25. package/dist/lib/cjs/obsidian/modals/prompt.cjs +2 -2
  26. package/dist/lib/cjs/obsidian/modals/select-item.cjs +2 -2
  27. package/dist/lib/cjs/obsidian/plugin/index.cjs +1 -4
  28. package/dist/lib/cjs/obsidian/plugin/index.d.cts +0 -1
  29. package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +15 -8
  30. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +2 -2
  31. package/dist/lib/cjs/obsidian/setting-components/checkbox-component.cjs +2 -2
  32. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.cjs +2 -2
  33. package/dist/lib/cjs/obsidian/setting-components/date-component.cjs +2 -2
  34. package/dist/lib/cjs/obsidian/setting-components/date-time-component.cjs +2 -2
  35. package/dist/lib/cjs/obsidian/setting-components/email-component.cjs +2 -2
  36. package/dist/lib/cjs/obsidian/setting-components/file-component.cjs +2 -2
  37. package/dist/lib/cjs/obsidian/setting-components/month-component.cjs +2 -2
  38. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.cjs +2 -2
  39. package/dist/lib/cjs/obsidian/setting-components/multiple-email-component.cjs +2 -2
  40. package/dist/lib/cjs/obsidian/setting-components/multiple-file-component.cjs +2 -2
  41. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.cjs +2 -2
  42. package/dist/lib/cjs/obsidian/setting-components/number-component.cjs +2 -2
  43. package/dist/lib/cjs/obsidian/setting-components/password-component.cjs +2 -2
  44. package/dist/lib/cjs/obsidian/setting-components/setting-component-wrapper.cjs +2 -2
  45. package/dist/lib/cjs/obsidian/setting-components/telephone-component.cjs +2 -2
  46. package/dist/lib/cjs/obsidian/setting-components/time-component.cjs +2 -2
  47. package/dist/lib/cjs/obsidian/setting-components/tri-state-checkbox-component.cjs +2 -2
  48. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.cjs +2 -2
  49. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.cjs +2 -2
  50. package/dist/lib/cjs/obsidian/setting-components/typed-text-component.cjs +2 -2
  51. package/dist/lib/cjs/obsidian/setting-components/typed-text-component.d.cts +1 -1
  52. package/dist/lib/cjs/obsidian/setting-components/url-component.cjs +2 -2
  53. package/dist/lib/cjs/obsidian/setting-components/validator-component.cjs +2 -2
  54. package/dist/lib/cjs/obsidian/setting-components/week-component.cjs +2 -2
  55. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +60 -8
  56. package/dist/lib/cjs/script-utils/linters/eslint-agnostic-core-boundary.cjs +145 -0
  57. package/dist/lib/cjs/script-utils/linters/eslint-agnostic-core-boundary.d.cts +32 -0
  58. package/dist/lib/cjs/script-utils/linters/index.cjs +4 -1
  59. package/dist/lib/cjs/script-utils/linters/index.d.cts +1 -0
  60. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +3 -3
  61. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +4 -4
  62. package/dist/lib/cjs/setup.cjs +3 -1
  63. package/dist/lib/cjs/setup.d.cts +6 -4
  64. package/dist/lib/esm/blob.mjs +3 -3
  65. package/dist/lib/esm/debug.mjs +8 -15
  66. package/dist/lib/esm/generated-during-build.d.mts +19 -0
  67. package/dist/lib/esm/generated-during-build.mjs +30 -0
  68. package/dist/lib/esm/html-element.d.mts +8 -8
  69. package/dist/lib/esm/html-element.mjs +103 -30
  70. package/dist/lib/esm/index.d.mts +1 -1
  71. package/dist/lib/esm/index.mjs +3 -3
  72. package/dist/lib/esm/library.d.mts +65 -6
  73. package/dist/lib/esm/library.mjs +57 -5
  74. package/dist/lib/esm/obsidian/components/plugin-context-component.mjs +5 -1
  75. package/dist/lib/esm/{css-class.d.mts → obsidian/css-class.d.mts} +9 -1
  76. package/dist/lib/esm/obsidian/css-class.mjs +72 -0
  77. package/dist/lib/esm/obsidian/editor-lock.d.mts +10 -7
  78. package/dist/lib/esm/obsidian/editor-lock.mjs +9 -11
  79. package/dist/lib/esm/obsidian/html-element.d.mts +18 -0
  80. package/dist/lib/esm/obsidian/html-element.mjs +33 -0
  81. package/dist/lib/esm/obsidian/index.d.mts +2 -0
  82. package/dist/lib/esm/obsidian/index.mjs +5 -1
  83. package/dist/lib/esm/obsidian/modals/alert.mjs +2 -2
  84. package/dist/lib/esm/obsidian/modals/confirm.mjs +2 -2
  85. package/dist/lib/esm/obsidian/modals/minimizable-modal.mjs +2 -2
  86. package/dist/lib/esm/obsidian/modals/prompt.mjs +2 -2
  87. package/dist/lib/esm/obsidian/modals/select-item.mjs +2 -2
  88. package/dist/lib/esm/obsidian/plugin/index.d.mts +0 -1
  89. package/dist/lib/esm/obsidian/plugin/index.mjs +1 -3
  90. package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +15 -9
  91. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +2 -2
  92. package/dist/lib/esm/obsidian/setting-components/checkbox-component.mjs +2 -2
  93. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.mjs +2 -2
  94. package/dist/lib/esm/obsidian/setting-components/date-component.mjs +2 -2
  95. package/dist/lib/esm/obsidian/setting-components/date-time-component.mjs +2 -2
  96. package/dist/lib/esm/obsidian/setting-components/email-component.mjs +2 -2
  97. package/dist/lib/esm/obsidian/setting-components/file-component.mjs +2 -2
  98. package/dist/lib/esm/obsidian/setting-components/month-component.mjs +2 -2
  99. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.mjs +2 -2
  100. package/dist/lib/esm/obsidian/setting-components/multiple-email-component.mjs +2 -2
  101. package/dist/lib/esm/obsidian/setting-components/multiple-file-component.mjs +2 -2
  102. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.mjs +2 -2
  103. package/dist/lib/esm/obsidian/setting-components/number-component.mjs +2 -2
  104. package/dist/lib/esm/obsidian/setting-components/password-component.mjs +2 -2
  105. package/dist/lib/esm/obsidian/setting-components/setting-component-wrapper.mjs +2 -2
  106. package/dist/lib/esm/obsidian/setting-components/telephone-component.mjs +2 -2
  107. package/dist/lib/esm/obsidian/setting-components/time-component.mjs +2 -2
  108. package/dist/lib/esm/obsidian/setting-components/tri-state-checkbox-component.mjs +2 -2
  109. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.mjs +2 -2
  110. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.mjs +2 -2
  111. package/dist/lib/esm/obsidian/setting-components/typed-text-component.d.mts +1 -1
  112. package/dist/lib/esm/obsidian/setting-components/typed-text-component.mjs +2 -2
  113. package/dist/lib/esm/obsidian/setting-components/url-component.mjs +2 -2
  114. package/dist/lib/esm/obsidian/setting-components/validator-component.mjs +2 -2
  115. package/dist/lib/esm/obsidian/setting-components/week-component.mjs +2 -2
  116. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +54 -9
  117. package/dist/lib/esm/script-utils/linters/eslint-agnostic-core-boundary.d.mts +32 -0
  118. package/dist/lib/esm/script-utils/linters/eslint-agnostic-core-boundary.mjs +37 -0
  119. package/dist/lib/esm/script-utils/linters/index.d.mts +1 -0
  120. package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
  121. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +4 -4
  122. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +3 -3
  123. package/dist/lib/esm/setup.d.mts +6 -4
  124. package/dist/lib/esm/setup.mjs +3 -1
  125. package/obsidian/css-class/package.json +6 -0
  126. package/obsidian/html-element/package.json +6 -0
  127. package/package.json +1 -1
  128. package/script-utils/linters/eslint-agnostic-core-boundary/package.json +6 -0
  129. package/dist/lib/cjs/css-class.cjs +0 -178
  130. package/dist/lib/cjs/obsidian/plugin/plugin-id.d.cts +0 -22
  131. package/dist/lib/esm/css-class.mjs +0 -70
  132. package/dist/lib/esm/obsidian/plugin/plugin-id.d.mts +0 -22
  133. package/dist/lib/esm/obsidian/plugin/plugin-id.mjs +0 -39
  134. package/obsidian/Plugin/plugin-id/package.json +0 -6
@@ -106,9 +106,11 @@ if you want to view the source, please visit the github repository of this plugi
106
106
  })();
107
107
 
108
108
  "use strict";
109
+ var __create = Object.create;
109
110
  var __defProp = Object.defineProperty;
110
111
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
111
112
  var __getOwnPropNames = Object.getOwnPropertyNames;
113
+ var __getProtoOf = Object.getPrototypeOf;
112
114
  var __hasOwnProp = Object.prototype.hasOwnProperty;
113
115
  var __export = (target, all) => {
114
116
  for (var name in all)
@@ -122,6 +124,14 @@ var __copyProps = (to, from, except, desc) => {
122
124
  }
123
125
  return to;
124
126
  };
127
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
128
+ // If the importer is in node compatibility mode or this is not an ESM
129
+ // file that has been converted to a CommonJS file using a Babel-
130
+ // compatible transform (i.e. "__esModule" has not been set), then set
131
+ // "default" to the CommonJS "module.exports" for node compatibility.
132
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
133
+ mod
134
+ ));
125
135
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
126
136
  var copy_to_obsidian_plugins_folder_plugin_exports = {};
127
137
  __export(copy_to_obsidian_plugins_folder_plugin_exports, {
@@ -130,9 +140,13 @@ __export(copy_to_obsidian_plugins_folder_plugin_exports, {
130
140
  module.exports = __toCommonJS(copy_to_obsidian_plugins_folder_plugin_exports);
131
141
  var import_node_fs = require('node:fs');
132
142
  var import_promises = require('node:fs/promises');
143
+ var import_node_process = __toESM(__extractDefault(require('node:process')), 1);
133
144
  var import_obsidian_integration_testing = require('obsidian-integration-testing');
134
145
  var import_debug = require('../../../debug.cjs');
135
146
  var import_path = require('../../../path.cjs');
147
+ let devInstanceTransportPromise;
148
+ let isDevInstanceCleanupRegistered = false;
149
+ let isDevInstanceDisposed = false;
136
150
  function copyToObsidianPluginsFolderPlugin(params) {
137
151
  const {
138
152
  distFolder,
@@ -197,27 +211,65 @@ async function enableCommunityPlugin(params) {
197
211
  const JSON_INDENT = 2;
198
212
  await (0, import_promises.writeFile)(communityPluginsPath, JSON.stringify(plugins, null, JSON_INDENT), "utf-8");
199
213
  }
214
+ const vaultPath = (0, import_path.dirname)(obsidianConfigFolder);
200
215
  try {
216
+ const transport = await getOrLaunchDevInstance(vaultPath);
201
217
  await (0, import_obsidian_integration_testing.evalInObsidian)({
202
218
  args: { pluginId },
203
219
  // eslint-disable-next-line no-shadow -- No actual shadowing as the function is executed externally.
204
220
  async fn({ app, pluginId: pluginId2 }) {
205
221
  await app.plugins.enablePluginAndSave(pluginId2);
206
222
  },
207
- vaultPath: (0, import_path.dirname)(obsidianConfigFolder)
223
+ shouldSkipPreflightChecks: true,
224
+ transport,
225
+ vaultPath
208
226
  });
209
227
  } catch (e) {
210
- const errorMessage = e instanceof Error ? e.message : String(e);
211
- const isNotFound = errorMessage.includes("ENOENT") || errorMessage.includes("not found") || errorMessage.includes("not recognized");
212
- if (isNotFound) {
213
- console.error(`Obsidian CLI is not installed. Plugin '${pluginId}' will be enabled on next vault open. See https://help.obsidian.md/cli`);
214
- } else {
215
- console.error(`Failed to enable plugin '${pluginId}' via Obsidian CLI.`, e);
228
+ (0, import_debug.getLibDebugger)("copyToObsidianPluginsFolderPlugin")(`Failed to live-enable plugin '${pluginId}'. It will be enabled on the next vault open.`, e);
229
+ }
230
+ }
231
+ async function getOrLaunchDevInstance(vaultPath) {
232
+ devInstanceTransportPromise ??= launchDevInstance(vaultPath);
233
+ try {
234
+ return await devInstanceTransportPromise;
235
+ } catch (e) {
236
+ devInstanceTransportPromise = void 0;
237
+ throw e;
238
+ }
239
+ }
240
+ async function launchDevInstance(vaultPath) {
241
+ const transport = await (0, import_obsidian_integration_testing.createTransportFromOptions)();
242
+ try {
243
+ await transport.registerVault(vaultPath);
244
+ } catch (e) {
245
+ transport.disposeSync?.();
246
+ throw e;
247
+ }
248
+ registerDevInstanceCleanup(transport);
249
+ return transport;
250
+ }
251
+ function registerDevInstanceCleanup(transport) {
252
+ if (isDevInstanceCleanupRegistered) {
253
+ return;
254
+ }
255
+ isDevInstanceCleanupRegistered = true;
256
+ import_node_process.default.on("exit", disposeDevInstance);
257
+ for (const signal of ["SIGHUP", "SIGINT", "SIGTERM"]) {
258
+ import_node_process.default.once(signal, () => {
259
+ disposeDevInstance();
260
+ import_node_process.default.exit();
261
+ });
262
+ }
263
+ function disposeDevInstance() {
264
+ if (isDevInstanceDisposed) {
265
+ return;
216
266
  }
267
+ isDevInstanceDisposed = true;
268
+ transport.disposeSync?.();
217
269
  }
218
270
  }
219
271
  // Annotate the CommonJS export names for ESM import in node:
220
272
  0 && (module.exports = {
221
273
  copyToObsidianPluginsFolderPlugin
222
274
  });
223
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY29weS10by1vYnNpZGlhbi1wbHVnaW5zLWZvbGRlci1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgYXV0b21hdGljYWxseSBjb3BpZXMgdGhlIGJ1aWxkIG91dHB1dFxuICogdG8gdGhlIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyIGR1cmluZyBkZXZlbG9wbWVudC4gVGhpcyBwbHVnaW4gaGVscHMgc3RyZWFtbGluZVxuICogdGhlIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGVuc3VyaW5nIHRoYXQgdGhlIGxhdGVzdCBidWlsZCBpcyBhbHdheXMgYXZhaWxhYmxlXG4gKiBpbiB0aGUgY29ycmVjdCBPYnNpZGlhbiBmb2xkZXIgZm9yIHRlc3RpbmcgYW5kIHVzZS5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZCBwbHVnaW4gdGhhdCBjb3BpZXMgYnVpbGQgb3V0cHV0IHRvIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyOyByZXF1aXJlcyBhIGxpdmUgZXNidWlsZCBjb250ZXh0LiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgbWtkaXIsXG4gIHJlYWRGaWxlLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBldmFsSW5PYnNpZGlhbiB9IGZyb20gJ29ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcnO1xuXG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uLy4uLy4uL2RlYnVnLnRzJztcbmltcG9ydCB7XG4gIGRpcm5hbWUsXG4gIGpvaW4sXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4uLy4uLy4uL3BhdGgudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpblBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIHdoZXJlIHRoZSBidWlsdCBmaWxlcyBhcmUgbG9jYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3RGb2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgYnVpbGQgaXMgYSBwcm9kdWN0aW9uIGJ1aWxkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNQcm9kdWN0aW9uQnVpbGQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgb2YgdGhlIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24uIElmIG5vdCBwcm92aWRlZCwgdGhlIHBsdWdpbiB3aWxsIG5vdCBjb3B5IGZpbGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgb2JzaWRpYW5Db25maWdGb2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIE9ic2lkaWFuIHBsdWdpbi5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZW5hYmxlQ29tbXVuaXR5UGx1Z2lufS5cbiAqL1xuaW50ZXJmYWNlIEVuYWJsZUNvbW11bml0eVBsdWdpblBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIG9mIHRoZSBPYnNpZGlhbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb2JzaWRpYW5Db25maWdGb2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBjb21tdW5pdHkgcGx1Z2luIHRvIGVuYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGNvcGllcyB0aGUgYnVpbGQgb3V0cHV0IHRvIHRoZSBPYnNpZGlhbiBwbHVnaW5zIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIEFuIGVzYnVpbGQgYFBsdWdpbmAgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2luKHBhcmFtczogQ29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2luUGFyYW1zKTogUGx1Z2luIHtcbiAgY29uc3Qge1xuICAgIGRpc3RGb2xkZXIsXG4gICAgaXNQcm9kdWN0aW9uQnVpbGQsXG4gICAgcGx1Z2luTmFtZVxuICB9ID0gcGFyYW1zO1xuICBsZXQge1xuICAgIG9ic2lkaWFuQ29uZmlnRm9sZGVyXG4gIH0gPSBwYXJhbXM7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2NvcHktdG8tb2JzaWRpYW4tcGx1Z2lucy1mb2xkZXInLFxuICAgIHNldHVwKGJ1aWxkKTogdm9pZCB7XG4gICAgICBidWlsZC5vbkVuZChhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChpc1Byb2R1Y3Rpb25CdWlsZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb2JzaWRpYW5Db25maWdGb2xkZXIpIHtcbiAgICAgICAgICBnZXRMaWJEZWJ1Z2dlcignY29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2luJykoXG4gICAgICAgICAgICAnTm8gT2JzaWRpYW4gY29uZmlnIGZvbGRlciBjb25maWd1cmVkLiBgT0JTSURJQU5fQ09ORklHX0ZPTERFUmAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHNldCBpbiBzeXN0ZW0gb3IgaW4gYC5lbnZgIGZpbGUuIFRoZSBjb21waWxlZCBwbHVnaW4gd2lsbCBub3QgYmUgY29waWVkIGludG8gT2JzaWRpYW4gcGx1Z2lucyBmb2xkZXIuJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgb2JzaWRpYW5Db25maWdGb2xkZXIgPSB0b1Bvc2l4UGF0aChvYnNpZGlhbkNvbmZpZ0ZvbGRlcik7XG5cbiAgICAgICAgY29uc3QgcGx1Z2luRm9sZGVyID0gam9pbihvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgJ3BsdWdpbnMnLCBwbHVnaW5OYW1lKTtcblxuICAgICAgICBpZiAoIWV4aXN0c1N5bmMocGx1Z2luRm9sZGVyKSkge1xuICAgICAgICAgIGF3YWl0IG1rZGlyKHBsdWdpbkZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBjcChkaXN0Rm9sZGVyLCBwbHVnaW5Gb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgICAgIGNvbnN0IGhvdFJlbG9hZEZvbGRlciA9IGpvaW4ob2JzaWRpYW5Db25maWdGb2xkZXIsICdwbHVnaW5zL2hvdC1yZWxvYWQnKTtcbiAgICAgICAgaWYgKCFleGlzdHNTeW5jKGhvdFJlbG9hZEZvbGRlcikpIHtcbiAgICAgICAgICBhd2FpdCBta2Rpcihob3RSZWxvYWRGb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgIGNvbnN0IGhvdFJlbG9hZFJlcG9VcmwgPSAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BqZWJ5L2hvdC1yZWxvYWQvbWFzdGVyLyc7XG4gICAgICAgICAgZm9yIChjb25zdCBmaWxlTmFtZSBvZiBbJ21haW4uanMnLCAnbWFuaWZlc3QuanNvbiddKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlVXJsID0gaG90UmVsb2FkUmVwb1VybCArIGZpbGVOYW1lO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFscyAtLSBXZSBydW4gdGhpcyBvdXRzaWRlIG9mIE9ic2lkaWFuLCBzbyB3ZSBkb24ndCBoYXZlIGByZXF1ZXN0VXJsKClgLlxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChmaWxlVXJsKTtcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoam9pbihob3RSZWxvYWRGb2xkZXIsIGZpbGVOYW1lKSwgdGV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgZW5hYmxlQ29tbXVuaXR5UGx1Z2luKHtcbiAgICAgICAgICBvYnNpZGlhbkNvbmZpZ0ZvbGRlcixcbiAgICAgICAgICBwbHVnaW5JZDogJ2hvdC1yZWxvYWQnXG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCBlbmFibGVDb21tdW5pdHlQbHVnaW4oe1xuICAgICAgICAgIG9ic2lkaWFuQ29uZmlnRm9sZGVyLFxuICAgICAgICAgIHBsdWdpbklkOiBwbHVnaW5OYW1lXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIEVuYWJsZXMgYSBjb21tdW5pdHkgcGx1Z2luIGluIHRoZSBPYnNpZGlhbiBjb25maWd1cmF0aW9uLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgZW5hYmxpbmcgdGhlIGNvbW11bml0eSBwbHVnaW4uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBsdWdpbiBpcyBlbmFibGVkLlxuICovXG5hc3luYyBmdW5jdGlvbiBlbmFibGVDb21tdW5pdHlQbHVnaW4ocGFyYW1zOiBFbmFibGVDb21tdW5pdHlQbHVnaW5QYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgcGx1Z2luSWQgfSA9IHBhcmFtcztcbiAgY29uc3QgY29tbXVuaXR5UGx1Z2luc1BhdGggPSBqb2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCAnY29tbXVuaXR5LXBsdWdpbnMuanNvbicpO1xuICBsZXQgcGx1Z2luczogc3RyaW5nW10gPSBbXTtcbiAgaWYgKGV4aXN0c1N5bmMoY29tbXVuaXR5UGx1Z2luc1BhdGgpKSB7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGNvbW11bml0eVBsdWdpbnNQYXRoLCAndXRmLTgnKTtcbiAgICBwbHVnaW5zID0gSlNPTi5wYXJzZShjb250ZW50KSBhcyBzdHJpbmdbXTtcbiAgfVxuXG4gIGlmICghcGx1Z2lucy5pbmNsdWRlcyhwbHVnaW5JZCkpIHtcbiAgICBwbHVnaW5zLnB1c2gocGx1Z2luSWQpO1xuICAgIGNvbnN0IEpTT05fSU5ERU5UID0gMjtcbiAgICBhd2FpdCB3cml0ZUZpbGUoY29tbXVuaXR5UGx1Z2luc1BhdGgsIEpTT04uc3RyaW5naWZ5KHBsdWdpbnMsIG51bGwsIEpTT05fSU5ERU5UKSwgJ3V0Zi04Jyk7XG4gIH1cblxuICB0cnkge1xuICAgIGF3YWl0IGV2YWxJbk9ic2lkaWFuKHtcbiAgICAgIGFyZ3M6IHsgcGx1Z2luSWQgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zaGFkb3cgLS0gTm8gYWN0dWFsIHNoYWRvd2luZyBhcyB0aGUgZnVuY3Rpb24gaXMgZXhlY3V0ZWQgZXh0ZXJuYWxseS5cbiAgICAgIGFzeW5jIGZuKHsgYXBwLCBwbHVnaW5JZCB9KSB7XG4gICAgICAgIGF3YWl0IGFwcC5wbHVnaW5zLmVuYWJsZVBsdWdpbkFuZFNhdmUocGx1Z2luSWQpO1xuICAgICAgfSxcbiAgICAgIHZhdWx0UGF0aDogZGlybmFtZShvYnNpZGlhbkNvbmZpZ0ZvbGRlcilcbiAgICB9KTtcbiAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKTtcbiAgICBjb25zdCBpc05vdEZvdW5kID0gZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCdFTk9FTlQnKSB8fCBlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJ25vdCBmb3VuZCcpIHx8IGVycm9yTWVzc2FnZS5pbmNsdWRlcygnbm90IHJlY29nbml6ZWQnKTtcbiAgICBpZiAoaXNOb3RGb3VuZCkge1xuICAgICAgY29uc29sZS5lcnJvcihgT2JzaWRpYW4gQ0xJIGlzIG5vdCBpbnN0YWxsZWQuIFBsdWdpbiAnJHtwbHVnaW5JZH0nIHdpbGwgYmUgZW5hYmxlZCBvbiBuZXh0IHZhdWx0IG9wZW4uIFNlZSBodHRwczovL2hlbHAub2JzaWRpYW4ubWQvY2xpYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBlbmFibGUgcGx1Z2luICcke3BsdWdpbklkfScgdmlhIE9ic2lkaWFuIENMSS5gLCBlKTtcbiAgICB9XG4gIH1cbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBLHFCQUEyQjtBQUMzQixzQkFLTztBQUNQLDBDQUErQjtBQUUvQixtQkFBK0I7QUFDL0Isa0JBSU87QUFnREEsU0FBUyxrQ0FBa0MsUUFBeUQ7QUFDekcsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLE1BQUk7QUFBQSxJQUNGO0FBQUEsRUFDRixJQUFJO0FBQ0osU0FBTztBQUFBLElBQ0wsTUFBTTtBQUFBLElB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
275
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY29weS10by1vYnNpZGlhbi1wbHVnaW5zLWZvbGRlci1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgYXV0b21hdGljYWxseSBjb3BpZXMgdGhlIGJ1aWxkIG91dHB1dFxuICogdG8gdGhlIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyIGR1cmluZyBkZXZlbG9wbWVudC4gVGhpcyBwbHVnaW4gaGVscHMgc3RyZWFtbGluZVxuICogdGhlIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGVuc3VyaW5nIHRoYXQgdGhlIGxhdGVzdCBidWlsZCBpcyBhbHdheXMgYXZhaWxhYmxlXG4gKiBpbiB0aGUgY29ycmVjdCBPYnNpZGlhbiBmb2xkZXIgZm9yIHRlc3RpbmcgYW5kIHVzZS5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZCBwbHVnaW4gdGhhdCBjb3BpZXMgYnVpbGQgb3V0cHV0IHRvIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyOyByZXF1aXJlcyBhIGxpdmUgZXNidWlsZCBjb250ZXh0LiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydCB9IGZyb20gJ29ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcnO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgbWtkaXIsXG4gIHJlYWRGaWxlLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuaW1wb3J0IHtcbiAgY3JlYXRlVHJhbnNwb3J0RnJvbU9wdGlvbnMsXG4gIGV2YWxJbk9ic2lkaWFuXG59IGZyb20gJ29ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcnO1xuXG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uLy4uLy4uL2RlYnVnLnRzJztcbmltcG9ydCB7XG4gIGRpcm5hbWUsXG4gIGpvaW4sXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4uLy4uLy4uL3BhdGgudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpblBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIHdoZXJlIHRoZSBidWlsdCBmaWxlcyBhcmUgbG9jYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3RGb2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgYnVpbGQgaXMgYSBwcm9kdWN0aW9uIGJ1aWxkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNQcm9kdWN0aW9uQnVpbGQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgb2YgdGhlIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24uIElmIG5vdCBwcm92aWRlZCwgdGhlIHBsdWdpbiB3aWxsIG5vdCBjb3B5IGZpbGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgb2JzaWRpYW5Db25maWdGb2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIE9ic2lkaWFuIHBsdWdpbi5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZW5hYmxlQ29tbXVuaXR5UGx1Z2lufS5cbiAqL1xuaW50ZXJmYWNlIEVuYWJsZUNvbW11bml0eVBsdWdpblBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIG9mIHRoZSBPYnNpZGlhbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb2JzaWRpYW5Db25maWdGb2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBjb21tdW5pdHkgcGx1Z2luIHRvIGVuYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG59XG5cbi8vIFRoZSBgbnBtIHJ1biBkZXZgLW93bmVkIE9ic2lkaWFuIGluc3RhbmNlOiBsYXVuY2hlZCBvbiB0aGUgZmlyc3QgcmVidWlsZCBhbmQgcmV1c2VkIGFjcm9zcyByZWJ1aWxkcy5cbi8vIEl0IGlzIGNsb3NlZCB3aGVuIHRoZSBgbnBtIHJ1biBkZXZgIHByb2Nlc3MgdGVybWluYXRlcyAoc2VlIGByZWdpc3RlckRldkluc3RhbmNlQ2xlYW51cGApLlxubGV0IGRldkluc3RhbmNlVHJhbnNwb3J0UHJvbWlzZTogUHJvbWlzZTxPYnNpZGlhblRyYW5zcG9ydD4gfCB1bmRlZmluZWQ7XG5sZXQgaXNEZXZJbnN0YW5jZUNsZWFudXBSZWdpc3RlcmVkID0gZmFsc2U7XG5sZXQgaXNEZXZJbnN0YW5jZURpc3Bvc2VkID0gZmFsc2U7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGNvcGllcyB0aGUgYnVpbGQgb3V0cHV0IHRvIHRoZSBPYnNpZGlhbiBwbHVnaW5zIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIEFuIGVzYnVpbGQgYFBsdWdpbmAgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2luKHBhcmFtczogQ29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2luUGFyYW1zKTogUGx1Z2luIHtcbiAgY29uc3Qge1xuICAgIGRpc3RGb2xkZXIsXG4gICAgaXNQcm9kdWN0aW9uQnVpbGQsXG4gICAgcGx1Z2luTmFtZVxuICB9ID0gcGFyYW1zO1xuICBsZXQge1xuICAgIG9ic2lkaWFuQ29uZmlnRm9sZGVyXG4gIH0gPSBwYXJhbXM7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2NvcHktdG8tb2JzaWRpYW4tcGx1Z2lucy1mb2xkZXInLFxuICAgIHNldHVwKGJ1aWxkKTogdm9pZCB7XG4gICAgICBidWlsZC5vbkVuZChhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChpc1Byb2R1Y3Rpb25CdWlsZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb2JzaWRpYW5Db25maWdGb2xkZXIpIHtcbiAgICAgICAgICBnZXRMaWJEZWJ1Z2dlcignY29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2luJykoXG4gICAgICAgICAgICAnTm8gT2JzaWRpYW4gY29uZmlnIGZvbGRlciBjb25maWd1cmVkLiBgT0JTSURJQU5fQ09ORklHX0ZPTERFUmAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHNldCBpbiBzeXN0ZW0gb3IgaW4gYC5lbnZgIGZpbGUuIFRoZSBjb21waWxlZCBwbHVnaW4gd2lsbCBub3QgYmUgY29waWVkIGludG8gT2JzaWRpYW4gcGx1Z2lucyBmb2xkZXIuJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgb2JzaWRpYW5Db25maWdGb2xkZXIgPSB0b1Bvc2l4UGF0aChvYnNpZGlhbkNvbmZpZ0ZvbGRlcik7XG5cbiAgICAgICAgY29uc3QgcGx1Z2luRm9sZGVyID0gam9pbihvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgJ3BsdWdpbnMnLCBwbHVnaW5OYW1lKTtcblxuICAgICAgICBpZiAoIWV4aXN0c1N5bmMocGx1Z2luRm9sZGVyKSkge1xuICAgICAgICAgIGF3YWl0IG1rZGlyKHBsdWdpbkZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBjcChkaXN0Rm9sZGVyLCBwbHVnaW5Gb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgICAgIGNvbnN0IGhvdFJlbG9hZEZvbGRlciA9IGpvaW4ob2JzaWRpYW5Db25maWdGb2xkZXIsICdwbHVnaW5zL2hvdC1yZWxvYWQnKTtcbiAgICAgICAgaWYgKCFleGlzdHNTeW5jKGhvdFJlbG9hZEZvbGRlcikpIHtcbiAgICAgICAgICBhd2FpdCBta2Rpcihob3RSZWxvYWRGb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgIGNvbnN0IGhvdFJlbG9hZFJlcG9VcmwgPSAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BqZWJ5L2hvdC1yZWxvYWQvbWFzdGVyLyc7XG4gICAgICAgICAgZm9yIChjb25zdCBmaWxlTmFtZSBvZiBbJ21haW4uanMnLCAnbWFuaWZlc3QuanNvbiddKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlVXJsID0gaG90UmVsb2FkUmVwb1VybCArIGZpbGVOYW1lO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFscyAtLSBXZSBydW4gdGhpcyBvdXRzaWRlIG9mIE9ic2lkaWFuLCBzbyB3ZSBkb24ndCBoYXZlIGByZXF1ZXN0VXJsKClgLlxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChmaWxlVXJsKTtcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoam9pbihob3RSZWxvYWRGb2xkZXIsIGZpbGVOYW1lKSwgdGV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgZW5hYmxlQ29tbXVuaXR5UGx1Z2luKHtcbiAgICAgICAgICBvYnNpZGlhbkNvbmZpZ0ZvbGRlcixcbiAgICAgICAgICBwbHVnaW5JZDogJ2hvdC1yZWxvYWQnXG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCBlbmFibGVDb21tdW5pdHlQbHVnaW4oe1xuICAgICAgICAgIG9ic2lkaWFuQ29uZmlnRm9sZGVyLFxuICAgICAgICAgIHBsdWdpbklkOiBwbHVnaW5OYW1lXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIEVuYWJsZXMgYSBjb21tdW5pdHkgcGx1Z2luIGluIHRoZSBPYnNpZGlhbiBjb25maWd1cmF0aW9uLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgZW5hYmxpbmcgdGhlIGNvbW11bml0eSBwbHVnaW4uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBsdWdpbiBpcyBlbmFibGVkLlxuICovXG5hc3luYyBmdW5jdGlvbiBlbmFibGVDb21tdW5pdHlQbHVnaW4ocGFyYW1zOiBFbmFibGVDb21tdW5pdHlQbHVnaW5QYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgcGx1Z2luSWQgfSA9IHBhcmFtcztcbiAgY29uc3QgY29tbXVuaXR5UGx1Z2luc1BhdGggPSBqb2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCAnY29tbXVuaXR5LXBsdWdpbnMuanNvbicpO1xuICBsZXQgcGx1Z2luczogc3RyaW5nW10gPSBbXTtcbiAgaWYgKGV4aXN0c1N5bmMoY29tbXVuaXR5UGx1Z2luc1BhdGgpKSB7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGNvbW11bml0eVBsdWdpbnNQYXRoLCAndXRmLTgnKTtcbiAgICBwbHVnaW5zID0gSlNPTi5wYXJzZShjb250ZW50KSBhcyBzdHJpbmdbXTtcbiAgfVxuXG4gIGlmICghcGx1Z2lucy5pbmNsdWRlcyhwbHVnaW5JZCkpIHtcbiAgICBwbHVnaW5zLnB1c2gocGx1Z2luSWQpO1xuICAgIGNvbnN0IEpTT05fSU5ERU5UID0gMjtcbiAgICBhd2FpdCB3cml0ZUZpbGUoY29tbXVuaXR5UGx1Z2luc1BhdGgsIEpTT04uc3RyaW5naWZ5KHBsdWdpbnMsIG51bGwsIEpTT05fSU5ERU5UKSwgJ3V0Zi04Jyk7XG4gIH1cblxuICBjb25zdCB2YXVsdFBhdGggPSBkaXJuYW1lKG9ic2lkaWFuQ29uZmlnRm9sZGVyKTtcblxuICAvLyBMaXZlLWVuYWJsaW5nIGlzIGJlc3QtZWZmb3J0OiB0aGUgcGx1Z2luIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBpbiBgY29tbXVuaXR5LXBsdWdpbnMuanNvbmAsIHNvIGl0IGlzIGVuYWJsZWQgb24gdGhlIG5leHQgdmF1bHQgb3BlbiBldmVuIGlmIHRoaXMgZmFpbHMgKGFuZCBob3QtcmVsb2FkIHBpY2tzIHVwIHJlYnVpbGRzIG1lYW53aGlsZSkuXG4gIHRyeSB7XG4gICAgY29uc3QgdHJhbnNwb3J0ID0gYXdhaXQgZ2V0T3JMYXVuY2hEZXZJbnN0YW5jZSh2YXVsdFBhdGgpO1xuICAgIGF3YWl0IGV2YWxJbk9ic2lkaWFuKHtcbiAgICAgIGFyZ3M6IHsgcGx1Z2luSWQgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zaGFkb3cgLS0gTm8gYWN0dWFsIHNoYWRvd2luZyBhcyB0aGUgZnVuY3Rpb24gaXMgZXhlY3V0ZWQgZXh0ZXJuYWxseS5cbiAgICAgIGFzeW5jIGZuKHsgYXBwLCBwbHVnaW5JZCB9KSB7XG4gICAgICAgIGF3YWl0IGFwcC5wbHVnaW5zLmVuYWJsZVBsdWdpbkFuZFNhdmUocGx1Z2luSWQpO1xuICAgICAgfSxcbiAgICAgIHNob3VsZFNraXBQcmVmbGlnaHRDaGVja3M6IHRydWUsXG4gICAgICB0cmFuc3BvcnQsXG4gICAgICB2YXVsdFBhdGhcbiAgICB9KTtcbiAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgIGdldExpYkRlYnVnZ2VyKCdjb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW4nKShgRmFpbGVkIHRvIGxpdmUtZW5hYmxlIHBsdWdpbiAnJHtwbHVnaW5JZH0nLiBJdCB3aWxsIGJlIGVuYWJsZWQgb24gdGhlIG5leHQgdmF1bHQgb3Blbi5gLCBlKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGBucG0gcnVuIGRldmAtb3duZWQgT2JzaWRpYW4gaW5zdGFuY2UgZm9yIHRoZSBnaXZlbiB2YXVsdCwgbGF1bmNoaW5nIGl0IG9uIGZpcnN0IHVzZSBhbmRcbiAqIHJldXNpbmcgaXQgb24gc3Vic2VxdWVudCByZWJ1aWxkcy5cbiAqXG4gKiBAcGFyYW0gdmF1bHRQYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHZhdWx0IGZvbGRlciB0byBvcGVuLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSBvd25lZCB7QGxpbmsgT2JzaWRpYW5UcmFuc3BvcnR9LlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRPckxhdW5jaERldkluc3RhbmNlKHZhdWx0UGF0aDogc3RyaW5nKTogUHJvbWlzZTxPYnNpZGlhblRyYW5zcG9ydD4ge1xuICBkZXZJbnN0YW5jZVRyYW5zcG9ydFByb21pc2UgPz89IGxhdW5jaERldkluc3RhbmNlKHZhdWx0UGF0aCk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGRldkluc3RhbmNlVHJhbnNwb3J0UHJvbWlzZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIENsZWFyIHRoZSBjYWNoZSBzbyBhIGxhdGVyIHJlYnVpbGQgcmV0cmllcyB0aGUgbGF1bmNoLlxuICAgIGRldkluc3RhbmNlVHJhbnNwb3J0UHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICB0aHJvdyBlO1xuICB9XG59XG5cbi8qKlxuICogTGF1bmNoZXMgYSBmcmVzaCBvd25lZCBPYnNpZGlhbiBpbnN0YW5jZSAoaXNvbGF0ZWQgdXNlci1kYXRhIGRpcikgYW5kIG9wZW5zIHRoZSBnaXZlbiB2YXVsdC5cbiAqXG4gKiBAcGFyYW0gdmF1bHRQYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHZhdWx0IGZvbGRlciB0byBvcGVuLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSBsYXVuY2hlZCB7QGxpbmsgT2JzaWRpYW5UcmFuc3BvcnR9LlxuICovXG5hc3luYyBmdW5jdGlvbiBsYXVuY2hEZXZJbnN0YW5jZSh2YXVsdFBhdGg6IHN0cmluZyk6IFByb21pc2U8T2JzaWRpYW5UcmFuc3BvcnQ+IHtcbiAgY29uc3QgdHJhbnNwb3J0ID0gYXdhaXQgY3JlYXRlVHJhbnNwb3J0RnJvbU9wdGlvbnMoKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB0cmFuc3BvcnQucmVnaXN0ZXJWYXVsdCh2YXVsdFBhdGgpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdHJhbnNwb3J0LmRpc3Bvc2VTeW5jPy4oKTtcbiAgICB0aHJvdyBlO1xuICB9XG4gIHJlZ2lzdGVyRGV2SW5zdGFuY2VDbGVhbnVwKHRyYW5zcG9ydCk7XG4gIHJldHVybiB0cmFuc3BvcnQ7XG59XG5cbi8qKlxuICogUmVnaXN0ZXJzIHByb2Nlc3MtZXhpdCBhbmQgc2lnbmFsIGhhbmRsZXJzIChvbmNlKSB0aGF0IHN5bmNocm9ub3VzbHkgY2xvc2UgdGhlIG93bmVkIE9ic2lkaWFuXG4gKiBpbnN0YW5jZSB3aGVuIHRoZSBgbnBtIHJ1biBkZXZgIHByb2Nlc3MgdGVybWluYXRlcy5cbiAqXG4gKiBAcGFyYW0gdHJhbnNwb3J0IC0gVGhlIG93bmVkIHRyYW5zcG9ydCB0byBkaXNwb3NlIG9uIHNodXRkb3duLlxuICovXG5mdW5jdGlvbiByZWdpc3RlckRldkluc3RhbmNlQ2xlYW51cCh0cmFuc3BvcnQ6IE9ic2lkaWFuVHJhbnNwb3J0KTogdm9pZCB7XG4gIGlmIChpc0Rldkluc3RhbmNlQ2xlYW51cFJlZ2lzdGVyZWQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaXNEZXZJbnN0YW5jZUNsZWFudXBSZWdpc3RlcmVkID0gdHJ1ZTtcblxuICAvLyBgZXhpdGAgY292ZXJzIGFueSBgcHJvY2Vzcy5leGl0KClgLCBidXQgYSBkZWZhdWx0IEN0cmwrQyB0ZXJtaW5hdGVzIFdJVEhPVVQgZmlyaW5nIGBleGl0YCwgc28gdGhlIHNpZ25hbCBoYW5kbGVycyBndWFyYW50ZWUgdGhlIG93bmVkIE9ic2lkaWFuIGlzIGtpbGxlZCBvbiBzaHV0ZG93bi5cbiAgcHJvY2Vzcy5vbignZXhpdCcsIGRpc3Bvc2VEZXZJbnN0YW5jZSk7XG4gIGZvciAoY29uc3Qgc2lnbmFsIG9mIFsnU0lHSFVQJywgJ1NJR0lOVCcsICdTSUdURVJNJ10gYXMgY29uc3QpIHtcbiAgICBwcm9jZXNzLm9uY2Uoc2lnbmFsLCAoKSA9PiB7XG4gICAgICBkaXNwb3NlRGV2SW5zdGFuY2UoKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gZGlzcG9zZURldkluc3RhbmNlKCk6IHZvaWQge1xuICAgIGlmIChpc0Rldkluc3RhbmNlRGlzcG9zZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXNEZXZJbnN0YW5jZURpc3Bvc2VkID0gdHJ1ZTtcbiAgICB0cmFuc3BvcnQuZGlzcG9zZVN5bmM/LigpO1xuICB9XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0EscUJBQTJCO0FBQzNCLHNCQUtPO0FBQ1AsMEJBQW9CO0FBQ3BCLDBDQUdPO0FBRVAsbUJBQStCO0FBQy9CLGtCQUlPO0FBNENQLElBQUk7QUFDSixJQUFJLGlDQUFpQztBQUNyQyxJQUFJLHdCQUF3QjtBQVFyQixTQUFTLGtDQUFrQyxRQUF5RDtB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
@@ -0,0 +1,145 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function initCjs() {
7
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ const globalThisRecord = globalThis;
9
+ globalThisRecord['__name'] ??= name;
10
+ const originalRequire = require;
11
+ if (originalRequire && !originalRequire.__isPatched) {
12
+ // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
13
+ require = Object.assign(
14
+ (id) => requirePatched(id),
15
+ originalRequire,
16
+ {
17
+ __isPatched: true
18
+ }
19
+ );
20
+ }
21
+
22
+ const newFuncs = {
23
+ __extractDefault() {
24
+ return extractDefault;
25
+ },
26
+ process() {
27
+ const browserProcess = {
28
+ browser: true,
29
+ cwd() {
30
+ return '/';
31
+ },
32
+ env: {},
33
+ platform: 'android'
34
+ };
35
+ return browserProcess;
36
+ }
37
+ };
38
+
39
+ for (const key of Object.keys(newFuncs)) {
40
+ globalThisRecord[key] ??= newFuncs[key]?.();
41
+ }
42
+
43
+ function name(obj) {
44
+ return obj;
45
+ }
46
+
47
+ function extractDefault(module) {
48
+ return module && module.__esModule && 'default' in module ? module.default : module;
49
+ }
50
+
51
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
52
+ 'obsidian',
53
+ '@codemirror/autocomplete',
54
+ '@codemirror/collab',
55
+ '@codemirror/commands',
56
+ '@codemirror/language',
57
+ '@codemirror/lint',
58
+ '@codemirror/search',
59
+ '@codemirror/state',
60
+ '@codemirror/text',
61
+ '@codemirror/view',
62
+ '@lezer/common',
63
+ '@lezer/lr',
64
+ '@lezer/highlight'];
65
+
66
+
67
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
68
+ '@codemirror/closebrackets',
69
+ '@codemirror/comment',
70
+ '@codemirror/fold',
71
+ '@codemirror/gutter',
72
+ '@codemirror/highlight',
73
+ '@codemirror/history',
74
+ '@codemirror/matchbrackets',
75
+ '@codemirror/panel',
76
+ '@codemirror/rangeset',
77
+ '@codemirror/rectangular-selection',
78
+ '@codemirror/stream-parser',
79
+ '@codemirror/tooltip'];
80
+
81
+
82
+ function requirePatched(id) {
83
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
84
+ return originalRequire?.(id);
85
+ }
86
+
87
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
88
+ if (globalThis.app.isMobile) {
89
+ if (id === 'process' || id === 'node:process') {
90
+ // eslint-disable-next-line no-console -- Valid usage.
91
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
92
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
93
+ return globalThis.process;
94
+ }
95
+ } else {
96
+ const module = originalRequire?.(id);
97
+ if (module) {
98
+ return extractDefault(module);
99
+ }
100
+ }
101
+
102
+ // eslint-disable-next-line no-console -- Valid usage.
103
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
104
+ return {};
105
+ }
106
+ })();
107
+
108
+ "use strict";
109
+ var __defProp = Object.defineProperty;
110
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
111
+ var __getOwnPropNames = Object.getOwnPropertyNames;
112
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
113
+ var __export = (target, all) => {
114
+ for (var name in all)
115
+ __defProp(target, name, { get: all[name], enumerable: true });
116
+ };
117
+ var __copyProps = (to, from, except, desc) => {
118
+ if (from && typeof from === "object" || typeof from === "function") {
119
+ for (let key of __getOwnPropNames(from))
120
+ if (!__hasOwnProp.call(to, key) && key !== except)
121
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122
+ }
123
+ return to;
124
+ };
125
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
126
+ var eslint_agnostic_core_boundary_exports = {};
127
+ __export(eslint_agnostic_core_boundary_exports, {
128
+ agnosticCoreBoundaryNoRestrictedImportPatterns: () => agnosticCoreBoundaryNoRestrictedImportPatterns
129
+ });
130
+ module.exports = __toCommonJS(eslint_agnostic_core_boundary_exports);
131
+ const agnosticCoreBoundaryNoRestrictedImportPatterns = [
132
+ {
133
+ group: [
134
+ "./obsidian",
135
+ "./obsidian/*",
136
+ "./obsidian/**"
137
+ ],
138
+ message: "Obsidian-runtime-agnostic top-level `src/*.ts` modules must not import the Obsidian layer (`src/obsidian/**`). Move Obsidian-coupled code into `src/obsidian/`, or inject what you need explicitly."
139
+ }
140
+ ];
141
+ // Annotate the CommonJS export names for ESM import in node:
142
+ 0 && (module.exports = {
143
+ agnosticCoreBoundaryNoRestrictedImportPatterns
144
+ });
145
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogYG5vLXJlc3RyaWN0ZWQtaW1wb3J0c2AgcGF0dGVybiBlbnRyaWVzIHRoYXQgZW5mb3JjZSB0aGUgYWdub3N0aWMtY29yZSBib3VuZGFyeTogdGhlXG4gKiBPYnNpZGlhbi1ydW50aW1lLWFnbm9zdGljIHRvcC1sZXZlbCBgc3JjLyoudHNgIG1vZHVsZXMgbXVzdCBub3QgaW1wb3J0IHRoZSBPYnNpZGlhbiBsYXllclxuICogKGBzcmMvb2JzaWRpYW4vKipgKS5cbiAqXG4gKiBFeHBvcnRlZCBhcyBhIHN0YW5kYWxvbmUgY29uc3RhbnQgc28gdGhlIHBhdHRlcm4gY2FuIGJlIHVuaXQtdGVzdGVkIGluZGVwZW5kZW50bHkgb2YgdGhlIGxhcmdlclxuICogZGVjbGFyYXRpdmUgY29uZmlnLCBhbmQgc28gdGhlIG93bmluZyBwcm9qZWN0IGNhbiBhcHBseSBpdCBzY29wZWQgdG8gaXRzIHRvcC1sZXZlbCBzb3VyY2UgZmlsZXMuXG4gKi9cblxuLyoqXG4gKiBBIHNpbmdsZSBgbm8tcmVzdHJpY3RlZC1pbXBvcnRzYCBwYXR0ZXJuIGVudHJ5IHBhaXJpbmcgYSBncm91cCBvZiBiYW5uZWQgaW1wb3J0IHNwZWNpZmllcnMgd2l0aCBhXG4gKiBodW1hbi1yZWFkYWJsZSBtZXNzYWdlIGV4cGxhaW5pbmcgd2h5IHRoZXkgYXJlIGJhbm5lZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb1Jlc3RyaWN0ZWRJbXBvcnRQYXR0ZXJuRW50cnkge1xuICAvKipcbiAgICogVGhlIGdsb2IgZ3JvdXAgb2YgaW1wb3J0IHNwZWNpZmllcnMgdG8gYmFuLlxuICAgKi9cbiAgZ3JvdXA6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBtZXNzYWdlIHNob3duIHdoZW4gYW4gaW1wb3J0IG1hdGNoZXMgdGhlIGdyb3VwLlxuICAgKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIGBuby1yZXN0cmljdGVkLWltcG9ydHNgIHBhdHRlcm4gZW50cmllcyBiYW5uaW5nIHJlbGF0aXZlIGltcG9ydHMgaW50byB0aGUgYG9ic2lkaWFuYCBsYXllci5cbiAqXG4gKiBJbnRlbmRlZCB0byBiZSBhcHBsaWVkICh2aWEgYSBmaWxlLXNjb3BlZCBFU0xpbnQgY29uZmlnKSB0byB0aGUgYWdub3N0aWMgdG9wLWxldmVsIGBzcmMvKi50c2BcbiAqIG1vZHVsZXMsIGV4Y2x1ZGluZyB0aGUgZ2VuZXJhdGVkIGJhcnJlbCBhbmQgdGVzdCBmaWxlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGFnbm9zdGljQ29yZUJvdW5kYXJ5Tm9SZXN0cmljdGVkSW1wb3J0UGF0dGVybnM6IHJlYWRvbmx5IE5vUmVzdHJpY3RlZEltcG9ydFBhdHRlcm5FbnRyeVtdID0gW1xuICB7XG4gICAgZ3JvdXA6IFtcbiAgICAgICcuL29ic2lkaWFuJyxcbiAgICAgICcuL29ic2lkaWFuLyonLFxuICAgICAgJy4vb2JzaWRpYW4vKionXG4gICAgXSxcbiAgICBtZXNzYWdlOiAnT2JzaWRpYW4tcnVudGltZS1hZ25vc3RpYyB0b3AtbGV2ZWwgYHNyYy8qLnRzYCBtb2R1bGVzIG11c3Qgbm90IGltcG9ydCB0aGUgT2JzaWRpYW4gbGF5ZXIgKGBzcmMvb2JzaWRpYW4vKipgKS4gTW92ZSBPYnNpZGlhbi1jb3VwbGVkIGNvZGUgaW50byBgc3JjL29ic2lkaWFuL2AsIG9yIGluamVjdCB3aGF0IHlvdSBuZWVkIGV4cGxpY2l0bHkuJ1xuICB9XG5dO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBaUNPLE1BQU0saURBQTRGO0FBQUEsRUFDdkc7QUFBQSxJQUNFLE9BQU87QUFBQSxNQUNMO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsSUFDQSxTQUFTO0FBQUEsRUFDWDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,32 @@
1
+ /// <reference path="../../library.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * `no-restricted-imports` pattern entries that enforce the agnostic-core boundary: the
6
+ * Obsidian-runtime-agnostic top-level `src/*.ts` modules must not import the Obsidian layer
7
+ * (`src/obsidian/**`).
8
+ *
9
+ * Exported as a standalone constant so the pattern can be unit-tested independently of the larger
10
+ * declarative config, and so the owning project can apply it scoped to its top-level source files.
11
+ */
12
+ /**
13
+ * A single `no-restricted-imports` pattern entry pairing a group of banned import specifiers with a
14
+ * human-readable message explaining why they are banned.
15
+ */
16
+ export interface NoRestrictedImportPatternEntry {
17
+ /**
18
+ * The glob group of import specifiers to ban.
19
+ */
20
+ group: string[];
21
+ /**
22
+ * Human-readable message shown when an import matches the group.
23
+ */
24
+ message: string;
25
+ }
26
+ /**
27
+ * `no-restricted-imports` pattern entries banning relative imports into the `obsidian` layer.
28
+ *
29
+ * Intended to be applied (via a file-scoped ESLint config) to the agnostic top-level `src/*.ts`
30
+ * modules, excluding the generated barrel and test files.
31
+ */
32
+ export declare const agnosticCoreBoundaryNoRestrictedImportPatterns: readonly NoRestrictedImportPatternEntry[];
@@ -137,6 +137,7 @@ var linters_exports = {};
137
137
  __export(linters_exports, {
138
138
  cspell: () => cspell,
139
139
  eslint: () => eslint,
140
+ "eslint-agnostic-core-boundary": () => eslint_agnostic_core_boundary,
140
141
  "eslint-config": () => eslint_config,
141
142
  "eslint-no-restricted-syntax": () => eslint_no_restricted_syntax,
142
143
  "eslint-rules": () => eslint_rules,
@@ -146,6 +147,7 @@ __export(linters_exports, {
146
147
  });
147
148
  module.exports = __toCommonJS(linters_exports);
148
149
  var cspell = __toESM(__extractDefault(require('./cspell.cjs')), 1);
150
+ var eslint_agnostic_core_boundary = __toESM(__extractDefault(require('./eslint-agnostic-core-boundary.cjs')), 1);
149
151
  var eslint_config = __toESM(__extractDefault(require('./eslint-config.cjs')), 1);
150
152
  var eslint_no_restricted_syntax = __toESM(__extractDefault(require('./eslint-no-restricted-syntax.cjs')), 1);
151
153
  var eslint_rules = __toESM(__extractDefault(require('./eslint-rules/index.cjs')), 1);
@@ -157,6 +159,7 @@ var over_exposure = __toESM(__extractDefault(require('./over-exposure.cjs')), 1)
157
159
  0 && (module.exports = {
158
160
  cspell,
159
161
  eslint,
162
+ "eslint-agnostic-core-boundary": null,
160
163
  "eslint-config": null,
161
164
  "eslint-no-restricted-syntax": null,
162
165
  "eslint-rules": null,
@@ -164,4 +167,4 @@ var over_exposure = __toESM(__extractDefault(require('./over-exposure.cjs')), 1)
164
167
  "markdownlint-cli2-config": null,
165
168
  "over-exposure": null
166
169
  });
167
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2NzcGVsbCcgZnJvbSAnLi9jc3BlbGwudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1jb25maWcnIGZyb20gJy4vZXNsaW50LWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnZXNsaW50LW5vLXJlc3RyaWN0ZWQtc3ludGF4JyBmcm9tICcuL2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheC50cyc7XG5leHBvcnQgKiBhcyAnZXNsaW50LXJ1bGVzJyBmcm9tICcuL2VzbGludC1ydWxlcy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnZXNsaW50JyBmcm9tICcuL2VzbGludC50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd25saW50LWNsaTItY29uZmlnJyBmcm9tICcuL21hcmtkb3dubGludC1jbGkyLWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd25saW50JyBmcm9tICcuL21hcmtkb3dubGludC50cyc7XG5leHBvcnQgKiBhcyAnb3Zlci1leHBvc3VyZScgZnJvbSAnLi9vdmVyLWV4cG9zdXJlLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBQUFBO0FBQUEsRUFBQSxxQ0FBQUM7QUFBQSxFQUFBLHNCQUFBQztBQUFBLEVBQUE7QUFBQSxvQ0FBQUM7QUFBQSxFQUFBLHVCQUFBQztBQUFBO0FBQUE7QUFFQSxhQUEwQjtBQUMxQixJQUFBSixnQkFBaUM7QUFDakMsSUFBQUMsOEJBQStDO0FBQy9DLElBQUFDLGVBQWdDO0FBQ2hDLGFBQTBCO0FBQzFCLElBQUFDLDJCQUE0QztBQUM1QyxtQkFBZ0M7QUFDaEMsSUFBQUMsZ0JBQWlDOyIsCiAgIm5hbWVzIjogWyJlc2xpbnQtY29uZmlnIiwgImVzbGludC1uby1yZXN0cmljdGVkLXN5bnRheCIsICJlc2xpbnQtcnVsZXMiLCAibWFya2Rvd25saW50LWNsaTItY29uZmlnIiwgIm92ZXItZXhwb3N1cmUiXQp9Cg==
170
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2NzcGVsbCcgZnJvbSAnLi9jc3BlbGwudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5JyBmcm9tICcuL2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5LnRzJztcbmV4cG9ydCAqIGFzICdlc2xpbnQtY29uZmlnJyBmcm9tICcuL2VzbGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheCcgZnJvbSAnLi9lc2xpbnQtbm8tcmVzdHJpY3RlZC1zeW50YXgudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1ydWxlcycgZnJvbSAnLi9lc2xpbnQtcnVsZXMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludCcgZnJvbSAnLi9lc2xpbnQudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3dubGludC1jbGkyLWNvbmZpZycgZnJvbSAnLi9tYXJrZG93bmxpbnQtY2xpMi1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3dubGludCcgZnJvbSAnLi9tYXJrZG93bmxpbnQudHMnO1xuZXhwb3J0ICogYXMgJ292ZXItZXhwb3N1cmUnIGZyb20gJy4vb3Zlci1leHBvc3VyZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlDQUFBQTtBQUFBLEVBQUEsdUJBQUFDO0FBQUEsRUFBQSxxQ0FBQUM7QUFBQSxFQUFBLHNCQUFBQztBQUFBLEVBQUE7QUFBQSxvQ0FBQUM7QUFBQSxFQUFBLHVCQUFBQztBQUFBO0FBQUE7QUFFQSxhQUEwQjtBQUMxQixJQUFBTCxnQ0FBaUQ7QUFDakQsSUFBQUMsZ0JBQWlDO0FBQ2pDLElBQUFDLDhCQUErQztBQUMvQyxJQUFBQyxlQUFnQztBQUNoQyxhQUEwQjtBQUMxQixJQUFBQywyQkFBNEM7QUFDNUMsbUJBQWdDO0FBQ2hDLElBQUFDLGdCQUFpQzsiLAogICJuYW1lcyI6IFsiZXNsaW50LWFnbm9zdGljLWNvcmUtYm91bmRhcnkiLCAiZXNsaW50LWNvbmZpZyIsICJlc2xpbnQtbm8tcmVzdHJpY3RlZC1zeW50YXgiLCAiZXNsaW50LXJ1bGVzIiwgIm1hcmtkb3dubGludC1jbGkyLWNvbmZpZyIsICJvdmVyLWV4cG9zdXJlIl0KfQo=
@@ -1,5 +1,6 @@
1
1
  /// <reference path="../../library.d.cts" />
2
2
  export * as 'cspell' from './cspell.cjs';
3
+ export * as 'eslint-agnostic-core-boundary' from './eslint-agnostic-core-boundary.cjs';
3
4
  export * as 'eslint-config' from './eslint-config.cjs';
4
5
  export * as 'eslint-no-restricted-syntax' from './eslint-no-restricted-syntax.cjs';
5
6
  export * as 'eslint-rules' from './eslint-rules/index.cjs';
@@ -151,14 +151,14 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
151
151
  ObsidianDevUtilsRepoPaths2["DtsExtension"] = ".d.ts";
152
152
  ObsidianDevUtilsRepoPaths2["EslintConfigMts"] = "eslint.config.mts";
153
153
  ObsidianDevUtilsRepoPaths2["Esm"] = "esm";
154
+ ObsidianDevUtilsRepoPaths2["GeneratedDuringBuildCjs"] = "generated-during-build.cjs";
155
+ ObsidianDevUtilsRepoPaths2["GeneratedDuringBuildMjs"] = "generated-during-build.mjs";
154
156
  ObsidianDevUtilsRepoPaths2["IndexCjs"] = "index.cjs";
155
157
  ObsidianDevUtilsRepoPaths2["IndexDcts"] = "index.d.cts";
156
158
  ObsidianDevUtilsRepoPaths2["IndexDmts"] = "index.d.mts";
157
159
  ObsidianDevUtilsRepoPaths2["IndexMjs"] = "index.mjs";
158
160
  ObsidianDevUtilsRepoPaths2["IndexTs"] = "index.ts";
159
161
  ObsidianDevUtilsRepoPaths2["JsExtension"] = ".js";
160
- ObsidianDevUtilsRepoPaths2["LibraryCjs"] = "library.cjs";
161
- ObsidianDevUtilsRepoPaths2["LibraryMjs"] = "library.mjs";
162
162
  ObsidianDevUtilsRepoPaths2["MarkdownlintCli2ConfigMjs"] = ".markdownlint-cli2.mjs";
163
163
  ObsidianDevUtilsRepoPaths2["MarkdownlintTypesMarkdownlintCli2ConfigSchemaDts"] = "src/script-utils/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.ts";
164
164
  ObsidianDevUtilsRepoPaths2["MjsExtension"] = ".mjs";
@@ -183,4 +183,4 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
183
183
  0 && (module.exports = {
184
184
  ObsidianDevUtilsRepoPaths
185
185
  });
186
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBjb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdXNlZCBpbiB0aGUgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBlbnVtIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMge1xuICAvKiogQW55IGZpbGUgb3IgZm9sZGVyLiAqL1xuICBBbnkgPSAnKicsXG5cbiAgLyoqIENvbW1vbkpTIGZpbGUuICovXG4gIEFueUNqcyA9ICcqLmNqcycsXG5cbiAgLyoqIENvbW1vbkpTIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RGN0cyA9ICcqLmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RG10cyA9ICcqLmQubXRzJyxcblxuICAvKiogVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLiAqL1xuICBBbnlEdHMgPSAnKi5kLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZS4gKi9cbiAgQW55TWpzID0gJyoubWpzJyxcblxuICAvKiogQW55IHBhdGggcmVjdXJzaXZlbHkuICovXG4gIEFueVBhdGggPSAnKionLFxuXG4gIC8qKiBBbnkgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUcyA9ICcqLnRzJyxcblxuICAvKiogQ29tbW9uSlMgZm9sZGVyLiAqL1xuICBDanMgPSAnY2pzJyxcblxuICAvKiogQ29tbW9uSlMgZmlsZSBleHRlbnNpb24uICovXG4gIENqc0V4dGVuc2lvbiA9ICcuY2pzJyxcblxuICAvKiogQ3VycmVudCBmb2xkZXIuICovXG4gIEN1cnJlbnRGb2xkZXIgPSAnLicsXG5cbiAgLyoqIERhdGF2aWV3IHR5cGVzLiAqL1xuICBEYXRhdmlld1R5cGVzID0gJ3NyYy9vYnNpZGlhbi9AdHlwZXMvZGF0YXZpZXcvKionLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEY3RzRXh0ZW5zaW9uID0gJy5kLmN0cycsXG5cbiAgLyoqIERpc3RyaWJ1dGlvbiBmb2xkZXIuICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqIEEgcGF0aCB0byB0aGUgYGxpYmAgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci4gKi9cbiAgRGlzdExpYiA9ICdkaXN0L2xpYicsXG5cbiAgLyoqIEEgcGF0aCB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlciwgaG9sZGluZyB0aGUgY29uc3VtZXItZmFjaW5nIHRlbXBsYXRlcy4gKi9cbiAgRGlzdFRlbXBsYXRlcyA9ICdkaXN0L3RlbXBsYXRlcycsXG5cbiAgLyoqIFRyYW5zcGlsZWQgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgRGpzRXh0ZW5zaW9uID0gJy5kLmpzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIERtdHNFeHRlbnNpb24gPSAnLmQubXRzJyxcblxuICAvKiogRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRHByaW50SnNvbiA9ICdkcHJpbnQuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIER0c0V4dGVuc2lvbiA9ICcuZC50cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IGZvbGRlci4gKi9cbiAgRXNtID0gJ2VzbScsXG5cbiAgLyoqIENvbW1vbkpTIEphdmFTY3JpcHQgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhDanMgPSAnaW5kZXguY2pzJyxcblxuICAvKiogQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuICovXG4gIEluZGV4RGN0cyA9ICdpbmRleC5kLmN0cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhEbXRzID0gJ2luZGV4LmQubXRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhNanMgPSAnaW5kZXgubWpzJyxcblxuICAvKiogVHlwZVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleFRzID0gJ2luZGV4LnRzJyxcblxuICAvKiogSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgSnNFeHRlbnNpb24gPSAnLmpzJyxcblxuICAvKiogTGlicmFyeSBDb21tb25KUyBmaWxlLiAqL1xuICBMaWJyYXJ5Q2pzID0gJ2xpYnJhcnkuY2pzJyxcblxuICAvKiogTGlicmFyeSBFU00gSmF2YVNjcmlwdCBmaWxlLiAqL1xuICBMaWJyYXJ5TWpzID0gJ2xpYnJhcnkubWpzJyxcblxuICAvKiogRVNNIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyA9ICcubWFya2Rvd25saW50LWNsaTIubWpzJyxcblxuICAvKiogTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBzY2hlbWEgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRUeXBlc01hcmtkb3dubGludENsaTJDb25maWdTY2hlbWFEdHMgPSAnc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL21hcmtkb3dubGludC10eXBlcy9AdHlwZXMvbWFya2Rvd25saW50LWNsaTItY29uZmlnLXNjaGVtYS5kLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uICovXG4gIE1qc0V4dGVuc2lvbiA9ICcubWpzJyxcblxuICAvKiogTm9kZSBtb2R1bGVzIGZvbGRlci4gKi9cbiAgTm9kZU1vZHVsZXMgPSAnbm9kZV9tb2R1bGVzJyxcblxuICAvKiogUGFja2FnZSBKU09OIGZpbGUuICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqIFJvb3QgZm9sZGVyLiAqL1xuICBSb290Rm9sZGVyID0gJy8nLFxuXG4gIC8qKiBTY3JpcHRzIGZvbGRlci4gKi9cbiAgU2NyaXB0cyA9ICdzY3JpcHRzJyxcblxuICAvKiogU2NyaXB0VXRpbHMgZm9sZGVyLiAqL1xuICBTY3JpcHRVdGlscyA9ICdzY3JpcHQtdXRpbHMnLFxuXG4gIC8qKiBTb3VyY2UgZm9sZGVyLiAqL1xuICBTcmMgPSAnc3JjJyxcblxuICAvKiogU3R5bGVzIGZvbGRlci4gKi9cbiAgU3R5bGVzID0gJ3N0eWxlcycsXG5cbiAgLyoqIFN0eWxlcyBDU1MgZmlsZS4gKi9cbiAgU3R5bGVzQ3NzID0gJ3N0eWxlcy5jc3MnLFxuXG4gIC8qKiBUZW1wbGF0ZXMgZm9sZGVyLiAqL1xuICBUZW1wbGF0ZXMgPSAndGVtcGxhdGVzJyxcblxuICAvKiogVGVzdCBoZWxwZXJzIGZvbGRlci4gKi9cbiAgVGVzdEhlbHBlcnMgPSAndGVzdC1oZWxwZXJzJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIFRzQ29uZmlnSnNvbiA9ICd0c2NvbmZpZy5qc29uJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCB2YWxpZGF0ZXMgdGhlIGdlbmVyYXRlZCBDb21tb25KUyBkZWNsYXJhdGlvbnMuICovXG4gIFRzQ29uZmlnVmFsaWRhdGVEZWNsYXJhdGlvbnNDanNKc29uID0gJ3RzY29uZmlnLnZhbGlkYXRlLWRlY2xhcmF0aW9ucy1janMuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgdmFsaWRhdGVzIHRoZSBnZW5lcmF0ZWQgRVNNIGRlY2xhcmF0aW9ucy4gKi9cbiAgVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0pzb24gPSAndHNjb25maWcudmFsaWRhdGUtZGVjbGFyYXRpb25zLmpzb24nLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBUc0V4dGVuc2lvbiA9ICcudHMnLFxuXG4gIC8qKiBUeXBlcyBmb2xkZXIuICovXG4gIFR5cGVzID0gJ0B0eXBlcydcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdPLElBQUssNEJBQUwsa0JBQUtBLCtCQUFMO0FBRUwsRUFBQUEsMkJBQUEsU0FBTTtBQUdOLEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxZQUFTO0FBR1QsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLFdBQVE7QUFHUixFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxVQUFPO0FBR1AsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxnQkFBYTtBQUdiLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSxjQUFXO0FBR1gsRUFBQUEsMkJBQUEsZUFBWTtBQUdaLEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxjQUFXO0FBR1gsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSxnQkFBYTtBQUdiLEVBQUFBLDJCQUFBLCtCQUE0QjtBQUc1QixFQUFBQSwyQkFBQSxzREFBbUQ7QUFHbkQsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLHlDQUFzQztBQUd0QyxFQUFBQSwyQkFBQSxzQ0FBbUM7QUFHbkMsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxXQUFRO0FBL0lFLFNBQUFBO0FBQUEsR0FBQTsiLAogICJuYW1lcyI6IFsiT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyJdCn0K
186
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBjb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdXNlZCBpbiB0aGUgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBlbnVtIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMge1xuICAvKiogQW55IGZpbGUgb3IgZm9sZGVyLiAqL1xuICBBbnkgPSAnKicsXG5cbiAgLyoqIENvbW1vbkpTIGZpbGUuICovXG4gIEFueUNqcyA9ICcqLmNqcycsXG5cbiAgLyoqIENvbW1vbkpTIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RGN0cyA9ICcqLmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RG10cyA9ICcqLmQubXRzJyxcblxuICAvKiogVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLiAqL1xuICBBbnlEdHMgPSAnKi5kLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZS4gKi9cbiAgQW55TWpzID0gJyoubWpzJyxcblxuICAvKiogQW55IHBhdGggcmVjdXJzaXZlbHkuICovXG4gIEFueVBhdGggPSAnKionLFxuXG4gIC8qKiBBbnkgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUcyA9ICcqLnRzJyxcblxuICAvKiogQ29tbW9uSlMgZm9sZGVyLiAqL1xuICBDanMgPSAnY2pzJyxcblxuICAvKiogQ29tbW9uSlMgZmlsZSBleHRlbnNpb24uICovXG4gIENqc0V4dGVuc2lvbiA9ICcuY2pzJyxcblxuICAvKiogQ3VycmVudCBmb2xkZXIuICovXG4gIEN1cnJlbnRGb2xkZXIgPSAnLicsXG5cbiAgLyoqIERhdGF2aWV3IHR5cGVzLiAqL1xuICBEYXRhdmlld1R5cGVzID0gJ3NyYy9vYnNpZGlhbi9AdHlwZXMvZGF0YXZpZXcvKionLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEY3RzRXh0ZW5zaW9uID0gJy5kLmN0cycsXG5cbiAgLyoqIERpc3RyaWJ1dGlvbiBmb2xkZXIuICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqIEEgcGF0aCB0byB0aGUgYGxpYmAgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci4gKi9cbiAgRGlzdExpYiA9ICdkaXN0L2xpYicsXG5cbiAgLyoqIEEgcGF0aCB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlciwgaG9sZGluZyB0aGUgY29uc3VtZXItZmFjaW5nIHRlbXBsYXRlcy4gKi9cbiAgRGlzdFRlbXBsYXRlcyA9ICdkaXN0L3RlbXBsYXRlcycsXG5cbiAgLyoqIFRyYW5zcGlsZWQgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgRGpzRXh0ZW5zaW9uID0gJy5kLmpzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIERtdHNFeHRlbnNpb24gPSAnLmQubXRzJyxcblxuICAvKiogRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRHByaW50SnNvbiA9ICdkcHJpbnQuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIER0c0V4dGVuc2lvbiA9ICcuZC50cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IGZvbGRlci4gKi9cbiAgRXNtID0gJ2VzbScsXG5cbiAgLyoqIEdlbmVyYXRlZC1kdXJpbmctYnVpbGQgQ29tbW9uSlMgZmlsZS4gKi9cbiAgR2VuZXJhdGVkRHVyaW5nQnVpbGRDanMgPSAnZ2VuZXJhdGVkLWR1cmluZy1idWlsZC5janMnLFxuXG4gIC8qKiBHZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkIEVTTSBKYXZhU2NyaXB0IGZpbGUuICovXG4gIEdlbmVyYXRlZER1cmluZ0J1aWxkTWpzID0gJ2dlbmVyYXRlZC1kdXJpbmctYnVpbGQubWpzJyxcblxuICAvKiogQ29tbW9uSlMgSmF2YVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleENqcyA9ICdpbmRleC5janMnLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhEY3RzID0gJ2luZGV4LmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBpbmRleCBmaWxlLiAqL1xuICBJbmRleERtdHMgPSAnaW5kZXguZC5tdHMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleE1qcyA9ICdpbmRleC5tanMnLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGluZGV4IGZpbGUuICovXG4gIEluZGV4VHMgPSAnaW5kZXgudHMnLFxuXG4gIC8qKiBKYXZhU2NyaXB0IGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBKc0V4dGVuc2lvbiA9ICcuanMnLFxuXG4gIC8qKiBFU00gTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnTWpzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5tanMnLFxuXG4gIC8qKiBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIHNjaGVtYSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludFR5cGVzTWFya2Rvd25saW50Q2xpMkNvbmZpZ1NjaGVtYUR0cyA9ICdzcmMvc2NyaXB0LXV0aWxzL2xpbnRlcnMvbWFya2Rvd25saW50LXR5cGVzL0B0eXBlcy9tYXJrZG93bmxpbnQtY2xpMi1jb25maWctc2NoZW1hLmQudHMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgTWpzRXh0ZW5zaW9uID0gJy5tanMnLFxuXG4gIC8qKiBOb2RlIG1vZHVsZXMgZm9sZGVyLiAqL1xuICBOb2RlTW9kdWxlcyA9ICdub2RlX21vZHVsZXMnLFxuXG4gIC8qKiBQYWNrYWdlIEpTT04gZmlsZS4gKi9cbiAgUGFja2FnZUpzb24gPSAncGFja2FnZS5qc29uJyxcblxuICAvKiogUm9vdCBmb2xkZXIuICovXG4gIFJvb3RGb2xkZXIgPSAnLycsXG5cbiAgLyoqIFNjcmlwdHMgZm9sZGVyLiAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKiBTY3JpcHRVdGlscyBmb2xkZXIuICovXG4gIFNjcmlwdFV0aWxzID0gJ3NjcmlwdC11dGlscycsXG5cbiAgLyoqIFNvdXJjZSBmb2xkZXIuICovXG4gIFNyYyA9ICdzcmMnLFxuXG4gIC8qKiBTdHlsZXMgZm9sZGVyLiAqL1xuICBTdHlsZXMgPSAnc3R5bGVzJyxcblxuICAvKiogU3R5bGVzIENTUyBmaWxlLiAqL1xuICBTdHlsZXNDc3MgPSAnc3R5bGVzLmNzcycsXG5cbiAgLyoqIFRlbXBsYXRlcyBmb2xkZXIuICovXG4gIFRlbXBsYXRlcyA9ICd0ZW1wbGF0ZXMnLFxuXG4gIC8qKiBUZXN0IGhlbHBlcnMgZm9sZGVyLiAqL1xuICBUZXN0SGVscGVycyA9ICd0ZXN0LWhlbHBlcnMnLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgVHNDb25maWdKc29uID0gJ3RzY29uZmlnLmpzb24nLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IHZhbGlkYXRlcyB0aGUgZ2VuZXJhdGVkIENvbW1vbkpTIGRlY2xhcmF0aW9ucy4gKi9cbiAgVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0Nqc0pzb24gPSAndHNjb25maWcudmFsaWRhdGUtZGVjbGFyYXRpb25zLWNqcy5qc29uJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCB2YWxpZGF0ZXMgdGhlIGdlbmVyYXRlZCBFU00gZGVjbGFyYXRpb25zLiAqL1xuICBUc0NvbmZpZ1ZhbGlkYXRlRGVjbGFyYXRpb25zSnNvbiA9ICd0c2NvbmZpZy52YWxpZGF0ZS1kZWNsYXJhdGlvbnMuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZmlsZSBleHRlbnNpb24uICovXG4gIFRzRXh0ZW5zaW9uID0gJy50cycsXG5cbiAgLyoqIFR5cGVzIGZvbGRlci4gKi9cbiAgVHlwZXMgPSAnQHR5cGVzJ1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV08sSUFBSyw0QkFBTCxrQkFBS0EsK0JBQUw7QUFFTCxFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsV0FBUTtBQUdSLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLFVBQU87QUFHUCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLGdCQUFhO0FBR2IsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxxQkFBa0I7QUFHbEIsRUFBQUEsMkJBQUEsU0FBTTtBQUdOLEVBQUFBLDJCQUFBLDZCQUEwQjtBQUcxQixFQUFBQSwyQkFBQSw2QkFBMEI7QUFHMUIsRUFBQUEsMkJBQUEsY0FBVztBQUdYLEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsY0FBVztBQUdYLEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLCtCQUE0QjtBQUc1QixFQUFBQSwyQkFBQSxzREFBbUQ7QUFHbkQsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLHlDQUFzQztBQUd0QyxFQUFBQSwyQkFBQSxzQ0FBbUM7QUFHbkMsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxXQUFRO0FBL0lFLFNBQUFBO0FBQUEsR0FBQTsiLAogICJuYW1lcyI6IFsiT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyJdCn0K
@@ -54,6 +54,10 @@ export declare enum ObsidianDevUtilsRepoPaths {
54
54
  EslintConfigMts = "eslint.config.mts",
55
55
  /** ESM JavaScript folder. */
56
56
  Esm = "esm",
57
+ /** Generated-during-build CommonJS file. */
58
+ GeneratedDuringBuildCjs = "generated-during-build.cjs",
59
+ /** Generated-during-build ESM JavaScript file. */
60
+ GeneratedDuringBuildMjs = "generated-during-build.mjs",
57
61
  /** CommonJS JavaScript index file. */
58
62
  IndexCjs = "index.cjs",
59
63
  /** CommonJS TypeScript declaration file index file. */
@@ -66,10 +70,6 @@ export declare enum ObsidianDevUtilsRepoPaths {
66
70
  IndexTs = "index.ts",
67
71
  /** JavaScript file extension. */
68
72
  JsExtension = ".js",
69
- /** Library CommonJS file. */
70
- LibraryCjs = "library.cjs",
71
- /** Library ESM JavaScript file. */
72
- LibraryMjs = "library.mjs",
73
73
  /** ESM Markdownlint CLI2 configuration file. */
74
74
  MarkdownlintCli2ConfigMjs = ".markdownlint-cli2.mjs",
75
75
  /** Markdownlint CLI2 configuration schema TypeScript declaration file. */
@@ -129,6 +129,7 @@ __export(setup_exports, {
129
129
  });
130
130
  module.exports = __toCommonJS(setup_exports);
131
131
  var import_async = require('./async.cjs');
132
+ var import_library = require('./library.cjs');
132
133
  var import_obsidian_dev_utils_state = require('./obsidian-dev-utils-state.cjs');
133
134
  function setup(params) {
134
135
  params.beforeEach(beforeEachHandler);
@@ -136,10 +137,11 @@ function setup(params) {
136
137
  }
137
138
  function beforeEachHandler() {
138
139
  (0, import_obsidian_dev_utils_state.resetObsidianDevUtilsState)();
140
+ import_library.Library.resetToDefault();
139
141
  (0, import_async.enableAsyncOperationTracking)();
140
142
  }
141
143
  // Annotate the CommonJS export names for ESM import in node:
142
144
  0 && (module.exports = {
143
145
  setup
144
146
  });
145
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NldHVwLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRnJhbWV3b3JrLWFnbm9zdGljIHRlc3Qtc2V0dXAgZW5kcG9pbnQgZm9yIGBvYnNpZGlhbi1kZXYtdXRpbHNgLlxuICpcbiAqIFdpcmVzIHRoZSBsaWJyYXJ5J3MgcGVyLXRlc3Qgc2V0dXAgaW50byBhIHRlc3QgZnJhbWV3b3JrJ3MgYGJlZm9yZUVhY2hgIC8gYGFmdGVyRWFjaGAgbGlmZWN5Y2xlXG4gKiBob29rcy4gQmVmb3JlIGVhY2ggdGVzdCBpdCByZXNldHMgdGhlIHNoYXJlZC1zdGF0ZSBiYWcgb24gYGdsb2JhbFRoaXMuX19vYnNpZGlhbkRldlV0aWxzYCAoc29cbiAqIGFjY3VtdWxhdGVkIHN0YXRlIHN1Y2ggYXMgZGVidWdnZXJzLCBxdWV1ZXMsIGFuZCByZWdpc3RlcmVkIGhhbmRsZXJzIGRvZXMgbm90IGxlYWsgYmV0d2VlbiB0ZXN0cylcbiAqIGFuZCBlbmFibGVzIGFzeW5jLW9wZXJhdGlvbiB0cmFja2luZzsgYWZ0ZXIgZWFjaCB0ZXN0IGl0IGRpc2FibGVzIHRyYWNraW5nLiBUZXN0cyBjYW4gdGhlcmVmb3JlXG4gKiBgYXdhaXQgd2FpdEZvckFsbEFzeW5jT3BlcmF0aW9ucygpYCBhZ2FpbnN0IGEgY2xlYW4sIGlzb2xhdGVkIHN0YXRlLlxuICpcbiAqIFRoaXMgbW9kdWxlIGhhcyBubyBpbXBvcnQtdGltZSBzaWRlIGVmZmVjdHMgYW5kIG5vIGRlcGVuZGVuY3kgb24gYW55IHNwZWNpZmljIHRlc3QgZnJhbWV3b3JrLiBUaGVcbiAqIHRoaW4gVml0ZXN0L0plc3Qgc2V0dXAgZmlsZXMgKGB2aXRlc3Qtc2V0dXAudHNgIC8gYGplc3Qtc2V0dXAudHNgKSBjYWxsIHtAbGluayBzZXR1cH0gd2l0aCB0aGVcbiAqIGhvb2tzIGltcG9ydGVkIGZyb20gdGhlaXIgcmVzcGVjdGl2ZSBmcmFtZXdvcmtzLlxuICovXG5cbmltcG9ydCB7XG4gIGRpc2FibGVBc3luY09wZXJhdGlvblRyYWNraW5nLFxuICBlbmFibGVBc3luY09wZXJhdGlvblRyYWNraW5nXG59IGZyb20gJy4vYXN5bmMudHMnO1xuaW1wb3J0IHsgcmVzZXRPYnNpZGlhbkRldlV0aWxzU3RhdGUgfSBmcm9tICcuL29ic2lkaWFuLWRldi11dGlscy1zdGF0ZS50cyc7XG5cbi8qKlxuICogQSB0ZXN0LWZyYW1ld29yayBsaWZlY3ljbGUgaG9vayByZWdpc3RyYXIsIHN1Y2ggYXMgYGJlZm9yZUVhY2hgIG9yIGBhZnRlckVhY2hgLlxuICpcbiAqIEBwYXJhbSBmbiAtIFRoZSBjYWxsYmFjayB0byByZWdpc3RlciB3aXRoIHRoZSBob29rLlxuICovXG5leHBvcnQgdHlwZSBIb29rUmVnaXN0cmFyID0gKGZuOiAoKSA9PiB2b2lkKSA9PiB2b2lkO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzZXR1cH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2V0dXBQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHRlc3QgZnJhbWV3b3JrJ3MgYGFmdGVyRWFjaGAgaG9vayByZWdpc3RyYXIuIFVzZWQgdG8gdGVhciBkb3duIHBlci10ZXN0IHN0YXRlIGFmdGVyIGVhY2ggdGVzdC5cbiAgICovXG4gIHJlYWRvbmx5IGFmdGVyRWFjaDogSG9va1JlZ2lzdHJhcjtcblxuICAvKipcbiAgICogVGhlIHRlc3QgZnJhbWV3b3JrJ3MgYGJlZm9yZUVhY2hgIGhvb2sgcmVnaXN0cmFyLiBVc2VkIHRvIHNldCB1cCBmcmVzaCBwZXItdGVzdCBzdGF0ZSBiZWZvcmUgZWFjaCB0ZXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgYmVmb3JlRWFjaDogSG9va1JlZ2lzdHJhcjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYG9ic2lkaWFuLWRldi11dGlsc2AgcGVyLXRlc3Qgc2V0dXAgd2l0aCBhIHRlc3QgZnJhbWV3b3JrJ3MgbGlmZWN5Y2xlIGhvb2tzLlxuICpcbiAqIEJlZm9yZSBlYWNoIHRlc3QgKHZpYSB0aGUgc3VwcGxpZWQgYGJlZm9yZUVhY2hgKSBpdCByZXNldHMgdGhlIHNoYXJlZC1zdGF0ZSBiYWcgYW5kIGVuYWJsZXNcbiAqIGFzeW5jLW9wZXJhdGlvbiB0cmFja2luZzsgYWZ0ZXIgZWFjaCB0ZXN0ICh2aWEgdGhlIHN1cHBsaWVkIGBhZnRlckVhY2hgKSBpdCBkaXNhYmxlcyB0cmFja2luZy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGxpZmVjeWNsZSBob29rIHJlZ2lzdHJhcnMgdG8gd2lyZSBzZXR1cCBpbnRvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0dXAocGFyYW1zOiBTZXR1cFBhcmFtcyk6IHZvaWQge1xuICBwYXJhbXMuYmVmb3JlRWFjaChiZWZvcmVFYWNoSGFuZGxlcik7XG4gIHBhcmFtcy5hZnRlckVhY2goZGlzYWJsZUFzeW5jT3BlcmF0aW9uVHJhY2tpbmcpO1xufVxuXG5mdW5jdGlvbiBiZWZvcmVFYWNoSGFuZGxlcigpOiB2b2lkIHtcbiAgcmVzZXRPYnNpZGlhbkRldlV0aWxzU3RhdGUoKTtcbiAgZW5hYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZygpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBLG1CQUdPO0FBQ1Asc0NBQTJDO0FBZ0NwQyxTQUFTLE1BQU0sUUFBMkI7QUFDL0MsU0FBTyxXQUFXLGlCQUFpQjtBQUNuQyxTQUFPLFVBQVUsMENBQTZCO0FBQ2hEO0FBRUEsU0FBUyxvQkFBMEI7QUFDakMsa0VBQTJCO0FBQzNCLGlEQUE2QjtBQUMvQjsiLAogICJuYW1lcyI6IFtdCn0K
147
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NldHVwLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRnJhbWV3b3JrLWFnbm9zdGljIHRlc3Qtc2V0dXAgZW5kcG9pbnQgZm9yIGBvYnNpZGlhbi1kZXYtdXRpbHNgLlxuICpcbiAqIFdpcmVzIHRoZSBsaWJyYXJ5J3MgcGVyLXRlc3Qgc2V0dXAgaW50byBhIHRlc3QgZnJhbWV3b3JrJ3MgYGJlZm9yZUVhY2hgIC8gYGFmdGVyRWFjaGAgbGlmZWN5Y2xlXG4gKiBob29rcy4gQmVmb3JlIGVhY2ggdGVzdCBpdCByZXNldHMgdGhlIHNoYXJlZC1zdGF0ZSBiYWcgb24gYGdsb2JhbFRoaXMuX19vYnNpZGlhbkRldlV0aWxzYCAoc29cbiAqIGFjY3VtdWxhdGVkIHN0YXRlIHN1Y2ggYXMgZGVidWdnZXJzLCBxdWV1ZXMsIGFuZCByZWdpc3RlcmVkIGhhbmRsZXJzIGRvZXMgbm90IGxlYWsgYmV0d2VlbiB0ZXN0cyksXG4gKiByZXNldHMgdGhlIGluamVjdGVkIHtAbGluayBMaWJyYXJ5fSBzdGF0ZSAoc28gdGhlIG5leHQgdGVzdCBjYW4gcmUtaW5pdGlhbGl6ZSksIGFuZCBlbmFibGVzXG4gKiBhc3luYy1vcGVyYXRpb24gdHJhY2tpbmc7IGFmdGVyIGVhY2ggdGVzdCBpdCBkaXNhYmxlcyB0cmFja2luZy4gVGVzdHMgY2FuIHRoZXJlZm9yZVxuICogYGF3YWl0IHdhaXRGb3JBbGxBc3luY09wZXJhdGlvbnMoKWAgYWdhaW5zdCBhIGNsZWFuLCBpc29sYXRlZCBzdGF0ZS5cbiAqXG4gKiBUaGlzIG1vZHVsZSBoYXMgbm8gaW1wb3J0LXRpbWUgc2lkZSBlZmZlY3RzIGFuZCBubyBkZXBlbmRlbmN5IG9uIGFueSBzcGVjaWZpYyB0ZXN0IGZyYW1ld29yay4gVGhlXG4gKiB0aGluIFZpdGVzdC9KZXN0IHNldHVwIGZpbGVzIChgdml0ZXN0LXNldHVwLnRzYCAvIGBqZXN0LXNldHVwLnRzYCkgY2FsbCB7QGxpbmsgc2V0dXB9IHdpdGggdGhlXG4gKiBob29rcyBpbXBvcnRlZCBmcm9tIHRoZWlyIHJlc3BlY3RpdmUgZnJhbWV3b3Jrcy5cbiAqL1xuXG5pbXBvcnQge1xuICBkaXNhYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZyxcbiAgZW5hYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZ1xufSBmcm9tICcuL2FzeW5jLnRzJztcbmltcG9ydCB7IExpYnJhcnkgfSBmcm9tICcuL2xpYnJhcnkudHMnO1xuaW1wb3J0IHsgcmVzZXRPYnNpZGlhbkRldlV0aWxzU3RhdGUgfSBmcm9tICcuL29ic2lkaWFuLWRldi11dGlscy1zdGF0ZS50cyc7XG5cbi8qKlxuICogQSB0ZXN0LWZyYW1ld29yayBsaWZlY3ljbGUgaG9vayByZWdpc3RyYXIsIHN1Y2ggYXMgYGJlZm9yZUVhY2hgIG9yIGBhZnRlckVhY2hgLlxuICpcbiAqIEBwYXJhbSBmbiAtIFRoZSBjYWxsYmFjayB0byByZWdpc3RlciB3aXRoIHRoZSBob29rLlxuICovXG5leHBvcnQgdHlwZSBIb29rUmVnaXN0cmFyID0gKGZuOiAoKSA9PiB2b2lkKSA9PiB2b2lkO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzZXR1cH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2V0dXBQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHRlc3QgZnJhbWV3b3JrJ3MgYGFmdGVyRWFjaGAgaG9vayByZWdpc3RyYXIuIFVzZWQgdG8gdGVhciBkb3duIHBlci10ZXN0IHN0YXRlIGFmdGVyIGVhY2ggdGVzdC5cbiAgICovXG4gIHJlYWRvbmx5IGFmdGVyRWFjaDogSG9va1JlZ2lzdHJhcjtcblxuICAvKipcbiAgICogVGhlIHRlc3QgZnJhbWV3b3JrJ3MgYGJlZm9yZUVhY2hgIGhvb2sgcmVnaXN0cmFyLiBVc2VkIHRvIHNldCB1cCBmcmVzaCBwZXItdGVzdCBzdGF0ZSBiZWZvcmUgZWFjaCB0ZXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgYmVmb3JlRWFjaDogSG9va1JlZ2lzdHJhcjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYG9ic2lkaWFuLWRldi11dGlsc2AgcGVyLXRlc3Qgc2V0dXAgd2l0aCBhIHRlc3QgZnJhbWV3b3JrJ3MgbGlmZWN5Y2xlIGhvb2tzLlxuICpcbiAqIEJlZm9yZSBlYWNoIHRlc3QgKHZpYSB0aGUgc3VwcGxpZWQgYGJlZm9yZUVhY2hgKSBpdCByZXNldHMgdGhlIHNoYXJlZC1zdGF0ZSBiYWcgYW5kIHRoZSBpbmplY3RlZFxuICoge0BsaW5rIExpYnJhcnl9IHN0YXRlLCBhbmQgZW5hYmxlcyBhc3luYy1vcGVyYXRpb24gdHJhY2tpbmc7IGFmdGVyIGVhY2ggdGVzdCAodmlhIHRoZSBzdXBwbGllZFxuICogYGFmdGVyRWFjaGApIGl0IGRpc2FibGVzIHRyYWNraW5nLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgbGlmZWN5Y2xlIGhvb2sgcmVnaXN0cmFycyB0byB3aXJlIHNldHVwIGludG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cChwYXJhbXM6IFNldHVwUGFyYW1zKTogdm9pZCB7XG4gIHBhcmFtcy5iZWZvcmVFYWNoKGJlZm9yZUVhY2hIYW5kbGVyKTtcbiAgcGFyYW1zLmFmdGVyRWFjaChkaXNhYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZyk7XG59XG5cbmZ1bmN0aW9uIGJlZm9yZUVhY2hIYW5kbGVyKCk6IHZvaWQge1xuICByZXNldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSgpO1xuICBMaWJyYXJ5LnJlc2V0VG9EZWZhdWx0KCk7XG4gIGVuYWJsZUFzeW5jT3BlcmF0aW9uVHJhY2tpbmcoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWlCQSxtQkFHTztBQUNQLHFCQUF3QjtBQUN4QixzQ0FBMkM7QUFpQ3BDLFNBQVMsTUFBTSxRQUEyQjtBQUMvQyxTQUFPLFdBQVcsaUJBQWlCO0FBQ25DLFNBQU8sVUFBVSwwQ0FBNkI7QUFDaEQ7QUFFQSxTQUFTLG9CQUEwQjtBQUNqQyxrRUFBMkI7QUFDM0IseUJBQVEsZUFBZTtBQUN2QixpREFBNkI7QUFDL0I7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -6,8 +6,9 @@
6
6
  *
7
7
  * Wires the library's per-test setup into a test framework's `beforeEach` / `afterEach` lifecycle
8
8
  * hooks. Before each test it resets the shared-state bag on `globalThis.__obsidianDevUtils` (so
9
- * accumulated state such as debuggers, queues, and registered handlers does not leak between tests)
10
- * and enables async-operation tracking; after each test it disables tracking. Tests can therefore
9
+ * accumulated state such as debuggers, queues, and registered handlers does not leak between tests),
10
+ * resets the injected {@link Library} state (so the next test can re-initialize), and enables
11
+ * async-operation tracking; after each test it disables tracking. Tests can therefore
11
12
  * `await waitForAllAsyncOperations()` against a clean, isolated state.
12
13
  *
13
14
  * This module has no import-time side effects and no dependency on any specific test framework. The
@@ -36,8 +37,9 @@ export interface SetupParams {
36
37
  /**
37
38
  * Registers `obsidian-dev-utils` per-test setup with a test framework's lifecycle hooks.
38
39
  *
39
- * Before each test (via the supplied `beforeEach`) it resets the shared-state bag and enables
40
- * async-operation tracking; after each test (via the supplied `afterEach`) it disables tracking.
40
+ * Before each test (via the supplied `beforeEach`) it resets the shared-state bag and the injected
41
+ * {@link Library} state, and enables async-operation tracking; after each test (via the supplied
42
+ * `afterEach`) it disables tracking.
41
43
  *
42
44
  * @param params - The lifecycle hook registrars to wire setup into.
43
45
  */
@@ -49,7 +49,7 @@ async function blobToJpegArrayBuffer(blob, jpegQuality) {
49
49
  image.addEventListener("load", handleLoad);
50
50
  image.src = dataUrl;
51
51
  function handleLoad() {
52
- const canvas = createEl("canvas");
52
+ const canvas = document.createElement("canvas");
53
53
  const context = canvas.getContext("2d");
54
54
  assertNonNullable(context, "Could not get 2D context.");
55
55
  const imageWidth = image.width;
@@ -75,7 +75,7 @@ function dataUrlToArrayBuffer(dataUrl) {
75
75
  if (!base64) {
76
76
  throw new Error("Invalid data URL");
77
77
  }
78
- const raw = activeWindow.atob(base64);
78
+ const raw = atob(base64);
79
79
  const rawLength = raw.length;
80
80
  const uInt8Array = new Uint8Array(rawLength);
81
81
  for (let i = 0; i < rawLength; i++) {
@@ -93,4 +93,4 @@ export {
93
93
  dataUrlToArrayBuffer,
94
94
  isImageFile
95
95
  };
96
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Jsb2IudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgQmxvYiBvYmplY3RzLlxuICovXG5cbmltcG9ydCB7IGFzc2VydE5vbk51bGxhYmxlIH0gZnJvbSAnLi90eXBlLWd1YXJkcy50cyc7XG5cbi8qKlxuICogQ29udmVydHMgYSB7QGxpbmsgQmxvYn0gb2JqZWN0IHRvIGFuIHtAbGluayBBcnJheUJ1ZmZlcn0uXG4gKlxuICogQHBhcmFtIGJsb2IgLSBUaGUgQmxvYiBvYmplY3QgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYW4ge0BsaW5rIEFycmF5QnVmZmVyfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0FycmF5QnVmZmVyKGJsb2I6IEJsb2IpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlbmQnLCBoYW5kbGVMb2FkRW5kKTtcbiAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYik7XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVMb2FkRW5kKCk6IHZvaWQge1xuICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIEFycmF5QnVmZmVyKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEge0BsaW5rIEJsb2J9IG9iamVjdCB0byBhIGRhdGEgVVJMLlxuICpcbiAqIEBwYXJhbSBibG9iIC0gVGhlIEJsb2Igb2JqZWN0IHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEgZGF0YSBVUkwuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBibG9iVG9EYXRhVXJsKGJsb2I6IEJsb2IpOiBQcm9taXNlPHN0cmluZz4ge1xuICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkZW5kJywgaGFuZGxlTG9hZEVuZCk7XG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVMb2FkRW5kKCk6IHZvaWQge1xuICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHtAbGluayBCbG9ifSBvYmplY3QgdG8gYSBKUEVHIEFycmF5QnVmZmVyIHdpdGggdGhlIHNwZWNpZmllZCBxdWFsaXR5LlxuICpcbiAqIEBwYXJhbSBibG9iIC0gVGhlIEJsb2Igb2JqZWN0IHRvIGNvbnZlcnQuXG4gKiBAcGFyYW0ganBlZ1F1YWxpdHkgLSBUaGUgcXVhbGl0eSBvZiB0aGUgSlBFRyBpbWFnZSAoMCB0byAxKS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYW4ge0BsaW5rIEFycmF5QnVmZmVyfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0pwZWdBcnJheUJ1ZmZlcihibG9iOiBCbG9iLCBqcGVnUXVhbGl0eTogbnVtYmVyKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj4ge1xuICBjb25zdCBkYXRhVXJsID0gYXdhaXQgYmxvYlRvRGF0YVVybChibG9iKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgaGFuZGxlTG9hZCk7XG4gICAgaW1hZ2Uuc3JjID0gZGF0YVVybDtcblxuICAgIGZ1bmN0aW9uIGhhbmRsZUxvYWQoKTogdm9pZCB7XG4gICAgICBjb25zdCBjYW52YXMgPSBjcmVhdGVFbCgnY2FudmFzJyk7XG4gICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICBhc3NlcnROb25OdWxsYWJsZShjb250ZXh0LCAnQ291bGQgbm90IGdldCAyRCBjb250ZXh0LicpO1xuICAgICAgY29uc3QgaW1hZ2VXaWR0aCA9IGltYWdlLndpZHRoO1xuICAgICAgY29uc3QgaW1hZ2VIZWlnaHQgPSBpbWFnZS5oZWlnaHQ7XG5cbiAgICAgIGNhbnZhcy53aWR0aCA9IGltYWdlV2lkdGg7XG4gICAgICBjYW52YXMuaGVpZ2h0ID0gaW1hZ2VIZWlnaHQ7XG5cbiAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJyNmZmYnO1xuICAgICAgY29udGV4dC5maWxsUmVjdCgwLCAwLCBpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCk7XG4gICAgICBjb250ZXh0LnNhdmUoKTtcblxuICAgICAgY29uc3QgSEFMRiA9IDAuNTtcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKGltYWdlV2lkdGggKiBIQUxGLCBpbWFnZUhlaWdodCAqIEhBTEYpO1xuICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0LCAtaW1hZ2VXaWR0aCAqIEhBTEYsIC1pbWFnZUhlaWdodCAqIEhBTEYsIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0KTtcbiAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xuXG4gICAgICBjb25zdCBqcGVnRGF0YVVybCA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBqcGVnUXVhbGl0eSk7XG4gICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IGRhdGFVcmxUb0FycmF5QnVmZmVyKGpwZWdEYXRhVXJsKTtcbiAgICAgIHJlc29sdmUoYXJyYXlCdWZmZXIpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBiYXNlNjQgZW5jb2RlZCBzdHJpbmcgdG8gYW4ge0BsaW5rIEFycmF5QnVmZmVyfS5cbiAqXG4gKiBAcGFyYW0gZGF0YVVybCAtIFRoZSBkYXRhIFVSTCB0byBjb252ZXJ0LlxuICogQHJldHVybnMgVGhlIGRlY29kZWQgQXJyYXlCdWZmZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRhVXJsVG9BcnJheUJ1ZmZlcihkYXRhVXJsOiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG4gIGNvbnN0IHBhcnRzID0gZGF0YVVybC5zcGxpdCgnO2Jhc2U2NCwnKTtcbiAgY29uc3QgYmFzZTY0ID0gcGFydHNbMV07XG4gIGlmICghYmFzZTY0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGEgVVJMJyk7XG4gIH1cblxuICBjb25zdCByYXcgPSBhY3RpdmVXaW5kb3cuYXRvYihiYXNlNjQpO1xuICBjb25zdCByYXdMZW5ndGggPSByYXcubGVuZ3RoO1xuXG4gIGNvbnN0IHVJbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShyYXdMZW5ndGgpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcmF3TGVuZ3RoOyBpKyspIHtcbiAgICB1SW50OEFycmF5W2ldID0gcmF3LmNoYXJDb2RlQXQoaSk7XG4gIH1cbiAgcmV0dXJuIHVJbnQ4QXJyYXkuYnVmZmVyO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIGZpbGUgaXMgYW4gaW1hZ2UuXG4gKlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgZmlsZSBpcyBhbiBpbWFnZSwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0ltYWdlRmlsZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gIHJldHVybiBmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJyk7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
96
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Jsb2IudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgQmxvYiBvYmplY3RzLlxuICovXG5cbmltcG9ydCB7IGFzc2VydE5vbk51bGxhYmxlIH0gZnJvbSAnLi90eXBlLWd1YXJkcy50cyc7XG5cbi8qKlxuICogQ29udmVydHMgYSB7QGxpbmsgQmxvYn0gb2JqZWN0IHRvIGFuIHtAbGluayBBcnJheUJ1ZmZlcn0uXG4gKlxuICogQHBhcmFtIGJsb2IgLSBUaGUgQmxvYiBvYmplY3QgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYW4ge0BsaW5rIEFycmF5QnVmZmVyfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0FycmF5QnVmZmVyKGJsb2I6IEJsb2IpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlbmQnLCBoYW5kbGVMb2FkRW5kKTtcbiAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYik7XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVMb2FkRW5kKCk6IHZvaWQge1xuICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIEFycmF5QnVmZmVyKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEge0BsaW5rIEJsb2J9IG9iamVjdCB0byBhIGRhdGEgVVJMLlxuICpcbiAqIEBwYXJhbSBibG9iIC0gVGhlIEJsb2Igb2JqZWN0IHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEgZGF0YSBVUkwuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBibG9iVG9EYXRhVXJsKGJsb2I6IEJsb2IpOiBQcm9taXNlPHN0cmluZz4ge1xuICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkZW5kJywgaGFuZGxlTG9hZEVuZCk7XG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVMb2FkRW5kKCk6IHZvaWQge1xuICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHtAbGluayBCbG9ifSBvYmplY3QgdG8gYSBKUEVHIEFycmF5QnVmZmVyIHdpdGggdGhlIHNwZWNpZmllZCBxdWFsaXR5LlxuICpcbiAqIEBwYXJhbSBibG9iIC0gVGhlIEJsb2Igb2JqZWN0IHRvIGNvbnZlcnQuXG4gKiBAcGFyYW0ganBlZ1F1YWxpdHkgLSBUaGUgcXVhbGl0eSBvZiB0aGUgSlBFRyBpbWFnZSAoMCB0byAxKS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYW4ge0BsaW5rIEFycmF5QnVmZmVyfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0pwZWdBcnJheUJ1ZmZlcihibG9iOiBCbG9iLCBqcGVnUXVhbGl0eTogbnVtYmVyKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj4ge1xuICBjb25zdCBkYXRhVXJsID0gYXdhaXQgYmxvYlRvRGF0YVVybChibG9iKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgaGFuZGxlTG9hZCk7XG4gICAgaW1hZ2Uuc3JjID0gZGF0YVVybDtcblxuICAgIGZ1bmN0aW9uIGhhbmRsZUxvYWQoKTogdm9pZCB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9wcmVmZXItYWN0aXZlLWRvYyAtLSBUaGlzIGlzIGFuIE9ic2lkaWFuLXJ1bnRpbWUtYWdub3N0aWMgbW9kdWxlOyBpdCB1c2VzIHRoZSBzdGFuZGFyZCBET00gYGRvY3VtZW50YCwgbm90IE9ic2lkaWFuJ3MgYGFjdGl2ZURvY3VtZW50YC5cbiAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgYXNzZXJ0Tm9uTnVsbGFibGUoY29udGV4dCwgJ0NvdWxkIG5vdCBnZXQgMkQgY29udGV4dC4nKTtcbiAgICAgIGNvbnN0IGltYWdlV2lkdGggPSBpbWFnZS53aWR0aDtcbiAgICAgIGNvbnN0IGltYWdlSGVpZ2h0ID0gaW1hZ2UuaGVpZ2h0O1xuXG4gICAgICBjYW52YXMud2lkdGggPSBpbWFnZVdpZHRoO1xuICAgICAgY2FudmFzLmhlaWdodCA9IGltYWdlSGVpZ2h0O1xuXG4gICAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICcjZmZmJztcbiAgICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgMCwgaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQpO1xuICAgICAgY29udGV4dC5zYXZlKCk7XG5cbiAgICAgIGNvbnN0IEhBTEYgPSAwLjU7XG4gICAgICBjb250ZXh0LnRyYW5zbGF0ZShpbWFnZVdpZHRoICogSEFMRiwgaW1hZ2VIZWlnaHQgKiBIQUxGKTtcbiAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCwgLWltYWdlV2lkdGggKiBIQUxGLCAtaW1hZ2VIZWlnaHQgKiBIQUxGLCBpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCk7XG4gICAgICBjb250ZXh0LnJlc3RvcmUoKTtcblxuICAgICAgY29uc3QganBlZ0RhdGFVcmwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9qcGVnJywganBlZ1F1YWxpdHkpO1xuICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBkYXRhVXJsVG9BcnJheUJ1ZmZlcihqcGVnRGF0YVVybCk7XG4gICAgICByZXNvbHZlKGFycmF5QnVmZmVyKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nIHRvIGFuIHtAbGluayBBcnJheUJ1ZmZlcn0uXG4gKlxuICogQHBhcmFtIGRhdGFVcmwgLSBUaGUgZGF0YSBVUkwgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIFRoZSBkZWNvZGVkIEFycmF5QnVmZmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGF0YVVybFRvQXJyYXlCdWZmZXIoZGF0YVVybDogc3RyaW5nKTogQXJyYXlCdWZmZXIge1xuICBjb25zdCBwYXJ0cyA9IGRhdGFVcmwuc3BsaXQoJztiYXNlNjQsJyk7XG4gIGNvbnN0IGJhc2U2NCA9IHBhcnRzWzFdO1xuICBpZiAoIWJhc2U2NCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRhIFVSTCcpO1xuICB9XG5cbiAgY29uc3QgcmF3ID0gYXRvYihiYXNlNjQpO1xuICBjb25zdCByYXdMZW5ndGggPSByYXcubGVuZ3RoO1xuXG4gIGNvbnN0IHVJbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShyYXdMZW5ndGgpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcmF3TGVuZ3RoOyBpKyspIHtcbiAgICB1SW50OEFycmF5W2ldID0gcmF3LmNoYXJDb2RlQXQoaSk7XG4gIH1cbiAgcmV0dXJuIHVJbnQ4QXJyYXkuYnVmZmVyO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIGZpbGUgaXMgYW4gaW1hZ2UuXG4gKlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgZmlsZSBpcyBhbiBpbWFnZSwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0ltYWdlRmlsZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gIHJldHVybiBmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMseUJBQXlCO0FBUWxDLGVBQXNCLGtCQUFrQixNQUFrQztBQUN4RSxTQUFPLE1BQU0sSUFBSSxRQUFRLENBQUMsWUFBWTtBQUNwQyxVQUFNLFNBQVMsSUFBSSxXQUFXO0FBQzlCLFdBQU8saUJBQWlCLFdBQVcsYUFBYTtBQUNoRCxXQUFPLGtCQUFrQixJQUFJO0FBRTdCLGFBQVMsZ0JBQXNCO0FBQzdCLGNBQVEsT0FBTyxNQUFxQjtBQUFBLElBQ3RDO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFRQSxlQUFzQixjQUFjLE1BQTZCO0FBQy9ELFNBQU8sTUFBTSxJQUFJLFFBQVEsQ0FBQyxZQUFZO0FBQ3BDLFVBQU0sU0FBUyxJQUFJLFdBQVc7QUFDOUIsV0FBTyxpQkFBaUIsV0FBVyxhQUFhO0FBQ2hELFdBQU8sY0FBYyxJQUFJO0FBRXpCLGFBQVMsZ0JBQXNCO0FBQzdCLGNBQVEsT0FBTyxNQUFnQjtBQUFBLElBQ2pDO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFTQSxlQUFzQixzQkFBc0IsTUFBWSxhQUEyQztBQUNqRyxRQUFNLFVBQVUsTUFBTSxjQUFjLElBQUk7QUFDeEMsU0FBTyxJQUFJLFFBQVEsQ0FBQyxZQUFZO0FBQzlCLFVBQU0sUUFBUSxJQUFJLE1BQU07QUFDeEIsVUFBTSxpQkFBaUIsUUFBUSxVQUFVO0FBQ3pDLFVBQU0sTUFBTTtBQUVaLGFBQVMsYUFBbUI7QUFFMUIsWUFBTSxTQUFTLFNBQVMsY0FBYyxRQUFRO0FBQzlDLFlBQU0sVUFBVSxPQUFPLFdBQVcsSUFBSTtBQUN0Qyx3QkFBa0IsU0FBUywyQkFBMkI7QUFDdEQsWUFBTSxhQUFhLE1BQU07QUFDekIsWUFBTSxjQUFjLE1BQU07QUFFMUIsYUFBTyxRQUFRO0FBQ2YsYUFBTyxTQUFTO0FBRWhCLGNBQVEsWUFBWTtBQUNwQixjQUFRLFNBQVMsR0FBRyxHQUFHLFlBQVksV0FBVztBQUM5QyxjQUFRLEtBQUs7QUFFYixZQUFNLE9BQU87QUFDYixjQUFRLFVBQVUsYUFBYSxNQUFNLGNBQWMsSUFBSTtBQUN2RCxjQUFRLFVBQVUsT0FBTyxHQUFHLEdBQUcsWUFBWSxhQUFhLENBQUMsYUFBYSxNQUFNLENBQUMsY0FBYyxNQUFNLFlBQVksV0FBVztBQUN4SCxjQUFRLFFBQVE7QUFFaEIsWUFBTSxjQUFjLE9BQU8sVUFBVSxjQUFjLFdBQVc7QUFDOUQsWUFBTSxjQUFjLHFCQUFxQixXQUFXO0FBQ3BELGNBQVEsV0FBVztBQUFBLElBQ3JCO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFRTyxTQUFTLHFCQUFxQixTQUE4QjtBQUNqRSxRQUFNLFFBQVEsUUFBUSxNQUFNLFVBQVU7QUFDdEMsUUFBTSxTQUFTLE1BQU0sQ0FBQztBQUN0QixNQUFJLENBQUMsUUFBUTtBQUNYLFVBQU0sSUFBSSxNQUFNLGtCQUFrQjtBQUFBLEVBQ3BDO0FBRUEsUUFBTSxNQUFNLEtBQUssTUFBTTtBQUN2QixRQUFNLFlBQVksSUFBSTtBQUV0QixRQUFNLGFBQWEsSUFBSSxXQUFXLFNBQVM7QUFFM0MsV0FBUyxJQUFJLEdBQUcsSUFBSSxXQUFXLEtBQUs7QUFDbEMsZUFBVyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUM7QUFBQSxFQUNsQztBQUNBLFNBQU8sV0FBVztBQUNwQjtBQVFPLFNBQVMsWUFBWSxNQUFxQjtBQUMvQyxTQUFPLEtBQUssS0FBSyxXQUFXLFFBQVE7QUFDdEM7IiwKICAibmFtZXMiOiBbXQp9Cg==