@decohere/create 0.0.1-dev.48 → 0.0.1-dev.49

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 (124) hide show
  1. package/commonjs/src/cli.js +3 -3
  2. package/commonjs/src/resolve-launch.js +53 -0
  3. package/commonjs/src/runner.js +5 -45
  4. package/commonjs/src/version.js +1 -1
  5. package/es6/src/cli.js +3 -3
  6. package/es6/src/resolve-launch.js +46 -0
  7. package/es6/src/runner.js +8 -57
  8. package/es6/src/version.js +3 -3
  9. package/pack-builder-tgz.mjs +1 -1
  10. package/package.json +4 -11
  11. package/types/src/resolve-launch.d.ts +10 -0
  12. package/types/src/runner.d.ts +3 -13
  13. package/types/src/version.d.ts +0 -2
  14. package/commonjs/src/domain/prompt.js +0 -64
  15. package/commonjs/src/models/compose.model.js +0 -138
  16. package/commonjs/src/models/config-yaml.model.js +0 -88
  17. package/commonjs/src/models/const.js +0 -31
  18. package/commonjs/src/models/dev-container.model.js +0 -100
  19. package/commonjs/src/models/docker-image.model.js +0 -221
  20. package/commonjs/src/models/env-file.model.js +0 -47
  21. package/commonjs/src/models/gitignore.model.js +0 -31
  22. package/commonjs/src/models/launch-json.model.js +0 -74
  23. package/commonjs/src/models/package-json.model.js +0 -133
  24. package/commonjs/src/models/project.model.js +0 -134
  25. package/commonjs/src/models/source-file.js +0 -6
  26. package/commonjs/src/models/tsconfig.model.js +0 -34
  27. package/commonjs/src/models/vscode-settings.model.js +0 -31
  28. package/commonjs/src/program.js +0 -135
  29. package/commonjs/src/resolve-target-dir.js +0 -19
  30. package/commonjs/src/services/scaffold.service.js +0 -62
  31. package/commonjs/src/webapi/api-name.js +0 -95
  32. package/commonjs/src/webapi/const.js +0 -50
  33. package/commonjs/src/webapi/create-api.js +0 -285
  34. package/commonjs/src/webapi/features/auth.feature.js +0 -463
  35. package/commonjs/src/webapi/features/auth0-cli.js +0 -406
  36. package/commonjs/src/webapi/features/biome-format.js +0 -49
  37. package/commonjs/src/webapi/features/database.feature.js +0 -273
  38. package/commonjs/src/webapi/features/finalize.feature.js +0 -91
  39. package/commonjs/src/webapi/features/postman.feature.js +0 -319
  40. package/commonjs/src/webapi/models/api-package-json.model.js +0 -63
  41. package/commonjs/src/webapi/models/auth-config.model.js +0 -26
  42. package/commonjs/src/webapi/models/controller-source-file.model.js +0 -188
  43. package/commonjs/src/webapi/models/github-ci.model.js +0 -193
  44. package/commonjs/src/webapi/models/main-source-file.model.js +0 -165
  45. package/commonjs/src/webapi/models/production-dockerfile.model.js +0 -138
  46. package/commonjs/src/webapi/models/sample-files.model.js +0 -60
  47. package/commonjs/src/webapi/models/webapi-image.model.js +0 -22
  48. package/commonjs/src/webapi/postman/hello-openapi.js +0 -175
  49. package/commonjs/src/webapi/postman/local-view.js +0 -184
  50. package/commonjs/src/webapi/postman/openapi-to-postman.js +0 -202
  51. package/es6/src/domain/prompt.js +0 -43
  52. package/es6/src/models/compose.model.js +0 -132
  53. package/es6/src/models/config-yaml.model.js +0 -76
  54. package/es6/src/models/const.js +0 -21
  55. package/es6/src/models/dev-container.model.js +0 -90
  56. package/es6/src/models/docker-image.model.js +0 -185
  57. package/es6/src/models/env-file.model.js +0 -43
  58. package/es6/src/models/gitignore.model.js +0 -21
  59. package/es6/src/models/launch-json.model.js +0 -64
  60. package/es6/src/models/package-json.model.js +0 -129
  61. package/es6/src/models/project.model.js +0 -119
  62. package/es6/src/models/source-file.js +0 -3
  63. package/es6/src/models/tsconfig.model.js +0 -24
  64. package/es6/src/models/vscode-settings.model.js +0 -21
  65. package/es6/src/program.js +0 -76
  66. package/es6/src/resolve-target-dir.js +0 -9
  67. package/es6/src/services/scaffold.service.js +0 -52
  68. package/es6/src/webapi/api-name.js +0 -59
  69. package/es6/src/webapi/const.js +0 -20
  70. package/es6/src/webapi/create-api.js +0 -265
  71. package/es6/src/webapi/features/auth.feature.js +0 -412
  72. package/es6/src/webapi/features/auth0-cli.js +0 -348
  73. package/es6/src/webapi/features/biome-format.js +0 -42
  74. package/es6/src/webapi/features/database.feature.js +0 -263
  75. package/es6/src/webapi/features/finalize.feature.js +0 -81
  76. package/es6/src/webapi/features/postman.feature.js +0 -253
  77. package/es6/src/webapi/models/api-package-json.model.js +0 -58
  78. package/es6/src/webapi/models/auth-config.model.js +0 -22
  79. package/es6/src/webapi/models/controller-source-file.model.js +0 -179
  80. package/es6/src/webapi/models/github-ci.model.js +0 -186
  81. package/es6/src/webapi/models/main-source-file.model.js +0 -161
  82. package/es6/src/webapi/models/production-dockerfile.model.js +0 -126
  83. package/es6/src/webapi/models/sample-files.model.js +0 -42
  84. package/es6/src/webapi/models/webapi-image.model.js +0 -12
  85. package/es6/src/webapi/postman/hello-openapi.js +0 -168
  86. package/es6/src/webapi/postman/local-view.js +0 -169
  87. package/es6/src/webapi/postman/openapi-to-postman.js +0 -179
  88. package/types/src/domain/prompt.d.ts +0 -4
  89. package/types/src/models/compose.model.d.ts +0 -59
  90. package/types/src/models/config-yaml.model.d.ts +0 -27
  91. package/types/src/models/const.d.ts +0 -19
  92. package/types/src/models/dev-container.model.d.ts +0 -33
  93. package/types/src/models/docker-image.model.d.ts +0 -56
  94. package/types/src/models/env-file.model.d.ts +0 -15
  95. package/types/src/models/gitignore.model.d.ts +0 -6
  96. package/types/src/models/launch-json.model.d.ts +0 -7
  97. package/types/src/models/package-json.model.d.ts +0 -32
  98. package/types/src/models/project.model.d.ts +0 -60
  99. package/types/src/models/source-file.d.ts +0 -11
  100. package/types/src/models/tsconfig.model.d.ts +0 -5
  101. package/types/src/models/vscode-settings.model.d.ts +0 -7
  102. package/types/src/program.d.ts +0 -3
  103. package/types/src/resolve-target-dir.d.ts +0 -5
  104. package/types/src/services/scaffold.service.d.ts +0 -22
  105. package/types/src/webapi/api-name.d.ts +0 -14
  106. package/types/src/webapi/const.d.ts +0 -17
  107. package/types/src/webapi/create-api.d.ts +0 -15
  108. package/types/src/webapi/features/auth.feature.d.ts +0 -10
  109. package/types/src/webapi/features/auth0-cli.d.ts +0 -72
  110. package/types/src/webapi/features/biome-format.d.ts +0 -5
  111. package/types/src/webapi/features/database.feature.d.ts +0 -5
  112. package/types/src/webapi/features/finalize.feature.d.ts +0 -2
  113. package/types/src/webapi/features/postman.feature.d.ts +0 -16
  114. package/types/src/webapi/models/api-package-json.model.d.ts +0 -18
  115. package/types/src/webapi/models/auth-config.model.d.ts +0 -26
  116. package/types/src/webapi/models/controller-source-file.model.d.ts +0 -45
  117. package/types/src/webapi/models/github-ci.model.d.ts +0 -9
  118. package/types/src/webapi/models/main-source-file.model.d.ts +0 -54
  119. package/types/src/webapi/models/production-dockerfile.model.d.ts +0 -20
  120. package/types/src/webapi/models/sample-files.model.d.ts +0 -7
  121. package/types/src/webapi/models/webapi-image.model.d.ts +0 -5
  122. package/types/src/webapi/postman/hello-openapi.d.ts +0 -19
  123. package/types/src/webapi/postman/local-view.d.ts +0 -17
  124. package/types/src/webapi/postman/openapi-to-postman.d.ts +0 -62
@@ -1,138 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get WebapiProductionDockerfile () {
13
- return WebapiProductionDockerfile;
14
- },
15
- get renderProductionDockerfile () {
16
- return renderProductionDockerfile;
17
- }
18
- });
19
- const _const = require("../../models/const.js");
20
- const _const1 = require("../const.js");
21
- class WebapiProductionDockerfile {
22
- apiNames;
23
- options;
24
- key = _const.WELL_KNOWN_FILES.PRODUCTION_DOCKERFILE;
25
- constructor(apiNames = [
26
- _const1.DEFAULT_WEBAPI_NAME
27
- ], options = {}){
28
- this.apiNames = apiNames;
29
- this.options = options;
30
- }
31
- files() {
32
- const names = this.apiNames.length > 0 ? this.apiNames : [
33
- _const1.DEFAULT_WEBAPI_NAME
34
- ];
35
- const first = names[0] ?? _const1.DEFAULT_WEBAPI_NAME;
36
- const files = [];
37
- if (!this.options.namedOnly) {
38
- files.push({
39
- filePath: ".dockerignore",
40
- content: dockerignoreContent()
41
- });
42
- files.push({
43
- filePath: "Dockerfile",
44
- content: renderProductionDockerfile(first, "start")
45
- });
46
- }
47
- const emitNamed = this.options.namedOnly || names.length > 1 || first !== _const1.DEFAULT_WEBAPI_NAME;
48
- if (emitNamed) {
49
- for (const name of names){
50
- files.push({
51
- filePath: `Dockerfile.${name}`,
52
- content: renderProductionDockerfile(name, `start:${name}`)
53
- });
54
- }
55
- }
56
- return files;
57
- }
58
- }
59
- function renderProductionDockerfile(apiName, startScript) {
60
- const projectDir = (0, _const1.webapiProjectDir)(apiName);
61
- const startCmd = startScript === "start" ? 'CMD ["pnpm", "start"]' : `CMD ["pnpm", "run", "${startScript}"]`;
62
- const startEntry = (0, _const1.webapiReleaseEntry)(apiName);
63
- return `# syntax=docker/dockerfile:1
64
- # Self-contained production image: install + forge build happen inside docker build.
65
- # Hosts (Railway/Fly/etc.) clone git and run \`docker build\` — they do not receive CI dist/.
66
- # Build from the repo root: docker build -f Dockerfile${startScript === "start" ? "" : `.${apiName}`} .
67
- #
68
- # Private @decohere/* packages: pass a BuildKit secret named npm_token (npm auth token), e.g.
69
- # docker build --secret id=npm_token,env=NODE_AUTH_TOKEN .
70
- # Or set NODE_AUTH_TOKEN as a build-arg on hosts that only support build-args.
71
-
72
- FROM node:24-bookworm AS build
73
- WORKDIR /app
74
- RUN corepack enable && corepack prepare pnpm@10 --activate
75
-
76
- COPY package.json ./
77
- COPY pnpm-lock.yaml* ./
78
- COPY tsconfig.json biome.json ./
79
- COPY config ./config
80
- COPY ${projectDir} ./${projectDir}
81
-
82
- ARG NODE_AUTH_TOKEN=
83
- RUN --mount=type=secret,id=npm_token,required=false \\
84
- if [ -f /run/secrets/npm_token ]; then \\
85
- TOKEN="$(cat /run/secrets/npm_token)"; \\
86
- else \\
87
- TOKEN="\${NODE_AUTH_TOKEN}"; \\
88
- fi; \\
89
- if [ -n "$TOKEN" ]; then \\
90
- echo "//registry.npmjs.org/:_authToken=\${TOKEN}" > .npmrc; \\
91
- fi; \\
92
- if [ -f pnpm-lock.yaml ]; then \\
93
- pnpm install --frozen-lockfile; \\
94
- else \\
95
- pnpm install; \\
96
- fi; \\
97
- rm -f .npmrc
98
-
99
- RUN pnpm run build
100
-
101
- FROM node:24-bookworm-slim AS run
102
- WORKDIR /app
103
- ENV NODE_ENV=production
104
- RUN corepack enable && corepack prepare pnpm@10 --activate
105
-
106
- COPY --from=build /app/package.json ./
107
- COPY --from=build /app/pnpm-lock.yaml* ./
108
- COPY --from=build /app/config ./config
109
- COPY --from=build /app/dist ./dist
110
- COPY --from=build /app/node_modules ./node_modules
111
- COPY --from=build /app/${projectDir}/package.json ./${projectDir}/package.json
112
-
113
- EXPOSE 3000
114
- ${startCmd}
115
- # Entry resolved by package.json "${startScript}" → node ${startEntry}
116
- `;
117
- }
118
- function dockerignoreContent() {
119
- return [
120
- "node_modules",
121
- "dist",
122
- ".git",
123
- ".devcontainer",
124
- ".vscode",
125
- ".github",
126
- "postman",
127
- ".postman",
128
- ".env",
129
- ".env.*",
130
- "!.env.example",
131
- "coverage",
132
- "**/*.spec.ts",
133
- "**/*.test.ts",
134
- ""
135
- ].join("\n");
136
- }
137
-
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL21vZGVscy9wcm9kdWN0aW9uLWRvY2tlcmZpbGUubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvc291cmNlLWZpbGUuanNcIjtcbmltcG9ydCB7IERFRkFVTFRfV0VCQVBJX05BTUUsIHdlYmFwaVByb2plY3REaXIsIHdlYmFwaVJlbGVhc2VFbnRyeSB9IGZyb20gXCIuLi9jb25zdC5qc1wiO1xuXG5leHBvcnQgdHlwZSBQcm9kdWN0aW9uRG9ja2VyZmlsZU9wdGlvbnMgPSB7XG5cdC8qKiBXaGVuIHRydWUsIG9ubHkgd3JpdGUgYERvY2tlcmZpbGUuPG5hbWU+YCAoZXhpc3Rpbmcgd29ya3NwYWNlIOKAlCBkbyBub3QgcmVwbGFjZSByb290IERvY2tlcmZpbGUpLiAqL1xuXHRuYW1lZE9ubHk/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBQcm9kdWN0aW9uIERvY2tlcmZpbGVzIGZvciBQYWFTIChSYWlsd2F5L0ZseSkgYW5kIGxvY2FsIGBkb2NrZXIgYnVpbGRgLlxuICpcbiAqIENvbnRleHQgaXMgYWx3YXlzIHRoZSAqKnJlcG8gcm9vdCoqIChgZG9ja2VyIGJ1aWxkIC1mIERvY2tlcmZpbGUuYmlsbGluZyAuYCkuXG4gKiBSb290IGBEb2NrZXJmaWxlYCBpcyB0aGUgZmlyc3QgQVBJIChgcG5wbSBzdGFydGApLiBFeHRyYSBvciBjdXN0b20tbmFtZWQgQVBJc1xuICogYWxzbyBnZXQgYERvY2tlcmZpbGUuPG5hbWU+YCBzbyBlYWNoIHNlcnZpY2UgY2FuIGJlIGRlcGxveWVkIG9uIGl0cyBvd24uXG4gKi9cbmV4cG9ydCBjbGFzcyBXZWJhcGlQcm9kdWN0aW9uRG9ja2VyZmlsZSBpbXBsZW1lbnRzIEtleWVkTW9kZWwge1xuXHRwdWJsaWMgcmVhZG9ubHkga2V5ID0gV0VMTF9LTk9XTl9GSUxFUy5QUk9EVUNUSU9OX0RPQ0tFUkZJTEU7XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgYXBpTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdID0gW0RFRkFVTFRfV0VCQVBJX05BTUVdLFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogUHJvZHVjdGlvbkRvY2tlcmZpbGVPcHRpb25zID0ge30sXG5cdCkge31cblxuXHRwdWJsaWMgZmlsZXMoKTogU291cmNlRmlsZVtdIHtcblx0XHRjb25zdCBuYW1lcyA9IHRoaXMuYXBpTmFtZXMubGVuZ3RoID4gMCA/IHRoaXMuYXBpTmFtZXMgOiBbREVGQVVMVF9XRUJBUElfTkFNRV07XG5cdFx0Y29uc3QgZmlyc3QgPSBuYW1lc1swXSA/PyBERUZBVUxUX1dFQkFQSV9OQU1FO1xuXHRcdGNvbnN0IGZpbGVzOiBTb3VyY2VGaWxlW10gPSBbXTtcblxuXHRcdGlmICghdGhpcy5vcHRpb25zLm5hbWVkT25seSkge1xuXHRcdFx0ZmlsZXMucHVzaCh7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5kb2NrZXJpZ25vcmVcIixcblx0XHRcdFx0Y29udGVudDogZG9ja2VyaWdub3JlQ29udGVudCgpLFxuXHRcdFx0fSk7XG5cdFx0XHRmaWxlcy5wdXNoKHtcblx0XHRcdFx0ZmlsZVBhdGg6IFwiRG9ja2VyZmlsZVwiLFxuXHRcdFx0XHRjb250ZW50OiByZW5kZXJQcm9kdWN0aW9uRG9ja2VyZmlsZShmaXJzdCwgXCJzdGFydFwiKSxcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGNvbnN0IGVtaXROYW1lZCA9XG5cdFx0XHR0aGlzLm9wdGlvbnMubmFtZWRPbmx5IHx8IG5hbWVzLmxlbmd0aCA+IDEgfHwgZmlyc3QgIT09IERFRkFVTFRfV0VCQVBJX05BTUU7XG5cdFx0aWYgKGVtaXROYW1lZCkge1xuXHRcdFx0Zm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XG5cdFx0XHRcdGZpbGVzLnB1c2goe1xuXHRcdFx0XHRcdGZpbGVQYXRoOiBgRG9ja2VyZmlsZS4ke25hbWV9YCxcblx0XHRcdFx0XHRjb250ZW50OiByZW5kZXJQcm9kdWN0aW9uRG9ja2VyZmlsZShuYW1lLCBgc3RhcnQ6JHtuYW1lfWApLFxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmlsZXM7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclByb2R1Y3Rpb25Eb2NrZXJmaWxlKGFwaU5hbWU6IHN0cmluZywgc3RhcnRTY3JpcHQ6IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IHByb2plY3REaXIgPSB3ZWJhcGlQcm9qZWN0RGlyKGFwaU5hbWUpO1xuXHRjb25zdCBzdGFydENtZCA9XG5cdFx0c3RhcnRTY3JpcHQgPT09IFwic3RhcnRcIlxuXHRcdFx0PyAnQ01EIFtcInBucG1cIiwgXCJzdGFydFwiXSdcblx0XHRcdDogYENNRCBbXCJwbnBtXCIsIFwicnVuXCIsIFwiJHtzdGFydFNjcmlwdH1cIl1gO1xuXHRjb25zdCBzdGFydEVudHJ5ID0gd2ViYXBpUmVsZWFzZUVudHJ5KGFwaU5hbWUpO1xuXG5cdHJldHVybiBgIyBzeW50YXg9ZG9ja2VyL2RvY2tlcmZpbGU6MVxuIyBTZWxmLWNvbnRhaW5lZCBwcm9kdWN0aW9uIGltYWdlOiBpbnN0YWxsICsgZm9yZ2UgYnVpbGQgaGFwcGVuIGluc2lkZSBkb2NrZXIgYnVpbGQuXG4jIEhvc3RzIChSYWlsd2F5L0ZseS9ldGMuKSBjbG9uZSBnaXQgYW5kIHJ1biBcXGBkb2NrZXIgYnVpbGRcXGAg4oCUIHRoZXkgZG8gbm90IHJlY2VpdmUgQ0kgZGlzdC8uXG4jIEJ1aWxkIGZyb20gdGhlIHJlcG8gcm9vdDogZG9ja2VyIGJ1aWxkIC1mIERvY2tlcmZpbGUke3N0YXJ0U2NyaXB0ID09PSBcInN0YXJ0XCIgPyBcIlwiIDogYC4ke2FwaU5hbWV9YH0gLlxuI1xuIyBQcml2YXRlIEBkZWNvaGVyZS8qIHBhY2thZ2VzOiBwYXNzIGEgQnVpbGRLaXQgc2VjcmV0IG5hbWVkIG5wbV90b2tlbiAobnBtIGF1dGggdG9rZW4pLCBlLmcuXG4jICAgZG9ja2VyIGJ1aWxkIC0tc2VjcmV0IGlkPW5wbV90b2tlbixlbnY9Tk9ERV9BVVRIX1RPS0VOIC5cbiMgT3Igc2V0IE5PREVfQVVUSF9UT0tFTiBhcyBhIGJ1aWxkLWFyZyBvbiBob3N0cyB0aGF0IG9ubHkgc3VwcG9ydCBidWlsZC1hcmdzLlxuXG5GUk9NIG5vZGU6MjQtYm9va3dvcm0gQVMgYnVpbGRcbldPUktESVIgL2FwcFxuUlVOIGNvcmVwYWNrIGVuYWJsZSAmJiBjb3JlcGFjayBwcmVwYXJlIHBucG1AMTAgLS1hY3RpdmF0ZVxuXG5DT1BZIHBhY2thZ2UuanNvbiAuL1xuQ09QWSBwbnBtLWxvY2sueWFtbCogLi9cbkNPUFkgdHNjb25maWcuanNvbiBiaW9tZS5qc29uIC4vXG5DT1BZIGNvbmZpZyAuL2NvbmZpZ1xuQ09QWSAke3Byb2plY3REaXJ9IC4vJHtwcm9qZWN0RGlyfVxuXG5BUkcgTk9ERV9BVVRIX1RPS0VOPVxuUlVOIC0tbW91bnQ9dHlwZT1zZWNyZXQsaWQ9bnBtX3Rva2VuLHJlcXVpcmVkPWZhbHNlIFxcXFxcblx0aWYgWyAtZiAvcnVuL3NlY3JldHMvbnBtX3Rva2VuIF07IHRoZW4gXFxcXFxuXHRcdFRPS0VOPVwiJChjYXQgL3J1bi9zZWNyZXRzL25wbV90b2tlbilcIjsgXFxcXFxuXHRlbHNlIFxcXFxcblx0XHRUT0tFTj1cIlxcJHtOT0RFX0FVVEhfVE9LRU59XCI7IFxcXFxcblx0Zmk7IFxcXFxcblx0aWYgWyAtbiBcIiRUT0tFTlwiIF07IHRoZW4gXFxcXFxuXHRcdGVjaG8gXCIvL3JlZ2lzdHJ5Lm5wbWpzLm9yZy86X2F1dGhUb2tlbj1cXCR7VE9LRU59XCIgPiAubnBtcmM7IFxcXFxcblx0Zmk7IFxcXFxcblx0aWYgWyAtZiBwbnBtLWxvY2sueWFtbCBdOyB0aGVuIFxcXFxcblx0XHRwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGU7IFxcXFxcblx0ZWxzZSBcXFxcXG5cdFx0cG5wbSBpbnN0YWxsOyBcXFxcXG5cdGZpOyBcXFxcXG5cdHJtIC1mIC5ucG1yY1xuXG5SVU4gcG5wbSBydW4gYnVpbGRcblxuRlJPTSBub2RlOjI0LWJvb2t3b3JtLXNsaW0gQVMgcnVuXG5XT1JLRElSIC9hcHBcbkVOViBOT0RFX0VOVj1wcm9kdWN0aW9uXG5SVU4gY29yZXBhY2sgZW5hYmxlICYmIGNvcmVwYWNrIHByZXBhcmUgcG5wbUAxMCAtLWFjdGl2YXRlXG5cbkNPUFkgLS1mcm9tPWJ1aWxkIC9hcHAvcGFja2FnZS5qc29uIC4vXG5DT1BZIC0tZnJvbT1idWlsZCAvYXBwL3BucG0tbG9jay55YW1sKiAuL1xuQ09QWSAtLWZyb209YnVpbGQgL2FwcC9jb25maWcgLi9jb25maWdcbkNPUFkgLS1mcm9tPWJ1aWxkIC9hcHAvZGlzdCAuL2Rpc3RcbkNPUFkgLS1mcm9tPWJ1aWxkIC9hcHAvbm9kZV9tb2R1bGVzIC4vbm9kZV9tb2R1bGVzXG5DT1BZIC0tZnJvbT1idWlsZCAvYXBwLyR7cHJvamVjdERpcn0vcGFja2FnZS5qc29uIC4vJHtwcm9qZWN0RGlyfS9wYWNrYWdlLmpzb25cblxuRVhQT1NFIDMwMDBcbiR7c3RhcnRDbWR9XG4jIEVudHJ5IHJlc29sdmVkIGJ5IHBhY2thZ2UuanNvbiBcIiR7c3RhcnRTY3JpcHR9XCIg4oaSIG5vZGUgJHtzdGFydEVudHJ5fVxuYDtcbn1cblxuZnVuY3Rpb24gZG9ja2VyaWdub3JlQ29udGVudCgpOiBzdHJpbmcge1xuXHRyZXR1cm4gW1xuXHRcdFwibm9kZV9tb2R1bGVzXCIsXG5cdFx0XCJkaXN0XCIsXG5cdFx0XCIuZ2l0XCIsXG5cdFx0XCIuZGV2Y29udGFpbmVyXCIsXG5cdFx0XCIudnNjb2RlXCIsXG5cdFx0XCIuZ2l0aHViXCIsXG5cdFx0XCJwb3N0bWFuXCIsXG5cdFx0XCIucG9zdG1hblwiLFxuXHRcdFwiLmVudlwiLFxuXHRcdFwiLmVudi4qXCIsXG5cdFx0XCIhLmVudi5leGFtcGxlXCIsXG5cdFx0XCJjb3ZlcmFnZVwiLFxuXHRcdFwiKiovKi5zcGVjLnRzXCIsXG5cdFx0XCIqKi8qLnRlc3QudHNcIixcblx0XHRcIlwiLFxuXHRdLmpvaW4oXCJcXG5cIik7XG59XG4iXSwibmFtZXMiOlsiV2ViYXBpUHJvZHVjdGlvbkRvY2tlcmZpbGUiLCJyZW5kZXJQcm9kdWN0aW9uRG9ja2VyZmlsZSIsImtleSIsIldFTExfS05PV05fRklMRVMiLCJQUk9EVUNUSU9OX0RPQ0tFUkZJTEUiLCJhcGlOYW1lcyIsIkRFRkFVTFRfV0VCQVBJX05BTUUiLCJvcHRpb25zIiwiZmlsZXMiLCJuYW1lcyIsImxlbmd0aCIsImZpcnN0IiwibmFtZWRPbmx5IiwicHVzaCIsImZpbGVQYXRoIiwiY29udGVudCIsImRvY2tlcmlnbm9yZUNvbnRlbnQiLCJlbWl0TmFtZWQiLCJuYW1lIiwiYXBpTmFtZSIsInN0YXJ0U2NyaXB0IiwicHJvamVjdERpciIsIndlYmFwaVByb2plY3REaXIiLCJzdGFydENtZCIsInN0YXJ0RW50cnkiLCJ3ZWJhcGlSZWxlYXNlRW50cnkiLCJqb2luIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQWdCYUE7ZUFBQUE7O1FBdUNHQztlQUFBQTs7O3VCQXZEaUI7d0JBRXlDO0FBY25FLE1BQU1EOzs7SUFDSUUsTUFBTUMsdUJBQWdCLENBQUNDLHFCQUFxQixDQUFDO0lBRTdELFlBQ0MsQUFBaUJDLFdBQThCO1FBQUNDLDJCQUFtQjtLQUFDLEVBQ3BFLEFBQWlCQyxVQUF1QyxDQUFDLENBQUMsQ0FDekQ7YUFGZ0JGLFdBQUFBO2FBQ0FFLFVBQUFBO0lBQ2Y7SUFFSUMsUUFBc0I7UUFDNUIsTUFBTUMsUUFBUSxJQUFJLENBQUNKLFFBQVEsQ0FBQ0ssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDTCxRQUFRLEdBQUc7WUFBQ0MsMkJBQW1CO1NBQUM7UUFDOUUsTUFBTUssUUFBUUYsS0FBSyxDQUFDLEVBQUUsSUFBSUgsMkJBQW1CO1FBQzdDLE1BQU1FLFFBQXNCLEVBQUU7UUFFOUIsSUFBSSxDQUFDLElBQUksQ0FBQ0QsT0FBTyxDQUFDSyxTQUFTLEVBQUU7WUFDNUJKLE1BQU1LLElBQUksQ0FBQztnQkFDVkMsVUFBVTtnQkFDVkMsU0FBU0M7WUFDVjtZQUNBUixNQUFNSyxJQUFJLENBQUM7Z0JBQ1ZDLFVBQVU7Z0JBQ1ZDLFNBQVNkLDJCQUEyQlUsT0FBTztZQUM1QztRQUNEO1FBRUEsTUFBTU0sWUFDTCxJQUFJLENBQUNWLE9BQU8sQ0FBQ0ssU0FBUyxJQUFJSCxNQUFNQyxNQUFNLEdBQUcsS0FBS0MsVUFBVUwsMkJBQW1CO1FBQzVFLElBQUlXLFdBQVc7WUFDZCxLQUFLLE1BQU1DLFFBQVFULE1BQU87Z0JBQ3pCRCxNQUFNSyxJQUFJLENBQUM7b0JBQ1ZDLFVBQVUsQ0FBQyxXQUFXLEVBQUVJLE1BQU07b0JBQzlCSCxTQUFTZCwyQkFBMkJpQixNQUFNLENBQUMsTUFBTSxFQUFFQSxNQUFNO2dCQUMxRDtZQUNEO1FBQ0Q7UUFFQSxPQUFPVjtJQUNSO0FBQ0Q7QUFFTyxTQUFTUCwyQkFBMkJrQixPQUFlLEVBQUVDLFdBQW1CO0lBQzlFLE1BQU1DLGFBQWFDLElBQUFBLHdCQUFnQixFQUFDSDtJQUNwQyxNQUFNSSxXQUNMSCxnQkFBZ0IsVUFDYiwwQkFDQSxDQUFDLHFCQUFxQixFQUFFQSxZQUFZLEVBQUUsQ0FBQztJQUMzQyxNQUFNSSxhQUFhQyxJQUFBQSwwQkFBa0IsRUFBQ047SUFFdEMsT0FBTyxDQUFDOzs7c0RBRzZDLEVBQUVDLGdCQUFnQixVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUVELFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7S0FjaEcsRUFBRUUsV0FBVyxHQUFHLEVBQUVBLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dUJBK0JYLEVBQUVBLFdBQVcsZ0JBQWdCLEVBQUVBLFdBQVc7OztBQUdqRSxFQUFFRSxTQUFTO2tDQUN1QixFQUFFSCxZQUFZLFNBQVMsRUFBRUksV0FBVztBQUN0RSxDQUFDO0FBQ0Q7QUFFQSxTQUFTUjtJQUNSLE9BQU87UUFDTjtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7S0FDQSxDQUFDVSxJQUFJLENBQUM7QUFDUiJ9
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get SampleConfigModel () {
13
- return SampleConfigModel;
14
- },
15
- get SampleServiceModel () {
16
- return SampleServiceModel;
17
- }
18
- });
19
- const SAMPLE_CONFIG_CONTENT = `export class SampleConfig {\n\tpublic greeting: string = "";\n}\n`;
20
- const SAMPLE_SERVICE_CONTENT = [
21
- `import { inject, injectable } from "@decohere/crucible/decorators";`,
22
- `import { ConfigurationServiceToken } from "@decohere/nexus/configuration";`,
23
- `import type { IConfigurationService } from "@decohere/nexus/configuration";`,
24
- `import { SampleConfig } from "../sample.config.js";`,
25
- ``,
26
- `@injectable()`,
27
- `export class SampleService {`,
28
- `\tpublic constructor(`,
29
- `\t\t@inject(ConfigurationServiceToken) private readonly config: IConfigurationService,`,
30
- `\t) {}`,
31
- ``,
32
- `\tpublic async getGreeting(): Promise<string> {`,
33
- `\t\tconst config = await this.config.get(SampleConfig);`,
34
- `\t\treturn config.greeting;`,
35
- `\t}`,
36
- `}`,
37
- ``
38
- ].join("\n");
39
- class SampleConfigModel {
40
- files() {
41
- return [
42
- {
43
- filePath: "src/sample.config.ts",
44
- content: SAMPLE_CONFIG_CONTENT
45
- }
46
- ];
47
- }
48
- }
49
- class SampleServiceModel {
50
- files() {
51
- return [
52
- {
53
- filePath: "src/services/sample.service.ts",
54
- content: SAMPLE_SERVICE_CONTENT
55
- }
56
- ];
57
- }
58
- }
59
-
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL21vZGVscy9zYW1wbGUtZmlsZXMubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTb3VyY2VGaWxlLCBTb3VyY2VGaWxlUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NvdXJjZS1maWxlLmpzXCI7XG5cbmNvbnN0IFNBTVBMRV9DT05GSUdfQ09OVEVOVCA9IGBleHBvcnQgY2xhc3MgU2FtcGxlQ29uZmlnIHtcXG5cXHRwdWJsaWMgZ3JlZXRpbmc6IHN0cmluZyA9IFwiXCI7XFxufVxcbmA7XG5cbmNvbnN0IFNBTVBMRV9TRVJWSUNFX0NPTlRFTlQgPSBbXG5cdGBpbXBvcnQgeyBpbmplY3QsIGluamVjdGFibGUgfSBmcm9tIFwiQGRlY29oZXJlL2NydWNpYmxlL2RlY29yYXRvcnNcIjtgLFxuXHRgaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2VUb2tlbiB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY29uZmlndXJhdGlvblwiO2AsXG5cdGBpbXBvcnQgdHlwZSB7IElDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY29uZmlndXJhdGlvblwiO2AsXG5cdGBpbXBvcnQgeyBTYW1wbGVDb25maWcgfSBmcm9tIFwiLi4vc2FtcGxlLmNvbmZpZy5qc1wiO2AsXG5cdGBgLFxuXHRgQGluamVjdGFibGUoKWAsXG5cdGBleHBvcnQgY2xhc3MgU2FtcGxlU2VydmljZSB7YCxcblx0YFxcdHB1YmxpYyBjb25zdHJ1Y3RvcihgLFxuXHRgXFx0XFx0QGluamVjdChDb25maWd1cmF0aW9uU2VydmljZVRva2VuKSBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogSUNvbmZpZ3VyYXRpb25TZXJ2aWNlLGAsXG5cdGBcXHQpIHt9YCxcblx0YGAsXG5cdGBcXHRwdWJsaWMgYXN5bmMgZ2V0R3JlZXRpbmcoKTogUHJvbWlzZTxzdHJpbmc+IHtgLFxuXHRgXFx0XFx0Y29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5jb25maWcuZ2V0KFNhbXBsZUNvbmZpZyk7YCxcblx0YFxcdFxcdHJldHVybiBjb25maWcuZ3JlZXRpbmc7YCxcblx0YFxcdH1gLFxuXHRgfWAsXG5cdGBgLFxuXS5qb2luKFwiXFxuXCIpO1xuXG5leHBvcnQgY2xhc3MgU2FtcGxlQ29uZmlnTW9kZWwgaW1wbGVtZW50cyBTb3VyY2VGaWxlUHJvdmlkZXIge1xuXHRwdWJsaWMgZmlsZXMoKTogU291cmNlRmlsZVtdIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCJzcmMvc2FtcGxlLmNvbmZpZy50c1wiLFxuXHRcdFx0XHRjb250ZW50OiBTQU1QTEVfQ09ORklHX0NPTlRFTlQsXG5cdFx0XHR9LFxuXHRcdF07XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIFNhbXBsZVNlcnZpY2VNb2RlbCBpbXBsZW1lbnRzIFNvdXJjZUZpbGVQcm92aWRlciB7XG5cdHB1YmxpYyBmaWxlcygpOiBTb3VyY2VGaWxlW10ge1xuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcInNyYy9zZXJ2aWNlcy9zYW1wbGUuc2VydmljZS50c1wiLFxuXHRcdFx0XHRjb250ZW50OiBTQU1QTEVfU0VSVklDRV9DT05URU5ULFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiU2FtcGxlQ29uZmlnTW9kZWwiLCJTYW1wbGVTZXJ2aWNlTW9kZWwiLCJTQU1QTEVfQ09ORklHX0NPTlRFTlQiLCJTQU1QTEVfU0VSVklDRV9DT05URU5UIiwiam9pbiIsImZpbGVzIiwiZmlsZVBhdGgiLCJjb250ZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQXdCYUE7ZUFBQUE7O1FBV0FDO2VBQUFBOzs7QUFqQ2IsTUFBTUMsd0JBQXdCLENBQUMsaUVBQWlFLENBQUM7QUFFakcsTUFBTUMseUJBQXlCO0lBQzlCLENBQUMsbUVBQW1FLENBQUM7SUFDckUsQ0FBQywwRUFBMEUsQ0FBQztJQUM1RSxDQUFDLDJFQUEyRSxDQUFDO0lBQzdFLENBQUMsbURBQW1ELENBQUM7SUFDckQsRUFBRTtJQUNGLENBQUMsYUFBYSxDQUFDO0lBQ2YsQ0FBQyw0QkFBNEIsQ0FBQztJQUM5QixDQUFDLHFCQUFxQixDQUFDO0lBQ3ZCLENBQUMsc0ZBQXNGLENBQUM7SUFDeEYsQ0FBQyxNQUFNLENBQUM7SUFDUixFQUFFO0lBQ0YsQ0FBQywrQ0FBK0MsQ0FBQztJQUNqRCxDQUFDLHVEQUF1RCxDQUFDO0lBQ3pELENBQUMsMkJBQTJCLENBQUM7SUFDN0IsQ0FBQyxHQUFHLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILEVBQUU7Q0FDRixDQUFDQyxJQUFJLENBQUM7QUFFQSxNQUFNSjtJQUNMSyxRQUFzQjtRQUM1QixPQUFPO1lBQ047Z0JBQ0NDLFVBQVU7Z0JBQ1ZDLFNBQVNMO1lBQ1Y7U0FDQTtJQUNGO0FBQ0Q7QUFFTyxNQUFNRDtJQUNMSSxRQUFzQjtRQUM1QixPQUFPO1lBQ047Z0JBQ0NDLFVBQVU7Z0JBQ1ZDLFNBQVNKO1lBQ1Y7U0FDQTtJQUNGO0FBQ0QifQ==
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "WebapiDevContainer", {
6
- enumerable: true,
7
- get: function() {
8
- return WebapiDevContainer;
9
- }
10
- });
11
- const _dockerimagemodel = require("../../models/docker-image.model.js");
12
- class WebapiDevContainer extends _dockerimagemodel.DevContainerImageModel {
13
- constructor(baseImage = "node:24"){
14
- super(baseImage);
15
- }
16
- registerBaseLayers() {
17
- super.registerBaseLayers();
18
- this.addLayer((0, _dockerimagemodel.withNodeUser)()).addLayer((0, _dockerimagemodel.withPnpm)()).addLayer((0, _dockerimagemodel.withWorkspaceNodeModulesOwnership)());
19
- }
20
- }
21
-
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL21vZGVscy93ZWJhcGktaW1hZ2UubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0RGV2Q29udGFpbmVySW1hZ2VNb2RlbCxcblx0d2l0aE5vZGVVc2VyLFxuXHR3aXRoUG5wbSxcblx0d2l0aFdvcmtzcGFjZU5vZGVNb2R1bGVzT3duZXJzaGlwLFxufSBmcm9tIFwiLi4vLi4vbW9kZWxzL2RvY2tlci1pbWFnZS5tb2RlbC5qc1wiO1xuXG5leHBvcnQgY2xhc3MgV2ViYXBpRGV2Q29udGFpbmVyIGV4dGVuZHMgRGV2Q29udGFpbmVySW1hZ2VNb2RlbCB7XG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihiYXNlSW1hZ2UgPSBcIm5vZGU6MjRcIikge1xuXHRcdHN1cGVyKGJhc2VJbWFnZSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVnaXN0ZXJCYXNlTGF5ZXJzKCk6IHZvaWQge1xuXHRcdHN1cGVyLnJlZ2lzdGVyQmFzZUxheWVycygpO1xuXHRcdHRoaXMuYWRkTGF5ZXIod2l0aE5vZGVVc2VyKCkpXG5cdFx0XHQuYWRkTGF5ZXIod2l0aFBucG0oKSlcblx0XHRcdC5hZGRMYXllcih3aXRoV29ya3NwYWNlTm9kZU1vZHVsZXNPd25lcnNoaXAoKSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJXZWJhcGlEZXZDb250YWluZXIiLCJEZXZDb250YWluZXJJbWFnZU1vZGVsIiwiYmFzZUltYWdlIiwicmVnaXN0ZXJCYXNlTGF5ZXJzIiwiYWRkTGF5ZXIiLCJ3aXRoTm9kZVVzZXIiLCJ3aXRoUG5wbSIsIndpdGhXb3Jrc3BhY2VOb2RlTW9kdWxlc093bmVyc2hpcCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFPYUE7OztlQUFBQTs7O2tDQUZOO0FBRUEsTUFBTUEsMkJBQTJCQyx3Q0FBc0I7SUFDN0QsWUFBbUJDLFlBQVksU0FBUyxDQUFFO1FBQ3pDLEtBQUssQ0FBQ0E7SUFDUDtJQUVtQkMscUJBQTJCO1FBQzdDLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsSUFBQUEsOEJBQVksS0FDeEJELFFBQVEsQ0FBQ0UsSUFBQUEsMEJBQVEsS0FDakJGLFFBQVEsQ0FBQ0csSUFBQUEsbURBQWlDO0lBQzdDO0FBQ0QifQ==
@@ -1,175 +0,0 @@
1
- /** Minimal OpenAPI 3 document shape used for Postman conversion. */ "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "buildHelloOpenApiDocument", {
6
- enumerable: true,
7
- get: function() {
8
- return buildHelloOpenApiDocument;
9
- }
10
- });
11
- function buildHelloOpenApiDocument(projectName) {
12
- return {
13
- openapi: "3.0.3",
14
- info: {
15
- title: `${projectName} WebAPI`,
16
- version: "1.0.0",
17
- description: "Generated from OpenAPI for Postman. Auth/env overlays are applied separately."
18
- },
19
- servers: [
20
- {
21
- url: "{{baseUrl}}"
22
- }
23
- ],
24
- paths: {
25
- "/hello": {
26
- get: {
27
- operationId: "HelloController.getAll",
28
- summary: "List (anonymous)",
29
- tags: [
30
- "Hello"
31
- ],
32
- parameters: [
33
- {
34
- name: "filter",
35
- in: "query",
36
- required: false,
37
- schema: {
38
- type: "string"
39
- }
40
- }
41
- ],
42
- responses: {
43
- "200": {
44
- description: "Successful response"
45
- }
46
- }
47
- },
48
- post: {
49
- operationId: "HelloController.create",
50
- summary: "Create",
51
- tags: [
52
- "Hello"
53
- ],
54
- requestBody: {
55
- required: true,
56
- content: {
57
- "application/json": {
58
- schema: {
59
- type: "object",
60
- properties: {
61
- message: {
62
- type: "string"
63
- }
64
- },
65
- required: [
66
- "message"
67
- ],
68
- example: {
69
- message: "hello"
70
- }
71
- }
72
- }
73
- }
74
- },
75
- responses: {
76
- "200": {
77
- description: "Successful response"
78
- }
79
- }
80
- }
81
- },
82
- "/hello/{id}": {
83
- get: {
84
- operationId: "HelloController.getOne",
85
- summary: "Get by id",
86
- tags: [
87
- "Hello"
88
- ],
89
- parameters: [
90
- {
91
- name: "id",
92
- in: "path",
93
- required: true,
94
- schema: {
95
- type: "string"
96
- }
97
- }
98
- ],
99
- responses: {
100
- "200": {
101
- description: "Successful response"
102
- }
103
- }
104
- },
105
- put: {
106
- operationId: "HelloController.update",
107
- summary: "Update",
108
- tags: [
109
- "Hello"
110
- ],
111
- parameters: [
112
- {
113
- name: "id",
114
- in: "path",
115
- required: true,
116
- schema: {
117
- type: "string"
118
- }
119
- }
120
- ],
121
- requestBody: {
122
- required: true,
123
- content: {
124
- "application/json": {
125
- schema: {
126
- type: "object",
127
- properties: {
128
- message: {
129
- type: "string"
130
- }
131
- },
132
- required: [
133
- "message"
134
- ],
135
- example: {
136
- message: "updated"
137
- }
138
- }
139
- }
140
- }
141
- },
142
- responses: {
143
- "200": {
144
- description: "Successful response"
145
- }
146
- }
147
- },
148
- delete: {
149
- operationId: "HelloController.remove",
150
- summary: "Delete",
151
- tags: [
152
- "Hello"
153
- ],
154
- parameters: [
155
- {
156
- name: "id",
157
- in: "path",
158
- required: true,
159
- schema: {
160
- type: "string"
161
- }
162
- }
163
- ],
164
- responses: {
165
- "200": {
166
- description: "Successful response"
167
- }
168
- }
169
- }
170
- }
171
- }
172
- };
173
- }
174
-
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL3Bvc3RtYW4vaGVsbG8tb3BlbmFwaS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogTWluaW1hbCBPcGVuQVBJIDMgZG9jdW1lbnQgc2hhcGUgdXNlZCBmb3IgUG9zdG1hbiBjb252ZXJzaW9uLiAqL1xuZXhwb3J0IHR5cGUgU2NhZmZvbGRPcGVuQXBpRG9jdW1lbnQgPSB7XG5cdG9wZW5hcGk6IFwiMy4wLjNcIjtcblx0aW5mbzogeyB0aXRsZTogc3RyaW5nOyB2ZXJzaW9uOiBzdHJpbmc7IGRlc2NyaXB0aW9uPzogc3RyaW5nIH07XG5cdHNlcnZlcnM/OiBBcnJheTx7IHVybDogc3RyaW5nOyBkZXNjcmlwdGlvbj86IHN0cmluZyB9Pjtcblx0cGF0aHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+Pjtcbn07XG5cbi8qKlxuICogQ2Fub25pY2FsIEhlbGxvIFdlYkFQSSBPcGVuQVBJIGRvY3VtZW50IHVzZWQgdG8gZ2VuZXJhdGUgUG9zdG1hbiByZXF1ZXN0cy5cbiAqIEtlZXAgcGF0aHMgYWxpZ25lZCB3aXRoIHNjYWZmb2xkZWQgSGVsbG9Db250cm9sbGVyIChgL2hlbGxvYCwgYC9oZWxsby97aWR9YCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEhlbGxvT3BlbkFwaURvY3VtZW50KHByb2plY3ROYW1lOiBzdHJpbmcpOiBTY2FmZm9sZE9wZW5BcGlEb2N1bWVudCB7XG5cdHJldHVybiB7XG5cdFx0b3BlbmFwaTogXCIzLjAuM1wiLFxuXHRcdGluZm86IHtcblx0XHRcdHRpdGxlOiBgJHtwcm9qZWN0TmFtZX0gV2ViQVBJYCxcblx0XHRcdHZlcnNpb246IFwiMS4wLjBcIixcblx0XHRcdGRlc2NyaXB0aW9uOlxuXHRcdFx0XHRcIkdlbmVyYXRlZCBmcm9tIE9wZW5BUEkgZm9yIFBvc3RtYW4uIEF1dGgvZW52IG92ZXJsYXlzIGFyZSBhcHBsaWVkIHNlcGFyYXRlbHkuXCIsXG5cdFx0fSxcblx0XHRzZXJ2ZXJzOiBbeyB1cmw6IFwie3tiYXNlVXJsfX1cIiB9XSxcblx0XHRwYXRoczoge1xuXHRcdFx0XCIvaGVsbG9cIjoge1xuXHRcdFx0XHRnZXQ6IHtcblx0XHRcdFx0XHRvcGVyYXRpb25JZDogXCJIZWxsb0NvbnRyb2xsZXIuZ2V0QWxsXCIsXG5cdFx0XHRcdFx0c3VtbWFyeTogXCJMaXN0IChhbm9ueW1vdXMpXCIsXG5cdFx0XHRcdFx0dGFnczogW1wiSGVsbG9cIl0sXG5cdFx0XHRcdFx0cGFyYW1ldGVyczogW1xuXHRcdFx0XHRcdFx0eyBuYW1lOiBcImZpbHRlclwiLCBpbjogXCJxdWVyeVwiLCByZXF1aXJlZDogZmFsc2UsIHNjaGVtYTogeyB0eXBlOiBcInN0cmluZ1wiIH0gfSxcblx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdHJlc3BvbnNlczogeyBcIjIwMFwiOiB7IGRlc2NyaXB0aW9uOiBcIlN1Y2Nlc3NmdWwgcmVzcG9uc2VcIiB9IH0sXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHBvc3Q6IHtcblx0XHRcdFx0XHRvcGVyYXRpb25JZDogXCJIZWxsb0NvbnRyb2xsZXIuY3JlYXRlXCIsXG5cdFx0XHRcdFx0c3VtbWFyeTogXCJDcmVhdGVcIixcblx0XHRcdFx0XHR0YWdzOiBbXCJIZWxsb1wiXSxcblx0XHRcdFx0XHRyZXF1ZXN0Qm9keToge1xuXHRcdFx0XHRcdFx0cmVxdWlyZWQ6IHRydWUsXG5cdFx0XHRcdFx0XHRjb250ZW50OiB7XG5cdFx0XHRcdFx0XHRcdFwiYXBwbGljYXRpb24vanNvblwiOiB7XG5cdFx0XHRcdFx0XHRcdFx0c2NoZW1hOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcIm9iamVjdFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0cHJvcGVydGllczogeyBtZXNzYWdlOiB7IHR5cGU6IFwic3RyaW5nXCIgfSB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0cmVxdWlyZWQ6IFtcIm1lc3NhZ2VcIl0sXG5cdFx0XHRcdFx0XHRcdFx0XHRleGFtcGxlOiB7IG1lc3NhZ2U6IFwiaGVsbG9cIiB9LFxuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0cmVzcG9uc2VzOiB7IFwiMjAwXCI6IHsgZGVzY3JpcHRpb246IFwiU3VjY2Vzc2Z1bCByZXNwb25zZVwiIH0gfSxcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0XHRcIi9oZWxsby97aWR9XCI6IHtcblx0XHRcdFx0Z2V0OiB7XG5cdFx0XHRcdFx0b3BlcmF0aW9uSWQ6IFwiSGVsbG9Db250cm9sbGVyLmdldE9uZVwiLFxuXHRcdFx0XHRcdHN1bW1hcnk6IFwiR2V0IGJ5IGlkXCIsXG5cdFx0XHRcdFx0dGFnczogW1wiSGVsbG9cIl0sXG5cdFx0XHRcdFx0cGFyYW1ldGVyczogW3sgbmFtZTogXCJpZFwiLCBpbjogXCJwYXRoXCIsIHJlcXVpcmVkOiB0cnVlLCBzY2hlbWE6IHsgdHlwZTogXCJzdHJpbmdcIiB9IH1dLFxuXHRcdFx0XHRcdHJlc3BvbnNlczogeyBcIjIwMFwiOiB7IGRlc2NyaXB0aW9uOiBcIlN1Y2Nlc3NmdWwgcmVzcG9uc2VcIiB9IH0sXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHB1dDoge1xuXHRcdFx0XHRcdG9wZXJhdGlvbklkOiBcIkhlbGxvQ29udHJvbGxlci51cGRhdGVcIixcblx0XHRcdFx0XHRzdW1tYXJ5OiBcIlVwZGF0ZVwiLFxuXHRcdFx0XHRcdHRhZ3M6IFtcIkhlbGxvXCJdLFxuXHRcdFx0XHRcdHBhcmFtZXRlcnM6IFt7IG5hbWU6IFwiaWRcIiwgaW46IFwicGF0aFwiLCByZXF1aXJlZDogdHJ1ZSwgc2NoZW1hOiB7IHR5cGU6IFwic3RyaW5nXCIgfSB9XSxcblx0XHRcdFx0XHRyZXF1ZXN0Qm9keToge1xuXHRcdFx0XHRcdFx0cmVxdWlyZWQ6IHRydWUsXG5cdFx0XHRcdFx0XHRjb250ZW50OiB7XG5cdFx0XHRcdFx0XHRcdFwiYXBwbGljYXRpb24vanNvblwiOiB7XG5cdFx0XHRcdFx0XHRcdFx0c2NoZW1hOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcIm9iamVjdFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0cHJvcGVydGllczogeyBtZXNzYWdlOiB7IHR5cGU6IFwic3RyaW5nXCIgfSB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0cmVxdWlyZWQ6IFtcIm1lc3NhZ2VcIl0sXG5cdFx0XHRcdFx0XHRcdFx0XHRleGFtcGxlOiB7IG1lc3NhZ2U6IFwidXBkYXRlZFwiIH0sXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRyZXNwb25zZXM6IHsgXCIyMDBcIjogeyBkZXNjcmlwdGlvbjogXCJTdWNjZXNzZnVsIHJlc3BvbnNlXCIgfSB9LFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRkZWxldGU6IHtcblx0XHRcdFx0XHRvcGVyYXRpb25JZDogXCJIZWxsb0NvbnRyb2xsZXIucmVtb3ZlXCIsXG5cdFx0XHRcdFx0c3VtbWFyeTogXCJEZWxldGVcIixcblx0XHRcdFx0XHR0YWdzOiBbXCJIZWxsb1wiXSxcblx0XHRcdFx0XHRwYXJhbWV0ZXJzOiBbeyBuYW1lOiBcImlkXCIsIGluOiBcInBhdGhcIiwgcmVxdWlyZWQ6IHRydWUsIHNjaGVtYTogeyB0eXBlOiBcInN0cmluZ1wiIH0gfV0sXG5cdFx0XHRcdFx0cmVzcG9uc2VzOiB7IFwiMjAwXCI6IHsgZGVzY3JpcHRpb246IFwiU3VjY2Vzc2Z1bCByZXNwb25zZVwiIH0gfSxcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0fSxcblx0fTtcbn1cbiJdLCJuYW1lcyI6WyJidWlsZEhlbGxvT3BlbkFwaURvY3VtZW50IiwicHJvamVjdE5hbWUiLCJvcGVuYXBpIiwiaW5mbyIsInRpdGxlIiwidmVyc2lvbiIsImRlc2NyaXB0aW9uIiwic2VydmVycyIsInVybCIsInBhdGhzIiwiZ2V0Iiwib3BlcmF0aW9uSWQiLCJzdW1tYXJ5IiwidGFncyIsInBhcmFtZXRlcnMiLCJuYW1lIiwiaW4iLCJyZXF1aXJlZCIsInNjaGVtYSIsInR5cGUiLCJyZXNwb25zZXMiLCJwb3N0IiwicmVxdWVzdEJvZHkiLCJjb250ZW50IiwicHJvcGVydGllcyIsIm1lc3NhZ2UiLCJleGFtcGxlIiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQSxrRUFBa0U7Ozs7K0JBWWxEQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSwwQkFBMEJDLFdBQW1CO0lBQzVELE9BQU87UUFDTkMsU0FBUztRQUNUQyxNQUFNO1lBQ0xDLE9BQU8sR0FBR0gsWUFBWSxPQUFPLENBQUM7WUFDOUJJLFNBQVM7WUFDVEMsYUFDQztRQUNGO1FBQ0FDLFNBQVM7WUFBQztnQkFBRUMsS0FBSztZQUFjO1NBQUU7UUFDakNDLE9BQU87WUFDTixVQUFVO2dCQUNUQyxLQUFLO29CQUNKQyxhQUFhO29CQUNiQyxTQUFTO29CQUNUQyxNQUFNO3dCQUFDO3FCQUFRO29CQUNmQyxZQUFZO3dCQUNYOzRCQUFFQyxNQUFNOzRCQUFVQyxJQUFJOzRCQUFTQyxVQUFVOzRCQUFPQyxRQUFRO2dDQUFFQyxNQUFNOzRCQUFTO3dCQUFFO3FCQUMzRTtvQkFDREMsV0FBVzt3QkFBRSxPQUFPOzRCQUFFZCxhQUFhO3dCQUFzQjtvQkFBRTtnQkFDNUQ7Z0JBQ0FlLE1BQU07b0JBQ0xWLGFBQWE7b0JBQ2JDLFNBQVM7b0JBQ1RDLE1BQU07d0JBQUM7cUJBQVE7b0JBQ2ZTLGFBQWE7d0JBQ1pMLFVBQVU7d0JBQ1ZNLFNBQVM7NEJBQ1Isb0JBQW9CO2dDQUNuQkwsUUFBUTtvQ0FDUEMsTUFBTTtvQ0FDTkssWUFBWTt3Q0FBRUMsU0FBUzs0Q0FBRU4sTUFBTTt3Q0FBUztvQ0FBRTtvQ0FDMUNGLFVBQVU7d0NBQUM7cUNBQVU7b0NBQ3JCUyxTQUFTO3dDQUFFRCxTQUFTO29DQUFRO2dDQUM3Qjs0QkFDRDt3QkFDRDtvQkFDRDtvQkFDQUwsV0FBVzt3QkFBRSxPQUFPOzRCQUFFZCxhQUFhO3dCQUFzQjtvQkFBRTtnQkFDNUQ7WUFDRDtZQUNBLGVBQWU7Z0JBQ2RJLEtBQUs7b0JBQ0pDLGFBQWE7b0JBQ2JDLFNBQVM7b0JBQ1RDLE1BQU07d0JBQUM7cUJBQVE7b0JBQ2ZDLFlBQVk7d0JBQUM7NEJBQUVDLE1BQU07NEJBQU1DLElBQUk7NEJBQVFDLFVBQVU7NEJBQU1DLFFBQVE7Z0NBQUVDLE1BQU07NEJBQVM7d0JBQUU7cUJBQUU7b0JBQ3BGQyxXQUFXO3dCQUFFLE9BQU87NEJBQUVkLGFBQWE7d0JBQXNCO29CQUFFO2dCQUM1RDtnQkFDQXFCLEtBQUs7b0JBQ0poQixhQUFhO29CQUNiQyxTQUFTO29CQUNUQyxNQUFNO3dCQUFDO3FCQUFRO29CQUNmQyxZQUFZO3dCQUFDOzRCQUFFQyxNQUFNOzRCQUFNQyxJQUFJOzRCQUFRQyxVQUFVOzRCQUFNQyxRQUFRO2dDQUFFQyxNQUFNOzRCQUFTO3dCQUFFO3FCQUFFO29CQUNwRkcsYUFBYTt3QkFDWkwsVUFBVTt3QkFDVk0sU0FBUzs0QkFDUixvQkFBb0I7Z0NBQ25CTCxRQUFRO29DQUNQQyxNQUFNO29DQUNOSyxZQUFZO3dDQUFFQyxTQUFTOzRDQUFFTixNQUFNO3dDQUFTO29DQUFFO29DQUMxQ0YsVUFBVTt3Q0FBQztxQ0FBVTtvQ0FDckJTLFNBQVM7d0NBQUVELFNBQVM7b0NBQVU7Z0NBQy9COzRCQUNEO3dCQUNEO29CQUNEO29CQUNBTCxXQUFXO3dCQUFFLE9BQU87NEJBQUVkLGFBQWE7d0JBQXNCO29CQUFFO2dCQUM1RDtnQkFDQXNCLFFBQVE7b0JBQ1BqQixhQUFhO29CQUNiQyxTQUFTO29CQUNUQyxNQUFNO3dCQUFDO3FCQUFRO29CQUNmQyxZQUFZO3dCQUFDOzRCQUFFQyxNQUFNOzRCQUFNQyxJQUFJOzRCQUFRQyxVQUFVOzRCQUFNQyxRQUFRO2dDQUFFQyxNQUFNOzRCQUFTO3dCQUFFO3FCQUFFO29CQUNwRkMsV0FBVzt3QkFBRSxPQUFPOzRCQUFFZCxhQUFhO3dCQUFzQjtvQkFBRTtnQkFDNUQ7WUFDRDtRQUNEO0lBQ0Q7QUFDRCJ9
@@ -1,184 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get buildEnvironmentYaml () {
13
- return buildEnvironmentYaml;
14
- },
15
- get buildLocalViewFilesFromCollection () {
16
- return buildLocalViewFilesFromCollection;
17
- }
18
- });
19
- const _nodecrypto = require("node:crypto");
20
- const _openapitopostman = require("./openapi-to-postman.js");
21
- function yamlQuote(value) {
22
- if (/[:#{}[\],&*?|<>=!%@`]/.test(value) || value.includes("\n") || value === "") {
23
- return JSON.stringify(value);
24
- }
25
- return value;
26
- }
27
- function buildEnvironmentYaml(name, auth, options) {
28
- const values = [
29
- {
30
- key: "baseUrl",
31
- value: "http://localhost:3000"
32
- }
33
- ];
34
- if (auth?.auth0Domain) {
35
- values.push({
36
- key: "auth0Domain",
37
- value: auth.auth0Domain
38
- }, {
39
- key: "auth0Audience",
40
- value: auth.auth0Audience ?? ""
41
- }, {
42
- key: "auth0ClientId",
43
- value: auth.auth0ClientId ?? ""
44
- }, {
45
- key: "authUrl",
46
- value: `https://${auth.auth0Domain}/authorize?audience=${auth.auth0Audience ?? ""}`
47
- }, {
48
- key: "accessTokenUrl",
49
- value: `https://${auth.auth0Domain}/oauth/token`
50
- }, {
51
- key: "callbackUrl",
52
- value: options.callbacks[0]
53
- }, {
54
- key: "scope",
55
- value: options.scopes
56
- });
57
- }
58
- const lines = [
59
- `name: ${yamlQuote(name)}`,
60
- "values:"
61
- ];
62
- for (const v of values){
63
- lines.push(` - key: ${v.key}`);
64
- lines.push(` value: ${yamlQuote(v.value)}`);
65
- lines.push(" enabled: true");
66
- }
67
- return `${lines.join("\n")}\n`;
68
- }
69
- function buildLocalViewFilesFromCollection(collection, projectName, auth, options) {
70
- const collectionDir = `postman/collections/${projectName} WebAPI`;
71
- const files = [];
72
- const authBlock = auth?.auth0Domain ? [
73
- "auth:",
74
- ` - id: ${(0, _nodecrypto.randomUUID)()}`,
75
- " type: oauth2",
76
- " name: OAuth 2.0",
77
- " credentials:",
78
- " addTokenTo: header",
79
- " grant_type: authorization_code_with_pkce",
80
- ` authUrl: https://${auth.auth0Domain}/authorize?audience=${auth.auth0Audience ?? ""}`,
81
- ` accessTokenUrl: https://${auth.auth0Domain}/oauth/token`,
82
- ` clientId: ${yamlQuote(auth.auth0ClientId ?? "")}`,
83
- ` scope: ${yamlQuote(options.scopes)}`,
84
- ` redirect_uri: ${options.callbacks[0]}`,
85
- " useBrowser: true",
86
- " challengeAlgorithm: S256",
87
- " client_authentication: body",
88
- ' clientSecret: ""',
89
- ` tokenName: ${yamlQuote(`${projectName} Access Token`)}`,
90
- ""
91
- ].join("\n") : "";
92
- files.push({
93
- filePath: `${collectionDir}/.resources/definition.yaml`,
94
- content: [
95
- "$kind: collection",
96
- `name: ${yamlQuote(`${projectName} WebAPI`)}`,
97
- "schemaVersion: '3.0'",
98
- "description: >-",
99
- " Open this project root in Postman Local View (Files → Open folder).",
100
- " Select the Local environment, then Authorization → Get New Access Token (PKCE).",
101
- " Route requests are generated from OpenAPI; Auth0 overlay is hand-authored.",
102
- authBlock
103
- ].filter((l)=>l !== undefined).join("\n").replace(/\n+$/, "\n")
104
- });
105
- let folderOrder = 1000;
106
- for (const folder of collection.item ?? []){
107
- if (folder.item == null) {
108
- continue;
109
- }
110
- const folderName = folder.name ?? "Requests";
111
- files.push({
112
- filePath: `${collectionDir}/${folderName}/.resources/definition.yaml`,
113
- content: [
114
- "$kind: folder",
115
- `name: ${yamlQuote(folderName)}`,
116
- `order: ${folderOrder}`,
117
- ""
118
- ].join("\n")
119
- });
120
- folderOrder += 1000;
121
- let requestOrder = 1000;
122
- for (const child of folder.item){
123
- const yaml = requestToLocalViewYaml(child, requestOrder);
124
- if (yaml == null) {
125
- continue;
126
- }
127
- const fileName = `${sanitizeFileName(child.name ?? "Request")}.request.yaml`;
128
- files.push({
129
- filePath: `${collectionDir}/${folderName}/${fileName}`,
130
- content: yaml
131
- });
132
- requestOrder += 1000;
133
- }
134
- }
135
- return files;
136
- }
137
- function requestToLocalViewYaml(item, order) {
138
- const request = item.request;
139
- if (request == null) {
140
- return null;
141
- }
142
- const method = (request.method ?? "GET").toUpperCase();
143
- const url = requestUrlForLocalView(request);
144
- const lines = [
145
- "$kind: http-request",
146
- `name: ${yamlQuote(item.name ?? method)}`,
147
- `method: ${method}`,
148
- `url: ${yamlQuote(url)}`
149
- ];
150
- if (request.auth?.type === "noauth") {
151
- lines.push("auth:", " type: noauth");
152
- }
153
- const contentType = request.header?.find((h)=>h.key.toLowerCase() === "content-type")?.value;
154
- const rawBody = request.body?.raw?.trim();
155
- if (rawBody) {
156
- lines.push("headers:");
157
- lines.push(` Content-Type: ${contentType ?? "application/json"}`);
158
- lines.push("body:");
159
- lines.push(" type: json");
160
- lines.push(" content: |-");
161
- for (const bodyLine of rawBody.split("\n")){
162
- lines.push(` ${bodyLine}`);
163
- }
164
- }
165
- lines.push(`order: ${order}`, "");
166
- return lines.join("\n");
167
- }
168
- function requestUrlForLocalView(request) {
169
- const url = request.url;
170
- if (typeof url === "string") {
171
- return (0, _openapitopostman.openApiPathParamsToColon)(url);
172
- }
173
- if (url?.raw) {
174
- return (0, _openapitopostman.openApiPathParamsToColon)(url.raw);
175
- }
176
- const host = url?.host?.[0] ?? "{{baseUrl}}";
177
- const path = (url?.path ?? []).map((segment)=>(0, _openapitopostman.openApiPathParamsToColon)(String(segment))).join("/");
178
- return path ? `${host}/${path}` : host;
179
- }
180
- function sanitizeFileName(name) {
181
- return name.replace(/[^\w\s()-]+/g, "").trim() || "Request";
182
- }
183
-
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL3Bvc3RtYW4vbG9jYWwtdmlldy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByYW5kb21VVUlEIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQge1xuXHR0eXBlIEF1dGgwRW52LFxuXHRvcGVuQXBpUGF0aFBhcmFtc1RvQ29sb24sXG5cdHR5cGUgUG9zdG1hbkNvbGxlY3Rpb24sXG5cdHR5cGUgUG9zdG1hbkl0ZW0sXG5cdHR5cGUgUG9zdG1hblJlcXVlc3QsXG59IGZyb20gXCIuL29wZW5hcGktdG8tcG9zdG1hbi5qc1wiO1xuXG5mdW5jdGlvbiB5YW1sUXVvdGUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGlmICgvWzoje31bXFxdLCYqP3w8Pj0hJUBgXS8udGVzdCh2YWx1ZSkgfHwgdmFsdWUuaW5jbHVkZXMoXCJcXG5cIikgfHwgdmFsdWUgPT09IFwiXCIpIHtcblx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuXHR9XG5cdHJldHVybiB2YWx1ZTtcbn1cblxuLyoqIExvY2FsIFZpZXcgLyBOYXRpdmUgR2l0IGVudmlyb25tZW50IChZQU1MKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVudmlyb25tZW50WWFtbChcblx0bmFtZTogc3RyaW5nLFxuXHRhdXRoOiBBdXRoMEVudiB8IHVuZGVmaW5lZCxcblx0b3B0aW9uczogeyBjYWxsYmFja3M6IHJlYWRvbmx5IHN0cmluZ1tdOyBzY29wZXM6IHN0cmluZyB9LFxuKTogc3RyaW5nIHtcblx0Y29uc3QgdmFsdWVzOiBBcnJheTx7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+ID0gW1xuXHRcdHsga2V5OiBcImJhc2VVcmxcIiwgdmFsdWU6IFwiaHR0cDovL2xvY2FsaG9zdDozMDAwXCIgfSxcblx0XTtcblx0aWYgKGF1dGg/LmF1dGgwRG9tYWluKSB7XG5cdFx0dmFsdWVzLnB1c2goXG5cdFx0XHR7IGtleTogXCJhdXRoMERvbWFpblwiLCB2YWx1ZTogYXV0aC5hdXRoMERvbWFpbiB9LFxuXHRcdFx0eyBrZXk6IFwiYXV0aDBBdWRpZW5jZVwiLCB2YWx1ZTogYXV0aC5hdXRoMEF1ZGllbmNlID8/IFwiXCIgfSxcblx0XHRcdHsga2V5OiBcImF1dGgwQ2xpZW50SWRcIiwgdmFsdWU6IGF1dGguYXV0aDBDbGllbnRJZCA/PyBcIlwiIH0sXG5cdFx0XHR7XG5cdFx0XHRcdGtleTogXCJhdXRoVXJsXCIsXG5cdFx0XHRcdHZhbHVlOiBgaHR0cHM6Ly8ke2F1dGguYXV0aDBEb21haW59L2F1dGhvcml6ZT9hdWRpZW5jZT0ke2F1dGguYXV0aDBBdWRpZW5jZSA/PyBcIlwifWAsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRrZXk6IFwiYWNjZXNzVG9rZW5VcmxcIixcblx0XHRcdFx0dmFsdWU6IGBodHRwczovLyR7YXV0aC5hdXRoMERvbWFpbn0vb2F1dGgvdG9rZW5gLFxuXHRcdFx0fSxcblx0XHRcdHsga2V5OiBcImNhbGxiYWNrVXJsXCIsIHZhbHVlOiBvcHRpb25zLmNhbGxiYWNrc1swXSB9LFxuXHRcdFx0eyBrZXk6IFwic2NvcGVcIiwgdmFsdWU6IG9wdGlvbnMuc2NvcGVzIH0sXG5cdFx0KTtcblx0fVxuXG5cdGNvbnN0IGxpbmVzID0gW2BuYW1lOiAke3lhbWxRdW90ZShuYW1lKX1gLCBcInZhbHVlczpcIl07XG5cdGZvciAoY29uc3QgdiBvZiB2YWx1ZXMpIHtcblx0XHRsaW5lcy5wdXNoKGAgIC0ga2V5OiAke3Yua2V5fWApO1xuXHRcdGxpbmVzLnB1c2goYCAgICB2YWx1ZTogJHt5YW1sUXVvdGUodi52YWx1ZSl9YCk7XG5cdFx0bGluZXMucHVzaChcIiAgICBlbmFibGVkOiB0cnVlXCIpO1xuXHR9XG5cdHJldHVybiBgJHtsaW5lcy5qb2luKFwiXFxuXCIpfVxcbmA7XG59XG5cbi8qKlxuICogQnVpbGQgUG9zdG1hbiBMb2NhbCBWaWV3IG11bHRpLWZpbGUgWUFNTCBmcm9tIGEgdjIuMSBjb2xsZWN0aW9uIChyb3V0ZXMpXG4gKiBwbHVzIGhhbmQtYXV0aG9yZWQgQXV0aDAgb3ZlcmxheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTG9jYWxWaWV3RmlsZXNGcm9tQ29sbGVjdGlvbihcblx0Y29sbGVjdGlvbjogUG9zdG1hbkNvbGxlY3Rpb24sXG5cdHByb2plY3ROYW1lOiBzdHJpbmcsXG5cdGF1dGg6IEF1dGgwRW52IHwgdW5kZWZpbmVkLFxuXHRvcHRpb25zOiB7IGNhbGxiYWNrczogcmVhZG9ubHkgc3RyaW5nW107IHNjb3Blczogc3RyaW5nIH0sXG4pOiBBcnJheTx7IGZpbGVQYXRoOiBzdHJpbmc7IGNvbnRlbnQ6IHN0cmluZyB9PiB7XG5cdGNvbnN0IGNvbGxlY3Rpb25EaXIgPSBgcG9zdG1hbi9jb2xsZWN0aW9ucy8ke3Byb2plY3ROYW1lfSBXZWJBUElgO1xuXHRjb25zdCBmaWxlczogQXJyYXk8eyBmaWxlUGF0aDogc3RyaW5nOyBjb250ZW50OiBzdHJpbmcgfT4gPSBbXTtcblxuXHRjb25zdCBhdXRoQmxvY2sgPSBhdXRoPy5hdXRoMERvbWFpblxuXHRcdD8gW1xuXHRcdFx0XHRcImF1dGg6XCIsXG5cdFx0XHRcdGAgIC0gaWQ6ICR7cmFuZG9tVVVJRCgpfWAsXG5cdFx0XHRcdFwiICAgIHR5cGU6IG9hdXRoMlwiLFxuXHRcdFx0XHRcIiAgICBuYW1lOiBPQXV0aCAyLjBcIixcblx0XHRcdFx0XCIgICAgY3JlZGVudGlhbHM6XCIsXG5cdFx0XHRcdFwiICAgICAgYWRkVG9rZW5UbzogaGVhZGVyXCIsXG5cdFx0XHRcdFwiICAgICAgZ3JhbnRfdHlwZTogYXV0aG9yaXphdGlvbl9jb2RlX3dpdGhfcGtjZVwiLFxuXHRcdFx0XHRgICAgICAgYXV0aFVybDogaHR0cHM6Ly8ke2F1dGguYXV0aDBEb21haW59L2F1dGhvcml6ZT9hdWRpZW5jZT0ke2F1dGguYXV0aDBBdWRpZW5jZSA/PyBcIlwifWAsXG5cdFx0XHRcdGAgICAgICBhY2Nlc3NUb2tlblVybDogaHR0cHM6Ly8ke2F1dGguYXV0aDBEb21haW59L29hdXRoL3Rva2VuYCxcblx0XHRcdFx0YCAgICAgIGNsaWVudElkOiAke3lhbWxRdW90ZShhdXRoLmF1dGgwQ2xpZW50SWQgPz8gXCJcIil9YCxcblx0XHRcdFx0YCAgICAgIHNjb3BlOiAke3lhbWxRdW90ZShvcHRpb25zLnNjb3Blcyl9YCxcblx0XHRcdFx0YCAgICAgIHJlZGlyZWN0X3VyaTogJHtvcHRpb25zLmNhbGxiYWNrc1swXX1gLFxuXHRcdFx0XHRcIiAgICAgIHVzZUJyb3dzZXI6IHRydWVcIixcblx0XHRcdFx0XCIgICAgICBjaGFsbGVuZ2VBbGdvcml0aG06IFMyNTZcIixcblx0XHRcdFx0XCIgICAgICBjbGllbnRfYXV0aGVudGljYXRpb246IGJvZHlcIixcblx0XHRcdFx0JyAgICAgIGNsaWVudFNlY3JldDogXCJcIicsXG5cdFx0XHRcdGAgICAgICB0b2tlbk5hbWU6ICR7eWFtbFF1b3RlKGAke3Byb2plY3ROYW1lfSBBY2Nlc3MgVG9rZW5gKX1gLFxuXHRcdFx0XHRcIlwiLFxuXHRcdFx0XS5qb2luKFwiXFxuXCIpXG5cdFx0OiBcIlwiO1xuXG5cdGZpbGVzLnB1c2goe1xuXHRcdGZpbGVQYXRoOiBgJHtjb2xsZWN0aW9uRGlyfS8ucmVzb3VyY2VzL2RlZmluaXRpb24ueWFtbGAsXG5cdFx0Y29udGVudDogW1xuXHRcdFx0XCIka2luZDogY29sbGVjdGlvblwiLFxuXHRcdFx0YG5hbWU6ICR7eWFtbFF1b3RlKGAke3Byb2plY3ROYW1lfSBXZWJBUElgKX1gLFxuXHRcdFx0XCJzY2hlbWFWZXJzaW9uOiAnMy4wJ1wiLFxuXHRcdFx0XCJkZXNjcmlwdGlvbjogPi1cIixcblx0XHRcdFwiICBPcGVuIHRoaXMgcHJvamVjdCByb290IGluIFBvc3RtYW4gTG9jYWwgVmlldyAoRmlsZXMg4oaSIE9wZW4gZm9sZGVyKS5cIixcblx0XHRcdFwiICBTZWxlY3QgdGhlIExvY2FsIGVudmlyb25tZW50LCB0aGVuIEF1dGhvcml6YXRpb24g4oaSIEdldCBOZXcgQWNjZXNzIFRva2VuIChQS0NFKS5cIixcblx0XHRcdFwiICBSb3V0ZSByZXF1ZXN0cyBhcmUgZ2VuZXJhdGVkIGZyb20gT3BlbkFQSTsgQXV0aDAgb3ZlcmxheSBpcyBoYW5kLWF1dGhvcmVkLlwiLFxuXHRcdFx0YXV0aEJsb2NrLFxuXHRcdF1cblx0XHRcdC5maWx0ZXIoKGwpID0+IGwgIT09IHVuZGVmaW5lZClcblx0XHRcdC5qb2luKFwiXFxuXCIpXG5cdFx0XHQucmVwbGFjZSgvXFxuKyQvLCBcIlxcblwiKSxcblx0fSk7XG5cblx0bGV0IGZvbGRlck9yZGVyID0gMTAwMDtcblx0Zm9yIChjb25zdCBmb2xkZXIgb2YgY29sbGVjdGlvbi5pdGVtID8/IFtdKSB7XG5cdFx0aWYgKGZvbGRlci5pdGVtID09IG51bGwpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRjb25zdCBmb2xkZXJOYW1lID0gZm9sZGVyLm5hbWUgPz8gXCJSZXF1ZXN0c1wiO1xuXHRcdGZpbGVzLnB1c2goe1xuXHRcdFx0ZmlsZVBhdGg6IGAke2NvbGxlY3Rpb25EaXJ9LyR7Zm9sZGVyTmFtZX0vLnJlc291cmNlcy9kZWZpbml0aW9uLnlhbWxgLFxuXHRcdFx0Y29udGVudDogW1xuXHRcdFx0XHRcIiRraW5kOiBmb2xkZXJcIixcblx0XHRcdFx0YG5hbWU6ICR7eWFtbFF1b3RlKGZvbGRlck5hbWUpfWAsXG5cdFx0XHRcdGBvcmRlcjogJHtmb2xkZXJPcmRlcn1gLFxuXHRcdFx0XHRcIlwiLFxuXHRcdFx0XS5qb2luKFwiXFxuXCIpLFxuXHRcdH0pO1xuXHRcdGZvbGRlck9yZGVyICs9IDEwMDA7XG5cblx0XHRsZXQgcmVxdWVzdE9yZGVyID0gMTAwMDtcblx0XHRmb3IgKGNvbnN0IGNoaWxkIG9mIGZvbGRlci5pdGVtKSB7XG5cdFx0XHRjb25zdCB5YW1sID0gcmVxdWVzdFRvTG9jYWxWaWV3WWFtbChjaGlsZCwgcmVxdWVzdE9yZGVyKTtcblx0XHRcdGlmICh5YW1sID09IG51bGwpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBmaWxlTmFtZSA9IGAke3Nhbml0aXplRmlsZU5hbWUoY2hpbGQubmFtZSA/PyBcIlJlcXVlc3RcIil9LnJlcXVlc3QueWFtbGA7XG5cdFx0XHRmaWxlcy5wdXNoKHtcblx0XHRcdFx0ZmlsZVBhdGg6IGAke2NvbGxlY3Rpb25EaXJ9LyR7Zm9sZGVyTmFtZX0vJHtmaWxlTmFtZX1gLFxuXHRcdFx0XHRjb250ZW50OiB5YW1sLFxuXHRcdFx0fSk7XG5cdFx0XHRyZXF1ZXN0T3JkZXIgKz0gMTAwMDtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZmlsZXM7XG59XG5cbmZ1bmN0aW9uIHJlcXVlc3RUb0xvY2FsVmlld1lhbWwoaXRlbTogUG9zdG1hbkl0ZW0sIG9yZGVyOiBudW1iZXIpOiBzdHJpbmcgfCBudWxsIHtcblx0Y29uc3QgcmVxdWVzdCA9IGl0ZW0ucmVxdWVzdDtcblx0aWYgKHJlcXVlc3QgPT0gbnVsbCkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cdGNvbnN0IG1ldGhvZCA9IChyZXF1ZXN0Lm1ldGhvZCA/PyBcIkdFVFwiKS50b1VwcGVyQ2FzZSgpO1xuXHRjb25zdCB1cmwgPSByZXF1ZXN0VXJsRm9yTG9jYWxWaWV3KHJlcXVlc3QpO1xuXHRjb25zdCBsaW5lcyA9IFtcblx0XHRcIiRraW5kOiBodHRwLXJlcXVlc3RcIixcblx0XHRgbmFtZTogJHt5YW1sUXVvdGUoaXRlbS5uYW1lID8/IG1ldGhvZCl9YCxcblx0XHRgbWV0aG9kOiAke21ldGhvZH1gLFxuXHRcdGB1cmw6ICR7eWFtbFF1b3RlKHVybCl9YCxcblx0XTtcblxuXHRpZiAocmVxdWVzdC5hdXRoPy50eXBlID09PSBcIm5vYXV0aFwiKSB7XG5cdFx0bGluZXMucHVzaChcImF1dGg6XCIsIFwiICB0eXBlOiBub2F1dGhcIik7XG5cdH1cblxuXHRjb25zdCBjb250ZW50VHlwZSA9IHJlcXVlc3QuaGVhZGVyPy5maW5kKFxuXHRcdChoKSA9PiBoLmtleS50b0xvd2VyQ2FzZSgpID09PSBcImNvbnRlbnQtdHlwZVwiLFxuXHQpPy52YWx1ZTtcblx0Y29uc3QgcmF3Qm9keSA9IHJlcXVlc3QuYm9keT8ucmF3Py50cmltKCk7XG5cdGlmIChyYXdCb2R5KSB7XG5cdFx0bGluZXMucHVzaChcImhlYWRlcnM6XCIpO1xuXHRcdGxpbmVzLnB1c2goYCAgQ29udGVudC1UeXBlOiAke2NvbnRlbnRUeXBlID8/IFwiYXBwbGljYXRpb24vanNvblwifWApO1xuXHRcdGxpbmVzLnB1c2goXCJib2R5OlwiKTtcblx0XHRsaW5lcy5wdXNoKFwiICB0eXBlOiBqc29uXCIpO1xuXHRcdGxpbmVzLnB1c2goXCIgIGNvbnRlbnQ6IHwtXCIpO1xuXHRcdGZvciAoY29uc3QgYm9keUxpbmUgb2YgcmF3Qm9keS5zcGxpdChcIlxcblwiKSkge1xuXHRcdFx0bGluZXMucHVzaChgICAgICR7Ym9keUxpbmV9YCk7XG5cdFx0fVxuXHR9XG5cblx0bGluZXMucHVzaChgb3JkZXI6ICR7b3JkZXJ9YCwgXCJcIik7XG5cdHJldHVybiBsaW5lcy5qb2luKFwiXFxuXCIpO1xufVxuXG5mdW5jdGlvbiByZXF1ZXN0VXJsRm9yTG9jYWxWaWV3KHJlcXVlc3Q6IFBvc3RtYW5SZXF1ZXN0KTogc3RyaW5nIHtcblx0Y29uc3QgdXJsID0gcmVxdWVzdC51cmw7XG5cdGlmICh0eXBlb2YgdXJsID09PSBcInN0cmluZ1wiKSB7XG5cdFx0cmV0dXJuIG9wZW5BcGlQYXRoUGFyYW1zVG9Db2xvbih1cmwpO1xuXHR9XG5cdGlmICh1cmw/LnJhdykge1xuXHRcdHJldHVybiBvcGVuQXBpUGF0aFBhcmFtc1RvQ29sb24odXJsLnJhdyk7XG5cdH1cblx0Y29uc3QgaG9zdCA9IHVybD8uaG9zdD8uWzBdID8/IFwie3tiYXNlVXJsfX1cIjtcblx0Y29uc3QgcGF0aCA9ICh1cmw/LnBhdGggPz8gW10pXG5cdFx0Lm1hcCgoc2VnbWVudCkgPT4gb3BlbkFwaVBhdGhQYXJhbXNUb0NvbG9uKFN0cmluZyhzZWdtZW50KSkpXG5cdFx0LmpvaW4oXCIvXCIpO1xuXHRyZXR1cm4gcGF0aCA/IGAke2hvc3R9LyR7cGF0aH1gIDogaG9zdDtcbn1cblxuZnVuY3Rpb24gc2FuaXRpemVGaWxlTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gbmFtZS5yZXBsYWNlKC9bXlxcd1xccygpLV0rL2csIFwiXCIpLnRyaW0oKSB8fCBcIlJlcXVlc3RcIjtcbn1cbiJdLCJuYW1lcyI6WyJidWlsZEVudmlyb25tZW50WWFtbCIsImJ1aWxkTG9jYWxWaWV3RmlsZXNGcm9tQ29sbGVjdGlvbiIsInlhbWxRdW90ZSIsInZhbHVlIiwidGVzdCIsImluY2x1ZGVzIiwiSlNPTiIsInN0cmluZ2lmeSIsIm5hbWUiLCJhdXRoIiwib3B0aW9ucyIsInZhbHVlcyIsImtleSIsImF1dGgwRG9tYWluIiwicHVzaCIsImF1dGgwQXVkaWVuY2UiLCJhdXRoMENsaWVudElkIiwiY2FsbGJhY2tzIiwic2NvcGVzIiwibGluZXMiLCJ2Iiwiam9pbiIsImNvbGxlY3Rpb24iLCJwcm9qZWN0TmFtZSIsImNvbGxlY3Rpb25EaXIiLCJmaWxlcyIsImF1dGhCbG9jayIsInJhbmRvbVVVSUQiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJmaWx0ZXIiLCJsIiwidW5kZWZpbmVkIiwicmVwbGFjZSIsImZvbGRlck9yZGVyIiwiZm9sZGVyIiwiaXRlbSIsImZvbGRlck5hbWUiLCJyZXF1ZXN0T3JkZXIiLCJjaGlsZCIsInlhbWwiLCJyZXF1ZXN0VG9Mb2NhbFZpZXdZYW1sIiwiZmlsZU5hbWUiLCJzYW5pdGl6ZUZpbGVOYW1lIiwib3JkZXIiLCJyZXF1ZXN0IiwibWV0aG9kIiwidG9VcHBlckNhc2UiLCJ1cmwiLCJyZXF1ZXN0VXJsRm9yTG9jYWxWaWV3IiwidHlwZSIsImNvbnRlbnRUeXBlIiwiaGVhZGVyIiwiZmluZCIsImgiLCJ0b0xvd2VyQ2FzZSIsInJhd0JvZHkiLCJib2R5IiwicmF3IiwidHJpbSIsImJvZHlMaW5lIiwic3BsaXQiLCJvcGVuQXBpUGF0aFBhcmFtc1RvQ29sb24iLCJob3N0IiwicGF0aCIsIm1hcCIsInNlZ21lbnQiLCJTdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBaUJnQkE7ZUFBQUE7O1FBdUNBQztlQUFBQTs7OzRCQXhEVztrQ0FPcEI7QUFFUCxTQUFTQyxVQUFVQyxLQUFhO0lBQy9CLElBQUksd0JBQXdCQyxJQUFJLENBQUNELFVBQVVBLE1BQU1FLFFBQVEsQ0FBQyxTQUFTRixVQUFVLElBQUk7UUFDaEYsT0FBT0csS0FBS0MsU0FBUyxDQUFDSjtJQUN2QjtJQUNBLE9BQU9BO0FBQ1I7QUFHTyxTQUFTSCxxQkFDZlEsSUFBWSxFQUNaQyxJQUEwQixFQUMxQkMsT0FBeUQ7SUFFekQsTUFBTUMsU0FBZ0Q7UUFDckQ7WUFBRUMsS0FBSztZQUFXVCxPQUFPO1FBQXdCO0tBQ2pEO0lBQ0QsSUFBSU0sTUFBTUksYUFBYTtRQUN0QkYsT0FBT0csSUFBSSxDQUNWO1lBQUVGLEtBQUs7WUFBZVQsT0FBT00sS0FBS0ksV0FBVztRQUFDLEdBQzlDO1lBQUVELEtBQUs7WUFBaUJULE9BQU9NLEtBQUtNLGFBQWEsSUFBSTtRQUFHLEdBQ3hEO1lBQUVILEtBQUs7WUFBaUJULE9BQU9NLEtBQUtPLGFBQWEsSUFBSTtRQUFHLEdBQ3hEO1lBQ0NKLEtBQUs7WUFDTFQsT0FBTyxDQUFDLFFBQVEsRUFBRU0sS0FBS0ksV0FBVyxDQUFDLG9CQUFvQixFQUFFSixLQUFLTSxhQUFhLElBQUksSUFBSTtRQUNwRixHQUNBO1lBQ0NILEtBQUs7WUFDTFQsT0FBTyxDQUFDLFFBQVEsRUFBRU0sS0FBS0ksV0FBVyxDQUFDLFlBQVksQ0FBQztRQUNqRCxHQUNBO1lBQUVELEtBQUs7WUFBZVQsT0FBT08sUUFBUU8sU0FBUyxDQUFDLEVBQUU7UUFBQyxHQUNsRDtZQUFFTCxLQUFLO1lBQVNULE9BQU9PLFFBQVFRLE1BQU07UUFBQztJQUV4QztJQUVBLE1BQU1DLFFBQVE7UUFBQyxDQUFDLE1BQU0sRUFBRWpCLFVBQVVNLE9BQU87UUFBRTtLQUFVO0lBQ3JELEtBQUssTUFBTVksS0FBS1QsT0FBUTtRQUN2QlEsTUFBTUwsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFTSxFQUFFUixHQUFHLEVBQUU7UUFDOUJPLE1BQU1MLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRVosVUFBVWtCLEVBQUVqQixLQUFLLEdBQUc7UUFDN0NnQixNQUFNTCxJQUFJLENBQUM7SUFDWjtJQUNBLE9BQU8sR0FBR0ssTUFBTUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQy9CO0FBTU8sU0FBU3BCLGtDQUNmcUIsVUFBNkIsRUFDN0JDLFdBQW1CLEVBQ25CZCxJQUEwQixFQUMxQkMsT0FBeUQ7SUFFekQsTUFBTWMsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUVELFlBQVksT0FBTyxDQUFDO0lBQ2pFLE1BQU1FLFFBQXNELEVBQUU7SUFFOUQsTUFBTUMsWUFBWWpCLE1BQU1JLGNBQ3JCO1FBQ0E7UUFDQSxDQUFDLFFBQVEsRUFBRWMsSUFBQUEsc0JBQVUsS0FBSTtRQUN6QjtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0EsQ0FBQyx1QkFBdUIsRUFBRWxCLEtBQUtJLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRUosS0FBS00sYUFBYSxJQUFJLElBQUk7UUFDM0YsQ0FBQyw4QkFBOEIsRUFBRU4sS0FBS0ksV0FBVyxDQUFDLFlBQVksQ0FBQztRQUMvRCxDQUFDLGdCQUFnQixFQUFFWCxVQUFVTyxLQUFLTyxhQUFhLElBQUksS0FBSztRQUN4RCxDQUFDLGFBQWEsRUFBRWQsVUFBVVEsUUFBUVEsTUFBTSxHQUFHO1FBQzNDLENBQUMsb0JBQW9CLEVBQUVSLFFBQVFPLFNBQVMsQ0FBQyxFQUFFLEVBQUU7UUFDN0M7UUFDQTtRQUNBO1FBQ0E7UUFDQSxDQUFDLGlCQUFpQixFQUFFZixVQUFVLEdBQUdxQixZQUFZLGFBQWEsQ0FBQyxHQUFHO1FBQzlEO0tBQ0EsQ0FBQ0YsSUFBSSxDQUFDLFFBQ047SUFFSEksTUFBTVgsSUFBSSxDQUFDO1FBQ1ZjLFVBQVUsR0FBR0osY0FBYywyQkFBMkIsQ0FBQztRQUN2REssU0FBUztZQUNSO1lBQ0EsQ0FBQyxNQUFNLEVBQUUzQixVQUFVLEdBQUdxQixZQUFZLE9BQU8sQ0FBQyxHQUFHO1lBQzdDO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDQUc7U0FDQSxDQUNDSSxNQUFNLENBQUMsQ0FBQ0MsSUFBTUEsTUFBTUMsV0FDcEJYLElBQUksQ0FBQyxNQUNMWSxPQUFPLENBQUMsUUFBUTtJQUNuQjtJQUVBLElBQUlDLGNBQWM7SUFDbEIsS0FBSyxNQUFNQyxVQUFVYixXQUFXYyxJQUFJLElBQUksRUFBRSxDQUFFO1FBQzNDLElBQUlELE9BQU9DLElBQUksSUFBSSxNQUFNO1lBQ3hCO1FBQ0Q7UUFDQSxNQUFNQyxhQUFhRixPQUFPM0IsSUFBSSxJQUFJO1FBQ2xDaUIsTUFBTVgsSUFBSSxDQUFDO1lBQ1ZjLFVBQVUsR0FBR0osY0FBYyxDQUFDLEVBQUVhLFdBQVcsMkJBQTJCLENBQUM7WUFDckVSLFNBQVM7Z0JBQ1I7Z0JBQ0EsQ0FBQyxNQUFNLEVBQUUzQixVQUFVbUMsYUFBYTtnQkFDaEMsQ0FBQyxPQUFPLEVBQUVILGFBQWE7Z0JBQ3ZCO2FBQ0EsQ0FBQ2IsSUFBSSxDQUFDO1FBQ1I7UUFDQWEsZUFBZTtRQUVmLElBQUlJLGVBQWU7UUFDbkIsS0FBSyxNQUFNQyxTQUFTSixPQUFPQyxJQUFJLENBQUU7WUFDaEMsTUFBTUksT0FBT0MsdUJBQXVCRixPQUFPRDtZQUMzQyxJQUFJRSxRQUFRLE1BQU07Z0JBQ2pCO1lBQ0Q7WUFDQSxNQUFNRSxXQUFXLEdBQUdDLGlCQUFpQkosTUFBTS9CLElBQUksSUFBSSxXQUFXLGFBQWEsQ0FBQztZQUM1RWlCLE1BQU1YLElBQUksQ0FBQztnQkFDVmMsVUFBVSxHQUFHSixjQUFjLENBQUMsRUFBRWEsV0FBVyxDQUFDLEVBQUVLLFVBQVU7Z0JBQ3REYixTQUFTVztZQUNWO1lBQ0FGLGdCQUFnQjtRQUNqQjtJQUNEO0lBRUEsT0FBT2I7QUFDUjtBQUVBLFNBQVNnQix1QkFBdUJMLElBQWlCLEVBQUVRLEtBQWE7SUFDL0QsTUFBTUMsVUFBVVQsS0FBS1MsT0FBTztJQUM1QixJQUFJQSxXQUFXLE1BQU07UUFDcEIsT0FBTztJQUNSO0lBQ0EsTUFBTUMsU0FBUyxBQUFDRCxDQUFBQSxRQUFRQyxNQUFNLElBQUksS0FBSSxFQUFHQyxXQUFXO0lBQ3BELE1BQU1DLE1BQU1DLHVCQUF1Qko7SUFDbkMsTUFBTTFCLFFBQVE7UUFDYjtRQUNBLENBQUMsTUFBTSxFQUFFakIsVUFBVWtDLEtBQUs1QixJQUFJLElBQUlzQyxTQUFTO1FBQ3pDLENBQUMsUUFBUSxFQUFFQSxRQUFRO1FBQ25CLENBQUMsS0FBSyxFQUFFNUMsVUFBVThDLE1BQU07S0FDeEI7SUFFRCxJQUFJSCxRQUFRcEMsSUFBSSxFQUFFeUMsU0FBUyxVQUFVO1FBQ3BDL0IsTUFBTUwsSUFBSSxDQUFDLFNBQVM7SUFDckI7SUFFQSxNQUFNcUMsY0FBY04sUUFBUU8sTUFBTSxFQUFFQyxLQUNuQyxDQUFDQyxJQUFNQSxFQUFFMUMsR0FBRyxDQUFDMkMsV0FBVyxPQUFPLGlCQUM3QnBEO0lBQ0gsTUFBTXFELFVBQVVYLFFBQVFZLElBQUksRUFBRUMsS0FBS0M7SUFDbkMsSUFBSUgsU0FBUztRQUNackMsTUFBTUwsSUFBSSxDQUFDO1FBQ1hLLE1BQU1MLElBQUksQ0FBQyxDQUFDLGdCQUFnQixFQUFFcUMsZUFBZSxvQkFBb0I7UUFDakVoQyxNQUFNTCxJQUFJLENBQUM7UUFDWEssTUFBTUwsSUFBSSxDQUFDO1FBQ1hLLE1BQU1MLElBQUksQ0FBQztRQUNYLEtBQUssTUFBTThDLFlBQVlKLFFBQVFLLEtBQUssQ0FBQyxNQUFPO1lBQzNDMUMsTUFBTUwsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFOEMsVUFBVTtRQUM3QjtJQUNEO0lBRUF6QyxNQUFNTCxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUU4QixPQUFPLEVBQUU7SUFDOUIsT0FBT3pCLE1BQU1FLElBQUksQ0FBQztBQUNuQjtBQUVBLFNBQVM0Qix1QkFBdUJKLE9BQXVCO0lBQ3RELE1BQU1HLE1BQU1ILFFBQVFHLEdBQUc7SUFDdkIsSUFBSSxPQUFPQSxRQUFRLFVBQVU7UUFDNUIsT0FBT2MsSUFBQUEsMENBQXdCLEVBQUNkO0lBQ2pDO0lBQ0EsSUFBSUEsS0FBS1UsS0FBSztRQUNiLE9BQU9JLElBQUFBLDBDQUF3QixFQUFDZCxJQUFJVSxHQUFHO0lBQ3hDO0lBQ0EsTUFBTUssT0FBT2YsS0FBS2UsTUFBTSxDQUFDLEVBQUUsSUFBSTtJQUMvQixNQUFNQyxPQUFPLEFBQUNoQixDQUFBQSxLQUFLZ0IsUUFBUSxFQUFFLEFBQUQsRUFDMUJDLEdBQUcsQ0FBQyxDQUFDQyxVQUFZSixJQUFBQSwwQ0FBd0IsRUFBQ0ssT0FBT0QsV0FDakQ3QyxJQUFJLENBQUM7SUFDUCxPQUFPMkMsT0FBTyxHQUFHRCxLQUFLLENBQUMsRUFBRUMsTUFBTSxHQUFHRDtBQUNuQztBQUVBLFNBQVNwQixpQkFBaUJuQyxJQUFZO0lBQ3JDLE9BQU9BLEtBQUt5QixPQUFPLENBQUMsZ0JBQWdCLElBQUkwQixJQUFJLE1BQU07QUFDbkQifQ==