@dollhousemcp/mcp-server 1.9.13 → 1.9.15

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 (79) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.github.md +54 -0
  3. package/README.md.backup +1241 -49
  4. package/dist/cache/CollectionCache.js +2 -2
  5. package/dist/collection/CollectionIndexManager.js +3 -3
  6. package/dist/config/ConfigWizard.js +3 -3
  7. package/dist/config/indicator-config.js +2 -2
  8. package/dist/config/portfolio-constants.js +12 -12
  9. package/dist/elements/BaseElement.js +7 -7
  10. package/dist/elements/FeedbackProcessor.d.ts +7 -0
  11. package/dist/elements/FeedbackProcessor.d.ts.map +1 -1
  12. package/dist/elements/FeedbackProcessor.js +67 -14
  13. package/dist/elements/agents/AgentManager.js +6 -6
  14. package/dist/elements/memories/Memory.js +4 -4
  15. package/dist/elements/memories/MemoryManager.js +3 -3
  16. package/dist/elements/memories/utils.js +3 -3
  17. package/dist/elements/skills/Skill.js +2 -2
  18. package/dist/elements/skills/SkillManager.js +2 -2
  19. package/dist/elements/templates/Template.d.ts.map +1 -1
  20. package/dist/elements/templates/Template.js +38 -14
  21. package/dist/elements/templates/TemplateManager.js +2 -2
  22. package/dist/generated/version.d.ts +2 -2
  23. package/dist/generated/version.js +3 -3
  24. package/dist/handlers/ConfigHandler.js +3 -3
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +20 -16
  27. package/dist/persona/PersonaElementManager.js +3 -3
  28. package/dist/persona/PersonaManager.js +2 -2
  29. package/dist/persona/export-import/PersonaImporter.js +3 -3
  30. package/dist/portfolio/DefaultElementProvider.d.ts +12 -0
  31. package/dist/portfolio/DefaultElementProvider.d.ts.map +1 -1
  32. package/dist/portfolio/DefaultElementProvider.js +23 -6
  33. package/dist/portfolio/GitHubPortfolioIndexer.js +2 -2
  34. package/dist/portfolio/MigrationManager.js +2 -2
  35. package/dist/portfolio/NLPScoringManager.js +2 -2
  36. package/dist/portfolio/PortfolioManager.d.ts +5 -0
  37. package/dist/portfolio/PortfolioManager.d.ts.map +1 -1
  38. package/dist/portfolio/PortfolioManager.js +8 -1
  39. package/dist/portfolio/PortfolioRepoManager.js +2 -2
  40. package/dist/portfolio/PortfolioSyncManager.js +5 -5
  41. package/dist/portfolio/RelationshipManager.js +4 -4
  42. package/dist/portfolio/UnifiedIndexManager.js +4 -4
  43. package/dist/portfolio/types/RelationshipTypes.js +2 -2
  44. package/dist/security/InputValidator.d.ts +12 -0
  45. package/dist/security/InputValidator.d.ts.map +1 -1
  46. package/dist/security/InputValidator.js +38 -18
  47. package/dist/security/audit/config/suppressions.js +10 -10
  48. package/dist/security/commandValidator.js +2 -2
  49. package/dist/security/dosProtection.d.ts +123 -0
  50. package/dist/security/dosProtection.d.ts.map +1 -0
  51. package/dist/security/dosProtection.js +392 -0
  52. package/dist/security/pathValidator.js +2 -2
  53. package/dist/security/secureYamlParser.d.ts.map +1 -1
  54. package/dist/security/secureYamlParser.js +4 -3
  55. package/dist/security/tokenManager.js +10 -10
  56. package/dist/security/validators/unicodeValidator.js +2 -2
  57. package/dist/security/yamlValidator.js +3 -3
  58. package/dist/sync/PortfolioDownloader.js +2 -2
  59. package/dist/sync/PortfolioSyncComparer.js +2 -2
  60. package/dist/tools/portfolio/PortfolioElementAdapter.js +3 -3
  61. package/dist/tools/portfolio/submitToPortfolioTool.js +14 -14
  62. package/dist/utils/EarlyTerminationSearch.d.ts +1 -1
  63. package/dist/utils/EarlyTerminationSearch.d.ts.map +1 -1
  64. package/dist/utils/EarlyTerminationSearch.js +3 -3
  65. package/dist/utils/ElementFormatter.d.ts +1 -0
  66. package/dist/utils/ElementFormatter.d.ts.map +1 -1
  67. package/dist/utils/ElementFormatter.js +21 -13
  68. package/dist/utils/GitHubRateLimiter.d.ts +6 -0
  69. package/dist/utils/GitHubRateLimiter.d.ts.map +1 -1
  70. package/dist/utils/GitHubRateLimiter.js +20 -5
  71. package/dist/utils/RateLimiter.js +2 -2
  72. package/dist/utils/SecureDownloader.js +2 -2
  73. package/dist/utils/fileOperations.d.ts +6 -1
  74. package/dist/utils/fileOperations.d.ts.map +1 -1
  75. package/dist/utils/fileOperations.js +29 -5
  76. package/dist/utils/filesystem.js +6 -6
  77. package/dist/utils/searchUtils.js +2 -2
  78. package/dist/utils/version.js +3 -3
  79. package/package.json +1 -1
@@ -20,8 +20,8 @@ export function generateAnonymousId() {
20
20
  const ALPHANUMERIC_REGEX = /[a-z0-9]/;
21
21
  export function generateUniqueId(personaName, author) {
22
22
  const now = new Date();
23
- const dateStr = now.toISOString().slice(0, 10).replace(/-/g, '');
24
- const timeStr = now.toTimeString().slice(0, 8).replace(/:/g, '');
23
+ const dateStr = now.toISOString().slice(0, 10).replaceAll('-', '');
24
+ const timeStr = now.toTimeString().slice(0, 8).replaceAll(':', '');
25
25
  // SECURITY FIX: Prevent ReDoS by using a single-pass approach
26
26
  // Previously: Multiple replace() operations with unbounded quantifiers could cause exponential backtracking
27
27
  // Now: Single-pass transformation with built-in length limit
@@ -31,8 +31,8 @@ export function generateUniqueId(personaName, author) {
31
31
  .map(char => ALPHANUMERIC_REGEX.test(char) ? char : '-')
32
32
  .join('')
33
33
  .substring(0, 100) // Limit after transformation to preserve structure
34
- .replace(/(^-+)|(-+$)/g, '') // Only trim leading/trailing hyphens
35
- .replace(/-{2,}/g, '-'); // Collapse multiple hyphens
34
+ .replaceAll(/(^-+)|(-+$)/g, '') // Only trim leading/trailing hyphens
35
+ .replaceAll(/-{2,}/g, '-'); // Collapse multiple hyphens
36
36
  const whoMadeIt = author || generateAnonymousId();
37
37
  return `${sanitizedName}_${dateStr}-${timeStr}_${whoMadeIt}`;
38
38
  }
@@ -61,7 +61,7 @@ export function slugify(text) {
61
61
  }
62
62
  // Extract the trimmed portion and collapse multiple hyphens
63
63
  const trimmed = transformed.slice(start, end + 1);
64
- return trimmed.replace(/-{2,}/g, '-'); // This is safe as it's linear
64
+ return trimmed.replaceAll(/-{2,}/g, '-'); // This is safe as it's linear
65
65
  }
66
66
  /**
67
67
  * Ensure a directory exists, create if it doesn't
@@ -103,4 +103,4 @@ export async function createBackup(sourcePath, backupPath) {
103
103
  // Copy directory recursively
104
104
  await fs.cp(sourcePath, backupPath, { recursive: true });
105
105
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXN5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTyxRQUFRLFNBQVMsSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7QUFDakQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsc0ZBQXNGO0FBQ3RGLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBRXRDLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxXQUFtQixFQUFFLE1BQWU7SUFDbkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN2QixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMs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LENBQUM7UUFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQUMsUUFBZ0I7SUFDaEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztBQUNwQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FBQyxVQUFrQixFQUFFLFVBQWtCO0lBQ3ZFLGlDQUFpQztJQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWpDLDZCQUE2QjtJQUM3QixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZpbGVzeXN0ZW0gYW5kIHN0cmluZyBtYW5pcHVsYXRpb24gdXRpbGl0aWVzXG4gKi9cblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFESkVDVElWRVMsIEFOSU1BTFMgfSBmcm9tICcuLi9jb25maWcvY29uc3RhbnRzLmpzJztcblxuLyoqXG4gKiBHZW5lcmF0ZSBhbiBhbm9ueW1vdXMgSUQgZm9yIHVzZXJzIHdpdGhvdXQgaWRlbnRpdHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQW5vbnltb3VzSWQoKTogc3RyaW5nIHtcbiAgY29uc3QgYWRqZWN0aXZlID0gQURKRUNUSVZFU1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBBREpFQ1RJVkVTLmxlbmd0aCldO1xuICBjb25zdCBhbmltYWwgPSBBTklNQUxTW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIEFOSU1BTFMubGVuZ3RoKV07XG4gIGNvbnN0IHJhbmRvbSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA2KTtcbiAgcmV0dXJuIGBhbm9uLSR7YWRqZWN0aXZlfS0ke2FuaW1hbH0tJHtyYW5kb219YDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBmb3IgcGVyc29uYXNcbiAqL1xuLy8gUHJlLWNvbXBpbGVkIHJlZ2V4IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgKGF2b2lkcyBjcmVhdGluZyByZWdleCBvbiBlYWNoIGNoYXJhY3RlcilcbmNvbnN0IEFMUEhBTlVNRVJJQ19SRUdFWCA9IC9bYS16MC05XS87XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVVuaXF1ZUlkKHBlcnNvbmFOYW1lOiBzdHJpbmcsIGF1dGhvcj86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGRhdGVTdHIgPSBub3cudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCkucmVwbGFjZSgvLS9nLCAnJyk7XG4gIGNvbnN0IHRpbWVTdHIgPSBub3cudG9UaW1lU3RyaW5nKCkuc2xpY2UoMCwgOCkucmVwbGFjZSgvOi9nLCAnJyk7XG4gIC8vIFNFQ1VSSVRZIEZJWDogUHJldmVudCBSZURvUyBieSB1c2luZyBhIHNpbmdsZS1wYXNzIGFwcHJvYWNoXG4gIC8vIFByZXZpb3VzbHk6IE11bHRpcGxlIHJlcGxhY2UoKSBvcGVyYXRpb25zIHdpdGggdW5ib3VuZGVkIHF1YW50aWZpZXJzIGNvdWxkIGNhdXNlIGV4cG9uZW50aWFsIGJhY2t0cmFja2luZ1xuICAvLyBOb3c6IFNpbmdsZS1wYXNzIHRyYW5zZm9ybWF0aW9uIHdpdGggYnVpbHQtaW4gbGVuZ3RoIGxpbWl0XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBwZXJzb25hTmFtZS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBzYW5pdGl6ZWROYW1lID0gbm9ybWFsaXplZFxuICAgIC5zcGxpdCgnJylcbiAgICAubWFwKGNoYXIgPT4gQUxQSEFOVU1FUklDX1JFR0VYLnRlc3QoY2hhcikgPyBjaGFyIDogJy0nKVxuICAgIC5qb2luKCcnKVxuICAgIC5zdWJzdHJpbmcoMCwgMTAwKSAvLyBMaW1pdCBhZnRlciB0cmFuc2Zvcm1hdGlvbiB0byBwcmVzZXJ2ZSBzdHJ1Y3R1cmVcbiAgICAucmVwbGFjZSgvKF4tKyl8KC0rJCkvZywgJycpIC8vIE9ubHkgdHJpbSBsZWFkaW5nL3RyYWlsaW5nIGh5cGhlbnNcbiAgICAucmVwbGFjZSgvLXsyLH0vZywgJy0nKTsgLy8gQ29sbGFwc2UgbXVsdGlwbGUgaHlwaGVuc1xuICBjb25zdCB3aG9NYWRlSXQgPSBhdXRob3IgfHwgZ2VuZXJhdGVBbm9ueW1vdXNJZCgpO1xuICBcbiAgcmV0dXJuIGAke3Nhbml0aXplZE5hbWV9XyR7ZGF0ZVN0cn0tJHt0aW1lU3RyfV8ke3dob01hZGVJdH1gO1xufVxuXG4vKipcbiAqIENvbnZlcnQgdGV4dCB0byBVUkwtc2FmZSBzbHVnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbHVnaWZ5KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIFNFQ1VSSVRZIEZJWDogUHJldmVudCBSZURvUyBieSB1c2luZyBhIHNpbmdsZS1wYXNzIGFwcHJvYWNoXG4gIC8vIFByZXZpb3VzbHk6IE11bHRpcGxlIHJlcGxhY2UoKSBvcGVyYXRpb25zIHdpdGggdW5ib3VuZGVkIHF1YW50aWZpZXJzIGNvdWxkIGNhdXNlIGV4cG9uZW50aWFsIGJhY2t0cmFja2luZ1xuICAvLyBOb3c6IFNpbmdsZS1wYXNzIHRyYW5zZm9ybWF0aW9uIHdpdGggYnVpbHQtaW4gbGVuZ3RoIGxpbWl0XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSB0ZXh0LnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gbm9ybWFsaXplZFxuICAgIC5zcGxpdCgnJylcbiAgICAubWFwKGNoYXIgPT4gQUxQSEFOVU1FUklDX1JFR0VYLnRlc3QoY2hhcikgPyBjaGFyIDogJy0nKVxuICAgIC5qb2luKCcnKTtcbiAgXG4gIC8vIFNFQ1VSSVRZIEZJWDogQXZvaWQgcG9seW5vbWlhbCByZWdleCBieSB1c2luZyBzZXBhcmF0ZSBvcGVyYXRpb25zXG4gIC8vIFRyaW0gbGVhZGluZyBoeXBoZW5zXG4gIGxldCBzdGFydCA9IDA7XG4gIHdoaWxlIChzdGFydCA8IHRyYW5zZm9ybWVkLmxlbmd0aCAmJiB0cmFuc2Zvcm1lZFtzdGFydF0gPT09ICctJykge1xuICAgIHN0YXJ0Kys7XG4gIH1cbiAgXG4gIC8vIFRyaW0gdHJhaWxpbmcgaHlwaGVuc1xuICBsZXQgZW5kID0gdHJhbnNmb3JtZWQubGVuZ3RoIC0gMTtcbiAgd2hpbGUgKGVuZCA+PSBzdGFydCAmJiB0cmFuc2Zvcm1lZFtlbmRdID09PSAnLScpIHtcbiAgICBlbmQtLTtcbiAgfVxuICBcbiAgLy8gRXh0cmFjdCB0aGUgdHJpbW1lZCBwb3J0aW9uIGFuZCBjb2xsYXBzZSBtdWx0aXBsZSBoeXBoZW5zXG4gIGNvbnN0IHRyaW1tZWQgPSB0cmFuc2Zvcm1lZC5zbGljZShzdGFydCwgZW5kICsgMSk7XG4gIHJldHVybiB0cmltbWVkLnJlcGxhY2UoLy17Mix9L2csICctJyk7IC8vIFRoaXMgaXMgc2FmZSBhcyBpdCdzIGxpbmVhclxufVxuXG4vKipcbiAqIEVuc3VyZSBhIGRpcmVjdG9yeSBleGlzdHMsIGNyZWF0ZSBpZiBpdCBkb2Vzbid0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVEaXJlY3RvcnkoZGlyUGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMuYWNjZXNzKGRpclBhdGgpO1xuICB9IGNhdGNoIHtcbiAgICBhd2FpdCBmcy5ta2RpcihkaXJQYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgZmlsZSBleGlzdHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbGVFeGlzdHMoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICB0cnkge1xuICAgIGF3YWl0IGZzLmFjY2VzcyhmaWxlUGF0aCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIEdldCBmaWxlIHNpemUgaW4gYnl0ZXNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZpbGVTaXplKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBzdGF0cyA9IGF3YWl0IGZzLnN0YXQoZmlsZVBhdGgpO1xuICByZXR1cm4gc3RhdHMuc2l6ZTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBiYWNrdXAgb2YgYSBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUJhY2t1cChzb3VyY2VQYXRoOiBzdHJpbmcsIGJhY2t1cFBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAvLyBFbnN1cmUgYmFja3VwIGRpcmVjdG9yeSBleGlzdHNcbiAgY29uc3QgYmFja3VwRGlyID0gcGF0aC5kaXJuYW1lKGJhY2t1cFBhdGgpO1xuICBhd2FpdCBlbnN1cmVEaXJlY3RvcnkoYmFja3VwRGlyKTtcbiAgXG4gIC8vIENvcHkgZGlyZWN0b3J5IHJlY3Vyc2l2ZWx5XG4gIGF3YWl0IGZzLmNwKHNvdXJjZVBhdGgsIGJhY2t1cFBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xufSJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXN5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTyxRQUFRLFNBQVMsSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7QUFDakQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsc0ZBQXNGO0FBQ3RGLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBRXRDLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxXQUFtQixFQUFFLE1BQWU7SUFDbkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN2QixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkUsOERBQThEO0lBQzlELDRHQUE0RztJQUM1Ryw2REFBNkQ7SUFDN0QsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdDLE1BQU0sYUFBYSxHQUFHLFVBQVU7U0FDN0IsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUNULEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7U0FDdkQsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUNSLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsbURBQW1EO1NBQ3JFLFVBQVUsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMscUNBQXFDO1NBQ3BFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyw0QkFBNEI7SUFDMUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLG1CQUFtQixFQUFFLENBQUM7SUFFbEQsT0FBTyxHQUFHLGFBQWEsSUFBSSxPQUFPLElBQUksT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDO0FBQy9ELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUMsSUFBWTtJQUNsQyw4REFBOEQ7SUFDOUQsNEdBQTRHO0lBQzVHLDZEQUE2RDtJQUM3RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsTUFBTSxXQUFXLEdBQUcsVUFBVTtTQUMzQixLQUFLLENBQUMsRUFBRSxDQUFDO1NBQ1QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztTQUN2RCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFWixvRUFBb0U7SUFDcEUsdUJBQXVCO0lBQ3ZCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLE9BQU8sS0FBSyxHQUFHLFdBQVcsQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNqQyxPQUFPLEdBQUcsSUFBSSxLQUFLLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hELEdBQUcsRUFBRSxDQUFDO0lBQ1IsQ0FBQztJQUVELDREQUE0RDtJQUM1RCxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtBQUMxRSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGVBQWUsQ0FBQyxPQUFlO0lBQ25ELElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FBQyxRQUFnQjtJQUMvQyxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQUMsUUFBZ0I7SUFDaEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztBQUNwQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FBQyxVQUFrQixFQUFFLFVBQWtCO0lBQ3ZFLGlDQUFpQztJQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWpDLDZCQUE2QjtJQUM3QixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZpbGVzeXN0ZW0gYW5kIHN0cmluZyBtYW5pcHVsYXRpb24gdXRpbGl0aWVzXG4gKi9cblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFESkVDVElWRVMsIEFOSU1BTFMgfSBmcm9tICcuLi9jb25maWcvY29uc3RhbnRzLmpzJztcblxuLyoqXG4gKiBHZW5lcmF0ZSBhbiBhbm9ueW1vdXMgSUQgZm9yIHVzZXJzIHdpdGhvdXQgaWRlbnRpdHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQW5vbnltb3VzSWQoKTogc3RyaW5nIHtcbiAgY29uc3QgYWRqZWN0aXZlID0gQURKRUNUSVZFU1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBBREpFQ1RJVkVTLmxlbmd0aCldO1xuICBjb25zdCBhbmltYWwgPSBBTklNQUxTW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIEFOSU1BTFMubGVuZ3RoKV07XG4gIGNvbnN0IHJhbmRvbSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA2KTtcbiAgcmV0dXJuIGBhbm9uLSR7YWRqZWN0aXZlfS0ke2FuaW1hbH0tJHtyYW5kb219YDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBmb3IgcGVyc29uYXNcbiAqL1xuLy8gUHJlLWNvbXBpbGVkIHJlZ2V4IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgKGF2b2lkcyBjcmVhdGluZyByZWdleCBvbiBlYWNoIGNoYXJhY3RlcilcbmNvbnN0IEFMUEhBTlVNRVJJQ19SRUdFWCA9IC9bYS16MC05XS87XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVVuaXF1ZUlkKHBlcnNvbmFOYW1lOiBzdHJpbmcsIGF1dGhvcj86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGRhdGVTdHIgPSBub3cudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCkucmVwbGFjZUFsbCgnLScsICcnKTtcbiAgY29uc3QgdGltZVN0ciA9IG5vdy50b1RpbWVTdHJpbmcoKS5zbGljZSgwLCA4KS5yZXBsYWNlQWxsKCc6JywgJycpO1xuICAvLyBTRUNVUklUWSBGSVg6IFByZXZlbnQgUmVEb1MgYnkgdXNpbmcgYSBzaW5nbGUtcGFzcyBhcHByb2FjaFxuICAvLyBQcmV2aW91c2x5OiBNdWx0aXBsZSByZXBsYWNlKCkgb3BlcmF0aW9ucyB3aXRoIHVuYm91bmRlZCBxdWFudGlmaWVycyBjb3VsZCBjYXVzZSBleHBvbmVudGlhbCBiYWNrdHJhY2tpbmdcbiAgLy8gTm93OiBTaW5nbGUtcGFzcyB0cmFuc2Zvcm1hdGlvbiB3aXRoIGJ1aWx0LWluIGxlbmd0aCBsaW1pdFxuICBjb25zdCBub3JtYWxpemVkID0gcGVyc29uYU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgY29uc3Qgc2FuaXRpemVkTmFtZSA9IG5vcm1hbGl6ZWRcbiAgICAuc3BsaXQoJycpXG4gICAgLm1hcChjaGFyID0+IEFMUEhBTlVNRVJJQ19SRUdFWC50ZXN0KGNoYXIpID8gY2hhciA6ICctJylcbiAgICAuam9pbignJylcbiAgICAuc3Vic3RyaW5nKDAsIDEwMCkgLy8gTGltaXQgYWZ0ZXIgdHJhbnNmb3JtYXRpb24gdG8gcHJlc2VydmUgc3RydWN0dXJlXG4gICAgLnJlcGxhY2VBbGwoLyheLSspfCgtKyQpL2csICcnKSAvLyBPbmx5IHRyaW0gbGVhZGluZy90cmFpbGluZyBoeXBoZW5zXG4gICAgLnJlcGxhY2VBbGwoLy17Mix9L2csICctJyk7IC8vIENvbGxhcHNlIG11bHRpcGxlIGh5cGhlbnNcbiAgY29uc3Qgd2hvTWFkZUl0ID0gYXV0aG9yIHx8IGdlbmVyYXRlQW5vbnltb3VzSWQoKTtcbiAgXG4gIHJldHVybiBgJHtzYW5pdGl6ZWROYW1lfV8ke2RhdGVTdHJ9LSR7dGltZVN0cn1fJHt3aG9NYWRlSXR9YDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHRleHQgdG8gVVJMLXNhZmUgc2x1Z1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2x1Z2lmeSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBTRUNVUklUWSBGSVg6IFByZXZlbnQgUmVEb1MgYnkgdXNpbmcgYSBzaW5nbGUtcGFzcyBhcHByb2FjaFxuICAvLyBQcmV2aW91c2x5OiBNdWx0aXBsZSByZXBsYWNlKCkgb3BlcmF0aW9ucyB3aXRoIHVuYm91bmRlZCBxdWFudGlmaWVycyBjb3VsZCBjYXVzZSBleHBvbmVudGlhbCBiYWNrdHJhY2tpbmdcbiAgLy8gTm93OiBTaW5nbGUtcGFzcyB0cmFuc2Zvcm1hdGlvbiB3aXRoIGJ1aWx0LWluIGxlbmd0aCBsaW1pdFxuICBjb25zdCBub3JtYWxpemVkID0gdGV4dC50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCB0cmFuc2Zvcm1lZCA9IG5vcm1hbGl6ZWRcbiAgICAuc3BsaXQoJycpXG4gICAgLm1hcChjaGFyID0+IEFMUEhBTlVNRVJJQ19SRUdFWC50ZXN0KGNoYXIpID8gY2hhciA6ICctJylcbiAgICAuam9pbignJyk7XG4gIFxuICAvLyBTRUNVUklUWSBGSVg6IEF2b2lkIHBvbHlub21pYWwgcmVnZXggYnkgdXNpbmcgc2VwYXJhdGUgb3BlcmF0aW9uc1xuICAvLyBUcmltIGxlYWRpbmcgaHlwaGVuc1xuICBsZXQgc3RhcnQgPSAwO1xuICB3aGlsZSAoc3RhcnQgPCB0cmFuc2Zvcm1lZC5sZW5ndGggJiYgdHJhbnNmb3JtZWRbc3RhcnRdID09PSAnLScpIHtcbiAgICBzdGFydCsrO1xuICB9XG4gIFxuICAvLyBUcmltIHRyYWlsaW5nIGh5cGhlbnNcbiAgbGV0IGVuZCA9IHRyYW5zZm9ybWVkLmxlbmd0aCAtIDE7XG4gIHdoaWxlIChlbmQgPj0gc3RhcnQgJiYgdHJhbnNmb3JtZWRbZW5kXSA9PT0gJy0nKSB7XG4gICAgZW5kLS07XG4gIH1cbiAgXG4gIC8vIEV4dHJhY3QgdGhlIHRyaW1tZWQgcG9ydGlvbiBhbmQgY29sbGFwc2UgbXVsdGlwbGUgaHlwaGVuc1xuICBjb25zdCB0cmltbWVkID0gdHJhbnNmb3JtZWQuc2xpY2Uoc3RhcnQsIGVuZCArIDEpO1xuICByZXR1cm4gdHJpbW1lZC5yZXBsYWNlQWxsKC8tezIsfS9nLCAnLScpOyAvLyBUaGlzIGlzIHNhZmUgYXMgaXQncyBsaW5lYXJcbn1cblxuLyoqXG4gKiBFbnN1cmUgYSBkaXJlY3RvcnkgZXhpc3RzLCBjcmVhdGUgaWYgaXQgZG9lc24ndFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5zdXJlRGlyZWN0b3J5KGRpclBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICB0cnkge1xuICAgIGF3YWl0IGZzLmFjY2VzcyhkaXJQYXRoKTtcbiAgfSBjYXRjaCB7XG4gICAgYXdhaXQgZnMubWtkaXIoZGlyUGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGZpbGUgZXhpc3RzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmaWxlRXhpc3RzKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy5hY2Nlc3MoZmlsZVBhdGgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgZmlsZSBzaXplIGluIGJ5dGVzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGaWxlU2l6ZShmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3Qgc3RhdHMgPSBhd2FpdCBmcy5zdGF0KGZpbGVQYXRoKTtcbiAgcmV0dXJuIHN0YXRzLnNpemU7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYmFja3VwIG9mIGEgZGlyZWN0b3J5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVCYWNrdXAoc291cmNlUGF0aDogc3RyaW5nLCBiYWNrdXBQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gRW5zdXJlIGJhY2t1cCBkaXJlY3RvcnkgZXhpc3RzXG4gIGNvbnN0IGJhY2t1cERpciA9IHBhdGguZGlybmFtZShiYWNrdXBQYXRoKTtcbiAgYXdhaXQgZW5zdXJlRGlyZWN0b3J5KGJhY2t1cERpcik7XG4gIFxuICAvLyBDb3B5IGRpcmVjdG9yeSByZWN1cnNpdmVseVxuICBhd2FpdCBmcy5jcChzb3VyY2VQYXRoLCBiYWNrdXBQYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn0iXX0=
@@ -20,7 +20,7 @@ export function normalizeSearchTerm(term, maxLength = 1000) {
20
20
  throw new Error(`Search term exceeds maximum length of ${maxLength} characters`);
21
21
  }
22
22
  return cleanTerm.toLowerCase()
23
- .replace(/[-_\s]+/g, ' ') // Convert dashes, underscores to spaces
23
+ .replaceAll(/[-_\s]+/g, ' ') // Convert dashes, underscores to spaces
24
24
  .replace(/\.md$/, '') // Remove .md extension
25
25
  .trim();
26
26
  }
@@ -115,4 +115,4 @@ export function debugNormalization(originalTerm) {
115
115
  partialMatch: normalizeForPartialMatch(originalTerm)
116
116
  };
117
117
  }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc2VhcmNoVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUU5RTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxJQUFZLEVBQUUsWUFBb0IsSUFBSTtJQUN4RSwrREFBK0Q7SUFDL0QsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztJQUUvQyxzREFBc0Q7SUFDdEQsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLFNBQVMsYUFBYSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDLFdBQVcsRUFBRTtTQUMzQixPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFFLHdDQUF3QztTQUNsRSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFPLHVCQUF1QjtTQUNsRCxJQUFJLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxJQUFZLEVBQUUsWUFBb0IsSUFBSTtJQUM3RSwrREFBK0Q7SUFDL0QsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztJQUUvQyxzREFBc0Q7SUFDdEQsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMs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ZnVuY3Rpb25hbGl0eVxuICovXG5cbmltcG9ydCB7IFVuaWNvZGVWYWxpZGF0b3IgfSBmcm9tICcuLi9zZWN1cml0eS92YWxpZGF0b3JzL3VuaWNvZGVWYWxpZGF0b3IuanMnO1xuXG4vKipcbiAqIE5vcm1hbGl6ZSBzZWFyY2ggdGVybXMgZm9yIGJldHRlciBtYXRjaGluZ1xuICogSGFuZGxlcyBzcGFjZXMsIGRhc2hlcywgdW5kZXJzY29yZXMsIGFuZCBmaWxlIGV4dGVuc2lvbnNcbiAqIFxuICogQHBhcmFtIHRlcm0gLSBUaGUgc2VhcmNoIHRlcm0gdG8gbm9ybWFsaXplXG4gKiBAcGFyYW0gbWF4TGVuZ3RoIC0gTWF4aW11bSBhbGxvd2VkIGxlbmd0aCBmb3IgdGhlIHNlYXJjaCB0ZXJtIChkZWZhdWx0OiAxMDAwKVxuICogQHJldHVybnMgTm9ybWFsaXplZCBzZWFyY2ggdGVybVxuICogQHRocm93cyBFcnJvciBpZiB0ZXJtIGV4Y2VlZHMgbWF4TGVuZ3RoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVTZWFyY2hUZXJtKHRlcm06IHN0cmluZywgbWF4TGVuZ3RoOiBudW1iZXIgPSAxMDAwKTogc3RyaW5nIHtcbiAgLy8gU0VDVVJJVFkgRklYOiBOb3JtYWxpemUgVW5pY29kZSB0byBwcmV2ZW50IGhvbW9ncmFwaCBhdHRhY2tzXG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSh0ZXJtKTtcbiAgY29uc3QgY2xlYW5UZXJtID0gbm9ybWFsaXplZC5ub3JtYWxpemVkQ29udGVudDtcbiAgXG4gIC8vIFNlY3VyaXR5OiBMaW1pdCBpbnB1dCBsZW5ndGggdG8gcHJldmVudCBEb1MgYXR0YWNrc1xuICBpZiAoY2xlYW5UZXJtLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU2VhcmNoIHRlcm0gZXhjZWVkcyBtYXhpbXVtIGxlbmd0aCBvZiAke21heExlbmd0aH0gY2hhcmFjdGVyc2ApO1xuICB9XG4gIFxuICByZXR1cm4gY2xlYW5UZXJtLnRvTG93ZXJDYXNlKClcbiAgICAucmVwbGFjZSgvWy1fXFxzXSsvZywgJyAnKSAgLy8gQ29udmVydCBkYXNoZXMsIHVuZGVyc2NvcmVzIHRvIHNwYWNlc1xuICAgIC5yZXBsYWNlKC9cXC5tZCQvLCAnJykgICAgICAgLy8gUmVtb3ZlIC5tZCBleHRlbnNpb25cbiAgICAudHJpbSgpO1xufVxuXG4vKipcbiAqIFByZXNlcnZlIG9yaWdpbmFsIHN0cnVjdHVyZSBmb3IgcGFydGlhbCBtYXRjaGluZ1xuICogTGVzcyBhZ2dyZXNzaXZlIG5vcm1hbGl6YXRpb24gdGhhdCBrZWVwcyBvcmlnaW5hbCBzZXBhcmF0b3JzIGZvciBwYXJ0aWFsIHNlYXJjaGVzXG4gKiBcbiAqIEBwYXJhbSB0ZXJtIC0gVGhlIHNlYXJjaCB0ZXJtIHRvIG5vcm1hbGl6ZVxuICogQHBhcmFtIG1heExlbmd0aCAtIE1heGltdW0gYWxsb3dlZCBsZW5ndGggZm9yIHRoZSBzZWFyY2ggdGVybSAoZGVmYXVsdDogMTAwMClcbiAqIEByZXR1cm5zIE5vcm1hbGl6ZWQgc2VhcmNoIHRlcm0gd2l0aCBwcmVzZXJ2ZWQgc3RydWN0dXJlXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRlcm0gZXhjZWVkcyBtYXhMZW5ndGhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUZvclBhcnRpYWxNYXRjaCh0ZXJtOiBzdHJpbmcsIG1heExlbmd0aDogbnVtYmVyID0gMTAwMCk6IHN0cmluZyB7XG4gIC8vIFNFQ1VSSVRZIEZJWDogTm9ybWFsaXplIFVuaWNvZGUgdG8gcHJldmVudCBob21vZ3JhcGggYXR0YWNrc1xuICBjb25zdCBub3JtYWxpemVkID0gVW5pY29kZVZhbGlkYXRvci5ub3JtYWxpemUodGVybSk7XG4gIGNvbnN0IGNsZWFuVGVybSA9IG5vcm1hbGl6ZWQubm9ybWFsaXplZENvbnRlbnQ7XG4gIFxuICAvLyBTZWN1cml0eTogTGltaXQgaW5wdXQgbGVuZ3RoIHRvIHByZXZlbnQgRG9TIGF0dGFja3NcbiAgaWYgKGNsZWFuVGVybS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNlYXJjaCB0ZXJtIGV4Y2VlZHMgbWF4aW11bSBsZW5ndGggb2YgJHttYXhMZW5ndGh9IGNoYXJhY3RlcnNgKTtcbiAgfVxuICBcbiAgcmV0dXJuIGNsZWFuVGVybS50b0xvd2VyQ2FzZSgpXG4gICAgLnJlcGxhY2UoL1xcLm1kJC8sICcnKSAgICAgICAvLyBSZW1vdmUgLm1kIGV4dGVuc2lvbiBvbmx5XG4gICAgLnRyaW0oKTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHNlYXJjaCB0ZXJtIG1hdGNoZXMgYSB0YXJnZXQgc3RyaW5nIHdpdGggbXVsdGlwbGUgc3RyYXRlZ2llc1xuICogVXNlcyBib3RoIG5vcm1hbGl6ZWQgbWF0Y2hpbmcgYW5kIHBhcnRpYWwgbWF0Y2hpbmcgZm9yIGJldHRlciByZXN1bHRzXG4gKiBcbiAqIEBwYXJhbSBzZWFyY2hUZXJtIC0gVGhlIHRlcm0gYmVpbmcgc2VhcmNoZWQgZm9yXG4gKiBAcGFyYW0gdGFyZ2V0U3RyaW5nIC0gVGhlIHN0cmluZyB0byBzZWFyY2ggaW5cbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlcmUncyBhIG1hdGNoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlYXJjaE1hdGNoKHNlYXJjaFRlcm06IHN0cmluZywgdGFyZ2V0U3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gU3RyYXRlZ3kgMTogRXhhY3Qgbm9ybWFsaXplZCBtYXRjaGluZ1xuICBjb25zdCBub3JtYWxpemVkU2VhcmNoID0gbm9ybWFsaXplU2VhcmNoVGVybShzZWFyY2hUZXJtKTtcbiAgY29uc3Qgbm9ybWFsaXplZFRhcmdldCA9IG5vcm1hbGl6ZVNlYXJjaFRlcm0odGFyZ2V0U3RyaW5nKTtcbiAgaWYgKG5vcm1hbGl6ZWRUYXJnZXQuaW5jbHVkZXMobm9ybWFsaXplZFNlYXJjaCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBcbiAgLy8gU3RyYXRlZ3kgMjogUGFydGlhbCBtYXRjaGluZyB3aXRoIHByZXNlcnZlZCBzdHJ1Y3R1cmVcbiAgY29uc3QgcGFydGlhbFNlYXJjaCA9IG5vcm1hbGl6ZUZvclBhcnRpYWxNYXRjaChzZWFyY2hUZXJtKTtcbiAgY29uc3QgcGFydGlhbFRhcmdldCA9IG5vcm1hbGl6ZUZvclBhcnRpYWxNYXRjaCh0YXJnZXRTdHJpbmcpO1xuICBpZiAocGFydGlhbFRhcmdldC5pbmNsdWRlcyhwYXJ0aWFsU2VhcmNoKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIFxuICAvLyBTdHJhdGVneSAzOiBXb3JkLWJvdW5kYXJ5IG1hdGNoaW5nXG4gIGNvbnN0IHNlYXJjaFdvcmRzID0gbm9ybWFsaXplZFNlYXJjaC5zcGxpdCgvXFxzKy8pO1xuICBjb25zdCB0YXJnZXRXb3JkcyA9IG5vcm1hbGl6ZWRUYXJnZXQuc3BsaXQoL1xccysvKTtcbiAgcmV0dXJuIHNlYXJjaFdvcmRzLnNvbWUoc2VhcmNoV29yZCA9PiBcbiAgICB0YXJnZXRXb3Jkcy5zb21lKHRhcmdldFdvcmQgPT4gdGFyZ2V0V29yZC5pbmNsdWRlcyhzZWFyY2hXb3JkKSlcbiAgKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBzZWFyY2ggcXVlcnkgbGVuZ3RoIGFuZCBjb250ZW50XG4gKiBcbiAqIEBwYXJhbSBxdWVyeSAtIFRoZSBzZWFyY2ggcXVlcnkgdG8gdmFsaWRhdGVcbiAqIEBwYXJhbSBtYXhMZW5ndGggLSBNYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIChkZWZhdWx0OiAxMDAwKVxuICogQHJldHVybnMgdHJ1ZSBpZiB2YWxpZFxuICogQHRocm93cyBFcnJvciB3aXRoIGRlc2NyaXB0aXZlIG1lc3NhZ2UgaWYgaW52YWxpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTZWFyY2hRdWVyeShxdWVyeTogc3RyaW5nLCBtYXhMZW5ndGg6IG51bWJlciA9IDEwMDApOiBib29sZWFuIHtcbiAgaWYgKCFxdWVyeSB8fCBxdWVyeS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTZWFyY2ggcXVlcnkgY2Fubm90IGJlIGVtcHR5Jyk7XG4gIH1cbiAgXG4gIC8vIFNFQ1VSSVRZIEZJWDogTm9ybWFsaXplIFVuaWNvZGUgYmVmb3JlIHZhbGlkYXRpb25cbiAgY29uc3Qgbm9ybWFsaXplZCA9IFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKHF1ZXJ5KTtcbiAgY29uc3QgY2xlYW5RdWVyeSA9IG5vcm1hbGl6ZWQubm9ybWFsaXplZENvbnRlbnQ7XG4gIFxuICBpZiAoY2xlYW5RdWVyeS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNlYXJjaCBxdWVyeSBleGNlZWRzIG1heGltdW0gbGVuZ3RoIG9mICR7bWF4TGVuZ3RofSBjaGFyYWN0ZXJzYCk7XG4gIH1cbiAgXG4gIC8vIENoZWNrIGZvciBwb3RlbnRpYWwgaW5qZWN0aW9uIHBhdHRlcm5zIChiYXNpYyB2YWxpZGF0aW9uKVxuICBjb25zdCBkYW5nZXJvdXNQYXR0ZXJucyA9IFtcbiAgICAvW1xcdTAwMDAtXFx1MDAxRlxcdTAwN0ZdLywgIC8vIE5PU09OQVIgLSBDb250cm9sIGNoYXJhY3RlcnMgY2hlY2sgZm9yIHNlY3VyaXR5XG4gICAgL1s8Pl0vLCAgICAgICAgICAgICAvLyBQb3RlbnRpYWwgSFRNTC9YTUwgaW5qZWN0aW9uXG4gIF07XG4gIFxuICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgZGFuZ2Vyb3VzUGF0dGVybnMpIHtcbiAgICBpZiAocGF0dGVybi50ZXN0KGNsZWFuUXVlcnkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlYXJjaCBxdWVyeSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMnKTtcbiAgICB9XG4gIH1cbiAgXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIERlYnVnIGZ1bmN0aW9uIHRvIHNob3cgaG93IHNlYXJjaCB0ZXJtcyBhcmUgbm9ybWFsaXplZFxuICogSGVscHMgdHJvdWJsZXNob290IHNlYXJjaCBtYXRjaGluZyBpc3N1ZXNcbiAqIFxuICogQHBhcmFtIG9yaWdpbmFsVGVybSAtIFRoZSBvcmlnaW5hbCBzZWFyY2ggdGVybVxuICogQHJldHVybnMgT2JqZWN0IHdpdGggZGlmZmVyZW50IG5vcm1hbGl6YXRpb24gcmVzdWx0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGVidWdOb3JtYWxpemF0aW9uKG9yaWdpbmFsVGVybTogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgb3JpZ2luYWw6IG9yaWdpbmFsVGVybSxcbiAgICBub3JtYWxpemVkOiBub3JtYWxpemVTZWFyY2hUZXJtKG9yaWdpbmFsVGVybSksXG4gICAgcGFydGlhbE1hdGNoOiBub3JtYWxpemVGb3JQYXJ0aWFsTWF0Y2gob3JpZ2luYWxUZXJtKVxuICB9O1xufSJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc2VhcmNoVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUU5RTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxJQUFZLEVBQUUsWUFBb0IsSUFBSTtJQUN4RSwrREFBK0Q7SUFDL0QsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztJQUUvQyxzREFBc0Q7SUFDdEQsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLFNBQVMsYUFBYSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDLFdBQVcsRUFBRTtTQUMzQixVQUFVLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFFLHdDQUF3QztTQUNyRSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFPLHVCQUF1QjtTQUNsRCxJQUFJLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxJQUFZLEVBQUUsWUFBb0IsSUFBSTtJQUM3RSwrREFBK0Q7SUFDL0QsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztJQUUvQyxzREFBc0Q7SUFDdEQsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMs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ZnVuY3Rpb25hbGl0eVxuICovXG5cbmltcG9ydCB7IFVuaWNvZGVWYWxpZGF0b3IgfSBmcm9tICcuLi9zZWN1cml0eS92YWxpZGF0b3JzL3VuaWNvZGVWYWxpZGF0b3IuanMnO1xuXG4vKipcbiAqIE5vcm1hbGl6ZSBzZWFyY2ggdGVybXMgZm9yIGJldHRlciBtYXRjaGluZ1xuICogSGFuZGxlcyBzcGFjZXMsIGRhc2hlcywgdW5kZXJzY29yZXMsIGFuZCBmaWxlIGV4dGVuc2lvbnNcbiAqIFxuICogQHBhcmFtIHRlcm0gLSBUaGUgc2VhcmNoIHRlcm0gdG8gbm9ybWFsaXplXG4gKiBAcGFyYW0gbWF4TGVuZ3RoIC0gTWF4aW11bSBhbGxvd2VkIGxlbmd0aCBmb3IgdGhlIHNlYXJjaCB0ZXJtIChkZWZhdWx0OiAxMDAwKVxuICogQHJldHVybnMgTm9ybWFsaXplZCBzZWFyY2ggdGVybVxuICogQHRocm93cyBFcnJvciBpZiB0ZXJtIGV4Y2VlZHMgbWF4TGVuZ3RoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVTZWFyY2hUZXJtKHRlcm06IHN0cmluZywgbWF4TGVuZ3RoOiBudW1iZXIgPSAxMDAwKTogc3RyaW5nIHtcbiAgLy8gU0VDVVJJVFkgRklYOiBOb3JtYWxpemUgVW5pY29kZSB0byBwcmV2ZW50IGhvbW9ncmFwaCBhdHRhY2tzXG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSh0ZXJtKTtcbiAgY29uc3QgY2xlYW5UZXJtID0gbm9ybWFsaXplZC5ub3JtYWxpemVkQ29udGVudDtcbiAgXG4gIC8vIFNlY3VyaXR5OiBMaW1pdCBpbnB1dCBsZW5ndGggdG8gcHJldmVudCBEb1MgYXR0YWNrc1xuICBpZiAoY2xlYW5UZXJtLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU2VhcmNoIHRlcm0gZXhjZWVkcyBtYXhpbXVtIGxlbmd0aCBvZiAke21heExlbmd0aH0gY2hhcmFjdGVyc2ApO1xuICB9XG4gIFxuICByZXR1cm4gY2xlYW5UZXJtLnRvTG93ZXJDYXNlKClcbiAgICAucmVwbGFjZUFsbCgvWy1fXFxzXSsvZywgJyAnKSAgLy8gQ29udmVydCBkYXNoZXMsIHVuZGVyc2NvcmVzIHRvIHNwYWNlc1xuICAgIC5yZXBsYWNlKC9cXC5tZCQvLCAnJykgICAgICAgLy8gUmVtb3ZlIC5tZCBleHRlbnNpb25cbiAgICAudHJpbSgpO1xufVxuXG4vKipcbiAqIFByZXNlcnZlIG9yaWdpbmFsIHN0cnVjdHVyZSBmb3IgcGFydGlhbCBtYXRjaGluZ1xuICogTGVzcyBhZ2dyZXNzaXZlIG5vcm1hbGl6YXRpb24gdGhhdCBrZWVwcyBvcmlnaW5hbCBzZXBhcmF0b3JzIGZvciBwYXJ0aWFsIHNlYXJjaGVzXG4gKiBcbiAqIEBwYXJhbSB0ZXJtIC0gVGhlIHNlYXJjaCB0ZXJtIHRvIG5vcm1hbGl6ZVxuICogQHBhcmFtIG1heExlbmd0aCAtIE1heGltdW0gYWxsb3dlZCBsZW5ndGggZm9yIHRoZSBzZWFyY2ggdGVybSAoZGVmYXVsdDogMTAwMClcbiAqIEByZXR1cm5zIE5vcm1hbGl6ZWQgc2VhcmNoIHRlcm0gd2l0aCBwcmVzZXJ2ZWQgc3RydWN0dXJlXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRlcm0gZXhjZWVkcyBtYXhMZW5ndGhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUZvclBhcnRpYWxNYXRjaCh0ZXJtOiBzdHJpbmcsIG1heExlbmd0aDogbnVtYmVyID0gMTAwMCk6IHN0cmluZyB7XG4gIC8vIFNFQ1VSSVRZIEZJWDogTm9ybWFsaXplIFVuaWNvZGUgdG8gcHJldmVudCBob21vZ3JhcGggYXR0YWNrc1xuICBjb25zdCBub3JtYWxpemVkID0gVW5pY29kZVZhbGlkYXRvci5ub3JtYWxpemUodGVybSk7XG4gIGNvbnN0IGNsZWFuVGVybSA9IG5vcm1hbGl6ZWQubm9ybWFsaXplZENvbnRlbnQ7XG4gIFxuICAvLyBTZWN1cml0eTogTGltaXQgaW5wdXQgbGVuZ3RoIHRvIHByZXZlbnQgRG9TIGF0dGFja3NcbiAgaWYgKGNsZWFuVGVybS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNlYXJjaCB0ZXJtIGV4Y2VlZHMgbWF4aW11bSBsZW5ndGggb2YgJHttYXhMZW5ndGh9IGNoYXJhY3RlcnNgKTtcbiAgfVxuICBcbiAgcmV0dXJuIGNsZWFuVGVybS50b0xvd2VyQ2FzZSgpXG4gICAgLnJlcGxhY2UoL1xcLm1kJC8sICcnKSAgICAgICAvLyBSZW1vdmUgLm1kIGV4dGVuc2lvbiBvbmx5XG4gICAgLnRyaW0oKTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHNlYXJjaCB0ZXJtIG1hdGNoZXMgYSB0YXJnZXQgc3RyaW5nIHdpdGggbXVsdGlwbGUgc3RyYXRlZ2llc1xuICogVXNlcyBib3RoIG5vcm1hbGl6ZWQgbWF0Y2hpbmcgYW5kIHBhcnRpYWwgbWF0Y2hpbmcgZm9yIGJldHRlciByZXN1bHRzXG4gKiBcbiAqIEBwYXJhbSBzZWFyY2hUZXJtIC0gVGhlIHRlcm0gYmVpbmcgc2VhcmNoZWQgZm9yXG4gKiBAcGFyYW0gdGFyZ2V0U3RyaW5nIC0gVGhlIHN0cmluZyB0byBzZWFyY2ggaW5cbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlcmUncyBhIG1hdGNoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlYXJjaE1hdGNoKHNlYXJjaFRlcm06IHN0cmluZywgdGFyZ2V0U3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gU3RyYXRlZ3kgMTogRXhhY3Qgbm9ybWFsaXplZCBtYXRjaGluZ1xuICBjb25zdCBub3JtYWxpemVkU2VhcmNoID0gbm9ybWFsaXplU2VhcmNoVGVybShzZWFyY2hUZXJtKTtcbiAgY29uc3Qgbm9ybWFsaXplZFRhcmdldCA9IG5vcm1hbGl6ZVNlYXJjaFRlcm0odGFyZ2V0U3RyaW5nKTtcbiAgaWYgKG5vcm1hbGl6ZWRUYXJnZXQuaW5jbHVkZXMobm9ybWFsaXplZFNlYXJjaCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBcbiAgLy8gU3RyYXRlZ3kgMjogUGFydGlhbCBtYXRjaGluZyB3aXRoIHByZXNlcnZlZCBzdHJ1Y3R1cmVcbiAgY29uc3QgcGFydGlhbFNlYXJjaCA9IG5vcm1hbGl6ZUZvclBhcnRpYWxNYXRjaChzZWFyY2hUZXJtKTtcbiAgY29uc3QgcGFydGlhbFRhcmdldCA9IG5vcm1hbGl6ZUZvclBhcnRpYWxNYXRjaCh0YXJnZXRTdHJpbmcpO1xuICBpZiAocGFydGlhbFRhcmdldC5pbmNsdWRlcyhwYXJ0aWFsU2VhcmNoKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIFxuICAvLyBTdHJhdGVneSAzOiBXb3JkLWJvdW5kYXJ5IG1hdGNoaW5nXG4gIGNvbnN0IHNlYXJjaFdvcmRzID0gbm9ybWFsaXplZFNlYXJjaC5zcGxpdCgvXFxzKy8pO1xuICBjb25zdCB0YXJnZXRXb3JkcyA9IG5vcm1hbGl6ZWRUYXJnZXQuc3BsaXQoL1xccysvKTtcbiAgcmV0dXJuIHNlYXJjaFdvcmRzLnNvbWUoc2VhcmNoV29yZCA9PiBcbiAgICB0YXJnZXRXb3Jkcy5zb21lKHRhcmdldFdvcmQgPT4gdGFyZ2V0V29yZC5pbmNsdWRlcyhzZWFyY2hXb3JkKSlcbiAgKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBzZWFyY2ggcXVlcnkgbGVuZ3RoIGFuZCBjb250ZW50XG4gKiBcbiAqIEBwYXJhbSBxdWVyeSAtIFRoZSBzZWFyY2ggcXVlcnkgdG8gdmFsaWRhdGVcbiAqIEBwYXJhbSBtYXhMZW5ndGggLSBNYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIChkZWZhdWx0OiAxMDAwKVxuICogQHJldHVybnMgdHJ1ZSBpZiB2YWxpZFxuICogQHRocm93cyBFcnJvciB3aXRoIGRlc2NyaXB0aXZlIG1lc3NhZ2UgaWYgaW52YWxpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTZWFyY2hRdWVyeShxdWVyeTogc3RyaW5nLCBtYXhMZW5ndGg6IG51bWJlciA9IDEwMDApOiBib29sZWFuIHtcbiAgaWYgKCFxdWVyeSB8fCBxdWVyeS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTZWFyY2ggcXVlcnkgY2Fubm90IGJlIGVtcHR5Jyk7XG4gIH1cbiAgXG4gIC8vIFNFQ1VSSVRZIEZJWDogTm9ybWFsaXplIFVuaWNvZGUgYmVmb3JlIHZhbGlkYXRpb25cbiAgY29uc3Qgbm9ybWFsaXplZCA9IFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKHF1ZXJ5KTtcbiAgY29uc3QgY2xlYW5RdWVyeSA9IG5vcm1hbGl6ZWQubm9ybWFsaXplZENvbnRlbnQ7XG4gIFxuICBpZiAoY2xlYW5RdWVyeS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNlYXJjaCBxdWVyeSBleGNlZWRzIG1heGltdW0gbGVuZ3RoIG9mICR7bWF4TGVuZ3RofSBjaGFyYWN0ZXJzYCk7XG4gIH1cbiAgXG4gIC8vIENoZWNrIGZvciBwb3RlbnRpYWwgaW5qZWN0aW9uIHBhdHRlcm5zIChiYXNpYyB2YWxpZGF0aW9uKVxuICBjb25zdCBkYW5nZXJvdXNQYXR0ZXJucyA9IFtcbiAgICAvW1xcdTAwMDAtXFx1MDAxRlxcdTAwN0ZdLywgIC8vIE5PU09OQVIgLSBDb250cm9sIGNoYXJhY3RlcnMgY2hlY2sgZm9yIHNlY3VyaXR5XG4gICAgL1s8Pl0vLCAgICAgICAgICAgICAvLyBQb3RlbnRpYWwgSFRNTC9YTUwgaW5qZWN0aW9uXG4gIF07XG4gIFxuICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgZGFuZ2Vyb3VzUGF0dGVybnMpIHtcbiAgICBpZiAocGF0dGVybi50ZXN0KGNsZWFuUXVlcnkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlYXJjaCBxdWVyeSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMnKTtcbiAgICB9XG4gIH1cbiAgXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIERlYnVnIGZ1bmN0aW9uIHRvIHNob3cgaG93IHNlYXJjaCB0ZXJtcyBhcmUgbm9ybWFsaXplZFxuICogSGVscHMgdHJvdWJsZXNob290IHNlYXJjaCBtYXRjaGluZyBpc3N1ZXNcbiAqIFxuICogQHBhcmFtIG9yaWdpbmFsVGVybSAtIFRoZSBvcmlnaW5hbCBzZWFyY2ggdGVybVxuICogQHJldHVybnMgT2JqZWN0IHdpdGggZGlmZmVyZW50IG5vcm1hbGl6YXRpb24gcmVzdWx0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGVidWdOb3JtYWxpemF0aW9uKG9yaWdpbmFsVGVybTogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgb3JpZ2luYWw6IG9yaWdpbmFsVGVybSxcbiAgICBub3JtYWxpemVkOiBub3JtYWxpemVTZWFyY2hUZXJtKG9yaWdpbmFsVGVybSksXG4gICAgcGFydGlhbE1hdGNoOiBub3JtYWxpemVGb3JQYXJ0aWFsTWF0Y2gob3JpZ2luYWxUZXJtKVxuICB9O1xufSJdfQ==
@@ -13,8 +13,8 @@ export function compareVersions(version1, version2) {
13
13
  const [v1main, v1pre] = v1.split('-');
14
14
  const [v2main, v2pre] = v2.split('-');
15
15
  // Compare main version parts (x.y.z)
16
- const v1parts = v1main.split('.').map(part => parseInt(part) || 0);
17
- const v2parts = v2main.split('.').map(part => parseInt(part) || 0);
16
+ const v1parts = v1main.split('.').map(part => Number.parseInt(part) || 0);
17
+ const v2parts = v2main.split('.').map(part => Number.parseInt(part) || 0);
18
18
  const maxLength = Math.max(v1parts.length, v2parts.length);
19
19
  for (let i = 0; i < maxLength; i++) {
20
20
  const v1part = v1parts[i] || 0;
@@ -94,4 +94,4 @@ export function validateDependencyVersion(actualVersion, requirements, toolName)
94
94
  }
95
95
  return { valid: true };
96
96
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO0lBQ2hFLDRDQUE0QztJQUM1QyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0QyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV0QyxzQ0FBc0M7SUFDdEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV0QyxxQ0FBcUM7SUFDckMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFbkUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxFQUFFLENBQUMs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QUN0QixPQUFPO1lBQ0wsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLEVBQUUsR0FBRyxRQUFRLFlBQVksYUFBYSxvQ0FBb0MsWUFBWSxDQUFDLE9BQU8sRUFBRTtTQUN0RyxDQUFDO0lBQ0osQ0FBQztJQUVELHdDQUF3QztJQUN4QyxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvRSxJQUFJLGFBQWEsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUk7WUFDWCxPQUFPLEVBQUUsR0FBRyxRQUFRLFlBQVksYUFBYSxjQUFjLFlBQVksQ0FBQyxXQUFXLHVDQUF1QztTQUMzSCxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVmVyc2lvbiBjb21wYXJpc29uIGFuZCBwYXJzaW5nIHV0aWxpdGllc1xuICovXG5cbi8qKlxuICogQ29tcGFyZSB0d28gc2VtYW50aWMgdmVyc2lvbnNcbiAqIEByZXR1cm5zIC0xIGlmIHZlcnNpb24xIDwgdmVyc2lvbjIsIDAgaWYgZXF1YWwsIDEgaWYgdmVyc2lvbjEgPiB2ZXJzaW9uMlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZVZlcnNpb25zKHZlcnNpb24xOiBzdHJpbmcsIHZlcnNpb24yOiBzdHJpbmcpOiBudW1iZXIge1xuICAvLyBOb3JtYWxpemUgdmVyc2lvbnMgYnkgcmVtb3ZpbmcgJ3YnIHByZWZpeFxuICBjb25zdCB2MSA9IHZlcnNpb24xLnJlcGxhY2UoL152LywgJycpO1xuICBjb25zdCB2MiA9IHZlcnNpb24yLnJlcGxhY2UoL152LywgJycpO1xuICBcbiAgLy8gU3BsaXQgdmVyc2lvbiBhbmQgcHJlLXJlbGVhc2UgcGFydHNcbiAgY29uc3QgW3YxbWFpbiwgdjFwcmVdID0gdjEuc3BsaXQoJy0nKTtcbiAgY29uc3QgW3YybWFpbiwgdjJwcmVdID0gdjIuc3BsaXQoJy0nKTtcbiAgXG4gIC8vIENvbXBhcmUgbWFpbiB2ZXJzaW9uIHBhcnRzICh4LnkueilcbiAgY29uc3QgdjFwYXJ0cyA9IHYxbWFpbi5zcGxpdCgnLicpLm1hcChwYXJ0ID0+IHBhcnNlSW50KHBhcnQpIHx8IDApO1xuICBjb25zdCB2MnBhcnRzID0gdjJtYWluLnNwbGl0KCcuJykubWFwKHBhcnQgPT4gcGFyc2VJbnQocGFydCkgfHwgMCk7XG4gIFxuICBjb25zdCBtYXhMZW5ndGggPSBNYXRoLm1heCh2MXBhcnRzLmxlbmd0aCwgdjJwYXJ0cy5sZW5ndGgpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG1heExlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgdjFwYXJ0ID0gdjFwYXJ0c1tpXSB8fCAwO1xuICAgIGNvbnN0IHYycGFydCA9IHYycGFydHNbaV0gfHwgMDtcbiAgICBcbiAgICBpZiAodjFwYXJ0IDwgdjJwYXJ0KSByZXR1cm4gLTE7XG4gICAgaWYgKHYxcGFydCA+IHYycGFydCkgcmV0dXJuIDE7XG4gIH1cbiAgXG4gIC8vIElmIG1haW4gdmVyc2lvbnMgYXJlIGVxdWFsLCBjb21wYXJlIHByZS1yZWxlYXNlIHZlcnNpb25zXG4gIC8vIFZlcnNpb24gd2l0aG91dCBwcmUtcmVsZWFzZSBpcyBncmVhdGVyIHRoYW4gdmVyc2lvbiB3aXRoIHByZS1yZWxlYXNlXG4gIGlmICghdjFwcmUgJiYgdjJwcmUpIHJldHVybiAxOyAgIC8vIDEuMC4wID4gMS4wLjAtYmV0YVxuICBpZiAodjFwcmUgJiYgIXYycHJlKSByZXR1cm4gLTE7ICAvLyAxLjAuMC1iZXRhIDwgMS4wLjBcbiAgaWYgKCF2MXByZSAmJiAhdjJwcmUpIHJldHVybiAwOyAgLy8gMS4wLjAgPT0gMS4wLjBcbiAgXG4gIC8vIEJvdGggaGF2ZSBwcmUtcmVsZWFzZSwgY29tcGFyZSBsZXhpY29ncmFwaGljYWxseVxuICByZXR1cm4gdjFwcmUubG9jYWxlQ29tcGFyZSh2MnByZSk7XG59XG5cbi8qKlxuICogUGFyc2UgdmVyc2lvbiBmcm9tIGNvbW1hbmQgb3V0cHV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVZlcnNpb25Gcm9tT3V0cHV0KG91dHB1dDogc3RyaW5nLCB0b29sOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgLy8gR2l0IHZlcnNpb24gb3V0cHV0OiBcImdpdCB2ZXJzaW9uIDIuMzkuMlwiXG4gIC8vIG5wbSB2ZXJzaW9uIG91dHB1dDogXCI4LjE5LjJcIiBvciBKU09OIHdpdGggdmVyc2lvbiBpbmZvXG4gIFxuICBpZiAodG9vbCA9PT0gJ2dpdCcpIHtcbiAgICBjb25zdCBtYXRjaCA9IG91dHB1dC5tYXRjaCgvZ2l0IHZlcnNpb24gKFxcZCtcXC5cXGQrXFwuXFxkKykvKTtcbiAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsxXSA6IG51bGw7XG4gIH0gZWxzZSBpZiAodG9vbCA9PT0gJ25wbScpIHtcbiAgICAvLyBucG0gbWlnaHQgcmV0dXJuIGp1c3QgdGhlIHZlcnNpb24gbnVtYmVyIG9yIEpTT05cbiAgICBjb25zdCBjbGVhbk91dHB1dCA9IG91dHB1dC50cmltKCk7XG4gICAgaWYgKGNsZWFuT3V0cHV0Lm1hdGNoKC9eXFxkK1xcLlxcZCtcXC5cXGQrLykpIHtcbiAgICAgIHJldHVybiBjbGVhbk91dHB1dC5zcGxpdCgnXFxuJylbMF07IC8vIEZpcnN0IGxpbmUgaWYgbXVsdGlwbGUgbGluZXNcbiAgICB9XG4gICAgLy8gVHJ5IHRvIHBhcnNlIGFzIEpTT04gaWYgaXQgbG9va3MgbGlrZSBKU09OXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoY2xlYW5PdXRwdXQpO1xuICAgICAgcmV0dXJuIHBhcnNlZC5ucG0gfHwgcGFyc2VkLnZlcnNpb24gfHwgbnVsbDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIElmIG5vdCBKU09OLCB0cnkgdG8gZXh0cmFjdCB2ZXJzaW9uIHBhdHRlcm5cbiAgICAgIGNvbnN0IG1hdGNoID0gY2xlYW5PdXRwdXQubWF0Y2goLyhcXGQrXFwuXFxkK1xcLlxcZCspLyk7XG4gICAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsxXSA6IG51bGw7XG4gICAgfVxuICB9XG4gIFxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBkZXBlbmRlbmN5IHZlcnNpb24gYWdhaW5zdCByZXF1aXJlbWVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGVwZW5kZW5jeVZlcnNpb24oXG4gIGFjdHVhbFZlcnNpb246IHN0cmluZywgXG4gIHJlcXVpcmVtZW50czogeyBtaW5pbXVtOiBzdHJpbmc7IG1heGltdW06IHN0cmluZzsgcmVjb21tZW5kZWQ6IHN0cmluZyB9LFxuICB0b29sTmFtZTogc3RyaW5nXG4pOiB7IHZhbGlkOiBib29sZWFuOyB3YXJuaW5nPzogc3RyaW5nOyBlcnJvcj86IHN0cmluZyB9IHtcbiAgY29uc3QgbWluQ29tcGFyaXNvbiA9IGNvbXBhcmVWZXJzaW9ucyhhY3R1YWxWZXJzaW9uLCByZXF1aXJlbWVudHMubWluaW11bSk7XG4gIGNvbnN0IG1heENvbXBhcmlzb24gPSBjb21wYXJlVmVyc2lvbnMoYWN0dWFsVmVyc2lvbiwgcmVxdWlyZW1lbnRzLm1heGltdW0pO1xuICBcbiAgLy8gQ2hlY2sgbWluaW11bSB2ZXJzaW9uIHJlcXVpcmVtZW50XG4gIGlmIChtaW5Db21wYXJpc29uIDwgMCkge1xuICAgIHJldHVybiB7XG4gICAgICB2YWxpZDogZmFsc2UsXG4gICAgICBlcnJvcjogYCR7dG9vbE5hbWV9IHZlcnNpb24gJHthY3R1YWxWZXJzaW9ufSBpcyBiZWxvdyBtaW5pbXVtIHJlcXVpcmVkIHZlcnNpb24gJHtyZXF1aXJlbWVudHMubWluaW11bX1gXG4gICAgfTtcbiAgfVxuICBcbiAgLy8gQ2hlY2sgbWF4aW11bSB2ZXJzaW9uIHJlcXVpcmVtZW50XG4gIGlmIChtYXhDb21wYXJpc29uID4gMCkge1xuICAgIHJldHVybiB7XG4gICAgICB2YWxpZDogZmFsc2UsXG4gICAgICBlcnJvcjogYCR7dG9vbE5hbWV9IHZlcnNpb24gJHthY3R1YWxWZXJzaW9ufSBpcyBhYm92ZSBtYXhpbXVtIHRlc3RlZCB2ZXJzaW9uICR7cmVxdWlyZW1lbnRzLm1heGltdW19YFxuICAgIH07XG4gIH1cbiAgXG4gIC8vIENoZWNrIGlmIGl0J3MgdGhlIHJlY29tbWVuZGVkIHZlcnNpb25cbiAgY29uc3QgcmVjQ29tcGFyaXNvbiA9IGNvbXBhcmVWZXJzaW9ucyhhY3R1YWxWZXJzaW9uLCByZXF1aXJlbWVudHMucmVjb21tZW5kZWQpO1xuICBpZiAocmVjQ29tcGFyaXNvbiAhPT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgIHdhcm5pbmc6IGAke3Rvb2xOYW1lfSB2ZXJzaW9uICR7YWN0dWFsVmVyc2lvbn0gd29ya3MgYnV0ICR7cmVxdWlyZW1lbnRzLnJlY29tbWVuZGVkfSBpcyByZWNvbW1lbmRlZCBmb3Igb3B0aW1hbCBzdGFiaWxpdHlgXG4gICAgfTtcbiAgfVxuICBcbiAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbn0iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO0lBQ2hFLDRDQUE0QztJQUM1QyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0QyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV0QyxzQ0FBc0M7SUFDdEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV0QyxxQ0FBcUM7SUFDckMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUUxRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMs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QUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE9BQU87WUFDTCxLQUFLLEVBQUUsS0FBSztZQUNaLEtBQUssRUFBRSxHQUFHLFFBQVEsWUFBWSxhQUFhLG9DQUFvQyxZQUFZLENBQUMsT0FBTyxFQUFFO1NBQ3RHLENBQUM7SUFDSixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9FLElBQUksYUFBYSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSTtZQUNYLE9BQU8sRUFBRSxHQUFHLFFBQVEsWUFBWSxhQUFhLGNBQWMsWUFBWSxDQUFDLFdBQVcsdUNBQXVDO1NBQzNILENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWZXJzaW9uIGNvbXBhcmlzb24gYW5kIHBhcnNpbmcgdXRpbGl0aWVzXG4gKi9cblxuLyoqXG4gKiBDb21wYXJlIHR3byBzZW1hbnRpYyB2ZXJzaW9uc1xuICogQHJldHVybnMgLTEgaWYgdmVyc2lvbjEgPCB2ZXJzaW9uMiwgMCBpZiBlcXVhbCwgMSBpZiB2ZXJzaW9uMSA+IHZlcnNpb24yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlVmVyc2lvbnModmVyc2lvbjE6IHN0cmluZywgdmVyc2lvbjI6IHN0cmluZyk6IG51bWJlciB7XG4gIC8vIE5vcm1hbGl6ZSB2ZXJzaW9ucyBieSByZW1vdmluZyAndicgcHJlZml4XG4gIGNvbnN0IHYxID0gdmVyc2lvbjEucmVwbGFjZSgvXnYvLCAnJyk7XG4gIGNvbnN0IHYyID0gdmVyc2lvbjIucmVwbGFjZSgvXnYvLCAnJyk7XG4gIFxuICAvLyBTcGxpdCB2ZXJzaW9uIGFuZCBwcmUtcmVsZWFzZSBwYXJ0c1xuICBjb25zdCBbdjFtYWluLCB2MXByZV0gPSB2MS5zcGxpdCgnLScpO1xuICBjb25zdCBbdjJtYWluLCB2MnByZV0gPSB2Mi5zcGxpdCgnLScpO1xuICBcbiAgLy8gQ29tcGFyZSBtYWluIHZlcnNpb24gcGFydHMgKHgueS56KVxuICBjb25zdCB2MXBhcnRzID0gdjFtYWluLnNwbGl0KCcuJykubWFwKHBhcnQgPT4gTnVtYmVyLnBhcnNlSW50KHBhcnQpIHx8IDApO1xuICBjb25zdCB2MnBhcnRzID0gdjJtYWluLnNwbGl0KCcuJykubWFwKHBhcnQgPT4gTnVtYmVyLnBhcnNlSW50KHBhcnQpIHx8IDApO1xuICBcbiAgY29uc3QgbWF4TGVuZ3RoID0gTWF0aC5tYXgodjFwYXJ0cy5sZW5ndGgsIHYycGFydHMubGVuZ3RoKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhMZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHYxcGFydCA9IHYxcGFydHNbaV0gfHwgMDtcbiAgICBjb25zdCB2MnBhcnQgPSB2MnBhcnRzW2ldIHx8IDA7XG4gICAgXG4gICAgaWYgKHYxcGFydCA8IHYycGFydCkgcmV0dXJuIC0xO1xuICAgIGlmICh2MXBhcnQgPiB2MnBhcnQpIHJldHVybiAxO1xuICB9XG4gIFxuICAvLyBJZiBtYWluIHZlcnNpb25zIGFyZSBlcXVhbCwgY29tcGFyZSBwcmUtcmVsZWFzZSB2ZXJzaW9uc1xuICAvLyBWZXJzaW9uIHdpdGhvdXQgcHJlLXJlbGVhc2UgaXMgZ3JlYXRlciB0aGFuIHZlcnNpb24gd2l0aCBwcmUtcmVsZWFzZVxuICBpZiAoIXYxcHJlICYmIHYycHJlKSByZXR1cm4gMTsgICAvLyAxLjAuMCA+IDEuMC4wLWJldGFcbiAgaWYgKHYxcHJlICYmICF2MnByZSkgcmV0dXJuIC0xOyAgLy8gMS4wLjAtYmV0YSA8IDEuMC4wXG4gIGlmICghdjFwcmUgJiYgIXYycHJlKSByZXR1cm4gMDsgIC8vIDEuMC4wID09IDEuMC4wXG4gIFxuICAvLyBCb3RoIGhhdmUgcHJlLXJlbGVhc2UsIGNvbXBhcmUgbGV4aWNvZ3JhcGhpY2FsbHlcbiAgcmV0dXJuIHYxcHJlLmxvY2FsZUNvbXBhcmUodjJwcmUpO1xufVxuXG4vKipcbiAqIFBhcnNlIHZlcnNpb24gZnJvbSBjb21tYW5kIG91dHB1dFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VWZXJzaW9uRnJvbU91dHB1dChvdXRwdXQ6IHN0cmluZywgdG9vbDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIC8vIEdpdCB2ZXJzaW9uIG91dHB1dDogXCJnaXQgdmVyc2lvbiAyLjM5LjJcIlxuICAvLyBucG0gdmVyc2lvbiBvdXRwdXQ6IFwiOC4xOS4yXCIgb3IgSlNPTiB3aXRoIHZlcnNpb24gaW5mb1xuICBcbiAgaWYgKHRvb2wgPT09ICdnaXQnKSB7XG4gICAgY29uc3QgbWF0Y2ggPSBvdXRwdXQubWF0Y2goL2dpdCB2ZXJzaW9uIChcXGQrXFwuXFxkK1xcLlxcZCspLyk7XG4gICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiBudWxsO1xuICB9IGVsc2UgaWYgKHRvb2wgPT09ICducG0nKSB7XG4gICAgLy8gbnBtIG1pZ2h0IHJldHVybiBqdXN0IHRoZSB2ZXJzaW9uIG51bWJlciBvciBKU09OXG4gICAgY29uc3QgY2xlYW5PdXRwdXQgPSBvdXRwdXQudHJpbSgpO1xuICAgIGlmIChjbGVhbk91dHB1dC5tYXRjaCgvXlxcZCtcXC5cXGQrXFwuXFxkKy8pKSB7XG4gICAgICByZXR1cm4gY2xlYW5PdXRwdXQuc3BsaXQoJ1xcbicpWzBdOyAvLyBGaXJzdCBsaW5lIGlmIG11bHRpcGxlIGxpbmVzXG4gICAgfVxuICAgIC8vIFRyeSB0byBwYXJzZSBhcyBKU09OIGlmIGl0IGxvb2tzIGxpa2UgSlNPTlxuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKGNsZWFuT3V0cHV0KTtcbiAgICAgIHJldHVybiBwYXJzZWQubnBtIHx8IHBhcnNlZC52ZXJzaW9uIHx8IG51bGw7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBJZiBub3QgSlNPTiwgdHJ5IHRvIGV4dHJhY3QgdmVyc2lvbiBwYXR0ZXJuXG4gICAgICBjb25zdCBtYXRjaCA9IGNsZWFuT3V0cHV0Lm1hdGNoKC8oXFxkK1xcLlxcZCtcXC5cXGQrKS8pO1xuICAgICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiBudWxsO1xuICAgIH1cbiAgfVxuICBcbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgZGVwZW5kZW5jeSB2ZXJzaW9uIGFnYWluc3QgcmVxdWlyZW1lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZURlcGVuZGVuY3lWZXJzaW9uKFxuICBhY3R1YWxWZXJzaW9uOiBzdHJpbmcsIFxuICByZXF1aXJlbWVudHM6IHsgbWluaW11bTogc3RyaW5nOyBtYXhpbXVtOiBzdHJpbmc7IHJlY29tbWVuZGVkOiBzdHJpbmcgfSxcbiAgdG9vbE5hbWU6IHN0cmluZ1xuKTogeyB2YWxpZDogYm9vbGVhbjsgd2FybmluZz86IHN0cmluZzsgZXJyb3I/OiBzdHJpbmcgfSB7XG4gIGNvbnN0IG1pbkNvbXBhcmlzb24gPSBjb21wYXJlVmVyc2lvbnMoYWN0dWFsVmVyc2lvbiwgcmVxdWlyZW1lbnRzLm1pbmltdW0pO1xuICBjb25zdCBtYXhDb21wYXJpc29uID0gY29tcGFyZVZlcnNpb25zKGFjdHVhbFZlcnNpb24sIHJlcXVpcmVtZW50cy5tYXhpbXVtKTtcbiAgXG4gIC8vIENoZWNrIG1pbmltdW0gdmVyc2lvbiByZXF1aXJlbWVudFxuICBpZiAobWluQ29tcGFyaXNvbiA8IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3I6IGAke3Rvb2xOYW1lfSB2ZXJzaW9uICR7YWN0dWFsVmVyc2lvbn0gaXMgYmVsb3cgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9uICR7cmVxdWlyZW1lbnRzLm1pbmltdW19YFxuICAgIH07XG4gIH1cbiAgXG4gIC8vIENoZWNrIG1heGltdW0gdmVyc2lvbiByZXF1aXJlbWVudFxuICBpZiAobWF4Q29tcGFyaXNvbiA+IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3I6IGAke3Rvb2xOYW1lfSB2ZXJzaW9uICR7YWN0dWFsVmVyc2lvbn0gaXMgYWJvdmUgbWF4aW11bSB0ZXN0ZWQgdmVyc2lvbiAke3JlcXVpcmVtZW50cy5tYXhpbXVtfWBcbiAgICB9O1xuICB9XG4gIFxuICAvLyBDaGVjayBpZiBpdCdzIHRoZSByZWNvbW1lbmRlZCB2ZXJzaW9uXG4gIGNvbnN0IHJlY0NvbXBhcmlzb24gPSBjb21wYXJlVmVyc2lvbnMoYWN0dWFsVmVyc2lvbiwgcmVxdWlyZW1lbnRzLnJlY29tbWVuZGVkKTtcbiAgaWYgKHJlY0NvbXBhcmlzb24gIT09IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICB3YXJuaW5nOiBgJHt0b29sTmFtZX0gdmVyc2lvbiAke2FjdHVhbFZlcnNpb259IHdvcmtzIGJ1dCAke3JlcXVpcmVtZW50cy5yZWNvbW1lbmRlZH0gaXMgcmVjb21tZW5kZWQgZm9yIG9wdGltYWwgc3RhYmlsaXR5YFxuICAgIH07XG4gIH1cbiAgXG4gIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG59Il19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dollhousemcp/mcp-server",
3
- "version": "1.9.13",
3
+ "version": "1.9.15",
4
4
  "description": "DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",