@dollhousemcp/mcp-server 2.0.15 → 2.0.17

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 (53) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md.backup +18 -0
  3. package/dist/elements/base/BaseElementManager.d.ts.map +1 -1
  4. package/dist/elements/base/BaseElementManager.js +17 -1
  5. package/dist/elements/memories/MemoryManager.d.ts.map +1 -1
  6. package/dist/elements/memories/MemoryManager.js +13 -2
  7. package/dist/generated/version.d.ts +2 -2
  8. package/dist/generated/version.js +3 -3
  9. package/dist/handlers/ElementCRUDHandler.d.ts.map +1 -1
  10. package/dist/handlers/ElementCRUDHandler.js +7 -3
  11. package/dist/handlers/element-crud/createElement.d.ts.map +1 -1
  12. package/dist/handlers/element-crud/createElement.js +6 -2
  13. package/dist/handlers/element-crud/editElement.d.ts.map +1 -1
  14. package/dist/handlers/element-crud/editElement.js +6 -2
  15. package/dist/handlers/element-crud/helpers.d.ts +2 -0
  16. package/dist/handlers/element-crud/helpers.d.ts.map +1 -1
  17. package/dist/handlers/element-crud/helpers.js +21 -2
  18. package/dist/handlers/mcp-aql/IntrospectionResolver.d.ts.map +1 -1
  19. package/dist/handlers/mcp-aql/IntrospectionResolver.js +34 -7
  20. package/dist/handlers/mcp-aql/MCPAQLHandler.d.ts.map +1 -1
  21. package/dist/handlers/mcp-aql/MCPAQLHandler.js +51 -20
  22. package/dist/handlers/mcp-aql/OperationSchema.d.ts.map +1 -1
  23. package/dist/handlers/mcp-aql/OperationSchema.js +6 -4
  24. package/dist/handlers/mcp-aql/evaluatePermission.d.ts +2 -1
  25. package/dist/handlers/mcp-aql/evaluatePermission.d.ts.map +1 -1
  26. package/dist/handlers/mcp-aql/evaluatePermission.js +23 -11
  27. package/dist/handlers/mcp-aql/policies/ElementPolicies.d.ts +8 -0
  28. package/dist/handlers/mcp-aql/policies/ElementPolicies.d.ts.map +1 -1
  29. package/dist/handlers/mcp-aql/policies/ElementPolicies.js +26 -1
  30. package/dist/handlers/strategies/BaseActivationStrategy.d.ts.map +1 -1
  31. package/dist/handlers/strategies/BaseActivationStrategy.js +12 -3
  32. package/dist/handlers/strategies/PersonaActivationStrategy.js +2 -2
  33. package/dist/utils/permissionHooks.d.ts +74 -0
  34. package/dist/utils/permissionHooks.d.ts.map +1 -0
  35. package/dist/utils/permissionHooks.js +771 -0
  36. package/dist/web/public/index.html +12 -6
  37. package/dist/web/public/permissions.css +11 -0
  38. package/dist/web/public/permissions.js +78 -35
  39. package/dist/web/public/setup.css +172 -1
  40. package/dist/web/public/setup.js +644 -38
  41. package/dist/web/routes/permissionRoutes.d.ts.map +1 -1
  42. package/dist/web/routes/permissionRoutes.js +95 -27
  43. package/dist/web/routes/setupRoutes.d.ts +4 -0
  44. package/dist/web/routes/setupRoutes.d.ts.map +1 -1
  45. package/dist/web/routes/setupRoutes.js +122 -39
  46. package/package.json +8 -1
  47. package/scripts/pretooluse-codex.sh +6 -0
  48. package/scripts/pretooluse-cursor.sh +6 -0
  49. package/scripts/pretooluse-dollhouse.sh +110 -0
  50. package/scripts/pretooluse-gemini.sh +6 -0
  51. package/scripts/pretooluse-vscode.sh +163 -0
  52. package/scripts/pretooluse-windsurf.sh +168 -0
  53. package/server.json +2 -2
@@ -118,7 +118,7 @@ export class PersonaActivationStrategy extends BaseActivationStrategy {
118
118
  const r = gk.externalRestrictions;
119
119
  return ` **${p.metadata.name}**: ${r.description}`;
120
120
  }).join('\n');
121
- text += `\n\n**Active CLI Restrictions:**\n${summary}\n> Use \`get_effective_cli_policies\` for full details.`;
121
+ text += `\n\n**Loaded CLI Restrictions:**\n${summary}\n> Use \`get_effective_cli_policies\` for full details.`;
122
122
  }
123
123
  return {
124
124
  content: [{
@@ -156,4 +156,4 @@ export class PersonaActivationStrategy extends BaseActivationStrategy {
156
156
  };
157
157
  }
158
158
  }
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc29uYUFjdGl2YXRpb25TdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oYW5kbGVycy9zdHJhdGVnaWVzL1BlcnNvbmFBY3RpdmF0aW9uU3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFJSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdyRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsc0JBQXNCO0lBRWhEO0lBQ0E7SUFGbkIsWUFDbUIsY0FBOEIsRUFDOUIsZ0JBQXlDO1FBRTFELEtBQUssRUFBRSxDQUFDO1FBSFMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7SUFHNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBWTtRQUN6QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLENBQUM7d0JBQ1IsSUFBSSxFQUFFLE1BQU07d0JBQ1osSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRTtxQkFDekQsQ0FBQzthQUNILENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMvQixN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QUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGVyc29uYUFjdGl2YXRpb25TdHJhdGVneSAtIFN0cmF0ZWd5IGZvciBwZXJzb25hIGVsZW1lbnQgYWN0aXZhdGlvblxuICpcbiAqIEhhbmRsZXMgYWN0aXZhdGlvbiwgZGVhY3RpdmF0aW9uLCBhbmQgc3RhdHVzIHRyYWNraW5nIGZvciBwZXJzb25hIGVsZW1lbnRzLlxuICogVXNlcyB0aGUgUGVyc29uYU1hbmFnZXIncyB1bmlxdWUgQVBJIGFuZCBQZXJzb25hSW5kaWNhdG9yU2VydmljZSBmb3IgZm9ybWF0dGluZy5cbiAqL1xuXG5pbXBvcnQgeyBQZXJzb25hTWFuYWdlciB9IGZyb20gJy4uLy4uL3BlcnNvbmEvUGVyc29uYU1hbmFnZXIuanMnO1xuaW1wb3J0IHsgUGVyc29uYUluZGljYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9QZXJzb25hSW5kaWNhdG9yU2VydmljZS5qcyc7XG5pbXBvcnQgeyBFbGVtZW50Tm90Rm91bmRFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL0Vycm9ySGFuZGxlci5qcyc7XG5pbXBvcnQgeyBCYXNlQWN0aXZhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9CYXNlQWN0aXZhdGlvblN0cmF0ZWd5LmpzJztcbmltcG9ydCB7IEVsZW1lbnRBY3RpdmF0aW9uU3RyYXRlZ3ksIE1DUFJlc3BvbnNlIH0gZnJvbSAnLi9FbGVtZW50QWN0aXZhdGlvblN0cmF0ZWd5LmpzJztcblxuZXhwb3J0IGNsYXNzIFBlcnNvbmFBY3RpdmF0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBCYXNlQWN0aXZhdGlvblN0cmF0ZWd5IGltcGxlbWVudHMgRWxlbWVudEFjdGl2YXRpb25TdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGVyc29uYU1hbmFnZXI6IFBlcnNvbmFNYW5hZ2VyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5kaWNhdG9yU2VydmljZTogUGVyc29uYUluZGljYXRvclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBlcnNvbmEgaW5kaWNhdG9yIHByZWZpeFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRQZXJzb25hSW5kaWNhdG9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5kaWNhdG9yU2VydmljZS5nZXRQZXJzb25hSW5kaWNhdG9yKCk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgYSBwZXJzb25hXG4gICAqIEV4dHJhY3RlZCBmcm9tIEVsZW1lbnRDUlVESGFuZGxlci50cyBsaW5lcyAxNjEtMTgyXG4gICAqL1xuICBhc3luYyBhY3RpdmF0ZShuYW1lOiBzdHJpbmcpOiBQcm9taXNlPE1DUFJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wZXJzb25hTWFuYWdlci5hY3RpdmF0ZVBlcnNvbmEobmFtZSk7XG5cbiAgICBpZiAoIXJlc3VsdC5zdWNjZXNzIHx8ICFyZXN1bHQucGVyc29uYSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICB0ZXh0OiBgJHt0aGlzLmdldFBlcnNvbmFJbmRpY2F0b3IoKX3inYwgJHtyZXN1bHQubWVzc2FnZX1gXG4gICAgICAgIH1dXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHBlcnNvbmEgPSByZXN1bHQucGVyc29uYTtcbiAgICBjb25zdCBpbnN0cnVjdGlvbnMgPSBwZXJzb25hLmluc3RydWN0aW9ucz8udHJpbSgpIHx8IHBlcnNvbmEuY29udGVudD8udHJpbSgpIHx8ICdObyBpbnN0cnVjdGlvbnMgcHJvdmlkZWQuJztcbiAgICBjb25zdCByZWZlcmVuY2VDb250ZW50ID0gcGVyc29uYS5pbnN0cnVjdGlvbnM/LnRyaW0oKSA/IHBlcnNvbmEuY29udGVudD8udHJpbSgpIDogJyc7XG5cbiAgICBsZXQgdGV4dCA9IGAke3RoaXMuZ2V0UGVyc29uYUluZGljYXRvcigpfVBlcnNvbmEgQWN0aXZhdGVkOiAqKiR7cGVyc29uYS5tZXRhZGF0YS5uYW1lfSoqXFxuXFxuJHtwZXJzb25hLm1ldGFkYXRhLmRlc2NyaXB0aW9ufVxcblxcbioqSW5zdHJ1Y3Rpb25zOioqXFxuJHtpbnN0cnVjdGlvbnN9YDtcbiAgICBpZiAocmVmZXJlbmNlQ29udGVudCkge1xuICAgICAgdGV4dCArPSBgXFxuXFxuKipSZWZlcmVuY2U6KipcXG4ke3JlZmVyZW5jZUNvbnRlbnR9YDtcbiAgICB9XG5cbiAgICAvLyBJc3N1ZSAjNjQyOiBGYWlsLXNhZmUgd2FybmluZyBmb3IgQ0xJIHJlc3RyaWN0aW9uc1xuICAgIGNvbnN0IHJlc3RyaWN0aW9uV2FybmluZyA9IHRoaXMuZm9ybWF0UmVzdHJpY3Rpb25XYXJuaW5nKHBlcnNvbmEubWV0YWRhdGEgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG4gICAgaWYgKHJlc3RyaWN0aW9uV2FybmluZykge1xuICAgICAgdGV4dCArPSByZXN0cmljdGlvbldhcm5pbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICB0ZXh0XG4gICAgICB9XVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRGVhY3RpdmF0ZSBhIHNwZWNpZmljIHBlcnNvbmFcbiAgICogSXNzdWUgIzI4MTogVXBkYXRlZCB0byBzdXBwb3J0IG11bHRpcGxlIGFjdGl2ZSBwZXJzb25hc1xuICAgKlxuICAgKiBAdGhyb3dzIHtFbGVtZW50Tm90Rm91bmRFcnJvcn0gV2hlbiBuYW1lZCBwZXJzb25hIGRvZXMgbm90IGV4aXN0XG4gICAqIEB0aHJvd3Mge0Vycm9yfSBXaGVuIG5hbWUgcGFyYW1ldGVyIGlzIG1pc3NpbmdcbiAgICogQHNlZSBJc3N1ZSAjMjc1IC0gSGFuZGxlcnMgcmV0dXJuIHN1Y2Nlc3M9dHJ1ZSBmb3IgbWlzc2luZyBlbGVtZW50c1xuICAgKi9cbiAgYXN5bmMgZGVhY3RpdmF0ZShuYW1lOiBzdHJpbmcpOiBQcm9taXNlPE1DUFJlc3BvbnNlPiB7XG4gICAgLy8gSXNzdWUgIzI3NTogUmVxdWlyZSBuYW1lIHBhcmFtZXRlciBmb3IgY29uc2lzdGVudCBlcnJvciBoYW5kbGluZ1xuICAgIGlmICghbmFtZSB8fCBuYW1lID09PSAnJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOYW1lIHBhcmFtZXRlciBpcyByZXF1aXJlZCBmb3IgZGVhY3RpdmF0ZSBvcGVyYXRpb24nKTtcbiAgICB9XG5cbiAgICAvLyBJc3N1ZSAjMjc1OiBWZXJpZnkgdGhlIG5hbWVkIHBlcnNvbmEgZXhpc3RzIGJlZm9yZSBkZWFjdGl2YXRpbmdcbiAgICBjb25zdCBwZXJzb25hID0gdGhpcy5wZXJzb25hTWFuYWdlci5maW5kUGVyc29uYShuYW1lKTtcbiAgICBpZiAoIXBlcnNvbmEpIHtcbiAgICAgIHRocm93IG5ldyBFbGVtZW50Tm90Rm91bmRFcnJvcignUGVyc29uYScsIG5hbWUpO1xuICAgIH1cblxuICAgIC8vIElzc3VlICMyODE6IFBhc3MgdGhlIG5hbWUgdG8gZGVhY3RpdmF0ZSB0aGUgc3BlY2lmaWMgcGVyc29uYVxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMucGVyc29uYU1hbmFnZXIuZGVhY3RpdmF0ZVBlcnNvbmEobmFtZSk7XG4gICAgY29uc3QgaW5kaWNhdG9yID0gdGhpcy5nZXRQZXJzb25hSW5kaWNhdG9yKCk7XG5cbiAgICBpZiAoIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgIHRleHQ6IGAke2luZGljYXRvcn3inYwgJHtyZXN1bHQubWVzc2FnZX1gXG4gICAgICAgIH1dXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBbe1xuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgdGV4dDogYCR7aW5kaWNhdG9yfeKchSAke3Jlc3VsdC5tZXNzYWdlfWBcbiAgICAgIH1dXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGFjdGl2ZSBwZXJzb25hc1xuICAgKiBJc3N1ZSAjMjgxOiBVcGRhdGVkIHRvIHNob3cgYWxsIGFjdGl2ZSBwZXJzb25hcyAoc3VwcG9ydHMgbXVsdGlwbGUpXG4gICAqL1xuICBhc3luYyBnZXRBY3RpdmVFbGVtZW50cygpOiBQcm9taXNlPE1DUFJlc3BvbnNlPiB7XG4gICAgY29uc3QgYWN0aXZlUGVyc29uYXMgPSB0aGlzLnBlcnNvbmFNYW5hZ2VyLmdldEFjdGl2ZVBlcnNvbmFzKCk7XG4gICAgY29uc3QgaW5kaWNhdG9yID0gdGhpcy5nZXRQZXJzb25hSW5kaWNhdG9yKCk7XG5cbiAgICBpZiAoYWN0aXZlUGVyc29uYXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgIHRleHQ6IGAke2luZGljYXRvcn1ObyBwZXJzb25hcyBhcmUgY3VycmVudGx5IGFjdGl2ZS5gXG4gICAgICAgIH1dXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHBlcnNvbmFMaXN0ID0gYWN0aXZlUGVyc29uYXMubWFwKHAgPT5cbiAgICAgIGDwn5S5ICoqJHtwLm1ldGFkYXRhLm5hbWV9KiogKCR7cC51bmlxdWVfaWR9KVxcbiAgICR7cC5tZXRhZGF0YS5kZXNjcmlwdGlvbn1cXG4gICDwn5OBICR7cC5tZXRhZGF0YS5jYXRlZ29yeSB8fCAnZ2VuZXJhbCd9IHwg8J+OrSAke3AubWV0YWRhdGEuYXV0aG9yIHx8ICdVbmtub3duJ31gXG4gICAgKS5qb2luKCdcXG5cXG4nKTtcblxuICAgIGNvbnN0IGhlYWRlciA9IGFjdGl2ZVBlcnNvbmFzLmxlbmd0aCA9PT0gMVxuICAgICAgPyBgJHtpbmRpY2F0b3J9QWN0aXZlIFBlcnNvbmE6YFxuICAgICAgOiBgJHtpbmRpY2F0b3J9QWN0aXZlIFBlcnNvbmFzICgke2FjdGl2ZVBlcnNvbmFzLmxlbmd0aH0pOmA7XG5cbiAgICBsZXQgdGV4dCA9IGAke2hlYWRlcn1cXG5cXG4ke3BlcnNvbmFMaXN0fWA7XG5cbiAgICAvLyBJc3N1ZSAjNjQyOiBSZXN0cmljdGlvbiBzdW1tYXJ5IGZvciBhY3RpdmUgcGVyc29uYXMgd2l0aCBleHRlcm5hbFJlc3RyaWN0aW9uc1xuICAgIGNvbnN0IHJlc3RyaWN0ZWRQZXJzb25hcyA9IGFjdGl2ZVBlcnNvbmFzLmZpbHRlcihcbiAgICAgIHAgPT4gKHAubWV0YWRhdGEgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik/LmdhdGVrZWVwZXIgJiZcbiAgICAgICAgKChwLm1ldGFkYXRhIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pLmdhdGVrZWVwZXIgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5leHRlcm5hbFJlc3RyaWN0aW9uc1xuICAgICk7XG4gICAgaWYgKHJlc3RyaWN0ZWRQZXJzb25hcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzdW1tYXJ5ID0gcmVzdHJpY3RlZFBlcnNvbmFzLm1hcChwID0+IHtcbiAgICAgICAgY29uc3QgZ2sgPSAocC5tZXRhZGF0YSBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5nYXRla2VlcGVyIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICBjb25zdCByID0gZ2suZXh0ZXJuYWxSZXN0cmljdGlvbnMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgIHJldHVybiBgICAqKiR7cC5tZXRhZGF0YS5uYW1lfSoqOiAke3IuZGVzY3JpcHRpb259YDtcbiAgICAgIH0pLmpvaW4oJ1xcbicpO1xuICAgICAgdGV4dCArPSBgXFxuXFxuKipBY3RpdmUgQ0xJIFJlc3RyaWN0aW9uczoqKlxcbiR7c3VtbWFyeX1cXG4+IFVzZSBcXGBnZXRfZWZmZWN0aXZlX2NsaV9wb2xpY2llc1xcYCBmb3IgZnVsbCBkZXRhaWxzLmA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICB0ZXh0XG4gICAgICB9XVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgcGVyc29uYVxuICAgKiBFeHRyYWN0ZWQgZnJvbSBFbGVtZW50Q1JVREhhbmRsZXIudHMgbGluZXMgNjIwLTY0OFxuICAgKlxuICAgKiBAdGhyb3dzIHtFbGVtZW50Tm90Rm91bmRFcnJvcn0gV2hlbiBwZXJzb25hIGRvZXMgbm90IGV4aXN0XG4gICAqIEBzZWUgSXNzdWUgIzI3NSAtIEhhbmRsZXJzIHJldHVybiBzdWNjZXNzPXRydWUgZm9yIG1pc3NpbmcgZWxlbWVudHNcbiAgICovXG4gIGFzeW5jIGdldEVsZW1lbnREZXRhaWxzKG5hbWU6IHN0cmluZyk6IFByb21pc2U8TUNQUmVzcG9uc2U+IHtcbiAgICBjb25zdCBwZXJzb25hID0gdGhpcy5wZXJzb25hTWFuYWdlci5maW5kUGVyc29uYShuYW1lKTtcbiAgICBjb25zdCBpbmRpY2F0b3IgPSB0aGlzLmdldFBlcnNvbmFJbmRpY2F0b3IoKTtcblxuICAgIGlmICghcGVyc29uYSkge1xuICAgICAgdGhyb3cgbmV3IEVsZW1lbnROb3RGb3VuZEVycm9yKCdQZXJzb25hJywgbmFtZSk7XG4gICAgfVxuXG4gICAgY29uc3QgdHJpZ2dlcnMgPSBwZXJzb25hLm1ldGFkYXRhLnRyaWdnZXJzPy5qb2luKCcsICcpIHx8ICdOb25lJztcbiAgICBjb25zdCBjb250ZW50ID0gcGVyc29uYS5jb250ZW50Py50cmltKCkgfHwgJ05vIGluc3RydWN0aW9ucyBwcm92aWRlZC4nO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICB0ZXh0OiBgJHtpbmRpY2F0b3J98J+TiyAqKiR7cGVyc29uYS5tZXRhZGF0YS5uYW1lfSoqIERldGFpbHNcXG5cXG5gICtcbiAgICAgICAgICBgKipEZXNjcmlwdGlvbjoqKiAke3BlcnNvbmEubWV0YWRhdGEuZGVzY3JpcHRpb259XFxuYCArXG4gICAgICAgICAgYCoqRmlsZToqKiAke3BlcnNvbmEuZmlsZW5hbWV9XFxuYCArXG4gICAgICAgICAgYCoqVmVyc2lvbjoqKiAke3BlcnNvbmEubWV0YWRhdGEudmVyc2lvbiB8fCAnMS4wJ31cXG5gICtcbiAgICAgICAgICBgKipBdXRob3I6KiogJHtwZXJzb25hLm1ldGFkYXRhLmF1dGhvciB8fCAnVW5rbm93bid9XFxuYCArXG4gICAgICAgICAgYCoqVHJpZ2dlcnM6KiogJHt0cmlnZ2Vyc31cXG5cXG5gICtcbiAgICAgICAgICBgKipGdWxsIEluc3RydWN0aW9uczoqKlxcblxcYFxcYFxcYFxcbiR7Y29udGVudH1cXG5cXGBcXGBcXGBgXG4gICAgICB9XVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc29uYUFjdGl2YXRpb25TdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oYW5kbGVycy9zdHJhdGVnaWVzL1BlcnNvbmFBY3RpdmF0aW9uU3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFJSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdyRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsc0JBQXNCO0lBRWhEO0lBQ0E7SUFGbkIsWUFDbUIsY0FBOEIsRUFDOUIsZ0JBQXlDO1FBRTFELEtBQUssRUFBRSxDQUFDO1FBSFMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7SUFHNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBWTtRQUN6QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLENBQUM7d0JBQ1IsSUFBSSxFQUFFLE1BQU07d0JBQ1osSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRTtxQkFDekQsQ0FBQzthQUNILENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMvQixN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QUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGVyc29uYUFjdGl2YXRpb25TdHJhdGVneSAtIFN0cmF0ZWd5IGZvciBwZXJzb25hIGVsZW1lbnQgYWN0aXZhdGlvblxuICpcbiAqIEhhbmRsZXMgYWN0aXZhdGlvbiwgZGVhY3RpdmF0aW9uLCBhbmQgc3RhdHVzIHRyYWNraW5nIGZvciBwZXJzb25hIGVsZW1lbnRzLlxuICogVXNlcyB0aGUgUGVyc29uYU1hbmFnZXIncyB1bmlxdWUgQVBJIGFuZCBQZXJzb25hSW5kaWNhdG9yU2VydmljZSBmb3IgZm9ybWF0dGluZy5cbiAqL1xuXG5pbXBvcnQgeyBQZXJzb25hTWFuYWdlciB9IGZyb20gJy4uLy4uL3BlcnNvbmEvUGVyc29uYU1hbmFnZXIuanMnO1xuaW1wb3J0IHsgUGVyc29uYUluZGljYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9QZXJzb25hSW5kaWNhdG9yU2VydmljZS5qcyc7XG5pbXBvcnQgeyBFbGVtZW50Tm90Rm91bmRFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL0Vycm9ySGFuZGxlci5qcyc7XG5pbXBvcnQgeyBCYXNlQWN0aXZhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9CYXNlQWN0aXZhdGlvblN0cmF0ZWd5LmpzJztcbmltcG9ydCB7IEVsZW1lbnRBY3RpdmF0aW9uU3RyYXRlZ3ksIE1DUFJlc3BvbnNlIH0gZnJvbSAnLi9FbGVtZW50QWN0aXZhdGlvblN0cmF0ZWd5LmpzJztcblxuZXhwb3J0IGNsYXNzIFBlcnNvbmFBY3RpdmF0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBCYXNlQWN0aXZhdGlvblN0cmF0ZWd5IGltcGxlbWVudHMgRWxlbWVudEFjdGl2YXRpb25TdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGVyc29uYU1hbmFnZXI6IFBlcnNvbmFNYW5hZ2VyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5kaWNhdG9yU2VydmljZTogUGVyc29uYUluZGljYXRvclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBlcnNvbmEgaW5kaWNhdG9yIHByZWZpeFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRQZXJzb25hSW5kaWNhdG9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5kaWNhdG9yU2VydmljZS5nZXRQZXJzb25hSW5kaWNhdG9yKCk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgYSBwZXJzb25hXG4gICAqIEV4dHJhY3RlZCBmcm9tIEVsZW1lbnRDUlVESGFuZGxlci50cyBsaW5lcyAxNjEtMTgyXG4gICAqL1xuICBhc3luYyBhY3RpdmF0ZShuYW1lOiBzdHJpbmcpOiBQcm9taXNlPE1DUFJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wZXJzb25hTWFuYWdlci5hY3RpdmF0ZVBlcnNvbmEobmFtZSk7XG5cbiAgICBpZiAoIXJlc3VsdC5zdWNjZXNzIHx8ICFyZXN1bHQucGVyc29uYSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICB0ZXh0OiBgJHt0aGlzLmdldFBlcnNvbmFJbmRpY2F0b3IoKX3inYwgJHtyZXN1bHQubWVzc2FnZX1gXG4gICAgICAgIH1dXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHBlcnNvbmEgPSByZXN1bHQucGVyc29uYTtcbiAgICBjb25zdCBpbnN0cnVjdGlvbnMgPSBwZXJzb25hLmluc3RydWN0aW9ucz8udHJpbSgpIHx8IHBlcnNvbmEuY29udGVudD8udHJpbSgpIHx8ICdObyBpbnN0cnVjdGlvbnMgcHJvdmlkZWQuJztcbiAgICBjb25zdCByZWZlcmVuY2VDb250ZW50ID0gcGVyc29uYS5pbnN0cnVjdGlvbnM/LnRyaW0oKSA/IHBlcnNvbmEuY29udGVudD8udHJpbSgpIDogJyc7XG5cbiAgICBsZXQgdGV4dCA9IGAke3RoaXMuZ2V0UGVyc29uYUluZGljYXRvcigpfVBlcnNvbmEgQWN0aXZhdGVkOiAqKiR7cGVyc29uYS5tZXRhZGF0YS5uYW1lfSoqXFxuXFxuJHtwZXJzb25hLm1ldGFkYXRhLmRlc2NyaXB0aW9ufVxcblxcbioqSW5zdHJ1Y3Rpb25zOioqXFxuJHtpbnN0cnVjdGlvbnN9YDtcbiAgICBpZiAocmVmZXJlbmNlQ29udGVudCkge1xuICAgICAgdGV4dCArPSBgXFxuXFxuKipSZWZlcmVuY2U6KipcXG4ke3JlZmVyZW5jZUNvbnRlbnR9YDtcbiAgICB9XG5cbiAgICAvLyBJc3N1ZSAjNjQyOiBGYWlsLXNhZmUgd2FybmluZyBmb3IgQ0xJIHJlc3RyaWN0aW9uc1xuICAgIGNvbnN0IHJlc3RyaWN0aW9uV2FybmluZyA9IHRoaXMuZm9ybWF0UmVzdHJpY3Rpb25XYXJuaW5nKHBlcnNvbmEubWV0YWRhdGEgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG4gICAgaWYgKHJlc3RyaWN0aW9uV2FybmluZykge1xuICAgICAgdGV4dCArPSByZXN0cmljdGlvbldhcm5pbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICB0ZXh0XG4gICAgICB9XVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRGVhY3RpdmF0ZSBhIHNwZWNpZmljIHBlcnNvbmFcbiAgICogSXNzdWUgIzI4MTogVXBkYXRlZCB0byBzdXBwb3J0IG11bHRpcGxlIGFjdGl2ZSBwZXJzb25hc1xuICAgKlxuICAgKiBAdGhyb3dzIHtFbGVtZW50Tm90Rm91bmRFcnJvcn0gV2hlbiBuYW1lZCBwZXJzb25hIGRvZXMgbm90IGV4aXN0XG4gICAqIEB0aHJvd3Mge0Vycm9yfSBXaGVuIG5hbWUgcGFyYW1ldGVyIGlzIG1pc3NpbmdcbiAgICogQHNlZSBJc3N1ZSAjMjc1IC0gSGFuZGxlcnMgcmV0dXJuIHN1Y2Nlc3M9dHJ1ZSBmb3IgbWlzc2luZyBlbGVtZW50c1xuICAgKi9cbiAgYXN5bmMgZGVhY3RpdmF0ZShuYW1lOiBzdHJpbmcpOiBQcm9taXNlPE1DUFJlc3BvbnNlPiB7XG4gICAgLy8gSXNzdWUgIzI3NTogUmVxdWlyZSBuYW1lIHBhcmFtZXRlciBmb3IgY29uc2lzdGVudCBlcnJvciBoYW5kbGluZ1xuICAgIGlmICghbmFtZSB8fCBuYW1lID09PSAnJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOYW1lIHBhcmFtZXRlciBpcyByZXF1aXJlZCBmb3IgZGVhY3RpdmF0ZSBvcGVyYXRpb24nKTtcbiAgICB9XG5cbiAgICAvLyBJc3N1ZSAjMjc1OiBWZXJpZnkgdGhlIG5hbWVkIHBlcnNvbmEgZXhpc3RzIGJlZm9yZSBkZWFjdGl2YXRpbmdcbiAgICBjb25zdCBwZXJzb25hID0gdGhpcy5wZXJzb25hTWFuYWdlci5maW5kUGVyc29uYShuYW1lKTtcbiAgICBpZiAoIXBlcnNvbmEpIHtcbiAgICAgIHRocm93IG5ldyBFbGVtZW50Tm90Rm91bmRFcnJvcignUGVyc29uYScsIG5hbWUpO1xuICAgIH1cblxuICAgIC8vIElzc3VlICMyODE6IFBhc3MgdGhlIG5hbWUgdG8gZGVhY3RpdmF0ZSB0aGUgc3BlY2lmaWMgcGVyc29uYVxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMucGVyc29uYU1hbmFnZXIuZGVhY3RpdmF0ZVBlcnNvbmEobmFtZSk7XG4gICAgY29uc3QgaW5kaWNhdG9yID0gdGhpcy5nZXRQZXJzb25hSW5kaWNhdG9yKCk7XG5cbiAgICBpZiAoIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgIHRleHQ6IGAke2luZGljYXRvcn3inYwgJHtyZXN1bHQubWVzc2FnZX1gXG4gICAgICAgIH1dXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBbe1xuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgdGV4dDogYCR7aW5kaWNhdG9yfeKchSAke3Jlc3VsdC5tZXNzYWdlfWBcbiAgICAgIH1dXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGFjdGl2ZSBwZXJzb25hc1xuICAgKiBJc3N1ZSAjMjgxOiBVcGRhdGVkIHRvIHNob3cgYWxsIGFjdGl2ZSBwZXJzb25hcyAoc3VwcG9ydHMgbXVsdGlwbGUpXG4gICAqL1xuICBhc3luYyBnZXRBY3RpdmVFbGVtZW50cygpOiBQcm9taXNlPE1DUFJlc3BvbnNlPiB7XG4gICAgY29uc3QgYWN0aXZlUGVyc29uYXMgPSB0aGlzLnBlcnNvbmFNYW5hZ2VyLmdldEFjdGl2ZVBlcnNvbmFzKCk7XG4gICAgY29uc3QgaW5kaWNhdG9yID0gdGhpcy5nZXRQZXJzb25hSW5kaWNhdG9yKCk7XG5cbiAgICBpZiAoYWN0aXZlUGVyc29uYXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgIHRleHQ6IGAke2luZGljYXRvcn1ObyBwZXJzb25hcyBhcmUgY3VycmVudGx5IGFjdGl2ZS5gXG4gICAgICAgIH1dXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHBlcnNvbmFMaXN0ID0gYWN0aXZlUGVyc29uYXMubWFwKHAgPT5cbiAgICAgIGDwn5S5ICoqJHtwLm1ldGFkYXRhLm5hbWV9KiogKCR7cC51bmlxdWVfaWR9KVxcbiAgICR7cC5tZXRhZGF0YS5kZXNjcmlwdGlvbn1cXG4gICDwn5OBICR7cC5tZXRhZGF0YS5jYXRlZ29yeSB8fCAnZ2VuZXJhbCd9IHwg8J+OrSAke3AubWV0YWRhdGEuYXV0aG9yIHx8ICdVbmtub3duJ31gXG4gICAgKS5qb2luKCdcXG5cXG4nKTtcblxuICAgIGNvbnN0IGhlYWRlciA9IGFjdGl2ZVBlcnNvbmFzLmxlbmd0aCA9PT0gMVxuICAgICAgPyBgJHtpbmRpY2F0b3J9QWN0aXZlIFBlcnNvbmE6YFxuICAgICAgOiBgJHtpbmRpY2F0b3J9QWN0aXZlIFBlcnNvbmFzICgke2FjdGl2ZVBlcnNvbmFzLmxlbmd0aH0pOmA7XG5cbiAgICBsZXQgdGV4dCA9IGAke2hlYWRlcn1cXG5cXG4ke3BlcnNvbmFMaXN0fWA7XG5cbiAgICAvLyBJc3N1ZSAjNjQyOiBSZXN0cmljdGlvbiBzdW1tYXJ5IGZvciBhY3RpdmUgcGVyc29uYXMgd2l0aCBleHRlcm5hbFJlc3RyaWN0aW9uc1xuICAgIGNvbnN0IHJlc3RyaWN0ZWRQZXJzb25hcyA9IGFjdGl2ZVBlcnNvbmFzLmZpbHRlcihcbiAgICAgIHAgPT4gKHAubWV0YWRhdGEgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik/LmdhdGVrZWVwZXIgJiZcbiAgICAgICAgKChwLm1ldGFkYXRhIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pLmdhdGVrZWVwZXIgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5leHRlcm5hbFJlc3RyaWN0aW9uc1xuICAgICk7XG4gICAgaWYgKHJlc3RyaWN0ZWRQZXJzb25hcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzdW1tYXJ5ID0gcmVzdHJpY3RlZFBlcnNvbmFzLm1hcChwID0+IHtcbiAgICAgICAgY29uc3QgZ2sgPSAocC5tZXRhZGF0YSBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5nYXRla2VlcGVyIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICBjb25zdCByID0gZ2suZXh0ZXJuYWxSZXN0cmljdGlvbnMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgIHJldHVybiBgICAqKiR7cC5tZXRhZGF0YS5uYW1lfSoqOiAke3IuZGVzY3JpcHRpb259YDtcbiAgICAgIH0pLmpvaW4oJ1xcbicpO1xuICAgICAgdGV4dCArPSBgXFxuXFxuKipMb2FkZWQgQ0xJIFJlc3RyaWN0aW9uczoqKlxcbiR7c3VtbWFyeX1cXG4+IFVzZSBcXGBnZXRfZWZmZWN0aXZlX2NsaV9wb2xpY2llc1xcYCBmb3IgZnVsbCBkZXRhaWxzLmA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICB0ZXh0XG4gICAgICB9XVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgcGVyc29uYVxuICAgKiBFeHRyYWN0ZWQgZnJvbSBFbGVtZW50Q1JVREhhbmRsZXIudHMgbGluZXMgNjIwLTY0OFxuICAgKlxuICAgKiBAdGhyb3dzIHtFbGVtZW50Tm90Rm91bmRFcnJvcn0gV2hlbiBwZXJzb25hIGRvZXMgbm90IGV4aXN0XG4gICAqIEBzZWUgSXNzdWUgIzI3NSAtIEhhbmRsZXJzIHJldHVybiBzdWNjZXNzPXRydWUgZm9yIG1pc3NpbmcgZWxlbWVudHNcbiAgICovXG4gIGFzeW5jIGdldEVsZW1lbnREZXRhaWxzKG5hbWU6IHN0cmluZyk6IFByb21pc2U8TUNQUmVzcG9uc2U+IHtcbiAgICBjb25zdCBwZXJzb25hID0gdGhpcy5wZXJzb25hTWFuYWdlci5maW5kUGVyc29uYShuYW1lKTtcbiAgICBjb25zdCBpbmRpY2F0b3IgPSB0aGlzLmdldFBlcnNvbmFJbmRpY2F0b3IoKTtcblxuICAgIGlmICghcGVyc29uYSkge1xuICAgICAgdGhyb3cgbmV3IEVsZW1lbnROb3RGb3VuZEVycm9yKCdQZXJzb25hJywgbmFtZSk7XG4gICAgfVxuXG4gICAgY29uc3QgdHJpZ2dlcnMgPSBwZXJzb25hLm1ldGFkYXRhLnRyaWdnZXJzPy5qb2luKCcsICcpIHx8ICdOb25lJztcbiAgICBjb25zdCBjb250ZW50ID0gcGVyc29uYS5jb250ZW50Py50cmltKCkgfHwgJ05vIGluc3RydWN0aW9ucyBwcm92aWRlZC4nO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICB0ZXh0OiBgJHtpbmRpY2F0b3J98J+TiyAqKiR7cGVyc29uYS5tZXRhZGF0YS5uYW1lfSoqIERldGFpbHNcXG5cXG5gICtcbiAgICAgICAgICBgKipEZXNjcmlwdGlvbjoqKiAke3BlcnNvbmEubWV0YWRhdGEuZGVzY3JpcHRpb259XFxuYCArXG4gICAgICAgICAgYCoqRmlsZToqKiAke3BlcnNvbmEuZmlsZW5hbWV9XFxuYCArXG4gICAgICAgICAgYCoqVmVyc2lvbjoqKiAke3BlcnNvbmEubWV0YWRhdGEudmVyc2lvbiB8fCAnMS4wJ31cXG5gICtcbiAgICAgICAgICBgKipBdXRob3I6KiogJHtwZXJzb25hLm1ldGFkYXRhLmF1dGhvciB8fCAnVW5rbm93bid9XFxuYCArXG4gICAgICAgICAgYCoqVHJpZ2dlcnM6KiogJHt0cmlnZ2Vyc31cXG5cXG5gICtcbiAgICAgICAgICBgKipGdWxsIEluc3RydWN0aW9uczoqKlxcblxcYFxcYFxcYFxcbiR7Y29udGVudH1cXG5cXGBcXGBcXGBgXG4gICAgICB9XVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,74 @@
1
+ export interface PermissionHookMarker {
2
+ host: string;
3
+ scriptPath: string;
4
+ settingsPath?: string;
5
+ additionalPaths?: string[];
6
+ configured?: boolean;
7
+ assetsPrepared?: boolean;
8
+ installedAt: string;
9
+ }
10
+ export interface PermissionHookStatus {
11
+ installed: boolean;
12
+ configured?: boolean;
13
+ assetsPrepared?: boolean;
14
+ host?: string;
15
+ scriptPath?: string;
16
+ settingsPath?: string;
17
+ additionalPaths?: string[];
18
+ }
19
+ export interface InstallPermissionHookResult {
20
+ supported: boolean;
21
+ installed: boolean;
22
+ configured: boolean;
23
+ assetsPrepared?: boolean;
24
+ host: string;
25
+ scriptPath?: string;
26
+ settingsPath?: string;
27
+ additionalPaths?: string[];
28
+ markerPath?: string;
29
+ backupPath?: string;
30
+ message: string;
31
+ }
32
+ export interface InstallPermissionHookOptions {
33
+ homeDir?: string;
34
+ sourceScriptPath?: string;
35
+ now?: Date;
36
+ }
37
+ export declare function getPermissionHookScriptPath(homeDir?: string): string;
38
+ export declare function getPermissionHookMarkerPath(homeDir?: string, host?: string): string;
39
+ export declare function getClaudeHookSettingsPath(homeDir?: string): string;
40
+ export declare function getVsCodeHookSettingsPath(homeDir?: string): string;
41
+ export declare function getVsCodeUserSettingsPath(homeDir?: string): string;
42
+ export declare function getGeminiHookSettingsPath(homeDir?: string): string;
43
+ export declare function getCursorHookSettingsPath(homeDir?: string): string;
44
+ export declare function getWindsurfHookSettingsPath(homeDir?: string): string;
45
+ export declare function getCodexHookSettingsPath(homeDir?: string): string;
46
+ export declare function getCodexConfigPath(homeDir?: string): string;
47
+ export declare function getPermissionHookStatus(homeDir?: string, host?: string): PermissionHookStatus;
48
+ export declare function getPermissionHookStatusAsync(homeDir?: string, host?: string): Promise<PermissionHookStatus>;
49
+ export declare function ensureClaudePreToolUseHook(parsed: Record<string, unknown>, command: string): {
50
+ changed: boolean;
51
+ parsed: Record<string, unknown>;
52
+ };
53
+ export declare function ensureVsCodePreToolUseHook(parsed: Record<string, unknown>, command: string): {
54
+ changed: boolean;
55
+ parsed: Record<string, unknown>;
56
+ };
57
+ export declare function ensureGeminiBeforeToolHook(parsed: Record<string, unknown>, command: string): {
58
+ changed: boolean;
59
+ parsed: Record<string, unknown>;
60
+ };
61
+ export declare function ensureCodexPreToolUseHook(parsed: Record<string, unknown>, command: string): {
62
+ changed: boolean;
63
+ parsed: Record<string, unknown>;
64
+ };
65
+ export declare function ensureCursorPreToolUseHook(parsed: Record<string, unknown>, command: string): {
66
+ changed: boolean;
67
+ parsed: Record<string, unknown>;
68
+ };
69
+ export declare function ensureWindsurfHooks(parsed: Record<string, unknown>, command: string): {
70
+ changed: boolean;
71
+ parsed: Record<string, unknown>;
72
+ };
73
+ export declare function installPermissionHook(client: string, options?: InstallPermissionHookOptions): Promise<InstallPermissionHookResult>;
74
+ //# sourceMappingURL=permissionHooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissionHooks.d.ts","sourceRoot":"","sources":["../../src/utils/permissionHooks.ts"],"names":[],"mappings":"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"}