@decohere/scaffold 0.0.1-dev.91 → 0.0.1-dev.93

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 (127) hide show
  1. package/commonjs/src/add-api.action.js +0 -2
  2. package/commonjs/src/add-api.command.js +0 -2
  3. package/commonjs/src/add.command.js +0 -2
  4. package/commonjs/src/add.module.js +0 -2
  5. package/commonjs/src/auth0-configure.action.js +0 -2
  6. package/commonjs/src/auth0-configure.command.js +0 -2
  7. package/commonjs/src/auth0-login.action.js +0 -2
  8. package/commonjs/src/auth0-login.command.js +0 -2
  9. package/commonjs/src/auth0.command.js +0 -2
  10. package/commonjs/src/auth0.module.js +0 -2
  11. package/commonjs/src/cli.js +0 -2
  12. package/commonjs/src/create.command.js +0 -2
  13. package/commonjs/src/create.module.js +0 -2
  14. package/commonjs/src/domain/prompt.js +0 -2
  15. package/commonjs/src/index.js +0 -2
  16. package/commonjs/src/models/compose.model.js +111 -3
  17. package/commonjs/src/models/config-yaml.model.js +0 -2
  18. package/commonjs/src/models/const.js +0 -2
  19. package/commonjs/src/models/dev-container.model.js +53 -8
  20. package/commonjs/src/models/docker-image.model.js +24 -6
  21. package/commonjs/src/models/env-file.model.js +0 -2
  22. package/commonjs/src/models/gitignore.model.js +6 -2
  23. package/commonjs/src/models/launch-json.model.js +0 -2
  24. package/commonjs/src/models/package-json.model.js +0 -2
  25. package/commonjs/src/models/project.model.js +0 -2
  26. package/commonjs/src/models/source-file.js +0 -2
  27. package/commonjs/src/models/tsconfig.model.js +0 -2
  28. package/commonjs/src/models/vitest-config.model.js +0 -2
  29. package/commonjs/src/models/vscode-settings.model.js +0 -2
  30. package/commonjs/src/program.js +0 -2
  31. package/commonjs/src/resolve-target-dir.js +0 -2
  32. package/commonjs/src/services/scaffold.service.js +0 -2
  33. package/commonjs/src/version.js +0 -2
  34. package/commonjs/src/webapi/api-name.js +0 -2
  35. package/commonjs/src/webapi/auth0-commands.js +0 -2
  36. package/commonjs/src/webapi/authorize-scopes.js +0 -2
  37. package/commonjs/src/webapi/cli-options.js +0 -2
  38. package/commonjs/src/webapi/const.js +0 -2
  39. package/commonjs/src/webapi/create-api.js +28 -10
  40. package/commonjs/src/webapi/devcontainer/codebase-rag-mcp.js +0 -2
  41. package/commonjs/src/webapi/devcontainer/host-scripts.js +0 -2
  42. package/commonjs/src/webapi/features/auth.feature.js +0 -2
  43. package/commonjs/src/webapi/features/auth0-cli.js +0 -2
  44. package/commonjs/src/webapi/features/biome-format.js +0 -2
  45. package/commonjs/src/webapi/features/database.feature.js +2 -3
  46. package/commonjs/src/webapi/features/finalize.feature.js +0 -2
  47. package/commonjs/src/webapi/features/postman.feature.js +0 -2
  48. package/commonjs/src/webapi/models/api-package-json.model.js +0 -2
  49. package/commonjs/src/webapi/models/auth-config.model.js +0 -2
  50. package/commonjs/src/webapi/models/controller-source-file.model.js +0 -2
  51. package/commonjs/src/webapi/models/github-ci.model.js +0 -2
  52. package/commonjs/src/webapi/models/main-source-file.model.js +0 -2
  53. package/commonjs/src/webapi/models/production-dockerfile.model.js +5 -5
  54. package/commonjs/src/webapi/models/sample-files.model.js +0 -2
  55. package/commonjs/src/webapi/models/webapi-image.model.js +0 -2
  56. package/commonjs/src/webapi/postman/hello-openapi.js +0 -2
  57. package/commonjs/src/webapi/postman/local-view.js +0 -2
  58. package/commonjs/src/webapi/postman/openapi-to-postman.js +0 -2
  59. package/commonjs/src/webapi/workspace-readme.js +0 -2
  60. package/commonjs/src/webapi.action.js +0 -2
  61. package/commonjs/src/webapi.command.js +0 -2
  62. package/es6/src/add-api.action.js +0 -2
  63. package/es6/src/add-api.command.js +0 -2
  64. package/es6/src/add.command.js +0 -2
  65. package/es6/src/add.module.js +0 -2
  66. package/es6/src/auth0-configure.action.js +0 -2
  67. package/es6/src/auth0-configure.command.js +0 -2
  68. package/es6/src/auth0-login.action.js +0 -2
  69. package/es6/src/auth0-login.command.js +0 -2
  70. package/es6/src/auth0.command.js +0 -2
  71. package/es6/src/auth0.module.js +0 -2
  72. package/es6/src/cli.js +0 -2
  73. package/es6/src/create.command.js +0 -2
  74. package/es6/src/create.module.js +0 -2
  75. package/es6/src/domain/prompt.js +0 -2
  76. package/es6/src/index.js +0 -2
  77. package/es6/src/models/compose.model.js +113 -3
  78. package/es6/src/models/config-yaml.model.js +0 -2
  79. package/es6/src/models/const.js +0 -2
  80. package/es6/src/models/dev-container.model.js +53 -8
  81. package/es6/src/models/docker-image.model.js +24 -6
  82. package/es6/src/models/env-file.model.js +0 -2
  83. package/es6/src/models/gitignore.model.js +6 -2
  84. package/es6/src/models/launch-json.model.js +0 -2
  85. package/es6/src/models/package-json.model.js +0 -2
  86. package/es6/src/models/project.model.js +0 -2
  87. package/es6/src/models/source-file.js +0 -2
  88. package/es6/src/models/tsconfig.model.js +0 -2
  89. package/es6/src/models/vitest-config.model.js +0 -2
  90. package/es6/src/models/vscode-settings.model.js +0 -2
  91. package/es6/src/program.js +0 -2
  92. package/es6/src/resolve-target-dir.js +0 -2
  93. package/es6/src/services/scaffold.service.js +0 -2
  94. package/es6/src/version.js +0 -2
  95. package/es6/src/webapi/api-name.js +0 -2
  96. package/es6/src/webapi/auth0-commands.js +0 -2
  97. package/es6/src/webapi/authorize-scopes.js +0 -2
  98. package/es6/src/webapi/cli-options.js +0 -2
  99. package/es6/src/webapi/const.js +0 -2
  100. package/es6/src/webapi/create-api.js +29 -11
  101. package/es6/src/webapi/devcontainer/codebase-rag-mcp.js +0 -2
  102. package/es6/src/webapi/devcontainer/host-scripts.js +0 -2
  103. package/es6/src/webapi/features/auth.feature.js +0 -2
  104. package/es6/src/webapi/features/auth0-cli.js +0 -2
  105. package/es6/src/webapi/features/biome-format.js +0 -2
  106. package/es6/src/webapi/features/database.feature.js +2 -3
  107. package/es6/src/webapi/features/finalize.feature.js +0 -2
  108. package/es6/src/webapi/features/postman.feature.js +0 -2
  109. package/es6/src/webapi/models/api-package-json.model.js +0 -2
  110. package/es6/src/webapi/models/auth-config.model.js +0 -2
  111. package/es6/src/webapi/models/controller-source-file.model.js +0 -2
  112. package/es6/src/webapi/models/github-ci.model.js +0 -2
  113. package/es6/src/webapi/models/main-source-file.model.js +0 -2
  114. package/es6/src/webapi/models/production-dockerfile.model.js +5 -5
  115. package/es6/src/webapi/models/sample-files.model.js +0 -2
  116. package/es6/src/webapi/models/webapi-image.model.js +0 -2
  117. package/es6/src/webapi/postman/hello-openapi.js +0 -2
  118. package/es6/src/webapi/postman/local-view.js +0 -2
  119. package/es6/src/webapi/postman/openapi-to-postman.js +0 -2
  120. package/es6/src/webapi/workspace-readme.js +0 -2
  121. package/es6/src/webapi.action.js +0 -2
  122. package/es6/src/webapi.command.js +0 -2
  123. package/package.json +5 -4
  124. package/types/src/models/compose.model.d.ts +9 -0
  125. package/types/src/models/dev-container.model.d.ts +8 -0
  126. package/types/src/models/docker-image.model.d.ts +6 -0
  127. package/types/src/models/gitignore.model.d.ts +2 -0
@@ -198,5 +198,3 @@ function normalizePath(rawUrl) {
198
198
  path: segments
199
199
  };
200
200
  }
201
-
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvcG9zdG1hbi9vcGVuYXBpLXRvLXBvc3RtYW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbnZlcnRlciBmcm9tIFwib3BlbmFwaS10by1wb3N0bWFudjJcIjtcbmltcG9ydCB0eXBlIHsgU2NhZmZvbGRPcGVuQXBpRG9jdW1lbnQgfSBmcm9tIFwiLi9oZWxsby1vcGVuYXBpLmpzXCI7XG5cbmV4cG9ydCB0eXBlIFBvc3RtYW5Db2xsZWN0aW9uID0ge1xuXHRpbmZvOiB7XG5cdFx0X3Bvc3RtYW5faWQ/OiBzdHJpbmc7XG5cdFx0bmFtZTogc3RyaW5nO1xuXHRcdHNjaGVtYTogc3RyaW5nO1xuXHRcdGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXHR9O1xuXHRhdXRoPzogdW5rbm93bjtcblx0aXRlbT86IFBvc3RtYW5JdGVtW107XG5cdHZhcmlhYmxlPzogQXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pjtcblx0W2tleTogc3RyaW5nXTogdW5rbm93bjtcbn07XG5cbmV4cG9ydCB0eXBlIFBvc3RtYW5JdGVtID0ge1xuXHRuYW1lPzogc3RyaW5nO1xuXHRpdGVtPzogUG9zdG1hbkl0ZW1bXTtcblx0cmVxdWVzdD86IFBvc3RtYW5SZXF1ZXN0O1xuXHRba2V5OiBzdHJpbmddOiB1bmtub3duO1xufTtcblxuZXhwb3J0IHR5cGUgUG9zdG1hblJlcXVlc3QgPSB7XG5cdG1ldGhvZD86IHN0cmluZztcblx0aGVhZGVyPzogQXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pjtcblx0Ym9keT86IHsgbW9kZT86IHN0cmluZzsgcmF3Pzogc3RyaW5nIH07XG5cdHVybD86IHN0cmluZyB8IHsgcmF3Pzogc3RyaW5nOyBob3N0Pzogc3RyaW5nW107IHBhdGg/OiBzdHJpbmdbXTsgdmFyaWFibGU/OiB1bmtub3duW10gfTtcblx0YXV0aD86IHsgdHlwZTogc3RyaW5nOyBba2V5OiBzdHJpbmddOiB1bmtub3duIH07XG5cdFtrZXk6IHN0cmluZ106IHVua25vd247XG59O1xuXG5leHBvcnQgdHlwZSBBdXRoMEVudiA9IHtcblx0YXV0aDBEb21haW4/OiBzdHJpbmc7XG5cdGF1dGgwQXVkaWVuY2U/OiBzdHJpbmc7XG5cdGF1dGgwQ2xpZW50SWQ/OiBzdHJpbmc7XG59O1xuXG50eXBlIENvbnZlcnRSZXN1bHQgPSB7XG5cdHJlc3VsdDogYm9vbGVhbjtcblx0cmVhc29uPzogc3RyaW5nO1xuXHRvdXRwdXQ/OiBBcnJheTx7IHR5cGU6IHN0cmluZzsgZGF0YTogUG9zdG1hbkNvbGxlY3Rpb24gfT47XG59O1xuXG5mdW5jdGlvbiBjb252ZXJ0QXN5bmMoXG5cdGRhdGE6IFNjYWZmb2xkT3BlbkFwaURvY3VtZW50LFxuXHRvcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbik6IFByb21pc2U8Q29udmVydFJlc3VsdD4ge1xuXHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdGNvbnZlcnRlci5jb252ZXJ0KFxuXHRcdFx0eyB0eXBlOiBcImpzb25cIiwgZGF0YSB9LFxuXHRcdFx0b3B0aW9ucyxcblx0XHRcdChlcnI6IEVycm9yIHwgbnVsbCwgcmVzdWx0OiBDb252ZXJ0UmVzdWx0KSA9PiB7XG5cdFx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0XHRyZWplY3QoZXJyKTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0cmVzb2x2ZShyZXN1bHQpO1xuXHRcdFx0fSxcblx0XHQpO1xuXHR9KTtcbn1cblxuLyoqIENvbnZlcnQgYW4gT3BlbkFQSSBkb2N1bWVudCB0byBhIFBvc3RtYW4gQ29sbGVjdGlvbiB2Mi4xIHZpYSBvcGVuYXBpLXRvLXBvc3RtYW52Mi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvcGVuQXBpVG9Qb3N0bWFuQ29sbGVjdGlvbihcblx0ZG9jdW1lbnQ6IFNjYWZmb2xkT3BlbkFwaURvY3VtZW50LFxuKTogUHJvbWlzZTxQb3N0bWFuQ29sbGVjdGlvbj4ge1xuXHRjb25zdCByZXN1bHQgPSBhd2FpdCBjb252ZXJ0QXN5bmMoZG9jdW1lbnQsIHtcblx0XHRmb2xkZXJTdHJhdGVneTogXCJUYWdzXCIsXG5cdFx0cmVxdWVzdE5hbWVTb3VyY2U6IFwiRmFsbGJhY2tcIixcblx0XHRpbmNsdWRlQXV0aEluZm9JbkV4YW1wbGU6IGZhbHNlLFxuXHR9KTtcblx0aWYgKCFyZXN1bHQucmVzdWx0IHx8IHJlc3VsdC5vdXRwdXQ/LlswXT8uZGF0YSA9PSBudWxsKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKHJlc3VsdC5yZWFzb24gPz8gXCJvcGVuYXBpLXRvLXBvc3RtYW52MiBjb252ZXJzaW9uIGZhaWxlZFwiKTtcblx0fVxuXHRyZXR1cm4gcmVzdWx0Lm91dHB1dFswXS5kYXRhO1xufVxuXG4vKipcbiAqIE92ZXJsYXkgQXV0aDAgT0F1dGgyIChQS0NFKSBjb2xsZWN0aW9uIGF1dGggYW5kIGZpeCBMb2NhbCBWaWV3LWZyaWVuZGx5IFVSTHMuXG4gKiBSb3V0ZSBpdGVtcyBjb21lIGZyb20gT3BlbkFQSTsgYXV0aC9lbnYgcmVtYWluIGhhbmQtYXV0aG9yZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVBvc3RtYW5BdXRoT3ZlcmxheShcblx0Y29sbGVjdGlvbjogUG9zdG1hbkNvbGxlY3Rpb24sXG5cdHByb2plY3ROYW1lOiBzdHJpbmcsXG5cdGF1dGg6IEF1dGgwRW52IHwgdW5kZWZpbmVkLFxuXHRvcHRpb25zOiB7XG5cdFx0Y2FsbGJhY2tzOiByZWFkb25seSBzdHJpbmdbXTtcblx0XHRzY29wZXM6IHN0cmluZztcblx0XHRkZXNjcmlwdGlvbjogc3RyaW5nO1xuXHR9LFxuKTogUG9zdG1hbkNvbGxlY3Rpb24ge1xuXHRjb25zdCBuZXh0OiBQb3N0bWFuQ29sbGVjdGlvbiA9IHtcblx0XHQuLi5jb2xsZWN0aW9uLFxuXHRcdGluZm86IHtcblx0XHRcdC4uLmNvbGxlY3Rpb24uaW5mbyxcblx0XHRcdG5hbWU6IGAke3Byb2plY3ROYW1lfSBXZWJBUElgLFxuXHRcdFx0ZGVzY3JpcHRpb246IG9wdGlvbnMuZGVzY3JpcHRpb24sXG5cdFx0XHRzY2hlbWE6XG5cdFx0XHRcdGNvbGxlY3Rpb24uaW5mby5zY2hlbWEgPz9cblx0XHRcdFx0XCJodHRwczovL3NjaGVtYS5nZXRwb3N0bWFuLmNvbS9qc29uL2NvbGxlY3Rpb24vdjIuMS4wL2NvbGxlY3Rpb24uanNvblwiLFxuXHRcdH0sXG5cdH07XG5cblx0aWYgKGF1dGg/LmF1dGgwRG9tYWluKSB7XG5cdFx0bmV4dC5hdXRoID0ge1xuXHRcdFx0dHlwZTogXCJvYXV0aDJcIixcblx0XHRcdG9hdXRoMjogW1xuXHRcdFx0XHR7IGtleTogXCJncmFudF90eXBlXCIsIHZhbHVlOiBcImF1dGhvcml6YXRpb25fY29kZV93aXRoX3BrY2VcIiwgdHlwZTogXCJzdHJpbmdcIiB9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0a2V5OiBcImF1dGhVcmxcIixcblx0XHRcdFx0XHR2YWx1ZTogXCJodHRwczovL3t7YXV0aDBEb21haW59fS9hdXRob3JpemU/YXVkaWVuY2U9e3thdXRoMEF1ZGllbmNlfX1cIixcblx0XHRcdFx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0a2V5OiBcImFjY2Vzc1Rva2VuVXJsXCIsXG5cdFx0XHRcdFx0dmFsdWU6IFwiaHR0cHM6Ly97e2F1dGgwRG9tYWlufX0vb2F1dGgvdG9rZW5cIixcblx0XHRcdFx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7IGtleTogXCJjbGllbnRJZFwiLCB2YWx1ZTogXCJ7e2F1dGgwQ2xpZW50SWR9fVwiLCB0eXBlOiBcInN0cmluZ1wiIH0sXG5cdFx0XHRcdHsga2V5OiBcInNjb3BlXCIsIHZhbHVlOiBvcHRpb25zLnNjb3BlcywgdHlwZTogXCJzdHJpbmdcIiB9LFxuXHRcdFx0XHR7IGtleTogXCJyZWRpcmVjdF91cmlcIiwgdmFsdWU6IG9wdGlvbnMuY2FsbGJhY2tzWzBdLCB0eXBlOiBcInN0cmluZ1wiIH0sXG5cdFx0XHRcdHsga2V5OiBcInVzZUJyb3dzZXJcIiwgdmFsdWU6IFwidHJ1ZVwiLCB0eXBlOiBcImJvb2xlYW5cIiB9LFxuXHRcdFx0XHR7IGtleTogXCJhZGRUb2tlblRvXCIsIHZhbHVlOiBcImhlYWRlclwiLCB0eXBlOiBcInN0cmluZ1wiIH0sXG5cdFx0XHRcdHsga2V5OiBcImNoYWxsZW5nZUFsZ29yaXRobVwiLCB2YWx1ZTogXCJTMjU2XCIsIHR5cGU6IFwic3RyaW5nXCIgfSxcblx0XHRcdFx0eyBrZXk6IFwiY2xpZW50X2F1dGhlbnRpY2F0aW9uXCIsIHZhbHVlOiBcImJvZHlcIiwgdHlwZTogXCJzdHJpbmdcIiB9LFxuXHRcdFx0XHR7IGtleTogXCJjbGllbnRTZWNyZXRcIiwgdmFsdWU6IFwiXCIsIHR5cGU6IFwic3RyaW5nXCIgfSxcblx0XHRcdFx0eyBrZXk6IFwidG9rZW5OYW1lXCIsIHZhbHVlOiBgJHtwcm9qZWN0TmFtZX0gQWNjZXNzIFRva2VuYCwgdHlwZTogXCJzdHJpbmdcIiB9LFxuXHRcdFx0XSxcblx0XHR9O1xuXHR9XG5cblx0bmV4dC5pdGVtID0gcmV3cml0ZUNvbGxlY3Rpb25JdGVtcyhjb2xsZWN0aW9uLml0ZW0gPz8gW10sIHtcblx0XHRtYXJrTGlzdEFub255bW91czogdHJ1ZSxcblx0fSk7XG5cdHJldHVybiBuZXh0O1xufVxuXG5mdW5jdGlvbiByZXdyaXRlQ29sbGVjdGlvbkl0ZW1zKFxuXHRpdGVtczogUG9zdG1hbkl0ZW1bXSxcblx0b3B0czogeyBtYXJrTGlzdEFub255bW91czogYm9vbGVhbiB9LFxuKTogUG9zdG1hbkl0ZW1bXSB7XG5cdHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcblx0XHRpZiAoaXRlbS5pdGVtICE9IG51bGwpIHtcblx0XHRcdHJldHVybiB7IC4uLml0ZW0sIGl0ZW06IHJld3JpdGVDb2xsZWN0aW9uSXRlbXMoaXRlbS5pdGVtLCBvcHRzKSB9O1xuXHRcdH1cblx0XHRjb25zdCByZXF1ZXN0ID0gaXRlbS5yZXF1ZXN0O1xuXHRcdGlmIChyZXF1ZXN0ID09IG51bGwpIHtcblx0XHRcdHJldHVybiBpdGVtO1xuXHRcdH1cblx0XHRjb25zdCBtZXRob2QgPSAocmVxdWVzdC5tZXRob2QgPz8gXCJHRVRcIikudG9VcHBlckNhc2UoKTtcblx0XHRjb25zdCByYXdVcmwgPSByZXF1ZXN0VXJsUmF3KHJlcXVlc3QpO1xuXHRcdGNvbnN0IG5leHRSZXF1ZXN0OiBQb3N0bWFuUmVxdWVzdCA9IHtcblx0XHRcdC4uLnJlcXVlc3QsXG5cdFx0XHR1cmw6IHRvUG9zdG1hblVybChyYXdVcmwpLFxuXHRcdH07XG5cdFx0Ly8gTGlzdCBIZWxsbyBzdGF5cyBhbm9ueW1vdXMgKG1hdGNoZXMgc2NhZmZvbGQgQWxsb3dBbm9ueW1vdXMgb24gR0VUIC9oZWxsbykuXG5cdFx0aWYgKFxuXHRcdFx0b3B0cy5tYXJrTGlzdEFub255bW91cyAmJlxuXHRcdFx0bWV0aG9kID09PSBcIkdFVFwiICYmXG5cdFx0XHRub3JtYWxpemVQYXRoKHJhd1VybCkgPT09IFwiL2hlbGxvXCIgJiZcblx0XHRcdCFyYXdVcmwuaW5jbHVkZXMoXCIvOlwiKVxuXHRcdCkge1xuXHRcdFx0bmV4dFJlcXVlc3QuYXV0aCA9IHsgdHlwZTogXCJub2F1dGhcIiB9O1xuXHRcdH1cblx0XHRyZXR1cm4geyAuLi5pdGVtLCByZXF1ZXN0OiBuZXh0UmVxdWVzdCB9O1xuXHR9KTtcbn1cblxuZnVuY3Rpb24gcmVxdWVzdFVybFJhdyhyZXF1ZXN0OiBQb3N0bWFuUmVxdWVzdCk6IHN0cmluZyB7XG5cdGNvbnN0IHVybCA9IHJlcXVlc3QudXJsO1xuXHRpZiAodHlwZW9mIHVybCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHJldHVybiB1cmw7XG5cdH1cblx0aWYgKHVybD8ucmF3KSB7XG5cdFx0cmV0dXJuIHVybC5yYXc7XG5cdH1cblx0Y29uc3QgaG9zdCA9IHVybD8uaG9zdD8uWzBdID8/IFwie3tiYXNlVXJsfX1cIjtcblx0Y29uc3QgcGF0aCA9ICh1cmw/LnBhdGggPz8gW10pLmpvaW4oXCIvXCIpO1xuXHRyZXR1cm4gcGF0aCA/IGAke2hvc3R9LyR7cGF0aH1gIDogaG9zdDtcbn1cblxuLyoqIE9wZW5BUEkgYHtpZH1gIOKGkiBQb3N0bWFuIGA6aWRgLCB3aXRob3V0IHRvdWNoaW5nIGB7e3ZhcmlhYmxlc319YC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvcGVuQXBpUGF0aFBhcmFtc1RvQ29sb24odXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gdXJsLnJlcGxhY2UoLyg/PCFcXHspXFx7KFtBLVphLXpfXVtcXHddKilcXH0oPyFcXH0pL2csIFwiOiQxXCIpO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVQYXRoKHJhd1VybDogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgd2l0aG91dEJhc2UgPSByYXdVcmwucmVwbGFjZSgvXFx7XFx7YmFzZVVybFxcfVxcfS9nLCBcIlwiKS5zcGxpdChcIj9cIilbMF0gPz8gXCJcIjtcblx0Y29uc3Qgd2l0aFNsYXNoID0gd2l0aG91dEJhc2Uuc3RhcnRzV2l0aChcIi9cIikgPyB3aXRob3V0QmFzZSA6IGAvJHt3aXRob3V0QmFzZX1gO1xuXHRyZXR1cm4gb3BlbkFwaVBhdGhQYXJhbXNUb0NvbG9uKHdpdGhTbGFzaCk7XG59XG5cbi8qKiBQcmVmZXIgUG9zdG1hbiB0ZW1wbGF0ZSBVUkwgc2hhcGUgdXNlZCBieSBleGlzdGluZyBMb2NhbCBWaWV3IC8gQVBJIHVwbG9hZHMuICovXG5mdW5jdGlvbiB0b1Bvc3RtYW5VcmwocmF3VXJsOiBzdHJpbmcpOiBQb3N0bWFuUmVxdWVzdFtcInVybFwiXSB7XG5cdGxldCBwYXRoUGFydCA9IHJhd1VybC5yZXBsYWNlKC9cXHtcXHtiYXNlVXJsXFx9XFx9L2csIFwiXCIpO1xuXHRpZiAoIXBhdGhQYXJ0LnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG5cdFx0cGF0aFBhcnQgPSBgLyR7cGF0aFBhcnR9YDtcblx0fVxuXHQvLyBvcGVuYXBpLXRvLXBvc3RtYW4gdXNlcyB7aWR9OyBMb2NhbCBWaWV3IC8gcHJpb3IgY29sbGVjdGlvbnMgdXNlIDppZFxuXHRwYXRoUGFydCA9IG9wZW5BcGlQYXRoUGFyYW1zVG9Db2xvbihwYXRoUGFydCk7XG5cdGNvbnN0IHNlZ21lbnRzID0gcGF0aFBhcnQuc3BsaXQoXCIvXCIpLmZpbHRlcihCb29sZWFuKTtcblx0cmV0dXJuIHtcblx0XHRyYXc6IGB7e2Jhc2VVcmx9fSR7cGF0aFBhcnR9YCxcblx0XHRob3N0OiBbXCJ7e2Jhc2VVcmx9fVwiXSxcblx0XHRwYXRoOiBzZWdtZW50cyxcblx0fTtcbn1cbiJdLCJuYW1lcyI6WyJhcHBseVBvc3RtYW5BdXRoT3ZlcmxheSIsIm9wZW5BcGlQYXRoUGFyYW1zVG9Db2xvbiIsIm9wZW5BcGlUb1Bvc3RtYW5Db2xsZWN0aW9uIiwiY29udmVydEFzeW5jIiwiZGF0YSIsIm9wdGlvbnMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImNvbnZlcnRlciIsImNvbnZlcnQiLCJ0eXBlIiwiZXJyIiwicmVzdWx0IiwiZG9jdW1lbnQiLCJmb2xkZXJTdHJhdGVneSIsInJlcXVlc3ROYW1lU291cmNlIiwiaW5jbHVkZUF1dGhJbmZvSW5FeGFtcGxlIiwib3V0cHV0IiwiRXJyb3IiLCJyZWFzb24iLCJjb2xsZWN0aW9uIiwicHJvamVjdE5hbWUiLCJhdXRoIiwibmV4dCIsImluZm8iLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJzY2hlbWEiLCJhdXRoMERvbWFpbiIsIm9hdXRoMiIsImtleSIsInZhbHVlIiwic2NvcGVzIiwiY2FsbGJhY2tzIiwiaXRlbSIsInJld3JpdGVDb2xsZWN0aW9uSXRlbXMiLCJtYXJrTGlzdEFub255bW91cyIsIml0ZW1zIiwib3B0cyIsIm1hcCIsInJlcXVlc3QiLCJtZXRob2QiLCJ0b1VwcGVyQ2FzZSIsInJhd1VybCIsInJlcXVlc3RVcmxSYXciLCJuZXh0UmVxdWVzdCIsInVybCIsInRvUG9zdG1hblVybCIsIm5vcm1hbGl6ZVBhdGgiLCJpbmNsdWRlcyIsInJhdyIsImhvc3QiLCJwYXRoIiwiam9pbiIsInJlcGxhY2UiLCJ3aXRob3V0QmFzZSIsInNwbGl0Iiwid2l0aFNsYXNoIiwic3RhcnRzV2l0aCIsInBhdGhQYXJ0Iiwic2VnbWVudHMiLCJmaWx0ZXIiLCJCb29sZWFuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQWtGZ0JBO2VBQUFBOztRQXFHQUM7ZUFBQUE7O1FBdkhNQztlQUFBQTs7OzJFQWhFQTs7Ozs7O0FBNEN0QixTQUFTQyxhQUNSQyxJQUE2QixFQUM3QkMsT0FBZ0M7SUFFaEMsT0FBTyxJQUFJQyxRQUFRLENBQUNDLFNBQVNDO1FBQzVCQywyQkFBUyxDQUFDQyxPQUFPLENBQ2hCO1lBQUVDLE1BQU07WUFBUVA7UUFBSyxHQUNyQkMsU0FDQSxDQUFDTyxLQUFtQkM7WUFDbkIsSUFBSUQsS0FBSztnQkFDUkosT0FBT0k7Z0JBQ1A7WUFDRDtZQUNBTCxRQUFRTTtRQUNUO0lBRUY7QUFDRDtBQUdPLGVBQWVYLDJCQUNyQlksUUFBaUM7SUFFakMsTUFBTUQsU0FBUyxNQUFNVixhQUFhVyxVQUFVO1FBQzNDQyxnQkFBZ0I7UUFDaEJDLG1CQUFtQjtRQUNuQkMsMEJBQTBCO0lBQzNCO0lBQ0EsSUFBSSxDQUFDSixPQUFPQSxNQUFNLElBQUlBLE9BQU9LLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRWQsUUFBUSxNQUFNO1FBQ3ZELE1BQU0sSUFBSWUsTUFBTU4sT0FBT08sTUFBTSxJQUFJO0lBQ2xDO0lBQ0EsT0FBT1AsT0FBT0ssTUFBTSxDQUFDLEVBQUUsQ0FBQ2QsSUFBSTtBQUM3QjtBQU1PLFNBQVNKLHdCQUNmcUIsVUFBNkIsRUFDN0JDLFdBQW1CLEVBQ25CQyxJQUEwQixFQUMxQmxCLE9BSUM7SUFFRCxNQUFNbUIsT0FBMEI7UUFDL0IsR0FBR0gsVUFBVTtRQUNiSSxNQUFNO1lBQ0wsR0FBR0osV0FBV0ksSUFBSTtZQUNs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
@@ -106,5 +106,3 @@ function mergeApiNames(existing, added) {
106
106
  ...added.filter((name)=>!seen.has(name))
107
107
  ];
108
108
  }
109
-
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvd29ya3NwYWNlLXJlYWRtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4uL21vZGVscy9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFbnZGaWxlIH0gZnJvbSBcIi4uL21vZGVscy9lbnYtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBQYWNrYWdlSnNvbiB9IGZyb20gXCIuLi9tb2RlbHMvcGFja2FnZS1qc29uLm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFdvcmtzcGFjZVNjYWZmb2xkIH0gZnJvbSBcIi4uL21vZGVscy9wcm9qZWN0Lm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBhcGlOYW1lRnJvbVByb2plY3REaXIsIGxpc3RFeGlzdGluZ0FwaU5hbWVzIH0gZnJvbSBcIi4vYXBpLW5hbWUuanNcIjtcblxuZXhwb3J0IHR5cGUgV29ya3NwYWNlUmVhZG1lT3B0aW9ucyA9IHtcblx0YWRkPzogYm9vbGVhbjtcblx0ZGF0YWJhc2VQcm92aWRlcj86IFwibm9uZVwiIHwgXCJwb3N0Z3Jlcy90eXBlb3JtXCI7XG5cdGF1dGhQcm92aWRlcj86IFwiYXV0aDBcIiB8IFwibm9uZVwiO1xuXHRwb3N0bWFuUHJvdmlkZXI/OiBcImFwaVwiIHwgXCJsb2NhbFwiIHwgXCJub25lXCI7XG59O1xuXG5leHBvcnQgdHlwZSBXb3Jrc3BhY2VSZWFkbWVJbnB1dCA9IHtcblx0cHJvamVjdE5hbWU6IHN0cmluZztcblx0YXBpTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXHRoYXNQb3N0Z3JlczogYm9vbGVhbjtcblx0aGFzQXV0aDA6IGJvb2xlYW47XG5cdGhhc1Bvc3RtYW46IGJvb2xlYW47XG59O1xuXG4vKiogUHVyZSByZW5kZXJlciDigJQga2VlcCBmZWF0dXJlIHNlY3Rpb25zIHNob3J0IGFuZCBjb3B5LXBhc3RlIHJlYWR5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcldvcmtzcGFjZVJlYWRtZShpbnB1dDogV29ya3NwYWNlUmVhZG1lSW5wdXQpOiBzdHJpbmcge1xuXHRjb25zdCB7IHByb2plY3ROYW1lLCBhcGlOYW1lcywgaGFzUG9zdGdyZXMsIGhhc0F1dGgwLCBoYXNQb3N0bWFuIH0gPSBpbnB1dDtcblx0Y29uc3QgYXBpcyA9IGFwaU5hbWVzLmxlbmd0aCA+IDAgPyBhcGlOYW1lcyA6IFtcImFwaVwiXTtcblx0Y29uc3QgbGluZXM6IHN0cmluZ1tdID0gW1xuXHRcdGAjICR7cHJvamVjdE5hbWV9YCxcblx0XHRcIlwiLFxuXHRcdFwiRGVjb2hlcmUgd2ViIEFQSSB3b3Jrc3BhY2UuIFNjYWZmb2xkZWQgd2l0aCBbYEBkZWNvaGVyZS9jcmVhdGVgXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AZGVjb2hlcmUvY3JlYXRlKS5cIixcblx0XHRcIlwiLFxuXHRcdFwiIyMgR2V0IHN0YXJ0ZWRcIixcblx0XHRcIlwiLFxuXHRcdFwiMS4gT3BlbiB0aGlzIGZvbGRlciBpbiBWUyBDb2RlIC8gQ3Vyc29yLlwiLFxuXHRcdFwiMi4gKipSZW9wZW4gaW4gQ29udGFpbmVyKiogKG9yIHJlYnVpbGQgdGhlIERldiBDb250YWluZXIpLlwiLFxuXHRcdFwiICAgSG9zdCBgaW5pdGlhbGl6ZS5zaGAgYW5kIGNvbnRhaW5lciBgcG9zdC1zdGFydC5zaGAgYXNrIHkvTiAoVFRZIG9ubHkpIGJlZm9yZSBucG0gYXV0aCBvciBjb2RlYmFzZSBSQUcgTUNQLlwiLFxuXHRcdFwiICAgU2tpcCBvciBkZWNsaW5lOyBtaXNzaW5nIFRUWSBza2lwcy4gUkFHIGNyZWRlbnRpYWxzIGxhbmQgaW4gYC5jdXJzb3IvYCAoZ2l0aWdub3JlZCkuXCIsXG5cdFx0XCIzLiBJbnN0YWxsIGRlcGVuZGVuY2llcyBpZiBuZWVkZWQ6XCIsXG5cdFx0XCJcIixcblx0XHRcImBgYGJhc2hcIixcblx0XHRcInBucG0gaW5zdGFsbFwiLFxuXHRcdFwiYGBgXCIsXG5cdFx0XCJcIixcblx0XHRcIiMjIERldmVsb3BcIixcblx0XHRcIlwiLFxuXHRcdFwiYGBgYmFzaFwiLFxuXHRcdFwicG5wbSBkZXYgICAgICAgICAgICAgICMgRmx1eCBITVIgKGZpcnN0IEFQSSlcIixcblx0XHRcInBucG0gc3RhcnQgICAgICAgICAgICAjIHJ1biB0aGUgY29tcGlsZWQgZmlyc3QgQVBJXCIsXG5cdFx0XCJwbnBtIHJ1biBidWlsZCAgICAgICAgIyBmb3JnZSByZWxlYXNlIGJ1aWxkXCIsXG5cdF07XG5cblx0Zm9yIChjb25zdCBuYW1lIG9mIGFwaXMpIHtcblx0XHRsaW5lcy5wdXNoKGBwbnBtIHJ1biBkZXY6JHtuYW1lfSAgICAgIyBITVIgZm9yICR7bmFtZX1gKTtcblx0XHRsaW5lcy5wdXNoKGBwbnBtIHJ1biBzdGFydDoke25hbWV9ICAgIyBwcm9kdWN0aW9uIGVudHJ5IGZvciAke25hbWV9YCk7XG5cdH1cblxuXHRsaW5lcy5wdXNoKFwiYGBgXCIsIFwiXCIpO1xuXG5cdGxpbmVzLnB1c2goXG5cdFx0XCIjIyBMb2dnaW5nXCIsXG5cdFx0XCJcIixcblx0XHRcIkluIGRldmVsb3BtZW50LCBTY3JpYmUgdXNlcyBwaW5vLXByZXR0eSBhbmQgcm9sbGluZyBmaWxlcyB1bmRlciBgbG9ncy9gIChnaXRpZ25vcmVkKS5cIixcblx0XHRcIldoZW4gYE5PREVfRU5WPXByb2R1Y3Rpb25gLCB0aGUgcHJvY2VzcyB3cml0ZXMgc3RydWN0dXJlZCBKU09OIHRvIHN0ZG91dCBhbmQgZG9lcyBub3Qgcm90YXRlIGZpbGVzLlwiLFxuXHRcdFwiU2hpcCBhbmQgcmV0YWluIHRob3NlIHN0cmVhbXMgb3V0c2lkZSB0aGUgYXBwIChwbGF0Zm9ybSBsb2dzLCBhIHNpZGVjYXIsIG9yIGEgbG9nIGFnZW50KSBzbyBzaGlwcGluZyBjYW4gY2hhbmdlIHdpdGhvdXQgcmVidWlsZGluZy5cIixcblx0XHRcIlwiLFxuXHRcdFwiT3ZlcnJpZGUgcm9sbCBwYXRoIGFuZCByb3RhdGlvbiB3aXRob3V0IGNoYW5naW5nIGFwcCBjb2RlOlwiLFxuXHRcdFwiYFNDUklCRV9MT0dfRklMRWAsIGBTQ1JJQkVfTE9HX1NJWkVgLCBgU0NSSUJFX0xPR19GUkVRVUVOQ1lgLCBgU0NSSUJFX0xPR19LRUVQYC5cIixcblx0XHRcIlwiLFxuXHRcdCdPcHQgaW50byBpbi1wcm9jZXNzIHByZXR0eSBvciByb2xsIGluIHByb2R1Y3Rpb24gb25seSB3aXRoIGB7IHdoZW46IFwiYWx3YXlzXCIgfWAgb24gYHNjcmliZS53aXRoUGlub1ByZXR0eWAgLyBgc2NyaWJlLndpdGhQaW5vUm9sbGAuJyxcblx0XHRcIlwiLFxuXHQpO1xuXG5cdGlmIChoYXNQb3N0Z3Jlcykge1xuXHRcdGxpbmVzLnB1c2goXG5cdFx0XHRcIiMjIERhdGFiYXNlXCIsXG5cdFx0XHRcIlwiLFxuXHRcdFx0XCJQb3N0Z3JlcyBydW5zIHZpYSBEZXYgQ29udGFpbmVyIENvbXBvc2U6XCIsXG5cdFx0XHRcIlwiLFxuXHRcdFx0XCJgYGBiYXNoXCIsXG5cdFx0XHRcInBucG0gZGI6dXBcIixcblx0XHRcdFwicG5wbSBkYjpkb3duXCIsXG5cdFx0XHRcInBucG0gZGI6cmVzZXRcIixcblx0XHRcdFwiYGBgXCIsXG5cdFx0XHRcIlwiLFxuXHRcdCk7XG5cdH1cblxuXHRsaW5lcy5wdXNoKFxuXHRcdFwiIyMgRGVwbG95XCIsXG5cdFx0XCJcIixcblx0XHRcIlBhYVMgaG9zdHMgKGBkb2NrZXIgYnVpbGRgIGZyb20gdGhlIHJlcG8gcm9vdCkgdXNlIHRoZSBzY2FmZm9sZGVkIGBEb2NrZXJmaWxlYC5cIixcblx0XHRcIlRoZSBydW50aW1lIGltYWdlIGluc3RhbGxzIHByb2R1Y3Rpb24gZGVwZW5kZW5jaWVzIG9ubHkgKGBwbnBtIGluc3RhbGwgLS1wcm9kYCk7XCIsXG5cdFx0XCJGb3JnZSwgVHlwZVNjcmlwdCwgQmlvbWUsIGFuZCBWaXRlc3Qgc3RheSBpbiB0aGUgYnVpbGQgc3RhZ2UuXCIsXG5cdFx0XCJcIixcblx0XHRcImBgYGJhc2hcIixcblx0XHRgZG9ja2VyIGJ1aWxkIC10ICR7cHJvamVjdE5hbWV9IC5gLFxuXHRcdFwiYGBgXCIsXG5cdFx0XCJcIixcblx0XHRcIkV4dHJhIEFQSXM6IGBkb2NrZXIgYnVpbGQgLWYgRG9ja2VyZmlsZS48bmFtZT4gLmBcIixcblx0XHRcIlwiLFxuXHQpO1xuXG5cdGxpbmVzLnB1c2goXG5cdFx0XCIjIyBBZGQgYW5vdGhlciBBUElcIixcblx0XHRcIlwiLFxuXHRcdFwiYGBgYmFzaFwiLFxuXHRcdFwiZGVjb2hlcmUgYWRkIGFwaSA8bmFtZT5cIixcblx0XHRcImBgYFwiLFxuXHRcdFwiXCIsXG5cdFx0XCJFeGFtcGxlOiBgZGVjb2hlcmUgYWRkIGFwaSBiaWxsaW5nYFwiLFxuXHRcdFwiXCIsXG5cdCk7XG5cblx0aWYgKGhhc0F1dGgwKSB7XG5cdFx0bGluZXMucHVzaChcblx0XHRcdFwiIyMgQXV0aDBcIixcblx0XHRcdFwiXCIsXG5cdFx0XHRcIkpXVCBhdXRoIGlzIHdpcmVkIGZyb20gYC5lbnZgIChgQVVUSDBfSVNTVUVSX0JBU0VfVVJMYCwgYEFVVEgwX0FVRElFTkNFYCkuXCIsXG5cdFx0XHQnQWZ0ZXIgeW91IGFkZCBhIGNvbnRyb2xsZXIsIGBAQXV0aG9yaXplKFwicmVhZFwiLCBcIkludm9pY2VcIilgIGJlY29tZXMgdGhlIEF1dGgwIHBlcm1pc3Npb24gYHJlYWQ6SW52b2ljZWAuJyxcblx0XHRcdFwiU3luYyB0aGUgQXV0aDAgQVBJLCBhZG1pbiBncmFudHMsIGFuZCBQb3N0bWFuIHRva2VuIHNjb3BlcyB3aXRob3V0IHJlLXNjYWZmb2xkaW5nOlwiLFxuXHRcdFx0XCJcIixcblx0XHRcdFwiYGBgYmFzaFwiLFxuXHRcdFx0XCJucHggQGRlY29oZXJlL2NyZWF0ZSBhdXRoMCBsb2dpbiAgICAgICMgb25jZSAvIHdoZW4gdGhlIENMSSB0b2tlbiBleHBpcmVzXCIsXG5cdFx0XHRcIm5weCBAZGVjb2hlcmUvY3JlYXRlIGF1dGgwIGNvbmZpZ3VyZSAgIyBhZnRlciBuZXcgQEF1dGhvcml6ZSBkZWNvcmF0b3JzXCIsXG5cdFx0XHRcImBgYFwiLFxuXHRcdFx0XCJcIixcblx0XHQpO1xuXHR9XG5cblx0aWYgKGhhc1Bvc3RtYW4pIHtcblx0XHRsaW5lcy5wdXNoKFxuXHRcdFx0XCIjIyBQb3N0bWFuXCIsXG5cdFx0XHRcIlwiLFxuXHRcdFx0XCJPcGVuIHRoaXMgKipwcm9qZWN0IHJvb3QqKiBpbiBQb3N0bWFuIExvY2FsIFZpZXcgKEZpbGVzIOKGkiBPcGVuIGZvbGRlciksIG5vdCB0aGUgYHBvc3RtYW4vYCBzdWJmb2xkZXIuXCIsXG5cdFx0XHRcIlNlbGVjdCB0aGUgTG9jYWwgZW52aXJvbm1lbnQsIHRoZW4gQXV0aG9yaXphdGlvbiDihpIgR2V0IE5ldyBBY2Nlc3MgVG9rZW4gd2hlbiBBdXRoMCBpcyBlbmFibGVkLlwiLFxuXHRcdFx0XCJcIixcblx0XHQpO1xuXHR9XG5cblx0bGluZXMucHVzaChcblx0XHRcIiMjIE1vcmVcIixcblx0XHRcIlwiLFxuXHRcdFwiLSBQYWNrYWdlIGRvY3M6IGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BkZWNvaGVyZS9jcmVhdGVcIixcblx0XHRcIi0gQWZ0ZXIgYGRlY29oZXJlIGFkZCBhcGlgLCB0aGlzIFJFQURNRSBpcyByZWZyZXNoZWQgc28gc2NyaXB0cyBhbmQgQVBJcyBzdGF5IGFjY3VyYXRlLlwiLFxuXHRcdFwiXCIsXG5cdCk7XG5cblx0cmV0dXJuIGAke2xpbmVzLmpvaW4oXCJcXG5cIil9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVXb3Jrc3BhY2VSZWFkbWVJbnB1dChcblx0d29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCxcblx0b3B0aW9uczogV29ya3NwYWNlUmVhZG1lT3B0aW9ucyxcbik6IFdvcmtzcGFjZVJlYWRtZUlucHV0IHtcblx0Y29uc3QgbmV3TmFtZXMgPSB3b3Jrc3BhY2Vcblx0XHQuZ2V0UHJvamVjdHMoKVxuXHRcdC5tYXAoKHByb2plY3QpID0+IGFwaU5hbWVGcm9tUHJvamVjdERpcihwcm9qZWN0LmRpcikpO1xuXHRjb25zdCBhcGlOYW1lcyA9IG9wdGlvbnMuYWRkXG5cdFx0PyBtZXJnZUFwaU5hbWVzKGxpc3RFeGlzdGluZ0FwaU5hbWVzKHdvcmtzcGFjZS50YXJnZXREaXIpLCBuZXdOYW1lcylcblx0XHQ6IG5ld05hbWVzO1xuXG5cdGNvbnN0IHBrZyA9IHdvcmtzcGFjZS5nZXRNb2RlbDxQYWNrYWdlSnNvbj4oV0VMTF9LTk9XTl9GSUxFUy5QQUNLQUdFX0pTT04pO1xuXHRjb25zdCBlbnYgPSB3b3Jrc3BhY2UuZ2V0TW9kZWw8RW52RmlsZT4oV0VMTF9LTk9XTl9GSUxFUy5FTlZfRklMRSk7XG5cblx0Y29uc3QgaGFzUG9zdGdyZXMgPVxuXHRcdG9wdGlvbnMuZGF0YWJhc2VQcm92aWRlciA9PT0gXCJwb3N0Z3Jlcy90eXBlb3JtXCIgfHwgQm9vbGVhbihwa2c/Lmhhc1NjcmlwdChcImRiOnVwXCIpKTtcblx0Y29uc3QgaGFzQXV0aDAgPVxuXHRcdG9wdGlvbnMuYXV0aFByb3ZpZGVyID09PSBcImF1dGgwXCIgfHwgQm9vbGVhbihlbnY/Lmhhc0VudHJ5KFwiQVVUSDBfSVNTVUVSX0JBU0VfVVJMXCIpKTtcblx0Y29uc3QgaGFzUG9zdG1hbiA9XG5cdFx0b3B0aW9ucy5wb3N0bWFuUHJvdmlkZXIgPT09IFwibG9jYWxcIiB8fFxuXHRcdG9wdGlvbnMucG9zdG1hblByb3ZpZGVyID09PSBcImFwaVwiIHx8XG5cdFx0ZXhpc3RzU3luYyhqb2luKHdvcmtzcGFjZS50YXJnZXREaXIsIFwicG9zdG1hblwiKSkgfHxcblx0XHRleGlzdHNTeW5jKGpvaW4od29ya3NwYWNlLnRhcmdldERpciwgXCIucG9zdG1hblwiKSk7XG5cblx0cmV0dXJuIHtcblx0XHRwcm9qZWN0TmFtZTogd29ya3NwYWNlLm5hbWUsXG5cdFx0YXBpTmFtZXMsXG5cdFx0aGFzUG9zdGdyZXMsXG5cdFx0aGFzQXV0aDAsXG5cdFx0aGFzUG9zdG1hbixcblx0fTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlV29ya3NwYWNlUmVhZG1lKFxuXHR3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkLFxuXHRvcHRpb25zOiBXb3Jrc3BhY2VSZWFkbWVPcHRpb25zLFxuKTogdm9pZCB7XG5cdGNvbnN0IGNvbnRlbnQgPSByZW5kZXJXb3Jrc3BhY2VSZWFkbWUocmVzb2x2ZVdvcmtzcGFjZVJlYWRtZUlucHV0KHdvcmtzcGFjZSwgb3B0aW9ucykpO1xuXHR3b3Jrc3BhY2UuYWRkRmlsZSh7XG5cdFx0ZmlsZXM6ICgpID0+IFt7IGZpbGVQYXRoOiBcIlJFQURNRS5tZFwiLCBjb250ZW50IH1dLFxuXHR9KTtcbn1cblxuZnVuY3Rpb24gbWVyZ2VBcGlOYW1lcyhleGlzdGluZzogcmVhZG9ubHkgc3RyaW5nW10sIGFkZGVkOiByZWFkb25seSBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcblx0Y29uc3Qgc2VlbiA9IG5ldyBTZXQoZXhpc3RpbmcpO1xuXHRyZXR1cm4gWy4uLmV4aXN0aW5nLCAuLi5hZGRlZC5maWx0ZXIoKG5hbWUpID0+ICFzZWVuLmhhcyhuYW1lKSldO1xufVxuIl0sIm5hbWVzIjpbInJlbmRlcldvcmtzcGFjZVJlYWRtZSIsInJlc29sdmVXb3Jrc3BhY2VSZWFkbWVJbnB1dCIsIndyaXRlV29ya3NwYWNlUmVhZG1lIiwiaW5wdXQiLCJwcm9qZWN0TmFtZSIsImFwaU5hbWVzIiwiaGFzUG9zdGdyZXMiLCJoYXNBdXRoMCIsImhhc1Bvc3RtYW4iLCJhcGlzIiwibGVuZ3RoIiwibGluZXMiLCJuYW1lIiwicHVzaCIsImpvaW4iLCJ3b3Jrc3BhY2UiLCJvcHRpb25zIiwibmV3TmFtZXMiLCJnZXRQcm9qZWN0cyIsIm1hcCIsInByb2plY3QiLCJhcGlOYW1lRnJvbVByb2plY3REaXIiLCJkaXIiLCJhZGQiLCJtZXJnZUFwaU5hbWVzIiwibGlzdEV4aXN0aW5nQXBpTmFtZXMiLCJ0YXJnZXREaXIiLCJwa2ciLCJnZXRNb2RlbCIsIldFTExfS05PV05fRklMRVMiLCJQQUNLQUdFX0pTT04iLCJlbnYiLCJFTlZfRklMRSIsImRhdGFiYXNlUHJvdmlkZXIiLCJCb29sZWFuIiwiaGFzU2NyaXB0IiwiYXV0aFByb3ZpZGVyIiwiaGFzRW50cnkiLCJwb3N0bWFuUHJvdmlkZXIiLCJleGlzdHNTeW5jIiwiY29udGVudCIsImFkZEZpbGUiLCJmaWxlcyIsImZpbGVQYXRoIiwiZXhpc3RpbmciLCJhZGRlZCIsInNlZW4iLCJTZXQiLCJmaWx0ZXIiLCJoYXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBd0JnQkE7ZUFBQUE7O1FBK0hBQztlQUFBQTs7UUFpQ0FDO2VBQUFBOzs7d0JBeExXOzBCQUNOO3VCQUNZO3lCQUkyQjtBQWtCckQsU0FBU0Ysc0JBQXNCRyxLQUEyQjtJQUNoRSxNQUFNLEVBQUVDLFdBQVcsRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxFQUFFLEdBQUdMO0lBQ3JFLE1BQU1NLE9BQU9KLFNBQVNLLE1BQU0sR0FBRyxJQUFJTCxXQUFXO1FBQUM7S0FBTTtJQUNyRCxNQUFNTSxRQUFrQjtRQUN2QixDQUFDLEVBQUUsRUFBRVAsYUFBYTtRQUNsQjtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7S0FDQTtJQUVELEtBQUssTUFBTVEsUUFBUUgsS0FBTTtRQUN4QkUsTUFBTUUsSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFRCxLQUFLLGVBQWUsRUFBRUEsTUFBTTtRQUN2REQsTUFBTUUsSUFBSSxDQUFDLENBQUMsZUFBZSxFQUFFRCxLQUFLLDBCQUEwQixFQUFFQSxNQUFNO0lBQ3JFO0lBRUFELE1BQU1FLElBQUksQ0FBQyxPQUFPO0lBRWxCRixNQUFNRSxJQUFJ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
@@ -26,5 +26,3 @@ class WebapiAction {
26
26
  WebapiAction = _ts_decorate([
27
27
  (0, _decorators.injectable)()
28
28
  ], WebapiAction);
29
-
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkuYWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdGFibGUgfSBmcm9tIFwiQGRlY29oZXJlL2NydWNpYmxlL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IHR5cGUgQWN0aW9uLCBBY3Rpb25SZXNwb25zZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBydW5TY2FmZm9sZEFwaSwgdG9BcGlPcHRpb25zIH0gZnJvbSBcIi4vd2ViYXBpL2NsaS1vcHRpb25zLmpzXCI7XG5cbmV4cG9ydCB0eXBlIFdlYmFwaU9wdGlvbnMgPSB7XG5cdGRpcmVjdG9yeT86IHN0cmluZztcblx0ZD86IHN0cmluZztcblx0bmFtZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuXHRkYXRhYmFzZT86IHN0cmluZztcblx0YXV0aD86IHN0cmluZztcblx0cG9zdG1hbj86IHN0cmluZztcblx0eWVzPzogYm9vbGVhbjtcblx0aW5zdGFsbD86IHN0cmluZztcbn07XG5cbkBpbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXZWJhcGlBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb248V2ViYXBpT3B0aW9ucz4ge1xuXHRwdWJsaWMgYXN5bmMgcnVuKG9wdGlvbnM6IFdlYmFwaU9wdGlvbnMpOiBQcm9taXNlPEFjdGlvblJlc3BvbnNlPiB7XG5cdFx0YXdhaXQgcnVuU2NhZmZvbGRBcGkodG9BcGlPcHRpb25zKG9wdGlvbnMuZGlyZWN0b3J5LCBvcHRpb25zKSk7XG5cdFx0cmV0dXJuIEFjdGlvblJlc3BvbnNlLlN1Y2Nlc3MoXCJ3ZWJhcGlcIik7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJXZWJhcGlBY3Rpb24iLCJydW4iLCJvcHRpb25zIiwicnVuU2NhZmZvbGRBcGkiLCJ0b0FwaU9wdGlvbnMiLCJkaXJlY3RvcnkiLCJBY3Rpb25SZXNwb25zZSIsIlN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7K0JBZ0JhQTs7O2VBQUFBOzs7NEJBaEJjO3FCQUNpQjs0QkFDQzs7Ozs7OztBQWN0QyxNQUFNQTtJQUNaLE1BQWFDLElBQUlDLE9BQXNCLEVBQTJCO1FBQ2pFLE1BQU1DLElBQUFBLDBCQUFjLEVBQUNDLElBQUFBLHdCQUFZLEVBQUNGLFFBQVFHLFNBQVMsRUFBRUg7UUFDckQsT0FBT0ksbUJBQWMsQ0FBQ0MsT0FBTyxDQUFDO0lBQy9CO0FBQ0QifQ==
@@ -41,5 +41,3 @@ class WebapiCommand extends _cli.DecohereCommand {
41
41
  });
42
42
  }
43
43
  }
44
-
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkuY29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNvaGVyZUNvbW1hbmQgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25WYWx1ZXMgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyBhZGRXZWJhcGlGZWF0dXJlT3B0aW9ucywgY29sbGVjdE5hbWUgfSBmcm9tIFwiLi93ZWJhcGkvY2xpLW9wdGlvbnMuanNcIjtcbmltcG9ydCB7IFdlYmFwaUFjdGlvbiB9IGZyb20gXCIuL3dlYmFwaS5hY3Rpb24uanNcIjtcblxuZXhwb3J0IGNsYXNzIFdlYmFwaUNvbW1hbmQgZXh0ZW5kcyBEZWNvaGVyZUNvbW1hbmQge1xuXHRwdWJsaWMgb3ZlcnJpZGUgZ2V0IGFjdGlvbnMoKSB7XG5cdFx0cmV0dXJuIFtXZWJhcGlBY3Rpb25dO1xuXHR9XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykge1xuXHRcdHN1cGVyKG5hbWUpO1xuXHRcdHRoaXMuZGVzY3JpcHRpb24oXCJTY2FmZm9sZCBhIENvcnRleCB3ZWIgQVBJIHdvcmtzcGFjZVwiKTtcblx0XHR0aGlzLmFyZ3VtZW50KFwiW2RpcmVjdG9yeV1cIiwgXCJUYXJnZXQgZGlyZWN0b3J5IChkZWZhdWx0OiAtZCBvciBjdXJyZW50IGRpcmVjdG9yeSlcIik7XG5cdFx0dGhpcy5vcHRpb24oXCItZCA8ZGlyZWN0b3J5PlwiLCBcIlRhcmdldCBkaXJlY3RvcnkgKGRlZmF1bHQ6IGN1cnJlbnQgZGlyZWN0b3J5KVwiLCBcIi5cIik7XG5cdFx0dGhpcy5vcHRpb24oXG5cdFx0XHRcIi0tbmFtZSA8c2x1Zz5cIixcblx0XHRcdFwiQVBJIG5hbWUgdW5kZXIgcHJvamVjdHMvIChyZXBlYXRhYmxlOyBkZWZhdWx0OiBhcGkpXCIsXG5cdFx0XHRjb2xsZWN0TmFtZSxcblx0XHRcdFtdIGFzIHN0cmluZ1tdLFxuXHRcdCk7XG5cdFx0YWRkV2ViYXBpRmVhdHVyZU9wdGlvbnModGhpcyk7XG5cdH1cblxuXHQvKipcblx0ICogQ29tbWFuZGVyIHBhc3NlcyBwb3NpdGlvbmFsIGFyZ3MgYmVmb3JlIG9wdGlvbnMgd2hlbiBgW2RpcmVjdG9yeV1gIGlzIGRlY2xhcmVkLlxuXHQgKiBNb2R1bGVGYWN0b3J5IGV4cGVjdHMgYChvcHRzLCBjbWQpYCDigJQgc3Rhc2ggdGhlIGRpcmVjdG9yeSBvbiB0aGUgY29tbWFuZC5cblx0ICovXG5cdHB1YmxpYyBvdmVycmlkZSBhY3Rpb24oZm46ICguLi5hcmdzOiB1bmtub3duW10pID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+KTogdGhpcyB7XG5cdFx0cmV0dXJuIHN1cGVyLmFjdGlvbigoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG5cdFx0XHRjb25zdCBjbWQgPSBhcmdzLmF0KC0xKSBhcyBEZWNvaGVyZUNvbW1hbmQ7XG5cdFx0XHRjb25zdCBmaXJzdCA9IGFyZ3NbMF07XG5cdFx0XHRjb25zdCBoYXNQb3NpdGlvbmFsID0gdHlwZW9mIGZpcnN0ID09PSBcInN0cmluZ1wiIHx8IGZpcnN0ID09PSB1bmRlZmluZWQ7XG5cdFx0XHRjb25zdCBvcHRzID0gaGFzUG9zaXRpb25hbCA/IChhcmdzWzFdIGFzIE9wdGlvblZhbHVlcykgOiAoYXJnc1swXSBhcyBPcHRpb25WYWx1ZXMpO1xuXHRcdFx0aWYgKHR5cGVvZiBmaXJzdCA9PT0gXCJzdHJpbmdcIiAmJiBmaXJzdCAhPT0gXCJcIikge1xuXHRcdFx0XHRjbWQuc2V0T3B0aW9uVmFsdWUoXCJkaXJlY3RvcnlcIiwgZmlyc3QpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGZuKG9wdHMsIGNtZCk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJXZWJhcGlDb21tYW5kIiwiRGVjb2hlcmVDb21tYW5kIiwiYWN0aW9ucyIsIldlYmFwaUFjdGlvbiIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsImFyZ3VtZW50Iiwib3B0aW9uIiwiY29sbGVjdE5hbWUiLCJhZGRXZWJhcGlGZWF0dXJlT3B0aW9ucyIsImFjdGlvbiIsImZuIiwiYXJncyIsImNtZCIsImF0IiwiZmlyc3QiLCJoYXNQb3NpdGlvbmFsIiwidW5kZWZpbmVkIiwib3B0cyIsInNldE9wdGlvblZhbHVlIl0sIm1hcHBpbmdzIjoiOzs7OytCQUthQTs7O2VBQUFBOzs7cUJBTG1COzRCQUVxQjs4QkFDeEI7QUFFdEIsTUFBTUEsc0JBQXNCQyxvQkFBZTtJQUNqRCxJQUFvQkMsVUFBVTtRQUM3QixPQUFPO1lBQUNDLDBCQUFZO1NBQUM7SUFDdEI7SUFFQSxZQUFtQkMsSUFBWSxDQUFFO1FBQ2hDLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNDLFdBQVcsQ0FBQztRQUNqQixJQUFJLENBQUNDLFFBQVEsQ0FBQyxlQUFlO1FBQzdCLElBQUksQ0FBQ0MsTUFBTSxDQUFDLGtCQUFrQixpREFBaUQ7UUFDL0UsSUFBSSxDQUFDQSxNQUFNLENBQ1YsaUJBQ0EsdURBQ0FDLHVCQUFXLEVBQ1gsRUFBRTtRQUVIQyxJQUFBQSxtQ0FBdUIsRUFBQyxJQUFJO0lBQzdCO0lBRUE7OztFQUdDLEdBQ0QsQUFBZ0JDLE9BQU9DLEVBQWdELEVBQVE7UUFDOUUsT0FBTyxLQUFLLENBQUNELE9BQU8sQ0FBQyxHQUFHRTtZQUN2QixNQUFNQyxNQUFNRCxLQUFLRSxFQUFFLENBQUMsQ0FBQztZQUNyQixNQUFNQyxRQUFRSCxJQUFJLENBQUMsRUFBRTtZQUNyQixNQUFNSSxnQkFBZ0IsT0FBT0QsVUFBVSxZQUFZQSxVQUFVRTtZQUM3RCxNQUFNQyxPQUFPRixnQkFBaUJKLElBQUksQ0FBQyxFQUFFLEdBQXFCQSxJQUFJLENBQUMsRUFBRTtZQUNqRSxJQUFJLE9BQU9HLFVBQVUsWUFBWUEsVUFBVSxJQUFJO2dCQUM5Q0YsSUFBSU0sY0FBYyxDQUFDLGFBQWFKO1lBQ2pDO1lBQ0EsT0FBT0osR0FBR08sTUFBTUw7UUFDakI7SUFDRDtBQUNEIn0=
@@ -25,5 +25,3 @@ export class AddApiAction {
25
25
  AddApiAction = _ts_decorate([
26
26
  injectable()
27
27
  ], AddApiAction);
28
-
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9hZGQtYXBpLmFjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3RhYmxlIH0gZnJvbSBcIkBkZWNvaGVyZS9jcnVjaWJsZS9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyB0eXBlIEFjdGlvbiwgQWN0aW9uUmVzcG9uc2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgcnVuU2NhZmZvbGRBcGksIHRvQXBpT3B0aW9ucyB9IGZyb20gXCIuL3dlYmFwaS9jbGktb3B0aW9ucy5qc1wiO1xuXG5leHBvcnQgdHlwZSBBZGRBcGlPcHRpb25zID0ge1xuXHRhcGlOYW1lPzogc3RyaW5nO1xuXHRkPzogc3RyaW5nO1xuXHRkYXRhYmFzZT86IHN0cmluZztcblx0YXV0aD86IHN0cmluZztcblx0cG9zdG1hbj86IHN0cmluZztcblx0eWVzPzogYm9vbGVhbjtcblx0aW5zdGFsbD86IHN0cmluZztcbn07XG5cbkBpbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBZGRBcGlBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb248QWRkQXBpT3B0aW9ucz4ge1xuXHRwdWJsaWMgYXN5bmMgcnVuKG9wdGlvbnM6IEFkZEFwaU9wdGlvbnMpOiBQcm9taXNlPEFjdGlvblJlc3BvbnNlPiB7XG5cdFx0Y29uc3QgbmFtZSA9IG9wdGlvbnMuYXBpTmFtZTtcblx0XHRpZiAobmFtZSA9PSBudWxsIHx8IG5hbWUgPT09IFwiXCIpIHtcblx0XHRcdHJldHVybiBBY3Rpb25SZXNwb25zZS5FcnJvcihcImFwaVwiLCBcIkFQSSBuYW1lIGlzIHJlcXVpcmVkXCIpO1xuXHRcdH1cblx0XHRhd2FpdCBydW5TY2FmZm9sZEFwaSh0b0FwaU9wdGlvbnModW5kZWZpbmVkLCBvcHRpb25zLCB7IG5hbWVzOiBbbmFtZV0sIGFkZDogdHJ1ZSB9KSk7XG5cdFx0cmV0dXJuIEFjdGlvblJlc3BvbnNlLlN1Y2Nlc3MoXCJhcGlcIik7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJpbmplY3RhYmxlIiwiQWN0aW9uUmVzcG9uc2UiLCJydW5TY2FmZm9sZEFwaSIsInRvQXBpT3B0aW9ucyIsIkFkZEFwaUFjdGlvbiIsInJ1biIsIm9wdGlvbnMiLCJuYW1lIiwiYXBpTmFtZSIsIkVycm9yIiwidW5kZWZpbmVkIiwibmFtZXMiLCJhZGQiLCJTdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUFTQSxVQUFVLFFBQVEsZ0NBQWdDO0FBQzNELFNBQXNCQyxjQUFjLFFBQVEsc0JBQXNCO0FBQ2xFLFNBQVNDLGNBQWMsRUFBRUMsWUFBWSxRQUFRLDBCQUEwQjtBQWF2RSxPQUFPLE1BQU1DO0lBQ1osTUFBYUMsSUFBSUMsT0FBc0IsRUFBMkI7UUFDakUsTUFBTUMsT0FBT0QsUUFBUUUsT0FBTztRQUM1QixJQUFJRCxRQUFRLFFBQVFBLFNBQVMsSUFBSTtZQUNoQyxPQUFPTixlQUFlUSxLQUFLLENBQUMsT0FBTztRQUNwQztRQUNBLE1BQU1QLGVBQWVDLGFBQWFPLFdBQVdKLFNBQVM7WUFBRUssT0FBTztnQkFBQ0o7YUFBSztZQUFFSyxLQUFLO1FBQUs7UUFDakYsT0FBT1gsZUFBZVksT0FBTyxDQUFDO0lBQy9CO0FBQ0QifQ==
@@ -27,5 +27,3 @@ export class AddApiCommand extends DecohereCommand {
27
27
  });
28
28
  }
29
29
  }
30
-
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9hZGQtYXBpLmNvbW1hbmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjb2hlcmVDb21tYW5kIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB0eXBlIHsgT3B0aW9uVmFsdWVzIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuaW1wb3J0IHsgQWRkQXBpQWN0aW9uIH0gZnJvbSBcIi4vYWRkLWFwaS5hY3Rpb24uanNcIjtcbmltcG9ydCB7IGFkZFdlYmFwaUZlYXR1cmVPcHRpb25zIH0gZnJvbSBcIi4vd2ViYXBpL2NsaS1vcHRpb25zLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBBZGRBcGlDb21tYW5kIGV4dGVuZHMgRGVjb2hlcmVDb21tYW5kIHtcblx0cHVibGljIG92ZXJyaWRlIGdldCBhY3Rpb25zKCkge1xuXHRcdHJldHVybiBbQWRkQXBpQWN0aW9uXTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcblx0XHRzdXBlcihuYW1lKTtcblx0XHR0aGlzLmRlc2NyaXB0aW9uKFwiQWRkIGFuIEFQSSB0byBhbiBleGlzdGluZyBEZWNvaGVyZSB3b3Jrc3BhY2VcIik7XG5cdFx0dGhpcy5hcmd1bWVudChcIjxuYW1lPlwiLCBcIkFQSSBuYW1lIHVuZGVyIHByb2plY3RzL1wiKTtcblx0XHR0aGlzLm9wdGlvbihcIi1kIDxkaXJlY3Rvcnk+XCIsIFwiV29ya3NwYWNlIGRpcmVjdG9yeSAoZGVmYXVsdDogY3VycmVudCBkaXJlY3RvcnkpXCIsIFwiLlwiKTtcblx0XHRhZGRXZWJhcGlGZWF0dXJlT3B0aW9ucyh0aGlzKTtcblx0fVxuXG5cdHB1YmxpYyBvdmVycmlkZSBhY3Rpb24oZm46ICguLi5hcmdzOiB1bmtub3duW10pID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+KTogdGhpcyB7XG5cdFx0cmV0dXJuIHN1cGVyLmFjdGlvbigoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG5cdFx0XHRjb25zdCBjbWQgPSBhcmdzLmF0KC0xKSBhcyBEZWNvaGVyZUNvbW1hbmQ7XG5cdFx0XHRjb25zdCBmaXJzdCA9IGFyZ3NbMF07XG5cdFx0XHRjb25zdCBoYXNQb3NpdGlvbmFsID0gdHlwZW9mIGZpcnN0ID09PSBcInN0cmluZ1wiIHx8IGZpcnN0ID09PSB1bmRlZmluZWQ7XG5cdFx0XHRjb25zdCBvcHRzID0gaGFzUG9zaXRpb25hbCA/IChhcmdzWzFdIGFzIE9wdGlvblZhbHVlcykgOiAoYXJnc1swXSBhcyBPcHRpb25WYWx1ZXMpO1xuXHRcdFx0aWYgKHR5cGVvZiBmaXJzdCA9PT0gXCJzdHJpbmdcIiAmJiBmaXJzdCAhPT0gXCJcIikge1xuXHRcdFx0XHRjbWQuc2V0T3B0aW9uVmFsdWUoXCJhcGlOYW1lXCIsIGZpcnN0KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBmbihvcHRzLCBjbWQpO1xuXHRcdH0pO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiRGVjb2hlcmVDb21tYW5kIiwiQWRkQXBpQWN0aW9uIiwiYWRkV2ViYXBpRmVhdHVyZU9wdGlvbnMiLCJBZGRBcGlDb21tYW5kIiwiYWN0aW9ucyIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsImFyZ3VtZW50Iiwib3B0aW9uIiwiYWN0aW9uIiwiZm4iLCJhcmdzIiwiY21kIiwiYXQiLCJmaXJzdCIsImhhc1Bvc2l0aW9uYWwiLCJ1bmRlZmluZWQiLCJvcHRzIiwic2V0T3B0aW9uVmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGVBQWUsUUFBUSxzQkFBc0I7QUFFdEQsU0FBU0MsWUFBWSxRQUFRLHNCQUFzQjtBQUNuRCxTQUFTQyx1QkFBdUIsUUFBUSwwQkFBMEI7QUFFbEUsT0FBTyxNQUFNQyxzQkFBc0JIO0lBQ2xDLElBQW9CSSxVQUFVO1FBQzdCLE9BQU87WUFBQ0g7U0FBYTtJQUN0QjtJQUVBLFlBQW1CSSxJQUFZLENBQUU7UUFDaEMsS0FBSyxDQUFDQTtRQUNOLElBQUksQ0FBQ0MsV0FBVyxDQUFDO1FBQ2pCLElBQUksQ0FBQ0MsUUFBUSxDQUFDLFVBQVU7UUFDeEIsSUFBSSxDQUFDQyxNQUFNLENBQUMsa0JBQWtCLG9EQUFvRDtRQUNsRk4sd0JBQXdCLElBQUk7SUFDN0I7SUFFZ0JPLE9BQU9DLEVBQWdELEVBQVE7UUFDOUUsT0FBTyxLQUFLLENBQUNELE9BQU8sQ0FBQyxHQUFHRTtZQUN2QixNQUFNQyxNQUFNRCxLQUFLRSxFQUFFLENBQUMsQ0FBQztZQUNyQixNQUFNQyxRQUFRSCxJQUFJLENBQUMsRUFBRTtZQUNyQixNQUFNSSxnQkFBZ0IsT0FBT0QsVUFBVSxZQUFZQSxVQUFVRTtZQUM3RCxNQUFNQyxPQUFPRixnQkFBaUJKLElBQUksQ0FBQyxFQUFFLEdBQXFCQSxJQUFJLENBQUMsRUFBRTtZQUNqRSxJQUFJLE9BQU9HLFVBQVUsWUFBWUEsVUFBVSxJQUFJO2dCQUM5Q0YsSUFBSU0sY0FBYyxDQUFDLFdBQVdKO1lBQy9CO1lBQ0EsT0FBT0osR0FBR08sTUFBTUw7UUFDakI7SUFDRDtBQUNEIn0=
@@ -10,5 +10,3 @@ export class AddCommand extends DecohereCommand {
10
10
  return this.help();
11
11
  }
12
12
  }
13
-
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9hZGQuY29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHtcblx0dHlwZSBDb21tYW5kSGFuZGxlcixcblx0dHlwZSBDb21tYW5kUmVzcG9uc2UsXG5cdHR5cGUgQ29tbWFuZFR5cGUsXG5cdERlY29oZXJlQ29tbWFuZCxcbn0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcblxuZXhwb3J0IGNsYXNzIEFkZENvbW1hbmQgZXh0ZW5kcyBEZWNvaGVyZUNvbW1hbmQge1xuXHRwdWJsaWMgY29uc3RydWN0b3IoY29tbWFuZHM6IFJlY29yZDxzdHJpbmcsIENvbW1hbmRUeXBlPiwgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXIpIHtcblx0XHRzdXBlcihBZGRDb21tYW5kKTtcblx0XHR0aGlzLmRlc2NyaXB0aW9uKFwiQWRkIHRvIGFuIGV4aXN0aW5nIERlY29oZXJlIHdvcmtzcGFjZVwiKTtcblx0XHR0aGlzLmV4aXRPdmVycmlkZSgpO1xuXHRcdHRoaXMucmVnaXN0ZXJTdWJjb21tYW5kKGNvbW1hbmRzLCBoYW5kbGVyKTtcblx0fVxuXG5cdHB1YmxpYyBydW4oX2FjdGlvbnM6IEFjdGlvbnMsIF9vcHRpb25zOiBuZXZlcik6IFByb21pc2U8Q29tbWFuZFJlc3BvbnNlPiB7XG5cdFx0cmV0dXJuIHRoaXMuaGVscCgpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiRGVjb2hlcmVDb21tYW5kIiwiQWRkQ29tbWFuZCIsImNvbW1hbmRzIiwiaGFuZGxlciIsImRlc2NyaXB0aW9uIiwiZXhpdE92ZXJyaWRlIiwicmVnaXN0ZXJTdWJjb21tYW5kIiwicnVuIiwiX2FjdGlvbnMiLCJfb3B0aW9ucyIsImhlbHAiXSwibWFwcGluZ3MiOiJBQUNBLFNBSUNBLGVBQWUsUUFDVCxzQkFBc0I7QUFFN0IsT0FBTyxNQUFNQyxtQkFBbUJEO0lBQy9CLFlBQW1CRSxRQUFxQyxFQUFFQyxPQUF1QixDQUFFO1FBQ2xGLEtBQUssQ0FBQ0Y7UUFDTixJQUFJLENBQUNHLFdBQVcsQ0FBQztRQUNqQixJQUFJLENBQUNDLFlBQVk7UUFDakIsSUFBSSxDQUFDQyxrQkFBa0IsQ0FBQ0osVUFBVUM7SUFDbkM7SUFFT0ksSUFBSUMsUUFBaUIsRUFBRUMsUUFBZSxFQUE0QjtRQUN4RSxPQUFPLElBQUksQ0FBQ0MsSUFBSTtJQUNqQjtBQUNEIn0=
@@ -12,5 +12,3 @@ export class AddModule extends ModuleManifest {
12
12
  api: AddApiAction
13
13
  };
14
14
  }
15
-
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9hZGQubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZU1hbmlmZXN0IH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB7IEFkZENvbW1hbmQgfSBmcm9tIFwiLi9hZGQuY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgQWRkQXBpQWN0aW9uIH0gZnJvbSBcIi4vYWRkLWFwaS5hY3Rpb24uanNcIjtcbmltcG9ydCB7IEFkZEFwaUNvbW1hbmQgfSBmcm9tIFwiLi9hZGQtYXBpLmNvbW1hbmQuanNcIjtcblxuZXhwb3J0IGNsYXNzIEFkZE1vZHVsZSBleHRlbmRzIE1vZHVsZU1hbmlmZXN0IHtcblx0cHVibGljIHJlYWRvbmx5IGlkID0gXCJhZGRcIjtcblx0cHVibGljIHJlYWRvbmx5IGNvbW1hbmQgPSBBZGRDb21tYW5kO1xuXHRwdWJsaWMgcmVhZG9ubHkgY29tbWFuZHMgPSB7IGFwaTogQWRkQXBpQ29tbWFuZCB9O1xuXHRwdWJsaWMgcmVhZG9ubHkgYWN0aW9ucyA9IHsgYXBpOiBBZGRBcGlBY3Rpb24gfTtcbn1cbiJdLCJuYW1lcyI6WyJNb2R1bGVNYW5pZmVzdCIsIkFkZENvbW1hbmQiLCJBZGRBcGlBY3Rpb24iLCJBZGRBcGlDb21tYW5kIiwiQWRkTW9kdWxlIiwiaWQiLCJjb21tYW5kIiwiY29tbWFuZHMiLCJhcGkiLCJhY3Rpb25zIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxjQUFjLFFBQVEsc0JBQXNCO0FBQ3JELFNBQVNDLFVBQVUsUUFBUSxtQkFBbUI7QUFDOUMsU0FBU0MsWUFBWSxRQUFRLHNCQUFzQjtBQUNuRCxTQUFTQyxhQUFhLFFBQVEsdUJBQXVCO0FBRXJELE9BQU8sTUFBTUMsa0JBQWtCSjtJQUNkSyxLQUFLLE1BQU07SUFDWEMsVUFBVUwsV0FBVztJQUNyQk0sV0FBVztRQUFFQyxLQUFLTDtJQUFjLEVBQUU7SUFDbENNLFVBQVU7UUFBRUQsS0FBS047SUFBYSxFQUFFO0FBQ2pEIn0=
@@ -16,5 +16,3 @@ export class Auth0ConfigureAction {
16
16
  Auth0ConfigureAction = _ts_decorate([
17
17
  injectable()
18
18
  ], Auth0ConfigureAction);
19
-
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9hdXRoMC1jb25maWd1cmUuYWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdGFibGUgfSBmcm9tIFwiQGRlY29oZXJlL2NydWNpYmxlL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IHR5cGUgQWN0aW9uLCBBY3Rpb25SZXNwb25zZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBydW5BdXRoMENvbmZpZ3VyZSB9IGZyb20gXCIuL3dlYmFwaS9hdXRoMC1jb21tYW5kcy5qc1wiO1xuXG5leHBvcnQgdHlwZSBBdXRoMENvbmZpZ3VyZU9wdGlvbnMgPSB7XG5cdGQ/OiBzdHJpbmc7XG59O1xuXG5AaW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aDBDb25maWd1cmVBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb248QXV0aDBDb25maWd1cmVPcHRpb25zPiB7XG5cdHB1YmxpYyBhc3luYyBydW4ob3B0aW9uczogQXV0aDBDb25maWd1cmVPcHRpb25zKTogUHJvbWlzZTxBY3Rpb25SZXNwb25zZT4ge1xuXHRcdHJ1bkF1dGgwQ29uZmlndXJlKHR5cGVvZiBvcHRpb25zLmQgPT09IFwic3RyaW5nXCIgPyBvcHRpb25zLmQgOiBcIi5cIik7XG5cdFx0cmV0dXJuIEFjdGlvblJlc3BvbnNlLlN1Y2Nlc3MoXCJjb25maWd1cmVcIik7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJpbmplY3RhYmxlIiwiQWN0aW9uUmVzcG9uc2UiLCJydW5BdXRoMENvbmZpZ3VyZSIsIkF1dGgwQ29uZmlndXJlQWN0aW9uIiwicnVuIiwib3B0aW9ucyIsImQiLCJTdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUFTQSxVQUFVLFFBQVEsZ0NBQWdDO0FBQzNELFNBQXNCQyxjQUFjLFFBQVEsc0JBQXNCO0FBQ2xFLFNBQVNDLGlCQUFpQixRQUFRLDZCQUE2QjtBQU8vRCxPQUFPLE1BQU1DO0lBQ1osTUFBYUMsSUFBSUMsT0FBOEIsRUFBMkI7UUFDekVILGtCQUFrQixPQUFPRyxRQUFRQyxDQUFDLEtBQUssV0FBV0QsUUFBUUMsQ0FBQyxHQUFHO1FBQzlELE9BQU9MLGVBQWVNLE9BQU8sQ0FBQztJQUMvQjtBQUNEIn0=
@@ -12,5 +12,3 @@ export class Auth0ConfigureCommand extends DecohereCommand {
12
12
  this.option("-d <directory>", "Workspace directory (default: current directory)", ".");
13
13
  }
14
14
  }
15
-
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9hdXRoMC1jb25maWd1cmUuY29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNvaGVyZUNvbW1hbmQgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgQXV0aDBDb25maWd1cmVBY3Rpb24gfSBmcm9tIFwiLi9hdXRoMC1jb25maWd1cmUuYWN0aW9uLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBBdXRoMENvbmZpZ3VyZUNvbW1hbmQgZXh0ZW5kcyBEZWNvaGVyZUNvbW1hbmQge1xuXHRwdWJsaWMgb3ZlcnJpZGUgZ2V0IGFjdGlvbnMoKSB7XG5cdFx0cmV0dXJuIFtBdXRoMENvbmZpZ3VyZUFjdGlvbl07XG5cdH1cblxuXHRwdWJsaWMgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG5cdFx0c3VwZXIobmFtZSk7XG5cdFx0dGhpcy5kZXNjcmlwdGlvbihcblx0XHRcdFwiVXBkYXRlIEF1dGgwIEFQSSBwZXJtaXNzaW9ucyBhbmQgUG9zdG1hbiBTUEEgZnJvbSBAQXV0aG9yaXplIGluIHRoaXMgd29ya3NwYWNlXCIsXG5cdFx0KTtcblx0XHR0aGlzLm9wdGlvbihcIi1kIDxkaXJlY3Rvcnk+XCIsIFwiV29ya3NwYWNlIGRpcmVjdG9yeSAoZGVmYXVsdDogY3VycmVudCBkaXJlY3RvcnkpXCIsIFwiLlwiKTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkRlY29oZXJlQ29tbWFuZCIsIkF1dGgwQ29uZmlndXJlQWN0aW9uIiwiQXV0aDBDb25maWd1cmVDb21tYW5kIiwiYWN0aW9ucyIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsIm9wdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZUFBZSxRQUFRLHNCQUFzQjtBQUN0RCxTQUFTQyxvQkFBb0IsUUFBUSw4QkFBOEI7QUFFbkUsT0FBTyxNQUFNQyw4QkFBOEJGO0lBQzFDLElBQW9CRyxVQUFVO1FBQzdCLE9BQU87WUFBQ0Y7U0FBcUI7SUFDOUI7SUFFQSxZQUFtQkcsSUFBWSxDQUFFO1FBQ2hDLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNDLFdBQVcsQ0FDZjtRQUVELElBQUksQ0FBQ0MsTUFBTSxDQUFDLGtCQUFrQixvREFBb0Q7SUFDbkY7QUFDRCJ9
@@ -16,5 +16,3 @@ export class Auth0LoginAction {
16
16
  Auth0LoginAction = _ts_decorate([
17
17
  injectable()
18
18
  ], Auth0LoginAction);
19
-
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9hdXRoMC1sb2dpbi5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgdHlwZSBBY3Rpb24sIEFjdGlvblJlc3BvbnNlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB7IHJ1bkF1dGgwTG9naW4gfSBmcm9tIFwiLi93ZWJhcGkvYXV0aDAtY29tbWFuZHMuanNcIjtcblxuQGluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGgwTG9naW5BY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xuXHRwdWJsaWMgYXN5bmMgcnVuKCk6IFByb21pc2U8QWN0aW9uUmVzcG9uc2U+IHtcblx0XHRydW5BdXRoMExvZ2luKCk7XG5cdFx0cmV0dXJuIEFjdGlvblJlc3BvbnNlLlN1Y2Nlc3MoXCJsb2dpblwiKTtcblx0fVxufVxuIl0sIm5hbWVzIjpbImluamVjdGFibGUiLCJBY3Rpb25SZXNwb25zZSIsInJ1bkF1dGgwTG9naW4iLCJBdXRoMExvZ2luQWN0aW9uIiwicnVuIiwiU3VjY2VzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FBU0EsVUFBVSxRQUFRLGdDQUFnQztBQUMzRCxTQUFzQkMsY0FBYyxRQUFRLHNCQUFzQjtBQUNsRSxTQUFTQyxhQUFhLFFBQVEsNkJBQTZCO0FBRzNELE9BQU8sTUFBTUM7SUFDWixNQUFhQyxNQUErQjtRQUMzQ0Y7UUFDQSxPQUFPRCxlQUFlSSxPQUFPLENBQUM7SUFDL0I7QUFDRCJ9
@@ -11,5 +11,3 @@ export class Auth0LoginCommand extends DecohereCommand {
11
11
  this.description("Authenticate the Auth0 CLI (device URL; tokens persist on the host)");
12
12
  }
13
13
  }
14
-
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9hdXRoMC1sb2dpbi5jb21tYW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY29oZXJlQ29tbWFuZCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBBdXRoMExvZ2luQWN0aW9uIH0gZnJvbSBcIi4vYXV0aDAtbG9naW4uYWN0aW9uLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBBdXRoMExvZ2luQ29tbWFuZCBleHRlbmRzIERlY29oZXJlQ29tbWFuZCB7XG5cdHB1YmxpYyBvdmVycmlkZSBnZXQgYWN0aW9ucygpIHtcblx0XHRyZXR1cm4gW0F1dGgwTG9naW5BY3Rpb25dO1xuXHR9XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykge1xuXHRcdHN1cGVyKG5hbWUpO1xuXHRcdHRoaXMuZGVzY3JpcHRpb24oXCJBdXRoZW50aWNhdGUgdGhlIEF1dGgwIENMSSAoZGV2aWNlIFVSTDsgdG9rZW5zIHBlcnNpc3Qgb24gdGhlIGhvc3QpXCIpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiRGVjb2hlcmVDb21tYW5kIiwiQXV0aDBMb2dpbkFjdGlvbiIsIkF1dGgwTG9naW5Db21tYW5kIiwiYWN0aW9ucyIsIm5hbWUiLCJkZXNjcmlwdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZUFBZSxRQUFRLHNCQUFzQjtBQUN0RCxTQUFTQyxnQkFBZ0IsUUFBUSwwQkFBMEI7QUFFM0QsT0FBTyxNQUFNQywwQkFBMEJGO0lBQ3RDLElBQW9CRyxVQUFVO1FBQzdCLE9BQU87WUFBQ0Y7U0FBaUI7SUFDMUI7SUFFQSxZQUFtQkcsSUFBWSxDQUFFO1FBQ2hDLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNDLFdBQVcsQ0FBQztJQUNsQjtBQUNEIn0=
@@ -10,5 +10,3 @@ export class Auth0Command extends DecohereCommand {
10
10
  return this.help();
11
11
  }
12
12
  }
13
-
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9hdXRoMC5jb21tYW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9ucyB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQge1xuXHR0eXBlIENvbW1hbmRIYW5kbGVyLFxuXHR0eXBlIENvbW1hbmRSZXNwb25zZSxcblx0dHlwZSBDb21tYW5kVHlwZSxcblx0RGVjb2hlcmVDb21tYW5kLFxufSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuXG5leHBvcnQgY2xhc3MgQXV0aDBDb21tYW5kIGV4dGVuZHMgRGVjb2hlcmVDb21tYW5kIHtcblx0cHVibGljIGNvbnN0cnVjdG9yKGNvbW1hbmRzOiBSZWNvcmQ8c3RyaW5nLCBDb21tYW5kVHlwZT4sIGhhbmRsZXI6IENvbW1hbmRIYW5kbGVyKSB7XG5cdFx0c3VwZXIoQXV0aDBDb21tYW5kKTtcblx0XHR0aGlzLmRlc2NyaXB0aW9uKFwiTG9nIGluIHRvIEF1dGgwIGFuZCB1cGRhdGUgYSBzY2FmZm9sZGVkIGNsaWVudFwiKTtcblx0XHR0aGlzLmV4aXRPdmVycmlkZSgpO1xuXHRcdHRoaXMucmVnaXN0ZXJTdWJjb21tYW5kKGNvbW1hbmRzLCBoYW5kbGVyKTtcblx0fVxuXG5cdHB1YmxpYyBydW4oX2FjdGlvbnM6IEFjdGlvbnMsIF9vcHRpb25zOiBuZXZlcik6IFByb21pc2U8Q29tbWFuZFJlc3BvbnNlPiB7XG5cdFx0cmV0dXJuIHRoaXMuaGVscCgpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiRGVjb2hlcmVDb21tYW5kIiwiQXV0aDBDb21tYW5kIiwiY29tbWFuZHMiLCJoYW5kbGVyIiwiZGVzY3JpcHRpb24iLCJleGl0T3ZlcnJpZGUiLCJyZWdpc3RlclN1YmNvbW1hbmQiLCJydW4iLCJfYWN0aW9ucyIsIl9vcHRpb25zIiwiaGVscCJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FJQ0EsZUFBZSxRQUNULHNCQUFzQjtBQUU3QixPQUFPLE1BQU1DLHFCQUFxQkQ7SUFDakMsWUFBbUJFLFFBQXFDLEVBQUVDLE9BQXVCLENBQUU7UUFDbEYsS0FBSyxDQUFDRjtRQUNOLElBQUksQ0FBQ0csV0FBVyxDQUFDO1FBQ2pCLElBQUksQ0FBQ0MsWUFBWTtRQUNqQixJQUFJLENBQUNDLGtCQUFrQixDQUFDSixVQUFVQztJQUNuQztJQUVPSSxJQUFJQyxRQUFpQixFQUFFQyxRQUFlLEVBQTRCO1FBQ3hFLE9BQU8sSUFBSSxDQUFDQyxJQUFJO0lBQ2pCO0FBQ0QifQ==
@@ -16,5 +16,3 @@ export class Auth0Module extends ModuleManifest {
16
16
  configure: Auth0ConfigureAction
17
17
  };
18
18
  }
19
-
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9hdXRoMC5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlTWFuaWZlc3QgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgQXV0aDBDb21tYW5kIH0gZnJvbSBcIi4vYXV0aDAuY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgQXV0aDBDb25maWd1cmVBY3Rpb24gfSBmcm9tIFwiLi9hdXRoMC1jb25maWd1cmUuYWN0aW9uLmpzXCI7XG5pbXBvcnQgeyBBdXRoMENvbmZpZ3VyZUNvbW1hbmQgfSBmcm9tIFwiLi9hdXRoMC1jb25maWd1cmUuY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgQXV0aDBMb2dpbkFjdGlvbiB9IGZyb20gXCIuL2F1dGgwLWxvZ2luLmFjdGlvbi5qc1wiO1xuaW1wb3J0IHsgQXV0aDBMb2dpbkNvbW1hbmQgfSBmcm9tIFwiLi9hdXRoMC1sb2dpbi5jb21tYW5kLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBBdXRoME1vZHVsZSBleHRlbmRzIE1vZHVsZU1hbmlmZXN0IHtcblx0cHVibGljIHJlYWRvbmx5IGlkID0gXCJhdXRoMFwiO1xuXHRwdWJsaWMgcmVhZG9ubHkgY29tbWFuZCA9IEF1dGgwQ29tbWFuZDtcblx0cHVibGljIHJlYWRvbmx5IGNvbW1hbmRzID0geyBsb2dpbjogQXV0aDBMb2dpbkNvbW1hbmQsIGNvbmZpZ3VyZTogQXV0aDBDb25maWd1cmVDb21tYW5kIH07XG5cdHB1YmxpYyByZWFkb25seSBhY3Rpb25zID0geyBsb2dpbjogQXV0aDBMb2dpbkFjdGlvbiwgY29uZmlndXJlOiBBdXRoMENvbmZpZ3VyZUFjdGlvbiB9O1xufVxuIl0sIm5hbWVzIjpbIk1vZHVsZU1hbmlmZXN0IiwiQXV0aDBDb21tYW5kIiwiQXV0aDBDb25maWd1cmVBY3Rpb24iLCJBdXRoMENvbmZpZ3VyZUNvbW1hbmQiLCJBdXRoMExvZ2luQWN0aW9uIiwiQXV0aDBMb2dpbkNvbW1hbmQiLCJBdXRoME1vZHVsZSIsImlkIiwiY29tbWFuZCIsImNvbW1hbmRzIiwibG9naW4iLCJjb25maWd1cmUiLCJhY3Rpb25zIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxjQUFjLFFBQVEsc0JBQXNCO0FBQ3JELFNBQVNDLFlBQVksUUFBUSxxQkFBcUI7QUFDbEQsU0FBU0Msb0JBQW9CLFFBQVEsOEJBQThCO0FBQ25FLFNBQVNDLHFCQUFxQixRQUFRLCtCQUErQjtBQUNyRSxTQUFTQyxnQkFBZ0IsUUFBUSwwQkFBMEI7QUFDM0QsU0FBU0MsaUJBQWlCLFFBQVEsMkJBQTJCO0FBRTdELE9BQU8sTUFBTUMsb0JBQW9CTjtJQUNoQk8sS0FBSyxRQUFRO0lBQ2JDLFVBQVVQLGFBQWE7SUFDdkJRLFdBQVc7UUFBRUMsT0FBT0w7UUFBbUJNLFdBQVdSO0lBQXNCLEVBQUU7SUFDMUVTLFVBQVU7UUFBRUYsT0FBT047UUFBa0JPLFdBQVdUO0lBQXFCLEVBQUU7QUFDeEYifQ==
package/es6/src/cli.js CHANGED
@@ -1,5 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import { runCli } from "./program.js";
3
3
  void runCli();
4
-
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9jbGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0IHsgcnVuQ2xpIH0gZnJvbSBcIi4vcHJvZ3JhbS5qc1wiO1xuXG52b2lkIHJ1bkNsaSgpO1xuIl0sIm5hbWVzIjpbInJ1bkNsaSJdLCJtYXBwaW5ncyI6IjtBQUNBLFNBQVNBLE1BQU0sUUFBUSxlQUFlO0FBRXRDLEtBQUtBIn0=
@@ -10,5 +10,3 @@ export class CreateCommand extends DecohereCommand {
10
10
  return this.help();
11
11
  }
12
12
  }
13
-
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9jcmVhdGUuY29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHtcblx0dHlwZSBDb21tYW5kSGFuZGxlcixcblx0dHlwZSBDb21tYW5kUmVzcG9uc2UsXG5cdHR5cGUgQ29tbWFuZFR5cGUsXG5cdERlY29oZXJlQ29tbWFuZCxcbn0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcblxuZXhwb3J0IGNsYXNzIENyZWF0ZUNvbW1hbmQgZXh0ZW5kcyBEZWNvaGVyZUNvbW1hbmQge1xuXHRwdWJsaWMgY29uc3RydWN0b3IoY29tbWFuZHM6IFJlY29yZDxzdHJpbmcsIENvbW1hbmRUeXBlPiwgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXIpIHtcblx0XHRzdXBlcihDcmVhdGVDb21tYW5kKTtcblx0XHR0aGlzLmRlc2NyaXB0aW9uKFwiQ3JlYXRlIGEgbmV3IERlY29oZXJlIHdvcmtzcGFjZVwiKTtcblx0XHR0aGlzLmV4aXRPdmVycmlkZSgpO1xuXHRcdHRoaXMucmVnaXN0ZXJTdWJjb21tYW5kKGNvbW1hbmRzLCBoYW5kbGVyKTtcblx0fVxuXG5cdHB1YmxpYyBydW4oX2FjdGlvbnM6IEFjdGlvbnMsIF9vcHRpb25zOiBuZXZlcik6IFByb21pc2U8Q29tbWFuZFJlc3BvbnNlPiB7XG5cdFx0cmV0dXJuIHRoaXMuaGVscCgpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiRGVjb2hlcmVDb21tYW5kIiwiQ3JlYXRlQ29tbWFuZCIsImNvbW1hbmRzIiwiaGFuZGxlciIsImRlc2NyaXB0aW9uIiwiZXhpdE92ZXJyaWRlIiwicmVnaXN0ZXJTdWJjb21tYW5kIiwicnVuIiwiX2FjdGlvbnMiLCJfb3B0aW9ucyIsImhlbHAiXSwibWFwcGluZ3MiOiJBQUNBLFNBSUNBLGVBQWUsUUFDVCxzQkFBc0I7QUFFN0IsT0FBTyxNQUFNQyxzQkFBc0JEO0lBQ2xDLFlBQW1CRSxRQUFxQyxFQUFFQyxPQUF1QixDQUFFO1FBQ2xGLEtBQUssQ0FBQ0Y7UUFDTixJQUFJLENBQUNHLFdBQVcsQ0FBQztRQUNqQixJQUFJLENBQUNDLFlBQVk7UUFDakIsSUFBSSxDQUFDQyxrQkFBa0IsQ0FBQ0osVUFBVUM7SUFDbkM7SUFFT0ksSUFBSUMsUUFBaUIsRUFBRUMsUUFBZSxFQUE0QjtRQUN4RSxPQUFPLElBQUksQ0FBQ0MsSUFBSTtJQUNqQjtBQUNEIn0=
@@ -12,5 +12,3 @@ export class CreateModule extends ModuleManifest {
12
12
  webapi: WebapiAction
13
13
  };
14
14
  }
15
-
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9jcmVhdGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZU1hbmlmZXN0IH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB7IENyZWF0ZUNvbW1hbmQgfSBmcm9tIFwiLi9jcmVhdGUuY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgV2ViYXBpQWN0aW9uIH0gZnJvbSBcIi4vd2ViYXBpLmFjdGlvbi5qc1wiO1xuaW1wb3J0IHsgV2ViYXBpQ29tbWFuZCB9IGZyb20gXCIuL3dlYmFwaS5jb21tYW5kLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVNb2R1bGUgZXh0ZW5kcyBNb2R1bGVNYW5pZmVzdCB7XG5cdHB1YmxpYyByZWFkb25seSBpZCA9IFwiY3JlYXRlXCI7XG5cdHB1YmxpYyByZWFkb25seSBjb21tYW5kID0gQ3JlYXRlQ29tbWFuZDtcblx0cHVibGljIHJlYWRvbmx5IGNvbW1hbmRzID0geyB3ZWJhcGk6IFdlYmFwaUNvbW1hbmQgfTtcblx0cHVibGljIHJlYWRvbmx5IGFjdGlvbnMgPSB7IHdlYmFwaTogV2ViYXBpQWN0aW9uIH07XG59XG4iXSwibmFtZXMiOlsiTW9kdWxlTWFuaWZlc3QiLCJDcmVhdGVDb21tYW5kIiwiV2ViYXBpQWN0aW9uIiwiV2ViYXBpQ29tbWFuZCIsIkNyZWF0ZU1vZHVsZSIsImlkIiwiY29tbWFuZCIsImNvbW1hbmRzIiwid2ViYXBpIiwiYWN0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsY0FBYyxRQUFRLHNCQUFzQjtBQUNyRCxTQUFTQyxhQUFhLFFBQVEsc0JBQXNCO0FBQ3BELFNBQVNDLFlBQVksUUFBUSxxQkFBcUI7QUFDbEQsU0FBU0MsYUFBYSxRQUFRLHNCQUFzQjtBQUVwRCxPQUFPLE1BQU1DLHFCQUFxQko7SUFDakJLLEtBQUssU0FBUztJQUNkQyxVQUFVTCxjQUFjO0lBQ3hCTSxXQUFXO1FBQUVDLFFBQVFMO0lBQWMsRUFBRTtJQUNyQ00sVUFBVTtRQUFFRCxRQUFRTjtJQUFhLEVBQUU7QUFDcEQifQ==
@@ -39,5 +39,3 @@ export async function pick(label, items, display) {
39
39
  if (Number.isNaN(idx) || idx < 1 || idx > items.length) return null;
40
40
  return items[idx - 1];
41
41
  }
42
-
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9kb21haW4vcHJvbXB0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUludGVyZmFjZSwgdHlwZSBJbnRlcmZhY2UgfSBmcm9tIFwibm9kZTpyZWFkbGluZVwiO1xuXG4vLyByZWFkbGluZS9wcm9taXNlcyBybC5xdWVzdGlvbigpIGhhcyBhIHJhY2UgY29uZGl0aW9uIHdpdGggcGlwZWQgKG5vbi1UVFkpIHN0ZGluXG4vLyBpbiBOb2RlIOKJpSAyMjogYWZ0ZXIgdGhlIGZpcnN0IGxpbmUgaXMgcmVhZCwgc3RkaW4gZW1pdHMgJ2VuZCcsIHJlYWRsaW5lIGNsb3Nlcyxcbi8vIGFuZCBhbGwgc3Vic2VxdWVudCBxdWVzdGlvbigpIGNhbGxzIHJlc29sdmUgdG8gXCJcIi5cbi8vIEZpeDogdXNlIHRoZSBhc3luYy1pdGVyYXRvciBBUEksIHdoaWNoIGJ1ZmZlcnMgYWxsIGxpbmVzIGJlZm9yZSB0aGUgY2xvc2UgZXZlbnQgZmlyZXMuXG5cbmxldCBfcmw6IEludGVyZmFjZSB8IG51bGwgPSBudWxsO1xubGV0IF9saW5lczogQXN5bmNJdGVyYXRvcjxzdHJpbmc+IHwgbnVsbCA9IG51bGw7XG5cbmZ1bmN0aW9uIGdldExpbmVzKCk6IEFzeW5jSXRlcmF0b3I8c3RyaW5nPiB7XG5cdGlmIChfbGluZXMgPT0gbnVsbCkge1xuXHRcdF9ybCA9IGNyZWF0ZUludGVyZmFjZSh7IGlucHV0OiBwcm9jZXNzLnN0ZGluLCB0ZXJtaW5hbDogZmFsc2UgfSk7XG5cdFx0X2xpbmVzID0gX3JsW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO1xuXHR9XG5cdHJldHVybiBfbGluZXM7XG59XG5cbi8qKiBSZWxlYXNlIHN0ZGluIHNvIHRoZSBwcm9jZXNzIGNhbiBleGl0IGFmdGVyIGludGVyYWN0aXZlIHByb21wdHMuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VQcm9tcHQoKTogdm9pZCB7XG5cdF9ybD8uY2xvc2UoKTtcblx0X3JsID0gbnVsbDtcblx0X2xpbmVzID0gbnVsbDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZExpbmUocHJvbXB0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRwcm9jZXNzLnN0ZG91dC53cml0ZShwcm9tcHQpO1xuXHRjb25zdCB7IHZhbHVlLCBkb25lIH0gPSBhd2FpdCBnZXRMaW5lcygpLm5leHQoKTtcblx0cmV0dXJuIGRvbmUgPyBcIlwiIDogdmFsdWUudHJpbSgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXNrKHF1ZXN0aW9uOiBzdHJpbmcsIGZhbGxiYWNrID0gXCJcIik6IFByb21pc2U8c3RyaW5nPiB7XG5cdGNvbnN0IGFuc3dlciA9IGF3YWl0IHJlYWRMaW5lKHF1ZXN0aW9uKTtcblx0cmV0dXJuIGFuc3dlciB8fCBmYWxsYmFjaztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBpY2s8VD4oXG5cdGxhYmVsOiBzdHJpbmcsXG5cdGl0ZW1zOiBUW10sXG5cdGRpc3BsYXk6IChpdGVtOiBUKSA9PiBzdHJpbmcsXG4pOiBQcm9taXNlPFQgfCBudWxsPiB7XG5cdGNvbnNvbGUubG9nKGxhYmVsLnRyaW1FbmQoKSk7XG5cdGZvciAoY29uc3QgW2ksIGl0ZW1dIG9mIGl0ZW1zLmVudHJpZXMoKSkge1xuXHRcdGNvbnNvbGUubG9nKGAgICAgJHtpICsgMX0uICR7ZGlzcGxheShpdGVtKX1gKTtcblx0fVxuXHRjb25zdCBhbnN3ZXIgPSBhd2FpdCByZWFkTGluZShcIiAgPiBcIik7XG5cdGNvbnN0IGlkeCA9IE51bWJlci5wYXJzZUludChhbnN3ZXIsIDEwKTtcblx0aWYgKE51bWJlci5pc05hTihpZHgpIHx8IGlkeCA8IDEgfHwgaWR4ID4gaXRlbXMubGVuZ3RoKSByZXR1cm4gbnVsbDtcblx0cmV0dXJuIGl0ZW1zW2lkeCAtIDFdO1xufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUludGVyZmFjZSIsIl9ybCIsIl9saW5lcyIsImdldExpbmVzIiwiaW5wdXQiLCJwcm9jZXNzIiwic3RkaW4iLCJ0ZXJtaW5hbCIsIlN5bWJvbCIsImFzeW5jSXRlcmF0b3IiLCJjbG9zZVByb21wdCIsImNsb3NlIiwicmVhZExpbmUiLCJwcm9tcHQiLCJzdGRvdXQiLCJ3cml0ZSIsInZhbHVlIiwiZG9uZSIsIm5leHQiLCJ0cmltIiwiYXNrIiwicXVlc3Rpb24iLCJmYWxsYmFjayIsImFuc3dlciIsInBpY2siLCJsYWJlbCIsIml0ZW1zIiwiZGlzcGxheSIsImNvbnNvbGUiLCJsb2ciLCJ0cmltRW5kIiwiaSIsIml0ZW0iLCJlbnRyaWVzIiwiaWR4IiwiTnVtYmVyIiwicGFyc2VJbnQiLCJpc05hTiIsImxlbmd0aCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZUFBZSxRQUF3QixnQkFBZ0I7QUFFaEUsa0ZBQWtGO0FBQ2xGLGtGQUFrRjtBQUNsRixxREFBcUQ7QUFDckQseUZBQXlGO0FBRXpGLElBQUlDLE1BQXdCO0FBQzVCLElBQUlDLFNBQXVDO0FBRTNDLFNBQVNDO0lBQ1IsSUFBSUQsVUFBVSxNQUFNO1FBQ25CRCxNQUFNRCxnQkFBZ0I7WUFBRUksT0FBT0MsUUFBUUMsS0FBSztZQUFFQyxVQUFVO1FBQU07UUFDOURMLFNBQVNELEdBQUcsQ0FBQ08sT0FBT0MsYUFBYSxDQUFDO0lBQ25DO0lBQ0EsT0FBT1A7QUFDUjtBQUVBLHFFQUFxRSxHQUNyRSxPQUFPLFNBQVNRO0lBQ2ZULEtBQUtVO0lBQ0xWLE1BQU07SUFDTkMsU0FBUztBQUNWO0FBRUEsZUFBZVUsU0FBU0MsTUFBYztJQUNyQ1IsUUFBUVMsTUFBTSxDQUFDQyxLQUFLLENBQUNGO0lBQ3JCLE1BQU0sRUFBRUcsS0FBSyxFQUFFQyxJQUFJLEVBQUUsR0FBRyxNQUFNZCxXQUFXZSxJQUFJO0lBQzdDLE9BQU9ELE9BQU8sS0FBS0QsTUFBTUcsSUFBSTtBQUM5QjtBQUVBLE9BQU8sZUFBZUMsSUFBSUMsUUFBZ0IsRUFBRUMsV0FBVyxFQUFFO0lBQ3hELE1BQU1DLFNBQVMsTUFBTVgsU0FBU1M7SUFDOUIsT0FBT0UsVUFBVUQ7QUFDbEI7QUFFQSxPQUFPLGVBQWVFLEtBQ3JCQyxLQUFhLEVBQ2JDLEtBQVUsRUFDVkMsT0FBNEI7SUFFNUJDLFFBQVFDLEdBQUcsQ0FBQ0osTUFBTUssT0FBTztJQUN6QixLQUFLLE1BQU0sQ0FBQ0MsR0FBR0MsS0FBSyxJQUFJTixNQUFNTyxPQUFPLEdBQUk7UUFDeENMLFFBQVFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRUUsSUFBSSxFQUFFLEVBQUUsRUFBRUosUUFBUUssT0FBTztJQUM3QztJQUNBLE1BQU1ULFNBQVMsTUFBTVgsU0FBUztJQUM5QixNQUFNc0IsTUFBTUMsT0FBT0MsUUFBUSxDQUFDYixRQUFRO0lBQ3BDLElBQUlZLE9BQU9FLEtBQUssQ0FBQ0gsUUFBUUEsTUFBTSxLQUFLQSxNQUFNUixNQUFNWSxNQUFNLEVBQUUsT0FBTztJQUMvRCxPQUFPWixLQUFLLENBQUNRLE1BQU0sRUFBRTtBQUN0QiJ9
package/es6/src/index.js CHANGED
@@ -7,5 +7,3 @@ export { CreateModule } from "./create.module.js";
7
7
  export { runCli } from "./program.js";
8
8
  export { scaffoldApi } from "./webapi/create-api.js";
9
9
  export { WebapiAction } from "./webapi.action.js";
10
-
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBZGRNb2R1bGUgfSBmcm9tIFwiLi9hZGQubW9kdWxlLmpzXCI7XG5leHBvcnQgdHlwZSB7IEFkZEFwaU9wdGlvbnMgfSBmcm9tIFwiLi9hZGQtYXBpLmFjdGlvbi5qc1wiO1xuZXhwb3J0IHsgQWRkQXBpQWN0aW9uIH0gZnJvbSBcIi4vYWRkLWFwaS5hY3Rpb24uanNcIjtcbmV4cG9ydCB7IEF1dGgwTW9kdWxlIH0gZnJvbSBcIi4vYXV0aDAubW9kdWxlLmpzXCI7XG5leHBvcnQgdHlwZSB7IEF1dGgwQ29uZmlndXJlT3B0aW9ucyB9IGZyb20gXCIuL2F1dGgwLWNvbmZpZ3VyZS5hY3Rpb24uanNcIjtcbmV4cG9ydCB7IEF1dGgwQ29uZmlndXJlQWN0aW9uIH0gZnJvbSBcIi4vYXV0aDAtY29uZmlndXJlLmFjdGlvbi5qc1wiO1xuZXhwb3J0IHsgQXV0aDBMb2dpbkFjdGlvbiB9IGZyb20gXCIuL2F1dGgwLWxvZ2luLmFjdGlvbi5qc1wiO1xuZXhwb3J0IHsgQ3JlYXRlTW9kdWxlIH0gZnJvbSBcIi4vY3JlYXRlLm1vZHVsZS5qc1wiO1xuZXhwb3J0IHsgcnVuQ2xpIH0gZnJvbSBcIi4vcHJvZ3JhbS5qc1wiO1xuZXhwb3J0IHR5cGUgeyBBcGlPcHRpb25zIH0gZnJvbSBcIi4vd2ViYXBpL2NyZWF0ZS1hcGkuanNcIjtcbmV4cG9ydCB7IHNjYWZmb2xkQXBpIH0gZnJvbSBcIi4vd2ViYXBpL2NyZWF0ZS1hcGkuanNcIjtcbmV4cG9ydCB0eXBlIHsgV2ViYXBpT3B0aW9ucyB9IGZyb20gXCIuL3dlYmFwaS5hY3Rpb24uanNcIjtcbmV4cG9ydCB7IFdlYmFwaUFjdGlvbiB9IGZyb20gXCIuL3dlYmFwaS5hY3Rpb24uanNcIjtcbiJdLCJuYW1lcyI6WyJBZGRNb2R1bGUiLCJBZGRBcGlBY3Rpb24iLCJBdXRoME1vZHVsZSIsIkF1dGgwQ29uZmlndXJlQWN0aW9uIiwiQXV0aDBMb2dpbkFjdGlvbiIsIkNyZWF0ZU1vZHVsZSIsInJ1bkNsaSIsInNjYWZmb2xkQXBpIiwiV2ViYXBpQWN0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLFFBQVEsa0JBQWtCO0FBRTVDLFNBQVNDLFlBQVksUUFBUSxzQkFBc0I7QUFDbkQsU0FBU0MsV0FBVyxRQUFRLG9CQUFvQjtBQUVoRCxTQUFTQyxvQkFBb0IsUUFBUSw4QkFBOEI7QUFDbkUsU0FBU0MsZ0JBQWdCLFFBQVEsMEJBQTBCO0FBQzNELFNBQVNDLFlBQVksUUFBUSxxQkFBcUI7QUFDbEQsU0FBU0MsTUFBTSxRQUFRLGVBQWU7QUFFdEMsU0FBU0MsV0FBVyxRQUFRLHlCQUF5QjtBQUVyRCxTQUFTQyxZQUFZLFFBQVEscUJBQXFCIn0=
@@ -1,8 +1,12 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { isMap, isSeq, parseDocument } from "yaml";
1
3
  import { WELL_KNOWN_FILES } from "./const.js";
2
4
  /**
3
5
  * Live builder for `docker-compose.yml`.
4
6
  *
5
7
  * Features call `addService` / `addVolume` / `addNetwork` in their scaffold phases.
8
+ * Loaded with `fromFile` (`decohere add api`), additions merge into the existing file:
9
+ * services, networks and volumes already there are left untouched, comments kept.
6
10
  */ export class DockerCompose {
7
11
  key = WELL_KNOWN_FILES.DOCKER_COMPOSE;
8
12
  _projectName;
@@ -10,6 +14,19 @@ import { WELL_KNOWN_FILES } from "./const.js";
10
14
  _services = new Map();
11
15
  _volumes = new Set();
12
16
  _networks = new Map();
17
+ _envFiles = [];
18
+ _existing;
19
+ /** Load an existing compose file so `decohere add api` can merge into it. */ static fromFile(absolutePath) {
20
+ const compose = new DockerCompose();
21
+ compose._existing = parseDocument(readFileSync(absolutePath, "utf8"));
22
+ return compose;
23
+ }
24
+ /** True when the service is defined (in the loaded file or added since). */ hasService(name) {
25
+ return this._services.has(name) || this._existing?.hasIn([
26
+ "services",
27
+ name
28
+ ]) === true;
29
+ }
13
30
  /** Compose project name (`name:` top-level) — isolates containers/volumes. */ setProjectName(name) {
14
31
  this._projectName = name;
15
32
  return this;
@@ -39,14 +56,23 @@ import { WELL_KNOWN_FILES } from "./const.js";
39
56
  return this;
40
57
  }
41
58
  /** Append an env_file path to an existing service. */ addEnvFile(serviceName, filePath) {
42
- const svc = this._services.get(serviceName);
59
+ // A service already in the loaded file wins over an `addService` of the same name.
60
+ const svc = this._existing?.hasIn([
61
+ "services",
62
+ serviceName
63
+ ]) ? undefined : this._services.get(serviceName);
43
64
  if (svc) svc.env_file = [
44
65
  ...svc.env_file ?? [],
45
66
  filePath
46
67
  ];
68
+ else this._envFiles.push([
69
+ serviceName,
70
+ filePath
71
+ ]);
47
72
  return this;
48
73
  }
49
74
  getContent() {
75
+ if (this._existing) return this.mergeIntoExisting(this._existing);
50
76
  const lines = [];
51
77
  for (const comment of this._headerComments){
52
78
  lines.push(comment.startsWith("#") ? comment : `# ${comment}`);
@@ -139,6 +165,90 @@ import { WELL_KNOWN_FILES } from "./const.js";
139
165
  }
140
166
  return `${lines.join("\n")}\n`;
141
167
  }
168
+ mergeIntoExisting(doc) {
169
+ if (!isMap(doc.contents)) throw new Error("docker-compose.yml is not a YAML mapping");
170
+ for (const line of this._headerComments){
171
+ const text = line.replace(/^#\s?/, "");
172
+ const before = doc.commentBefore ?? "";
173
+ if (!before.includes(text)) doc.commentBefore = before ? `${before}\n ${text}` : ` ${text}`;
174
+ }
175
+ for (const [name, svc] of this._services){
176
+ if (!doc.hasIn([
177
+ "services",
178
+ name
179
+ ])) doc.setIn([
180
+ "services",
181
+ name
182
+ ], doc.createNode(toComposeYaml(svc)));
183
+ }
184
+ for (const [service, path] of this._envFiles){
185
+ if (!doc.hasIn([
186
+ "services",
187
+ service
188
+ ])) continue;
189
+ const envFiles = doc.getIn([
190
+ "services",
191
+ service,
192
+ "env_file"
193
+ ]);
194
+ if (isSeq(envFiles)) {
195
+ if (!envFiles.items.some((item)=>String(item) === path)) envFiles.add(path);
196
+ } else if (envFiles == null) {
197
+ doc.setIn([
198
+ "services",
199
+ service,
200
+ "env_file"
201
+ ], doc.createNode([
202
+ path
203
+ ]));
204
+ } else if (String(envFiles) !== path) {
205
+ doc.setIn([
206
+ "services",
207
+ service,
208
+ "env_file"
209
+ ], doc.createNode([
210
+ String(envFiles),
211
+ path
212
+ ]));
213
+ }
214
+ }
215
+ for (const [key, network] of this._networks){
216
+ if (!doc.hasIn([
217
+ "networks",
218
+ key
219
+ ])) doc.setIn([
220
+ "networks",
221
+ key
222
+ ], doc.createNode(network));
223
+ }
224
+ for (const volume of this._volumes){
225
+ if (!doc.hasIn([
226
+ "volumes",
227
+ volume
228
+ ])) doc.setIn([
229
+ "volumes",
230
+ volume
231
+ ], null);
232
+ }
233
+ return doc.toString({
234
+ lineWidth: 0
235
+ });
236
+ }
237
+ }
238
+ /** Plain compose YAML shape for a service (networks with aliases become a map). */ function toComposeYaml(svc) {
239
+ const { networks, ...rest } = svc;
240
+ if (!networks || networks.length === 0) return rest;
241
+ if (networks.every((n)=>typeof n === "string")) return {
242
+ ...rest,
243
+ networks
244
+ };
245
+ const networkMap = {};
246
+ for (const network of networks){
247
+ if (typeof network === "string") networkMap[network] = null;
248
+ else Object.assign(networkMap, network);
249
+ }
250
+ return {
251
+ ...rest,
252
+ networks: networkMap
253
+ };
142
254
  }
143
-
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9tb2RlbHMvY29tcG9zZS5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4vY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCB9IGZyb20gXCIuL3NvdXJjZS1maWxlLmpzXCI7XG5cbmV4cG9ydCB0eXBlIENvbXBvc2VOZXR3b3JrUmVmID1cblx0fCBzdHJpbmdcblx0fCB7XG5cdFx0XHQvKiogTmV0d29yayBrZXkgdW5kZXIgYG5ldHdvcmtzOmAgb24gdGhpcyBzZXJ2aWNlICovXG5cdFx0XHRbbmV0d29ya0tleTogc3RyaW5nXTogeyBhbGlhc2VzPzogc3RyaW5nW10gfTtcblx0ICB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvc2VIZWFsdGhjaGVjayB7XG5cdHRlc3Q6IHN0cmluZ1tdO1xuXHRpbnRlcnZhbD86IHN0cmluZztcblx0dGltZW91dD86IHN0cmluZztcblx0cmV0cmllcz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wb3NlU2VydmljZSB7XG5cdGJ1aWxkPzogc3RyaW5nO1xuXHRpbWFnZT86IHN0cmluZztcblx0Y29udGFpbmVyX25hbWU/OiBzdHJpbmc7XG5cdC8qKiBRdW90ZWQgaW4gWUFNTCAoYDA6MGAgbXVzdCBub3QgcGFyc2UgYXMgYSBudW1iZXIpLiAqL1xuXHR1c2VyPzogc3RyaW5nO1xuXHRlbnZfZmlsZT86IHN0cmluZ1tdO1xuXHRlbnZpcm9ubWVudD86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cdHBvcnRzPzogc3RyaW5nW107XG5cdHZvbHVtZXM/OiBzdHJpbmdbXTtcblx0Y29tbWFuZD86IHN0cmluZztcblx0cmVzdGFydD86IHN0cmluZztcblx0ZGVwZW5kc19vbj86IHN0cmluZ1tdO1xuXHQvKiogQ29tcG9zZSBwcm9maWxlcyAoc2VydmljZSBvbmx5IHN0YXJ0cyB3aGVuIHByb2ZpbGUgaXMgZW5hYmxlZCkuICovXG5cdHByb2ZpbGVzPzogc3RyaW5nW107XG5cdC8qKiBBdHRhY2ggdG8gY29tcG9zZSBuZXR3b3JrcyAoc3RyaW5nIG5hbWUgb3IgbWFwIHdpdGggYWxpYXNlcykuICovXG5cdG5ldHdvcmtzPzogQ29tcG9zZU5ldHdvcmtSZWZbXTtcblx0aGVhbHRoY2hlY2s/OiBDb21wb3NlSGVhbHRoY2hlY2s7XG59XG5cbmV4cG9ydCB0eXBlIENvbXBvc2VOZXR3b3JrID0ge1xuXHQvKiogRml4ZWQgRG9ja2VyIG5ldHdvcmsgbmFtZSAoc2hhcmVhYmxlIGFjcm9zcyBjb21wb3NlIHByb2plY3RzKS4gKi9cblx0bmFtZTogc3RyaW5nO1xuXHRleHRlcm5hbD86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIExpdmUgYnVpbGRlciBmb3IgYGRvY2tlci1jb21wb3NlLnltbGAuXG4gKlxuICogRmVhdHVyZXMgY2FsbCBgYWRkU2VydmljZWAgLyBgYWRkVm9sdW1lYCAvIGBhZGROZXR3b3JrYCBpbiB0aGVpciBzY2FmZm9sZCBwaGFzZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEb2NrZXJDb21wb3NlIGltcGxlbWVudHMgS2V5ZWRNb2RlbCB7XG5cdHB1YmxpYyByZWFkb25seSBrZXkgPSBXRUxMX0tOT1dOX0ZJTEVTLkRPQ0tFUl9DT01QT1NFO1xuXHRwcml2YXRlIF9wcm9qZWN0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9oZWFkZXJDb21tZW50czogc3RyaW5nW10gPSBbXTtcblx0cHJpdmF0ZSByZWFkb25seSBfc2VydmljZXM6IE1hcDxzdHJpbmcsIENvbXBvc2VTZXJ2aWNlPiA9IG5ldyBNYXAoKTtcblx0cHJpdmF0ZSByZWFkb25seSBfdm9sdW1lczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX25ldHdvcmtzOiBNYXA8c3RyaW5nLCBDb21wb3NlTmV0d29yaz4gPSBuZXcgTWFwKCk7XG5cblx0LyoqIENvbXBvc2UgcHJvamVjdCBuYW1lIChgbmFtZTpgIHRvcC1sZXZlbCkg4oCUIGlzb2xhdGVzIGNvbnRhaW5lcnMvdm9sdW1lcy4gKi9cblx0cHVibGljIHNldFByb2plY3ROYW1lKG5hbWU6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX3Byb2plY3ROYW1lID0gbmFtZTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKiBGaWxlLWxldmVsIGAjYCBjb21tZW50cyByZW5kZXJlZCBhYm92ZSBgbmFtZTpgIC8gYHNlcnZpY2VzOmAuICovXG5cdHB1YmxpYyBhZGRIZWFkZXJDb21tZW50KC4uLmxpbmVzOiBzdHJpbmdbXSk6IHRoaXMge1xuXHRcdHRoaXMuX2hlYWRlckNvbW1lbnRzLnB1c2goLi4ubGluZXMpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGFkZFNlcnZpY2UobmFtZTogc3RyaW5nLCBjb25maWc6IENvbXBvc2VTZXJ2aWNlKTogdGhpcyB7XG5cdFx0dGhpcy5fc2VydmljZXMuc2V0KG5hbWUsIGNvbmZpZyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZmlsZXMoKSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdHtcblx0XHRcdFx0ZmlsZVBhdGg6IFwiLmRldmNvbnRhaW5lci9kb2NrZXItY29tcG9zZS55bWxcIixcblx0XHRcdFx0Y29udGVudDogdGhpcy5nZXRDb250ZW50KCksXG5cdFx0XHR9LFxuXHRcdF07XG5cdH1cblxuXHRwdWJsaWMgYWRkVm9sdW1lKG5hbWU6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX3ZvbHVtZXMuYWRkKG5hbWUpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGFkZE5ldHdvcmsoa2V5OiBzdHJpbmcsIG5ldHdvcms6IENvbXBvc2VOZXR3b3JrKTogdGhpcyB7XG5cdFx0dGhpcy5fbmV0d29ya3Muc2V0KGtleSwgbmV0d29yayk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKiogQXBwZW5kIGFuIGVudl9maWxlIHBhdGggdG8gYW4gZXhpc3Rpbmcgc2VydmljZS4gKi9cblx0cHVibGljIGFkZEVudkZpbGUoc2VydmljZU5hbWU6IHN0cmluZywgZmlsZVBhdGg6IHN0cmluZyk6IHRoaXMge1xuXHRcdGNvbnN0IHN2YyA9IHRoaXMuX3NlcnZpY2VzLmdldChzZXJ2aWNlTmFtZSk7XG5cdFx0aWYgKHN2Yykgc3ZjLmVudl9maWxlID0gWy4uLihzdmMuZW52X2ZpbGUgPz8gW10pLCBmaWxlUGF0aF07XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZ2V0Q29udGVudCgpOiBzdHJpbmcge1xuXHRcdGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdGZvciAoY29uc3QgY29tbWVudCBvZiB0aGlzLl9oZWFkZXJDb21tZW50cykge1xuXHRcdFx0bGluZXMucHVzaChjb21tZW50LnN0YXJ0c1dpdGgoXCIjXCIpID8gY29tbWVudCA6IGAjICR7Y29tbWVudH1gKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuX2hlYWRlckNvbW1lbnRzLmxlbmd0aCA+IDApIHtcblx0XHRcdGxpbmVzLnB1c2goXCJcIik7XG5cdFx0fVxuXHRcdGlmICh0aGlzLl9wcm9qZWN0TmFtZSkge1xuXHRcdFx0bGluZXMucHVzaChgbmFtZTogJHt0aGlzLl9wcm9qZWN0TmFtZX1gLCBcIlwiKTtcblx0XHR9XG5cdFx0bGluZXMucHVzaChcInNlcnZpY2VzOlwiKTtcblxuXHRcdGZvciAoY29uc3QgW25hbWUsIHN2Y10gb2YgdGhpcy5fc2VydmljZXMpIHtcblx0XHRcdGxpbmVzLnB1c2goYCAgJHtuYW1lfTpgKTtcblx0XHRcdGlmIChzdmMuYnVpbGQpIGxpbmVzLnB1c2goYCAgICBidWlsZDogJHtzdmMuYnVpbGR9YCk7XG5cdFx0XHRpZiAoc3ZjLmltYWdlKSBsaW5lcy5wdXNoKGAgICAgaW1hZ2U6ICR7c3ZjLmltYWdlfWApO1xuXHRcdFx0aWYgKHN2Yy5jb250YWluZXJfbmFtZSkgbGluZXMucHVzaChgICAgIGNvbnRhaW5lcl9uYW1lOiAke3N2Yy5jb250YWluZXJfbmFtZX1gKTtcblx0XHRcdGlmIChzdmMuY29tbWFuZCkgbGluZXMucHVzaChgICAgIGNvbW1hbmQ6ICR7c3ZjLmNvbW1hbmR9YCk7XG5cdFx0XHRpZiAoc3ZjLnVzZXIpIGxpbmVzLnB1c2goYCAgICB1c2VyOiBcIiR7c3ZjLnVzZXJ9XCJgKTtcblx0XHRcdGlmIChzdmMucmVzdGFydCkgbGluZXMucHVzaChgICAgIHJlc3RhcnQ6ICR7c3ZjLnJlc3RhcnR9YCk7XG5cblx0XHRcdGlmIChzdmMucHJvZmlsZXMgJiYgc3ZjLnByb2ZpbGVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0bGluZXMucHVzaChcIiAgICBwcm9maWxlczpcIik7XG5cdFx0XHRcdGZvciAoY29uc3QgcCBvZiBzdmMucHJvZmlsZXMpIGxpbmVzLnB1c2goYCAgICAgIC0gJHtwfWApO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoc3ZjLmVudl9maWxlICYmIHN2Yy5lbnZfZmlsZS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGxpbmVzLnB1c2goXCIgICAgZW52X2ZpbGU6XCIpO1xuXHRcdFx0XHRmb3IgKGNvbnN0IGYgb2Ygc3ZjLmVudl9maWxlKSBsaW5lcy5wdXNoKGAgICAgICAtICR7Zn1gKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHN2Yy5lbnZpcm9ubWVudCAmJiBPYmplY3Qua2V5cyhzdmMuZW52aXJvbm1lbnQpLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0bGluZXMucHVzaChcIiAgICBlbnZpcm9ubWVudDpcIik7XG5cdFx0XHRcdGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHN2Yy5lbnZpcm9ubWVudCkpIHtcblx0XHRcdFx0XHRsaW5lcy5wdXNoKGAgICAgICAke2t9OiAke3Z9YCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0aWYgKHN2Yy5wb3J0cyAmJiBzdmMucG9ydHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRsaW5lcy5wdXNoKFwiICAgIHBvcnRzOlwiKTtcblx0XHRcdFx0Zm9yIChjb25zdCBwIG9mIHN2Yy5wb3J0cykgbGluZXMucHVzaChgICAgICAgLSBcIiR7cH1cImApO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoc3ZjLnZvbHVtZXMgJiYgc3ZjLnZvbHVtZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRsaW5lcy5wdXNoKFwiICAgIHZvbHVtZXM6XCIpO1xuXHRcdFx0XHRmb3IgKGNvbnN0IHYgb2Ygc3ZjLnZvbHVtZXMpIGxpbmVzLnB1c2goYCAgICAgIC0gJHt2fWApO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoc3ZjLm5ldHdvcmtzICYmIHN2Yy5uZXR3b3Jrcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGNvbnN0IG9ubHlTdHJpbmdzID0gc3ZjLm5ldHdvcmtzLmV2ZXJ5KChuKSA9PiB0eXBlb2YgbiA9PT0gXCJzdHJpbmdcIik7XG5cdFx0XHRcdGlmIChvbmx5U3RyaW5ncykge1xuXHRcdFx0XHRcdGxpbmVzLnB1c2goXCIgICAgbmV0d29ya3M6XCIpO1xuXHRcdFx0XHRcdGZvciAoY29uc3QgbiBvZiBzdmMubmV0d29ya3MpIGxpbmVzLnB1c2goYCAgICAgIC0gJHtuIGFzIHN0cmluZ31gKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRsaW5lcy5wdXNoKFwiICAgIG5ldHdvcmtzOlwiKTtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IG4gb2Ygc3ZjLm5ldHdvcmtzKSB7XG5cdFx0XHRcdFx0XHRpZiAodHlwZW9mIG4gPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdFx0XHRcdFx0bGluZXMucHVzaChgICAgICAgJHtufTpgKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGZvciAoY29uc3QgW25ldEtleSwgY2ZnXSBvZiBPYmplY3QuZW50cmllcyhuKSkge1xuXHRcdFx0XHRcdFx0XHRcdGxpbmVzLnB1c2goYCAgICAgICR7bmV0S2V5fTpgKTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoY2ZnLmFsaWFzZXMgJiYgY2ZnLmFsaWFzZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGluZXMucHVzaChcIiAgICAgICAgYWxpYXNlczpcIik7XG5cdFx0XHRcdFx0XHRcdFx0XHRmb3IgKGNvbnN0IGEgb2YgY2ZnLmFsaWFzZXMpIGxpbmVzLnB1c2goYCAgICAgICAgICAtICR7YX1gKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0aWYgKHN2Yy5kZXBlbmRzX29uICYmIHN2Yy5kZXBlbmRzX29uLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0bGluZXMucHVzaChcIiAgICBkZXBlbmRzX29uOlwiKTtcblx0XHRcdFx0Zm9yIChjb25zdCBkIG9mIHN2Yy5kZXBlbmRzX29uKSBsaW5lcy5wdXNoKGAgICAgICAtICR7ZH1gKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHN2Yy5oZWFsdGhjaGVjaykge1xuXHRcdFx0XHRjb25zdCBoYyA9IHN2Yy5oZWFsdGhjaGVjaztcblx0XHRcdFx0bGluZXMucHVzaChcIiAgICBoZWFsdGhjaGVjazpcIik7XG5cdFx0XHRcdGxpbmVzLnB1c2goYCAgICAgIHRlc3Q6ICR7SlNPTi5zdHJpbmdpZnkoaGMudGVzdCl9YCk7XG5cdFx0XHRcdGlmIChoYy5pbnRlcnZhbCkgbGluZXMucHVzaChgICAgICAgaW50ZXJ2YWw6ICR7aGMuaW50ZXJ2YWx9YCk7XG5cdFx0XHRcdGlmIChoYy50aW1lb3V0KSBsaW5lcy5wdXNoKGAgICAgICB0aW1lb3V0OiAke2hjLnRpbWVvdXR9YCk7XG5cdFx0XHRcdGlmIChoYy5yZXRyaWVzICE9IG51bGwpIGxpbmVzLnB1c2goYCAgICAgIHJldHJpZXM6ICR7aGMucmV0cmllc31gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5fbmV0d29ya3Muc2l6ZSA+IDApIHtcblx0XHRcdGxpbmVzLnB1c2goXCJcIik7XG5cdFx0XHRsaW5lcy5wdXNoKFwibmV0d29ya3M6XCIpO1xuXHRcdFx0Zm9yIChjb25zdCBba2V5LCBuZXRdIG9mIHRoaXMuX25ldHdvcmtzKSB7XG5cdFx0XHRcdGxpbmVzLnB1c2goYCAgJHtrZXl9OmApO1xuXHRcdFx0XHRsaW5lcy5wdXNoKGAgICAgbmFtZTogJHtuZXQubmFtZX1gKTtcblx0XHRcdFx0aWYgKG5ldC5leHRlcm5hbCkgbGluZXMucHVzaChcIiAgICBleHRlcm5hbDogdHJ1ZVwiKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5fdm9sdW1lcy5zaXplID4gMCkge1xuXHRcdFx0bGluZXMucHVzaChcIlwiKTtcblx0XHRcdGxpbmVzLnB1c2goXCJ2b2x1bWVzOlwiKTtcblx0XHRcdGZvciAoY29uc3QgdiBvZiB0aGlzLl92b2x1bWVzKSBsaW5lcy5wdXNoKGAgICR7dn06YCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGAke2xpbmVzLmpvaW4oXCJcXG5cIil9XFxuYDtcblx0fVxufVxuIl0sIm5hbWVzIjpbIldFTExfS05PV05fRklMRVMiLCJEb2NrZXJDb21wb3NlIiwia2V5IiwiRE9DS0VSX0NPTVBPU0UiLCJfcHJvamVjdE5hbWUiLCJfaGVhZGVyQ29tbWVudHMiLCJfc2VydmljZXMiLCJNYXAiLCJfdm9sdW1lcyIsIlNldCIsIl9uZXR3b3JrcyIsInNldFByb2plY3ROYW1lIiwibmFtZSIsImFkZEhlYWRlckNvbW1lbnQiLCJsaW5lcyIsInB1c2giLCJhZGRTZXJ2aWNlIiwiY29uZmlnIiwic2V0IiwiZmlsZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiYWRkVm9sdW1lIiwiYWRkIiwiYWRkTmV0d29yayIsIm5ldHdvcmsiLCJhZGRFbnZGaWxlIiwic2VydmljZU5hbWUiLCJzdmMiLCJnZXQiLCJlbnZfZmlsZSIsImNvbW1lbnQiLCJzdGFydHNXaXRoIiwibGVuZ3RoIiwiYnVpbGQiLCJpbWFnZSIsImNvbnRhaW5lcl9uYW1lIiwiY29tbWFuZCIsInVzZXIiLCJyZXN0YXJ0IiwicHJvZmlsZXMiLCJwIiwiZiIsImVudmlyb25tZW50IiwiT2JqZWN0Iiwia2V5cyIsImsiLCJ2IiwiZW50cmllcyIsInBvcnRzIiwidm9sdW1lcyIsIm5ldHdvcmtzIiwib25seVN0cmluZ3MiLCJldmVyeSIsIm4iLCJuZXRLZXkiLCJjZmciLCJhbGlhc2VzIiwiYSIsImRlcGVuZHNfb24iLCJkIiwiaGVhbHRoY2hlY2siLCJoYyIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0ZXN0IiwiaW50ZXJ2YWwiLCJ0aW1lb3V0IiwicmV0cmllcyIsInNpemUiLCJuZXQiLCJleHRlcm5hbCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGdCQUFnQixRQUFRLGFBQWE7QUEyQzlDOzs7O0NBSUMsR0FDRCxPQUFPLE1BQU1DO0lBQ0lDLE1BQU1GLGlCQUFpQkcsY0FBYyxDQUFDO0lBQzlDQyxhQUFpQztJQUN4QkMsa0JBQTRCLEVBQUUsQ0FBQztJQUMvQkMsWUFBeUMsSUFBSUMsTUFBTTtJQUNuREMsV0FBd0IsSUFBSUMsTUFBTTtJQUNsQ0MsWUFBeUMsSUFBSUgsTUFBTTtJQUVwRSw0RUFBNEUsR0FDNUUsQUFBT0ksZUFBZUMsSUFBWSxFQUFRO1FBQ3pDLElBQUksQ0FBQ1IsWUFBWSxHQUFHUTtRQUNwQixPQUFPLElBQUk7SUFDWjtJQUVBLGtFQUFrRSxHQUNsRSxBQUFPQyxpQkFBaUIsR0FBR0MsS0FBZSxFQUFRO1FBQ2pELElBQUksQ0FBQ1QsZUFBZSxDQUFDVSxJQUFJLElBQUlEO1FBQzdCLE9BQU8sSUFBSTtJQUNaO0lBRU9FLFdBQVdKLElBQVksRUFBRUssTUFBc0IsRUFBUTtRQUM3RCxJQUFJLENBQUNYLFNBQVMsQ0FBQ1ksR0FBRyxDQUFDTixNQUFNSztRQUN6QixPQUFPLElBQUk7SUFDWjtJQUVPRSxRQUFRO1FBQ2QsT0FBTztZQUNOO2dCQUNDQyxVQUFV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
@@ -72,5 +72,3 @@ import { readFileSync } from "node:fs";
72
72
  lines.splice(insertAt, 0, ...insertLines);
73
73
  return lines.join("\n");
74
74
  }
75
-
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9tb2RlbHMvY29uZmlnLXlhbWwubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuL3NvdXJjZS1maWxlLmpzXCI7XG5cbi8qKlxuICogQnVpbGRlciBmb3IgYSBZQU1MIGNvbmZpZyBmaWxlIChlLmcuIGNvbmZpZy9jb25maWcueWFtbCBvciBjb25maWcvY29uZmlnLmRldi55YW1sKS5cbiAqXG4gKiBTdGFydHMgd2l0aCBhIGJhc2Ugc2VjdGlvbiBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLiBGZWF0dXJlcyBjYWxsXG4gKiBgYWRkU2VjdGlvbih5YW1sKWAgZHVyaW5nIHRoZWlyIHNjYWZmb2xkIHBoYXNlIHRvIGFwcGVuZCB0aGVpciBvd24gYmxvY2suXG4gKiBgZmlsZXMoKWAgam9pbnMgYWxsIHNlY3Rpb25zIHdpdGggYSBibGFuayBsaW5lIHNlcGFyYXRvci5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbmZpZ1lhbWwgaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHJpdmF0ZSByZWFkb25seSBfc2VjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKFxuXHRcdHB1YmxpYyByZWFkb25seSBrZXk6IHN0cmluZyxcblx0XHRwcml2YXRlIHJlYWRvbmx5IGZpbGVQYXRoOiBzdHJpbmcsXG5cdFx0YmFzZUNvbnRlbnQ6IHN0cmluZyxcblx0KSB7XG5cdFx0dGhpcy5fc2VjdGlvbnMucHVzaChiYXNlQ29udGVudCk7XG5cdH1cblxuXHRwdWJsaWMgYWRkU2VjdGlvbih5YW1sOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9zZWN0aW9ucy5wdXNoKHlhbWwpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqIFRydWUgd2hlbiBhIGRhdGFzb3VyY2Ugd2l0aCB0aGlzIGBuYW1lOmAgYWxyZWFkeSBhcHBlYXJzIGluIHRoZSBmaWxlLiAqL1xuXHRwdWJsaWMgaGFzRGF0YVNvdXJjZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5fc2VjdGlvbnMuam9pbihcIlxcblwiKS5pbmNsdWRlcyhgbmFtZTogJHtuYW1lfVxcbmApO1xuXHR9XG5cblx0cHVibGljIGhhc0RhdGFTb3VyY2VzKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9zZWN0aW9ucy5qb2luKFwiXFxuXCIpLmluY2x1ZGVzKFwiZGF0YVNvdXJjZXM6XCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluc2VydCBhIGBkYXRhU291cmNlc2AgbGlzdCBpdGVtLiBVc2VkIGJ5IGB3ZWJhcGkgYWRkYCBzbyB3ZSBkbyBub3Qgd3JpdGUgYVxuXHQgKiBzZWNvbmQgdG9wLWxldmVsIGBkYXRhYmFzZTpgIGtleSAoWUFNTCBsYXN0LWtleS13aW5zKS5cblx0ICovXG5cdHB1YmxpYyBhcHBlbmREYXRhU291cmNlKGl0ZW06IHN0cmluZyk6IHRoaXMge1xuXHRcdGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9zZWN0aW9ucy5qb2luKFwiXFxuXCIpO1xuXHRcdHRoaXMuX3NlY3Rpb25zLmxlbmd0aCA9IDA7XG5cdFx0dGhpcy5fc2VjdGlvbnMucHVzaChpbmplY3RZYW1sRGF0YVNvdXJjZShjdXJyZW50LCBpdGVtKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGZyb21GaWxlKGtleTogc3RyaW5nLCByZWxhdGl2ZVBhdGg6IHN0cmluZywgYWJzb2x1dGVQYXRoOiBzdHJpbmcpOiBDb25maWdZYW1sIHtcblx0XHRjb25zdCBjb250ZW50ID0gcmVhZEZpbGVTeW5jKGFic29sdXRlUGF0aCwgXCJ1dGY4XCIpO1xuXHRcdHJldHVybiBuZXcgQ29uZmlnWWFtbChrZXksIHJlbGF0aXZlUGF0aCwgY29udGVudCk7XG5cdH1cblxuXHRwdWJsaWMgZmlsZXMoKTogU291cmNlRmlsZVtdIHtcblx0XHRyZXR1cm4gW3sgZmlsZVBhdGg6IHRoaXMuZmlsZVBhdGgsIGNvbnRlbnQ6IHRoaXMuX3NlY3Rpb25zLmpvaW4oXCJcXG5cIikgfV07XG5cdH1cbn1cblxuLyoqIEluc2VydCBhIFlBTUwgbGlzdCBpdGVtIHVuZGVyIGBkYXRhU291cmNlczpgOyBhcHBlbmQgYSBuZXcgYGRhdGFiYXNlOmAgYmxvY2sgaWYgbWlzc2luZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RZYW1sRGF0YVNvdXJjZSh5YW1sOiBzdHJpbmcsIGl0ZW06IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IGJsb2NrID0gaXRlbS5yZXBsYWNlKC9cXG4kLywgXCJcIik7XG5cdGlmICgheWFtbC5pbmNsdWRlcyhcImRhdGFTb3VyY2VzOlwiKSkge1xuXHRcdGNvbnN0IHByZWZpeCA9IHlhbWwudHJpbUVuZCgpO1xuXHRcdGNvbnN0IHNlY3Rpb24gPSBgZGF0YWJhc2U6XFxuICBkYXRhU291cmNlczpcXG4ke2Jsb2NrfVxcbmA7XG5cdFx0cmV0dXJuIHByZWZpeC5sZW5ndGggPiAwID8gYCR7cHJlZml4fVxcblxcbiR7c2VjdGlvbn1gIDogc2VjdGlvbjtcblx0fVxuXHRjb25zdCBsaW5lcyA9IHlhbWwuc3BsaXQoXCJcXG5cIik7XG5cdGNvbnN0IGRzSW5kZXggPSBsaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+IC9eXFxzKmRhdGFTb3VyY2VzOlxccyokLy50ZXN0KGxpbmUpKTtcblx0aWYgKGRzSW5kZXggPCAwKSB7XG5cdFx0cmV0dXJuIGAke3lhbWwudHJpbUVuZCgpfVxcblxcbmRhdGFiYXNlOlxcbiAgZGF0YVNvdXJjZXM6XFxuJHtibG9ja31cXG5gO1xuXHR9XG5cdGxldCBpbnNlcnRBdCA9IGxpbmVzLmxlbmd0aDtcblx0Zm9yIChsZXQgaSA9IGRzSW5kZXggKyAxOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcblx0XHRpZiAoL15bQS1aYS16XS8udGVzdChsaW5lc1tpXSA/PyBcIlwiKSkge1xuXHRcdFx0aW5zZXJ0QXQgPSBpO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cdGNvbnN0IGluc2VydExpbmVzID0gYmxvY2suc3BsaXQoXCJcXG5cIik7XG5cdGlmIChpbnNlcnRBdCA8IGxpbmVzLmxlbmd0aCAmJiBsaW5lc1tpbnNlcnRBdCAtIDFdICE9PSBcIlwiKSB7XG5cdFx0aW5zZXJ0TGluZXMucHVzaChcIlwiKTtcblx0fVxuXHRsaW5lcy5zcGxpY2UoaW5zZXJ0QXQsIDAsIC4uLmluc2VydExpbmVzKTtcblx0cmV0dXJuIGxpbmVzLmpvaW4oXCJcXG5cIik7XG59XG4iXSwibmFtZXMiOlsicmVhZEZpbGVTeW5jIiwiQ29uZmlnWWFtbCIsIl9zZWN0aW9ucyIsImtleSIsImZpbGVQYXRoIiwiYmFzZUNvbnRlbnQiLCJwdXNoIiwiYWRkU2VjdGlvbiIsInlhbWwiLCJoYXNEYXRhU291cmNlIiwibmFtZSIsImpvaW4iLCJpbmNsdWRlcyIsImhhc0RhdGFTb3VyY2VzIiwiYXBwZW5kRGF0YVNvdXJjZSIsIml0ZW0iLCJjdXJyZW50IiwibGVuZ3RoIiwiaW5qZWN0WWFtbERhdGFTb3VyY2UiLCJmcm9tRmlsZSIsInJlbGF0aXZlUGF0aCIsImFic29sdXRlUGF0aCIsImNvbnRlbnQiLCJmaWxlcyIsImJsb2NrIiwicmVwbGFjZSIsInByZWZpeCIsInRyaW1FbmQiLCJzZWN0aW9uIiwibGluZXMiLCJzcGxpdCIsImRzSW5kZXgiLCJmaW5kSW5kZXgiLCJsaW5lIiwidGVzdCIsImluc2VydEF0IiwiaSIsImluc2VydExpbmVzIiwic3BsaWNlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxZQUFZLFFBQVEsVUFBVTtBQUd2Qzs7Ozs7O0NBTUMsR0FDRCxPQUFPLE1BQU1DOzs7SUFDS0MsWUFBc0IsRUFBRSxDQUFDO0lBRTFDLFlBQ0MsQUFBZ0JDLEdBQVcsRUFDM0Is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
@@ -18,5 +18,3 @@ export const WELL_KNOWN_FILES = {
18
18
  AUTH_CONFIG: "AUTH_CONFIG",
19
19
  ENV_FILE: "ENV_FILE"
20
20
  };
21
-
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9tb2RlbHMvY29uc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFdFTExfS05PV05fRklMRVMgPSB7XG5cdFZTQ09ERV9TRVRUSU5HUzogXCJWU0NPREVfU0VUVElOR1NcIixcblx0TEFVTkNIX0pTT046IFwiTEFVTkNIX0pTT05cIixcblx0RE9DS0VSX0NPTVBPU0U6IFwiRE9DS0VSX0NPTVBPU0VcIixcblx0REVWQ09OVEFJTkVSX0pTT046IFwiREVWQ09OVEFJTkVSX0pTT05cIixcblx0RE9DS0VSRklMRTogXCJET0NLRVJGSUxFXCIsXG5cdFBST0RVQ1RJT05fRE9DS0VSRklMRTogXCJQUk9EVUNUSU9OX0RPQ0tFUkZJTEVcIixcblx0R0lUSFVCX0NJOiBcIkdJVEhVQl9DSVwiLFxuXHRQQUNLQUdFX0pTT046IFwiUEFDS0FHRV9KU09OXCIsXG5cdEFQSV9QQUNLQUdFX0pTT046IFwiQVBJX1BBQ0tBR0VfSlNPTlwiLFxuXHRUU0NPTkZJRzogXCJUU0NPTkZJR1wiLFxuXHRWSVRFU1RfQ09ORklHOiBcIlZJVEVTVF9DT05GSUdcIixcblx0TUFJTl9UUzogXCJNQUlOX1RTXCIsXG5cdENPTlRST0xMRVJfVFM6IFwiQ09OVFJPTExFUl9UU1wiLFxuXHRDT05GSUdfWUFNTDogXCJDT05GSUdfWUFNTFwiLFxuXHRDT05GSUdfREVWX1lBTUw6IFwiQ09ORklHX0RFVl9ZQU1MXCIsXG5cdEdJVElHTk9SRTogXCJHSVRJR05PUkVcIixcblx0QVVUSF9DT05GSUc6IFwiQVVUSF9DT05GSUdcIixcblx0RU5WX0ZJTEU6IFwiRU5WX0ZJTEVcIixcbn07XG4iXSwibmFtZXMiOlsiV0VMTF9LTk9XTl9GSUxFUyIsIlZTQ09ERV9TRVRUSU5HUyIsIkxBVU5DSF9KU09OIiwiRE9DS0VSX0NPTVBPU0UiLCJERVZDT05UQUlORVJfSlNPTiIsIkRPQ0tFUkZJTEUiLCJQUk9EVUNUSU9OX0RPQ0tFUkZJTEUiLCJHSVRIVUJfQ0kiLCJQQUNLQUdFX0pTT04iLCJBUElfUEFDS0FHRV9KU09OIiwiVFNDT05GSUciLCJWSVRFU1RfQ09ORklHIiwiTUFJTl9UUyIsIkNPTlRST0xMRVJfVFMiLCJDT05GSUdfWUFNTCIsIkNPTkZJR19ERVZfWUFNTCIsIkdJVElHTk9SRSIsIkFVVEhfQ09ORklHIiwiRU5WX0ZJTEUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTUEsbUJBQW1CO0lBQy9CQyxpQkFBaUI7SUFDakJDLGFBQWE7SUFDYkMsZ0JBQWdCO0lBQ2hCQyxtQkFBbUI7SUFDbkJDLFlBQVk7SUFDWkMsdUJBQXVCO0lBQ3ZCQyxXQUFXO0lBQ1hDLGNBQWM7SUFDZEMsa0JBQWtCO0lBQ2xCQyxVQUFVO0lBQ1ZDLGVBQWU7SUFDZkMsU0FBUztJQUNUQyxlQUFlO0lBQ2ZDLGFBQWE7SUFDYkMsaUJBQWlCO0lBQ2pCQyxXQUFXO0lBQ1hDLGFBQWE7SUFDYkMsVUFBVTtBQUNYLEVBQUUifQ==
@@ -1,3 +1,4 @@
1
+ import { readFileSync } from "node:fs";
1
2
  import { WELL_KNOWN_FILES } from "./const.js";
2
3
  export class DevContainer {
3
4
  key = WELL_KNOWN_FILES.DEVCONTAINER_JSON;
@@ -12,6 +13,19 @@ export class DevContainer {
12
13
  _initializeCommand;
13
14
  _remoteUser = "node";
14
15
  _useCompose = false;
16
+ _existing;
17
+ /**
18
+ * Load an existing devcontainer.json so `decohere add api` can merge into it.
19
+ * Only extensions, forwarded ports and port attributes are merged; everything else is kept.
20
+ */ static fromFile(absolutePath) {
21
+ const devContainer = new DevContainer();
22
+ try {
23
+ devContainer._existing = JSON.parse(readFileSync(absolutePath, "utf8"));
24
+ } catch (error) {
25
+ throw new Error(`Can't update ${absolutePath}: it isn't plain JSON (${error.message}). Remove any comments or trailing commas and try again.`);
26
+ }
27
+ return devContainer;
28
+ }
15
29
  constructor(){
16
30
  this._mounts = [
17
31
  this.bindMount(this._workspaceFolder)
@@ -64,6 +78,33 @@ export class DevContainer {
64
78
  return this;
65
79
  }
66
80
  files() {
81
+ const config = this._existing ? this.mergeIntoExisting(this._existing) : this.build();
82
+ return [
83
+ {
84
+ filePath: ".devcontainer/devcontainer.json",
85
+ content: JSON.stringify(config, null, 2)
86
+ }
87
+ ];
88
+ }
89
+ mergeIntoExisting(existing) {
90
+ const config = structuredClone(existing);
91
+ if (this._extensions.length > 0) {
92
+ const customizations = objectAt(config, "customizations");
93
+ const vscode = objectAt(customizations, "vscode");
94
+ vscode.extensions = union(vscode.extensions, this._extensions);
95
+ }
96
+ if (this._ports.length > 0) {
97
+ config.forwardPorts = union(config.forwardPorts, this._ports);
98
+ }
99
+ if (this._portAttributes.size > 0) {
100
+ const attributes = objectAt(config, "portsAttributes");
101
+ for (const [port, attrs] of this._portAttributes){
102
+ attributes[String(port)] ??= attrs;
103
+ }
104
+ }
105
+ return config;
106
+ }
107
+ build() {
67
108
  const config = {};
68
109
  if (this._useCompose) {
69
110
  config.dockerComposeFile = "docker-compose.yml";
@@ -105,13 +146,17 @@ export class DevContainer {
105
146
  if (this._remoteUser) {
106
147
  config.remoteUser = this._remoteUser;
107
148
  }
108
- return [
109
- {
110
- filePath: ".devcontainer/devcontainer.json",
111
- content: JSON.stringify(config, null, 2)
112
- }
113
- ];
149
+ return config;
114
150
  }
115
151
  }
116
-
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy9tb2RlbHMvZGV2LWNvbnRhaW5lci5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4vY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuL3NvdXJjZS1maWxlLmpzXCI7XG5cbi8qKlxuICogTW9kZWwgZm9yIGAuZGV2Y29udGFpbmVyL2RldmNvbnRhaW5lci5qc29uYC5cbiAqXG4gKiBGZWF0dXJlcyBjYWxsIGJ1aWxkZXIgbWV0aG9kcyAoYGFkZEV4dGVuc2lvbmAsIGBmb3J3YXJkUG9ydGAsIGV0Yy4pIGR1cmluZ1xuICogdGhlaXIgY29uZmlndXJlIHBoYXNlLiBgTW9ub1JlcG9TY2FmZm9sZGAgY2FsbHMgYGZpbGVzKClgIGF0IHJlbmRlciB0aW1lLlxuICovXG5cbmV4cG9ydCB0eXBlIFBvcnRBdHRyaWJ1dGVzID0ge1xuXHRsYWJlbD86IHN0cmluZztcblx0LyoqIFdoZW4gdHJ1ZSwgaG9zdCBwb3J0IG11c3QgbWF0Y2ggdGhlIGNvbnRhaW5lciBwb3J0IChubyByYW5kb20gcmVtYXApLiAqL1xuXHRyZXF1aXJlTG9jYWxQb3J0PzogYm9vbGVhbjtcblx0b25BdXRvRm9yd2FyZD86IFwibm90aWZ5XCIgfCBcIm9wZW5Ccm93c2VyXCIgfCBcIm9wZW5QcmV2aWV3XCIgfCBcInNpbGVudFwiIHwgXCJpZ25vcmVcIjtcbn07XG5cbmV4cG9ydCBjbGFzcyBEZXZDb250YWluZXIgaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuREVWQ09OVEFJTkVSX0pTT047XG5cdHByaXZhdGUgcmVhZG9ubHkgX2V4dGVuc2lvbnM6IHN0cmluZ1tdID0gW107XG5cdHByaXZhdGUgcmVhZG9ubHkgX3BvcnRzOiBudW1iZXJbXSA9IFtdO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9wb3J0QXR0cmlidXRlcyA9IG5ldyBNYXA8bnVtYmVyLCBQb3J0QXR0cmlidXRlcz4oKTtcblx0cHJpdmF0ZSBfbW91bnRzOiBzdHJpbmdbXTtcblx0cHJpdmF0ZSBfd29ya3NwYWNlRm9sZGVyID0gXCIvd29ya3NwYWNlXCI7XG5cdHByaXZhdGUgX3Bvc3RDcmVhdGVDb21tYW5kPzogc3RyaW5nO1xuXHRwcml2YXRlIF91cGRhdGVDb250ZW50Q29tbWFuZD86IHN0cmluZztcblx0cHJpdmF0ZSBfcG9zdFN0YXJ0Q29tbWFuZD86IHN0cmluZztcblx0cHJpdmF0ZSBfaW5pdGlhbGl6ZUNvbW1hbmQ/OiBzdHJpbmc7XG5cdHByaXZhdGUgX3JlbW90ZVVzZXIgPSBcIm5vZGVcIjtcblx0cHJpdmF0ZSBfdXNlQ29tcG9zZSA9IGZhbHNlO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLl9tb3VudHMgPSBbdGhpcy5iaW5kTW91bnQodGhpcy5fd29ya3NwYWNlRm9sZGVyKV07XG5cdH1cblxuXHQvKiogSW4tY29udGFpbmVyIHBhdGggQ3Vyc29yL1ZTIENvZGUgb3BlbnMgKEFnZW50cyB3aW5kb3cgdXNlcyB0aGUgYmFzZW5hbWUpLiAqL1xuXHRwdWJsaWMgc2V0V29ya3NwYWNlRm9sZGVyKGZvbGRlcjogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fd29ya3NwYWNlRm9sZGVyID0gZm9sZGVyO1xuXHRcdHRoaXMuX21vdW50cyA9IFt0aGlzLmJpbmRNb3VudChmb2xkZXIpXTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHByaXZhdGUgYmluZE1vdW50KHRhcmdldDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYHNvdXJjZT0uLix0YXJnZXQ9JHt0YXJnZXR9LHR5cGU9YmluZCxjb25zaXN0ZW5jeT1jYWNoZWRgO1xuXHR9XG5cblx0cHVibGljIGFkZEV4dGVuc2lvbiguLi5pZHM6IHN0cmluZ1tdKTogdGhpcyB7XG5cdFx0dGhpcy5fZXh0ZW5zaW9ucy5wdXNoKC4uLmlkcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZm9yd2FyZFBvcnQoLi4ucG9ydHM6IG51bWJlcltdKTogdGhpcyB7XG5cdFx0dGhpcy5fcG9ydHMucHVzaCguLi5wb3J0cyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgc2V0UG9ydEF0dHJpYnV0ZXMocG9ydDogbnVtYmVyLCBhdHRyczogUG9ydEF0dHJpYnV0ZXMpOiB0aGlzIHtcblx0XHR0aGlzLl9wb3J0QXR0cmlidXRlcy5zZXQocG9ydCwgYXR0cnMpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIHNldFBvc3RDcmVhdGVDb21tYW5kKGNtZDogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fcG9zdENyZWF0ZUNvbW1hbmQgPSBjbWQ7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgc2V0VXBkYXRlQ29udGVudENvbW1hbmQoY21kOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl91cGRhdGVDb250ZW50Q29tbWFuZCA9IGNtZDtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBzZXRQb3N0U3RhcnRDb21tYW5kKGNtZDogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fcG9zdFN0YXJ0Q29tbWFuZCA9IGNtZDtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBzZXRJbml0aWFsaXplQ29tbWFuZChjbWQ6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX2luaXRpYWxpemVDb21tYW5kID0gY21kO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIHNldFJlbW90ZVVzZXIodXNlcjogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fcmVtb3RlVXNlciA9IHVzZXI7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgdXNlQ29tcG9zZSgpOiB0aGlzIHtcblx0XHR0aGlzLl91c2VDb21wb3NlID0gdHJ1ZTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBmaWxlcygpOiBTb3VyY2VGaWxlW10ge1xuXHRcdGNvbnN0IGNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuXHRcdGlmICh0aGlzLl91c2VDb21wb3NlKSB7XG5cdFx0XHRjb25maWcuZG9ja2VyQ29tcG9zZUZpbGUgPSBcImRvY2tlci1jb21wb3NlLnltbFwiO1xuXHRcdFx0Y29uZmlnLnNlcnZpY2UgPSBcImRldmNvbnRhaW5lclwiO1xuXHRcdFx0Y29uZmlnLndvcmtzcGFjZUZvbGRlciA9IHRoaXMuX3dvcmtzcGFjZUZvbGRlcjtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5faW5pdGlhbGl6ZUNvbW1hbmQpIHtcblx0XHRcdGNvbmZpZy5pbml0aWFsaXplQ29tbWFuZCA9IHRoaXMuX2luaXRpYWxpemVDb21tYW5kO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLl9tb3VudHMpIHtcblx0XHRcdGNvbmZpZy5tb3VudHMgPSB0aGlzLl9tb3VudHM7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX2V4dGVuc2lvbnMubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uZmlnLmN1c3RvbWl6YXRpb25zID0geyB2c2NvZGU6IHsgZXh0ZW5zaW9uczogdGhpcy5fZXh0ZW5zaW9ucyB9IH07XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX3BvcnRzLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbmZpZy5mb3J3YXJkUG9ydHMgPSB0aGlzLl9wb3J0cztcblx0XHR9XG5cblx0XHRpZiAodGhpcy5fcG9ydEF0dHJpYnV0ZXMuc2l6ZSA+IDApIHtcblx0XHRcdGNvbnN0IHBvcnRzQXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgUG9ydEF0dHJpYnV0ZXM+ID0ge307XG5cdFx0XHRmb3IgKGNvbnN0IFtwb3J0LCBhdHRyc10gb2YgdGhpcy5fcG9ydEF0dHJpYnV0ZXMpIHtcblx0XHRcdFx0cG9ydHNBdHRyaWJ1dGVzW1N0cmluZyhwb3J0KV0gPSBhdHRycztcblx0XHRcdH1cblx0XHRcdGNvbmZpZy5wb3J0c0F0dHJpYnV0ZXMgPSBwb3J0c0F0dHJpYnV0ZXM7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX3Bvc3RDcmVhdGVDb21tYW5kKSB7XG5cdFx0XHRjb25maWcucG9zdENyZWF0ZUNvbW1hbmQgPSB0aGlzLl9wb3N0Q3JlYXRlQ29tbWFuZDtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5fdXBkYXRlQ29udGVudENvbW1hbmQpIHtcblx0XHRcdGNvbmZpZy51cGRhdGVDb250ZW50Q29tbWFuZCA9IHRoaXMuX3VwZGF0ZUNvbnRlbnRDb21tYW5kO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLl9wb3N0U3RhcnRDb21tYW5kKSB7XG5cdFx0XHRjb25maWcucG9zdFN0YXJ0Q29tbWFuZCA9IHRoaXMuX3Bvc3RTdGFydENvbW1hbmQ7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX3JlbW90ZVVzZXIpIHtcblx0XHRcdGNvbmZpZy5yZW1vdGVVc2VyID0gdGhpcy5fcmVtb3RlVXNlcjtcblx0XHR9XG5cblx0XHRyZXR1cm4gW1xuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCIuZGV2Y29udGFpbmVyL2RldmNvbnRhaW5lci5qc29uXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KGNvbmZpZywgbnVsbCwgMiksXG5cdFx0XHR9LFxuXHRcdF07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJXRUxMX0tOT1dOX0ZJTEVTIiwiRGV2Q29udGFpbmVyIiwia2V5IiwiREVWQ09OVEFJTkVSX0pTT04iLCJfZXh0ZW5zaW9ucyIsIl9wb3J0cyIsIl9wb3J0QXR0cmlidXRlcyIsIk1hcCIsIl9tb3VudHMiLCJfd29ya3NwYWNlRm9sZGVyIiwiX3Bvc3RDcmVhdGVDb21tYW5kIiwiX3VwZGF0ZUNvbnRlbnRDb21tYW5kIiwiX3Bvc3RTdGFydENvbW1hbmQiLCJfaW5pdGlhbGl6ZUNvbW1hbmQiLCJfcmVtb3RlVXNlciIsIl91c2VDb21wb3NlIiwiYmluZE1vdW50Iiwic2V0V29ya3NwYWNlRm9sZGVyIiwiZm9sZGVyIiwidGFyZ2V0IiwiYWRkRXh0ZW5zaW9uIiwiaWRzIiwicHVzaCIsImZvcndhcmRQb3J0IiwicG9ydHMiLCJzZXRQb3J0QXR0cmlidXRlcyIsInBvcnQiLCJhdHRycyIsInNldCIsInNldFBvc3RDcmVhdGVDb21tYW5kIiwiY21kIiwic2V0VXBkYXRlQ29udGVudENvbW1hbmQiLCJzZXRQb3N0U3RhcnRDb21tYW5kIiwic2V0SW5pdGlhbGl6ZUNvbW1hbmQiLCJzZXRSZW1vdGVVc2VyIiwidXNlciIsInVzZUNvbXBvc2UiLCJmaWxlcyIsImNvbmZpZyIsImRvY2tlckNvbXBvc2VGaWxlIiwic2VydmljZSIsIndvcmtzcGFjZUZvbGRlciIsImluaXRpYWxpemVDb21tYW5kIiwibW91bnRzIiwibGVuZ3RoIiwiY3VzdG9taXphdGlvbnMiLCJ2c2NvZGUiLCJleHRlbnNpb25zIiwiZm9yd2FyZFBvcnRzIiwic2l6ZSIsInBvcnRzQXR0cmlidXRlcyIsIlN0cmluZyIsInBvc3RDcmVhdGVDb21tYW5kIiwidXBkYXRlQ29udGVudENvbW1hbmQiLCJwb3N0U3RhcnRDb21tYW5kIiwicmVtb3RlVXNlciIsImZpbGVQYXRoIiwiY29udGVudCIsIkpTT04iLCJzdHJpbmdpZnkiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGdCQUFnQixRQUFRLGFBQWE7QUFpQjlDLE9BQU8sTUFBTUM7SUFDSUMsTUFBTUYsaUJBQWlCRyxpQkFBaUIsQ0FBQztJQUN4Q0MsY0FBd0IsRUFBRSxDQUFDO0lBQzNCQyxTQUFtQixFQUFFLENBQUM7SUFDdEJDLGtCQUFrQixJQUFJQyxNQUE4QjtJQUM3REMsUUFBa0I7SUFDbEJDLG1CQUFtQixhQUFhO0lBQ2hDQyxtQkFBNEI7SUFDNUJDLHNCQUErQjtJQUMvQkMsa0JBQTJCO0lBQzNCQyxtQkFBNEI7SUFDNUJDLGNBQWMs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
152
+ /** The object at `parent[key]`, created when missing. */ function objectAt(parent, key) {
153
+ parent[key] ??= {};
154
+ return parent[key];
155
+ }
156
+ function union(existing, additions) {
157
+ const items = Array.isArray(existing) ? [
158
+ ...existing
159
+ ] : [];
160
+ for (const item of additions)if (!items.includes(item)) items.push(item);
161
+ return items;
162
+ }