@decohere/create 0.0.1-dev.18 → 0.0.1-dev.20
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.
- package/commonjs/src/cli.js +10 -6
- package/commonjs/src/domain/prompt.js +55 -0
- package/commonjs/src/models/package-json.model.js +2 -2
- package/commonjs/src/runner.js +56 -0
- package/commonjs/src/version.js +32 -0
- package/commonjs/src/webapi/features/auth.feature.js +2 -2
- package/commonjs/src/webapi/features/database.feature.js +3 -3
- package/commonjs/src/webapi/features/finalize.feature.js +11 -6
- package/commonjs/src/webapi/features/postman.feature.js +4 -4
- package/commonjs/src/webapi/models/api-package-json.model.js +2 -2
- package/es6/src/cli.js +10 -6
- package/es6/src/domain/prompt.js +37 -0
- package/es6/src/models/package-json.model.js +2 -2
- package/es6/src/runner.js +55 -0
- package/es6/src/version.js +22 -0
- package/es6/src/webapi/features/auth.feature.js +2 -2
- package/es6/src/webapi/features/database.feature.js +3 -3
- package/es6/src/webapi/features/finalize.feature.js +11 -6
- package/es6/src/webapi/features/postman.feature.js +4 -4
- package/es6/src/webapi/models/api-package-json.model.js +2 -2
- package/package.json +2 -2
- package/types/src/runner.d.ts +13 -0
- package/commonjs/v1/cli.js +0 -15
- package/commonjs/v1/domain/class-model.js +0 -106
- package/commonjs/v1/domain/compose.model.js +0 -74
- package/commonjs/v1/domain/context.js +0 -53
- package/commonjs/v1/domain/devcontainer.model.js +0 -116
- package/commonjs/v1/domain/dockerfile.model.js +0 -62
- package/commonjs/v1/domain/feature.js +0 -19
- package/commonjs/v1/domain/import-map.js +0 -74
- package/commonjs/v1/domain/index.js +0 -68
- package/commonjs/v1/domain/prompt.js +0 -45
- package/commonjs/v1/domain/workflow.js +0 -37
- package/commonjs/v1/features/api-core/feature.js +0 -103
- package/commonjs/v1/features/api-core/hello-controller.model.js +0 -100
- package/commonjs/v1/features/api-core/main-ts.model.js +0 -85
- package/commonjs/v1/features/api-core/scaffold-files.template.js +0 -158
- package/commonjs/v1/features/auth0/auth0-cli.js +0 -151
- package/commonjs/v1/features/auth0/feature.js +0 -187
- package/commonjs/v1/features/auth0/models.js +0 -14
- package/commonjs/v1/features/auth0/prod-config.template.js +0 -19
- package/commonjs/v1/features/cli-core/feature.js +0 -37
- package/commonjs/v1/features/cli-core/scaffold-files.template.js +0 -103
- package/commonjs/v1/features/devcontainer/feature.js +0 -38
- package/commonjs/v1/features/finalize/feature.js +0 -48
- package/commonjs/v1/features/postgresql/feature.js +0 -81
- package/commonjs/v1/features/postgresql/models.js +0 -14
- package/commonjs/v1/features/postman/collection.template.js +0 -80
- package/commonjs/v1/features/postman/environment.template.js +0 -24
- package/commonjs/v1/features/postman/feature.js +0 -192
- package/commonjs/v1/features/typeorm/feature.js +0 -66
- package/commonjs/v1/features/typeorm/scaffold-files.template.js +0 -80
- package/commonjs/v1/scaffold.js +0 -50
- package/commonjs/v1/version.js +0 -32
- package/commonjs/v1/workflows/api.js +0 -29
- package/commonjs/v1/workflows/cli.js +0 -19
- package/es6/v1/cli.js +0 -11
- package/es6/v1/domain/class-model.js +0 -104
- package/es6/v1/domain/compose.model.js +0 -61
- package/es6/v1/domain/context.js +0 -37
- package/es6/v1/domain/devcontainer.model.js +0 -104
- package/es6/v1/domain/dockerfile.model.js +0 -52
- package/es6/v1/domain/feature.js +0 -9
- package/es6/v1/domain/import-map.js +0 -64
- package/es6/v1/domain/index.js +0 -11
- package/es6/v1/domain/prompt.js +0 -27
- package/es6/v1/domain/workflow.js +0 -24
- package/es6/v1/features/api-core/feature.js +0 -93
- package/es6/v1/features/api-core/hello-controller.model.js +0 -96
- package/es6/v1/features/api-core/main-ts.model.js +0 -74
- package/es6/v1/features/api-core/scaffold-files.template.js +0 -116
- package/es6/v1/features/auth0/auth0-cli.js +0 -116
- package/es6/v1/features/auth0/feature.js +0 -136
- package/es6/v1/features/auth0/models.js +0 -4
- package/es6/v1/features/auth0/prod-config.template.js +0 -9
- package/es6/v1/features/cli-core/feature.js +0 -27
- package/es6/v1/features/cli-core/scaffold-files.template.js +0 -73
- package/es6/v1/features/devcontainer/feature.js +0 -28
- package/es6/v1/features/finalize/feature.js +0 -38
- package/es6/v1/features/postgresql/feature.js +0 -71
- package/es6/v1/features/postgresql/models.js +0 -4
- package/es6/v1/features/postman/collection.template.js +0 -70
- package/es6/v1/features/postman/environment.template.js +0 -14
- package/es6/v1/features/postman/feature.js +0 -141
- package/es6/v1/features/typeorm/feature.js +0 -56
- package/es6/v1/features/typeorm/scaffold-files.template.js +0 -56
- package/es6/v1/scaffold.js +0 -40
- package/es6/v1/version.js +0 -22
- package/es6/v1/workflows/api.js +0 -25
- package/es6/v1/workflows/cli.js +0 -9
- package/types/v1/cli.d.ts +0 -2
- package/types/v1/domain/class-model.d.ts +0 -70
- package/types/v1/domain/compose.model.d.ts +0 -25
- package/types/v1/domain/context.d.ts +0 -36
- package/types/v1/domain/devcontainer.model.d.ts +0 -35
- package/types/v1/domain/dockerfile.model.d.ts +0 -11
- package/types/v1/domain/feature.d.ts +0 -29
- package/types/v1/domain/import-map.d.ts +0 -24
- package/types/v1/domain/index.d.ts +0 -12
- package/types/v1/domain/workflow.d.ts +0 -14
- package/types/v1/features/api-core/feature.d.ts +0 -2
- package/types/v1/features/api-core/hello-controller.model.d.ts +0 -9
- package/types/v1/features/api-core/main-ts.model.d.ts +0 -31
- package/types/v1/features/api-core/scaffold-files.template.d.ts +0 -10
- package/types/v1/features/auth0/auth0-cli.d.ts +0 -22
- package/types/v1/features/auth0/feature.d.ts +0 -2
- package/types/v1/features/auth0/models.d.ts +0 -5
- package/types/v1/features/auth0/prod-config.template.d.ts +0 -1
- package/types/v1/features/cli-core/feature.d.ts +0 -2
- package/types/v1/features/cli-core/scaffold-files.template.d.ts +0 -6
- package/types/v1/features/devcontainer/feature.d.ts +0 -2
- package/types/v1/features/finalize/feature.d.ts +0 -2
- package/types/v1/features/postgresql/feature.d.ts +0 -2
- package/types/v1/features/postgresql/models.d.ts +0 -6
- package/types/v1/features/postman/collection.template.d.ts +0 -1
- package/types/v1/features/postman/environment.template.d.ts +0 -6
- package/types/v1/features/postman/feature.d.ts +0 -2
- package/types/v1/features/typeorm/feature.d.ts +0 -2
- package/types/v1/features/typeorm/scaffold-files.template.d.ts +0 -9
- package/types/v1/scaffold.d.ts +0 -3
- package/types/v1/workflows/api.d.ts +0 -8
- package/types/v1/workflows/cli.d.ts +0 -1
- /package/types/{v1 → src}/domain/prompt.d.ts +0 -0
- /package/types/{v1 → src}/version.d.ts +0 -0
|
@@ -1,103 +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 MAIN_TS () {
|
|
13
|
-
return MAIN_TS;
|
|
14
|
-
},
|
|
15
|
-
get TSCONFIG () {
|
|
16
|
-
return TSCONFIG;
|
|
17
|
-
},
|
|
18
|
-
get VSCODE_LAUNCH_JSON () {
|
|
19
|
-
return VSCODE_LAUNCH_JSON;
|
|
20
|
-
},
|
|
21
|
-
get appPackageJson () {
|
|
22
|
-
return appPackageJson;
|
|
23
|
-
},
|
|
24
|
-
get rootPackageJson () {
|
|
25
|
-
return rootPackageJson;
|
|
26
|
-
},
|
|
27
|
-
get vscodeSettingsJson () {
|
|
28
|
-
return vscodeSettingsJson;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
const _version = require("../../version.js");
|
|
32
|
-
const TSCONFIG = JSON.stringify({
|
|
33
|
-
compilerOptions: {
|
|
34
|
-
target: "ES2022",
|
|
35
|
-
module: "NodeNext",
|
|
36
|
-
moduleResolution: "NodeNext",
|
|
37
|
-
strict: true,
|
|
38
|
-
skipLibCheck: true
|
|
39
|
-
},
|
|
40
|
-
include: [
|
|
41
|
-
"projects"
|
|
42
|
-
]
|
|
43
|
-
}, null, 2);
|
|
44
|
-
const VSCODE_LAUNCH_JSON = JSON.stringify({
|
|
45
|
-
version: "0.2.0",
|
|
46
|
-
configurations: [
|
|
47
|
-
{
|
|
48
|
-
name: "Build",
|
|
49
|
-
type: "node",
|
|
50
|
-
request: "launch",
|
|
51
|
-
runtimeExecutable: "pnpm",
|
|
52
|
-
runtimeArgs: [
|
|
53
|
-
"build"
|
|
54
|
-
],
|
|
55
|
-
console: "integratedTerminal",
|
|
56
|
-
cwd: `\${workspaceFolder}`
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: "Serve / Dev",
|
|
60
|
-
type: "node",
|
|
61
|
-
request: "launch",
|
|
62
|
-
runtimeExecutable: "pnpm",
|
|
63
|
-
runtimeArgs: [
|
|
64
|
-
"dev"
|
|
65
|
-
],
|
|
66
|
-
console: "integratedTerminal",
|
|
67
|
-
cwd: `\${workspaceFolder}`
|
|
68
|
-
}
|
|
69
|
-
]
|
|
70
|
-
}, null, 2);
|
|
71
|
-
function rootPackageJson(name) {
|
|
72
|
-
return JSON.stringify({
|
|
73
|
-
name,
|
|
74
|
-
version: "0.0.1",
|
|
75
|
-
type: "module",
|
|
76
|
-
scripts: {
|
|
77
|
-
build: "forge build",
|
|
78
|
-
"build:watch": "forge build --watch",
|
|
79
|
-
dev: "flux serve"
|
|
80
|
-
},
|
|
81
|
-
devDependencies: {
|
|
82
|
-
"@decohere/terminal": _version.CREATE_VERSION,
|
|
83
|
-
typescript: "^6.0.3"
|
|
84
|
-
}
|
|
85
|
-
}, null, 2);
|
|
86
|
-
}
|
|
87
|
-
function appPackageJson(name) {
|
|
88
|
-
return JSON.stringify({
|
|
89
|
-
name: `@${name}/app`,
|
|
90
|
-
version: "0.0.1",
|
|
91
|
-
type: "module",
|
|
92
|
-
main: "src/main.ts"
|
|
93
|
-
}, null, 2);
|
|
94
|
-
}
|
|
95
|
-
function vscodeSettingsJson(name) {
|
|
96
|
-
return JSON.stringify({
|
|
97
|
-
"window.title": `${name}\${separator}\${activeEditorShort}`,
|
|
98
|
-
"window.titleSeparator": " | "
|
|
99
|
-
}, null, 2);
|
|
100
|
-
}
|
|
101
|
-
const MAIN_TS = `console.log("Hello from Decohere!");\n`;
|
|
102
|
-
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9jbGktY29yZS9zY2FmZm9sZC1maWxlcy50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDUkVBVEVfVkVSU0lPTiB9IGZyb20gXCIuLi8uLi92ZXJzaW9uLmpzXCI7XG5cbmV4cG9ydCBjb25zdCBUU0NPTkZJRyA9IEpTT04uc3RyaW5naWZ5KFxuXHR7XG5cdFx0Y29tcGlsZXJPcHRpb25zOiB7XG5cdFx0XHR0YXJnZXQ6IFwiRVMyMDIyXCIsXG5cdFx0XHRtb2R1bGU6IFwiTm9kZU5leHRcIixcblx0XHRcdG1vZHVsZVJlc29sdXRpb246IFwiTm9kZU5leHRcIixcblx0XHRcdHN0cmljdDogdHJ1ZSxcblx0XHRcdHNraXBMaWJDaGVjazogdHJ1ZSxcblx0XHR9LFxuXHRcdGluY2x1ZGU6IFtcInByb2plY3RzXCJdLFxuXHR9LFxuXHRudWxsLFxuXHQyLFxuKTtcblxuZXhwb3J0IGNvbnN0IFZTQ09ERV9MQVVOQ0hfSlNPTiA9IEpTT04uc3RyaW5naWZ5KFxuXHR7XG5cdFx0dmVyc2lvbjogXCIwLjIuMFwiLFxuXHRcdGNvbmZpZ3VyYXRpb25zOiBbXG5cdFx0XHR7XG5cdFx0XHRcdG5hbWU6IFwiQnVpbGRcIixcblx0XHRcdFx0dHlwZTogXCJub2RlXCIsXG5cdFx0XHRcdHJlcXVlc3Q6IFwibGF1bmNoXCIsXG5cdFx0XHRcdHJ1bnRpbWVFeGVjdXRhYmxlOiBcInBucG1cIixcblx0XHRcdFx0cnVudGltZUFyZ3M6IFtcImJ1aWxkXCJdLFxuXHRcdFx0XHRjb25zb2xlOiBcImludGVncmF0ZWRUZXJtaW5hbFwiLFxuXHRcdFx0XHRjd2Q6IGBcXCR7d29ya3NwYWNlRm9sZGVyfWAsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRuYW1lOiBcIlNlcnZlIC8gRGV2XCIsXG5cdFx0XHRcdHR5cGU6IFwibm9kZVwiLFxuXHRcdFx0XHRyZXF1ZXN0OiBcImxhdW5jaFwiLFxuXHRcdFx0XHRydW50aW1lRXhlY3V0YWJsZTogXCJwbnBtXCIsXG5cdFx0XHRcdHJ1bnRpbWVBcmdzOiBbXCJkZXZcIl0sXG5cdFx0XHRcdGNvbnNvbGU6IFwiaW50ZWdyYXRlZFRlcm1pbmFsXCIsXG5cdFx0XHRcdGN3ZDogYFxcJHt3b3Jrc3BhY2VGb2xkZXJ9YCxcblx0XHRcdH0sXG5cdFx0XSxcblx0fSxcblx0bnVsbCxcblx0Mixcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiByb290UGFja2FnZUpzb24obmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KFxuXHRcdHtcblx0XHRcdG5hbWUsXG5cdFx0XHR2ZXJzaW9uOiBcIjAuMC4xXCIsXG5cdFx0XHR0eXBlOiBcIm1vZHVsZVwiLFxuXHRcdFx0c2NyaXB0czoge1xuXHRcdFx0XHRidWlsZDogXCJmb3JnZSBidWlsZFwiLFxuXHRcdFx0XHRcImJ1aWxkOndhdGNoXCI6IFwiZm9yZ2UgYnVpbGQgLS13YXRjaFwiLFxuXHRcdFx0XHRkZXY6IFwiZmx1eCBzZXJ2ZVwiLFxuXHRcdFx0fSxcblx0XHRcdGRldkRlcGVuZGVuY2llczoge1xuXHRcdFx0XHRcIkBkZWNvaGVyZS90ZXJtaW5hbFwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFx0dHlwZXNjcmlwdDogXCJeNi4wLjNcIixcblx0XHRcdH0sXG5cdFx0fSxcblx0XHRudWxsLFxuXHRcdDIsXG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBQYWNrYWdlSnNvbihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkoXG5cdFx0e1xuXHRcdFx0bmFtZTogYEAke25hbWV9L2FwcGAsXG5cdFx0XHR2ZXJzaW9uOiBcIjAuMC4xXCIsXG5cdFx0XHR0eXBlOiBcIm1vZHVsZVwiLFxuXHRcdFx0bWFpbjogXCJzcmMvbWFpbi50c1wiLFxuXHRcdH0sXG5cdFx0bnVsbCxcblx0XHQyLFxuXHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdnNjb2RlU2V0dGluZ3NKc29uKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiBKU09OLnN0cmluZ2lmeShcblx0XHR7XG5cdFx0XHRcIndpbmRvdy50aXRsZVwiOiBgJHtuYW1lfVxcJHtzZXBhcmF0b3J9XFwke2FjdGl2ZUVkaXRvclNob3J0fWAsXG5cdFx0XHRcIndpbmRvdy50aXRsZVNlcGFyYXRvclwiOiBcIiB8IFwiLFxuXHRcdH0sXG5cdFx0bnVsbCxcblx0XHQyLFxuXHQpO1xufVxuXG5leHBvcnQgY29uc3QgTUFJTl9UUyA9IGBjb25zb2xlLmxvZyhcIkhlbGxvIGZyb20gRGVjb2hlcmUhXCIpO1xcbmA7XG4iXSwibmFtZXMiOlsiTUFJTl9UUyIsIlRTQ09ORklHIiwiVlNDT0RFX0xBVU5DSF9KU09OIiwiYXBwUGFja2FnZUpzb24iLCJyb290UGFja2FnZUpzb24iLCJ2c2NvZGVTZXR0aW5nc0pzb24iLCJKU09OIiwic3RyaW5naWZ5IiwiY29tcGlsZXJPcHRpb25zIiwidGFyZ2V0IiwibW9kdWxlIiwibW9kdWxlUmVzb2x1dGlvbiIsInN0cmljdCIsInNraXBMaWJDaGVjayIsImluY2x1ZGUiLCJ2ZXJzaW9uIiwiY29uZmlndXJhdGlvbnMiLCJuYW1lIiwidHlwZSIsInJlcXVlc3QiLCJydW50aW1lRXhlY3V0YWJsZSIsInJ1bnRpbWVBcmdzIiwiY29uc29sZSIsImN3ZCIsInNjcmlwdHMiLCJidWlsZCIsImRldiIsImRldkRlcGVuZGVuY2llcyIsIkNSRUFURV9WRVJTSU9OIiwidHlwZXNjcmlwdCIsIm1haW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBMEZhQTtlQUFBQTs7UUF4RkFDO2VBQUFBOztRQWVBQztlQUFBQTs7UUFpREdDO2VBQUFBOztRQXJCQUM7ZUFBQUE7O1FBa0NBQztlQUFBQTs7O3lCQS9FZTtBQUV4QixNQUFNSixXQUFXSyxLQUFLQyxTQUFTLENBQ3JDO0lBQ0NDLGlCQUFpQjtRQUNoQkMsUUFBUTtRQUNSQyxRQUFRO1FBQ1JDLGtCQUFrQjtRQUNsQkMsUUFBUTtRQUNSQyxjQUFjO0lBQ2Y7SUFDQUMsU0FBUztRQUFDO0tBQVc7QUFDdEIsR0FDQSxNQUNBO0FBR00sTUFBTVoscUJBQXFCSSxLQUFLQyxTQUFTLENBQy9DO0lBQ0NRLFNBQVM7SUFDVEMsZ0JBQWdCO1FBQ2Y7WUFDQ0MsTUFBTTtZQUNOQyxNQUFNO1lBQ05DLFNBQVM7WUFDVEMsbUJBQW1CO1lBQ25CQyxhQUFhO2dCQUFDO2FBQVE7WUFDdEJDLFNBQVM7WUFDVEMsS0FBSyxDQUFDLG1CQUFtQixDQUFDO1FBQzNCO1FBQ0E7WUFDQ04sTUFBTTtZQUNOQyxNQUFNO1lBQ05DLFNBQVM7WUFDVEMsbUJBQW1CO1lBQ25CQyxhQUFhO2dCQUFDO2FBQU07WUFDcEJDLFNBQVM7WUFDVEMsS0FBSyxDQUFDLG1CQUFtQixDQUFDO1FBQzNCO0tBQ0E7QUFDRixHQUNBLE1BQ0E7QUFHTSxTQUFTbkIsZ0JBQWdCYSxJQUFZO0lBQzNDLE9BQU9YLEtBQUtDLFNBQVMsQ0FDcEI7UUFDQ1U7UUFDQUYsU0FBUztRQUNURyxNQUFNO1FBQ05NLFNBQVM7WUFDUkMsT0FBTztZQUNQLGVBQWU7WUFDZkMsS0FBSztRQUNOO1FBQ0FDLGlCQUFpQjtZQUNoQixzQkFBc0JDLHVCQUFjO1lBQ3BDQyxZQUFZO1FBQ2I7SUFDRCxHQUNBLE1BQ0E7QUFFRjtBQUVPLFNBQVMxQixlQUFlYyxJQUFZO0lBQzFDLE9BQU9YLEtBQUtDLFNBQVMsQ0FDcEI7UUFDQ1UsTUFBTSxDQUFDLENBQUMsRUFBRUEsS0FBSyxJQUFJLENBQUM7UUFDcEJGLFNBQVM7UUFDVEcsTUFBTTtRQUNOWSxNQUFNO0lBQ1AsR0FDQSxNQUNBO0FBRUY7QUFFTyxTQUFTekIsbUJBQW1CWSxJQUFZO0lBQzlDLE9BQU9YLEtBQUtDLFNBQVMsQ0FDcEI7UUFDQyxnQkFBZ0IsR0FBR1UsS0FBSyxrQ0FBa0MsQ0FBQztRQUMzRCx5QkFBeUI7SUFDMUIsR0FDQSxNQUNBO0FBRUY7QUFFTyxNQUFNakIsVUFBVSxDQUFDLHNDQUFzQyxDQUFDIn0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "devcontainerFeature", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return devcontainerFeature;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _promises = require("node:fs/promises");
|
|
12
|
-
const _nodepath = require("node:path");
|
|
13
|
-
const _composemodel = require("../../domain/compose.model.js");
|
|
14
|
-
const _devcontainermodel = require("../../domain/devcontainer.model.js");
|
|
15
|
-
async function render(ctx) {
|
|
16
|
-
const model = ctx.models.get(_devcontainermodel.DEVCONTAINER_KEY);
|
|
17
|
-
if (!model) return ctx;
|
|
18
|
-
const dir = (0, _nodepath.join)(ctx.targetDir, ".devcontainer");
|
|
19
|
-
await (0, _promises.mkdir)(dir, {
|
|
20
|
-
recursive: true
|
|
21
|
-
});
|
|
22
|
-
await (0, _promises.writeFile)((0, _nodepath.join)(dir, "devcontainer.json"), model.render());
|
|
23
|
-
const compose = ctx.models.get(_composemodel.COMPOSE_KEY);
|
|
24
|
-
if (compose) {
|
|
25
|
-
await (0, _promises.writeFile)((0, _nodepath.join)(dir, "docker-compose.yml"), compose.render());
|
|
26
|
-
const dockerfile = model.dockerfile;
|
|
27
|
-
if (dockerfile) {
|
|
28
|
-
await (0, _promises.writeFile)((0, _nodepath.join)(dir, "Dockerfile"), dockerfile.render());
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return ctx;
|
|
32
|
-
}
|
|
33
|
-
const devcontainerFeature = {
|
|
34
|
-
name: "devcontainer",
|
|
35
|
-
render
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9kZXZjb250YWluZXIvZmVhdHVyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBta2Rpciwgd3JpdGVGaWxlIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDT01QT1NFX0tFWSB9IGZyb20gXCIuLi8uLi9kb21haW4vY29tcG9zZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgREVWQ09OVEFJTkVSX0tFWSB9IGZyb20gXCIuLi8uLi9kb21haW4vZGV2Y29udGFpbmVyLm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEZlYXR1cmUsIFNjYWZmb2xkQ29udGV4dCB9IGZyb20gXCIuLi8uLi9kb21haW4vaW5kZXguanNcIjtcblxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyKGN0eDogU2NhZmZvbGRDb250ZXh0KTogUHJvbWlzZTxTY2FmZm9sZENvbnRleHQ+IHtcblx0Y29uc3QgbW9kZWwgPSBjdHgubW9kZWxzLmdldChERVZDT05UQUlORVJfS0VZKTtcblx0aWYgKCFtb2RlbCkgcmV0dXJuIGN0eDtcblxuXHRjb25zdCBkaXIgPSBqb2luKGN0eC50YXJnZXREaXIsIFwiLmRldmNvbnRhaW5lclwiKTtcblx0YXdhaXQgbWtkaXIoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0YXdhaXQgd3JpdGVGaWxlKGpvaW4oZGlyLCBcImRldmNvbnRhaW5lci5qc29uXCIpLCBtb2RlbC5yZW5kZXIoKSk7XG5cblx0Y29uc3QgY29tcG9zZSA9IGN0eC5tb2RlbHMuZ2V0KENPTVBPU0VfS0VZKTtcblx0aWYgKGNvbXBvc2UpIHtcblx0XHRhd2FpdCB3cml0ZUZpbGUoam9pbihkaXIsIFwiZG9ja2VyLWNvbXBvc2UueW1sXCIpLCBjb21wb3NlLnJlbmRlcigpKTtcblx0XHRjb25zdCBkb2NrZXJmaWxlID0gbW9kZWwuZG9ja2VyZmlsZTtcblx0XHRpZiAoZG9ja2VyZmlsZSkge1xuXHRcdFx0YXdhaXQgd3JpdGVGaWxlKGpvaW4oZGlyLCBcIkRvY2tlcmZpbGVcIiksIGRvY2tlcmZpbGUucmVuZGVyKCkpO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBjdHg7XG59XG5cbmV4cG9ydCBjb25zdCBkZXZjb250YWluZXJGZWF0dXJlOiBGZWF0dXJlID0ge1xuXHRuYW1lOiBcImRldmNvbnRhaW5lclwiLFxuXHRyZW5kZXIsXG59O1xuIl0sIm5hbWVzIjpbImRldmNvbnRhaW5lckZlYXR1cmUiLCJyZW5kZXIiLCJjdHgiLCJtb2RlbCIsIm1vZGVscyIsImdldCIsIkRFVkNPTlRBSU5FUl9LRVkiLCJkaXIiLCJqb2luIiwidGFyZ2V0RGlyIiwibWtkaXIiLCJyZWN1cnNpdmUiLCJ3cml0ZUZpbGUiLCJjb21wb3NlIiwiQ09NUE9TRV9LRVkiLCJkb2NrZXJmaWxlIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEwQmFBOzs7ZUFBQUE7OzswQkExQm9COzBCQUNaOzhCQUNPO21DQUNLO0FBR2pDLGVBQWVDLE9BQU9DLEdBQW9CO0lBQ3pDLE1BQU1DLFFBQVFELElBQUlFLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDQyxtQ0FBZ0I7SUFDN0MsSUFBSSxDQUFDSCxPQUFPLE9BQU9EO0lBRW5CLE1BQU1LLE1BQU1DLElBQUFBLGNBQUksRUFBQ04sSUFBSU8sU0FBUyxFQUFFO0lBQ2hDLE1BQU1DLElBQUFBLGVBQUssRUFBQ0gsS0FBSztRQUFFSSxXQUFXO0lBQUs7SUFDbkMsTUFBTUMsSUFBQUEsbUJBQVMsRUFBQ0osSUFBQUEsY0FBSSxFQUFDRCxLQUFLLHNCQUFzQkosTUFBTUYsTUFBTTtJQUU1RCxNQUFNWSxVQUFVWCxJQUFJRSxNQUFNLENBQUNDLEdBQUcsQ0FBQ1MseUJBQVc7SUFDMUMsSUFBSUQsU0FBUztRQUNaLE1BQU1ELElBQUFBLG1CQUFTLEVBQUNKLElBQUFBLGNBQUksRUFBQ0QsS0FBSyx1QkFBdUJNLFFBQVFaLE1BQU07UUFDL0QsTUFBTWMsYUFBYVosTUFBTVksVUFBVTtRQUNuQyxJQUFJQSxZQUFZO1lBQ2YsTUFBTUgsSUFBQUEsbUJBQVMsRUFBQ0osSUFBQUEsY0FBSSxFQUFDRCxLQUFLLGVBQWVRLFdBQVdkLE1BQU07UUFDM0Q7SUFDRDtJQUVBLE9BQU9DO0FBQ1I7QUFFTyxNQUFNRixzQkFBK0I7SUFDM0NnQixNQUFNO0lBQ05mO0FBQ0QifQ==
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "finalizeFeature", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return finalizeFeature;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _nodepath = require("node:path");
|
|
12
|
-
const _interop = require("@decohere/nexus/interop");
|
|
13
|
-
const _index = require("../../domain/index.js");
|
|
14
|
-
async function finalize(ctx) {
|
|
15
|
-
let pm = (0, _interop.detectPackageManager)(ctx.targetDir);
|
|
16
|
-
if (pm == null) {
|
|
17
|
-
pm = await (0, _interop.promptForPackageManager)();
|
|
18
|
-
}
|
|
19
|
-
let shouldInstall;
|
|
20
|
-
if (ctx.opts.yes) {
|
|
21
|
-
shouldInstall = true;
|
|
22
|
-
} else {
|
|
23
|
-
const answer = await (0, _index.ask)("\nInstall dependencies now? [yes/no] (yes): ", "yes");
|
|
24
|
-
shouldInstall = answer.toLowerCase() !== "no";
|
|
25
|
-
}
|
|
26
|
-
if (shouldInstall) {
|
|
27
|
-
console.log(`\nScaffolded ${ctx.projectName}. Installing dependencies...\n`);
|
|
28
|
-
await pm.install({
|
|
29
|
-
cwd: ctx.targetDir
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
console.log(`\nDone! ${shouldInstall ? "Next" : "To get started:"} steps:\n`);
|
|
33
|
-
if ((0, _nodepath.basename)(ctx.targetDir) !== ctx.targetDir) {
|
|
34
|
-
console.log(` cd ${ctx.projectName}`);
|
|
35
|
-
}
|
|
36
|
-
if (!shouldInstall) {
|
|
37
|
-
console.log(` ${pm.name} install`);
|
|
38
|
-
}
|
|
39
|
-
console.log(" pnpm build # forge build");
|
|
40
|
-
console.log(" pnpm dev # flux serve\n");
|
|
41
|
-
return ctx;
|
|
42
|
-
}
|
|
43
|
-
const finalizeFeature = {
|
|
44
|
-
name: "finalize",
|
|
45
|
-
finalize
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9maW5hbGl6ZS9mZWF0dXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZGV0ZWN0UGFja2FnZU1hbmFnZXIsIHByb21wdEZvclBhY2thZ2VNYW5hZ2VyIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pbnRlcm9wXCI7XG5pbXBvcnQgeyBhc2ssIHR5cGUgRmVhdHVyZSwgdHlwZSBTY2FmZm9sZENvbnRleHQgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2luZGV4LmpzXCI7XG5cbmFzeW5jIGZ1bmN0aW9uIGZpbmFsaXplKGN0eDogU2NhZmZvbGRDb250ZXh0KTogUHJvbWlzZTxTY2FmZm9sZENvbnRleHQ+IHtcblx0bGV0IHBtID0gZGV0ZWN0UGFja2FnZU1hbmFnZXIoY3R4LnRhcmdldERpcik7XG5cdGlmIChwbSA9PSBudWxsKSB7XG5cdFx0cG0gPSBhd2FpdCBwcm9tcHRGb3JQYWNrYWdlTWFuYWdlcigpO1xuXHR9XG5cblx0bGV0IHNob3VsZEluc3RhbGw6IGJvb2xlYW47XG5cdGlmIChjdHgub3B0cy55ZXMpIHtcblx0XHRzaG91bGRJbnN0YWxsID0gdHJ1ZTtcblx0fSBlbHNlIHtcblx0XHRjb25zdCBhbnN3ZXIgPSBhd2FpdCBhc2soXCJcXG5JbnN0YWxsIGRlcGVuZGVuY2llcyBub3c/IFt5ZXMvbm9dICh5ZXMpOiBcIiwgXCJ5ZXNcIik7XG5cdFx0c2hvdWxkSW5zdGFsbCA9IGFuc3dlci50b0xvd2VyQ2FzZSgpICE9PSBcIm5vXCI7XG5cdH1cblxuXHRpZiAoc2hvdWxkSW5zdGFsbCkge1xuXHRcdGNvbnNvbGUubG9nKGBcXG5TY2FmZm9sZGVkICR7Y3R4LnByb2plY3ROYW1lfS4gSW5zdGFsbGluZyBkZXBlbmRlbmNpZXMuLi5cXG5gKTtcblx0XHRhd2FpdCBwbS5pbnN0YWxsKHsgY3dkOiBjdHgudGFyZ2V0RGlyIH0pO1xuXHR9XG5cblx0Y29uc29sZS5sb2coYFxcbkRvbmUhICR7c2hvdWxkSW5zdGFsbCA/IFwiTmV4dFwiIDogXCJUbyBnZXQgc3RhcnRlZDpcIn0gc3RlcHM6XFxuYCk7XG5cdGlmIChiYXNlbmFtZShjdHgudGFyZ2V0RGlyKSAhPT0gY3R4LnRhcmdldERpcikge1xuXHRcdGNvbnNvbGUubG9nKGAgIGNkICR7Y3R4LnByb2plY3ROYW1lfWApO1xuXHR9XG5cdGlmICghc2hvdWxkSW5zdGFsbCkge1xuXHRcdGNvbnNvbGUubG9nKGAgICR7cG0ubmFtZX0gaW5zdGFsbGApO1xuXHR9XG5cdGNvbnNvbGUubG9nKFwiICBwbnBtIGJ1aWxkICAgICAjIGZvcmdlIGJ1aWxkXCIpO1xuXHRjb25zb2xlLmxvZyhcIiAgcG5wbSBkZXYgICAgICAgIyBmbHV4IHNlcnZlXFxuXCIpO1xuXHRyZXR1cm4gY3R4O1xufVxuXG5leHBvcnQgY29uc3QgZmluYWxpemVGZWF0dXJlOiBGZWF0dXJlID0ge1xuXHRuYW1lOiBcImZpbmFsaXplXCIsXG5cdGZpbmFsaXplLFxufTtcbiJdLCJuYW1lcyI6WyJmaW5hbGl6ZUZlYXR1cmUiLCJmaW5hbGl6ZSIsImN0eCIsInBtIiwiZGV0ZWN0UGFja2FnZU1hbmFnZXIiLCJ0YXJnZXREaXIiLCJwcm9tcHRGb3JQYWNrYWdlTWFuYWdlciIsInNob3VsZEluc3RhbGwiLCJvcHRzIiwieWVzIiwiYW5zd2VyIiwiYXNrIiwidG9Mb3dlckNhc2UiLCJjb25zb2xlIiwibG9nIiwicHJvamVjdE5hbWUiLCJpbnN0YWxsIiwiY3dkIiwiYmFzZW5hbWUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7OytCQW1DYUE7OztlQUFBQTs7OzBCQW5DWTt5QkFDcUM7dUJBQ047QUFFeEQsZUFBZUMsU0FBU0MsR0FBb0I7SUFDM0MsSUFBSUMsS0FBS0MsSUFBQUEsNkJBQW9CLEVBQUNGLElBQUlHLFNBQVM7SUFDM0MsSUFBSUYsTUFBTSxNQUFNO1FBQ2ZBLEtBQUssTUFBTUcsSUFBQUEsZ0NBQXVCO0lBQ25DO0lBRUEsSUFBSUM7SUFDSixJQUFJTCxJQUFJTSxJQUFJLENBQUNDLEdBQUcsRUFBRTtRQUNqQkYsZ0JBQWdCO0lBQ2pCLE9BQU87UUFDTixNQUFNRyxTQUFTLE1BQU1DLElBQUFBLFVBQUcsRUFBQyxnREFBZ0Q7UUFDekVKLGdCQUFnQkcsT0FBT0UsV0FBVyxPQUFPO0lBQzFDO0lBRUEsSUFBSUwsZUFBZTtRQUNsQk0sUUFBUUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFWixJQUFJYSxXQUFXLENBQUMsOEJBQThCLENBQUM7UUFDM0UsTUFBTVosR0FBR2EsT0FBTyxDQUFDO1lBQUVDLEtBQUtmLElBQUlHLFNBQVM7UUFBQztJQUN2QztJQUVBUSxRQUFRQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUVQLGdCQUFnQixTQUFTLGtCQUFrQixTQUFTLENBQUM7SUFDNUUsSUFBSVcsSUFBQUEsa0JBQVEsRUFBQ2hCLElBQUlHLFNBQVMsTUFBTUgsSUFBSUcsU0FBUyxFQUFFO1FBQzlDUSxRQUFRQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUVaLElBQUlhLFdBQVcsRUFBRTtJQUN0QztJQUNBLElBQUksQ0FBQ1IsZUFBZTtRQUNuQk0sUUFBUUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFWCxHQUFHZ0IsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNuQztJQUNBTixRQUFRQyxHQUFHLENBQUM7SUFDWkQsUUFBUUMsR0FBRyxDQUFDO0lBQ1osT0FBT1o7QUFDUjtBQUVPLE1BQU1GLGtCQUEyQjtJQUN2Q21CLE1BQU07SUFDTmxCO0FBQ0QifQ==
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "postgresqlFeature", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return postgresqlFeature;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _nodecrypto = require("node:crypto");
|
|
12
|
-
const _promises = require("node:fs/promises");
|
|
13
|
-
const _nodepath = require("node:path");
|
|
14
|
-
const _composemodel = require("../../domain/compose.model.js");
|
|
15
|
-
const _devcontainermodel = require("../../domain/devcontainer.model.js");
|
|
16
|
-
const _models = require("./models.js");
|
|
17
|
-
const enabled = (ctx)=>ctx.opts.database === "typeorm";
|
|
18
|
-
async function configure(ctx) {
|
|
19
|
-
const devcontainer = ctx.models.get(_devcontainermodel.DEVCONTAINER_KEY);
|
|
20
|
-
const nodeModulesVolume = `${ctx.projectName}-node-modules`;
|
|
21
|
-
const db = `${ctx.projectName}_dev`;
|
|
22
|
-
const user = "postgres";
|
|
23
|
-
const password = (0, _nodecrypto.randomBytes)(16).toString("hex");
|
|
24
|
-
const compose = new _composemodel.ComposeModel().addService("devcontainer", {
|
|
25
|
-
build: ".",
|
|
26
|
-
volumes: [
|
|
27
|
-
`\${HOME}/.npm/${ctx.projectName}:/home/node/.npm`,
|
|
28
|
-
`${nodeModulesVolume}:/workspace/node_modules`
|
|
29
|
-
],
|
|
30
|
-
environment: {
|
|
31
|
-
NPM_CONFIG_USERCONFIG: "/home/node/.npm/.npmrc"
|
|
32
|
-
},
|
|
33
|
-
command: "sleep infinity"
|
|
34
|
-
}).addService("postgres", {
|
|
35
|
-
image: "postgres:16",
|
|
36
|
-
restart: "unless-stopped",
|
|
37
|
-
environment: {
|
|
38
|
-
// biome-ignore lint/suspicious/noTemplateCurlyInString: Docker Compose reads these from .env
|
|
39
|
-
POSTGRES_DB: "${POSTGRES_DB}",
|
|
40
|
-
// biome-ignore lint/suspicious/noTemplateCurlyInString: Docker Compose reads these from .env
|
|
41
|
-
POSTGRES_USER: "${POSTGRES_USER}",
|
|
42
|
-
// biome-ignore lint/suspicious/noTemplateCurlyInString: Docker Compose reads these from .env
|
|
43
|
-
POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
|
|
44
|
-
},
|
|
45
|
-
ports: [
|
|
46
|
-
"5432:5432"
|
|
47
|
-
],
|
|
48
|
-
volumes: [
|
|
49
|
-
"postgres-data:/var/lib/postgresql/data"
|
|
50
|
-
]
|
|
51
|
-
}).addVolume(nodeModulesVolume).addVolume("postgres-data");
|
|
52
|
-
devcontainer?.useCompose();
|
|
53
|
-
const creds = {
|
|
54
|
-
db,
|
|
55
|
-
user,
|
|
56
|
-
password
|
|
57
|
-
};
|
|
58
|
-
return {
|
|
59
|
-
...ctx,
|
|
60
|
-
models: ctx.models.set(_composemodel.COMPOSE_KEY, compose).set(_models.POSTGRES_CREDS_KEY, creds)
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
async function render(ctx) {
|
|
64
|
-
const creds = ctx.models.get(_models.POSTGRES_CREDS_KEY);
|
|
65
|
-
if (!creds) return ctx;
|
|
66
|
-
const devcontainerDir = (0, _nodepath.join)(ctx.targetDir, ".devcontainer");
|
|
67
|
-
await (0, _promises.mkdir)(devcontainerDir, {
|
|
68
|
-
recursive: true
|
|
69
|
-
});
|
|
70
|
-
const envContent = `POSTGRES_DB=${creds.db}\nPOSTGRES_USER=${creds.user}\nPOSTGRES_PASSWORD=${creds.password}\n`;
|
|
71
|
-
await (0, _promises.writeFile)((0, _nodepath.join)(devcontainerDir, ".env"), envContent);
|
|
72
|
-
return ctx;
|
|
73
|
-
}
|
|
74
|
-
const postgresqlFeature = {
|
|
75
|
-
name: "postgresql",
|
|
76
|
-
enabled,
|
|
77
|
-
configure,
|
|
78
|
-
render
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9wb3N0Z3Jlc3FsL2ZlYXR1cmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCB7IG1rZGlyLCB3cml0ZUZpbGUgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IENPTVBPU0VfS0VZLCBDb21wb3NlTW9kZWwgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2NvbXBvc2UubW9kZWwuanNcIjtcbmltcG9ydCB7IERFVkNPTlRBSU5FUl9LRVkgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2RldmNvbnRhaW5lci5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlLCBTY2FmZm9sZENvbnRleHQgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBQT1NUR1JFU19DUkVEU19LRVkgfSBmcm9tIFwiLi9tb2RlbHMuanNcIjtcblxuY29uc3QgZW5hYmxlZCA9IChjdHg6IFNjYWZmb2xkQ29udGV4dCkgPT4gY3R4Lm9wdHMuZGF0YWJhc2UgPT09IFwidHlwZW9ybVwiO1xuXG5hc3luYyBmdW5jdGlvbiBjb25maWd1cmUoY3R4OiBTY2FmZm9sZENvbnRleHQpOiBQcm9taXNlPFNjYWZmb2xkQ29udGV4dD4ge1xuXHRjb25zdCBkZXZjb250YWluZXIgPSBjdHgubW9kZWxzLmdldChERVZDT05UQUlORVJfS0VZKTtcblx0Y29uc3Qgbm9kZU1vZHVsZXNWb2x1bWUgPSBgJHtjdHgucHJvamVjdE5hbWV9LW5vZGUtbW9kdWxlc2A7XG5cblx0Y29uc3QgZGIgPSBgJHtjdHgucHJvamVjdE5hbWV9X2RldmA7XG5cdGNvbnN0IHVzZXIgPSBcInBvc3RncmVzXCI7XG5cdGNvbnN0IHBhc3N3b3JkID0gcmFuZG9tQnl0ZXMoMTYpLnRvU3RyaW5nKFwiaGV4XCIpO1xuXG5cdGNvbnN0IGNvbXBvc2UgPSBuZXcgQ29tcG9zZU1vZGVsKClcblx0XHQuYWRkU2VydmljZShcImRldmNvbnRhaW5lclwiLCB7XG5cdFx0XHRidWlsZDogXCIuXCIsXG5cdFx0XHR2b2x1bWVzOiBbXG5cdFx0XHRcdGBcXCR7SE9NRX0vLm5wbS8ke2N0eC5wcm9qZWN0TmFtZX06L2hvbWUvbm9kZS8ubnBtYCxcblx0XHRcdFx0YCR7bm9kZU1vZHVsZXNWb2x1bWV9Oi93b3Jrc3BhY2Uvbm9kZV9tb2R1bGVzYCxcblx0XHRcdF0sXG5cdFx0XHRlbnZpcm9ubWVudDoge1xuXHRcdFx0XHROUE1fQ09ORklHX1VTRVJDT05GSUc6IFwiL2hvbWUvbm9kZS8ubnBtLy5ucG1yY1wiLFxuXHRcdFx0fSxcblx0XHRcdGNvbW1hbmQ6IFwic2xlZXAgaW5maW5pdHlcIixcblx0XHR9KVxuXHRcdC5hZGRTZXJ2aWNlKFwicG9zdGdyZXNcIiwge1xuXHRcdFx0aW1hZ2U6IFwicG9zdGdyZXM6MTZcIixcblx0XHRcdHJlc3RhcnQ6IFwidW5sZXNzLXN0b3BwZWRcIixcblx0XHRcdGVudmlyb25tZW50OiB7XG5cdFx0XHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9UZW1wbGF0ZUN1cmx5SW5TdHJpbmc6IERvY2tlciBDb21wb3NlIHJlYWRzIHRoZXNlIGZyb20gLmVudlxuXHRcdFx0XHRQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCfVwiLFxuXHRcdFx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vVGVtcGxhdGVDdXJseUluU3RyaW5nOiBEb2NrZXIgQ29tcG9zZSByZWFkcyB0aGVzZSBmcm9tIC5lbnZcblx0XHRcdFx0UE9TVEdSRVNfVVNFUjogXCIke1BPU1RHUkVTX1VTRVJ9XCIsXG5cdFx0XHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9UZW1wbGF0ZUN1cmx5SW5TdHJpbmc6IERvY2tlciBDb21wb3NlIHJlYWRzIHRoZXNlIGZyb20gLmVudlxuXHRcdFx0XHRQT1NUR1JFU19QQVNTV09SRDogXCIke1BPU1RHUkVTX1BBU1NXT1JEfVwiLFxuXHRcdFx0fSxcblx0XHRcdHBvcnRzOiBbXCI1NDMyOjU0MzJcIl0sXG5cdFx0XHR2b2x1bWVzOiBbXCJwb3N0Z3Jlcy1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YVwiXSxcblx0XHR9KVxuXHRcdC5hZGRWb2x1bWUobm9kZU1vZHVsZXNWb2x1bWUpXG5cdFx0LmFkZFZvbHVtZShcInBvc3RncmVzLWRhdGFcIik7XG5cblx0ZGV2Y29udGFpbmVyPy51c2VDb21wb3NlKCk7XG5cblx0Y29uc3QgY3JlZHMgPSB7IGRiLCB1c2VyLCBwYXNzd29yZCB9O1xuXHRyZXR1cm4ge1xuXHRcdC4uLmN0eCxcblx0XHRtb2RlbHM6IGN0eC5tb2RlbHMuc2V0KENPTVBPU0VfS0VZLCBjb21wb3NlKS5zZXQoUE9TVEdSRVNfQ1JFRFNfS0VZLCBjcmVkcyksXG5cdH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlcihjdHg6IFNjYWZmb2xkQ29udGV4dCk6IFByb21pc2U8U2NhZmZvbGRDb250ZXh0PiB7XG5cdGNvbnN0IGNyZWRzID0gY3R4Lm1vZGVscy5nZXQoUE9TVEdSRVNfQ1JFRFNfS0VZKTtcblx0aWYgKCFjcmVkcykgcmV0dXJuIGN0eDtcblxuXHRjb25zdCBkZXZjb250YWluZXJEaXIgPSBqb2luKGN0eC50YXJnZXREaXIsIFwiLmRldmNvbnRhaW5lclwiKTtcblx0YXdhaXQgbWtkaXIoZGV2Y29udGFpbmVyRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0Y29uc3QgZW52Q29udGVudCA9IGBQT1NUR1JFU19EQj0ke2NyZWRzLmRifVxcblBPU1RHUkVTX1VTRVI9JHtjcmVkcy51c2VyfVxcblBPU1RHUkVTX1BBU1NXT1JEPSR7Y3JlZHMucGFzc3dvcmR9XFxuYDtcblx0YXdhaXQgd3JpdGVGaWxlKGpvaW4oZGV2Y29udGFpbmVyRGlyLCBcIi5lbnZcIiksIGVudkNvbnRlbnQpO1xuXG5cdHJldHVybiBjdHg7XG59XG5cbmV4cG9ydCBjb25zdCBwb3N0Z3Jlc3FsRmVhdHVyZTogRmVhdHVyZSA9IHtcblx0bmFtZTogXCJwb3N0Z3Jlc3FsXCIsXG5cdGVuYWJsZWQsXG5cdGNvbmZpZ3VyZSxcblx0cmVuZGVyLFxufTtcbiJdLCJuYW1lcyI6WyJwb3N0Z3Jlc3FsRmVhdHVyZSIsImVuYWJsZWQiLCJjdHgiLCJvcHRzIiwiZGF0YWJhc2UiLCJjb25maWd1cmUiLCJkZXZjb250YWluZXIiLCJtb2RlbHMiLCJnZXQiLCJERVZDT05UQUlORVJfS0VZIiwibm9kZU1vZHVsZXNWb2x1bWUiLCJwcm9qZWN0TmFtZSIsImRiIiwidXNlciIsInBhc3N3b3JkIiwicmFuZG9tQnl0ZXMiLCJ0b1N0cmluZyIsImNvbXBvc2UiLCJDb21wb3NlTW9kZWwiLCJhZGRTZXJ2aWNlIiwiYnVpbGQiLCJ2b2x1bWVzIiwiZW52aXJvbm1lbnQiLCJOUE1fQ09ORklHX1VTRVJDT05GSUciLCJjb21tYW5kIiwiaW1hZ2UiLCJyZXN0YXJ0IiwiUE9TVEdSRVNfREIiLCJQT1NUR1JFU19VU0VSIiwiUE9TVEdSRVNfUEFTU1dPUkQiLCJwb3J0cyIsImFkZFZvbHVtZSIsInVzZUNvbXBvc2UiLCJjcmVkcyIsInNldCIsIkNPTVBPU0VfS0VZIiwiUE9TVEdSRVNfQ1JFRFNfS0VZIiwicmVuZGVyIiwiZGV2Y29udGFpbmVyRGlyIiwiam9pbiIsInRhcmdldERpciIsIm1rZGlyIiwicmVjdXJzaXZlIiwiZW52Q29udGVudCIsIndyaXRlRmlsZSIsIm5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBb0VhQTs7O2VBQUFBOzs7NEJBcEVlOzBCQUNLOzBCQUNaOzhCQUNxQjttQ0FDVDt3QkFFRTtBQUVuQyxNQUFNQyxVQUFVLENBQUNDLE1BQXlCQSxJQUFJQyxJQUFJLENBQUNDLFFBQVEsS0FBSztBQUVoRSxlQUFlQyxVQUFVSCxHQUFvQjtJQUM1QyxNQUFNSSxlQUFlSixJQUFJSyxNQUFNLENBQUNDLEdBQUcsQ0FBQ0MsbUNBQWdCO0lBQ3BELE1BQU1DLG9CQUFvQixHQUFHUixJQUFJUyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBRTNELE1BQU1DLEtBQUssR0FBR1YsSUFBSVMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUNuQyxNQUFNRSxPQUFPO0lBQ2IsTUFBTUMsV0FBV0MsSUFBQUEsdUJBQVcsRUFBQyxJQUFJQyxRQUFRLENBQUM7SUFFMUMsTUFBTUMsVUFBVSxJQUFJQywwQkFBWSxHQUM5QkMsVUFBVSxDQUFDLGdCQUFnQjtRQUMzQkMsT0FBTztRQUNQQyxTQUFTO1lBQ1IsQ0FBQyxjQUFjLEVBQUVuQixJQUFJUyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7WUFDbEQsR0FBR0Qsa0JBQWtCLHdCQUF3QixDQUFDO1NBQzlDO1FBQ0RZLGFBQWE7WUFDWkMsdUJBQXVCO1FBQ3hCO1FBQ0FDLFNBQVM7SUFDVixHQUNDTCxVQUFVLENBQUMsWUFBWTtRQUN2Qk0sT0FBTztRQUNQQyxTQUFTO1FBQ1RKLGFBQWE7WUFDWiw2RkFBNkY7WUFDN0ZLLGFBQWE7WUFDYiw2RkFBNkY7WUFDN0ZDLGVBQWU7WUFDZiw2RkFBNkY7WUFDN0ZDLG1CQUFtQjtRQUNwQjtRQUNBQyxPQUFPO1lBQUM7U0FBWTtRQUNwQlQsU0FBUztZQUFDO1NBQXlDO0lBQ3BELEdBQ0NVLFNBQVMsQ0FBQ3JCLG1CQUNWcUIsU0FBUyxDQUFDO0lBRVp6QixjQUFjMEI7SUFFZCxNQUFNQyxRQUFRO1FBQUVyQjtRQUFJQztRQUFNQztJQUFTO0lBQ25DLE9BQU87UUFDTixHQUFHWixHQUFHO1FBQ05LLFFBQVFMLElBQUlLLE1BQU0sQ0FBQzJCLEdBQUcsQ0FBQ0MseUJBQVcsRUFBRWxCLFNBQVNpQixHQUFHLENBQUNFLDBCQUFrQixFQUFFSDtJQUN0RTtBQUNEO0FBRUEsZUFBZUksT0FBT25DLEdBQW9CO0lBQ3pDLE1BQU0rQixRQUFRL0IsSUFBSUssTUFBTSxDQUFDQyxHQUFHLENBQUM0QiwwQkFBa0I7SUFDL0MsSUFBSSxDQUFDSCxPQUFPLE9BQU8vQjtJQUVuQixNQUFNb0Msa0JBQWtCQyxJQUFBQSxjQUFJLEVBQUNyQyxJQUFJc0MsU0FBUyxFQUFFO0lBQzVDLE1BQU1DLElBQUFBLGVBQUssRUFBQ0gsaUJBQWlCO1FBQUVJLFdBQVc7SUFBSztJQUMvQyxNQUFNQyxhQUFhLENBQUMsWUFBWSxFQUFFVixNQUFNckIsRUFBRSxDQUFDLGdCQUFnQixFQUFFcUIsTUFBTXBCLElBQUksQ0FBQyxvQkFBb0IsRUFBRW9CLE1BQU1uQixRQUFRLENBQUMsRUFBRSxDQUFDO0lBQ2hILE1BQU04QixJQUFBQSxtQkFBUyxFQUFDTCxJQUFBQSxjQUFJLEVBQUNELGlCQUFpQixTQUFTSztJQUUvQyxPQUFPekM7QUFDUjtBQUVPLE1BQU1GLG9CQUE2QjtJQUN6QzZDLE1BQU07SUFDTjVDO0lBQ0FJO0lBQ0FnQztBQUNEIn0=
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "POSTGRES_CREDS_KEY", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return POSTGRES_CREDS_KEY;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _context = require("../../domain/context.js");
|
|
12
|
-
const POSTGRES_CREDS_KEY = (0, _context.modelKey)("postgres-creds");
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9wb3N0Z3Jlc3FsL21vZGVscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb2RlbEtleSB9IGZyb20gXCIuLi8uLi9kb21haW4vY29udGV4dC5qc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RncmVzQ3JlZHMge1xuXHRkYjogc3RyaW5nO1xuXHR1c2VyOiBzdHJpbmc7XG5cdHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBQT1NUR1JFU19DUkVEU19LRVkgPSBtb2RlbEtleTxQb3N0Z3Jlc0NyZWRzPihcInBvc3RncmVzLWNyZWRzXCIpO1xuIl0sIm5hbWVzIjpbIlBPU1RHUkVTX0NSRURTX0tFWSIsIm1vZGVsS2V5Il0sIm1hcHBpbmdzIjoiOzs7OytCQVFhQTs7O2VBQUFBOzs7eUJBUlk7QUFRbEIsTUFBTUEscUJBQXFCQyxJQUFBQSxpQkFBUSxFQUFnQiJ9
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "buildPostmanCollection", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return buildPostmanCollection;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
function buildPostmanCollection(projectName, withAuth0) {
|
|
12
|
-
const auth = withAuth0 ? {
|
|
13
|
-
type: "oauth2",
|
|
14
|
-
oauth2: [
|
|
15
|
-
{
|
|
16
|
-
key: "grant_type",
|
|
17
|
-
value: "authorization_code_with_pkce",
|
|
18
|
-
type: "string"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
key: "authUrl",
|
|
22
|
-
value: "https://{{auth0Domain}}/authorize?audience={{auth0Audience}}",
|
|
23
|
-
type: "string"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
key: "accessTokenUrl",
|
|
27
|
-
value: "https://{{auth0Domain}}/oauth/token",
|
|
28
|
-
type: "string"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
key: "clientId",
|
|
32
|
-
value: "{{auth0ClientId}}",
|
|
33
|
-
type: "string"
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
key: "scope",
|
|
37
|
-
value: "openid profile email",
|
|
38
|
-
type: "string"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
key: "addTokenTo",
|
|
42
|
-
value: "header",
|
|
43
|
-
type: "string"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
key: "challengeAlgorithm",
|
|
47
|
-
value: "S256",
|
|
48
|
-
type: "string"
|
|
49
|
-
}
|
|
50
|
-
]
|
|
51
|
-
} : undefined;
|
|
52
|
-
return {
|
|
53
|
-
info: {
|
|
54
|
-
name: `${projectName} WebAPI`,
|
|
55
|
-
schema: "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
|
|
56
|
-
},
|
|
57
|
-
...auth ? {
|
|
58
|
-
auth
|
|
59
|
-
} : {},
|
|
60
|
-
item: [
|
|
61
|
-
{
|
|
62
|
-
name: "Hello",
|
|
63
|
-
request: {
|
|
64
|
-
method: "GET",
|
|
65
|
-
url: {
|
|
66
|
-
raw: "{{baseUrl}}/hello",
|
|
67
|
-
host: [
|
|
68
|
-
"{{baseUrl}}"
|
|
69
|
-
],
|
|
70
|
-
path: [
|
|
71
|
-
"hello"
|
|
72
|
-
]
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
]
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9wb3N0bWFuL2NvbGxlY3Rpb24udGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUG9zdG1hbkNvbGxlY3Rpb24ocHJvamVjdE5hbWU6IHN0cmluZywgd2l0aEF1dGgwOiBib29sZWFuKTogdW5rbm93biB7XG5cdGNvbnN0IGF1dGggPSB3aXRoQXV0aDBcblx0XHQ/IHtcblx0XHRcdFx0dHlwZTogXCJvYXV0aDJcIixcblx0XHRcdFx0b2F1dGgyOiBbXG5cdFx0XHRcdFx0eyBrZXk6IFwiZ3JhbnRfdHlwZVwiLCB2YWx1ZTogXCJhdXRob3JpemF0aW9uX2NvZGVfd2l0aF9wa2NlXCIsIHR5cGU6IFwic3RyaW5nXCIgfSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRrZXk6IFwiYXV0aFVybFwiLFxuXHRcdFx0XHRcdFx0dmFsdWU6IFwiaHR0cHM6Ly97e2F1dGgwRG9tYWlufX0vYXV0aG9yaXplP2F1ZGllbmNlPXt7YXV0aDBBdWRpZW5jZX19XCIsXG5cdFx0XHRcdFx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0a2V5OiBcImFjY2Vzc1Rva2VuVXJsXCIsXG5cdFx0XHRcdFx0XHR2YWx1ZTogXCJodHRwczovL3t7YXV0aDBEb21haW59fS9vYXV0aC90b2tlblwiLFxuXHRcdFx0XHRcdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHsga2V5OiBcImNsaWVudElkXCIsIHZhbHVlOiBcInt7YXV0aDBDbGllbnRJZH19XCIsIHR5cGU6IFwic3RyaW5nXCIgfSxcblx0XHRcdFx0XHR7IGtleTogXCJzY29wZVwiLCB2YWx1ZTogXCJvcGVuaWQgcHJvZmlsZSBlbWFpbFwiLCB0eXBlOiBcInN0cmluZ1wiIH0sXG5cdFx0XHRcdFx0eyBrZXk6IFwiYWRkVG9rZW5Ub1wiLCB2YWx1ZTogXCJoZWFkZXJcIiwgdHlwZTogXCJzdHJpbmdcIiB9LFxuXHRcdFx0XHRcdHsga2V5OiBcImNoYWxsZW5nZUFsZ29yaXRobVwiLCB2YWx1ZTogXCJTMjU2XCIsIHR5cGU6IFwic3RyaW5nXCIgfSxcblx0XHRcdFx0XSxcblx0XHRcdH1cblx0XHQ6IHVuZGVmaW5lZDtcblxuXHRyZXR1cm4ge1xuXHRcdGluZm86IHtcblx0XHRcdG5hbWU6IGAke3Byb2plY3ROYW1lfSBXZWJBUElgLFxuXHRcdFx0c2NoZW1hOiBcImh0dHBzOi8vc2NoZW1hLmdldHBvc3RtYW4uY29tL2pzb24vY29sbGVjdGlvbi92Mi4xLjAvY29sbGVjdGlvbi5qc29uXCIsXG5cdFx0fSxcblx0XHQuLi4oYXV0aCA/IHsgYXV0aCB9IDoge30pLFxuXHRcdGl0ZW06IFtcblx0XHRcdHtcblx0XHRcdFx0bmFtZTogXCJIZWxsb1wiLFxuXHRcdFx0XHRyZXF1ZXN0OiB7XG5cdFx0XHRcdFx0bWV0aG9kOiBcIkdFVFwiLFxuXHRcdFx0XHRcdHVybDogeyByYXc6IFwie3tiYXNlVXJsfX0vaGVsbG9cIiwgaG9zdDogW1wie3tiYXNlVXJsfX1cIl0sIHBhdGg6IFtcImhlbGxvXCJdIH0sXG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdF0sXG5cdH07XG59XG4iXSwibmFtZXMiOlsiYnVpbGRQb3N0bWFuQ29sbGVjdGlvbiIsInByb2plY3ROYW1lIiwid2l0aEF1dGgwIiwiYXV0aCIsInR5cGUiLCJvYXV0aDIiLCJrZXkiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImluZm8iLCJuYW1lIiwic2NoZW1hIiwiaXRlbSIsInJlcXVlc3QiLCJtZXRob2QiLCJ1cmwiLCJyYXciLCJob3N0IiwicGF0aCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLHVCQUF1QkMsV0FBbUIsRUFBRUMsU0FBa0I7SUFDN0UsTUFBTUMsT0FBT0QsWUFDVjtRQUNBRSxNQUFNO1FBQ05DLFFBQVE7WUFDUDtnQkFBRUMsS0FBSztnQkFBY0MsT0FBTztnQkFBZ0NILE1BQU07WUFBUztZQUMzRTtnQkFDQ0UsS0FBSztnQkFDTEMsT0FBTztnQkFDUEgsTUFBTTtZQUNQO1lBQ0E7Z0JBQ0NFLEtBQUs7Z0JBQ0xDLE9BQU87Z0JBQ1BILE1BQU07WUFDUDtZQUNBO2dCQUFFRSxLQUFLO2dCQUFZQyxPQUFPO2dCQUFxQkgsTUFBTTtZQUFTO1lBQzlEO2dCQUFFRSxLQUFLO2dCQUFTQyxPQUFPO2dCQUF3QkgsTUFBTTtZQUFTO1lBQzlEO2dCQUFFRSxLQUFLO2dCQUFjQyxPQUFPO2dCQUFVSCxNQUFNO1lBQVM7WUFDckQ7Z0JBQUVFLEtBQUs7Z0JBQXNCQyxPQUFPO2dCQUFRSCxNQUFNO1lBQVM7U0FDM0Q7SUFDRixJQUNDSTtJQUVILE9BQU87UUFDTkMsTUFBTTtZQUNMQyxNQUFNLEdBQUdULFlBQVksT0FBTyxDQUFDO1lBQzdCVSxRQUFRO1FBQ1Q7UUFDQSxHQUFJUixPQUFPO1lBQUVBO1FBQUssSUFBSSxDQUFDLENBQUM7UUFDeEJTLE1BQU07WUFDTDtnQkFDQ0YsTUFBTTtnQkFDTkcsU0FBUztvQkFDUkMsUUFBUTtvQkFDUkMsS0FBSzt3QkFBRUMsS0FBSzt3QkFBcUJDLE1BQU07NEJBQUM7eUJBQWM7d0JBQUVDLE1BQU07NEJBQUM7eUJBQVE7b0JBQUM7Z0JBQ3pFO1lBQ0Q7U0FDQTtJQUNGO0FBQ0QifQ==
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "postmanEnvironmentYaml", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return postmanEnvironmentYaml;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
function postmanEnvironmentYaml(name, opts) {
|
|
12
|
-
const auth0Section = opts?.auth0Domain ? `${[
|
|
13
|
-
" - key: auth0Domain",
|
|
14
|
-
` value: ${opts.auth0Domain}`,
|
|
15
|
-
" - key: auth0Audience",
|
|
16
|
-
` value: '${opts.auth0Audience ?? ""}'`,
|
|
17
|
-
" - key: auth0ClientId",
|
|
18
|
-
` value: '${opts.auth0ClientId ?? ""}'`,
|
|
19
|
-
" description: Client ID of the Auth0 SPA application used by Postman for PKCE authentication"
|
|
20
|
-
].join("\n")}\n` : "";
|
|
21
|
-
return `name: ${name}\nvalues:\n - key: baseUrl\n value: 'http://localhost:3000'\n${auth0Section}`;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9wb3N0bWFuL2Vudmlyb25tZW50LnRlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUG9zdG1hbkVudk9wdGlvbnMge1xuXHRhdXRoMERvbWFpbj86IHN0cmluZztcblx0YXV0aDBBdWRpZW5jZT86IHN0cmluZztcblx0YXV0aDBDbGllbnRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc3RtYW5FbnZpcm9ubWVudFlhbWwobmFtZTogc3RyaW5nLCBvcHRzPzogUG9zdG1hbkVudk9wdGlvbnMpOiBzdHJpbmcge1xuXHRjb25zdCBhdXRoMFNlY3Rpb24gPSBvcHRzPy5hdXRoMERvbWFpblxuXHRcdD8gYCR7W1xuXHRcdFx0XHRcIiAgLSBrZXk6IGF1dGgwRG9tYWluXCIsXG5cdFx0XHRcdGAgICAgdmFsdWU6ICR7b3B0cy5hdXRoMERvbWFpbn1gLFxuXHRcdFx0XHRcIiAgLSBrZXk6IGF1dGgwQXVkaWVuY2VcIixcblx0XHRcdFx0YCAgICB2YWx1ZTogJyR7b3B0cy5hdXRoMEF1ZGllbmNlID8/IFwiXCJ9J2AsXG5cdFx0XHRcdFwiICAtIGtleTogYXV0aDBDbGllbnRJZFwiLFxuXHRcdFx0XHRgICAgIHZhbHVlOiAnJHtvcHRzLmF1dGgwQ2xpZW50SWQgPz8gXCJcIn0nYCxcblx0XHRcdFx0XCIgICAgZGVzY3JpcHRpb246IENsaWVudCBJRCBvZiB0aGUgQXV0aDAgU1BBIGFwcGxpY2F0aW9uIHVzZWQgYnkgUG9zdG1hbiBmb3IgUEtDRSBhdXRoZW50aWNhdGlvblwiLFxuXHRcdFx0XS5qb2luKFwiXFxuXCIpfVxcbmBcblx0XHQ6IFwiXCI7XG5cdHJldHVybiBgbmFtZTogJHtuYW1lfVxcbnZhbHVlczpcXG4gIC0ga2V5OiBiYXNlVXJsXFxuICAgIHZhbHVlOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwJ1xcbiR7YXV0aDBTZWN0aW9ufWA7XG59XG4iXSwibmFtZXMiOlsicG9zdG1hbkVudmlyb25tZW50WWFtbCIsIm5hbWUiLCJvcHRzIiwiYXV0aDBTZWN0aW9uIiwiYXV0aDBEb21haW4iLCJhdXRoMEF1ZGllbmNlIiwiYXV0aDBDbGllbnRJZCIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7K0JBTWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSx1QkFBdUJDLElBQVksRUFBRUMsSUFBd0I7SUFDNUUsTUFBTUMsZUFBZUQsTUFBTUUsY0FDeEIsR0FBRztRQUNIO1FBQ0EsQ0FBQyxXQUFXLEVBQUVGLEtBQUtFLFdBQVcsRUFBRTtRQUNoQztRQUNBLENBQUMsWUFBWSxFQUFFRixLQUFLRyxhQUFhLElBQUksR0FBRyxDQUFDLENBQUM7UUFDMUM7UUFDQSxDQUFDLFlBQVksRUFBRUgsS0FBS0ksYUFBYSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzFDO0tBQ0EsQ0FBQ0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQ2Y7SUFDSCxPQUFPLENBQUMsTUFBTSxFQUFFTixLQUFLLGlFQUFpRSxFQUFFRSxjQUFjO0FBQ3ZHIn0=
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "postmanFeature", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return postmanFeature;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _promises = require("node:fs/promises");
|
|
12
|
-
const _nodepath = require("node:path");
|
|
13
|
-
const _index = require("../../domain/index.js");
|
|
14
|
-
const _auth0cli = /*#__PURE__*/ _interop_require_wildcard(require("../auth0/auth0-cli.js"));
|
|
15
|
-
const _models = require("../auth0/models.js");
|
|
16
|
-
const _collectiontemplate = require("./collection.template.js");
|
|
17
|
-
const _environmenttemplate = require("./environment.template.js");
|
|
18
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
19
|
-
if (typeof WeakMap !== "function") return null;
|
|
20
|
-
var cacheBabelInterop = new WeakMap();
|
|
21
|
-
var cacheNodeInterop = new WeakMap();
|
|
22
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
23
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
24
|
-
})(nodeInterop);
|
|
25
|
-
}
|
|
26
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
27
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
28
|
-
return obj;
|
|
29
|
-
}
|
|
30
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
31
|
-
return {
|
|
32
|
-
default: obj
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
36
|
-
if (cache && cache.has(obj)) {
|
|
37
|
-
return cache.get(obj);
|
|
38
|
-
}
|
|
39
|
-
var newObj = {
|
|
40
|
-
__proto__: null
|
|
41
|
-
};
|
|
42
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
43
|
-
for(var key in obj){
|
|
44
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
45
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
46
|
-
if (desc && (desc.get || desc.set)) {
|
|
47
|
-
Object.defineProperty(newObj, key, desc);
|
|
48
|
-
} else {
|
|
49
|
-
newObj[key] = obj[key];
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
newObj.default = obj;
|
|
54
|
-
if (cache) {
|
|
55
|
-
cache.set(obj, newObj);
|
|
56
|
-
}
|
|
57
|
-
return newObj;
|
|
58
|
-
}
|
|
59
|
-
const enabled = (ctx)=>!!ctx.opts.postman && !ctx.opts.yes;
|
|
60
|
-
/**
|
|
61
|
-
* Integrate phase: drives the Postman REST API (and optionally the auth0 CLI
|
|
62
|
-
* to create a SPA app for PKCE auth). Also writes a local environment yaml
|
|
63
|
-
* for the VS Code Postman extension.
|
|
64
|
-
*/ async function integrate(ctx) {
|
|
65
|
-
const { projectName, targetDir } = ctx;
|
|
66
|
-
const auth0Config = ctx.models.get(_models.AUTH0_CONFIG_KEY);
|
|
67
|
-
const apiKey = process.env.POSTMAN_API_KEY ?? await (0, _index.ask)("\n Postman API key (from app.getpostman.com/settings/me/api-keys): ");
|
|
68
|
-
const headers = {
|
|
69
|
-
"X-Api-Key": apiKey,
|
|
70
|
-
"Content-Type": "application/json"
|
|
71
|
-
};
|
|
72
|
-
const wsRes = await fetch("https://api.getpostman.com/workspaces", {
|
|
73
|
-
headers
|
|
74
|
-
});
|
|
75
|
-
if (!wsRes.ok) {
|
|
76
|
-
console.error("\n Postman API key is invalid or request failed. Skipping Postman setup.");
|
|
77
|
-
return ctx;
|
|
78
|
-
}
|
|
79
|
-
const { workspaces } = await wsRes.json();
|
|
80
|
-
console.log("\n Postman workspaces:");
|
|
81
|
-
for (const [i, w] of workspaces.entries()){
|
|
82
|
-
console.log(` ${i + 1}. ${w.name} (${w.type})`);
|
|
83
|
-
}
|
|
84
|
-
console.log(" 0. Create new workspace");
|
|
85
|
-
const wsInput = await (0, _index.ask)(" Select workspace [0]: ", "0");
|
|
86
|
-
const wsIdx = Number.parseInt(wsInput, 10);
|
|
87
|
-
let workspaceId;
|
|
88
|
-
if (Number.isNaN(wsIdx) || wsIdx === 0 || wsIdx > workspaces.length) {
|
|
89
|
-
const wsName = await (0, _index.ask)(` New workspace name [${projectName}]: `, projectName);
|
|
90
|
-
const createRes = await fetch("https://api.getpostman.com/workspaces", {
|
|
91
|
-
method: "POST",
|
|
92
|
-
headers,
|
|
93
|
-
body: JSON.stringify({
|
|
94
|
-
workspace: {
|
|
95
|
-
name: wsName,
|
|
96
|
-
type: "personal"
|
|
97
|
-
}
|
|
98
|
-
})
|
|
99
|
-
});
|
|
100
|
-
const { workspace } = await createRes.json();
|
|
101
|
-
workspaceId = workspace.id;
|
|
102
|
-
console.log(` ✓ Workspace created: ${wsName}`);
|
|
103
|
-
} else {
|
|
104
|
-
workspaceId = workspaces[wsIdx - 1].id;
|
|
105
|
-
console.log(` ✓ Workspace selected: ${workspaces[wsIdx - 1].name}`);
|
|
106
|
-
}
|
|
107
|
-
// Create SPA app in Auth0 for Postman PKCE flow
|
|
108
|
-
let spaClientId;
|
|
109
|
-
if (auth0Config) {
|
|
110
|
-
console.log("\n Creating Auth0 SPA application for Postman...");
|
|
111
|
-
try {
|
|
112
|
-
spaClientId = _auth0cli.createSpaApp(`${projectName} Postman`, "https://oauth.pstmn.io/v1/callback").client_id;
|
|
113
|
-
console.log(` ✓ SPA app created: ${spaClientId}`);
|
|
114
|
-
} catch {
|
|
115
|
-
console.error(` ✗ Failed to create SPA app. Re-login with required scopes:\n auth0 login --scopes ${_auth0cli.REQUIRED_SCOPES}`);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// Create collection
|
|
119
|
-
const colRes = await fetch(`https://api.getpostman.com/collections?workspace=${workspaceId}`, {
|
|
120
|
-
method: "POST",
|
|
121
|
-
headers,
|
|
122
|
-
body: JSON.stringify({
|
|
123
|
-
collection: (0, _collectiontemplate.buildPostmanCollection)(projectName, auth0Config != null)
|
|
124
|
-
})
|
|
125
|
-
});
|
|
126
|
-
if (colRes.ok) {
|
|
127
|
-
console.log(" ✓ Postman collection created");
|
|
128
|
-
} else {
|
|
129
|
-
console.error(" ✗ Failed to create Postman collection");
|
|
130
|
-
}
|
|
131
|
-
// Create environment
|
|
132
|
-
const envVars = [
|
|
133
|
-
{
|
|
134
|
-
key: "baseUrl",
|
|
135
|
-
value: "http://localhost:3000",
|
|
136
|
-
type: "default",
|
|
137
|
-
enabled: true
|
|
138
|
-
}
|
|
139
|
-
];
|
|
140
|
-
if (auth0Config) {
|
|
141
|
-
envVars.push({
|
|
142
|
-
key: "auth0Domain",
|
|
143
|
-
value: auth0Config.issuerBaseUrl.replace("https://", ""),
|
|
144
|
-
type: "default",
|
|
145
|
-
enabled: true
|
|
146
|
-
}, {
|
|
147
|
-
key: "auth0Audience",
|
|
148
|
-
value: auth0Config.audience,
|
|
149
|
-
type: "default",
|
|
150
|
-
enabled: true
|
|
151
|
-
}, {
|
|
152
|
-
key: "auth0ClientId",
|
|
153
|
-
value: spaClientId ?? "",
|
|
154
|
-
type: "default",
|
|
155
|
-
enabled: true
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
const envRes = await fetch(`https://api.getpostman.com/environments?workspace=${workspaceId}`, {
|
|
159
|
-
method: "POST",
|
|
160
|
-
headers,
|
|
161
|
-
body: JSON.stringify({
|
|
162
|
-
environment: {
|
|
163
|
-
name: `${projectName} — Local`,
|
|
164
|
-
values: envVars
|
|
165
|
-
}
|
|
166
|
-
})
|
|
167
|
-
});
|
|
168
|
-
if (envRes.ok) {
|
|
169
|
-
console.log(" ✓ Postman environment created");
|
|
170
|
-
} else {
|
|
171
|
-
console.error(" ✗ Failed to create Postman environment");
|
|
172
|
-
}
|
|
173
|
-
// Write local environment YAML for VS Code Postman extension
|
|
174
|
-
const envDir = (0, _nodepath.join)(targetDir, "postman", "environments");
|
|
175
|
-
await (0, _promises.mkdir)(envDir, {
|
|
176
|
-
recursive: true
|
|
177
|
-
});
|
|
178
|
-
await (0, _promises.writeFile)((0, _nodepath.join)(envDir, `${projectName} — Local.environment.yaml`), (0, _environmenttemplate.postmanEnvironmentYaml)(`${projectName} — Local`, auth0Config ? {
|
|
179
|
-
auth0Domain: auth0Config.issuerBaseUrl.replace("https://", ""),
|
|
180
|
-
auth0Audience: auth0Config.audience,
|
|
181
|
-
auth0ClientId: spaClientId ?? ""
|
|
182
|
-
} : undefined));
|
|
183
|
-
console.log(" ✓ Local environment file written to postman/environments/");
|
|
184
|
-
return ctx;
|
|
185
|
-
}
|
|
186
|
-
const postmanFeature = {
|
|
187
|
-
name: "postman",
|
|
188
|
-
enabled,
|
|
189
|
-
integrate
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9wb3N0bWFuL2ZlYXR1cmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWtkaXIsIHdyaXRlRmlsZSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgYXNrLCB0eXBlIEZlYXR1cmUsIHR5cGUgU2NhZmZvbGRDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2RvbWFpbi9pbmRleC5qc1wiO1xuaW1wb3J0ICogYXMgYXV0aDAgZnJvbSBcIi4uL2F1dGgwL2F1dGgwLWNsaS5qc1wiO1xuaW1wb3J0IHsgQVVUSDBfQ09ORklHX0tFWSB9IGZyb20gXCIuLi9hdXRoMC9tb2RlbHMuanNcIjtcbmltcG9ydCB7IGJ1aWxkUG9zdG1hbkNvbGxlY3Rpb24gfSBmcm9tIFwiLi9jb2xsZWN0aW9uLnRlbXBsYXRlLmpzXCI7XG5pbXBvcnQgeyBwb3N0bWFuRW52aXJvbm1lbnRZYW1sIH0gZnJvbSBcIi4vZW52aXJvbm1lbnQudGVtcGxhdGUuanNcIjtcblxuY29uc3QgZW5hYmxlZCA9IChjdHg6IFNjYWZmb2xkQ29udGV4dCkgPT4gISFjdHgub3B0cy5wb3N0bWFuICYmICFjdHgub3B0cy55ZXM7XG5cbi8qKlxuICogSW50ZWdyYXRlIHBoYXNlOiBkcml2ZXMgdGhlIFBvc3RtYW4gUkVTVCBBUEkgKGFuZCBvcHRpb25hbGx5IHRoZSBhdXRoMCBDTElcbiAqIHRvIGNyZWF0ZSBhIFNQQSBhcHAgZm9yIFBLQ0UgYXV0aCkuIEFsc28gd3JpdGVzIGEgbG9jYWwgZW52aXJvbm1lbnQgeWFtbFxuICogZm9yIHRoZSBWUyBDb2RlIFBvc3RtYW4gZXh0ZW5zaW9uLlxuICovXG5hc3luYyBmdW5jdGlvbiBpbnRlZ3JhdGUoY3R4OiBTY2FmZm9sZENvbnRleHQpOiBQcm9taXNlPFNjYWZmb2xkQ29udGV4dD4ge1xuXHRjb25zdCB7IHByb2plY3ROYW1lLCB0YXJnZXREaXIgfSA9IGN0eDtcblx0Y29uc3QgYXV0aDBDb25maWcgPSBjdHgubW9kZWxzLmdldChBVVRIMF9DT05GSUdfS0VZKTtcblxuXHRjb25zdCBhcGlLZXkgPVxuXHRcdHByb2Nlc3MuZW52LlBPU1RNQU5fQVBJX0tFWSA/P1xuXHRcdChhd2FpdCBhc2soXCJcXG4gIFBvc3RtYW4gQVBJIGtleSAoZnJvbSBhcHAuZ2V0cG9zdG1hbi5jb20vc2V0dGluZ3MvbWUvYXBpLWtleXMpOiBcIikpO1xuXG5cdGNvbnN0IGhlYWRlcnMgPSB7IFwiWC1BcGktS2V5XCI6IGFwaUtleSwgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfTtcblxuXHRjb25zdCB3c1JlcyA9IGF3YWl0IGZldGNoKFwiaHR0cHM6Ly9hcGkuZ2V0cG9zdG1hbi5jb20vd29ya3NwYWNlc1wiLCB7IGhlYWRlcnMgfSk7XG5cdGlmICghd3NSZXMub2spIHtcblx0XHRjb25zb2xlLmVycm9yKFwiXFxuICBQb3N0bWFuIEFQSSBrZXkgaXMgaW52YWxpZCBvciByZXF1ZXN0IGZhaWxlZC4gU2tpcHBpbmcgUG9zdG1hbiBzZXR1cC5cIik7XG5cdFx0cmV0dXJuIGN0eDtcblx0fVxuXHRjb25zdCB7IHdvcmtzcGFjZXMgfSA9IChhd2FpdCB3c1Jlcy5qc29uKCkpIGFzIHtcblx0XHR3b3Jrc3BhY2VzOiBBcnJheTx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nIH0+O1xuXHR9O1xuXG5cdGNvbnNvbGUubG9nKFwiXFxuICBQb3N0bWFuIHdvcmtzcGFjZXM6XCIpO1xuXHRmb3IgKGNvbnN0IFtpLCB3XSBvZiB3b3Jrc3BhY2VzLmVudHJpZXMoKSkge1xuXHRcdGNvbnNvbGUubG9nKGAgICAgJHtpICsgMX0uICR7dy5uYW1lfSAoJHt3LnR5cGV9KWApO1xuXHR9XG5cdGNvbnNvbGUubG9nKFwiICAgIDAuIENyZWF0ZSBuZXcgd29ya3NwYWNlXCIpO1xuXG5cdGNvbnN0IHdzSW5wdXQgPSBhd2FpdCBhc2soXCIgIFNlbGVjdCB3b3Jrc3BhY2UgWzBdOiBcIiwgXCIwXCIpO1xuXHRjb25zdCB3c0lkeCA9IE51bWJlci5wYXJzZUludCh3c0lucHV0LCAxMCk7XG5cblx0bGV0IHdvcmtzcGFjZUlkOiBzdHJpbmc7XG5cdGlmIChOdW1iZXIuaXNOYU4od3NJZHgpIHx8IHdzSWR4ID09PSAwIHx8IHdzSWR4ID4gd29ya3NwYWNlcy5sZW5ndGgpIHtcblx0XHRjb25zdCB3c05hbWUgPSBhd2FpdCBhc2soYCAgTmV3IHdvcmtzcGFjZSBuYW1lIFske3Byb2plY3ROYW1lfV06IGAsIHByb2plY3ROYW1lKTtcblx0XHRjb25zdCBjcmVhdGVSZXMgPSBhd2FpdCBmZXRjaChcImh0dHBzOi8vYXBpLmdldHBvc3RtYW4uY29tL3dvcmtzcGFjZXNcIiwge1xuXHRcdFx0bWV0aG9kOiBcIlBPU1RcIixcblx0XHRcdGhlYWRlcnMsXG5cdFx0XHRib2R5OiBKU09OLnN0cmluZ2lmeSh7IHdvcmtzcGFjZTogeyBuYW1lOiB3c05hbWUsIHR5cGU6IFwicGVyc29uYWxcIiB9IH0pLFxuXHRcdH0pO1xuXHRcdGNvbnN0IHsgd29ya3NwYWNlIH0gPSAoYXdhaXQgY3JlYXRlUmVzLmpzb24oKSkgYXMgeyB3b3Jrc3BhY2U6IHsgaWQ6IHN0cmluZyB9IH07XG5cdFx0d29ya3NwYWNlSWQgPSB3b3Jrc3BhY2UuaWQ7XG5cdFx0Y29uc29sZS5sb2coYCAg4pyTIFdvcmtzcGFjZSBjcmVhdGVkOiAke3dzTmFtZX1gKTtcblx0fSBlbHNlIHtcblx0XHR3b3Jrc3BhY2VJZCA9IHdvcmtzcGFjZXNbd3NJZHggLSAxXS5pZDtcblx0XHRjb25zb2xlLmxvZyhgICDinJMgV29ya3NwYWNlIHNlbGVjdGVkOiAke3dvcmtzcGFjZXNbd3NJZHggLSAxXS5uYW1lfWApO1xuXHR9XG5cblx0Ly8gQ3JlYXRlIFNQQSBhcHAgaW4gQXV0aDAgZm9yIFBvc3RtYW4gUEtDRSBmbG93XG5cdGxldCBzcGFDbGllbnRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRpZiAoYXV0aDBDb25maWcpIHtcblx0XHRjb25zb2xlLmxvZyhcIlxcbiAgQ3JlYXRpbmcgQXV0aDAgU1BBIGFwcGxpY2F0aW9uIGZvciBQb3N0bWFuLi4uXCIpO1xuXHRcdHRyeSB7XG5cdFx0XHRzcGFDbGllbnRJZCA9IGF1dGgwLmNyZWF0ZVNwYUFwcChcblx0XHRcdFx0YCR7cHJvamVjdE5hbWV9IFBvc3RtYW5gLFxuXHRcdFx0XHRcImh0dHBzOi8vb2F1dGgucHN0bW4uaW8vdjEvY2FsbGJhY2tcIixcblx0XHRcdCkuY2xpZW50X2lkO1xuXHRcdFx0Y29uc29sZS5sb2coYCAg4pyTIFNQQSBhcHAgY3JlYXRlZDogJHtzcGFDbGllbnRJZH1gKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcdGAgIOKclyBGYWlsZWQgdG8gY3JlYXRlIFNQQSBhcHAuIFJlLWxvZ2luIHdpdGggcmVxdWlyZWQgc2NvcGVzOlxcbiAgICBhdXRoMCBsb2dpbiAtLXNjb3BlcyAke2F1dGgwLlJFUVVJUkVEX1NDT1BFU31gLFxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHQvLyBDcmVhdGUgY29sbGVjdGlvblxuXHRjb25zdCBjb2xSZXMgPSBhd2FpdCBmZXRjaChcblx0XHRgaHR0cHM6Ly9hcGkuZ2V0cG9zdG1hbi5jb20vY29sbGVjdGlvbnM/d29ya3NwYWNlPSR7d29ya3NwYWNlSWR9YCxcblx0XHR7XG5cdFx0XHRtZXRob2Q6IFwiUE9TVFwiLFxuXHRcdFx0aGVhZGVycyxcblx0XHRcdGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcblx0XHRcdFx0Y29sbGVjdGlvbjogYnVpbGRQb3N0bWFuQ29sbGVjdGlvbihwcm9qZWN0TmFtZSwgYXV0aDBDb25maWcgIT0gbnVsbCksXG5cdFx0XHR9KSxcblx0XHR9LFxuXHQpO1xuXHRpZiAoY29sUmVzLm9rKSB7XG5cdFx0Y29uc29sZS5sb2coXCIgIOKckyBQb3N0bWFuIGNvbGxlY3Rpb24gY3JlYXRlZFwiKTtcblx0fSBlbHNlIHtcblx0XHRjb25zb2xlLmVycm9yKFwiICDinJcgRmFpbGVkIHRvIGNyZWF0ZSBQb3N0bWFuIGNvbGxlY3Rpb25cIik7XG5cdH1cblxuXHQvLyBDcmVhdGUgZW52aXJvbm1lbnRcblx0Y29uc3QgZW52VmFyczogQXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBlbmFibGVkOiBib29sZWFuIH0+ID0gW1xuXHRcdHsga2V5OiBcImJhc2VVcmxcIiwgdmFsdWU6IFwiaHR0cDovL2xvY2FsaG9zdDozMDAwXCIsIHR5cGU6IFwiZGVmYXVsdFwiLCBlbmFibGVkOiB0cnVlIH0sXG5cdF07XG5cdGlmIChhdXRoMENvbmZpZykge1xuXHRcdGVudlZhcnMucHVzaChcblx0XHRcdHtcblx0XHRcdFx0a2V5OiBcImF1dGgwRG9tYWluXCIsXG5cdFx0XHRcdHZhbHVlOiBhdXRoMENvbmZpZy5pc3N1ZXJCYXNlVXJsLnJlcGxhY2UoXCJodHRwczovL1wiLCBcIlwiKSxcblx0XHRcdFx0dHlwZTogXCJkZWZhdWx0XCIsXG5cdFx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHR9LFxuXHRcdFx0eyBrZXk6IFwiYXV0aDBBdWRpZW5jZVwiLCB2YWx1ZTogYXV0aDBDb25maWcuYXVkaWVuY2UsIHR5cGU6IFwiZGVmYXVsdFwiLCBlbmFibGVkOiB0cnVlIH0sXG5cdFx0XHR7XG5cdFx0XHRcdGtleTogXCJhdXRoMENsaWVudElkXCIsXG5cdFx0XHRcdHZhbHVlOiBzcGFDbGllbnRJZCA/PyBcIlwiLFxuXHRcdFx0XHR0eXBlOiBcImRlZmF1bHRcIixcblx0XHRcdFx0ZW5hYmxlZDogdHJ1ZSxcblx0XHRcdH0sXG5cdFx0KTtcblx0fVxuXHRjb25zdCBlbnZSZXMgPSBhd2FpdCBmZXRjaChcblx0XHRgaHR0cHM6Ly9hcGkuZ2V0cG9zdG1hbi5jb20vZW52aXJvbm1lbnRzP3dvcmtzcGFjZT0ke3dvcmtzcGFjZUlkfWAsXG5cdFx0e1xuXHRcdFx0bWV0aG9kOiBcIlBPU1RcIixcblx0XHRcdGhlYWRlcnMsXG5cdFx0XHRib2R5OiBKU09OLnN0cmluZ2lmeSh7XG5cdFx0XHRcdGVudmlyb25tZW50OiB7IG5hbWU6IGAke3Byb2plY3ROYW1lfSDigJQgTG9jYWxgLCB2YWx1ZXM6IGVudlZhcnMgfSxcblx0XHRcdH0pLFxuXHRcdH0sXG5cdCk7XG5cdGlmIChlbnZSZXMub2spIHtcblx0XHRjb25zb2xlLmxvZyhcIiAg4pyTIFBvc3RtYW4gZW52aXJvbm1lbnQgY3JlYXRlZFwiKTtcblx0fSBlbHNlIHtcblx0XHRjb25zb2xlLmVycm9yKFwiICDinJcgRmFpbGVkIHRvIGNyZWF0ZSBQb3N0bWFuIGVudmlyb25tZW50XCIpO1xuXHR9XG5cblx0Ly8gV3JpdGUgbG9jYWwgZW52aXJvbm1lbnQgWUFNTCBmb3IgVlMgQ29kZSBQb3N0bWFuIGV4dGVuc2lvblxuXHRjb25zdCBlbnZEaXIgPSBqb2luKHRhcmdldERpciwgXCJwb3N0bWFuXCIsIFwiZW52aXJvbm1lbnRzXCIpO1xuXHRhd2FpdCBta2RpcihlbnZEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHRhd2FpdCB3cml0ZUZpbGUoXG5cdFx0am9pbihlbnZEaXIsIGAke3Byb2plY3ROYW1lfSDigJQgTG9jYWwuZW52aXJvbm1lbnQueWFtbGApLFxuXHRcdHBvc3RtYW5FbnZpcm9ubWVudFlhbWwoXG5cdFx0XHRgJHtwcm9qZWN0TmFtZX0g4oCUIExvY2FsYCxcblx0XHRcdGF1dGgwQ29uZmlnXG5cdFx0XHRcdD8ge1xuXHRcdFx0XHRcdFx0YXV0aDBEb21haW46IGF1dGgwQ29uZmlnLmlzc3VlckJhc2VVcmwucmVwbGFjZShcImh0dHBzOi8vXCIsIFwiXCIpLFxuXHRcdFx0XHRcdFx0YXV0aDBBdWRpZW5jZTogYXV0aDBDb25maWcuYXVkaWVuY2UsXG5cdFx0XHRcdFx0XHRhdXRoMENsaWVudElkOiBzcGFDbGllbnRJZCA/PyBcIlwiLFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0OiB1bmRlZmluZWQsXG5cdFx0KSxcblx0KTtcblx0Y29uc29sZS5sb2coXCIgIOKckyBMb2NhbCBlbnZpcm9ubWVudCBmaWxlIHdyaXR0ZW4gdG8gcG9zdG1hbi9lbnZpcm9ubWVudHMvXCIpO1xuXG5cdHJldHVybiBjdHg7XG59XG5cbmV4cG9ydCBjb25zdCBwb3N0bWFuRmVhdHVyZTogRmVhdHVyZSA9IHtcblx0bmFtZTogXCJwb3N0bWFuXCIsXG5cdGVuYWJsZWQsXG5cdGludGVncmF0ZSxcbn07XG4iXSwibmFtZXMiOlsicG9zdG1hbkZlYXR1cmUiLCJlbmFibGVkIiwiY3R4Iiwib3B0cyIsInBvc3RtYW4iLCJ5ZXMiLCJpbnRlZ3JhdGUiLCJwcm9qZWN0TmFtZSIsInRhcmdldERpciIsImF1dGgwQ29uZmlnIiwibW9kZWxzIiwiZ2V0IiwiQVVUSDBfQ09ORklHX0tFWSIsImFwaUtleSIsInByb2Nlc3MiLCJlbnYiLCJQT1NUTUFOX0FQSV9LRVkiLCJhc2siLCJoZWFkZXJzIiwid3NSZXMiLCJmZXRjaCIsIm9rIiwiY29uc29sZSIsImVycm9yIiwid29ya3NwYWNlcyIsImpzb24iLCJsb2ciLCJpIiwidyIsImVudHJpZXMiLCJuYW1lIiwidHlwZSIsIndzSW5wdXQiLCJ3c0lkeCIsIk51bWJlciIsInBhcnNlSW50Iiwid29ya3NwYWNlSWQiLCJpc05hTiIsImxlbmd0aCIsIndzTmFtZSIsImNyZWF0ZVJlcyIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwid29ya3NwYWNlIiwiaWQiLCJzcGFDbGllbnRJZCIsImF1dGgwIiwiY3JlYXRlU3BhQXBwIiwiY2xpZW50X2lkIiwiUkVRVUlSRURfU0NPUEVTIiwiY29sUmVzIiwiY29sbGVjdGlvbiIsImJ1aWxkUG9zdG1hbkNvbGxlY3Rpb24iLCJlbnZWYXJzIiwia2V5IiwidmFsdWUiLCJwdXNoIiwiaXNzdWVyQmFzZVVybCIsInJlcGxhY2UiLCJhdWRpZW5jZSIsImVudlJlcyIsImVudmlyb25tZW50IiwidmFsdWVzIiwiZW52RGlyIiwiam9pbiIsIm1rZGlyIiwicmVjdXJzaXZlIiwid3JpdGVGaWxlIiwicG9zdG1hbkVudmlyb25tZW50WWFtbCIsImF1dGgwRG9tYWluIiwiYXV0aDBBdWRpZW5jZSIsImF1dGgwQ2xpZW50SWQiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBdUphQTs7O2VBQUFBOzs7MEJBdkpvQjswQkFDWjt1QkFDbUM7a0VBQ2pDO3dCQUNVO29DQUNNO3FDQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdkMsTUFBTUMsVUFBVSxDQUFDQyxNQUF5QixDQUFDLENBQUNBLElBQUlDLElBQUksQ0FBQ0MsT0FBTyxJQUFJLENBQUNGLElBQUlDLElBQUksQ0FBQ0UsR0FBRztBQUU3RTs7OztDQUlDLEdBQ0QsZUFBZUMsVUFBVUosR0FBb0I7SUFDNUMsTUFBTSxFQUFFSyxXQUFXLEVBQUVDLFNBQVMsRUFBRSxHQUFHTjtJQUNuQyxNQUFNTyxjQUFjUCxJQUFJUSxNQUFNLENBQUNDLEdBQUcsQ0FBQ0Msd0JBQWdCO0lBRW5ELE1BQU1DLFNBQ0xDLFFBQVFDLEdBQUcsQ0FBQ0MsZUFBZSxJQUMxQixNQUFNQyxJQUFBQSxVQUFHLEVBQUM7SUFFWixNQUFNQyxVQUFVO1FBQUUsYUFBYUw7UUFBUSxnQkFBZ0I7SUFBbUI7SUFFMUUsTUFBTU0sUUFBUSxNQUFNQyxNQUFNLHlDQUF5QztRQUFFRjtJQUFRO0lBQzdFLElBQUksQ0FBQ0MsTUFBTUUsRUFBRSxFQUFFO1FBQ2RDLFFBQVFDLEtBQUssQ0FBQztRQUNkLE9BQU9yQjtJQUNSO0lBQ0EsTUFBTSxFQUFFc0IsVUFBVSxFQUFFLEdBQUksTUFBTUwsTUFBTU0sSUFBSTtJQUl4Q0gsUUFBUUksR0FBRyxDQUFDO0lBQ1osS0FBSyxNQUFNLENBQUNDLEdBQUdDLEVBQUUsSUFBSUosV0FBV0ssT0FBTyxHQUFJO1FBQzFDUCxRQUFRSSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUVDLElBQUksRUFBRSxFQUFFLEVBQUVD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
|