@dollhousemcp/mcp-server 1.7.2 → 1.7.4

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 (88) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md.backup +0 -8
  3. package/dist/auth/GitHubAuthManager.js +2 -2
  4. package/dist/config/ConfigManager.d.ts +158 -25
  5. package/dist/config/ConfigManager.d.ts.map +1 -1
  6. package/dist/config/ConfigManager.js +627 -88
  7. package/dist/config/ConfigWizard.d.ts +78 -0
  8. package/dist/config/ConfigWizard.d.ts.map +1 -0
  9. package/dist/config/ConfigWizard.js +370 -0
  10. package/dist/config/ConfigWizardCheck.d.ts +47 -0
  11. package/dist/config/ConfigWizardCheck.d.ts.map +1 -0
  12. package/dist/config/ConfigWizardCheck.js +208 -0
  13. package/dist/config/ConfigWizardDisplay.d.ts +64 -0
  14. package/dist/config/ConfigWizardDisplay.d.ts.map +1 -0
  15. package/dist/config/ConfigWizardDisplay.js +150 -0
  16. package/dist/config/WizardFirstResponse.d.ts +25 -0
  17. package/dist/config/WizardFirstResponse.d.ts.map +1 -0
  18. package/dist/config/WizardFirstResponse.js +118 -0
  19. package/dist/config/portfolioConfig.d.ts +40 -0
  20. package/dist/config/portfolioConfig.d.ts.map +1 -0
  21. package/dist/config/portfolioConfig.js +58 -0
  22. package/dist/config/wizardTemplates.d.ts +84 -0
  23. package/dist/config/wizardTemplates.d.ts.map +1 -0
  24. package/dist/config/wizardTemplates.js +195 -0
  25. package/dist/elements/BaseElement.d.ts +15 -0
  26. package/dist/elements/BaseElement.d.ts.map +1 -1
  27. package/dist/elements/BaseElement.js +38 -5
  28. package/dist/generated/version.d.ts +2 -2
  29. package/dist/generated/version.js +3 -3
  30. package/dist/handlers/ConfigHandler.d.ts +32 -0
  31. package/dist/handlers/ConfigHandler.d.ts.map +1 -0
  32. package/dist/handlers/ConfigHandler.js +202 -0
  33. package/dist/handlers/PortfolioPullHandler.d.ts +69 -0
  34. package/dist/handlers/PortfolioPullHandler.d.ts.map +1 -0
  35. package/dist/handlers/PortfolioPullHandler.js +340 -0
  36. package/dist/handlers/SyncHandlerV2.d.ts +42 -0
  37. package/dist/handlers/SyncHandlerV2.d.ts.map +1 -0
  38. package/dist/handlers/SyncHandlerV2.js +231 -0
  39. package/dist/index.d.ts +18 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +19 -3
  42. package/dist/portfolio/GitHubPortfolioIndexer.d.ts +0 -1
  43. package/dist/portfolio/GitHubPortfolioIndexer.d.ts.map +1 -1
  44. package/dist/portfolio/GitHubPortfolioIndexer.js +36 -16
  45. package/dist/portfolio/PortfolioRepoManager.d.ts +2 -1
  46. package/dist/portfolio/PortfolioRepoManager.d.ts.map +1 -1
  47. package/dist/portfolio/PortfolioRepoManager.js +2 -1
  48. package/dist/portfolio/PortfolioSyncManager.d.ts +127 -0
  49. package/dist/portfolio/PortfolioSyncManager.d.ts.map +1 -0
  50. package/dist/portfolio/PortfolioSyncManager.js +818 -0
  51. package/dist/scripts/scripts/run-config-wizard.js +57 -0
  52. package/dist/scripts/src/config/ConfigManager.js +799 -0
  53. package/dist/scripts/src/config/ConfigWizard.js +368 -0
  54. package/dist/scripts/src/errors/SecurityError.js +47 -0
  55. package/dist/scripts/src/security/constants.js +28 -0
  56. package/dist/scripts/src/security/contentValidator.js +415 -0
  57. package/dist/scripts/src/security/errors.js +32 -0
  58. package/dist/scripts/src/security/regexValidator.js +217 -0
  59. package/dist/scripts/src/security/secureYamlParser.js +272 -0
  60. package/dist/scripts/src/security/securityMonitor.js +111 -0
  61. package/dist/scripts/src/security/validators/unicodeValidator.js +315 -0
  62. package/dist/scripts/src/utils/logger.js +288 -0
  63. package/dist/security/audit/config/suppressions.d.ts.map +1 -1
  64. package/dist/security/audit/config/suppressions.js +54 -2
  65. package/dist/security/secureYamlParser.d.ts +46 -2
  66. package/dist/security/secureYamlParser.d.ts.map +1 -1
  67. package/dist/security/secureYamlParser.js +47 -3
  68. package/dist/server/ServerSetup.d.ts.map +1 -1
  69. package/dist/server/ServerSetup.js +16 -10
  70. package/dist/server/tools/ConfigToolsV2.d.ts +10 -0
  71. package/dist/server/tools/ConfigToolsV2.d.ts.map +1 -0
  72. package/dist/server/tools/ConfigToolsV2.js +110 -0
  73. package/dist/server/types.d.ts +2 -0
  74. package/dist/server/types.d.ts.map +1 -1
  75. package/dist/server/types.js +1 -1
  76. package/dist/sync/PortfolioDownloader.d.ts +27 -0
  77. package/dist/sync/PortfolioDownloader.d.ts.map +1 -0
  78. package/dist/sync/PortfolioDownloader.js +120 -0
  79. package/dist/sync/PortfolioSyncComparer.d.ts +50 -0
  80. package/dist/sync/PortfolioSyncComparer.d.ts.map +1 -0
  81. package/dist/sync/PortfolioSyncComparer.js +158 -0
  82. package/dist/tools/getWelcomeMessage.d.ts +41 -0
  83. package/dist/tools/getWelcomeMessage.d.ts.map +1 -0
  84. package/dist/tools/getWelcomeMessage.js +109 -0
  85. package/dist/utils/TemplateRenderer.d.ts +63 -0
  86. package/dist/utils/TemplateRenderer.d.ts.map +1 -0
  87. package/dist/utils/TemplateRenderer.js +154 -0
  88. package/package.json +1 -1
@@ -6,10 +6,11 @@ import { ToolRegistry } from './tools/ToolRegistry.js';
6
6
  import { getPersonaExportImportTools } from './tools/PersonaTools.js';
7
7
  import { getElementTools } from './tools/ElementTools.js';
8
8
  import { getCollectionTools } from './tools/CollectionTools.js';
9
- import { getUserTools } from './tools/UserTools.js';
10
- import { getConfigTools } from './tools/ConfigTools.js';
9
+ // import { getUserTools } from './tools/UserTools.js'; // DEPRECATED - replaced by dollhouse_config
10
+ // import { getConfigTools } from './tools/ConfigTools.js'; // DEPRECATED - replaced by dollhouse_config
11
+ import { getConfigToolsV2 } from './tools/ConfigToolsV2.js';
11
12
  import { getAuthTools } from './tools/AuthTools.js';
12
- import { getPortfolioTools } from './tools/PortfolioTools.js';
13
+ // import { getPortfolioTools } from './tools/PortfolioTools.js'; // DEPRECATED - replaced by sync_portfolio
13
14
  import { getBuildInfoTools } from './tools/BuildInfoTools.js';
14
15
  import { UnicodeValidator } from '../security/validators/unicodeValidator.js';
15
16
  import { SecurityMonitor } from '../security/securityMonitor.js';
@@ -42,14 +43,19 @@ export class ServerSetup {
42
43
  this.toolRegistry.registerMany(getPersonaExportImportTools(instance));
43
44
  // Register collection tools
44
45
  this.toolRegistry.registerMany(getCollectionTools(instance));
45
- // Register user tools
46
- this.toolRegistry.registerMany(getUserTools(instance));
46
+ // DEPRECATED: Old user tools - replaced by dollhouse_config
47
+ // Comment out to remove from tool list, but keep for reference during transition
48
+ // this.toolRegistry.registerMany(getUserTools(instance));
47
49
  // Register auth tools
48
50
  this.toolRegistry.registerMany(getAuthTools(instance));
49
- // Register portfolio tools
50
- this.toolRegistry.registerMany(getPortfolioTools(instance));
51
- // Register config tools
52
- this.toolRegistry.registerMany(getConfigTools(instance));
51
+ // DEPRECATED: Old portfolio tools - replaced by sync_portfolio
52
+ // Comment out to remove from tool list, but keep for reference during transition
53
+ // this.toolRegistry.registerMany(getPortfolioTools(instance));
54
+ // DEPRECATED: Old config tools - replaced by dollhouse_config
55
+ // Comment out to remove from tool list, but keep for reference during transition
56
+ // this.toolRegistry.registerMany(getConfigTools(instance));
57
+ // Register new unified config and sync tools
58
+ this.toolRegistry.registerMany(getConfigToolsV2(instance));
53
59
  // Register build info tools
54
60
  this.toolRegistry.registerMany(getBuildInfoTools(instance));
55
61
  // Invalidate cache since tools have changed
@@ -184,4 +190,4 @@ export class ServerSetup {
184
190
  };
185
191
  }
186
192
  }
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVyU2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmVyL1NlcnZlclNldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBR0gsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsTUFBTSxPQUFPLFdBQVc7SUFDZCxZQUFZLENBQWU7SUFDM0IsU0FBUyxDQUFxQjtJQUV0QztRQUNFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLENBQUMsTUFBYyxFQUFFLFFBQXNCO1FBQ2hELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTdCLHlCQUF5QjtRQUN6QixJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWEsQ0FBQyxRQUFzQjtRQUMxQyxtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFMUQsbUZBQW1GO1FBQ25GLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFdEUsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFN0Qsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXZELHNCQUFzQjtRQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUV2RCwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUc1RCx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFekQsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFNUQsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNwQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVEOztPQUVHO0lBQ0sscUJBQXFCLENBQUMsTUFBYztRQUMxQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDMUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBRTdCLGdDQUFnQztZQUNoQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRXpDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCx5Q0FBeUM7Z0JBQ3pDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUV4Qyx3Q0FBd0M7Z0JBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUVsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO2dCQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLDJEQUEyRCxFQUFFO29CQUN2RSxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU07b0JBQ3ZCLFFBQVEsRUFBRSxHQUFHLFFBQVEsSUFBSTtvQkFDekIsTUFBTSxFQUFFLFVBQVU7aUJBQ25CLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO2dCQUN4QyxNQUFNLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxFQUFFO29CQUNwRSxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU07b0JBQ3ZCLFFBQVEsRUFBRSxHQUFHLFFBQVEsSUFBSTtvQkFDekIsTUFBTSxFQUFFLE9BQU87aUJBQ2hCLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0IsQ0FBQyxNQUFjO1FBQ3pDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUVqRCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRW5ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDYixNQUFNLElBQUksUUFBUSxDQUNoQixTQUFTLENBQUMsY0FBYyxFQUN4QixpQkFBaUIsSUFBSSxFQUFFLENBQ3hCLENBQUM7Z0JBQ0osQ0FBQztnQkFFRCx5RUFBeUU7Z0JBQ3pFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBRWxFLE9BQU8sTUFBTSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdkMsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxLQUFLLFlBQVksUUFBUSxFQUFFLENBQUM7b0JBQzlCLE1BQU0sS0FBSyxDQUFDO2dCQUNkLENBQUM7Z0JBRUQsTUFBTSxJQUFJLFFBQVEsQ0FDaEIsU0FBUyxDQUFDLGFBQWEsRUFDdkIsd0JBQXdCLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FDekMsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLHlCQUF5QixDQUFDLElBQVMsRUFBRSxRQUFnQjtRQUMzRCxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hELElBQUksTUFBTSxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDOUQsTUFBTSxDQUFDLElBQUksQ0FBQyw0Q0FBNEMsUUFBUSxHQUFHLEVBQUU7b0JBQ25FLE1BQU0sRUFBRSxNQUFNLENBQUMsY0FBYztvQkFDN0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO2lCQUMxQixDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUMsaUJBQWlCLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLFVBQVUsR0FBUSxFQUFFLENBQUM7WUFDM0IsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDaEQsOEVBQThFO2dCQUM5RSxNQUFNLGFBQWEsR0FBRyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQztvQkFDN0MsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQzFELFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlFLENBQUM7WUFDRCxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO1FBRUQsK0NBQStDO1FBQy9DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1FBRTlELHFDQUFxQztRQUNyQyxlQUFlLENBQUMsZ0JBQWdCLENBQUM7WUFDL0IsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixRQUFRLEVBQUUsS0FBSztZQUNmLE1BQU0sRUFBRSxpQ0FBaUM7WUFDekMsT0FBTyxFQUFFLDJDQUEyQztTQUNyRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0I7UUFDaEIsT0FBTztZQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtTQUNyQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZXJ2ZXIgc2V0dXAgYW5kIGluaXRpYWxpemF0aW9uXG4gKi9cblxuaW1wb3J0IHsgU2VydmVyIH0gZnJvbSBcIkBtb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvc2VydmVyL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBDYWxsVG9vbFJlcXVlc3RTY2hlbWEsIEVycm9yQ29kZSwgTGlzdFRvb2xzUmVxdWVzdFNjaGVtYSwgTWNwRXJyb3IgfSBmcm9tIFwiQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay90eXBlcy5qc1wiO1xuaW1wb3J0IHsgVG9vbFJlZ2lzdHJ5IH0gZnJvbSAnLi90b29scy9Ub29sUmVnaXN0cnkuanMnO1xuaW1wb3J0IHsgZ2V0UGVyc29uYUV4cG9ydEltcG9ydFRvb2xzIH0gZnJvbSAnLi90b29scy9QZXJzb25hVG9vbHMuanMnO1xuaW1wb3J0IHsgZ2V0RWxlbWVudFRvb2xzIH0gZnJvbSAnLi90b29scy9FbGVtZW50VG9vbHMuanMnO1xuaW1wb3J0IHsgZ2V0Q29sbGVjdGlvblRvb2xzIH0gZnJvbSAnLi90b29scy9Db2xsZWN0aW9uVG9vbHMuanMnO1xuaW1wb3J0IHsgZ2V0VXNlclRvb2xzIH0gZnJvbSAnLi90b29scy9Vc2VyVG9vbHMuanMnO1xuaW1wb3J0IHsgZ2V0Q29uZmlnVG9vbHMgfSBmcm9tICcuL3Rvb2xzL0NvbmZpZ1Rvb2xzLmpzJztcbmltcG9ydCB7IGdldEF1dGhUb29scyB9IGZyb20gJy4vdG9vbHMvQXV0aFRvb2xzLmpzJztcbmltcG9ydCB7IGdldFBvcnRmb2xpb1Rvb2xzIH0gZnJvbSAnLi90b29scy9Qb3J0Zm9saW9Ub29scy5qcyc7XG5pbXBvcnQgeyBnZXRCdWlsZEluZm9Ub29scyB9IGZyb20gJy4vdG9vbHMvQnVpbGRJbmZvVG9vbHMuanMnO1xuaW1wb3J0IHsgSVRvb2xIYW5kbGVyIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBVbmljb2RlVmFsaWRhdG9yIH0gZnJvbSAnLi4vc2VjdXJpdHkvdmFsaWRhdG9ycy91bmljb2RlVmFsaWRhdG9yLmpzJztcbmltcG9ydCB7IFNlY3VyaXR5TW9uaXRvciB9IGZyb20gJy4uL3NlY3VyaXR5L3NlY3VyaXR5TW9uaXRvci5qcyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXIuanMnO1xuaW1wb3J0IHsgVG9vbERpc2NvdmVyeUNhY2hlIH0gZnJvbSAnLi4vdXRpbHMvVG9vbENhY2hlLmpzJztcblxuZXhwb3J0IGNsYXNzIFNlcnZlclNldHVwIHtcbiAgcHJpdmF0ZSB0b29sUmVnaXN0cnk6IFRvb2xSZWdpc3RyeTtcbiAgcHJpdmF0ZSB0b29sQ2FjaGU6IFRvb2xEaXNjb3ZlcnlDYWNoZTtcbiAgXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudG9vbFJlZ2lzdHJ5ID0gbmV3IFRvb2xSZWdpc3RyeSgpO1xuICAgIHRoaXMudG9vbENhY2hlID0gbmV3IFRvb2xEaXNjb3ZlcnlDYWNoZSgpO1xuICB9XG4gIFxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgc2VydmVyIHdpdGggYWxsIHRvb2xzIGFuZCBoYW5kbGVyc1xuICAgKi9cbiAgc2V0dXBTZXJ2ZXIoc2VydmVyOiBTZXJ2ZXIsIGluc3RhbmNlOiBJVG9vbEhhbmRsZXIpOiB2b2lkIHtcbiAgICAvLyBSZWdpc3RlciBhbGwgdG9vbHNcbiAgICB0aGlzLnJlZ2lzdGVyVG9vbHMoaW5zdGFuY2UpO1xuICAgIFxuICAgIC8vIFNldHVwIHJlcXVlc3QgaGFuZGxlcnNcbiAgICB0aGlzLnNldHVwTGlzdFRvb2xzSGFuZGxlcihzZXJ2ZXIpO1xuICAgIHRoaXMuc2V0dXBDYWxsVG9vbEhhbmRsZXIoc2VydmVyKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGFsbCB0b29sIGNhdGVnb3JpZXMgYW5kIGludmFsaWRhdGUgY2FjaGVcbiAgICovXG4gIHByaXZhdGUgcmVnaXN0ZXJUb29scyhpbnN0YW5jZTogSVRvb2xIYW5kbGVyKTogdm9pZCB7XG4gICAgLy8gUmVnaXN0ZXIgZWxlbWVudCB0b29scyAobmV3IGdlbmVyaWMgdG9vbHMgZm9yIGFsbCBlbGVtZW50IHR5cGVzKVxuICAgIHRoaXMudG9vbFJlZ2lzdHJ5LnJlZ2lzdGVyTWFueShnZXRFbGVtZW50VG9vbHMoaW5zdGFuY2UpKTtcbiAgICBcbiAgICAvLyBSZWdpc3RlciBwZXJzb25hIGV4cG9ydC9pbXBvcnQgdG9vbHMgKGNvcmUgZnVuY3Rpb25hbGl0eSBtb3ZlZCB0byBlbGVtZW50IHRvb2xzKVxuICAgIHRoaXMudG9vbFJlZ2lzdHJ5LnJlZ2lzdGVyTWFueShnZXRQZXJzb25hRXhwb3J0SW1wb3J0VG9vbHMoaW5zdGFuY2UpKTtcbiAgICBcbiAgICAvLyBSZWdpc3RlciBjb2xsZWN0aW9uIHRvb2xzXG4gICAgdGhpcy50b29sUmVnaXN0cnkucmVnaXN0ZXJNYW55KGdldENvbGxlY3Rpb25Ub29scyhpbnN0YW5jZSkpO1xuICAgIFxuICAgIC8vIFJlZ2lzdGVyIHVzZXIgdG9vbHNcbiAgICB0aGlzLnRvb2xSZWdpc3RyeS5yZWdpc3Rlck1hbnkoZ2V0VXNlclRvb2xzKGluc3RhbmNlKSk7XG4gICAgXG4gICAgLy8gUmVnaXN0ZXIgYXV0aCB0b29sc1xuICAgIHRoaXMudG9vbFJlZ2lzdHJ5LnJlZ2lzdGVyTWFueShnZXRBdXRoVG9vbHMoaW5zdGFuY2UpKTtcbiAgICBcbiAgICAvLyBSZWdpc3RlciBwb3J0Zm9saW8gdG9vbHNcbiAgICB0aGlzLnRvb2xSZWdpc3RyeS5yZWdpc3Rlck1hbnkoZ2V0UG9ydGZvbGlvVG9vbHMoaW5zdGFuY2UpKTtcbiAgICBcbiAgICBcbiAgICAvLyBSZWdpc3RlciBjb25maWcgdG9vbHNcbiAgICB0aGlzLnRvb2xSZWdpc3RyeS5yZWdpc3Rlck1hbnkoZ2V0Q29uZmlnVG9vbHMoaW5zdGFuY2UpKTtcbiAgICBcbiAgICAvLyBSZWdpc3RlciBidWlsZCBpbmZvIHRvb2xzXG4gICAgdGhpcy50b29sUmVnaXN0cnkucmVnaXN0ZXJNYW55KGdldEJ1aWxkSW5mb1Rvb2xzKGluc3RhbmNlKSk7XG4gICAgXG4gICAgLy8gSW52YWxpZGF0ZSBjYWNoZSBzaW5jZSB0b29scyBoYXZlIGNoYW5nZWRcbiAgICB0aGlzLnRvb2xDYWNoZS5pbnZhbGlkYXRlVG9vbExpc3QoKTtcbiAgICBsb2dnZXIuZGVidWcoJ1Rvb2xEaXNjb3ZlcnlDYWNoZTogQ2FjaGUgaW52YWxpZGF0ZWQgZHVlIHRvIHRvb2wgcmVnaXN0cmF0aW9uJyk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBTZXR1cCB0aGUgTGlzdFRvb2xzUmVxdWVzdCBoYW5kbGVyIHdpdGggY2FjaGluZ1xuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cExpc3RUb29sc0hhbmRsZXIoc2VydmVyOiBTZXJ2ZXIpOiB2b2lkIHtcbiAgICBzZXJ2ZXIuc2V0UmVxdWVzdEhhbmRsZXIoTGlzdFRvb2xzUmVxdWVzdFNjaGVtYSwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgIFxuICAgICAgLy8gVHJ5IHRvIGdldCBjYWNoZWQgdG9vbHMgZmlyc3RcbiAgICAgIGxldCB0b29scyA9IHRoaXMudG9vbENhY2hlLmdldFRvb2xMaXN0KCk7XG4gICAgICBcbiAgICAgIGlmICghdG9vbHMpIHtcbiAgICAgICAgLy8gQ2FjaGUgbWlzcyAtIGZldGNoIHRvb2xzIGZyb20gcmVnaXN0cnlcbiAgICAgICAgdG9vbHMgPSB0aGlzLnRvb2xSZWdpc3RyeS5nZXRBbGxUb29scygpO1xuICAgICAgICBcbiAgICAgICAgLy8gQ2FjaGUgdGhlIHJlc3VsdHMgZm9yIGZ1dHVyZSByZXF1ZXN0c1xuICAgICAgICB0aGlzLnRvb2xDYWNoZS5zZXRUb29sTGlzdCh0b29scyk7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBkdXJhdGlvbiA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgIGxvZ2dlci5pbmZvKCdUb29sRGlzY292ZXJ5Q2FjaGU6IENhY2hlIG1pc3MgLSBmZXRjaGVkIGFuZCBjYWNoZWQgdG9vbHMnLCB7XG4gICAgICAgICAgdG9vbENvdW50OiB0b29scy5sZW5ndGgsXG4gICAgICAgICAgZHVyYXRpb246IGAke2R1cmF0aW9ufW1zYCxcbiAgICAgICAgICBzb3VyY2U6ICdyZWdpc3RyeSdcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkdXJhdGlvbiA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZygnVG9vbERpc2NvdmVyeUNhY2hlOiBDYWNoZSBoaXQgLSByZXR1cm5lZCBjYWNoZWQgdG9vbHMnLCB7XG4gICAgICAgICAgdG9vbENvdW50OiB0b29scy5sZW5ndGgsXG4gICAgICAgICAgZHVyYXRpb246IGAke2R1cmF0aW9ufW1zYCxcbiAgICAgICAgICBzb3VyY2U6ICdjYWNoZSdcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIHJldHVybiB7IHRvb2xzIH07XG4gICAgfSk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBTZXR1cCB0aGUgQ2FsbFRvb2xSZXF1ZXN0IGhhbmRsZXJcbiAgICovXG4gIHByaXZhdGUgc2V0dXBDYWxsVG9vbEhhbmRsZXIoc2VydmVyOiBTZXJ2ZXIpOiB2b2lkIHtcbiAgICBzZXJ2ZXIuc2V0UmVxdWVzdEhhbmRsZXIoQ2FsbFRvb2xSZXF1ZXN0U2NoZW1hLCBhc3luYyAocmVxdWVzdCkgPT4ge1xuICAgICAgY29uc3QgeyBuYW1lLCBhcmd1bWVudHM6IGFyZ3MgfSA9IHJlcXVlc3QucGFyYW1zO1xuICAgICAgXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gdGhpcy50b29sUmVnaXN0cnkuZ2V0SGFuZGxlcihuYW1lKTtcbiAgICAgICAgXG4gICAgICAgIGlmICghaGFuZGxlcikge1xuICAgICAgICAgIHRocm93IG5ldyBNY3BFcnJvcihcbiAgICAgICAgICAgIEVycm9yQ29kZS5NZXRob2ROb3RGb3VuZCxcbiAgICAgICAgICAgIGBVbmtub3duIHRvb2w6ICR7bmFtZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gTm9ybWFsaXplIFVuaWNvZGUgaW4gYWxsIHN0cmluZyBhcmd1bWVudHMgdG8gcHJldmVudCBzZWN1cml0eSBieXBhc3Nlc1xuICAgICAgICBjb25zdCBub3JtYWxpemVkQXJncyA9IHRoaXMubm9ybWFsaXplQXJndW1lbnRzVW5pY29kZShhcmdzLCBuYW1lKTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBhd2FpdCBoYW5kbGVyKG5vcm1hbGl6ZWRBcmdzKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIE1jcEVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHRocm93IG5ldyBNY3BFcnJvcihcbiAgICAgICAgICBFcnJvckNvZGUuSW50ZXJuYWxFcnJvcixcbiAgICAgICAgICBgRXJyb3IgZXhlY3V0aW5nIHRvb2wgJHtuYW1lfTogJHtlcnJvcn1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBSZWN1cnNpdmVseSBub3JtYWxpemUgVW5pY29kZSBpbiBhbGwgc3RyaW5nIHZhbHVlcyB3aXRoaW4gYXJndW1lbnRzXG4gICAqL1xuICBwcml2YXRlIG5vcm1hbGl6ZUFyZ3VtZW50c1VuaWNvZGUoYXJnczogYW55LCB0b29sTmFtZTogc3RyaW5nKTogYW55IHtcbiAgICBpZiAoYXJncyA9PT0gbnVsbCB8fCBhcmdzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBhcmdzO1xuICAgIH1cbiAgICBcbiAgICBpZiAodHlwZW9mIGFyZ3MgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZShhcmdzKTtcbiAgICAgIGlmIChyZXN1bHQuZGV0ZWN0ZWRJc3N1ZXMgJiYgcmVzdWx0LmRldGVjdGVkSXNzdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oYFVuaWNvZGUgc2VjdXJpdHkgaXNzdWVzIGRldGVjdGVkIGluIHRvb2wgJHt0b29sTmFtZX06YCwge1xuICAgICAgICAgIGlzc3VlczogcmVzdWx0LmRldGVjdGVkSXNzdWVzLFxuICAgICAgICAgIHNldmVyaXR5OiByZXN1bHQuc2V2ZXJpdHlcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0Lm5vcm1hbGl6ZWRDb250ZW50O1xuICAgIH1cbiAgICBcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhcmdzKSkge1xuICAgICAgcmV0dXJuIGFyZ3MubWFwKGl0ZW0gPT4gdGhpcy5ub3JtYWxpemVBcmd1bWVudHNVbmljb2RlKGl0ZW0sIHRvb2xOYW1lKSk7XG4gICAgfVxuICAgIFxuICAgIGlmICh0eXBlb2YgYXJncyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQ6IGFueSA9IHt9O1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYXJncykpIHtcbiAgICAgICAgLy8gTm9ybWFsaXplIGJvdGgga2V5cyBhbmQgdmFsdWVzIHRvIHByZXZlbnQgVW5pY29kZSBhdHRhY2tzIGluIHByb3BlcnR5IG5hbWVzXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRLZXkgPSB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyA/IFxuICAgICAgICAgIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKGtleSkubm9ybWFsaXplZENvbnRlbnQgOiBrZXk7XG4gICAgICAgIG5vcm1hbGl6ZWRbbm9ybWFsaXplZEtleV0gPSB0aGlzLm5vcm1hbGl6ZUFyZ3VtZW50c1VuaWNvZGUodmFsdWUsIHRvb2xOYW1lKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBub3JtYWxpemVkO1xuICAgIH1cbiAgICBcbiAgICAvLyBGb3Igbm9uLXN0cmluZyBwcmltaXRpdmUgdHlwZXMsIHJldHVybiBhcy1pc1xuICAgIHJldHVybiBhcmdzO1xuICB9XG4gIFxuICAvKipcbiAgICogR2V0IHRoZSB0b29sIHJlZ2lzdHJ5XG4gICAqL1xuICBnZXRUb29sUmVnaXN0cnkoKTogVG9vbFJlZ2lzdHJ5IHtcbiAgICByZXR1cm4gdGhpcy50b29sUmVnaXN0cnk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRvb2wgZGlzY292ZXJ5IGNhY2hlXG4gICAqL1xuICBnZXRUb29sQ2FjaGUoKTogVG9vbERpc2NvdmVyeUNhY2hlIHtcbiAgICByZXR1cm4gdGhpcy50b29sQ2FjaGU7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBJbnZhbGlkYXRlIHRoZSB0b29sIGRpc2NvdmVyeSBjYWNoZSAodXNlZnVsIGZvciBleHRlcm5hbCB0b29sIGNoYW5nZXMpXG4gICAqL1xuICBpbnZhbGlkYXRlVG9vbENhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMudG9vbENhY2hlLmludmFsaWRhdGVUb29sTGlzdCgpO1xuICAgIGxvZ2dlci5pbmZvKCdUb29sRGlzY292ZXJ5Q2FjaGU6IENhY2hlIG1hbnVhbGx5IGludmFsaWRhdGVkJyk7XG4gICAgXG4gICAgLy8gTG9nIHNlY3VyaXR5IGV2ZW50IGZvciBhdWRpdCB0cmFpbFxuICAgIFNlY3VyaXR5TW9uaXRvci5sb2dTZWN1cml0eUV2ZW50KHtcbiAgICAgIHR5cGU6ICdUT09MX0NBQ0hFX0lOVkFMSURBVEVEJyxcbiAgICAgIHNldmVyaXR5OiAnTE9XJyxcbiAgICAgIHNvdXJjZTogJ1NlcnZlclNldHVwLmludmFsaWRhdGVUb29sQ2FjaGUnLFxuICAgICAgZGV0YWlsczogJ1Rvb2wgZGlzY292ZXJ5IGNhY2hlIG1hbnVhbGx5IGludmFsaWRhdGVkJ1xuICAgIH0pO1xuICB9XG4gIFxuICAvKipcbiAgICogTG9nIGN1cnJlbnQgY2FjaGUgcGVyZm9ybWFuY2UgbWV0cmljc1xuICAgKi9cbiAgbG9nQ2FjaGVQZXJmb3JtYW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvb2xDYWNoZS5sb2dQZXJmb3JtYW5jZSgpO1xuICB9XG4gIFxuICAvKipcbiAgICogR2V0IGNhY2hlIHN0YXRpc3RpY3MgZm9yIG1vbml0b3JpbmdcbiAgICovXG4gIGdldENhY2hlU3RhdGlzdGljcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdG9vbENhY2hlOiB0aGlzLnRvb2xDYWNoZS5nZXRTdGF0cygpXG4gICAgfTtcbiAgfVxufSJdfQ==
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVyU2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmVyL1NlcnZlclNldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBR0gsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLG9HQUFvRztBQUNwRyx3R0FBd0c7QUFDeEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELDRHQUE0RztBQUM1RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTNELE1BQU0sT0FBTyxXQUFXO0lBQ2QsWUFBWSxDQUFlO0lBQzNCLFNBQVMsQ0FBcUI7SUFFdEM7UUFDRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLE1BQWMsRUFBRSxRQUFzQjtRQUNoRCxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3Qix5QkFBeUI7UUFDekIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhLENBQUMsUUFBc0I7UUFDMUMsbUVBQW1FO1FBQ25FLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTFELG1GQUFtRjtRQUNuRixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXRFLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTdELDREQUE0RDtRQUM1RCxpRkFBaUY7UUFDakYsMERBQTBEO1FBRTFELHNCQUFzQjtRQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUV2RCwrREFBK0Q7UUFDL0QsaUZBQWlGO1FBQ2pGLCtEQUErRDtRQUUvRCw4REFBOEQ7UUFDOUQsaUZBQWlGO1FBQ2pGLDREQUE0RDtRQUU1RCw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUUzRCw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUU1RCw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7O09BRUc7SUFDSyxxQkFBcUIsQ0FBQyxNQUFjO1FBQzFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMxRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFN0IsZ0NBQWdDO1lBQ2hDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFekMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLHlDQUF5QztnQkFDekMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBRXhDLHdDQUF3QztnQkFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRWxDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkRBQTJELEVBQUU7b0JBQ3ZFLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTTtvQkFDdkIsUUFBUSxFQUFFLEdBQUcsUUFBUSxJQUFJO29CQUN6QixNQUFNLEVBQUUsVUFBVTtpQkFDbkIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsdURBQXVELEVBQUU7b0JBQ3BFLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTTtvQkFDdkIsUUFBUSxFQUFFLEdBQUcsUUFBUSxJQUFJO29CQUN6QixNQUFNLEVBQUUsT0FBTztpQkFDaEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLG9CQUFvQixDQUFDLE1BQWM7UUFDekMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBRWpELElBQUksQ0FBQztnQkFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFbkQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNiLE1BQU0sSUFBSSxRQUFRLENBQ2hCLFNBQVMsQ0FBQyxjQUFjLEVBQ3hCLGlCQUFpQixJQUFJLEVBQUUsQ0FDeEIsQ0FBQztnQkFDSixDQUFDO2dCQUVELHlFQUF5RTtnQkFDekUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFbEUsT0FBTyxNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFJLEtBQUssWUFBWSxRQUFRLEVBQUUsQ0FBQztvQkFDOUIsTUFBTSxLQUFLLENBQUM7Z0JBQ2QsQ0FBQztnQkFFRCxNQUFNLElBQUksUUFBUSxDQUNoQixTQUFTLENBQUMsYUFBYSxFQUN2Qix3QkFBd0IsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUN6QyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0sseUJBQXlCLENBQUMsSUFBUyxFQUFFLFFBQWdCO1FBQzNELElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEQsSUFBSSxNQUFNLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM5RCxNQUFNLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxRQUFRLEdBQUcsRUFBRTtvQkFDbkUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxjQUFjO29CQUM3QixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7aUJBQzFCLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFFRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE1BQU0sVUFBVSxHQUFRLEVBQUUsQ0FBQztZQUMzQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNoRCw4RUFBOEU7Z0JBQzlFLE1BQU0sYUFBYSxHQUFHLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDO29CQUM3QyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDMUQsVUFBVSxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDOUUsQ0FBQztZQUNELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFFRCwrQ0FBK0M7UUFDL0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7UUFFOUQscUNBQXFDO1FBQ3JDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUMvQixJQUFJLEVBQUUsd0JBQXdCO1lBQzlCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsTUFBTSxFQUFFLGlDQUFpQztZQUN6QyxPQUFPLEVBQUUsMkNBQTJDO1NBQ3JELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQjtRQUNoQixPQUFPO1lBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1NBQ3JDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNlcnZlciBzZXR1cCBhbmQgaW5pdGlhbGl6YXRpb25cbiAqL1xuXG5pbXBvcnQgeyBTZXJ2ZXIgfSBmcm9tIFwiQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9zZXJ2ZXIvaW5kZXguanNcIjtcbmltcG9ydCB7IENhbGxUb29sUmVxdWVzdFNjaGVtYSwgRXJyb3JDb2RlLCBMaXN0VG9vbHNSZXF1ZXN0U2NoZW1hLCBNY3BFcnJvciB9IGZyb20gXCJAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBUb29sUmVnaXN0cnkgfSBmcm9tICcuL3Rvb2xzL1Rvb2xSZWdpc3RyeS5qcyc7XG5pbXBvcnQgeyBnZXRQZXJzb25hRXhwb3J0SW1wb3J0VG9vbHMgfSBmcm9tICcuL3Rvb2xzL1BlcnNvbmFUb29scy5qcyc7XG5pbXBvcnQgeyBnZXRFbGVtZW50VG9vbHMgfSBmcm9tICcuL3Rvb2xzL0VsZW1lbnRUb29scy5qcyc7XG5pbXBvcnQgeyBnZXRDb2xsZWN0aW9uVG9vbHMgfSBmcm9tICcuL3Rvb2xzL0NvbGxlY3Rpb25Ub29scy5qcyc7XG4vLyBpbXBvcnQgeyBnZXRVc2VyVG9vbHMgfSBmcm9tICcuL3Rvb2xzL1VzZXJUb29scy5qcyc7IC8vIERFUFJFQ0FURUQgLSByZXBsYWNlZCBieSBkb2xsaG91c2VfY29uZmlnXG4vLyBpbXBvcnQgeyBnZXRDb25maWdUb29scyB9IGZyb20gJy4vdG9vbHMvQ29uZmlnVG9vbHMuanMnOyAvLyBERVBSRUNBVEVEIC0gcmVwbGFjZWQgYnkgZG9sbGhvdXNlX2NvbmZpZ1xuaW1wb3J0IHsgZ2V0Q29uZmlnVG9vbHNWMiB9IGZyb20gJy4vdG9vbHMvQ29uZmlnVG9vbHNWMi5qcyc7XG5pbXBvcnQgeyBnZXRBdXRoVG9vbHMgfSBmcm9tICcuL3Rvb2xzL0F1dGhUb29scy5qcyc7XG4vLyBpbXBvcnQgeyBnZXRQb3J0Zm9saW9Ub29scyB9IGZyb20gJy4vdG9vbHMvUG9ydGZvbGlvVG9vbHMuanMnOyAvLyBERVBSRUNBVEVEIC0gcmVwbGFjZWQgYnkgc3luY19wb3J0Zm9saW9cbmltcG9ydCB7IGdldEJ1aWxkSW5mb1Rvb2xzIH0gZnJvbSAnLi90b29scy9CdWlsZEluZm9Ub29scy5qcyc7XG5pbXBvcnQgeyBJVG9vbEhhbmRsZXIgfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IFVuaWNvZGVWYWxpZGF0b3IgfSBmcm9tICcuLi9zZWN1cml0eS92YWxpZGF0b3JzL3VuaWNvZGVWYWxpZGF0b3IuanMnO1xuaW1wb3J0IHsgU2VjdXJpdHlNb25pdG9yIH0gZnJvbSAnLi4vc2VjdXJpdHkvc2VjdXJpdHlNb25pdG9yLmpzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlci5qcyc7XG5pbXBvcnQgeyBUb29sRGlzY292ZXJ5Q2FjaGUgfSBmcm9tICcuLi91dGlscy9Ub29sQ2FjaGUuanMnO1xuXG5leHBvcnQgY2xhc3MgU2VydmVyU2V0dXAge1xuICBwcml2YXRlIHRvb2xSZWdpc3RyeTogVG9vbFJlZ2lzdHJ5O1xuICBwcml2YXRlIHRvb2xDYWNoZTogVG9vbERpc2NvdmVyeUNhY2hlO1xuICBcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy50b29sUmVnaXN0cnkgPSBuZXcgVG9vbFJlZ2lzdHJ5KCk7XG4gICAgdGhpcy50b29sQ2FjaGUgPSBuZXcgVG9vbERpc2NvdmVyeUNhY2hlKCk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBzZXJ2ZXIgd2l0aCBhbGwgdG9vbHMgYW5kIGhhbmRsZXJzXG4gICAqL1xuICBzZXR1cFNlcnZlcihzZXJ2ZXI6IFNlcnZlciwgaW5zdGFuY2U6IElUb29sSGFuZGxlcik6IHZvaWQge1xuICAgIC8vIFJlZ2lzdGVyIGFsbCB0b29sc1xuICAgIHRoaXMucmVnaXN0ZXJUb29scyhpbnN0YW5jZSk7XG4gICAgXG4gICAgLy8gU2V0dXAgcmVxdWVzdCBoYW5kbGVyc1xuICAgIHRoaXMuc2V0dXBMaXN0VG9vbHNIYW5kbGVyKHNlcnZlcik7XG4gICAgdGhpcy5zZXR1cENhbGxUb29sSGFuZGxlcihzZXJ2ZXIpO1xuICB9XG4gIFxuICAvKipcbiAgICogUmVnaXN0ZXIgYWxsIHRvb2wgY2F0ZWdvcmllcyBhbmQgaW52YWxpZGF0ZSBjYWNoZVxuICAgKi9cbiAgcHJpdmF0ZSByZWdpc3RlclRvb2xzKGluc3RhbmNlOiBJVG9vbEhhbmRsZXIpOiB2b2lkIHtcbiAgICAvLyBSZWdpc3RlciBlbGVtZW50IHRvb2xzIChuZXcgZ2VuZXJpYyB0b29scyBmb3IgYWxsIGVsZW1lbnQgdHlwZXMpXG4gICAgdGhpcy50b29sUmVnaXN0cnkucmVnaXN0ZXJNYW55KGdldEVsZW1lbnRUb29scyhpbnN0YW5jZSkpO1xuICAgIFxuICAgIC8vIFJlZ2lzdGVyIHBlcnNvbmEgZXhwb3J0L2ltcG9ydCB0b29scyAoY29yZSBmdW5jdGlvbmFsaXR5IG1vdmVkIHRvIGVsZW1lbnQgdG9vbHMpXG4gICAgdGhpcy50b29sUmVnaXN0cnkucmVnaXN0ZXJNYW55KGdldFBlcnNvbmFFeHBvcnRJbXBvcnRUb29scyhpbnN0YW5jZSkpO1xuICAgIFxuICAgIC8vIFJlZ2lzdGVyIGNvbGxlY3Rpb24gdG9vbHNcbiAgICB0aGlzLnRvb2xSZWdpc3RyeS5yZWdpc3Rlck1hbnkoZ2V0Q29sbGVjdGlvblRvb2xzKGluc3RhbmNlKSk7XG4gICAgXG4gICAgLy8gREVQUkVDQVRFRDogT2xkIHVzZXIgdG9vbHMgLSByZXBsYWNlZCBieSBkb2xsaG91c2VfY29uZmlnXG4gICAgLy8gQ29tbWVudCBvdXQgdG8gcmVtb3ZlIGZyb20gdG9vbCBsaXN0LCBidXQga2VlcCBmb3IgcmVmZXJlbmNlIGR1cmluZyB0cmFuc2l0aW9uXG4gICAgLy8gdGhpcy50b29sUmVnaXN0cnkucmVnaXN0ZXJNYW55KGdldFVzZXJUb29scyhpbnN0YW5jZSkpO1xuICAgIFxuICAgIC8vIFJlZ2lzdGVyIGF1dGggdG9vbHNcbiAgICB0aGlzLnRvb2xSZWdpc3RyeS5yZWdpc3Rlck1hbnkoZ2V0QXV0aFRvb2xzKGluc3RhbmNlKSk7XG4gICAgXG4gICAgLy8gREVQUkVDQVRFRDogT2xkIHBvcnRmb2xpbyB0b29scyAtIHJlcGxhY2VkIGJ5IHN5bmNfcG9ydGZvbGlvXG4gICAgLy8gQ29tbWVudCBvdXQgdG8gcmVtb3ZlIGZyb20gdG9vbCBsaXN0LCBidXQga2VlcCBmb3IgcmVmZXJlbmNlIGR1cmluZyB0cmFuc2l0aW9uXG4gICAgLy8gdGhpcy50b29sUmVnaXN0cnkucmVnaXN0ZXJNYW55KGdldFBvcnRmb2xpb1Rvb2xzKGluc3RhbmNlKSk7XG4gICAgXG4gICAgLy8gREVQUkVDQVRFRDogT2xkIGNvbmZpZyB0b29scyAtIHJlcGxhY2VkIGJ5IGRvbGxob3VzZV9jb25maWdcbiAgICAvLyBDb21tZW50IG91dCB0byByZW1vdmUgZnJvbSB0b29sIGxpc3QsIGJ1dCBrZWVwIGZvciByZWZlcmVuY2UgZHVyaW5nIHRyYW5zaXRpb25cbiAgICAvLyB0aGlzLnRvb2xSZWdpc3RyeS5yZWdpc3Rlck1hbnkoZ2V0Q29uZmlnVG9vbHMoaW5zdGFuY2UpKTtcbiAgICBcbiAgICAvLyBSZWdpc3RlciBuZXcgdW5pZmllZCBjb25maWcgYW5kIHN5bmMgdG9vbHNcbiAgICB0aGlzLnRvb2xSZWdpc3RyeS5yZWdpc3Rlck1hbnkoZ2V0Q29uZmlnVG9vbHNWMihpbnN0YW5jZSkpO1xuICAgIFxuICAgIC8vIFJlZ2lzdGVyIGJ1aWxkIGluZm8gdG9vbHNcbiAgICB0aGlzLnRvb2xSZWdpc3RyeS5yZWdpc3Rlck1hbnkoZ2V0QnVpbGRJbmZvVG9vbHMoaW5zdGFuY2UpKTtcbiAgICBcbiAgICAvLyBJbnZhbGlkYXRlIGNhY2hlIHNpbmNlIHRvb2xzIGhhdmUgY2hhbmdlZFxuICAgIHRoaXMudG9vbENhY2hlLmludmFsaWRhdGVUb29sTGlzdCgpO1xuICAgIGxvZ2dlci5kZWJ1ZygnVG9vbERpc2NvdmVyeUNhY2hlOiBDYWNoZSBpbnZhbGlkYXRlZCBkdWUgdG8gdG9vbCByZWdpc3RyYXRpb24nKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFNldHVwIHRoZSBMaXN0VG9vbHNSZXF1ZXN0IGhhbmRsZXIgd2l0aCBjYWNoaW5nXG4gICAqL1xuICBwcml2YXRlIHNldHVwTGlzdFRvb2xzSGFuZGxlcihzZXJ2ZXI6IFNlcnZlcik6IHZvaWQge1xuICAgIHNlcnZlci5zZXRSZXF1ZXN0SGFuZGxlcihMaXN0VG9vbHNSZXF1ZXN0U2NoZW1hLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgXG4gICAgICAvLyBUcnkgdG8gZ2V0IGNhY2hlZCB0b29scyBmaXJzdFxuICAgICAgbGV0IHRvb2xzID0gdGhpcy50b29sQ2FjaGUuZ2V0VG9vbExpc3QoKTtcbiAgICAgIFxuICAgICAgaWYgKCF0b29scykge1xuICAgICAgICAvLyBDYWNoZSBtaXNzIC0gZmV0Y2ggdG9vbHMgZnJvbSByZWdpc3RyeVxuICAgICAgICB0b29scyA9IHRoaXMudG9vbFJlZ2lzdHJ5LmdldEFsbFRvb2xzKCk7XG4gICAgICAgIFxuICAgICAgICAvLyBDYWNoZSB0aGUgcmVzdWx0cyBmb3IgZnV0dXJlIHJlcXVlc3RzXG4gICAgICAgIHRoaXMudG9vbENhY2hlLnNldFRvb2xMaXN0KHRvb2xzKTtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgbG9nZ2VyLmluZm8oJ1Rvb2xEaXNjb3ZlcnlDYWNoZTogQ2FjaGUgbWlzcyAtIGZldGNoZWQgYW5kIGNhY2hlZCB0b29scycsIHtcbiAgICAgICAgICB0b29sQ291bnQ6IHRvb2xzLmxlbmd0aCxcbiAgICAgICAgICBkdXJhdGlvbjogYCR7ZHVyYXRpb259bXNgLFxuICAgICAgICAgIHNvdXJjZTogJ3JlZ2lzdHJ5J1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgbG9nZ2VyLmRlYnVnKCdUb29sRGlzY292ZXJ5Q2FjaGU6IENhY2hlIGhpdCAtIHJldHVybmVkIGNhY2hlZCB0b29scycsIHtcbiAgICAgICAgICB0b29sQ291bnQ6IHRvb2xzLmxlbmd0aCxcbiAgICAgICAgICBkdXJhdGlvbjogYCR7ZHVyYXRpb259bXNgLFxuICAgICAgICAgIHNvdXJjZTogJ2NhY2hlJ1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgcmV0dXJuIHsgdG9vbHMgfTtcbiAgICB9KTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFNldHVwIHRoZSBDYWxsVG9vbFJlcXVlc3QgaGFuZGxlclxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cENhbGxUb29sSGFuZGxlcihzZXJ2ZXI6IFNlcnZlcik6IHZvaWQge1xuICAgIHNlcnZlci5zZXRSZXF1ZXN0SGFuZGxlcihDYWxsVG9vbFJlcXVlc3RTY2hlbWEsIGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUsIGFyZ3VtZW50czogYXJncyB9ID0gcmVxdWVzdC5wYXJhbXM7XG4gICAgICBcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLnRvb2xSZWdpc3RyeS5nZXRIYW5kbGVyKG5hbWUpO1xuICAgICAgICBcbiAgICAgICAgaWYgKCFoYW5kbGVyKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IE1jcEVycm9yKFxuICAgICAgICAgICAgRXJyb3JDb2RlLk1ldGhvZE5vdEZvdW5kLFxuICAgICAgICAgICAgYFVua25vd24gdG9vbDogJHtuYW1lfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBOb3JtYWxpemUgVW5pY29kZSBpbiBhbGwgc3RyaW5nIGFyZ3VtZW50cyB0byBwcmV2ZW50IHNlY3VyaXR5IGJ5cGFzc2VzXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRBcmdzID0gdGhpcy5ub3JtYWxpemVBcmd1bWVudHNVbmljb2RlKGFyZ3MsIG5hbWUpO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIGF3YWl0IGhhbmRsZXIobm9ybWFsaXplZEFyZ3MpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgTWNwRXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdGhyb3cgbmV3IE1jcEVycm9yKFxuICAgICAgICAgIEVycm9yQ29kZS5JbnRlcm5hbEVycm9yLFxuICAgICAgICAgIGBFcnJvciBleGVjdXRpbmcgdG9vbCAke25hbWV9OiAke2Vycm9yfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IG5vcm1hbGl6ZSBVbmljb2RlIGluIGFsbCBzdHJpbmcgdmFsdWVzIHdpdGhpbiBhcmd1bWVudHNcbiAgICovXG4gIHByaXZhdGUgbm9ybWFsaXplQXJndW1lbnRzVW5pY29kZShhcmdzOiBhbnksIHRvb2xOYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmIChhcmdzID09PSBudWxsIHx8IGFyZ3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGFyZ3M7XG4gICAgfVxuICAgIFxuICAgIGlmICh0eXBlb2YgYXJncyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKGFyZ3MpO1xuICAgICAgaWYgKHJlc3VsdC5kZXRlY3RlZElzc3VlcyAmJiByZXN1bHQuZGV0ZWN0ZWRJc3N1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2dnZXIud2FybihgVW5pY29kZSBzZWN1cml0eSBpc3N1ZXMgZGV0ZWN0ZWQgaW4gdG9vbCAke3Rvb2xOYW1lfTpgLCB7XG4gICAgICAgICAgaXNzdWVzOiByZXN1bHQuZGV0ZWN0ZWRJc3N1ZXMsXG4gICAgICAgICAgc2V2ZXJpdHk6IHJlc3VsdC5zZXZlcml0eVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQubm9ybWFsaXplZENvbnRlbnQ7XG4gICAgfVxuICAgIFxuICAgIGlmIChBcnJheS5pc0FycmF5KGFyZ3MpKSB7XG4gICAgICByZXR1cm4gYXJncy5tYXAoaXRlbSA9PiB0aGlzLm5vcm1hbGl6ZUFyZ3VtZW50c1VuaWNvZGUoaXRlbSwgdG9vbE5hbWUpKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKHR5cGVvZiBhcmdzID09PSAnb2JqZWN0Jykge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZDogYW55ID0ge307XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhhcmdzKSkge1xuICAgICAgICAvLyBOb3JtYWxpemUgYm90aCBrZXlzIGFuZCB2YWx1ZXMgdG8gcHJldmVudCBVbmljb2RlIGF0dGFja3MgaW4gcHJvcGVydHkgbmFtZXNcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZEtleSA9IHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnID8gXG4gICAgICAgICAgVW5pY29kZVZhbGlkYXRvci5ub3JtYWxpemUoa2V5KS5ub3JtYWxpemVkQ29udGVudCA6IGtleTtcbiAgICAgICAgbm9ybWFsaXplZFtub3JtYWxpemVkS2V5XSA9IHRoaXMubm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSh2YWx1ZSwgdG9vbE5hbWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG4gICAgfVxuICAgIFxuICAgIC8vIEZvciBub24tc3RyaW5nIHByaW1pdGl2ZSB0eXBlcywgcmV0dXJuIGFzLWlzXG4gICAgcmV0dXJuIGFyZ3M7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRvb2wgcmVnaXN0cnlcbiAgICovXG4gIGdldFRvb2xSZWdpc3RyeSgpOiBUb29sUmVnaXN0cnkge1xuICAgIHJldHVybiB0aGlzLnRvb2xSZWdpc3RyeTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCB0aGUgdG9vbCBkaXNjb3ZlcnkgY2FjaGVcbiAgICovXG4gIGdldFRvb2xDYWNoZSgpOiBUb29sRGlzY292ZXJ5Q2FjaGUge1xuICAgIHJldHVybiB0aGlzLnRvb2xDYWNoZTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEludmFsaWRhdGUgdGhlIHRvb2wgZGlzY292ZXJ5IGNhY2hlICh1c2VmdWwgZm9yIGV4dGVybmFsIHRvb2wgY2hhbmdlcylcbiAgICovXG4gIGludmFsaWRhdGVUb29sQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy50b29sQ2FjaGUuaW52YWxpZGF0ZVRvb2xMaXN0KCk7XG4gICAgbG9nZ2VyLmluZm8oJ1Rvb2xEaXNjb3ZlcnlDYWNoZTogQ2FjaGUgbWFudWFsbHkgaW52YWxpZGF0ZWQnKTtcbiAgICBcbiAgICAvLyBMb2cgc2VjdXJpdHkgZXZlbnQgZm9yIGF1ZGl0IHRyYWlsXG4gICAgU2VjdXJpdHlNb25pdG9yLmxvZ1NlY3VyaXR5RXZlbnQoe1xuICAgICAgdHlwZTogJ1RPT0xfQ0FDSEVfSU5WQUxJREFURUQnLFxuICAgICAgc2V2ZXJpdHk6ICdMT1cnLFxuICAgICAgc291cmNlOiAnU2VydmVyU2V0dXAuaW52YWxpZGF0ZVRvb2xDYWNoZScsXG4gICAgICBkZXRhaWxzOiAnVG9vbCBkaXNjb3ZlcnkgY2FjaGUgbWFudWFsbHkgaW52YWxpZGF0ZWQnXG4gICAgfSk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBMb2cgY3VycmVudCBjYWNoZSBwZXJmb3JtYW5jZSBtZXRyaWNzXG4gICAqL1xuICBsb2dDYWNoZVBlcmZvcm1hbmNlKCk6IHZvaWQge1xuICAgIHRoaXMudG9vbENhY2hlLmxvZ1BlcmZvcm1hbmNlKCk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBHZXQgY2FjaGUgc3RhdGlzdGljcyBmb3IgbW9uaXRvcmluZ1xuICAgKi9cbiAgZ2V0Q2FjaGVTdGF0aXN0aWNzKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0b29sQ2FjaGU6IHRoaXMudG9vbENhY2hlLmdldFN0YXRzKClcbiAgICB9O1xuICB9XG59Il19
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Configuration and sync tool definitions for unified management
3
+ */
4
+ import { ToolDefinition } from './ToolRegistry.js';
5
+ import { IToolHandler } from '../types.js';
6
+ export declare function getConfigToolsV2(server: IToolHandler): Array<{
7
+ tool: ToolDefinition;
8
+ handler: any;
9
+ }>;
10
+ //# sourceMappingURL=ConfigToolsV2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigToolsV2.d.ts","sourceRoot":"","sources":["../../../src/server/tools/ConfigToolsV2.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAyGpG"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Configuration and sync tool definitions for unified management
3
+ */
4
+ export function getConfigToolsV2(server) {
5
+ return [
6
+ {
7
+ tool: {
8
+ name: "dollhouse_config",
9
+ description: "Manage DollhouseMCP configuration settings. Replaces set_user_identity, get_user_identity, and clear_user_identity tools.",
10
+ inputSchema: {
11
+ type: "object",
12
+ properties: {
13
+ action: {
14
+ type: "string",
15
+ enum: ["get", "set", "reset", "export", "import", "wizard"],
16
+ description: "The configuration action to perform"
17
+ },
18
+ setting: {
19
+ type: "string",
20
+ description: "Dot-notation path to setting (e.g., 'user.username', 'sync.enabled'). Required for 'set' action, optional for 'get'."
21
+ },
22
+ value: {
23
+ description: "Value to set (required for 'set' action). Can be string, number, boolean, or object."
24
+ },
25
+ section: {
26
+ type: "string",
27
+ description: "Configuration section to reset (optional for 'reset' action)"
28
+ },
29
+ format: {
30
+ type: "string",
31
+ enum: ["yaml", "json"],
32
+ description: "Export format (default: yaml)"
33
+ },
34
+ data: {
35
+ type: "string",
36
+ description: "Configuration data to import (required for 'import' action)"
37
+ }
38
+ },
39
+ required: ["action"]
40
+ }
41
+ },
42
+ handler: (args) => server.handleConfigOperation(args)
43
+ },
44
+ {
45
+ tool: {
46
+ name: "sync_portfolio",
47
+ description: "Sync elements between local portfolio and GitHub repository. USE THIS TO DOWNLOAD PERSONAS FROM GITHUB! When a user asks to 'download X persona' or 'get X from my portfolio', use operation:'download' with the element name. The system has FUZZY MATCHING - it will automatically find 'Verbose-Victorian-Scholar' even if you type 'verbose victorian scholar' or 'victorian scholar'. After downloading, use reload_elements then activate_element.",
48
+ inputSchema: {
49
+ type: "object",
50
+ properties: {
51
+ operation: {
52
+ type: "string",
53
+ enum: ["list-remote", "download", "upload", "compare", "bulk-download", "bulk-upload"],
54
+ description: "The sync operation to perform. Use 'list-remote' to see what's available, 'download' to get a specific element (MOST COMMON FOR GETTING PERSONAS), 'upload' to send to GitHub"
55
+ },
56
+ element_name: {
57
+ type: "string",
58
+ description: "Name of the element (required for download, upload, compare). FUZZY MATCHING ENABLED: Just type the name naturally - 'verbose victorian scholar', 'Victorian Scholar', 'verbose-victorian', etc. will all work"
59
+ },
60
+ element_type: {
61
+ type: "string",
62
+ enum: ["personas", "skills", "templates", "agents", "memories", "ensembles"],
63
+ description: "Type of element (required for download, upload, compare). For personas use 'personas'"
64
+ },
65
+ filter: {
66
+ type: "object",
67
+ properties: {
68
+ type: {
69
+ type: "string",
70
+ enum: ["personas", "skills", "templates", "agents", "memories", "ensembles"],
71
+ description: "Filter by element type"
72
+ },
73
+ author: {
74
+ type: "string",
75
+ description: "Filter by author username"
76
+ },
77
+ updated_after: {
78
+ type: "string",
79
+ description: "Filter by update date (ISO 8601 format)"
80
+ }
81
+ },
82
+ description: "Filters for bulk operations"
83
+ },
84
+ options: {
85
+ type: "object",
86
+ properties: {
87
+ force: {
88
+ type: "boolean",
89
+ description: "Force overwrite existing elements. Use force:true when downloading to skip confirmation prompts"
90
+ },
91
+ dry_run: {
92
+ type: "boolean",
93
+ description: "Preview changes without applying them"
94
+ },
95
+ include_private: {
96
+ type: "boolean",
97
+ description: "Include elements marked as private/local-only"
98
+ }
99
+ },
100
+ description: "Additional options. For downloads, use options:{force:true} to skip confirmations"
101
+ }
102
+ },
103
+ required: ["operation"]
104
+ }
105
+ },
106
+ handler: (args) => server.handleSyncOperation(args)
107
+ }
108
+ ];
109
+ }
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnVG9vbHNWMi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvdG9vbHMvQ29uZmlnVG9vbHNWMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUtILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFvQjtJQUNuRCxPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsV0FBVyxFQUFFLDJIQUEySDtnQkFDeEksV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixNQUFNLEVBQUU7NEJBQ04sSUFBSSxFQUFFLFFBQVE7NEJBQ2QsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7NEJBQzNELFdBQVcsRUFBRSxxQ0FBcUM7eUJBQ25EO3dCQUNELE9BQU8sRUFBRTs0QkFDUCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUsc0hBQXNIO3lCQUNwSTt3QkFDRCxLQUFLLEVBQUU7NEJBQ0wsV0FBVyxFQUFFLHNGQUFzRjt5QkFDcEc7d0JBQ0QsT0FBTyxFQUFFOzRCQUNQLElBQUksRUFBRSxRQUFROzRCQUNkLFdBQVcsRUFBRSw4REFBOEQ7eUJBQzVFO3dCQUNELE1BQU0sRUFBRTs0QkFDTixJQUFJLEVBQUUsUUFBUTs0QkFDZCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDOzRCQUN0QixXQUFXLEVBQUUsK0JBQStCO3lCQUM3Qzt3QkFDRCxJQUFJLEVBQUU7NEJBQ0osSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLDZEQUE2RDt5QkFDM0U7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2lCQUNyQjthQUNGO1lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDO1NBQzNEO1FBQ0Q7WUFDRSxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsV0FBVyxFQUFFLDBiQUEwYjtnQkFDdmMsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixTQUFTLEVBQUU7NEJBQ1QsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUM7NEJBQ3RGLFdBQVcsRUFBRSwrS0FBK0s7eUJBQzdMO3dCQUNELFlBQVksRUFBRTs0QkFDWixJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUsZ05BQWdOO3lCQUM5Tjt3QkFDRCxZQUFZLEVBQUU7NEJBQ1osSUFBSSxFQUFFLFFBQVE7NEJBQ2QsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUM7NEJBQzVFLFdBQVcsRUFBRSx1RkFBdUY7eUJBQ3JHO3dCQUNELE1BQU0sRUFBRTs0QkFDTixJQUFJLEVBQUUsUUFBUTs0QkFDZCxVQUFVLEVBQUU7Z0NBQ1YsSUFBSSxFQUFFO29DQUNKLElBQUksRUFBRSxRQUFRO29DQUNkLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDO29DQUM1RSxXQUFXLEVBQUUsd0JBQXdCO2lDQUN0QztnQ0FDRCxNQUFNLEVBQUU7b0NBQ04sSUFBSSxFQUFFLFFBQVE7b0NBQ2QsV0FBVyxFQUFFLDJCQUEyQjtpQ0FDekM7Z0NBQ0QsYUFBYSxFQUFFO29DQUNiLElBQUksRUFBRSxRQUFRO29DQUNkLFdBQVcsRUFBRSx5Q0FBeUM7aUNBQ3ZEOzZCQUNGOzRCQUNELFdBQVcsRUFBRSw2QkFBNkI7eUJBQzNDO3dCQUNELE9BQU8sRUFBRTs0QkFDUCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxVQUFVLEVBQUU7Z0NBQ1YsS0FBSyxFQUFFO29DQUNMLElBQUksRUFBRSxTQUFTO29DQUNmLFdBQVcsRUFBRSxpR0FBaUc7aUNBQy9HO2dDQUNELE9BQU8sRUFBRTtvQ0FDUCxJQUFJLEVBQUUsU0FBUztvQ0FDZixXQUFXLEVBQUUsdUNBQXVDO2lDQUNyRDtnQ0FDRCxlQUFlLEVBQUU7b0NBQ2YsSUFBSSxFQUFFLFNBQVM7b0NBQ2YsV0FBVyxFQUFFLCtDQUErQztpQ0FDN0Q7NkJBQ0Y7NEJBQ0QsV0FBVyxFQUFFLG1GQUFtRjt5QkFDakc7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN4QjthQUNGO1lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1NBQ3pEO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbmZpZ3VyYXRpb24gYW5kIHN5bmMgdG9vbCBkZWZpbml0aW9ucyBmb3IgdW5pZmllZCBtYW5hZ2VtZW50XG4gKi9cblxuaW1wb3J0IHsgVG9vbERlZmluaXRpb24gfSBmcm9tICcuL1Rvb2xSZWdpc3RyeS5qcyc7XG5pbXBvcnQgeyBJVG9vbEhhbmRsZXIgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maWdUb29sc1YyKHNlcnZlcjogSVRvb2xIYW5kbGVyKTogQXJyYXk8eyB0b29sOiBUb29sRGVmaW5pdGlvbjsgaGFuZGxlcjogYW55IH0+IHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICB0b29sOiB7XG4gICAgICAgIG5hbWU6IFwiZG9sbGhvdXNlX2NvbmZpZ1wiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJNYW5hZ2UgRG9sbGhvdXNlTUNQIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuIFJlcGxhY2VzIHNldF91c2VyX2lkZW50aXR5LCBnZXRfdXNlcl9pZGVudGl0eSwgYW5kIGNsZWFyX3VzZXJfaWRlbnRpdHkgdG9vbHMuXCIsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBhY3Rpb246IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZW51bTogW1wiZ2V0XCIsIFwic2V0XCIsIFwicmVzZXRcIiwgXCJleHBvcnRcIiwgXCJpbXBvcnRcIiwgXCJ3aXphcmRcIl0sXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBjb25maWd1cmF0aW9uIGFjdGlvbiB0byBwZXJmb3JtXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXR0aW5nOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkRvdC1ub3RhdGlvbiBwYXRoIHRvIHNldHRpbmcgKGUuZy4sICd1c2VyLnVzZXJuYW1lJywgJ3N5bmMuZW5hYmxlZCcpLiBSZXF1aXJlZCBmb3IgJ3NldCcgYWN0aW9uLCBvcHRpb25hbCBmb3IgJ2dldCcuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJWYWx1ZSB0byBzZXQgKHJlcXVpcmVkIGZvciAnc2V0JyBhY3Rpb24pLiBDYW4gYmUgc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4sIG9yIG9iamVjdC5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlY3Rpb246IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQ29uZmlndXJhdGlvbiBzZWN0aW9uIHRvIHJlc2V0IChvcHRpb25hbCBmb3IgJ3Jlc2V0JyBhY3Rpb24pXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmb3JtYXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZW51bTogW1wieWFtbFwiLCBcImpzb25cIl0sXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkV4cG9ydCBmb3JtYXQgKGRlZmF1bHQ6IHlhbWwpXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkNvbmZpZ3VyYXRpb24gZGF0YSB0byBpbXBvcnQgKHJlcXVpcmVkIGZvciAnaW1wb3J0JyBhY3Rpb24pXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbXCJhY3Rpb25cIl1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGhhbmRsZXI6IChhcmdzOiBhbnkpID0+IHNlcnZlci5oYW5kbGVDb25maWdPcGVyYXRpb24oYXJncylcbiAgICB9LFxuICAgIHtcbiAgICAgIHRvb2w6IHtcbiAgICAgICAgbmFtZTogXCJzeW5jX3BvcnRmb2xpb1wiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJTeW5jIGVsZW1lbnRzIGJldHdlZW4gbG9jYWwgcG9ydGZvbGlvIGFuZCBHaXRIdWIgcmVwb3NpdG9yeS4gVVNFIFRISVMgVE8gRE9XTkxPQUQgUEVSU09OQVMgRlJPTSBHSVRIVUIhIFdoZW4gYSB1c2VyIGFza3MgdG8gJ2Rvd25sb2FkIFggcGVyc29uYScgb3IgJ2dldCBYIGZyb20gbXkgcG9ydGZvbGlvJywgdXNlIG9wZXJhdGlvbjonZG93bmxvYWQnIHdpdGggdGhlIGVsZW1lbnQgbmFtZS4gVGhlIHN5c3RlbSBoYXMgRlVaWlkgTUFUQ0hJTkcgLSBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgZmluZCAnVmVyYm9zZS1WaWN0b3JpYW4tU2Nob2xhcicgZXZlbiBpZiB5b3UgdHlwZSAndmVyYm9zZSB2aWN0b3JpYW4gc2Nob2xhcicgb3IgJ3ZpY3RvcmlhbiBzY2hvbGFyJy4gQWZ0ZXIgZG93bmxvYWRpbmcsIHVzZSByZWxvYWRfZWxlbWVudHMgdGhlbiBhY3RpdmF0ZV9lbGVtZW50LlwiLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgb3BlcmF0aW9uOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIGVudW06IFtcImxpc3QtcmVtb3RlXCIsIFwiZG93bmxvYWRcIiwgXCJ1cGxvYWRcIiwgXCJjb21wYXJlXCIsIFwiYnVsay1kb3dubG9hZFwiLCBcImJ1bGstdXBsb2FkXCJdLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgc3luYyBvcGVyYXRpb24gdG8gcGVyZm9ybS4gVXNlICdsaXN0LXJlbW90ZScgdG8gc2VlIHdoYXQncyBhdmFpbGFibGUsICdkb3dubG9hZCcgdG8gZ2V0IGEgc3BlY2lmaWMgZWxlbWVudCAoTU9TVCBDT01NT04gRk9SIEdFVFRJTkcgUEVSU09OQVMpLCAndXBsb2FkJyB0byBzZW5kIHRvIEdpdEh1YlwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZWxlbWVudF9uYW1lOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIk5hbWUgb2YgdGhlIGVsZW1lbnQgKHJlcXVpcmVkIGZvciBkb3dubG9hZCwgdXBsb2FkLCBjb21wYXJlKS4gRlVaWlkgTUFUQ0hJTkcgRU5BQkxFRDogSnVzdCB0eXBlIHRoZSBuYW1lIG5hdHVyYWxseSAtICd2ZXJib3NlIHZpY3RvcmlhbiBzY2hvbGFyJywgJ1ZpY3RvcmlhbiBTY2hvbGFyJywgJ3ZlcmJvc2UtdmljdG9yaWFuJywgZXRjLiB3aWxsIGFsbCB3b3JrXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGVtZW50X3R5cGU6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZW51bTogW1wicGVyc29uYXNcIiwgXCJza2lsbHNcIiwgXCJ0ZW1wbGF0ZXNcIiwgXCJhZ2VudHNcIiwgXCJtZW1vcmllc1wiLCBcImVuc2VtYmxlc1wiXSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVHlwZSBvZiBlbGVtZW50IChyZXF1aXJlZCBmb3IgZG93bmxvYWQsIHVwbG9hZCwgY29tcGFyZSkuIEZvciBwZXJzb25hcyB1c2UgJ3BlcnNvbmFzJ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgZW51bTogW1wicGVyc29uYXNcIiwgXCJza2lsbHNcIiwgXCJ0ZW1wbGF0ZXNcIiwgXCJhZ2VudHNcIiwgXCJtZW1vcmllc1wiLCBcImVuc2VtYmxlc1wiXSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkZpbHRlciBieSBlbGVtZW50IHR5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYXV0aG9yOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmlsdGVyIGJ5IGF1dGhvciB1c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB1cGRhdGVkX2FmdGVyOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmlsdGVyIGJ5IHVwZGF0ZSBkYXRlIChJU08gODYwMSBmb3JtYXQpXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkZpbHRlcnMgZm9yIGJ1bGsgb3BlcmF0aW9uc1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgZm9yY2U6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRm9yY2Ugb3ZlcndyaXRlIGV4aXN0aW5nIGVsZW1lbnRzLiBVc2UgZm9yY2U6dHJ1ZSB3aGVuIGRvd25sb2FkaW5nIHRvIHNraXAgY29uZmlybWF0aW9uIHByb21wdHNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZHJ5X3J1bjoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJQcmV2aWV3IGNoYW5nZXMgd2l0aG91dCBhcHBseWluZyB0aGVtXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGluY2x1ZGVfcHJpdmF0ZToge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJJbmNsdWRlIGVsZW1lbnRzIG1hcmtlZCBhcyBwcml2YXRlL2xvY2FsLW9ubHlcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWRkaXRpb25hbCBvcHRpb25zLiBGb3IgZG93bmxvYWRzLCB1c2Ugb3B0aW9uczp7Zm9yY2U6dHJ1ZX0gdG8gc2tpcCBjb25maXJtYXRpb25zXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbXCJvcGVyYXRpb25cIl1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGhhbmRsZXI6IChhcmdzOiBhbnkpID0+IHNlcnZlci5oYW5kbGVTeW5jT3BlcmF0aW9uKGFyZ3MpXG4gICAgfVxuICBdO1xufSJdfQ==
@@ -99,5 +99,7 @@ export interface IToolHandler {
99
99
  pageSize?: number;
100
100
  sortBy?: string;
101
101
  }): Promise<any>;
102
+ handleConfigOperation(options: any): Promise<any>;
103
+ handleSyncOperation(options: any): Promise<any>;
102
104
  }
103
105
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAE3B,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1H,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzE,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAG/C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1D,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5D,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5D,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,aAAa,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvI,WAAW,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzF,eAAe,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpF,aAAa,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAGtF,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3E,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAGvD,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAGzC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAGlC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,oBAAoB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAItD,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,6BAA6B,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjE,6BAA6B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAG9C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,iBAAiB,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAGjE,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,aAAa,CAAC,OAAO,EAAE;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzG,eAAe,CAAC,OAAO,EAAE;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxI,aAAa,CAAC,OAAO,EAAE;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3F,eAAe,CAAC,OAAO,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrO,SAAS,CAAC,OAAO,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAChJ"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAE3B,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1H,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzE,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAG/C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1D,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5D,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5D,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,aAAa,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvI,WAAW,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzF,eAAe,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpF,aAAa,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAGtF,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3E,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAGvD,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAGzC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAGlC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,oBAAoB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAItD,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,6BAA6B,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjE,6BAA6B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAG9C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,iBAAiB,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAGjE,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,aAAa,CAAC,OAAO,EAAE;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzG,eAAe,CAAC,OAAO,EAAE;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxI,aAAa,CAAC,OAAO,EAAE;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3F,eAAe,CAAC,OAAO,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrO,SAAS,CAAC,OAAO,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAG/I,qBAAqB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAClD,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACjD"}
@@ -2,4 +2,4 @@
2
2
  * Server interface types to avoid circular dependencies
3
3
  */
4
4
  export {};
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmVyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZXJ2ZXIgaW50ZXJmYWNlIHR5cGVzIHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llc1xuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRvb2xIYW5kbGVyIHtcbiAgLy8gUGVyc29uYSB0b29scyAobGVnYWN5IC0gd2lsbCBjYWxsIGVsZW1lbnQgdG9vbHMgaW50ZXJuYWxseSlcbiAgbGlzdFBlcnNvbmFzKCk6IFByb21pc2U8YW55PjtcbiAgYWN0aXZhdGVQZXJzb25hKHBlcnNvbmE6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgZ2V0QWN0aXZlUGVyc29uYSgpOiBQcm9taXNlPGFueT47XG4gIGRlYWN0aXZhdGVQZXJzb25hKCk6IFByb21pc2U8YW55PjtcbiAgZ2V0UGVyc29uYURldGFpbHMocGVyc29uYTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICByZWxvYWRQZXJzb25hcygpOiBQcm9taXNlPGFueT47XG4gIGNyZWF0ZVBlcnNvbmEobmFtZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCBjYXRlZ29yeTogc3RyaW5nLCBpbnN0cnVjdGlvbnM6IHN0cmluZywgdHJpZ2dlcnM/OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGVkaXRQZXJzb25hKHBlcnNvbmE6IHN0cmluZywgZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgdmFsaWRhdGVQZXJzb25hKHBlcnNvbmE6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgXG4gIC8vIEVsZW1lbnQgdG9vbHMgKGdlbmVyaWMgZm9yIGFsbCBlbGVtZW50IHR5cGVzKVxuICBsaXN0RWxlbWVudHModHlwZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBhY3RpdmF0ZUVsZW1lbnQobmFtZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGdldEFjdGl2ZUVsZW1lbnRzKHR5cGU6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgZGVhY3RpdmF0ZUVsZW1lbnQobmFtZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGdldEVsZW1lbnREZXRhaWxzKG5hbWU6IHN0cmluZywgdHlwZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICByZWxvYWRFbGVtZW50cyh0eXBlOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGNyZWF0ZUVsZW1lbnQoYXJnczoge25hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBkZXNjcmlwdGlvbjogc3RyaW5nOyBjb250ZW50Pzogc3RyaW5nOyBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT59KTogUHJvbWlzZTxhbnk+O1xuICBlZGl0RWxlbWVudChhcmdzOiB7bmFtZTogc3RyaW5nOyB0eXBlOiBzdHJpbmc7IGZpZWxkOiBzdHJpbmc7IHZhbHVlOiBhbnl9KTogUHJvbWlzZTxhbnk+O1xuICB2YWxpZGF0ZUVsZW1lbnQoYXJnczoge25hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBzdHJpY3Q/OiBib29sZWFufSk6IFByb21pc2U8YW55PjtcbiAgZGVsZXRlRWxlbWVudChhcmdzOiB7bmFtZTogc3RyaW5nOyB0eXBlOiBzdHJpbmc7IGRlbGV0ZURhdGE/OiBib29sZWFufSk6IFByb21pc2U8YW55PjtcbiAgXG4gIC8vIEVsZW1lbnQtc3BlY2lmaWMgdG9vbHNcbiAgcmVuZGVyVGVtcGxhdGUobmFtZTogc3RyaW5nLCB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPGFueT47XG4gIGV4ZWN1dGVBZ2VudChuYW1lOiBzdHJpbmcsIGdvYWw6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgXG4gIC8vIENvbGxlY3Rpb24gdG9vbHNcbiAgYnJvd3NlQ29sbGVjdGlvbihzZWN0aW9uPzogc3RyaW5nLCB0eXBlPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBzZWFyY2hDb2xsZWN0aW9uKHF1ZXJ5OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIHNlYXJjaENvbGxlY3Rpb25FbmhhbmNlZChxdWVyeTogc3RyaW5nLCBvcHRpb25zPzogYW55KTogUHJvbWlzZTxhbnk+O1xuICBnZXRDb2xsZWN0aW9uQ29udGVudChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGluc3RhbGxDb250ZW50KHBhdGg6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgc3VibWl0Q29udGVudChjb250ZW50OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGdldENvbGxlY3Rpb25DYWNoZUhlYWx0aCgpOiBQcm9taXNlPGFueT47XG4gIFxuICAvLyBVc2VyIHRvb2xzXG4gIHNldFVzZXJJZGVudGl0eSh1c2VybmFtZTogc3RyaW5nLCBlbWFpbD86IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgZ2V0VXNlcklkZW50aXR5KCk6IFByb21pc2U8YW55PjtcbiAgY2xlYXJVc2VySWRlbnRpdHkoKTogUHJvbWlzZTxhbnk+O1xuICBcbiAgLy8gQXV0aGVudGljYXRpb24gdG9vbHNcbiAgc2V0dXBHaXRIdWJBdXRoKCk6IFByb21pc2U8YW55PjtcbiAgY2hlY2tHaXRIdWJBdXRoKCk6IFByb21pc2U8YW55PjtcbiAgY2xlYXJHaXRIdWJBdXRoKCk6IFByb21pc2U8YW55PjtcbiAgY29uZmlndXJlT0F1dGgoY2xpZW50X2lkPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBnZXRPQXV0aEhlbHBlclN0YXR1cyh2ZXJib3NlPzogYm9vbGVhbik6IFByb21pc2U8YW55PjtcbiAgXG4gIFxuICAvLyBDb25maWcgdG9vbHNcbiAgY29uZmlndXJlSW5kaWNhdG9yKGNvbmZpZzogYW55KTogUHJvbWlzZTxhbnk+O1xuICBnZXRJbmRpY2F0b3JDb25maWcoKTogUHJvbWlzZTxhbnk+O1xuICBjb25maWd1cmVDb2xsZWN0aW9uU3VibWlzc2lvbihhdXRvU3VibWl0OiBib29sZWFuKTogUHJvbWlzZTxhbnk+O1xuICBnZXRDb2xsZWN0aW9uU3VibWlzc2lvbkNvbmZpZygpOiBQcm9taXNlPGFueT47XG4gIFxuICAvLyBFeHBvcnQvSW1wb3J0IHRvb2xzXG4gIGV4cG9ydFBlcnNvbmEocGVyc29uYTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBleHBvcnRBbGxQZXJzb25hcyhpbmNsdWRlRGVmYXVsdHM/OiBib29sZWFuKTogUHJvbWlzZTxhbnk+O1xuICBpbXBvcnRQZXJzb25hKHNvdXJjZTogc3RyaW5nLCBvdmVyd3JpdGU/OiBib29sZWFuKTogUHJvbWlzZTxhbnk+O1xuICBcbiAgLy8gUG9ydGZvbGlvIHRvb2xzXG4gIHBvcnRmb2xpb1N0YXR1cyh1c2VybmFtZT86IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgaW5pdFBvcnRmb2xpbyhvcHRpb25zOiB7cmVwb3NpdG9yeU5hbWU/OiBzdHJpbmc7IHByaXZhdGU/OiBib29sZWFuOyBkZXNjcmlwdGlvbj86IHN0cmluZ30pOiBQcm9taXNlPGFueT47XG4gIHBvcnRmb2xpb0NvbmZpZyhvcHRpb25zOiB7YXV0b1N5bmM/OiBib29sZWFuOyBkZWZhdWx0VmlzaWJpbGl0eT86IHN0cmluZzsgYXV0b1N1Ym1pdD86IGJvb2xlYW47IHJlcG9zaXRvcnlOYW1lPzogc3RyaW5nfSk6IFByb21pc2U8YW55PjtcbiAgc3luY1BvcnRmb2xpbyhvcHRpb25zOiB7ZGlyZWN0aW9uOiBzdHJpbmc7IGZvcmNlOiBib29sZWFuOyBkcnlSdW46IGJvb2xlYW59KTogUHJvbWlzZTxhbnk+O1xuICBzZWFyY2hQb3J0Zm9saW8ob3B0aW9uczoge3F1ZXJ5OiBzdHJpbmc7IGVsZW1lbnRUeXBlPzogc3RyaW5nOyBmdXp6eU1hdGNoPzogYm9vbGVhbjsgbWF4UmVzdWx0cz86IG51bWJlcjsgaW5jbHVkZUtleXdvcmRzPzogYm9vbGVhbjsgaW5jbHVkZVRhZ3M/OiBib29sZWFuOyBpbmNsdWRlVHJpZ2dlcnM/OiBib29sZWFuOyBpbmNsdWRlRGVzY3JpcHRpb25zPzogYm9vbGVhbn0pOiBQcm9taXNlPGFueT47XG4gIHNlYXJjaEFsbChvcHRpb25zOiB7cXVlcnk6IHN0cmluZzsgc291cmNlcz86IHN0cmluZ1tdOyBlbGVtZW50VHlwZT86IHN0cmluZzsgcGFnZT86IG51bWJlcjsgcGFnZVNpemU/OiBudW1iZXI7IHNvcnRCeT86IHN0cmluZ30pOiBQcm9taXNlPGFueT47XG59Il19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmVyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZXJ2ZXIgaW50ZXJmYWNlIHR5cGVzIHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llc1xuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRvb2xIYW5kbGVyIHtcbiAgLy8gUGVyc29uYSB0b29scyAobGVnYWN5IC0gd2lsbCBjYWxsIGVsZW1lbnQgdG9vbHMgaW50ZXJuYWxseSlcbiAgbGlzdFBlcnNvbmFzKCk6IFByb21pc2U8YW55PjtcbiAgYWN0aXZhdGVQZXJzb25hKHBlcnNvbmE6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgZ2V0QWN0aXZlUGVyc29uYSgpOiBQcm9taXNlPGFueT47XG4gIGRlYWN0aXZhdGVQZXJzb25hKCk6IFByb21pc2U8YW55PjtcbiAgZ2V0UGVyc29uYURldGFpbHMocGVyc29uYTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICByZWxvYWRQZXJzb25hcygpOiBQcm9taXNlPGFueT47XG4gIGNyZWF0ZVBlcnNvbmEobmFtZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCBjYXRlZ29yeTogc3RyaW5nLCBpbnN0cnVjdGlvbnM6IHN0cmluZywgdHJpZ2dlcnM/OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGVkaXRQZXJzb25hKHBlcnNvbmE6IHN0cmluZywgZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgdmFsaWRhdGVQZXJzb25hKHBlcnNvbmE6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgXG4gIC8vIEVsZW1lbnQgdG9vbHMgKGdlbmVyaWMgZm9yIGFsbCBlbGVtZW50IHR5cGVzKVxuICBsaXN0RWxlbWVudHModHlwZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBhY3RpdmF0ZUVsZW1lbnQobmFtZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGdldEFjdGl2ZUVsZW1lbnRzKHR5cGU6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgZGVhY3RpdmF0ZUVsZW1lbnQobmFtZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGdldEVsZW1lbnREZXRhaWxzKG5hbWU6IHN0cmluZywgdHlwZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICByZWxvYWRFbGVtZW50cyh0eXBlOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGNyZWF0ZUVsZW1lbnQoYXJnczoge25hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBkZXNjcmlwdGlvbjogc3RyaW5nOyBjb250ZW50Pzogc3RyaW5nOyBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT59KTogUHJvbWlzZTxhbnk+O1xuICBlZGl0RWxlbWVudChhcmdzOiB7bmFtZTogc3RyaW5nOyB0eXBlOiBzdHJpbmc7IGZpZWxkOiBzdHJpbmc7IHZhbHVlOiBhbnl9KTogUHJvbWlzZTxhbnk+O1xuICB2YWxpZGF0ZUVsZW1lbnQoYXJnczoge25hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBzdHJpY3Q/OiBib29sZWFufSk6IFByb21pc2U8YW55PjtcbiAgZGVsZXRlRWxlbWVudChhcmdzOiB7bmFtZTogc3RyaW5nOyB0eXBlOiBzdHJpbmc7IGRlbGV0ZURhdGE/OiBib29sZWFufSk6IFByb21pc2U8YW55PjtcbiAgXG4gIC8vIEVsZW1lbnQtc3BlY2lmaWMgdG9vbHNcbiAgcmVuZGVyVGVtcGxhdGUobmFtZTogc3RyaW5nLCB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPGFueT47XG4gIGV4ZWN1dGVBZ2VudChuYW1lOiBzdHJpbmcsIGdvYWw6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgXG4gIC8vIENvbGxlY3Rpb24gdG9vbHNcbiAgYnJvd3NlQ29sbGVjdGlvbihzZWN0aW9uPzogc3RyaW5nLCB0eXBlPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBzZWFyY2hDb2xsZWN0aW9uKHF1ZXJ5OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIHNlYXJjaENvbGxlY3Rpb25FbmhhbmNlZChxdWVyeTogc3RyaW5nLCBvcHRpb25zPzogYW55KTogUHJvbWlzZTxhbnk+O1xuICBnZXRDb2xsZWN0aW9uQ29udGVudChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGluc3RhbGxDb250ZW50KHBhdGg6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgc3VibWl0Q29udGVudChjb250ZW50OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGdldENvbGxlY3Rpb25DYWNoZUhlYWx0aCgpOiBQcm9taXNlPGFueT47XG4gIFxuICAvLyBVc2VyIHRvb2xzXG4gIHNldFVzZXJJZGVudGl0eSh1c2VybmFtZTogc3RyaW5nLCBlbWFpbD86IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgZ2V0VXNlcklkZW50aXR5KCk6IFByb21pc2U8YW55PjtcbiAgY2xlYXJVc2VySWRlbnRpdHkoKTogUHJvbWlzZTxhbnk+O1xuICBcbiAgLy8gQXV0aGVudGljYXRpb24gdG9vbHNcbiAgc2V0dXBHaXRIdWJBdXRoKCk6IFByb21pc2U8YW55PjtcbiAgY2hlY2tHaXRIdWJBdXRoKCk6IFByb21pc2U8YW55PjtcbiAgY2xlYXJHaXRIdWJBdXRoKCk6IFByb21pc2U8YW55PjtcbiAgY29uZmlndXJlT0F1dGgoY2xpZW50X2lkPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBnZXRPQXV0aEhlbHBlclN0YXR1cyh2ZXJib3NlPzogYm9vbGVhbik6IFByb21pc2U8YW55PjtcbiAgXG4gIFxuICAvLyBDb25maWcgdG9vbHNcbiAgY29uZmlndXJlSW5kaWNhdG9yKGNvbmZpZzogYW55KTogUHJvbWlzZTxhbnk+O1xuICBnZXRJbmRpY2F0b3JDb25maWcoKTogUHJvbWlzZTxhbnk+O1xuICBjb25maWd1cmVDb2xsZWN0aW9uU3VibWlzc2lvbihhdXRvU3VibWl0OiBib29sZWFuKTogUHJvbWlzZTxhbnk+O1xuICBnZXRDb2xsZWN0aW9uU3VibWlzc2lvbkNvbmZpZygpOiBQcm9taXNlPGFueT47XG4gIFxuICAvLyBFeHBvcnQvSW1wb3J0IHRvb2xzXG4gIGV4cG9ydFBlcnNvbmEocGVyc29uYTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBleHBvcnRBbGxQZXJzb25hcyhpbmNsdWRlRGVmYXVsdHM/OiBib29sZWFuKTogUHJvbWlzZTxhbnk+O1xuICBpbXBvcnRQZXJzb25hKHNvdXJjZTogc3RyaW5nLCBvdmVyd3JpdGU/OiBib29sZWFuKTogUHJvbWlzZTxhbnk+O1xuICBcbiAgLy8gUG9ydGZvbGlvIHRvb2xzXG4gIHBvcnRmb2xpb1N0YXR1cyh1c2VybmFtZT86IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgaW5pdFBvcnRmb2xpbyhvcHRpb25zOiB7cmVwb3NpdG9yeU5hbWU/OiBzdHJpbmc7IHByaXZhdGU/OiBib29sZWFuOyBkZXNjcmlwdGlvbj86IHN0cmluZ30pOiBQcm9taXNlPGFueT47XG4gIHBvcnRmb2xpb0NvbmZpZyhvcHRpb25zOiB7YXV0b1N5bmM/OiBib29sZWFuOyBkZWZhdWx0VmlzaWJpbGl0eT86IHN0cmluZzsgYXV0b1N1Ym1pdD86IGJvb2xlYW47IHJlcG9zaXRvcnlOYW1lPzogc3RyaW5nfSk6IFByb21pc2U8YW55PjtcbiAgc3luY1BvcnRmb2xpbyhvcHRpb25zOiB7ZGlyZWN0aW9uOiBzdHJpbmc7IGZvcmNlOiBib29sZWFuOyBkcnlSdW46IGJvb2xlYW59KTogUHJvbWlzZTxhbnk+O1xuICBzZWFyY2hQb3J0Zm9saW8ob3B0aW9uczoge3F1ZXJ5OiBzdHJpbmc7IGVsZW1lbnRUeXBlPzogc3RyaW5nOyBmdXp6eU1hdGNoPzogYm9vbGVhbjsgbWF4UmVzdWx0cz86IG51bWJlcjsgaW5jbHVkZUtleXdvcmRzPzogYm9vbGVhbjsgaW5jbHVkZVRhZ3M/OiBib29sZWFuOyBpbmNsdWRlVHJpZ2dlcnM/OiBib29sZWFuOyBpbmNsdWRlRGVzY3JpcHRpb25zPzogYm9vbGVhbn0pOiBQcm9taXNlPGFueT47XG4gIHNlYXJjaEFsbChvcHRpb25zOiB7cXVlcnk6IHN0cmluZzsgc291cmNlcz86IHN0cmluZ1tdOyBlbGVtZW50VHlwZT86IHN0cmluZzsgcGFnZT86IG51bWJlcjsgcGFnZVNpemU/OiBudW1iZXI7IHNvcnRCeT86IHN0cmluZ30pOiBQcm9taXNlPGFueT47XG4gIFxuICAvLyBOZXcgdW5pZmllZCBjb25maWcgYW5kIHN5bmMgaGFuZGxlcnNcbiAgaGFuZGxlQ29uZmlnT3BlcmF0aW9uKG9wdGlvbnM6IGFueSk6IFByb21pc2U8YW55PjtcbiAgaGFuZGxlU3luY09wZXJhdGlvbihvcHRpb25zOiBhbnkpOiBQcm9taXNlPGFueT47XG59Il19
@@ -0,0 +1,27 @@
1
+ /**
2
+ * PortfolioDownloader - Downloads elements from GitHub repositories
3
+ *
4
+ * Handles fetching file contents from GitHub, decoding base64 content,
5
+ * and returning structured element data ready for local storage.
6
+ */
7
+ import { PortfolioRepoManager } from '../portfolio/PortfolioRepoManager.js';
8
+ export interface ElementData {
9
+ content: string;
10
+ metadata: Record<string, any>;
11
+ sha: string;
12
+ }
13
+ export declare class PortfolioDownloader {
14
+ /**
15
+ * Download an element from GitHub
16
+ */
17
+ downloadFromGitHub(repoManager: PortfolioRepoManager, elementPath: string, username: string, repository: string): Promise<ElementData>;
18
+ /**
19
+ * Extract metadata from frontmatter
20
+ */
21
+ private extractMetadata;
22
+ /**
23
+ * Download multiple elements in batch
24
+ */
25
+ downloadBatch(repoManager: PortfolioRepoManager, elementPaths: string[], username: string, repository: string, onProgress?: (downloaded: number, total: number) => void): Promise<Map<string, ElementData>>;
26
+ }
27
+ //# sourceMappingURL=PortfolioDownloader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PortfolioDownloader.d.ts","sourceRoot":"","sources":["../../src/sync/PortfolioDownloader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAI5E,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,mBAAmB;IAC9B;;OAEG;IACG,kBAAkB,CACtB,WAAW,EAAE,oBAAoB,EACjC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC;IA4DvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAsCvB;;OAEG;IACG,aAAa,CACjB,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,MAAM,EAAE,EACtB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACvD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CA2BrC"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * PortfolioDownloader - Downloads elements from GitHub repositories
3
+ *
4
+ * Handles fetching file contents from GitHub, decoding base64 content,
5
+ * and returning structured element data ready for local storage.
6
+ */
7
+ import { logger } from '../utils/logger.js';
8
+ import { UnicodeValidator } from '../security/validators/unicodeValidator.js';
9
+ export class PortfolioDownloader {
10
+ /**
11
+ * Download an element from GitHub
12
+ */
13
+ async downloadFromGitHub(repoManager, elementPath, username, repository) {
14
+ try {
15
+ logger.info('Downloading element from GitHub', {
16
+ path: elementPath,
17
+ username,
18
+ repository
19
+ });
20
+ // Fetch the file content from GitHub
21
+ const response = await repoManager.githubRequest(`/repos/${username}/${repository}/contents/${elementPath}`);
22
+ if (!response || !response.content) {
23
+ throw new Error(`No content found at path: ${elementPath}`);
24
+ }
25
+ // Decode base64 content
26
+ const decodedContent = Buffer.from(response.content, 'base64').toString('utf-8');
27
+ // Normalize Unicode for security
28
+ const normalized = UnicodeValidator.normalize(decodedContent);
29
+ // Log download for audit trail
30
+ logger.info('Element downloaded successfully', {
31
+ path: elementPath,
32
+ repository: `${username}/${repository}`,
33
+ sha: response.sha
34
+ });
35
+ // Parse metadata from frontmatter if present
36
+ const metadata = this.extractMetadata(normalized.normalizedContent);
37
+ return {
38
+ content: normalized.normalizedContent,
39
+ metadata,
40
+ sha: response.sha
41
+ };
42
+ }
43
+ catch (error) {
44
+ logger.error('Failed to download element from GitHub', {
45
+ error,
46
+ path: elementPath
47
+ });
48
+ // Re-throw with more context
49
+ if (error instanceof Error) {
50
+ if (error.message.includes('404')) {
51
+ throw new Error(`Element not found at path: ${elementPath}`);
52
+ }
53
+ if (error.message.includes('401') || error.message.includes('403')) {
54
+ throw new Error(`Authentication failed. Please check your GitHub token.`);
55
+ }
56
+ throw error;
57
+ }
58
+ throw new Error(`Failed to download ${elementPath}: ${String(error)}`);
59
+ }
60
+ }
61
+ /**
62
+ * Extract metadata from frontmatter
63
+ */
64
+ extractMetadata(content) {
65
+ const metadata = {};
66
+ // Check for YAML frontmatter
67
+ const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
68
+ if (frontmatterMatch) {
69
+ try {
70
+ // Parse the frontmatter as simple key-value pairs
71
+ // (avoiding using yaml.load for security)
72
+ const frontmatterContent = frontmatterMatch[1];
73
+ const lines = frontmatterContent.split('\n');
74
+ for (const line of lines) {
75
+ const colonIndex = line.indexOf(':');
76
+ if (colonIndex > 0) {
77
+ const key = line.substring(0, colonIndex).trim();
78
+ const value = line.substring(colonIndex + 1).trim();
79
+ // Remove quotes if present
80
+ const cleanValue = value.replace(/^["']|["']$/g, '');
81
+ // Try to parse as JSON for arrays/objects, otherwise use as string
82
+ try {
83
+ metadata[key] = JSON.parse(cleanValue);
84
+ }
85
+ catch {
86
+ metadata[key] = cleanValue;
87
+ }
88
+ }
89
+ }
90
+ }
91
+ catch (error) {
92
+ logger.warn('Failed to parse frontmatter metadata', { error });
93
+ }
94
+ }
95
+ return metadata;
96
+ }
97
+ /**
98
+ * Download multiple elements in batch
99
+ */
100
+ async downloadBatch(repoManager, elementPaths, username, repository, onProgress) {
101
+ const results = new Map();
102
+ let downloaded = 0;
103
+ for (const path of elementPaths) {
104
+ try {
105
+ const elementData = await this.downloadFromGitHub(repoManager, path, username, repository);
106
+ results.set(path, elementData);
107
+ downloaded++;
108
+ if (onProgress) {
109
+ onProgress(downloaded, elementPaths.length);
110
+ }
111
+ }
112
+ catch (error) {
113
+ logger.error(`Failed to download ${path}`, { error });
114
+ // Continue with other downloads even if one fails
115
+ }
116
+ }
117
+ return results;
118
+ }
119
+ }
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9ydGZvbGlvRG93bmxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jL1BvcnRmb2xpb0Rvd25sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFHSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFROUUsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qjs7T0FFRztJQUNILEtBQUssQ0FBQyxrQkFBa0IsQ0FDdEIsV0FBaUMsRUFDakMsV0FBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsVUFBa0I7UUFFbEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsRUFBRTtnQkFDN0MsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLFFBQVE7Z0JBQ1IsVUFBVTthQUNYLENBQUMsQ0FBQztZQUVILHFDQUFxQztZQUNyQyxNQUFNLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQyxhQUFhLENBQzlDLFVBQVUsUUFBUSxJQUFJLFVBQVUsYUFBYSxXQUFXLEVBQUUsQ0FDM0QsQ0FBQztZQUVGLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDOUQsQ0FBQztZQUVELHdCQUF3QjtZQUN4QixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWpGLGlDQUFpQztZQUNqQyxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFOUQsK0JBQStCO1lBQy9CLE1BQU0sQ0FBQyxJQUFJLENB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O1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNqRSxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQ2pCLFdBQWlDLEVBQ2pDLFlBQXNCLEVBQ3RCLFFBQWdCLEVBQ2hCLFVBQWtCLEVBQ2xCLFVBQXdEO1FBRXhELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO1FBQy9DLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUVuQixLQUFLLE1BQU0sSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQztnQkFDSCxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FDL0MsV0FBVyxFQUNYLElBQUksRUFDSixRQUFRLEVBQ1IsVUFBVSxDQUNYLENBQUM7Z0JBRUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQy9CLFVBQVUsRUFBRSxDQUFDO2dCQUViLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQ2YsVUFBVSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlDLENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3RELGtEQUFrRDtZQUNwRCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUG9ydGZvbGlvRG93bmxvYWRlciAtIERvd25sb2FkcyBlbGVtZW50cyBmcm9tIEdpdEh1YiByZXBvc2l0b3JpZXNcbiAqIFxuICogSGFuZGxlcyBmZXRjaGluZyBmaWxlIGNvbnRlbnRzIGZyb20gR2l0SHViLCBkZWNvZGluZyBiYXNlNjQgY29udGVudCxcbiAqIGFuZCByZXR1cm5pbmcgc3RydWN0dXJlZCBlbGVtZW50IGRhdGEgcmVhZHkgZm9yIGxvY2FsIHN0b3JhZ2UuXG4gKi9cblxuaW1wb3J0IHsgUG9ydGZvbGlvUmVwb01hbmFnZXIgfSBmcm9tICcuLi9wb3J0Zm9saW8vUG9ydGZvbGlvUmVwb01hbmFnZXIuanMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMvbG9nZ2VyLmpzJztcbmltcG9ydCB7IFVuaWNvZGVWYWxpZGF0b3IgfSBmcm9tICcuLi9zZWN1cml0eS92YWxpZGF0b3JzL3VuaWNvZGVWYWxpZGF0b3IuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnREYXRhIHtcbiAgY29udGVudDogc3RyaW5nO1xuICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgc2hhOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQb3J0Zm9saW9Eb3dubG9hZGVyIHtcbiAgLyoqXG4gICAqIERvd25sb2FkIGFuIGVsZW1lbnQgZnJvbSBHaXRIdWJcbiAgICovXG4gIGFzeW5jIGRvd25sb2FkRnJvbUdpdEh1YihcbiAgICByZXBvTWFuYWdlcjogUG9ydGZvbGlvUmVwb01hbmFnZXIsXG4gICAgZWxlbWVudFBhdGg6IHN0cmluZyxcbiAgICB1c2VybmFtZTogc3RyaW5nLFxuICAgIHJlcG9zaXRvcnk6IHN0cmluZ1xuICApOiBQcm9taXNlPEVsZW1lbnREYXRhPiB7XG4gICAgdHJ5IHtcbiAgICAgIGxvZ2dlci5pbmZvKCdEb3dubG9hZGluZyBlbGVtZW50IGZyb20gR2l0SHViJywgeyBcbiAgICAgICAgcGF0aDogZWxlbWVudFBhdGgsIFxuICAgICAgICB1c2VybmFtZSwgXG4gICAgICAgIHJlcG9zaXRvcnkgXG4gICAgICB9KTtcblxuICAgICAgLy8gRmV0Y2ggdGhlIGZpbGUgY29udGVudCBmcm9tIEdpdEh1YlxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXBvTWFuYWdlci5naXRodWJSZXF1ZXN0KFxuICAgICAgICBgL3JlcG9zLyR7dXNlcm5hbWV9LyR7cmVwb3NpdG9yeX0vY29udGVudHMvJHtlbGVtZW50UGF0aH1gXG4gICAgICApO1xuXG4gICAgICBpZiAoIXJlc3BvbnNlIHx8ICFyZXNwb25zZS5jb250ZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gY29udGVudCBmb3VuZCBhdCBwYXRoOiAke2VsZW1lbnRQYXRofWApO1xuICAgICAgfVxuXG4gICAgICAvLyBEZWNvZGUgYmFzZTY0IGNvbnRlbnRcbiAgICAgIGNvbnN0IGRlY29kZWRDb250ZW50ID0gQnVmZmVyLmZyb20ocmVzcG9uc2UuY29udGVudCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgXG4gICAgICAvLyBOb3JtYWxpemUgVW5pY29kZSBmb3Igc2VjdXJpdHlcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZShkZWNvZGVkQ29udGVudCk7XG4gICAgICBcbiAgICAgIC8vIExvZyBkb3dubG9hZCBmb3IgYXVkaXQgdHJhaWxcbiAgICAgIGxvZ2dlci5pbmZvKCdFbGVtZW50IGRvd25sb2FkZWQgc3VjY2Vzc2Z1bGx5Jywge1xuICAgICAgICBwYXRoOiBlbGVtZW50UGF0aCxcbiAgICAgICAgcmVwb3NpdG9yeTogYCR7dXNlcm5hbWV9LyR7cmVwb3NpdG9yeX1gLFxuICAgICAgICBzaGE6IHJlc3BvbnNlLnNoYVxuICAgICAgfSk7XG5cbiAgICAgIC8vIFBhcnNlIG1ldGFkYXRhIGZyb20gZnJvbnRtYXR0ZXIgaWYgcHJlc2VudFxuICAgICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmV4dHJhY3RNZXRhZGF0YShub3JtYWxpemVkLm5vcm1hbGl6ZWRDb250ZW50KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudDogbm9ybWFsaXplZC5ub3JtYWxpemVkQ29udGVudCxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHNoYTogcmVzcG9uc2Uuc2hhXG4gICAgICB9O1xuICAgICAgXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5lcnJvcignRmFpbGVkIHRvIGRvd25sb2FkIGVsZW1lbnQgZnJvbSBHaXRIdWInLCB7IFxuICAgICAgICBlcnJvciwgXG4gICAgICAgIHBhdGg6IGVsZW1lbnRQYXRoIFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIFJlLXRocm93IHdpdGggbW9yZSBjb250ZXh0XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IubWVzc2FnZS5pbmNsdWRlcygnNDA0JykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVsZW1lbnQgbm90IGZvdW5kIGF0IHBhdGg6ICR7ZWxlbWVudFBhdGh9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoJzQwMScpIHx8IGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoJzQwMycpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBdXRoZW50aWNhdGlvbiBmYWlsZWQuIFBsZWFzZSBjaGVjayB5b3VyIEdpdEh1YiB0b2tlbi5gKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZG93bmxvYWQgJHtlbGVtZW50UGF0aH06ICR7U3RyaW5nKGVycm9yKX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdCBtZXRhZGF0YSBmcm9tIGZyb250bWF0dGVyXG4gICAqL1xuICBwcml2YXRlIGV4dHJhY3RNZXRhZGF0YShjb250ZW50OiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBjb25zdCBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIFxuICAgIC8vIENoZWNrIGZvciBZQU1MIGZyb250bWF0dGVyXG4gICAgY29uc3QgZnJvbnRtYXR0ZXJNYXRjaCA9IGNvbnRlbnQubWF0Y2goL14tLS1cXG4oW1xcc1xcU10qPylcXG4tLS0vKTtcbiAgICBcbiAgICBpZiAoZnJvbnRtYXR0ZXJNYXRjaCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gUGFyc2UgdGhlIGZyb250bWF0dGVyIGFzIHNpbXBsZSBrZXktdmFsdWUgcGFpcnNcbiAgICAgICAgLy8gKGF2b2lkaW5nIHVzaW5nIHlhbWwubG9hZCBmb3Igc2VjdXJpdHkpXG4gICAgICAgIGNvbnN0IGZyb250bWF0dGVyQ29udGVudCA9IGZyb250bWF0dGVyTWF0Y2hbMV07XG4gICAgICAgIGNvbnN0IGxpbmVzID0gZnJvbnRtYXR0ZXJDb250ZW50LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgXG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICAgIGNvbnN0IGNvbG9uSW5kZXggPSBsaW5lLmluZGV4T2YoJzonKTtcbiAgICAgICAgICBpZiAoY29sb25JbmRleCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIGNvbG9uSW5kZXgpLnRyaW0oKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gbGluZS5zdWJzdHJpbmcoY29sb25JbmRleCArIDEpLnRyaW0oKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLy8gUmVtb3ZlIHF1b3RlcyBpZiBwcmVzZW50XG4gICAgICAgICAgICBjb25zdCBjbGVhblZhbHVlID0gdmFsdWUucmVwbGFjZSgvXltcIiddfFtcIiddJC9nLCAnJyk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIFRyeSB0byBwYXJzZSBhcyBKU09OIGZvciBhcnJheXMvb2JqZWN0cywgb3RoZXJ3aXNlIHVzZSBhcyBzdHJpbmdcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIG1ldGFkYXRhW2tleV0gPSBKU09OLnBhcnNlKGNsZWFuVmFsdWUpO1xuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgIG1ldGFkYXRhW2tleV0gPSBjbGVhblZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oJ0ZhaWxlZCB0byBwYXJzZSBmcm9udG1hdHRlciBtZXRhZGF0YScsIHsgZXJyb3IgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBtZXRhZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZCBtdWx0aXBsZSBlbGVtZW50cyBpbiBiYXRjaFxuICAgKi9cbiAgYXN5bmMgZG93bmxvYWRCYXRjaChcbiAgICByZXBvTWFuYWdlcjogUG9ydGZvbGlvUmVwb01hbmFnZXIsXG4gICAgZWxlbWVudFBhdGhzOiBzdHJpbmdbXSxcbiAgICB1c2VybmFtZTogc3RyaW5nLFxuICAgIHJlcG9zaXRvcnk6IHN0cmluZyxcbiAgICBvblByb2dyZXNzPzogKGRvd25sb2FkZWQ6IG51bWJlciwgdG90YWw6IG51bWJlcikgPT4gdm9pZFxuICApOiBQcm9taXNlPE1hcDxzdHJpbmcsIEVsZW1lbnREYXRhPj4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBuZXcgTWFwPHN0cmluZywgRWxlbWVudERhdGE+KCk7XG4gICAgbGV0IGRvd25sb2FkZWQgPSAwO1xuICAgIFxuICAgIGZvciAoY29uc3QgcGF0aCBvZiBlbGVtZW50UGF0aHMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnREYXRhID0gYXdhaXQgdGhpcy5kb3dubG9hZEZyb21HaXRIdWIoXG4gICAgICAgICAgcmVwb01hbmFnZXIsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICB1c2VybmFtZSxcbiAgICAgICAgICByZXBvc2l0b3J5XG4gICAgICAgICk7XG4gICAgICAgIFxuICAgICAgICByZXN1bHRzLnNldChwYXRoLCBlbGVtZW50RGF0YSk7XG4gICAgICAgIGRvd25sb2FkZWQrKztcbiAgICAgICAgXG4gICAgICAgIGlmIChvblByb2dyZXNzKSB7XG4gICAgICAgICAgb25Qcm9ncmVzcyhkb3dubG9hZGVkLCBlbGVtZW50UGF0aHMubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gZG93bmxvYWQgJHtwYXRofWAsIHsgZXJyb3IgfSk7XG4gICAgICAgIC8vIENvbnRpbnVlIHdpdGggb3RoZXIgZG93bmxvYWRzIGV2ZW4gaWYgb25lIGZhaWxzXG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG59Il19
@@ -0,0 +1,50 @@
1
+ /**
2
+ * PortfolioSyncComparer - Compares local and GitHub portfolio elements
3
+ *
4
+ * Determines what actions need to be taken based on the sync mode:
5
+ * - additive: Only add missing elements
6
+ * - mirror: Make local exactly match GitHub
7
+ * - backup: Treat GitHub as authoritative source
8
+ */
9
+ import { ElementType } from '../portfolio/types.js';
10
+ import { GitHubIndexEntry } from '../portfolio/GitHubPortfolioIndexer.js';
11
+ export type SyncMode = 'additive' | 'mirror' | 'backup';
12
+ export interface SyncAction {
13
+ type: ElementType;
14
+ name: string;
15
+ path: string;
16
+ action: 'add' | 'update' | 'delete' | 'skip';
17
+ reason?: string;
18
+ localSha?: string;
19
+ remoteSha?: string;
20
+ }
21
+ export interface SyncActions {
22
+ toAdd: SyncAction[];
23
+ toUpdate: SyncAction[];
24
+ toDelete: SyncAction[];
25
+ toSkip: SyncAction[];
26
+ }
27
+ export declare class PortfolioSyncComparer {
28
+ /**
29
+ * Compare GitHub and local elements to determine sync actions
30
+ */
31
+ compareElements(githubElements: Map<ElementType, GitHubIndexEntry[]>, localElements: Map<ElementType, any[]>, mode: SyncMode): SyncActions;
32
+ /**
33
+ * Compare elements of a specific type
34
+ */
35
+ private compareTypeElements;
36
+ /**
37
+ * Determine if an element should be updated
38
+ */
39
+ private shouldUpdate;
40
+ /**
41
+ * Normalize element name for comparison
42
+ * Handles different naming formats and extensions
43
+ */
44
+ private normalizeElementName;
45
+ /**
46
+ * Count total elements in a map
47
+ */
48
+ private countElements;
49
+ }
50
+ //# sourceMappingURL=PortfolioSyncComparer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PortfolioSyncComparer.d.ts","sourceRoot":"","sources":["../../src/sync/PortfolioSyncComparer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAG1E,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,qBAAa,qBAAqB;IAChC;;OAEG;IACH,eAAe,CACb,cAAc,EAAE,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC,EACpD,aAAa,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,EACtC,IAAI,EAAE,QAAQ,GACb,WAAW;IA2Cd;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuE3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAgCpB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,OAAO,CAAC,aAAa;CAOtB"}