obsidian-dev-utils 84.5.1 → 84.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/dev/main.js +14 -25
  3. package/dist/lib/cjs/generated-during-build.cjs +1 -1
  4. package/dist/lib/cjs/obsidian/link.cjs +4 -6
  5. package/dist/lib/cjs/obsidian/setting-ex.cjs +2 -14
  6. package/dist/lib/cjs/obsidian/setting-ex.d.cts +0 -1
  7. package/dist/lib/cjs/script-utils/build.cjs +11 -2
  8. package/dist/lib/cjs/script-utils/build.d.cts +7 -0
  9. package/dist/lib/cjs/script-utils/check-project-types.cjs +18 -18
  10. package/dist/lib/cjs/script-utils/check-project-types.d.cts +1 -1
  11. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +8 -8
  12. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.cjs +1 -1
  13. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.cjs +5 -5
  14. package/dist/lib/cjs/script-utils/linters/eslint-typescript-classic-api-boundary.cjs +141 -0
  15. package/dist/lib/cjs/script-utils/linters/eslint-typescript-classic-api-boundary.d.cts +41 -0
  16. package/dist/lib/cjs/script-utils/linters/index.cjs +4 -1
  17. package/dist/lib/cjs/script-utils/linters/index.d.cts +1 -0
  18. package/dist/lib/cjs/script-utils/linters/over-exposure.cjs +30 -30
  19. package/dist/lib/cjs/script-utils/linters/over-exposure.d.cts +1 -1
  20. package/dist/lib/esm/generated-during-build.mjs +1 -1
  21. package/dist/lib/esm/obsidian/link.mjs +5 -8
  22. package/dist/lib/esm/obsidian/setting-ex.d.mts +0 -1
  23. package/dist/lib/esm/obsidian/setting-ex.mjs +3 -18
  24. package/dist/lib/esm/script-utils/build.d.mts +7 -0
  25. package/dist/lib/esm/script-utils/build.mjs +11 -2
  26. package/dist/lib/esm/script-utils/check-project-types.d.mts +1 -1
  27. package/dist/lib/esm/script-utils/check-project-types.mjs +2 -2
  28. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +2 -2
  29. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.mjs +1 -1
  30. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.mjs +2 -2
  31. package/dist/lib/esm/script-utils/linters/eslint-typescript-classic-api-boundary.d.mts +41 -0
  32. package/dist/lib/esm/script-utils/linters/eslint-typescript-classic-api-boundary.mjs +33 -0
  33. package/dist/lib/esm/script-utils/linters/index.d.mts +1 -0
  34. package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
  35. package/dist/lib/esm/script-utils/linters/over-exposure.d.mts +1 -1
  36. package/dist/lib/esm/script-utils/linters/over-exposure.mjs +2 -2
  37. package/package.json +11 -9
  38. package/script-utils/linters/eslint-typescript-classic-api-boundary/package.json +6 -0
@@ -129,7 +129,7 @@ __export(require_super_call_exports, {
129
129
  requireSuperCall: () => requireSuperCall
130
130
  });
131
131
  module.exports = __toCommonJS(require_super_call_exports);
132
- var import_typescript = require('typescript');
132
+ var import_typescript_6 = require('typescript-6');
133
133
  var import_type_guards = require('../../../type-guards.cjs');
134
134
  const MESSAGE_ID = "requireSuperCall";
135
135
  const requireSuperCall = {
@@ -219,9 +219,9 @@ const requireSuperCall = {
219
219
  }
220
220
  };
221
221
  function checkIsAbstract(decl) {
222
- (0, import_type_guards.assert)((0, import_typescript.canHaveModifiers)(decl), "Expected method declaration to support modifiers");
223
- const modifiers = (0, import_typescript.getModifiers)(decl);
224
- return modifiers?.some((mod) => mod.kind === import_typescript.SyntaxKind.AbstractKeyword) ?? false;
222
+ (0, import_type_guards.assert)((0, import_typescript_6.canHaveModifiers)(decl), "Expected method declaration to support modifiers");
223
+ const modifiers = (0, import_typescript_6.getModifiers)(decl);
224
+ return modifiers?.some((mod) => mod.kind === import_typescript_6.SyntaxKind.AbstractKeyword) ?? false;
225
225
  }
226
226
  function checkIsParentMethodAbstract(params) {
227
227
  const { context, methodName, methodNode } = params;
@@ -266,4 +266,4 @@ function checkIsSuperPropertyAccess(node, propertyName) {
266
266
  MESSAGE_ID,
267
267
  requireSuperCall
268
268
  });
269
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9yZXF1aXJlLXN1cGVyLWNhbGwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogcmVxdWlyZS1zdXBlci1jYWxsXG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGFuIGBvdmVycmlkZWAgbWV0aG9kIGRvZXMgbm90IGNhbGwgYHN1cGVyLm1ldGhvZE5hbWUoKWBcbiAqIGFueXdoZXJlIGluIGl0cyBib2R5LiBPdmVycmlkaW5nIGEgbWV0aG9kIHdpdGhvdXQgY2FsbGluZyBgc3VwZXJgIGlzIGFsbW9zdFxuICogYWx3YXlzIGEgbWlzdGFrZSB0aGF0IHNpbGVudGx5IGJyZWFrcyBwYXJlbnQtY2xhc3MgYmVoYXZpb3IgKGxpZmVjeWNsZSBob29rcyxcbiAqIGluaXRpYWxpemF0aW9uLCBldmVudCB3aXJpbmcsIGV0Yy4pLlxuICpcbiAqIFRoZSBzdXBlciBjYWxsIGNhbiBhcHBlYXIgYW55d2hlcmUgaW4gdGhlIG1ldGhvZCBib2R5IFx1MjAxNCBhcyBhIHN0YW5kYWxvbmVcbiAqIHN0YXRlbWVudCwgYXdhaXRlZCwgYXNzaWduZWQgdG8gYSB2YXJpYWJsZSwgb3IgbmVzdGVkIGluIGFueSBleHByZXNzaW9uLlxuICpcbiAqIFRoZSBydWxlIGF1dG9tYXRpY2FsbHkgc2tpcHMgbWV0aG9kcyB3aGVyZSB0aGUgcGFyZW50IGltcGxlbWVudGF0aW9uIGlzXG4gKiBgYWJzdHJhY3RgLCBzaW5jZSB0aGVyZSBpcyBubyBjb25jcmV0ZSBgc3VwZXJgIHRvIGNhbGwuXG4gKlxuICogSWYgdGhlIG92ZXJyaWRlIGludGVudGlvbmFsbHkgcmVwbGFjZXMgdGhlIHBhcmVudCBpbXBsZW1lbnRhdGlvbiwgZGlzYWJsZSB0aGVcbiAqIHJ1bGUgb24gdGhhdCBsaW5lIHdpdGggYW4gZXhwbGFuYXRvcnkgY29tbWVudC5cbiAqL1xuaW1wb3J0IHR5cGUge1xuICBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb24sXG4gIFRTRVNUcmVlXG59IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0IHR5cGUgeyBEZWNsYXJhdGlvbiB9IGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge1xuICBjYW5IYXZlTW9kaWZpZXJzLFxuICBnZXRNb2RpZmllcnMsXG4gIFN5bnRheEtpbmRcbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJy4uLy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcblxuLyoqIE1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiBhbiBgb3ZlcnJpZGVgIG1ldGhvZCBkb2VzIG5vdCBhY2Nlc3MgaXRzIGBzdXBlcmAgY291bnRlcnBhcnQuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRCA9ICdyZXF1aXJlU3VwZXJDYWxsJztcblxudHlwZSBNZXRob2RLaW5kID0gJ2dldCcgfCAnbWV0aG9kJyB8ICdzZXQnO1xuXG5pbnRlcmZhY2UgT3ZlcnJpZGVNZXRob2RJbmZvIHtcbiAgaGFzU3VwZXJDYWxsOiBib29sZWFuO1xuICBraW5kOiBNZXRob2RLaW5kO1xuICBtZXRob2ROYW1lOiBzdHJpbmc7XG4gIG5vZGU6IFRTRVNUcmVlLk1ldGhvZERlZmluaXRpb247XG4gIHJlcG9ydE5vZGU6IFJ1bGUuTm9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IHJlcXVpcmVTdXBlckNhbGw6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBtZXRob2RTdGFjazogT3ZlcnJpZGVNZXRob2RJbmZvW10gPSBbXTtcblxuICAgIHJldHVybiB7XG4gICAgICAnQXNzaWdubWVudEV4cHJlc3Npb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gbWV0aG9kU3RhY2tbbWV0aG9kU3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmIChjdXJyZW50Py5raW5kICE9PSAnc2V0Jykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFzc2lnbk5vZGUgPSBub2RlIGFzIFRTRVNUcmVlLkFzc2lnbm1lbnRFeHByZXNzaW9uO1xuICAgICAgICBpZiAoY2hlY2tJc1N1cGVyUHJvcGVydHlBY2Nlc3MoYXNzaWduTm9kZS5sZWZ0LCBjdXJyZW50Lm1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgY3VycmVudC5oYXNTdXBlckNhbGwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ0NhbGxFeHByZXNzaW9uJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IG1ldGhvZFN0YWNrW21ldGhvZFN0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAoY3VycmVudD8ua2luZCAhPT0gJ21ldGhvZCcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYWxsTm9kZSA9IG5vZGUgYXMgVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb247XG4gICAgICAgIGlmIChjaGVja0lzU3VwZXJNZXRob2RDYWxsKGNhbGxOb2RlLCBjdXJyZW50Lm1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgY3VycmVudC5oYXNTdXBlckNhbGwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ01lbWJlckV4cHJlc3Npb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gbWV0aG9kU3RhY2tbbWV0aG9kU3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmIChjdXJyZW50Py5raW5kICE9PSAnZ2V0Jykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSBub2RlIGFzIFRTRVNUcmVlLk1lbWJlckV4cHJlc3Npb247XG4gICAgICAgIGlmIChjaGVja0lzU3VwZXJQcm9wZXJ0eUFjY2VzcyhtZW1iZXJOb2RlLCBjdXJyZW50Lm1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgY3VycmVudC5oYXNTdXBlckNhbGwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ01ldGhvZERlZmluaXRpb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBtZXRob2ROb2RlID0gbm9kZSBhcyBUU0VTVHJlZS5NZXRob2REZWZpbml0aW9uO1xuXG4gICAgICAgIGlmICghbWV0aG9kTm9kZS5vdmVycmlkZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBBU1Qgbm9kZSB0eXBlIHN0cmluZyBsaXRlcmFscyBtYXRjaCB0aGUgVFNFU1RyZWUgZW51bSB2YWx1ZXMuXG4gICAgICAgIGlmIChtZXRob2ROb2RlLmtleS50eXBlICE9PSAnSWRlbnRpZmllcicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBraW5kID0gbWV0aG9kTm9kZS5raW5kID09PSAnZ2V0JyB8fCBtZXRob2ROb2RlLmtpbmQgPT09ICdzZXQnID8gbWV0aG9kTm9kZS5raW5kIDogJ21ldGhvZCc7XG5cbiAgICAgICAgbWV0aG9kU3RhY2sucHVzaCh7XG4gICAgICAgICAgaGFzU3VwZXJDYWxsOiBmYWxzZSxcbiAgICAgICAgICBraW5kLFxuICAgICAgICAgIG1ldGhvZE5hbWU6IG1ldGhvZE5vZGUua2V5Lm5hbWUsXG4gICAgICAgICAgbm9kZTogbWV0aG9kTm9kZSxcbiAgICAgICAgICByZXBvcnROb2RlOiBub2RlXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgICdNZXRob2REZWZpbml0aW9uOmV4aXQnKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmZvID0gbWV0aG9kU3RhY2tbbWV0aG9kU3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICghaW5mbykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG1ldGhvZFN0YWNrLnBvcCgpO1xuXG4gICAgICAgIGlmIChpbmZvLmhhc1N1cGVyQ2FsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGVja0lzUGFyZW50TWV0aG9kQWJzdHJhY3Qoe1xuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIG1ldGhvZE5hbWU6IGluZm8ubWV0aG9kTmFtZSxcbiAgICAgICAgICAgIG1ldGhvZE5vZGU6IGluZm8ubm9kZVxuICAgICAgICAgIH0pXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBkYXRhOiB7IGtpbmQ6IGluZm8ua2luZCwgbWV0aG9kTmFtZTogaW5mby5tZXRob2ROYW1lIH0sXG4gICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lELFxuICAgICAgICAgIG5vZGU6IGluZm8ucmVwb3J0Tm9kZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdSZXF1aXJlIGBvdmVycmlkZWAgbWV0aG9kcyB0byBjYWxsIGBzdXBlci5tZXRob2ROYW1lKClgJ1xuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIFtNRVNTQUdFX0lEXTogJ092ZXJyaWRlIHt7IGtpbmQgfX0gYHt7IG1ldGhvZE5hbWUgfX1gIG11c3QgYWNjZXNzIGBzdXBlci57eyBtZXRob2ROYW1lIH19YC4nXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6ICdwcm9ibGVtJ1xuICB9XG59O1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjaGVja0lzUGFyZW50TWV0aG9kQWJzdHJhY3R9LlxuICovXG5pbnRlcmZhY2UgQ2hlY2tJc1BhcmVudE1ldGhvZEFic3RyYWN0UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBFU0xpbnQgcnVsZSBjb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dDtcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCBuYW1lIHRvIGxvb2sgdXAgaW4gdGhlIHBhcmVudCBjbGFzcy5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG92ZXJyaWRlIG1ldGhvZCBkZWZpbml0aW9uIEFTVCBub2RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kTm9kZTogVFNFU1RyZWUuTWV0aG9kRGVmaW5pdGlvbjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGRlY2xhcmF0aW9uIGhhcyB0aGUgYGFic3RyYWN0YCBtb2RpZmllci5cbiAqXG4gKiBAcGFyYW0gZGVjbCAtIFRoZSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGRlY2xhcmF0aW9uIGlzIGFic3RyYWN0LlxuICovXG5mdW5jdGlvbiBjaGVja0lzQWJzdHJhY3QoZGVjbDogRGVjbGFyYXRpb24pOiBib29sZWFuIHtcbiAgYXNzZXJ0KGNhbkhhdmVNb2RpZmllcnMoZGVjbCksICdFeHBlY3RlZCBtZXRob2QgZGVjbGFyYXRpb24gdG8gc3VwcG9ydCBtb2RpZmllcnMnKTtcblxuICBjb25zdCBtb2RpZmllcnMgPSBnZXRNb2RpZmllcnMoZGVjbCk7XG4gIHJldHVybiBtb2RpZmllcnM/LnNvbWUoKG1vZCkgPT4gbW9kLmtpbmQgPT09IFN5bnRheEtpbmQuQWJzdHJhY3RLZXl3b3JkKSA/PyBmYWxzZTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgcGFyZW50IGNsYXNzJ3MgdmVyc2lvbiBvZiB0aGUgbWV0aG9kIGlzIGBhYnN0cmFjdGAuXG4gKlxuICogV2hlbiB0eXBlIGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgKGUuZy4sIHBhcnNlciBjb25maWd1cmVkIHdpdGhvdXRcbiAqIGBwcm9qZWN0U2VydmljZWApLCByZXR1cm5zIGBmYWxzZWAgc28gdGhlIHJ1bGUgY29uc2VydmF0aXZlbHkgcmVwb3J0cy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcGFyZW50IG1ldGhvZCBpcyBhYnN0cmFjdC5cbiAqL1xuZnVuY3Rpb24gY2hlY2tJc1BhcmVudE1ldGhvZEFic3RyYWN0KHBhcmFtczogQ2hlY2tJc1BhcmVudE1ldGhvZEFic3RyYWN0UGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgY29udGV4dCwgbWV0aG9kTmFtZSwgbWV0aG9kTm9kZSB9ID0gcGFyYW1zO1xuICBjb25zdCBzZXJ2aWNlcyA9IGNvbnRleHQuc291cmNlQ29kZS5wYXJzZXJTZXJ2aWNlcyBhcyBQYXJ0aWFsPFBhcnNlclNlcnZpY2VzV2l0aFR5cGVJbmZvcm1hdGlvbj47XG5cbiAgaWYgKCFzZXJ2aWNlcy5wcm9ncmFtIHx8ICFzZXJ2aWNlcy5lc1RyZWVOb2RlVG9UU05vZGVNYXApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjaGVja2VyID0gc2VydmljZXMucHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuICBjb25zdCBjbGFzc0RlY2wgPSBtZXRob2ROb2RlLnBhcmVudC5wYXJlbnQ7XG4gIGNvbnN0IHRzQ2xhc3NOb2RlID0gc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChjbGFzc0RlY2wpO1xuICBjb25zdCBjbGFzc1R5cGUgPSBjaGVja2VyLmdldFR5cGVBdExvY2F0aW9uKHRzQ2xhc3NOb2RlKTtcbiAgY29uc3QgYmFzZVR5cGVzID0gY2xhc3NUeXBlLmdldEJhc2VUeXBlcygpO1xuXG4gIGlmICghYmFzZVR5cGVzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yIChjb25zdCBiYXNlVHlwZSBvZiBiYXNlVHlwZXMpIHtcbiAgICBjb25zdCBwcm9wID0gYmFzZVR5cGUuZ2V0UHJvcGVydHkobWV0aG9kTmFtZSk7XG5cbiAgICBpZiAoIXByb3ApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY2xhcmF0aW9ucyA9IHByb3AuZ2V0RGVjbGFyYXRpb25zKCk7XG5cbiAgICBpZiAoIWRlY2xhcmF0aW9ucykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBkZWNsIG9mIGRlY2xhcmF0aW9ucykge1xuICAgICAgaWYgKGNoZWNrSXNBYnN0cmFjdChkZWNsKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBjYWxsIGV4cHJlc3Npb24gaXMgYHN1cGVyLm1ldGhvZE5hbWUoLi4uKWAuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBUaGUgY2FsbCBleHByZXNzaW9uIG5vZGUuXG4gKiBAcGFyYW0gbWV0aG9kTmFtZSAtIFRoZSBleHBlY3RlZCBtZXRob2QgbmFtZS5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbm9kZSBpcyBhIG1hdGNoaW5nIHN1cGVyIG1ldGhvZCBjYWxsLlxuICovXG5mdW5jdGlvbiBjaGVja0lzU3VwZXJNZXRob2RDYWxsKG5vZGU6IFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uLCBtZXRob2ROYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgY2FsbGVlID0gbm9kZS5jYWxsZWU7XG4gIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZW51bS1jb21wYXJpc29uIC0tIEFTVCBub2RlIHR5cGUgc3RyaW5nIGxpdGVyYWxzIG1hdGNoIHRoZSBUU0VTVHJlZSBlbnVtIHZhbHVlcy4gKi9cbiAgcmV0dXJuIGNhbGxlZS50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbidcbiAgICAmJiBjYWxsZWUub2JqZWN0LnR5cGUgPT09ICdTdXBlcidcbiAgICAmJiBjYWxsZWUucHJvcGVydHkudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgJiYgY2FsbGVlLnByb3BlcnR5Lm5hbWUgPT09IG1ldGhvZE5hbWU7XG4gIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gUmUtZW5hYmxlIGFmdGVyIG11bHRpLWxpbmUgc3RyaW5nIGNvbXBhcmlzb24gYmxvY2suICovXG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBub2RlIGlzIGEgYHN1cGVyLnByb3BlcnR5TmFtZWAgbWVtYmVyIGV4cHJlc3Npb24uXG4gKlxuICogQHBhcmFtIG5vZGUgLSBUaGUgQVNUIG5vZGUgdG8gY2hlY2sgKE1lbWJlckV4cHJlc3Npb24gb3IgQXNzaWdubWVudEV4cHJlc3Npb24gbGVmdC1oYW5kIHNpZGUpLlxuICogQHBhcmFtIHByb3BlcnR5TmFtZSAtIFRoZSBleHBlY3RlZCBwcm9wZXJ0eSBuYW1lLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGlzIGEgbWF0Y2hpbmcgc3VwZXIgcHJvcGVydHkgYWNjZXNzLlxuICovXG5mdW5jdGlvbiBjaGVja0lzU3VwZXJQcm9wZXJ0eUFjY2Vzcyhub2RlOiBUU0VTVHJlZS5Ob2RlLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBBU1Qgbm9kZSB0eXBlIHN0cmluZyBsaXRlcmFscyBtYXRjaCB0aGUgVFNFU1RyZWUgZW51bSB2YWx1ZXMuICovXG4gIHJldHVybiBub2RlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJ1xuICAgICYmIG5vZGUub2JqZWN0LnR5cGUgPT09ICdTdXBlcidcbiAgICAmJiBub2RlLnByb3BlcnR5LnR5cGUgPT09ICdJZGVudGlmaWVyJ1xuICAgICYmIG5vZGUucHJvcGVydHkubmFtZSA9PT0gcHJvcGVydHlOYW1lO1xuICAvKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZW51bS1jb21wYXJpc29uIC0tIFJlLWVuYWJsZSBhZnRlciBtdWx0aS1saW5lIHN0cmluZyBjb21wYXJpc29uIGJsb2NrLiAqL1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEwQkEsd0JBSU87QUFFUCx5QkFBdUI7QUFHaEIsTUFBTSxhQUFhO0FBWW5CLE1BQU0sbUJBQW9DO0FBQUEsRUFDL0MsT0FBTyxTQUFTO0FBQ2QsVUFBTSxjQUFvQyxDQUFDO0FBRTNDLFdBQU87QUFBQSxNQUNMLHVCQUF1QixNQUF1QjtBQUM1QyxjQUFNLFVBQVUsWUFBWSxZQUFZLFNBQVMsQ0FBQztBQUNsRCxZQUFJLFNBQVMsU0FBUyxPQUFPO0FBQzNCO0FBQUEsUUFDRjtBQUVBLGNBQU0sYUFBYTtBQUNuQixZQUFJLDJCQUEyQixXQUFXLE1BQU0sUUFBUSxVQUFVLEdBQUc7QUFDbkUsa0JBQVEsZUFBZTtBQUFBLFFBQ3pCO0FBQUEsTUFDRjtBQUFBLE1BQ0EsaUJBQWlCLE1BQXVCO0FBQ3RDLGNBQU0s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
269
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9yZXF1aXJlLXN1cGVyLWNhbGwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogcmVxdWlyZS1zdXBlci1jYWxsXG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGFuIGBvdmVycmlkZWAgbWV0aG9kIGRvZXMgbm90IGNhbGwgYHN1cGVyLm1ldGhvZE5hbWUoKWBcbiAqIGFueXdoZXJlIGluIGl0cyBib2R5LiBPdmVycmlkaW5nIGEgbWV0aG9kIHdpdGhvdXQgY2FsbGluZyBgc3VwZXJgIGlzIGFsbW9zdFxuICogYWx3YXlzIGEgbWlzdGFrZSB0aGF0IHNpbGVudGx5IGJyZWFrcyBwYXJlbnQtY2xhc3MgYmVoYXZpb3IgKGxpZmVjeWNsZSBob29rcyxcbiAqIGluaXRpYWxpemF0aW9uLCBldmVudCB3aXJpbmcsIGV0Yy4pLlxuICpcbiAqIFRoZSBzdXBlciBjYWxsIGNhbiBhcHBlYXIgYW55d2hlcmUgaW4gdGhlIG1ldGhvZCBib2R5IFx1MjAxNCBhcyBhIHN0YW5kYWxvbmVcbiAqIHN0YXRlbWVudCwgYXdhaXRlZCwgYXNzaWduZWQgdG8gYSB2YXJpYWJsZSwgb3IgbmVzdGVkIGluIGFueSBleHByZXNzaW9uLlxuICpcbiAqIFRoZSBydWxlIGF1dG9tYXRpY2FsbHkgc2tpcHMgbWV0aG9kcyB3aGVyZSB0aGUgcGFyZW50IGltcGxlbWVudGF0aW9uIGlzXG4gKiBgYWJzdHJhY3RgLCBzaW5jZSB0aGVyZSBpcyBubyBjb25jcmV0ZSBgc3VwZXJgIHRvIGNhbGwuXG4gKlxuICogSWYgdGhlIG92ZXJyaWRlIGludGVudGlvbmFsbHkgcmVwbGFjZXMgdGhlIHBhcmVudCBpbXBsZW1lbnRhdGlvbiwgZGlzYWJsZSB0aGVcbiAqIHJ1bGUgb24gdGhhdCBsaW5lIHdpdGggYW4gZXhwbGFuYXRvcnkgY29tbWVudC5cbiAqL1xuaW1wb3J0IHR5cGUge1xuICBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb24sXG4gIFRTRVNUcmVlXG59IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0IHR5cGUgeyBEZWNsYXJhdGlvbiB9IGZyb20gJ3R5cGVzY3JpcHQtNic7XG5cbmltcG9ydCB7XG4gIGNhbkhhdmVNb2RpZmllcnMsXG4gIGdldE1vZGlmaWVycyxcbiAgU3ludGF4S2luZFxufSBmcm9tICd0eXBlc2NyaXB0LTYnO1xuXG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICcuLi8uLi8uLi90eXBlLWd1YXJkcy50cyc7XG5cbi8qKiBNZXNzYWdlIElEIHJlcG9ydGVkIHdoZW4gYW4gYG92ZXJyaWRlYCBtZXRob2QgZG9lcyBub3QgYWNjZXNzIGl0cyBgc3VwZXJgIGNvdW50ZXJwYXJ0LiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAncmVxdWlyZVN1cGVyQ2FsbCc7XG5cbnR5cGUgTWV0aG9kS2luZCA9ICdnZXQnIHwgJ21ldGhvZCcgfCAnc2V0JztcblxuaW50ZXJmYWNlIE92ZXJyaWRlTWV0aG9kSW5mbyB7XG4gIGhhc1N1cGVyQ2FsbDogYm9vbGVhbjtcbiAga2luZDogTWV0aG9kS2luZDtcbiAgbWV0aG9kTmFtZTogc3RyaW5nO1xuICBub2RlOiBUU0VTVHJlZS5NZXRob2REZWZpbml0aW9uO1xuICByZXBvcnROb2RlOiBSdWxlLk5vZGU7XG59XG5cbmV4cG9ydCBjb25zdCByZXF1aXJlU3VwZXJDYWxsOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgbWV0aG9kU3RhY2s6IE92ZXJyaWRlTWV0aG9kSW5mb1tdID0gW107XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ0Fzc2lnbm1lbnRFeHByZXNzaW9uJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IG1ldGhvZFN0YWNrW21ldGhvZFN0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAoY3VycmVudD8ua2luZCAhPT0gJ3NldCcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhc3NpZ25Ob2RlID0gbm9kZSBhcyBUU0VTVHJlZS5Bc3NpZ25tZW50RXhwcmVzc2lvbjtcbiAgICAgICAgaWYgKGNoZWNrSXNTdXBlclByb3BlcnR5QWNjZXNzKGFzc2lnbk5vZGUubGVmdCwgY3VycmVudC5tZXRob2ROYW1lKSkge1xuICAgICAgICAgIGN1cnJlbnQuaGFzU3VwZXJDYWxsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICdDYWxsRXhwcmVzc2lvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBtZXRob2RTdGFja1ttZXRob2RTdGFjay5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKGN1cnJlbnQ/LmtpbmQgIT09ICdtZXRob2QnKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2FsbE5vZGUgPSBub2RlIGFzIFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uO1xuICAgICAgICBpZiAoY2hlY2tJc1N1cGVyTWV0aG9kQ2FsbChjYWxsTm9kZSwgY3VycmVudC5tZXRob2ROYW1lKSkge1xuICAgICAgICAgIGN1cnJlbnQuaGFzU3VwZXJDYWxsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICdNZW1iZXJFeHByZXNzaW9uJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IG1ldGhvZFN0YWNrW21ldGhvZFN0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAoY3VycmVudD8ua2luZCAhPT0gJ2dldCcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZW1iZXJOb2RlID0gbm9kZSBhcyBUU0VTVHJlZS5NZW1iZXJFeHByZXNzaW9uO1xuICAgICAgICBpZiAoY2hlY2tJc1N1cGVyUHJvcGVydHlBY2Nlc3MobWVtYmVyTm9kZSwgY3VycmVudC5tZXRob2ROYW1lKSkge1xuICAgICAgICAgIGN1cnJlbnQuaGFzU3VwZXJDYWxsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICdNZXRob2REZWZpbml0aW9uJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbWV0aG9kTm9kZSA9IG5vZGUgYXMgVFNFU1RyZWUuTWV0aG9kRGVmaW5pdGlvbjtcblxuICAgICAgICBpZiAoIW1ldGhvZE5vZGUub3ZlcnJpZGUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gQVNUIG5vZGUgdHlwZSBzdHJpbmcgbGl0ZXJhbHMgbWF0Y2ggdGhlIFRTRVNUcmVlIGVudW0gdmFsdWVzLlxuICAgICAgICBpZiAobWV0aG9kTm9kZS5rZXkudHlwZSAhPT0gJ0lkZW50aWZpZXInKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2luZCA9IG1ldGhvZE5vZGUua2luZCA9PT0gJ2dldCcgfHwgbWV0aG9kTm9kZS5raW5kID09PSAnc2V0JyA/IG1ldGhvZE5vZGUua2luZCA6ICdtZXRob2QnO1xuXG4gICAgICAgIG1ldGhvZFN0YWNrLnB1c2goe1xuICAgICAgICAgIGhhc1N1cGVyQ2FsbDogZmFsc2UsXG4gICAgICAgICAga2luZCxcbiAgICAgICAgICBtZXRob2ROYW1lOiBtZXRob2ROb2RlLmtleS5uYW1lLFxuICAgICAgICAgIG5vZGU6IG1ldGhvZE5vZGUsXG4gICAgICAgICAgcmVwb3J0Tm9kZTogbm9kZVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICAnTWV0aG9kRGVmaW5pdGlvbjpleGl0JygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5mbyA9IG1ldGhvZFN0YWNrW21ldGhvZFN0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAoIWluZm8pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBtZXRob2RTdGFjay5wb3AoKTtcblxuICAgICAgICBpZiAoaW5mby5oYXNTdXBlckNhbGwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgY2hlY2tJc1BhcmVudE1ldGhvZEFic3RyYWN0KHtcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICBtZXRob2ROYW1lOiBpbmZvLm1ldGhvZE5hbWUsXG4gICAgICAgICAgICBtZXRob2ROb2RlOiBpbmZvLm5vZGVcbiAgICAgICAgICB9KVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgZGF0YTogeyBraW5kOiBpbmZvLmtpbmQsIG1ldGhvZE5hbWU6IGluZm8ubWV0aG9kTmFtZSB9LFxuICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRCxcbiAgICAgICAgICBub2RlOiBpbmZvLnJlcG9ydE5vZGVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUmVxdWlyZSBgb3ZlcnJpZGVgIG1ldGhvZHMgdG8gY2FsbCBgc3VwZXIubWV0aG9kTmFtZSgpYCdcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBbTUVTU0FHRV9JRF06ICdPdmVycmlkZSB7eyBraW5kIH19IGB7eyBtZXRob2ROYW1lIH19YCBtdXN0IGFjY2VzcyBgc3VwZXIue3sgbWV0aG9kTmFtZSB9fWAuJ1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAncHJvYmxlbSdcbiAgfVxufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY2hlY2tJc1BhcmVudE1ldGhvZEFic3RyYWN0fS5cbiAqL1xuaW50ZXJmYWNlIENoZWNrSXNQYXJlbnRNZXRob2RBYnN0cmFjdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgRVNMaW50IHJ1bGUgY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQ7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgbmFtZSB0byBsb29rIHVwIGluIHRoZSBwYXJlbnQgY2xhc3MuXG4gICAqL1xuICByZWFkb25seSBtZXRob2ROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZSBtZXRob2QgZGVmaW5pdGlvbiBBU1Qgbm9kZS5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZE5vZGU6IFRTRVNUcmVlLk1ldGhvZERlZmluaXRpb247XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBkZWNsYXJhdGlvbiBoYXMgdGhlIGBhYnN0cmFjdGAgbW9kaWZpZXIuXG4gKlxuICogQHBhcmFtIGRlY2wgLSBUaGUgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiB0byBpbnNwZWN0LlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBkZWNsYXJhdGlvbiBpcyBhYnN0cmFjdC5cbiAqL1xuZnVuY3Rpb24gY2hlY2tJc0Fic3RyYWN0KGRlY2w6IERlY2xhcmF0aW9uKTogYm9vbGVhbiB7XG4gIGFzc2VydChjYW5IYXZlTW9kaWZpZXJzKGRlY2wpLCAnRXhwZWN0ZWQgbWV0aG9kIGRlY2xhcmF0aW9uIHRvIHN1cHBvcnQgbW9kaWZpZXJzJyk7XG5cbiAgY29uc3QgbW9kaWZpZXJzID0gZ2V0TW9kaWZpZXJzKGRlY2wpO1xuICByZXR1cm4gbW9kaWZpZXJzPy5zb21lKChtb2QpID0+IG1vZC5raW5kID09PSBTeW50YXhLaW5kLkFic3RyYWN0S2V5d29yZCkgPz8gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHBhcmVudCBjbGFzcydzIHZlcnNpb24gb2YgdGhlIG1ldGhvZCBpcyBgYWJzdHJhY3RgLlxuICpcbiAqIFdoZW4gdHlwZSBpbmZvcm1hdGlvbiBpcyBub3QgYXZhaWxhYmxlIChlLmcuLCBwYXJzZXIgY29uZmlndXJlZCB3aXRob3V0XG4gKiBgcHJvamVjdFNlcnZpY2VgKSwgcmV0dXJucyBgZmFsc2VgIHNvIHRoZSBydWxlIGNvbnNlcnZhdGl2ZWx5IHJlcG9ydHMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHBhcmVudCBtZXRob2QgaXMgYWJzdHJhY3QuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrSXNQYXJlbnRNZXRob2RBYnN0cmFjdChwYXJhbXM6IENoZWNrSXNQYXJlbnRNZXRob2RBYnN0cmFjdFBhcmFtcyk6IGJvb2xlYW4ge1xuICBjb25zdCB7IGNvbnRleHQsIG1ldGhvZE5hbWUsIG1ldGhvZE5vZGUgfSA9IHBhcmFtcztcbiAgY29uc3Qgc2VydmljZXMgPSBjb250ZXh0LnNvdXJjZUNvZGUucGFyc2VyU2VydmljZXMgYXMgUGFydGlhbDxQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb24+O1xuXG4gIGlmICghc2VydmljZXMucHJvZ3JhbSB8fCAhc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgY2hlY2tlciA9IHNlcnZpY2VzLnByb2dyYW0uZ2V0VHlwZUNoZWNrZXIoKTtcbiAgY29uc3QgY2xhc3NEZWNsID0gbWV0aG9kTm9kZS5wYXJlbnQucGFyZW50O1xuICBjb25zdCB0c0NsYXNzTm9kZSA9IHNlcnZpY2VzLmVzVHJlZU5vZGVUb1RTTm9kZU1hcC5nZXQoY2xhc3NEZWNsKTtcbiAgY29uc3QgY2xhc3NUeXBlID0gY2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbih0c0NsYXNzTm9kZSk7XG4gIGNvbnN0IGJhc2VUeXBlcyA9IGNsYXNzVHlwZS5nZXRCYXNlVHlwZXMoKTtcblxuICBpZiAoIWJhc2VUeXBlcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAoY29uc3QgYmFzZVR5cGUgb2YgYmFzZVR5cGVzKSB7XG4gICAgY29uc3QgcHJvcCA9IGJhc2VUeXBlLmdldFByb3BlcnR5KG1ldGhvZE5hbWUpO1xuXG4gICAgaWYgKCFwcm9wKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWNsYXJhdGlvbnMgPSBwcm9wLmdldERlY2xhcmF0aW9ucygpO1xuXG4gICAgaWYgKCFkZWNsYXJhdGlvbnMpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZGVjbCBvZiBkZWNsYXJhdGlvbnMpIHtcbiAgICAgIGlmIChjaGVja0lzQWJzdHJhY3QoZGVjbCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCBleHByZXNzaW9uIGlzIGBzdXBlci5tZXRob2ROYW1lKC4uLilgLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gVGhlIGNhbGwgZXhwcmVzc2lvbiBub2RlLlxuICogQHBhcmFtIG1ldGhvZE5hbWUgLSBUaGUgZXhwZWN0ZWQgbWV0aG9kIG5hbWUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5vZGUgaXMgYSBtYXRjaGluZyBzdXBlciBtZXRob2QgY2FsbC5cbiAqL1xuZnVuY3Rpb24gY2hlY2tJc1N1cGVyTWV0aG9kQ2FsbChub2RlOiBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbiwgbWV0aG9kTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IGNhbGxlZSA9IG5vZGUuY2FsbGVlO1xuICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBBU1Qgbm9kZSB0eXBlIHN0cmluZyBsaXRlcmFscyBtYXRjaCB0aGUgVFNFU1RyZWUgZW51bSB2YWx1ZXMuICovXG4gIHJldHVybiBjYWxsZWUudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nXG4gICAgJiYgY2FsbGVlLm9iamVjdC50eXBlID09PSAnU3VwZXInXG4gICAgJiYgY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09ICdJZGVudGlmaWVyJ1xuICAgICYmIGNhbGxlZS5wcm9wZXJ0eS5uYW1lID09PSBtZXRob2ROYW1lO1xuICAvKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZW51bS1jb21wYXJpc29uIC0tIFJlLWVuYWJsZSBhZnRlciBtdWx0aS1saW5lIHN0cmluZyBjb21wYXJpc29uIGJsb2NrLiAqL1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbm9kZSBpcyBhIGBzdXBlci5wcm9wZXJ0eU5hbWVgIG1lbWJlciBleHByZXNzaW9uLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gVGhlIEFTVCBub2RlIHRvIGNoZWNrIChNZW1iZXJFeHByZXNzaW9uIG9yIEFzc2lnbm1lbnRFeHByZXNzaW9uIGxlZnQtaGFuZCBzaWRlKS5cbiAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgZXhwZWN0ZWQgcHJvcGVydHkgbmFtZS5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbm9kZSBpcyBhIG1hdGNoaW5nIHN1cGVyIHByb3BlcnR5IGFjY2Vzcy5cbiAqL1xuZnVuY3Rpb24gY2hlY2tJc1N1cGVyUHJvcGVydHlBY2Nlc3Mobm9kZTogVFNFU1RyZWUuTm9kZSwgcHJvcGVydHlOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gQVNUIG5vZGUgdHlwZSBzdHJpbmcgbGl0ZXJhbHMgbWF0Y2ggdGhlIFRTRVNUcmVlIGVudW0gdmFsdWVzLiAqL1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbidcbiAgICAmJiBub2RlLm9iamVjdC50eXBlID09PSAnU3VwZXInXG4gICAgJiYgbm9kZS5wcm9wZXJ0eS50eXBlID09PSAnSWRlbnRpZmllcidcbiAgICAmJiBub2RlLnByb3BlcnR5Lm5hbWUgPT09IHByb3BlcnR5TmFtZTtcbiAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBSZS1lbmFibGUgYWZ0ZXIgbXVsdGktbGluZSBzdHJpbmcgY29tcGFyaXNvbiBibG9jay4gKi9cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMEJBLDBCQUlPO0FBRVAseUJBQXVCO0FBR2hCLE1BQU0sYUFBYTtBQVluQixNQUFNLG1CQUFvQztBQUFBLEVBQy9DLE9BQU8sU0FBUztBQUNkLFVBQU0sY0FBb0MsQ0FBQztBQUUzQyxXQUFPO0FBQUEsTUFDTCx1QkFBdUIsTUFBdUI7QUFDNUMsY0FBTSxVQUFVLFlBQVksWUFBWSxTQUFTLENBQUM7QUFDbEQsWUFBSSxTQUFTLFNBQVMsT0FBTztBQUMzQjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGFBQWE7QUFDbkIsWUFBSSwyQkFBMkIsV0FBVyxNQUFNLFFBQVEsVUFBVSxHQUFHO0FBQ25FLGtCQUFRLGVBQWU7QUFBQSxRQUN6QjtBQUFBLE1BQ0Y7QUFBQSxNQUNBLGlCQUFpQixNQUF1QjtBQUN0Qyxj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
@@ -0,0 +1,141 @@
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_typescript_classic_api_boundary_exports = {};
127
+ __export(eslint_typescript_classic_api_boundary_exports, {
128
+ typeScriptClassicApiNoRestrictedImportPaths: () => typeScriptClassicApiNoRestrictedImportPaths
129
+ });
130
+ module.exports = __toCommonJS(eslint_typescript_classic_api_boundary_exports);
131
+ const typeScriptClassicApiNoRestrictedImportPaths = [
132
+ {
133
+ message: "Import the classic TypeScript compiler API from the `typescript-6` alias, not the bare `typescript` specifier. `typescript@7` (the `tsgo` port) omits the classic API (`sys`, `createProgram`, ...) on its main entry, so a consumer that forces `typescript` to v7 would crash this code. The `typescript-6` alias cannot be matched by a `typescript` override, so it stays on the classic API.",
134
+ name: "typescript"
135
+ }
136
+ ];
137
+ // Annotate the CommonJS export names for ESM import in node:
138
+ 0 && (module.exports = {
139
+ typeScriptClassicApiNoRestrictedImportPaths
140
+ });
141
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC10eXBlc2NyaXB0LWNsYXNzaWMtYXBpLWJvdW5kYXJ5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogYG5vLXJlc3RyaWN0ZWQtaW1wb3J0c2AgcGF0aCBlbnRyeSB0aGF0IGZvcmNlcyB0aGUgY2xhc3NpYyBUeXBlU2NyaXB0IGNvbXBpbGVyIEFQSSB0byBiZSBpbXBvcnRlZFxuICogZnJvbSB0aGUgYHR5cGVzY3JpcHQtNmAgYWxpYXMgcmF0aGVyIHRoYW4gdGhlIGJhcmUgYHR5cGVzY3JpcHRgIHNwZWNpZmllci5cbiAqXG4gKiBUaGlzIGxpYnJhcnkncyB0b29saW5nIHVzZXMgdGhlIGNsYXNzaWMgY29tcGlsZXIgQVBJIChgc3lzYCwgYGNyZWF0ZVByb2dyYW1gLCBgU3ludGF4S2luZGAsIC4uLiksXG4gKiB3aGljaCB0aGUgbmF0aXZlIGB0c2dvYCBwb3J0IHB1Ymxpc2hlZCBhcyBgdHlwZXNjcmlwdEA3YCBkb2VzIG5vdCBleHBvc2Ugb24gaXRzIG1haW4gZW50cnkuIEFcbiAqIGNvbnN1bWVyIHRoYXQgZm9yY2VzIGB0eXBlc2NyaXB0YCB0byB2NyAoZS5nLiB2aWEgYW4gYG92ZXJyaWRlc2AgZW50cnkgY2FzY2FkaW5nIGludG8gdGhpc1xuICogbGlicmFyeSdzIG5lc3RlZCBjb3B5KSB3b3VsZCBvdGhlcndpc2UgY3Jhc2ggdGhpcyBjb2RlIGF0IHJ1bnRpbWUgd2l0aCBlcnJvcnMgc3VjaCBhcyByZWFkaW5nXG4gKiBgdXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lc2Agb24gYW4gYHVuZGVmaW5lZGAgYHN5c2AuIEltcG9ydGluZyBmcm9tIHRoZSBkaXN0aW5jdGx5IG5hbWVkXG4gKiBgdHlwZXNjcmlwdC02YCBhbGlhcyBcdTIwMTQgd2hpY2ggYSBgdHlwZXNjcmlwdGAgb3ZlcnJpZGUgY2Fubm90IG1hdGNoIFx1MjAxNCBrZWVwcyB0aGUgY2xhc3NpYyBBUEkgYXZhaWxhYmxlXG4gKiByZWdhcmRsZXNzIG9mIHRoZSBjb25zdW1lcidzIGB0eXBlc2NyaXB0YCB2ZXJzaW9uLlxuICpcbiAqIEV4cG9ydGVkIGFzIGEgc3RhbmRhbG9uZSBjb25zdGFudCBzbyB0aGUgcGF0dGVybiBjYW4gYmUgdW5pdC10ZXN0ZWQgaW5kZXBlbmRlbnRseSBvZiB0aGUgbGFyZ2VyXG4gKiBkZWNsYXJhdGl2ZSBjb25maWcsIGFuZCBzbyB0aGUgb3duaW5nIHByb2plY3QgY2FuIGFwcGx5IGl0IHNjb3BlZCB0byBpdHMgb3duIGZpbGVzLlxuICovXG5cbi8qKlxuICogQSBzaW5nbGUgYG5vLXJlc3RyaWN0ZWQtaW1wb3J0c2AgcGF0aCBlbnRyeSBwYWlyaW5nIGEgYmFubmVkIGltcG9ydCBzcGVjaWZpZXIgd2l0aCBhIGh1bWFuLXJlYWRhYmxlXG4gKiBtZXNzYWdlIGV4cGxhaW5pbmcgd2h5IGl0IGlzIGJhbm5lZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb1Jlc3RyaWN0ZWRJbXBvcnRQYXRoRW50cnkge1xuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbWVzc2FnZSBzaG93biB3aGVuIGFuIGltcG9ydCBtYXRjaGVzIHtAbGluayBOb1Jlc3RyaWN0ZWRJbXBvcnRQYXRoRW50cnkubmFtZX0uXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBleGFjdCBpbXBvcnQgc3BlY2lmaWVyIHRvIGJhbi5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBgbm8tcmVzdHJpY3RlZC1pbXBvcnRzYCBwYXRoIGVudHJpZXMgYmFubmluZyB0aGUgYmFyZSBgdHlwZXNjcmlwdGAgc3BlY2lmaWVyIGluIGZhdm9yIG9mIHRoZVxuICogYHR5cGVzY3JpcHQtNmAgYWxpYXMuXG4gKlxuICogSW50ZW5kZWQgdG8gYmUgYXBwbGllZCAodmlhIGEgZmlsZS1zY29wZWQgRVNMaW50IGNvbmZpZykgdG8gdGhpcyBsaWJyYXJ5J3Mgb3duIHNvdXJjZSBzbyB0aGVcbiAqIGNsYXNzaWMgY29tcGlsZXIgQVBJIGtlZXBzIHJlc29sdmluZyB0byBhIHJlYWwgVHlwZVNjcmlwdCA2LCBldmVuIHdoZW4gYSBjb25zdW1lciBmb3JjZXMgdGhlIGJhcmVcbiAqIGB0eXBlc2NyaXB0YCBkZXBlbmRlbmN5IHRvIHRoZSBgdHNnb2AgcG9ydCAoYHR5cGVzY3JpcHRAN2ApLlxuICovXG5leHBvcnQgY29uc3QgdHlwZVNjcmlwdENsYXNzaWNBcGlOb1Jlc3RyaWN0ZWRJbXBvcnRQYXRoczogcmVhZG9ubHkgTm9SZXN0cmljdGVkSW1wb3J0UGF0aEVudHJ5W10gPSBbXG4gIHtcbiAgICBtZXNzYWdlOiAnSW1wb3J0IHRoZSBjbGFzc2ljIFR5cGVTY3JpcHQgY29tcGlsZXIgQVBJIGZyb20gdGhlIGB0eXBlc2NyaXB0LTZgIGFsaWFzLCBub3QgdGhlIGJhcmUgYHR5cGVzY3JpcHRgIHNwZWNpZmllci4gYHR5cGVzY3JpcHRAN2AgKHRoZSBgdHNnb2AgcG9ydCkgb21pdHMgdGhlIGNsYXNzaWMgQVBJIChgc3lzYCwgYGNyZWF0ZVByb2dyYW1gLCAuLi4pIG9uIGl0cyBtYWluIGVudHJ5LCBzbyBhIGNvbnN1bWVyIHRoYXQgZm9yY2VzIGB0eXBlc2NyaXB0YCB0byB2NyB3b3VsZCBjcmFzaCB0aGlzIGNvZGUuIFRoZSBgdHlwZXNjcmlwdC02YCBhbGlhcyBjYW5ub3QgYmUgbWF0Y2hlZCBieSBhIGB0eXBlc2NyaXB0YCBvdmVycmlkZSwgc28gaXQgc3RheXMgb24gdGhlIGNsYXNzaWMgQVBJLicsXG4gICAgbmFtZTogJ3R5cGVzY3JpcHQnXG4gIH1cbl07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEwQ08sTUFBTSw4Q0FBc0Y7QUFBQSxFQUNqRztBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsTUFBTTtBQUFBLEVBQ1I7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,41 @@
1
+ /// <reference path="../../library.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * `no-restricted-imports` path entry that forces the classic TypeScript compiler API to be imported
6
+ * from the `typescript-6` alias rather than the bare `typescript` specifier.
7
+ *
8
+ * This library's tooling uses the classic compiler API (`sys`, `createProgram`, `SyntaxKind`, ...),
9
+ * which the native `tsgo` port published as `typescript@7` does not expose on its main entry. A
10
+ * consumer that forces `typescript` to v7 (e.g. via an `overrides` entry cascading into this
11
+ * library's nested copy) would otherwise crash this code at runtime with errors such as reading
12
+ * `useCaseSensitiveFileNames` on an `undefined` `sys`. Importing from the distinctly named
13
+ * `typescript-6` alias — which a `typescript` override cannot match — keeps the classic API available
14
+ * regardless of the consumer's `typescript` version.
15
+ *
16
+ * Exported as a standalone constant so the pattern can be unit-tested independently of the larger
17
+ * declarative config, and so the owning project can apply it scoped to its own files.
18
+ */
19
+ /**
20
+ * A single `no-restricted-imports` path entry pairing a banned import specifier with a human-readable
21
+ * message explaining why it is banned.
22
+ */
23
+ export interface NoRestrictedImportPathEntry {
24
+ /**
25
+ * Human-readable message shown when an import matches {@link NoRestrictedImportPathEntry.name}.
26
+ */
27
+ message: string;
28
+ /**
29
+ * The exact import specifier to ban.
30
+ */
31
+ name: string;
32
+ }
33
+ /**
34
+ * `no-restricted-imports` path entries banning the bare `typescript` specifier in favor of the
35
+ * `typescript-6` alias.
36
+ *
37
+ * Intended to be applied (via a file-scoped ESLint config) to this library's own source so the
38
+ * classic compiler API keeps resolving to a real TypeScript 6, even when a consumer forces the bare
39
+ * `typescript` dependency to the `tsgo` port (`typescript@7`).
40
+ */
41
+ export declare const typeScriptClassicApiNoRestrictedImportPaths: readonly NoRestrictedImportPathEntry[];
@@ -141,6 +141,7 @@ __export(linters_exports, {
141
141
  "eslint-config": () => eslint_config,
142
142
  "eslint-no-restricted-syntax": () => eslint_no_restricted_syntax,
143
143
  "eslint-rules": () => eslint_rules,
144
+ "eslint-typescript-classic-api-boundary": () => eslint_typescript_classic_api_boundary,
144
145
  markdownlint: () => markdownlint,
145
146
  "markdownlint-cli2-config": () => markdownlint_cli2_config,
146
147
  "over-exposure": () => over_exposure
@@ -151,6 +152,7 @@ var eslint_agnostic_core_boundary = __toESM(__extractDefault(require('./eslint-a
151
152
  var eslint_config = __toESM(__extractDefault(require('./eslint-config.cjs')), 1);
152
153
  var eslint_no_restricted_syntax = __toESM(__extractDefault(require('./eslint-no-restricted-syntax.cjs')), 1);
153
154
  var eslint_rules = __toESM(__extractDefault(require('./eslint-rules/index.cjs')), 1);
155
+ var eslint_typescript_classic_api_boundary = __toESM(__extractDefault(require('./eslint-typescript-classic-api-boundary.cjs')), 1);
154
156
  var eslint = __toESM(__extractDefault(require('./eslint.cjs')), 1);
155
157
  var markdownlint_cli2_config = __toESM(__extractDefault(require('./markdownlint-cli2-config.cjs')), 1);
156
158
  var markdownlint = __toESM(__extractDefault(require('./markdownlint.cjs')), 1);
@@ -163,8 +165,9 @@ var over_exposure = __toESM(__extractDefault(require('./over-exposure.cjs')), 1)
163
165
  "eslint-config": null,
164
166
  "eslint-no-restricted-syntax": null,
165
167
  "eslint-rules": null,
168
+ "eslint-typescript-classic-api-boundary": null,
166
169
  markdownlint,
167
170
  "markdownlint-cli2-config": null,
168
171
  "over-exposure": null
169
172
  });
170
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2NzcGVsbCcgZnJvbSAnLi9jc3BlbGwudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5JyBmcm9tICcuL2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5LnRzJztcbmV4cG9ydCAqIGFzICdlc2xpbnQtY29uZmlnJyBmcm9tICcuL2VzbGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheCcgZnJvbSAnLi9lc2xpbnQtbm8tcmVzdHJpY3RlZC1zeW50YXgudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1ydWxlcycgZnJvbSAnLi9lc2xpbnQtcnVsZXMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludCcgZnJvbSAnLi9lc2xpbnQudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3dubGludC1jbGkyLWNvbmZpZycgZnJvbSAnLi9tYXJrZG93bmxpbnQtY2xpMi1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3dubGludCcgZnJvbSAnLi9tYXJrZG93bmxpbnQudHMnO1xuZXhwb3J0ICogYXMgJ292ZXItZXhwb3N1cmUnIGZyb20gJy4vb3Zlci1leHBvc3VyZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlDQUFBQTtBQUFBLEVBQUEsdUJBQUFDO0FBQUEsRUFBQSxxQ0FBQUM7QUFBQSxFQUFBLHNCQUFBQztBQUFBLEVBQUE7QUFBQSxvQ0FBQUM7QUFBQSxFQUFBLHVCQUFBQztBQUFBO0FBQUE7QUFFQSxhQUEwQjtBQUMxQixJQUFBTCxnQ0FBaUQ7QUFDakQsSUFBQUMsZ0JBQWlDO0FBQ2pDLElBQUFDLDhCQUErQztBQUMvQyxJQUFBQyxlQUFnQztBQUNoQyxhQUEwQjtBQUMxQixJQUFBQywyQkFBNEM7QUFDNUMsbUJBQWdDO0FBQ2hDLElBQUFDLGdCQUFpQzsiLAogICJuYW1lcyI6IFsiZXNsaW50LWFnbm9zdGljLWNvcmUtYm91bmRhcnkiLCAiZXNsaW50LWNvbmZpZyIsICJlc2xpbnQtbm8tcmVzdHJpY3RlZC1zeW50YXgiLCAiZXNsaW50LXJ1bGVzIiwgIm1hcmtkb3dubGludC1jbGkyLWNvbmZpZyIsICJvdmVyLWV4cG9zdXJlIl0KfQo=
173
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2NzcGVsbCcgZnJvbSAnLi9jc3BlbGwudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5JyBmcm9tICcuL2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5LnRzJztcbmV4cG9ydCAqIGFzICdlc2xpbnQtY29uZmlnJyBmcm9tICcuL2VzbGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheCcgZnJvbSAnLi9lc2xpbnQtbm8tcmVzdHJpY3RlZC1zeW50YXgudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1ydWxlcycgZnJvbSAnLi9lc2xpbnQtcnVsZXMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC10eXBlc2NyaXB0LWNsYXNzaWMtYXBpLWJvdW5kYXJ5JyBmcm9tICcuL2VzbGludC10eXBlc2NyaXB0LWNsYXNzaWMtYXBpLWJvdW5kYXJ5LnRzJztcbmV4cG9ydCAqIGFzICdlc2xpbnQnIGZyb20gJy4vZXNsaW50LnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bmxpbnQtY2xpMi1jb25maWcnIGZyb20gJy4vbWFya2Rvd25saW50LWNsaTItY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bmxpbnQnIGZyb20gJy4vbWFya2Rvd25saW50LnRzJztcbmV4cG9ydCAqIGFzICdvdmVyLWV4cG9zdXJlJyBmcm9tICcuL292ZXItZXhwb3N1cmUudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5Q0FBQUE7QUFBQSxFQUFBLHVCQUFBQztBQUFBLEVBQUEscUNBQUFDO0FBQUEsRUFBQSxzQkFBQUM7QUFBQSxFQUFBLGdEQUFBQztBQUFBLEVBQUE7QUFBQSxvQ0FBQUM7QUFBQSxFQUFBLHVCQUFBQztBQUFBO0FBQUE7QUFFQSxhQUEwQjtBQUMxQixJQUFBTixnQ0FBaUQ7QUFDakQsSUFBQUMsZ0JBQWlDO0FBQ2pDLElBQUFDLDhCQUErQztBQUMvQyxJQUFBQyxlQUFnQztBQUNoQyxJQUFBQyx5Q0FBMEQ7QUFDMUQsYUFBMEI7QUFDMUIsSUFBQUMsMkJBQTRDO0FBQzVDLG1CQUFnQztBQUNoQyxJQUFBQyxnQkFBaUM7IiwKICAibmFtZXMiOiBbImVzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5IiwgImVzbGludC1jb25maWciLCAiZXNsaW50LW5vLXJlc3RyaWN0ZWQtc3ludGF4IiwgImVzbGludC1ydWxlcyIsICJlc2xpbnQtdHlwZXNjcmlwdC1jbGFzc2ljLWFwaS1ib3VuZGFyeSIsICJtYXJrZG93bmxpbnQtY2xpMi1jb25maWciLCAib3Zlci1leHBvc3VyZSJdCn0K
@@ -4,6 +4,7 @@ export * as 'eslint-agnostic-core-boundary' from './eslint-agnostic-core-boundar
4
4
  export * as 'eslint-config' from './eslint-config.cjs';
5
5
  export * as 'eslint-no-restricted-syntax' from './eslint-no-restricted-syntax.cjs';
6
6
  export * as 'eslint-rules' from './eslint-rules/index.cjs';
7
+ export * as 'eslint-typescript-classic-api-boundary' from './eslint-typescript-classic-api-boundary.cjs';
7
8
  export * as 'eslint' from './eslint.cjs';
8
9
  export * as 'markdownlint-cli2-config' from './markdownlint-cli2-config.cjs';
9
10
  export * as 'markdownlint' from './markdownlint.cjs';