@decohere/scaffold 0.0.1-dev.18 → 0.0.1-dev.80
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/add-api.action.js +39 -0
- package/commonjs/src/add-api.command.js +41 -0
- package/commonjs/src/add.command.js +24 -0
- package/commonjs/src/add.module.js +26 -0
- package/commonjs/src/cli.js +9 -0
- package/commonjs/src/create.command.js +24 -0
- package/commonjs/src/create.module.js +26 -0
- package/commonjs/src/domain/prompt.js +64 -0
- package/commonjs/src/index.js +38 -0
- package/commonjs/src/models/compose.model.js +150 -0
- package/commonjs/src/models/config-yaml.model.js +88 -0
- package/commonjs/src/models/const.js +32 -0
- package/commonjs/src/models/dev-container.model.js +116 -0
- package/commonjs/src/models/docker-image.model.js +259 -0
- package/commonjs/src/models/env-file.model.js +50 -0
- package/commonjs/src/models/gitignore.model.js +43 -0
- package/commonjs/src/models/launch-json.model.js +74 -0
- package/commonjs/src/models/package-json.model.js +149 -0
- package/commonjs/src/models/project.model.js +134 -0
- package/commonjs/src/models/source-file.js +6 -0
- package/commonjs/src/models/tsconfig.model.js +34 -0
- package/commonjs/src/models/vitest-config.model.js +35 -0
- package/commonjs/src/models/vscode-settings.model.js +31 -0
- package/commonjs/src/program.js +57 -0
- package/commonjs/src/resolve-target-dir.js +19 -0
- package/commonjs/src/services/scaffold.service.js +62 -0
- package/commonjs/src/version.js +57 -0
- package/commonjs/src/webapi/api-name.js +95 -0
- package/commonjs/src/webapi/cli-options.js +101 -0
- package/commonjs/src/webapi/const.js +50 -0
- package/commonjs/src/webapi/create-api.js +237 -0
- package/commonjs/src/webapi/devcontainer/codebase-rag-mcp.js +166 -0
- package/commonjs/src/webapi/devcontainer/codebase-rag-mcp.ts +182 -0
- package/commonjs/src/webapi/devcontainer/host-scripts.js +52 -0
- package/commonjs/src/webapi/devcontainer/templates/codebase-rag.env.example +3 -0
- package/commonjs/src/webapi/devcontainer/templates/initialize.sh +169 -0
- package/commonjs/src/webapi/devcontainer/templates/post-create.sh +35 -0
- package/commonjs/src/webapi/devcontainer/templates/post-start.sh +65 -0
- package/commonjs/src/webapi/devcontainer/templates/tty-prompt.sh +38 -0
- package/commonjs/src/webapi/features/auth.feature.js +441 -0
- package/commonjs/src/webapi/features/auth0-cli.js +435 -0
- package/commonjs/src/webapi/features/biome-format.js +49 -0
- package/commonjs/src/webapi/features/database.feature.js +433 -0
- package/commonjs/src/webapi/features/finalize.feature.js +95 -0
- package/commonjs/src/webapi/features/postman.feature.js +324 -0
- package/commonjs/src/webapi/models/api-package-json.model.js +60 -0
- package/commonjs/src/webapi/models/auth-config.model.js +26 -0
- package/commonjs/src/webapi/models/controller-source-file.model.js +193 -0
- package/commonjs/src/webapi/models/github-ci.model.js +193 -0
- package/commonjs/src/webapi/models/main-source-file.model.js +167 -0
- package/commonjs/src/webapi/models/production-dockerfile.model.js +157 -0
- package/commonjs/src/webapi/models/sample-files.model.js +60 -0
- package/commonjs/src/webapi/models/webapi-image.model.js +27 -0
- package/commonjs/src/webapi/postman/hello-openapi.js +175 -0
- package/commonjs/src/webapi/postman/local-view.js +184 -0
- package/commonjs/src/webapi/postman/openapi-to-postman.js +202 -0
- package/commonjs/src/webapi/workspace-readme.js +110 -0
- package/commonjs/src/webapi.action.js +30 -0
- package/commonjs/src/webapi.command.js +45 -0
- package/es6/src/add-api.action.js +29 -0
- package/es6/src/add-api.command.js +31 -0
- package/es6/src/add.command.js +14 -0
- package/es6/src/add.module.js +16 -0
- package/es6/src/cli.js +5 -0
- package/es6/src/create.command.js +14 -0
- package/es6/src/create.module.js +16 -0
- package/es6/src/domain/prompt.js +43 -0
- package/es6/src/index.js +8 -0
- package/es6/src/models/compose.model.js +144 -0
- package/es6/src/models/config-yaml.model.js +76 -0
- package/es6/src/models/const.js +22 -0
- package/es6/src/models/dev-container.model.js +106 -0
- package/es6/src/models/docker-image.model.js +217 -0
- package/es6/src/models/env-file.model.js +46 -0
- package/es6/src/models/gitignore.model.js +33 -0
- package/es6/src/models/launch-json.model.js +64 -0
- package/es6/src/models/package-json.model.js +137 -0
- package/es6/src/models/project.model.js +119 -0
- package/es6/src/models/source-file.js +3 -0
- package/es6/src/models/tsconfig.model.js +24 -0
- package/es6/src/models/vitest-config.model.js +25 -0
- package/es6/src/models/vscode-settings.model.js +21 -0
- package/es6/src/program.js +39 -0
- package/es6/src/resolve-target-dir.js +9 -0
- package/es6/src/services/scaffold.service.js +52 -0
- package/es6/src/version.js +36 -0
- package/es6/src/webapi/api-name.js +59 -0
- package/es6/src/webapi/cli-options.js +36 -0
- package/es6/src/webapi/const.js +20 -0
- package/es6/src/webapi/create-api.js +217 -0
- package/es6/src/webapi/devcontainer/codebase-rag-mcp.js +156 -0
- package/es6/src/webapi/devcontainer/codebase-rag-mcp.ts +182 -0
- package/es6/src/webapi/devcontainer/host-scripts.js +31 -0
- package/es6/src/webapi/devcontainer/templates/codebase-rag.env.example +3 -0
- package/es6/src/webapi/devcontainer/templates/initialize.sh +169 -0
- package/es6/src/webapi/devcontainer/templates/post-create.sh +35 -0
- package/es6/src/webapi/devcontainer/templates/post-start.sh +65 -0
- package/es6/src/webapi/devcontainer/templates/tty-prompt.sh +38 -0
- package/es6/src/webapi/features/auth.feature.js +390 -0
- package/es6/src/webapi/features/auth0-cli.js +375 -0
- package/es6/src/webapi/features/biome-format.js +42 -0
- package/es6/src/webapi/features/database.feature.js +423 -0
- package/es6/src/webapi/features/finalize.feature.js +85 -0
- package/es6/src/webapi/features/postman.feature.js +258 -0
- package/es6/src/webapi/models/api-package-json.model.js +55 -0
- package/es6/src/webapi/models/auth-config.model.js +22 -0
- package/es6/src/webapi/models/controller-source-file.model.js +184 -0
- package/es6/src/webapi/models/github-ci.model.js +186 -0
- package/es6/src/webapi/models/main-source-file.model.js +163 -0
- package/es6/src/webapi/models/production-dockerfile.model.js +148 -0
- package/es6/src/webapi/models/sample-files.model.js +42 -0
- package/es6/src/webapi/models/webapi-image.model.js +20 -0
- package/es6/src/webapi/postman/hello-openapi.js +168 -0
- package/es6/src/webapi/postman/local-view.js +169 -0
- package/es6/src/webapi/postman/openapi-to-postman.js +179 -0
- package/es6/src/webapi/workspace-readme.js +89 -0
- package/es6/src/webapi.action.js +20 -0
- package/es6/src/webapi.command.js +35 -0
- package/package.json +8 -8
- package/types/src/add-api.action.d.ts +13 -0
- package/types/src/add-api.command.d.ts +7 -0
- package/types/src/add.command.d.ts +6 -0
- package/types/src/add.module.d.ts +14 -0
- package/types/src/cli.d.ts +2 -0
- package/types/src/create.command.d.ts +6 -0
- package/types/src/create.module.d.ts +14 -0
- package/types/src/domain/prompt.d.ts +4 -0
- package/types/src/models/compose.model.d.ts +64 -0
- package/types/src/models/config-yaml.model.d.ts +27 -0
- package/types/src/models/const.d.ts +20 -0
- package/types/src/models/dev-container.model.d.ts +37 -0
- package/types/src/models/docker-image.model.d.ts +84 -0
- package/types/src/models/env-file.model.d.ts +16 -0
- package/types/src/models/gitignore.model.d.ts +7 -0
- package/types/src/models/launch-json.model.d.ts +7 -0
- package/types/src/models/package-json.model.d.ts +35 -0
- package/types/src/models/project.model.d.ts +60 -0
- package/{src/models/source-file.ts → types/src/models/source-file.d.ts} +4 -6
- package/types/src/models/tsconfig.model.d.ts +5 -0
- package/types/src/models/vitest-config.model.d.ts +5 -0
- package/types/src/models/vscode-settings.model.d.ts +7 -0
- package/types/src/program.d.ts +3 -0
- package/{src/resolve-target-dir.ts → types/src/resolve-target-dir.d.ts} +1 -4
- package/types/src/services/scaffold.service.d.ts +22 -0
- package/types/src/version.d.ts +6 -0
- package/types/src/webapi/api-name.d.ts +14 -0
- package/types/src/webapi/cli-options.d.ts +6 -0
- package/{src/webapi/const.ts → types/src/webapi/const.d.ts} +7 -21
- package/types/src/webapi/create-api.d.ts +15 -0
- package/types/src/webapi/devcontainer/codebase-rag-mcp.d.ts +32 -0
- package/types/src/webapi/devcontainer/codebase-rag-mcp.ts +182 -0
- package/types/src/webapi/devcontainer/host-scripts.d.ts +7 -0
- package/types/src/webapi/devcontainer/templates/codebase-rag.env.example +3 -0
- package/types/src/webapi/devcontainer/templates/initialize.sh +169 -0
- package/types/src/webapi/devcontainer/templates/post-create.sh +35 -0
- package/types/src/webapi/devcontainer/templates/post-start.sh +65 -0
- package/types/src/webapi/devcontainer/templates/tty-prompt.sh +38 -0
- package/types/src/webapi/features/auth.feature.d.ts +10 -0
- package/types/src/webapi/features/auth0-cli.d.ts +80 -0
- package/types/src/webapi/features/biome-format.d.ts +5 -0
- package/types/src/webapi/features/database.feature.d.ts +7 -0
- package/types/src/webapi/features/finalize.feature.d.ts +2 -0
- package/types/src/webapi/features/postman.feature.d.ts +16 -0
- package/types/src/webapi/models/api-package-json.model.d.ts +18 -0
- package/types/src/webapi/models/auth-config.model.d.ts +26 -0
- package/types/src/webapi/models/controller-source-file.model.d.ts +46 -0
- package/types/src/webapi/models/github-ci.model.d.ts +9 -0
- package/types/src/webapi/models/main-source-file.model.d.ts +54 -0
- package/types/src/webapi/models/production-dockerfile.model.d.ts +23 -0
- package/types/src/webapi/models/sample-files.model.d.ts +7 -0
- package/types/src/webapi/models/webapi-image.model.d.ts +12 -0
- package/types/src/webapi/postman/hello-openapi.d.ts +19 -0
- package/types/src/webapi/postman/local-view.d.ts +17 -0
- package/types/src/webapi/postman/openapi-to-postman.d.ts +62 -0
- package/types/src/webapi/workspace-readme.d.ts +18 -0
- package/types/src/webapi.action.d.ts +14 -0
- package/types/src/webapi.command.d.ts +11 -0
- package/src/add-api.action.ts +0 -25
- package/src/add-api.command.ts +0 -31
- package/src/add.command.ts +0 -20
- package/src/add.module.ts +0 -11
- package/src/cli.ts +0 -4
- package/src/create.command.ts +0 -20
- package/src/create.module.ts +0 -11
- package/src/domain/prompt.ts +0 -50
- package/src/models/compose.model.ts +0 -205
- package/src/models/config-yaml.model.ts +0 -83
- package/src/models/const.ts +0 -20
- package/src/models/dev-container.model.ts +0 -136
- package/src/models/docker-image.model.ts +0 -343
- package/src/models/env-file.model.ts +0 -45
- package/src/models/gitignore.model.ts +0 -35
- package/src/models/launch-json.model.ts +0 -60
- package/src/models/package-json.model.ts +0 -169
- package/src/models/project.model.ts +0 -141
- package/src/models/tsconfig.model.ts +0 -29
- package/src/models/vitest-config.model.ts +0 -26
- package/src/models/vscode-settings.model.ts +0 -24
- package/src/program.ts +0 -63
- package/src/services/scaffold.service.ts +0 -89
- package/src/version.ts +0 -56
- package/src/webapi/api-name.ts +0 -73
- package/src/webapi/cli-options.ts +0 -56
- package/src/webapi/create-api.ts +0 -275
- package/src/webapi/devcontainer/host-scripts.ts +0 -35
- package/src/webapi/features/auth.feature.ts +0 -454
- package/src/webapi/features/auth0-cli.ts +0 -421
- package/src/webapi/features/biome-format.ts +0 -34
- package/src/webapi/features/database.feature.ts +0 -522
- package/src/webapi/features/finalize.feature.ts +0 -112
- package/src/webapi/features/postman.feature.ts +0 -287
- package/src/webapi/models/api-package-json.model.ts +0 -60
- package/src/webapi/models/auth-config.model.ts +0 -36
- package/src/webapi/models/controller-source-file.model.ts +0 -232
- package/src/webapi/models/github-ci.model.ts +0 -188
- package/src/webapi/models/main-source-file.model.ts +0 -208
- package/src/webapi/models/production-dockerfile.model.ts +0 -162
- package/src/webapi/models/sample-files.model.ts +0 -45
- package/src/webapi/models/webapi-image.model.ts +0 -21
- package/src/webapi/postman/hello-openapi.ts +0 -92
- package/src/webapi/postman/local-view.ts +0 -195
- package/src/webapi/postman/openapi-to-postman.ts +0 -208
- package/src/webapi/workspace-readme.ts +0 -192
- package/src/webapi.action.ts +0 -22
- package/src/webapi.command.ts +0 -41
- package/tests/auth-postman.wiring.spec.ts +0 -263
- package/tests/auth0-cli.spec.ts +0 -232
- package/tests/biome-format.spec.ts +0 -49
- package/tests/cli.integration.spec.ts +0 -658
- package/tests/compose.model.spec.ts +0 -51
- package/tests/container-image.model.spec.ts +0 -162
- package/tests/dev-container.model.spec.ts +0 -29
- package/tests/devcontainer-base-image.spec.ts +0 -32
- package/tests/hello-di-inject.scaffold.spec.ts +0 -18
- package/tests/hello-route.contract.spec.ts +0 -94
- package/tests/package-json.order.spec.ts +0 -59
- package/tests/postman-from-openapi.spec.ts +0 -197
- package/tests/seed-devcontainer-templates.ts +0 -40
- package/tests/webapi/devcontainer/codebase-rag-mcp.spec.ts +0 -96
- /package/{src/index.ts → types/src/index.d.ts} +0 -0
|
@@ -0,0 +1,324 @@
|
|
|
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 POSTMAN_CALLBACKS () {
|
|
13
|
+
return POSTMAN_CALLBACKS;
|
|
14
|
+
},
|
|
15
|
+
get POSTMAN_SCOPES () {
|
|
16
|
+
return POSTMAN_SCOPES;
|
|
17
|
+
},
|
|
18
|
+
get PostmanFeature () {
|
|
19
|
+
return PostmanFeature;
|
|
20
|
+
},
|
|
21
|
+
get buildHelloOpenApiDocument () {
|
|
22
|
+
return _helloopenapi.buildHelloOpenApiDocument;
|
|
23
|
+
},
|
|
24
|
+
get buildHybridPostmanCollection () {
|
|
25
|
+
return buildHybridPostmanCollection;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
const _nodecrypto = require("node:crypto");
|
|
29
|
+
const _nodefs = require("node:fs");
|
|
30
|
+
const _nodepath = require("node:path");
|
|
31
|
+
const _prompt = require("../../domain/prompt.js");
|
|
32
|
+
const _const = require("../../models/const.js");
|
|
33
|
+
const _helloopenapi = require("../postman/hello-openapi.js");
|
|
34
|
+
const _localview = require("../postman/local-view.js");
|
|
35
|
+
const _openapitopostman = require("../postman/openapi-to-postman.js");
|
|
36
|
+
const _auth0cli = /*#__PURE__*/ _interop_require_wildcard(require("./auth0-cli.js"));
|
|
37
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
38
|
+
if (typeof WeakMap !== "function") return null;
|
|
39
|
+
var cacheBabelInterop = new WeakMap();
|
|
40
|
+
var cacheNodeInterop = new WeakMap();
|
|
41
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
42
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
43
|
+
})(nodeInterop);
|
|
44
|
+
}
|
|
45
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
46
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
47
|
+
return obj;
|
|
48
|
+
}
|
|
49
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
50
|
+
return {
|
|
51
|
+
default: obj
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
55
|
+
if (cache && cache.has(obj)) {
|
|
56
|
+
return cache.get(obj);
|
|
57
|
+
}
|
|
58
|
+
var newObj = {
|
|
59
|
+
__proto__: null
|
|
60
|
+
};
|
|
61
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
62
|
+
for(var key in obj){
|
|
63
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
64
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
65
|
+
if (desc && (desc.get || desc.set)) {
|
|
66
|
+
Object.defineProperty(newObj, key, desc);
|
|
67
|
+
} else {
|
|
68
|
+
newObj[key] = obj[key];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
newObj.default = obj;
|
|
73
|
+
if (cache) {
|
|
74
|
+
cache.set(obj, newObj);
|
|
75
|
+
}
|
|
76
|
+
return newObj;
|
|
77
|
+
}
|
|
78
|
+
/** Postman OAuth callback URLs (popup + "Authorize using browser"). */ const POSTMAN_CALLBACKS = [
|
|
79
|
+
"https://oauth.pstmn.io/v1/callback",
|
|
80
|
+
"https://oauth.pstmn.io/v1/browser-callback"
|
|
81
|
+
];
|
|
82
|
+
/** Scopes requested for Auth0 access tokens (OIDC + Hello CASL permissions). */ const POSTMAN_SCOPES = [
|
|
83
|
+
"openid",
|
|
84
|
+
"profile",
|
|
85
|
+
"email",
|
|
86
|
+
"read:Hello",
|
|
87
|
+
"create:Hello",
|
|
88
|
+
"update:Hello",
|
|
89
|
+
"delete:Hello"
|
|
90
|
+
].join(" ");
|
|
91
|
+
const COLLECTION_DESCRIPTION = "Open the project root in Postman Local View (not the postman/ folder). " + "Select the Local environment, then Authorization → Get New Access Token (PKCE). " + "Routes are generated from OpenAPI; Auth0 overlay is hand-authored.";
|
|
92
|
+
async function getOptions(_workspace, cliOptions) {
|
|
93
|
+
if (cliOptions.postmanProvider != null) return {};
|
|
94
|
+
const choices = [
|
|
95
|
+
{
|
|
96
|
+
label: "none",
|
|
97
|
+
description: "skip"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
label: "local",
|
|
101
|
+
description: "Local View / Native Git files (no API key)"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
label: "api",
|
|
105
|
+
description: "also upload to Postman.com (needs API key)"
|
|
106
|
+
}
|
|
107
|
+
];
|
|
108
|
+
const selected = await (0, _prompt.pick)("\n Postman: ", choices, (c)=>`${c.label} — ${c.description}`);
|
|
109
|
+
const provider = selected?.label ?? "none";
|
|
110
|
+
if (provider === "none") return {
|
|
111
|
+
postmanProvider: "none"
|
|
112
|
+
};
|
|
113
|
+
if (provider === "local") return {
|
|
114
|
+
postmanProvider: "local"
|
|
115
|
+
};
|
|
116
|
+
const apiKey = process.env.POSTMAN_API_KEY ?? await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../../domain/prompt.js"))).then((m)=>m.ask("\n Postman API key (app.getpostman.com/settings/me/api-keys): "));
|
|
117
|
+
const headers = {
|
|
118
|
+
"X-Api-Key": apiKey,
|
|
119
|
+
"Content-Type": "application/json"
|
|
120
|
+
};
|
|
121
|
+
const wsRes = await fetch("https://api.getpostman.com/workspaces", {
|
|
122
|
+
headers
|
|
123
|
+
});
|
|
124
|
+
if (!wsRes.ok) {
|
|
125
|
+
console.error("\n Postman API key invalid — falling back to local files.");
|
|
126
|
+
return {
|
|
127
|
+
postmanProvider: "local"
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
const { workspaces } = await wsRes.json();
|
|
131
|
+
const wsChoices = [
|
|
132
|
+
{
|
|
133
|
+
label: "<new workspace>",
|
|
134
|
+
id: null
|
|
135
|
+
},
|
|
136
|
+
...workspaces.map((w)=>({
|
|
137
|
+
label: `${w.name} (${w.type})`,
|
|
138
|
+
id: w.id
|
|
139
|
+
}))
|
|
140
|
+
];
|
|
141
|
+
const wsPicked = await (0, _prompt.pick)("\n Postman workspace: ", wsChoices, (c)=>c.label);
|
|
142
|
+
let workspaceId;
|
|
143
|
+
if (!wsPicked || wsPicked.id === null) {
|
|
144
|
+
const { ask } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../../domain/prompt.js")));
|
|
145
|
+
const wsName = await ask(` Workspace name: `);
|
|
146
|
+
const createRes = await fetch("https://api.getpostman.com/workspaces", {
|
|
147
|
+
method: "POST",
|
|
148
|
+
headers,
|
|
149
|
+
body: JSON.stringify({
|
|
150
|
+
workspace: {
|
|
151
|
+
name: wsName,
|
|
152
|
+
type: "personal"
|
|
153
|
+
}
|
|
154
|
+
})
|
|
155
|
+
});
|
|
156
|
+
const { workspace: ws } = await createRes.json();
|
|
157
|
+
workspaceId = ws.id;
|
|
158
|
+
console.log(` ✓ Workspace created: ${wsName}`);
|
|
159
|
+
} else {
|
|
160
|
+
workspaceId = wsPicked.id;
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
postmanProvider: "api",
|
|
164
|
+
apiKey,
|
|
165
|
+
workspaceId
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
async function buildHybridPostmanCollection(projectName, auth) {
|
|
169
|
+
const openapi = (0, _helloopenapi.buildHelloOpenApiDocument)(projectName);
|
|
170
|
+
const base = await (0, _openapitopostman.openApiToPostmanCollection)(openapi);
|
|
171
|
+
if (base.info._postman_id == null) {
|
|
172
|
+
base.info._postman_id = (0, _nodecrypto.randomUUID)();
|
|
173
|
+
}
|
|
174
|
+
return (0, _openapitopostman.applyPostmanAuthOverlay)(base, projectName, auth, {
|
|
175
|
+
callbacks: POSTMAN_CALLBACKS,
|
|
176
|
+
scopes: POSTMAN_SCOPES,
|
|
177
|
+
description: COLLECTION_DESCRIPTION
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
/** Read a previously scaffolded auth0ClientId so re-scaffold never blanks it. */ function readExistingSpaClientId(targetDir, projectName) {
|
|
181
|
+
const envPath = (0, _nodepath.join)(targetDir, "postman/environments", `${projectName}-Local.environment.yaml`);
|
|
182
|
+
if (!(0, _nodefs.existsSync)(envPath)) return undefined;
|
|
183
|
+
const text = (0, _nodefs.readFileSync)(envPath, "utf8");
|
|
184
|
+
const match = text.match(/key:\s*auth0ClientId\s*\n\s*value:\s*["']?([^"'\n]+)/);
|
|
185
|
+
const value = match?.[1]?.trim();
|
|
186
|
+
return value && value.length > 0 ? value : undefined;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Resolve the Postman SPA client id. Never returns empty — preserves an existing
|
|
190
|
+
* env value on Auth0 failure, otherwise throws so we do not write a blank env.
|
|
191
|
+
*/ function resolveSpaClientId(workspace) {
|
|
192
|
+
const appName = `${workspace.name} Postman`;
|
|
193
|
+
try {
|
|
194
|
+
const app = _auth0cli.ensureSpaApp(appName, [
|
|
195
|
+
...POSTMAN_CALLBACKS
|
|
196
|
+
]);
|
|
197
|
+
console.log(app.reused ? ` ✓ Reusing Auth0 SPA app for Postman PKCE (${app.client_id})` : ` ✓ Auth0 SPA app created for Postman PKCE (${app.client_id})`);
|
|
198
|
+
try {
|
|
199
|
+
_auth0cli.enableConnectionForClient(_auth0cli.DB_CONNECTION_NAME, app.client_id);
|
|
200
|
+
console.log(` ✓ Enabled ${_auth0cli.DB_CONNECTION_NAME} on Postman SPA`);
|
|
201
|
+
} catch (err) {
|
|
202
|
+
console.error(` ✗ Failed to enable DB connection on SPA: ${err instanceof Error ? err.message : err}`);
|
|
203
|
+
}
|
|
204
|
+
return app.client_id;
|
|
205
|
+
} catch (err) {
|
|
206
|
+
const existing = readExistingSpaClientId(workspace.targetDir, workspace.name);
|
|
207
|
+
if (existing) {
|
|
208
|
+
console.error(` ✗ Failed to ensure Auth0 SPA app (${err instanceof Error ? err.message : err})`);
|
|
209
|
+
console.log(` ✓ Keeping existing auth0ClientId from Postman environment (${existing})`);
|
|
210
|
+
return existing;
|
|
211
|
+
}
|
|
212
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
213
|
+
// Entity-limit messages are already actionable; avoid burying them.
|
|
214
|
+
if (_auth0cli.isAuth0EntityLimitError(err)) {
|
|
215
|
+
throw new Error(detail);
|
|
216
|
+
}
|
|
217
|
+
throw new Error(`Failed to ensure Auth0 SPA app for Postman — auth0ClientId would be empty: ${detail}`);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
async function scaffold(workspace, options) {
|
|
221
|
+
if (options.postmanProvider === "none" || options.postmanProvider == null) return;
|
|
222
|
+
const authConfigModel = workspace.getModel(_const.WELL_KNOWN_FILES.AUTH_CONFIG);
|
|
223
|
+
const authCfg = authConfigModel?.config;
|
|
224
|
+
const spaClientId = authCfg?.issuerBaseUrl ? resolveSpaClientId(workspace) : undefined;
|
|
225
|
+
const auth0Env = authCfg?.issuerBaseUrl ? {
|
|
226
|
+
auth0Domain: authCfg.issuerBaseUrl.replace(/^https?:\/\//, ""),
|
|
227
|
+
auth0Audience: authCfg.audience,
|
|
228
|
+
auth0ClientId: spaClientId
|
|
229
|
+
} : undefined;
|
|
230
|
+
const projectName = workspace.name;
|
|
231
|
+
const envName = `${projectName} Local`;
|
|
232
|
+
const collection = await buildHybridPostmanCollection(projectName, auth0Env);
|
|
233
|
+
const localFiles = (0, _localview.buildLocalViewFilesFromCollection)(collection, projectName, auth0Env, {
|
|
234
|
+
callbacks: POSTMAN_CALLBACKS,
|
|
235
|
+
scopes: POSTMAN_SCOPES
|
|
236
|
+
});
|
|
237
|
+
const envYaml = (0, _localview.buildEnvironmentYaml)(envName, auth0Env, {
|
|
238
|
+
callbacks: POSTMAN_CALLBACKS,
|
|
239
|
+
scopes: POSTMAN_SCOPES
|
|
240
|
+
});
|
|
241
|
+
workspace.addFile({
|
|
242
|
+
files: ()=>[
|
|
243
|
+
{
|
|
244
|
+
filePath: ".postman/resources.yaml",
|
|
245
|
+
content: [
|
|
246
|
+
"# Open this project root in Postman (Files → Open folder), not the postman/ subfolder.",
|
|
247
|
+
"# Postman fills workspace.id when you connect Local View.",
|
|
248
|
+
"#",
|
|
249
|
+
"# All resources under postman/ are registered automatically.",
|
|
250
|
+
"# Route requests are generated from OpenAPI; Auth0 overlay is hand-authored.",
|
|
251
|
+
""
|
|
252
|
+
].join("\n")
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
filePath: `postman/environments/${projectName}-Local.environment.yaml`,
|
|
256
|
+
content: envYaml
|
|
257
|
+
},
|
|
258
|
+
...localFiles
|
|
259
|
+
]
|
|
260
|
+
});
|
|
261
|
+
if (options.postmanProvider === "api" && options.apiKey) {
|
|
262
|
+
const headers = {
|
|
263
|
+
"X-Api-Key": options.apiKey,
|
|
264
|
+
"Content-Type": "application/json"
|
|
265
|
+
};
|
|
266
|
+
const colRes = await fetch(`https://api.getpostman.com/collections?workspace=${options.workspaceId}`, {
|
|
267
|
+
method: "POST",
|
|
268
|
+
headers,
|
|
269
|
+
body: JSON.stringify({
|
|
270
|
+
collection
|
|
271
|
+
})
|
|
272
|
+
});
|
|
273
|
+
if (colRes.ok) {
|
|
274
|
+
console.log(" ✓ Postman collection uploaded");
|
|
275
|
+
} else {
|
|
276
|
+
console.error(" ✗ Failed to upload Postman collection");
|
|
277
|
+
}
|
|
278
|
+
const envValues = [
|
|
279
|
+
{
|
|
280
|
+
key: "baseUrl",
|
|
281
|
+
value: "http://localhost:3000",
|
|
282
|
+
enabled: true
|
|
283
|
+
},
|
|
284
|
+
...auth0Env?.auth0Domain ? [
|
|
285
|
+
{
|
|
286
|
+
key: "auth0Domain",
|
|
287
|
+
value: auth0Env.auth0Domain,
|
|
288
|
+
enabled: true
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
key: "auth0Audience",
|
|
292
|
+
value: auth0Env.auth0Audience ?? "",
|
|
293
|
+
enabled: true
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
key: "auth0ClientId",
|
|
297
|
+
value: auth0Env.auth0ClientId ?? "",
|
|
298
|
+
enabled: true
|
|
299
|
+
}
|
|
300
|
+
] : []
|
|
301
|
+
];
|
|
302
|
+
const envRes = await fetch(`https://api.getpostman.com/environments?workspace=${options.workspaceId}`, {
|
|
303
|
+
method: "POST",
|
|
304
|
+
headers,
|
|
305
|
+
body: JSON.stringify({
|
|
306
|
+
environment: {
|
|
307
|
+
name: envName,
|
|
308
|
+
values: envValues
|
|
309
|
+
}
|
|
310
|
+
})
|
|
311
|
+
});
|
|
312
|
+
if (envRes.ok) {
|
|
313
|
+
console.log(" ✓ Postman environment uploaded");
|
|
314
|
+
} else {
|
|
315
|
+
console.error(" ✗ Failed to upload Postman environment");
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
const PostmanFeature = {
|
|
320
|
+
getOptions,
|
|
321
|
+
scaffold
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvZmVhdHVyZXMvcG9zdG1hbi5mZWF0dXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCB7IGV4aXN0c1N5bmMsIHJlYWRGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgcGljayB9IGZyb20gXCIuLi8uLi9kb21haW4vcHJvbXB0LmpzXCI7XG5pbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBXb3Jrc3BhY2VTY2FmZm9sZCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvcHJvamVjdC5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NjYWZmb2xkLnNlcnZpY2UuanNcIjtcbmltcG9ydCB0eXBlIHsgQXV0aENvbmZpZ01vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9hdXRoLWNvbmZpZy5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgYnVpbGRIZWxsb09wZW5BcGlEb2N1bWVudCB9IGZyb20gXCIuLi9wb3N0bWFuL2hlbGxvLW9wZW5hcGkuanNcIjtcbmltcG9ydCB7XG5cdGJ1aWxkRW52aXJvbm1lbnRZYW1sLFxuXHRidWlsZExvY2FsVmlld0ZpbGVzRnJvbUNvbGxlY3Rpb24sXG59IGZyb20gXCIuLi9wb3N0bWFuL2xvY2FsLXZpZXcuanNcIjtcbmltcG9ydCB7XG5cdHR5cGUgQXV0aDBFbnYsXG5cdGFwcGx5UG9zdG1hbkF1dGhPdmVybGF5LFxuXHRvcGVuQXBpVG9Qb3N0bWFuQ29sbGVjdGlvbixcbn0gZnJvbSBcIi4uL3Bvc3RtYW4vb3BlbmFwaS10by1wb3N0bWFuLmpzXCI7XG5pbXBvcnQgKiBhcyBhdXRoMENsaSBmcm9tIFwiLi9hdXRoMC1jbGkuanNcIjtcblxuLyoqIFBvc3RtYW4gT0F1dGggY2FsbGJhY2sgVVJMcyAocG9wdXAgKyBcIkF1dGhvcml6ZSB1c2luZyBicm93c2VyXCIpLiAqL1xuY29uc3QgUE9TVE1BTl9DQUxMQkFDS1MgPSBbXG5cdFwiaHR0cHM6Ly9vYXV0aC5wc3Rtbi5pby92MS9jYWxsYmFja1wiLFxuXHRcImh0dHBzOi8vb2F1dGgucHN0bW4uaW8vdjEvYnJvd3Nlci1jYWxsYmFja1wiLFxuXSBhcyBjb25zdDtcblxuLyoqIFNjb3BlcyByZXF1ZXN0ZWQgZm9yIEF1dGgwIGFjY2VzcyB0b2tlbnMgKE9JREMgKyBIZWxsbyBDQVNMIHBlcm1pc3Npb25zKS4gKi9cbmNvbnN0IFBPU1RNQU5fU0NPUEVTID0gW1xuXHRcIm9wZW5pZFwiLFxuXHRcInByb2ZpbGVcIixcblx0XCJlbWFpbFwiLFxuXHRcInJlYWQ6SGVsbG9cIixcblx0XCJjcmVhdGU6SGVsbG9cIixcblx0XCJ1cGRhdGU6SGVsbG9cIixcblx0XCJkZWxldGU6SGVsbG9cIixcbl0uam9pbihcIiBcIik7XG5cbmNvbnN0IENPTExFQ1RJT05fREVTQ1JJUFRJT04gPVxuXHRcIk9wZW4gdGhlIHByb2plY3Qgcm9vdCBpbiBQb3N0bWFuIExvY2FsIFZpZXcgKG5vdCB0aGUgcG9zdG1hbi8gZm9sZGVyKS4gXCIgK1xuXHRcIlNlbGVjdCB0aGUgTG9jYWwgZW52aXJvbm1lbnQsIHRoZW4gQXV0aG9yaXphdGlvbiDihpIgR2V0IE5ldyBBY2Nlc3MgVG9rZW4gKFBLQ0UpLiBcIiArXG5cdFwiUm91dGVzIGFyZSBnZW5lcmF0ZWQgZnJvbSBPcGVuQVBJOyBBdXRoMCBvdmVybGF5IGlzIGhhbmQtYXV0aG9yZWQuXCI7XG5cbmV4cG9ydCB0eXBlIFBvc3RtYW5PcHRpb25zID0ge1xuXHRwb3N0bWFuUHJvdmlkZXI/OiBcImFwaVwiIHwgXCJsb2NhbFwiIHwgXCJub25lXCI7XG5cdGFwaUtleT86IHN0cmluZztcblx0d29ya3NwYWNlSWQ/OiBzdHJpbmc7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBnZXRPcHRpb25zKFxuXHRfd29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCxcblx0Y2xpT3B0aW9uczogUGFydGlhbDxQb3N0bWFuT3B0aW9ucz4sXG4pOiBQcm9taXNlPFBhcnRpYWw8UG9zdG1hbk9wdGlvbnM+PiB7XG5cdGlmIChjbGlPcHRpb25zLnBvc3RtYW5Qcm92aWRlciAhPSBudWxsKSByZXR1cm4ge307XG5cblx0Y29uc3QgY2hvaWNlcyA9IFtcblx0XHR7IGxhYmVsOiBcIm5vbmVcIiBhcyBjb25zdCwgZGVzY3JpcHRpb246IFwic2tpcFwiIH0sXG5cdFx0e1xuXHRcdFx0bGFiZWw6IFwibG9jYWxcIiBhcyBjb25zdCxcblx0XHRcdGRlc2NyaXB0aW9uOiBcIkxvY2FsIFZpZXcgLyBOYXRpdmUgR2l0IGZpbGVzIChubyBBUEkga2V5KVwiLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bGFiZWw6IFwiYXBpXCIgYXMgY29uc3QsXG5cdFx0XHRkZXNjcmlwdGlvbjogXCJhbHNvIHVwbG9hZCB0byBQb3N0bWFuLmNvbSAobmVlZHMgQVBJIGtleSlcIixcblx0XHR9LFxuXHRdO1xuXHRjb25zdCBzZWxlY3RlZCA9IGF3YWl0IHBpY2soXG5cdFx0XCJcXG4gIFBvc3RtYW46IFwiLFxuXHRcdGNob2ljZXMsXG5cdFx0KGMpID0+IGAke2MubGFiZWx9IOKAlCAke2MuZGVzY3JpcHRpb259YCxcblx0KTtcblx0Y29uc3QgcHJvdmlkZXIgPSBzZWxlY3RlZD8ubGFiZWwgPz8gXCJub25lXCI7XG5cblx0aWYgKHByb3ZpZGVyID09PSBcIm5vbmVcIikgcmV0dXJuIHsgcG9zdG1hblByb3ZpZGVyOiBcIm5vbmVcIiB9O1xuXHRpZiAocHJvdmlkZXIgPT09IFwibG9jYWxcIikgcmV0dXJuIHsgcG9zdG1hblByb3ZpZGVyOiBcImxvY2FsXCIgfTtcblxuXHRjb25zdCBhcGlLZXkgPVxuXHRcdHByb2Nlc3MuZW52LlBPU1RNQU5fQVBJX0tFWSA/P1xuXHRcdChhd2FpdCBpbXBvcnQoXCIuLi8uLi9kb21haW4vcHJvbXB0LmpzXCIpLnRoZW4oKG0pID0+XG5cdFx0XHRtLmFzayhcIlxcbiAgUG9zdG1hbiBBUEkga2V5IChhcHAuZ2V0cG9zdG1hbi5jb20vc2V0dGluZ3MvbWUvYXBpLWtleXMpOiBcIiksXG5cdFx0KSk7XG5cblx0Y29uc3QgaGVhZGVycyA9IHsgXCJYLUFwaS1LZXlcIjogYXBpS2V5LCBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9O1xuXHRjb25zdCB3c1JlcyA9IGF3YWl0IGZldGNoKFwiaHR0cHM6Ly9hcGkuZ2V0cG9zdG1hbi5jb20vd29ya3NwYWNlc1wiLCB7IGhlYWRlcnMgfSk7XG5cblx0aWYgKCF3c1Jlcy5vaykge1xuXHRcdGNvbnNvbGUuZXJyb3IoXCJcXG4gIFBvc3RtYW4gQVBJIGtleSBpbnZhbGlkIOKAlCBmYWxsaW5nIGJhY2sgdG8gbG9jYWwgZmlsZXMuXCIpO1xuXHRcdHJldHVybiB7IHBvc3RtYW5Qcm92aWRlcjogXCJsb2NhbFwiIH07XG5cdH1cblxuXHRjb25zdCB7IHdvcmtzcGFjZXMgfSA9IChhd2FpdCB3c1Jlcy5qc29uKCkpIGFzIHtcblx0XHR3b3Jrc3BhY2VzOiBBcnJheTx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nIH0+O1xuXHR9O1xuXG5cdHR5cGUgV3NDaG9pY2UgPSB7IGxhYmVsOiBzdHJpbmc7IGlkOiBzdHJpbmcgfCBudWxsIH07XG5cdGNvbnN0IHdzQ2hvaWNlczogV3NDaG9pY2VbXSA9IFtcblx0XHR7IGxhYmVsOiBcIjxuZXcgd29ya3NwYWNlPlwiLCBpZDogbnVsbCB9LFxuXHRcdC4uLndvcmtzcGFjZXMubWFwKCh3KSA9PiAoeyBsYWJlbDogYCR7dy5uYW1lfSAoJHt3LnR5cGV9KWAsIGlkOiB3LmlkIH0pKSxcblx0XTtcblxuXHRjb25zdCB3c1BpY2tlZCA9IGF3YWl0IHBpY2soXCJcXG4gIFBvc3RtYW4gd29ya3NwYWNlOiBcIiwgd3NDaG9pY2VzLCAoYykgPT4gYy5sYWJlbCk7XG5cblx0bGV0IHdvcmtzcGFjZUlkOiBzdHJpbmc7XG5cdGlmICghd3NQaWNrZWQgfHwgd3NQaWNrZWQuaWQgPT09IG51bGwpIHtcblx0XHRjb25zdCB7IGFzayB9ID0gYXdhaXQgaW1wb3J0KFwiLi4vLi4vZG9tYWluL3Byb21wdC5qc1wiKTtcblx0XHRjb25zdCB3c05hbWUgPSBhd2FpdCBhc2soYCAgV29ya3NwYWNlIG5hbWU6IGApO1xuXHRcdGNvbnN0IGNyZWF0ZVJlcyA9IGF3YWl0IGZldGNoKFwiaHR0cHM6Ly9hcGkuZ2V0cG9zdG1hbi5jb20vd29ya3NwYWNlc1wiLCB7XG5cdFx0XHRtZXRob2Q6IFwiUE9TVFwiLFxuXHRcdFx0aGVhZGVycyxcblx0XHRcdGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgd29ya3NwYWNlOiB7IG5hbWU6IHdzTmFtZSwgdHlwZTogXCJwZXJzb25hbFwiIH0gfSksXG5cdFx0fSk7XG5cdFx0Y29uc3QgeyB3b3Jrc3BhY2U6IHdzIH0gPSAoYXdhaXQgY3JlYXRlUmVzLmpzb24oKSkgYXMgeyB3b3Jrc3BhY2U6IHsgaWQ6IHN0cmluZyB9IH07XG5cdFx0d29ya3NwYWNlSWQgPSB3cy5pZDtcblx0XHRjb25zb2xlLmxvZyhgICDinJMgV29ya3NwYWNlIGNyZWF0ZWQ6ICR7d3NOYW1lfWApO1xuXHR9IGVsc2Uge1xuXHRcdHdvcmtzcGFjZUlkID0gd3NQaWNrZWQuaWQ7XG5cdH1cblxuXHRyZXR1cm4geyBwb3N0bWFuUHJvdmlkZXI6IFwiYXBpXCIsIGFwaUtleSwgd29ya3NwYWNlSWQgfTtcbn1cblxuLyoqIEJ1aWxkIFBvc3RtYW4gY29sbGVjdGlvbjogT3BlbkFQSSByb3V0ZXMgKyBBdXRoMCBhdXRoIG92ZXJsYXkuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRIeWJyaWRQb3N0bWFuQ29sbGVjdGlvbihwcm9qZWN0TmFtZTogc3RyaW5nLCBhdXRoPzogQXV0aDBFbnYpIHtcblx0Y29uc3Qgb3BlbmFwaSA9IGJ1aWxkSGVsbG9PcGVuQXBpRG9jdW1lbnQocHJvamVjdE5hbWUpO1xuXHRjb25zdCBiYXNlID0gYXdhaXQgb3BlbkFwaVRvUG9zdG1hbkNvbGxlY3Rpb24ob3BlbmFwaSk7XG5cdGlmIChiYXNlLmluZm8uX3Bvc3RtYW5faWQgPT0gbnVsbCkge1xuXHRcdGJhc2UuaW5mby5fcG9zdG1hbl9pZCA9IHJhbmRvbVVVSUQoKTtcblx0fVxuXHRyZXR1cm4gYXBwbHlQb3N0bWFuQXV0aE92ZXJsYXkoYmFzZSwgcHJvamVjdE5hbWUsIGF1dGgsIHtcblx0XHRjYWxsYmFja3M6IFBPU1RNQU5fQ0FMTEJBQ0tTLFxuXHRcdHNjb3BlczogUE9TVE1BTl9TQ09QRVMsXG5cdFx0ZGVzY3JpcHRpb246IENPTExFQ1RJT05fREVTQ1JJUFRJT04sXG5cdH0pO1xufVxuXG4vKiogUmVhZCBhIHByZXZpb3VzbHkgc2NhZmZvbGRlZCBhdXRoMENsaWVudElkIHNvIHJlLXNjYWZmb2xkIG5ldmVyIGJsYW5rcyBpdC4gKi9cbmZ1bmN0aW9uIHJlYWRFeGlzdGluZ1NwYUNsaWVudElkKHRhcmdldERpcjogc3RyaW5nLCBwcm9qZWN0TmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgZW52UGF0aCA9IGpvaW4oXG5cdFx0dGFyZ2V0RGlyLFxuXHRcdFwicG9zdG1hbi9lbnZpcm9ubWVudHNcIixcblx0XHRgJHtwcm9qZWN0TmFtZX0tTG9jYWwuZW52aXJvbm1lbnQueWFtbGAsXG5cdCk7XG5cdGlmICghZXhpc3RzU3luYyhlbnZQYXRoKSkgcmV0dXJuIHVuZGVmaW5lZDtcblx0Y29uc3QgdGV4dCA9IHJlYWRGaWxlU3luYyhlbnZQYXRoLCBcInV0ZjhcIik7XG5cdGNvbnN0IG1hdGNoID0gdGV4dC5tYXRjaCgva2V5OlxccyphdXRoMENsaWVudElkXFxzKlxcblxccyp2YWx1ZTpcXHMqW1wiJ10/KFteXCInXFxuXSspLyk7XG5cdGNvbnN0IHZhbHVlID0gbWF0Y2g/LlsxXT8udHJpbSgpO1xuXHRyZXR1cm4gdmFsdWUgJiYgdmFsdWUubGVuZ3RoID4gMCA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIFBvc3RtYW4gU1BBIGNsaWVudCBpZC4gTmV2ZXIgcmV0dXJucyBlbXB0eSDigJQgcHJlc2VydmVzIGFuIGV4aXN0aW5nXG4gKiBlbnYgdmFsdWUgb24gQXV0aDAgZmFpbHVyZSwgb3RoZXJ3aXNlIHRocm93cyBzbyB3ZSBkbyBub3Qgd3JpdGUgYSBibGFuayBlbnYuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVTcGFDbGllbnRJZCh3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkKTogc3RyaW5nIHtcblx0Y29uc3QgYXBwTmFtZSA9IGAke3dvcmtzcGFjZS5uYW1lfSBQb3N0bWFuYDtcblx0dHJ5IHtcblx0XHRjb25zdCBhcHAgPSBhdXRoMENsaS5lbnN1cmVTcGFBcHAoYXBwTmFtZSwgWy4uLlBPU1RNQU5fQ0FMTEJBQ0tTXSk7XG5cdFx0Y29uc29sZS5sb2coXG5cdFx0XHRhcHAucmV1c2VkXG5cdFx0XHRcdD8gYCAg4pyTIFJldXNpbmcgQXV0aDAgU1BBIGFwcCBmb3IgUG9zdG1hbiBQS0NFICgke2FwcC5jbGllbnRfaWR9KWBcblx0XHRcdFx0OiBgICDinJMgQXV0aDAgU1BBIGFwcCBjcmVhdGVkIGZvciBQb3N0bWFuIFBLQ0UgKCR7YXBwLmNsaWVudF9pZH0pYCxcblx0XHQpO1xuXHRcdHRyeSB7XG5cdFx0XHRhdXRoMENsaS5lbmFibGVDb25uZWN0aW9uRm9yQ2xpZW50KGF1dGgwQ2xpLkRCX0NPTk5FQ1RJT05fTkFNRSwgYXBwLmNsaWVudF9pZCk7XG5cdFx0XHRjb25zb2xlLmxvZyhgICDinJMgRW5hYmxlZCAke2F1dGgwQ2xpLkRCX0NPTk5FQ1RJT05fTkFNRX0gb24gUG9zdG1hbiBTUEFgKTtcblx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcdGAgIOKclyBGYWlsZWQgdG8gZW5hYmxlIERCIGNvbm5lY3Rpb24gb24gU1BBOiAke2VyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBlcnJ9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiBhcHAuY2xpZW50X2lkO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHRjb25zdCBleGlzdGluZyA9IHJlYWRFeGlzdGluZ1NwYUNsaWVudElkKHdvcmtzcGFjZS50YXJnZXREaXIsIHdvcmtzcGFjZS5uYW1lKTtcblx0XHRpZiAoZXhpc3RpbmcpIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcdGAgIOKclyBGYWlsZWQgdG8gZW5zdXJlIEF1dGgwIFNQQSBhcHAgKCR7ZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IGVycn0pYCxcblx0XHRcdCk7XG5cdFx0XHRjb25zb2xlLmxvZyhgICDinJMgS2VlcGluZyBleGlzdGluZyBhdXRoMENsaWVudElkIGZyb20gUG9zdG1hbiBlbnZpcm9ubWVudCAoJHtleGlzdGluZ30pYCk7XG5cdFx0XHRyZXR1cm4gZXhpc3Rpbmc7XG5cdFx0fVxuXHRcdGNvbnN0IGRldGFpbCA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKTtcblx0XHQvLyBFbnRpdHktbGltaXQgbWVzc2FnZXMgYXJlIGFscmVhZHkgYWN0aW9uYWJsZTsgYXZvaWQgYnVyeWluZyB0aGVtLlxuXHRcdGlmIChhdXRoMENsaS5pc0F1dGgwRW50aXR5TGltaXRFcnJvcihlcnIpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoZGV0YWlsKTtcblx0XHR9XG5cdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0YEZhaWxlZCB0byBlbnN1cmUgQXV0aDAgU1BBIGFwcCBmb3IgUG9zdG1hbiDigJQgYXV0aDBDbGllbnRJZCB3b3VsZCBiZSBlbXB0eTogJHtkZXRhaWx9YCxcblx0XHQpO1xuXHR9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNjYWZmb2xkKHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsIG9wdGlvbnM6IFBvc3RtYW5PcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG5cdGlmIChvcHRpb25zLnBvc3RtYW5Qcm92aWRlciA9PT0gXCJub25lXCIgfHwgb3B0aW9ucy5wb3N0bWFuUHJvdmlkZXIgPT0gbnVsbCkgcmV0dXJuO1xuXG5cdGNvbnN0IGF1dGhDb25maWdNb2RlbCA9IHdvcmtzcGFjZS5nZXRNb2RlbDxBdXRoQ29uZmlnTW9kZWw+KFdFTExfS05PV05fRklMRVMuQVVUSF9DT05GSUcpO1xuXHRjb25zdCBhdXRoQ2ZnID0gYXV0aENvbmZpZ01vZGVsPy5jb25maWc7XG5cblx0Y29uc3Qgc3BhQ2xpZW50SWQgPSBhdXRoQ2ZnPy5pc3N1ZXJCYXNlVXJsID8gcmVzb2x2ZVNwYUNsaWVudElkKHdvcmtzcGFjZSkgOiB1bmRlZmluZWQ7XG5cblx0Y29uc3QgYXV0aDBFbnY6IEF1dGgwRW52IHwgdW5kZWZpbmVkID0gYXV0aENmZz8uaXNzdWVyQmFzZVVybFxuXHRcdD8ge1xuXHRcdFx0XHRhdXRoMERvbWFpbjogYXV0aENmZy5pc3N1ZXJCYXNlVXJsLnJlcGxhY2UoL15odHRwcz86XFwvXFwvLywgXCJcIiksXG5cdFx0XHRcdGF1dGgwQXVkaWVuY2U6IGF1dGhDZmcuYXVkaWVuY2UsXG5cdFx0XHRcdGF1dGgwQ2xpZW50SWQ6IHNwYUNsaWVudElkLFxuXHRcdFx0fVxuXHRcdDogdW5kZWZpbmVkO1xuXG5cdGNvbnN0IHByb2plY3ROYW1lID0gd29ya3NwYWNlLm5hbWU7XG5cdGNvbnN0IGVudk5hbWUgPSBgJHtwcm9qZWN0TmFtZX0gTG9jYWxgO1xuXHRjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgYnVpbGRIeWJyaWRQb3N0bWFuQ29sbGVjdGlvbihwcm9qZWN0TmFtZSwgYXV0aDBFbnYpO1xuXHRjb25zdCBsb2NhbEZpbGVzID0gYnVpbGRMb2NhbFZpZXdGaWxlc0Zyb21Db2xsZWN0aW9uKGNvbGxlY3Rpb24sIHByb2plY3ROYW1lLCBhdXRoMEVudiwge1xuXHRcdGNhbGxiYWNrczogUE9TVE1BTl9DQUxMQkFDS1MsXG5cdFx0c2NvcGVzOiBQT1NUTUFOX1NDT1BFUyxcblx0fSk7XG5cdGNvbnN0IGVudllhbWwgPSBidWlsZEVudmlyb25tZW50WWFtbChlbnZOYW1lLCBhdXRoMEVudiwge1xuXHRcdGNhbGxiYWNrczogUE9TVE1BTl9DQUxMQkFDS1MsXG5cdFx0c2NvcGVzOiBQT1NUTUFOX1NDT1BFUyxcblx0fSk7XG5cblx0d29ya3NwYWNlLmFkZEZpbGUoe1xuXHRcdGZpbGVzOiAoKSA9PiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5wb3N0bWFuL3Jlc291cmNlcy55YW1sXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IFtcblx0XHRcdFx0XHRcIiMgT3BlbiB0aGlzIHByb2plY3Qgcm9vdCBpbiBQb3N0bWFuIChGaWxlcyDihpIgT3BlbiBmb2xkZXIpLCBub3QgdGhlIHBvc3RtYW4vIHN1YmZvbGRlci5cIixcblx0XHRcdFx0XHRcIiMgUG9zdG1hbiBmaWxscyB3b3Jrc3BhY2UuaWQgd2hlbiB5b3UgY29ubmVjdCBMb2NhbCBWaWV3LlwiLFxuXHRcdFx0XHRcdFwiI1wiLFxuXHRcdFx0XHRcdFwiIyBBbGwgcmVzb3VyY2VzIHVuZGVyIHBvc3RtYW4vIGFyZSByZWdpc3RlcmVkIGF1dG9tYXRpY2FsbHkuXCIsXG5cdFx0XHRcdFx0XCIjIFJvdXRlIHJlcXVlc3RzIGFyZSBnZW5lcmF0ZWQgZnJvbSBPcGVuQVBJOyBBdXRoMCBvdmVybGF5IGlzIGhhbmQtYXV0aG9yZWQuXCIsXG5cdFx0XHRcdFx0XCJcIixcblx0XHRcdFx0XS5qb2luKFwiXFxuXCIpLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmlsZVBhdGg6IGBwb3N0bWFuL2Vudmlyb25tZW50cy8ke3Byb2plY3ROYW1lfS1Mb2NhbC5lbnZpcm9ubWVudC55YW1sYCxcblx0XHRcdFx0Y29udGVudDogZW52WWFtbCxcblx0XHRcdH0sXG5cdFx0XHQuLi5sb2NhbEZpbGVzLFxuXHRcdF0sXG5cdH0pO1xuXG5cdGlmIChvcHRpb25zLnBvc3RtYW5Qcm92aWRlciA9PT0gXCJhcGlcIiAmJiBvcHRpb25zLmFwaUtleSkge1xuXHRcdGNvbnN0IGhlYWRlcnMgPSB7IFwiWC1BcGktS2V5XCI6IG9wdGlvbnMuYXBpS2V5LCBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9O1xuXG5cdFx0Y29uc3QgY29sUmVzID0gYXdhaXQgZmV0Y2goXG5cdFx0XHRgaHR0cHM6Ly9hcGkuZ2V0cG9zdG1hbi5jb20vY29sbGVjdGlvbnM/d29ya3NwYWNlPSR7b3B0aW9ucy53b3Jrc3BhY2VJZH1gLFxuXHRcdFx0e1xuXHRcdFx0XHRtZXRob2Q6IFwiUE9TVFwiLFxuXHRcdFx0XHRoZWFkZXJzLFxuXHRcdFx0XHRib2R5OiBKU09OLnN0cmluZ2lmeSh7IGNvbGxlY3Rpb24gfSksXG5cdFx0XHR9LFxuXHRcdCk7XG5cdFx0aWYgKGNvbFJlcy5vaykge1xuXHRcdFx0Y29uc29sZS5sb2coXCIgIOKckyBQb3N0bWFuIGNvbGxlY3Rpb24gdXBsb2FkZWRcIik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoXCIgIOKclyBGYWlsZWQgdG8gdXBsb2FkIFBvc3RtYW4gY29sbGVjdGlvblwiKTtcblx0XHR9XG5cblx0XHRjb25zdCBlbnZWYWx1ZXMgPSBbXG5cdFx0XHR7IGtleTogXCJiYXNlVXJsXCIsIHZhbHVlOiBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFwiLCBlbmFibGVkOiB0cnVlIH0sXG5cdFx0XHQuLi4oYXV0aDBFbnY/LmF1dGgwRG9tYWluXG5cdFx0XHRcdD8gW1xuXHRcdFx0XHRcdFx0eyBrZXk6IFwiYXV0aDBEb21haW5cIiwgdmFsdWU6IGF1dGgwRW52LmF1dGgwRG9tYWluLCBlbmFibGVkOiB0cnVlIH0sXG5cdFx0XHRcdFx0XHR7IGtleTogXCJhdXRoMEF1ZGllbmNlXCIsIHZhbHVlOiBhdXRoMEVudi5hdXRoMEF1ZGllbmNlID8/IFwiXCIsIGVuYWJsZWQ6IHRydWUgfSxcblx0XHRcdFx0XHRcdHsga2V5OiBcImF1dGgwQ2xpZW50SWRcIiwgdmFsdWU6IGF1dGgwRW52LmF1dGgwQ2xpZW50SWQgPz8gXCJcIiwgZW5hYmxlZDogdHJ1ZSB9LFxuXHRcdFx0XHRcdF1cblx0XHRcdFx0OiBbXSksXG5cdFx0XTtcblx0XHRjb25zdCBlbnZSZXMgPSBhd2FpdCBmZXRjaChcblx0XHRcdGBodHRwczovL2FwaS5nZXRwb3N0bWFuLmNvbS9lbnZpcm9ubWVudHM/d29ya3NwYWNlPSR7b3B0aW9ucy53b3Jrc3BhY2VJZH1gLFxuXHRcdFx0e1xuXHRcdFx0XHRtZXRob2Q6IFwiUE9TVFwiLFxuXHRcdFx0XHRoZWFkZXJzLFxuXHRcdFx0XHRib2R5OiBKU09OLnN0cmluZ2lmeSh7XG5cdFx0XHRcdFx0ZW52aXJvbm1lbnQ6IHsgbmFtZTogZW52TmFtZSwgdmFsdWVzOiBlbnZWYWx1ZXMgfSxcblx0XHRcdFx0fSksXG5cdFx0XHR9LFxuXHRcdCk7XG5cdFx0aWYgKGVudlJlcy5vaykge1xuXHRcdFx0Y29uc29sZS5sb2coXCIgIOKckyBQb3N0bWFuIGVudmlyb25tZW50IHVwbG9hZGVkXCIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKFwiICDinJcgRmFpbGVkIHRvIHVwbG9hZCBQb3N0bWFuIGVudmlyb25tZW50XCIpO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY29uc3QgUG9zdG1hbkZlYXR1cmU6IEZlYXR1cmU8UG9zdG1hbk9wdGlvbnM+ID0geyBnZXRPcHRpb25zLCBzY2FmZm9sZCB9O1xuZXhwb3J0IHsgYnVpbGRIZWxsb09wZW5BcGlEb2N1bWVudCB9IGZyb20gXCIuLi9wb3N0bWFuL2hlbGxvLW9wZW5hcGkuanNcIjtcbmV4cG9ydCB7IFBPU1RNQU5fQ0FMTEJBQ0tTLCBQT1NUTUFOX1NDT1BFUyB9O1xuIl0sIm5hbWVzIjpbIlBPU1RNQU5fQ0FMTEJBQ0tTIiwiUE9TVE1BTl9TQ09QRVMiLCJQb3N0bWFuRmVhdHVyZSIsImJ1aWxkSGVsbG9PcGVuQXBpRG9jdW1lbnQiLCJidWlsZEh5YnJpZFBvc3RtYW5Db2xsZWN0aW9uIiwiam9pbiIsIkNPTExFQ1RJT05fREVTQ1JJUFRJT04iLCJnZXRPcHRpb25zIiwiX3dvcmtzcGFjZSIsImNsaU9wdGlvbnMiLCJwb3N0bWFuUHJvdmlkZXIiLCJjaG9pY2VzIiwibGFiZWwiLCJkZXNjcmlwdGlvbiIsInNlbGVjdGVkIiwicGljayIsImMiLCJwcm92aWRlciIsImFwaUtleSIsInByb2Nlc3MiLCJlbnYiLCJQT1NUTUFOX0FQSV9LRVkiLCJ0aGVuIiwibSIsImFzayIsImhlYWRlcnMiLCJ3c1JlcyIsImZldGNoIiwib2siLCJjb25zb2xlIiwiZXJyb3IiLCJ3b3Jrc3BhY2VzIiwianNvbiIsIndzQ2hvaWNlcyIsImlkIiwibWFwIiwidyIsIm5hbWUiLCJ0eXBlIiwid3NQaWNrZWQiLCJ3b3Jrc3BhY2VJZCIsIndzTmFtZSIsImNyZWF0ZVJlcyIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwid29ya3NwYWNlIiwid3MiLCJsb2ciLCJwcm9qZWN0TmFtZSIsImF1dGgiLCJvcGVuYXBpIiwiYmFzZSIsIm9wZW5BcGlUb1Bvc3RtYW5Db2xsZWN0aW9uIiwiaW5mbyIsIl9wb3N0bWFuX2lkIiwicmFuZG9tVVVJRCIsImFwcGx5UG9zdG1hbkF1dGhPdmVybGF5IiwiY2FsbGJhY2tzIiwic2NvcGVzIiwicmVhZEV4aXN0aW5nU3BhQ2xpZW50SWQiLCJ0YXJnZXREaXIiLCJlbnZQYXRoIiwiZXhpc3RzU3luYyIsInVuZGVmaW5lZCIsInRleHQiLCJyZWFkRmlsZVN5bmMiLCJtYXRjaCIsInZhbHVlIiwidHJpbSIsImxlbmd0aCIsInJlc29sdmVTcGFDbGllbnRJZCIsImFwcE5hbWUiLCJhcHAiLCJhdXRoMENsaSIsImVuc3VyZVNwYUFwcCIsInJldXNlZCIsImNsaWVudF9pZCIsImVuYWJsZUNvbm5lY3Rpb25Gb3JDbGllbnQiLCJEQl9DT05ORUNUSU9OX05BTUUiLCJlcnIiLCJFcnJvciIsIm1lc3NhZ2UiLCJleGlzdGluZyIsImRldGFpbCIsIlN0cmluZyIsImlzQXV0aDBFbnRpdHlMaW1pdEVycm9yIiwic2NhZmZvbGQiLCJvcHRpb25zIiwiYXV0aENvbmZpZ01vZGVsIiwiZ2V0TW9kZWwiLCJXRUxMX0tOT1dOX0ZJTEVTIiwiQVVUSF9DT05GSUciLCJhdXRoQ2ZnIiwiY29uZmlnIiwic3BhQ2xpZW50SWQiLCJpc3N1ZXJCYXNlVXJsIiwiYXV0aDBFbnYiLCJhdXRoMERvbWFpbiIsInJlcGxhY2UiLCJhdXRoMEF1ZGllbmNlIiwiYXVkaWVuY2UiLCJhdXRoMENsaWVudElkIiwiZW52TmFtZSIsImNvbGxlY3Rpb24iLCJsb2NhbEZpbGVzIiwiYnVpbGRMb2NhbFZpZXdGaWxlc0Zyb21Db2xsZWN0aW9uIiwiZW52WWFtbCIsImJ1aWxkRW52aXJvbm1lbnRZYW1sIiwiYWRkRmlsZSIsImZpbGVzIiwiZmlsZVBhdGgiLCJjb250ZW50IiwiY29sUmVzIiwiZW52VmFsdWVzIiwia2V5IiwiZW5hYmxlZCIsImVudlJlcyIsImVudmlyb25tZW50IiwidmFsdWVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQThSU0E7ZUFBQUE7O1FBQW1CQztlQUFBQTs7UUFGZkM7ZUFBQUE7O1FBQ0pDO2VBQUFBLHVDQUF5Qjs7UUFwS1pDO2VBQUFBOzs7NEJBekhLO3dCQUNjOzBCQUNwQjt3QkFDQTt1QkFDWTs4QkFJUzsyQkFJbkM7a0NBS0E7a0VBQ21COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUIscUVBQXFFLEdBQ3JFLE1BQU1KLG9CQUFvQjtJQUN6QjtJQUNBO0NBQ0E7QUFFRCw4RUFBOEUsR0FDOUUsTUFBTUMsaUJBQWlCO0lBQ3RCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0EsQ0FBQ0ksSUFBSSxDQUFDO0FBRVAsTUFBTUMseUJBQ0wsNEVBQ0EscUZBQ0E7QUFRRCxlQUFlQyxXQUNkQyxVQUE2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
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "ApiPackageJson", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return ApiPackageJson;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _const = require("../../models/const.js");
|
|
12
|
+
const _packagejsonmodel = require("../../models/package-json.model.js");
|
|
13
|
+
const _version = require("../../version.js");
|
|
14
|
+
class ApiPackageJson {
|
|
15
|
+
workspaceName;
|
|
16
|
+
apiName;
|
|
17
|
+
key = _const.WELL_KNOWN_FILES.API_PACKAGE_JSON;
|
|
18
|
+
_dependencies;
|
|
19
|
+
_devDependencies = {};
|
|
20
|
+
constructor(workspaceName, apiName = "api"){
|
|
21
|
+
this.workspaceName = workspaceName;
|
|
22
|
+
this.apiName = apiName;
|
|
23
|
+
this._dependencies = {
|
|
24
|
+
"@decohere/cortex": _version.CREATE_VERSION,
|
|
25
|
+
"@decohere/crucible": _version.CREATE_VERSION
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
addDependency(name, version) {
|
|
29
|
+
this._dependencies[name] = version;
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
addDevDependency(name, version) {
|
|
33
|
+
this._devDependencies[name] = version;
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
files() {
|
|
37
|
+
const pkg = {
|
|
38
|
+
name: `@${this.workspaceName}/${this.apiName}`,
|
|
39
|
+
version: "0.0.1",
|
|
40
|
+
private: true,
|
|
41
|
+
type: "module",
|
|
42
|
+
main: "src/main.ts",
|
|
43
|
+
scripts: {
|
|
44
|
+
lint: "biome check --write ."
|
|
45
|
+
},
|
|
46
|
+
dependencies: (0, _packagejsonmodel.sortStringMap)(this._dependencies)
|
|
47
|
+
};
|
|
48
|
+
if (Object.keys(this._devDependencies).length > 0) {
|
|
49
|
+
pkg.devDependencies = (0, _packagejsonmodel.sortStringMap)(this._devDependencies);
|
|
50
|
+
}
|
|
51
|
+
return [
|
|
52
|
+
{
|
|
53
|
+
filePath: "package.json",
|
|
54
|
+
content: JSON.stringify(pkg, null, 2)
|
|
55
|
+
}
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvbW9kZWxzL2FwaS1wYWNrYWdlLWpzb24ubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29uc3QuanNcIjtcbmltcG9ydCB7IHNvcnRTdHJpbmdNYXAgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXllZE1vZGVsLCBTb3VyY2VGaWxlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9zb3VyY2UtZmlsZS5qc1wiO1xuaW1wb3J0IHsgQ1JFQVRFX1ZFUlNJT04gfSBmcm9tIFwiLi4vLi4vdmVyc2lvbi5qc1wiO1xuXG4vKipcbiAqIEJ1aWxkZXIgZm9yIGBwcm9qZWN0cy88YXBpPi9wYWNrYWdlLmpzb25gLlxuICpcbiAqIFN0YXJ0cyB3aXRoIHRoZSBjb3JlIGNvcnRleCArIGNydWNpYmxlIGRlcHMuIEZlYXR1cmVzIGNhbiBjYWxsXG4gKiBgYWRkRGVwZW5kZW5jeWAgLyBgYWRkRGV2RGVwZW5kZW5jeWAgdG8gZXh0ZW5kLlxuICovXG5leHBvcnQgY2xhc3MgQXBpUGFja2FnZUpzb24gaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuQVBJX1BBQ0tBR0VfSlNPTjtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9kZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cdHByaXZhdGUgcmVhZG9ubHkgX2RldkRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IHdvcmtzcGFjZU5hbWU6IHN0cmluZyxcblx0XHRwcml2YXRlIHJlYWRvbmx5IGFwaU5hbWUgPSBcImFwaVwiLFxuXHQpIHtcblx0XHR0aGlzLl9kZXBlbmRlbmNpZXMgPSB7XG5cdFx0XHRcIkBkZWNvaGVyZS9jb3J0ZXhcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9jcnVjaWJsZVwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIGFkZERlcGVuZGVuY3kobmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9kZXBlbmRlbmNpZXNbbmFtZV0gPSB2ZXJzaW9uO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGFkZERldkRlcGVuZGVuY3kobmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9kZXZEZXBlbmRlbmNpZXNbbmFtZV0gPSB2ZXJzaW9uO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0Y29uc3QgcGtnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcblx0XHRcdG5hbWU6IGBAJHt0aGlzLndvcmtzcGFjZU5hbWV9LyR7dGhpcy5hcGlOYW1lfWAsXG5cdFx0XHR2ZXJzaW9uOiBcIjAuMC4xXCIsXG5cdFx0XHRwcml2YXRlOiB0cnVlLFxuXHRcdFx0dHlwZTogXCJtb2R1bGVcIixcblx0XHRcdG1haW46IFwic3JjL21haW4udHNcIixcblx0XHRcdHNjcmlwdHM6IHtcblx0XHRcdFx0bGludDogXCJiaW9tZSBjaGVjayAtLXdyaXRlIC5cIixcblx0XHRcdH0sXG5cdFx0XHRkZXBlbmRlbmNpZXM6IHNvcnRTdHJpbmdNYXAodGhpcy5fZGVwZW5kZW5jaWVzKSxcblx0XHR9O1xuXHRcdGlmIChPYmplY3Qua2V5cyh0aGlzLl9kZXZEZXBlbmRlbmNpZXMpLmxlbmd0aCA+IDApIHtcblx0XHRcdHBrZy5kZXZEZXBlbmRlbmNpZXMgPSBzb3J0U3RyaW5nTWFwKHRoaXMuX2RldkRlcGVuZGVuY2llcyk7XG5cdFx0fVxuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcInBhY2thZ2UuanNvblwiLFxuXHRcdFx0XHRjb250ZW50OiBKU09OLnN0cmluZ2lmeShwa2csIG51bGwsIDIpLFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiQXBpUGFja2FnZUpzb24iLCJrZXkiLCJXRUxMX0tOT1dOX0ZJTEVTIiwiQVBJX1BBQ0tBR0VfSlNPTiIsIl9kZXBlbmRlbmNpZXMiLCJfZGV2RGVwZW5kZW5jaWVzIiwid29ya3NwYWNlTmFtZSIsImFwaU5hbWUiLCJDUkVBVEVfVkVSU0lPTiIsImFkZERlcGVuZGVuY3kiLCJuYW1lIiwidmVyc2lvbiIsImFkZERldkRlcGVuZGVuY3kiLCJmaWxlcyIsInBrZyIsInByaXZhdGUiLCJ0eXBlIiwibWFpbiIsInNjcmlwdHMiLCJsaW50IiwiZGVwZW5kZW5jaWVzIiwic29ydFN0cmluZ01hcCIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJkZXZEZXBlbmRlbmNpZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJKU09OIiwic3RyaW5naWZ5Il0sIm1hcHBpbmdzIjoiOzs7OytCQVdhQTs7O2VBQUFBOzs7dUJBWG9CO2tDQUNIO3lCQUVDO0FBUXhCLE1BQU1BOzs7SUFDSUMsTUFBTUMsdUJBQWdCLENBQUNDLGdCQUFnQixDQUFDO0lBRXZDQyxjQUFzQztJQUN0Q0MsbUJBQTJDLENBQUMsRUFBRTtJQUUvRCxZQUNDLEFBQWlCQyxhQUFxQixFQUN0QyxBQUFpQkMsVUFBVSxLQUFLLENBQy9CO2FBRmdCRCxnQkFBQUE7YUFDQUMsVUFBQUE7UUFFakIsSUFBSSxDQUFDSCxhQUFhLEdBQUc7WUFDcEIsb0JBQW9CSSx1QkFBYztZQUNsQyxzQkFBc0JBLHVCQUFjO1FBQ3JDO0lBQ0Q7SUFFT0MsY0FBY0MsSUFBWSxFQUFFQyxPQUFlLEVBQVE7UUFDekQsSUFBSSxDQUFDUCxhQUFhLENBQUNNLEtBQUssR0FBR0M7UUFDM0IsT0FBTyxJQUFJO0lBQ1o7SUFFT0MsaUJBQWlCRixJQUFZLEVBQUVDLE9BQWUsRUFBUTtRQUM1RCxJQUFJLENBQUNOLGdCQUFnQixDQUFDSyxLQUFLLEdBQUdDO1FBQzlCLE9BQU8sSUFBSTtJQUNaO0lBRU9FLFFBQXNCO1FBQzVCLE1BQU1DLE1BQStCO1lBQ3BDSixNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ0osYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUNDLE9BQU8sRUFBRTtZQUM5Q0ksU0FBUztZQUNUSSxTQUFTO1lBQ1RDLE1BQU07WUFDTkMsTUFBTTtZQUNOQyxTQUFTO2dCQUNSQyxNQUFNO1lBQ1A7WUFDQUMsY0FBY0MsSUFBQUEsK0JBQWEsRUFBQyxJQUFJLENBQUNqQixhQUFhO1FBQy9DO1FBQ0EsSUFBSWtCLE9BQU9DLElBQUksQ0FBQyxJQUFJLENBQUNsQixnQkFBZ0IsRUFBRW1CLE1BQU0sR0FBRyxHQUFHO1lBQ2xEVixJQUFJVyxlQUFlLEdBQUdKLElBQUFBLCtCQUFhLEVBQUMsSUFBSSxDQUFDaEIsZ0JBQWdCO1FBQzFEO1FBQ0EsT0FBTztZQUNOO2dCQUNDcUIsVUFBVTtnQkFDVkMsU0FBU0MsS0FBS0MsU0FBUyxDQUFDZixLQUFLLE1BQU07WUFDcEM7U0FDQTtJQUNGO0FBQ0QifQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "AuthConfigModel", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return AuthConfigModel;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _const = require("../../models/const.js");
|
|
12
|
+
class AuthConfigModel {
|
|
13
|
+
config;
|
|
14
|
+
key = _const.WELL_KNOWN_FILES.AUTH_CONFIG;
|
|
15
|
+
constructor(config){
|
|
16
|
+
this.config = config;
|
|
17
|
+
}
|
|
18
|
+
setAdminUser(adminUser) {
|
|
19
|
+
this.config.adminUser = adminUser;
|
|
20
|
+
}
|
|
21
|
+
files() {
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvbW9kZWxzL2F1dGgtY29uZmlnLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdFTExfS05PV05fRklMRVMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbnN0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleWVkTW9kZWwsIFNvdXJjZUZpbGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NvdXJjZS1maWxlLmpzXCI7XG5cbmV4cG9ydCB0eXBlIEFkbWluVXNlckNvbmZpZyA9IHtcblx0c3ViOiBzdHJpbmc7XG5cdGVtYWlsOiBzdHJpbmc7XG5cdHBhc3N3b3JkOiBzdHJpbmc7XG5cdHVzZXJuYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBdXRoQ29uZmlnID0ge1xuXHRpc3N1ZXJCYXNlVXJsOiBzdHJpbmc7XG5cdGF1ZGllbmNlOiBzdHJpbmc7XG5cdGFkbWluVXNlcj86IEFkbWluVXNlckNvbmZpZztcbn07XG5cbi8qKlxuICogRGF0YS1jYXJyaWVyIG1vZGVsIGZvciBhdXRoIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogUmVnaXN0ZXJlZCBieSBBdXRoRmVhdHVyZSB3aGVuIGF1dGgwIGlzIGNvbmZpZ3VyZWQuIE90aGVyIGZlYXR1cmVzIChlLmcuXG4gKiBQb3N0bWFuRmVhdHVyZSkgcmV0cmlldmUgaXQgdmlhIHdvcmtzcGFjZS5nZXRNb2RlbChXRUxMX0tOT1dOX0ZJTEVTLkFVVEhfQ09ORklHKS5cbiAqIFByb2R1Y2VzIG5vIGZpbGVzIOKAlCBleGlzdHMgc29sZWx5IHNvIGZlYXR1cmVzIGNhbiBjb21tdW5pY2F0ZSBhdXRoIGRldGFpbHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRoQ29uZmlnTW9kZWwgaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuQVVUSF9DT05GSUc7XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjb25maWc6IEF1dGhDb25maWcpIHt9XG5cblx0cHVibGljIHNldEFkbWluVXNlcihhZG1pblVzZXI6IEFkbWluVXNlckNvbmZpZyk6IHZvaWQge1xuXHRcdHRoaXMuY29uZmlnLmFkbWluVXNlciA9IGFkbWluVXNlcjtcblx0fVxuXG5cdHB1YmxpYyBmaWxlcygpOiBTb3VyY2VGaWxlW10ge1xuXHRcdHJldHVybiBbXTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkF1dGhDb25maWdNb2RlbCIsImtleSIsIldFTExfS05PV05fRklMRVMiLCJBVVRIX0NPTkZJRyIsImNvbmZpZyIsInNldEFkbWluVXNlciIsImFkbWluVXNlciIsImZpbGVzIl0sIm1hcHBpbmdzIjoiOzs7OytCQXVCYUE7OztlQUFBQTs7O3VCQXZCb0I7QUF1QjFCLE1BQU1BOztJQUNJQyxNQUFNQyx1QkFBZ0IsQ0FBQ0MsV0FBVyxDQUFDO0lBRW5ELFlBQW1CLEFBQWdCQyxNQUFrQixDQUFFO2FBQXBCQSxTQUFBQTtJQUFxQjtJQUVqREMsYUFBYUMsU0FBMEIsRUFBUTtRQUNyRCxJQUFJLENBQUNGLE1BQU0sQ0FBQ0UsU0FBUyxHQUFHQTtJQUN6QjtJQUVPQyxRQUFzQjtRQUM1QixPQUFPLEVBQUU7SUFDVjtBQUNEIn0=
|