@osdk/cli 0.32.0-beta.3 → 0.32.0-beta.4
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/CHANGELOG.md +2 -0
- package/build/esm/{chunk-XIUA5MQB.js → chunk-5EG4W4EY.js} +7 -34
- package/build/esm/chunk-5EG4W4EY.js.map +1 -0
- package/build/esm/{chunk-UIAONP7L.js → chunk-FQRKVHAE.js} +2 -4
- package/build/esm/chunk-FQRKVHAE.js.map +1 -0
- package/build/esm/chunk-PZ5AY32C.js +9 -0
- package/build/esm/chunk-PZ5AY32C.js.map +1 -0
- package/build/esm/index.js +20 -226
- package/build/esm/index.js.map +1 -1
- package/build/esm/{siteDeployCommand-PLEDSCX7.js → siteDeployCommand-FGAA5AF6.js} +6 -13
- package/build/esm/siteDeployCommand-FGAA5AF6.js.map +1 -0
- package/build/esm/{versionDeleteCommand-3WNWVBHJ.js → versionDeleteCommand-HQBNJZQO.js} +5 -9
- package/build/esm/versionDeleteCommand-HQBNJZQO.js.map +1 -0
- package/build/esm/{versionDeleteCommand-ACOXTH77.js → versionDeleteCommand-POCHBGDL.js} +5 -9
- package/build/esm/versionDeleteCommand-POCHBGDL.js.map +1 -0
- package/build/esm/{versionGetCommand-2OBNNIIF.js → versionGetCommand-FVKH4K6S.js} +4 -8
- package/build/esm/versionGetCommand-FVKH4K6S.js.map +1 -0
- package/build/esm/{versionInfoCommand-ONJKKUKB.js → versionInfoCommand-F44PTFBW.js} +4 -8
- package/build/esm/versionInfoCommand-F44PTFBW.js.map +1 -0
- package/build/esm/{versionListCommand-427FZV6N.js → versionListCommand-SMJ6RCRM.js} +4 -8
- package/build/esm/versionListCommand-SMJ6RCRM.js.map +1 -0
- package/build/esm/{versionListCommand-PB7A6NIB.js → versionListCommand-X5PFEG2U.js} +4 -8
- package/build/esm/versionListCommand-X5PFEG2U.js.map +1 -0
- package/build/esm/{versionSetCommand-R7N3NABH.js → versionSetCommand-YGYI2W74.js} +4 -8
- package/build/esm/versionSetCommand-YGYI2W74.js.map +1 -0
- package/build/esm/{versionUnsetCommand-57PLWRZJ.js → versionUnsetCommand-SUZPZFLN.js} +5 -9
- package/build/esm/versionUnsetCommand-SUZPZFLN.js.map +1 -0
- package/build/esm/{widgetSetDeployCommand-VING5SQD.js → widgetSetDeployCommand-42GOCEWP.js} +6 -9
- package/build/esm/widgetSetDeployCommand-42GOCEWP.js.map +1 -0
- package/package.json +7 -7
- package/build/esm/acorn-2ONPHVNE.js +0 -4014
- package/build/esm/acorn-2ONPHVNE.js.map +0 -1
- package/build/esm/angular-BLMWAHFR.js +0 -3921
- package/build/esm/angular-BLMWAHFR.js.map +0 -1
- package/build/esm/babel-3NM2PEMH.js +0 -9588
- package/build/esm/babel-3NM2PEMH.js.map +0 -1
- package/build/esm/chunk-K724VNRG.js +0 -28
- package/build/esm/chunk-K724VNRG.js.map +0 -1
- package/build/esm/chunk-KRGGP7LY.js +0 -221
- package/build/esm/chunk-KRGGP7LY.js.map +0 -1
- package/build/esm/chunk-OBNIOZZ3.js +0 -84
- package/build/esm/chunk-OBNIOZZ3.js.map +0 -1
- package/build/esm/chunk-PTWHSFUF.js +0 -332
- package/build/esm/chunk-PTWHSFUF.js.map +0 -1
- package/build/esm/chunk-RZQ6AXRL.js +0 -239
- package/build/esm/chunk-RZQ6AXRL.js.map +0 -1
- package/build/esm/chunk-SEFKBDOM.js +0 -127
- package/build/esm/chunk-SEFKBDOM.js.map +0 -1
- package/build/esm/chunk-UIAONP7L.js.map +0 -1
- package/build/esm/chunk-UN2YTB6E.js +0 -43
- package/build/esm/chunk-UN2YTB6E.js.map +0 -1
- package/build/esm/chunk-XIUA5MQB.js.map +0 -1
- package/build/esm/estree-W4CYHNEC.js +0 -6145
- package/build/esm/estree-W4CYHNEC.js.map +0 -1
- package/build/esm/find-up-IB2WALTK.js +0 -4
- package/build/esm/find-up-IB2WALTK.js.map +0 -1
- package/build/esm/flow-JBS2TSFC.js +0 -27169
- package/build/esm/flow-JBS2TSFC.js.map +0 -1
- package/build/esm/glimmer-V4LJ6GLD.js +0 -6974
- package/build/esm/glimmer-V4LJ6GLD.js.map +0 -1
- package/build/esm/graphql-H5EVBMG6.js +0 -1720
- package/build/esm/graphql-H5EVBMG6.js.map +0 -1
- package/build/esm/handleGenerate-TU6XBZQY.js +0 -19301
- package/build/esm/handleGenerate-TU6XBZQY.js.map +0 -1
- package/build/esm/html-M53H7DSS.js +0 -5810
- package/build/esm/html-M53H7DSS.js.map +0 -1
- package/build/esm/loginFlow-AD7BNVSR.js +0 -4
- package/build/esm/loginFlow-AD7BNVSR.js.map +0 -1
- package/build/esm/markdown-MBM2N6R4.js +0 -6697
- package/build/esm/markdown-MBM2N6R4.js.map +0 -1
- package/build/esm/meriyah-WA3U2F5N.js +0 -4343
- package/build/esm/meriyah-WA3U2F5N.js.map +0 -1
- package/build/esm/postcss-SG76YHLC.js +0 -6281
- package/build/esm/postcss-SG76YHLC.js.map +0 -1
- package/build/esm/siteDeployCommand-PLEDSCX7.js.map +0 -1
- package/build/esm/typescript-3WZD42RO.js +0 -13078
- package/build/esm/typescript-3WZD42RO.js.map +0 -1
- package/build/esm/versionDeleteCommand-3WNWVBHJ.js.map +0 -1
- package/build/esm/versionDeleteCommand-ACOXTH77.js.map +0 -1
- package/build/esm/versionGetCommand-2OBNNIIF.js.map +0 -1
- package/build/esm/versionInfoCommand-ONJKKUKB.js.map +0 -1
- package/build/esm/versionListCommand-427FZV6N.js.map +0 -1
- package/build/esm/versionListCommand-PB7A6NIB.js.map +0 -1
- package/build/esm/versionSetCommand-R7N3NABH.js.map +0 -1
- package/build/esm/versionUnsetCommand-57PLWRZJ.js.map +0 -1
- package/build/esm/widgetSetDeployCommand-VING5SQD.js.map +0 -1
- package/build/esm/yaml-7IJ6PB44.js +0 -5822
- package/build/esm/yaml-7IJ6PB44.js.map +0 -1
- package/build/types/util/maybeUpdateJemmaCustomMetadata.test.d.ts +0 -1
- package/build/types/util/maybeUpdateJemmaCustomMetadata.test.d.ts.map +0 -1
- package/build/types/util/token.test.d.ts +0 -1
- package/build/types/util/token.test.d.ts.map +0 -1
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { init_esm_shims } from './chunk-UN2YTB6E.js';
|
|
2
|
-
import consola from 'consola';
|
|
3
|
-
import { getRandomValues, subtle } from 'crypto';
|
|
4
|
-
import { createServer } from 'http';
|
|
5
|
-
import { join } from 'path/posix';
|
|
6
|
-
import { exit } from 'process';
|
|
7
|
-
import { parse } from 'url';
|
|
8
|
-
import open from 'open';
|
|
9
|
-
|
|
10
|
-
// ../cli.common/build/esm/public/loginFlow.js
|
|
11
|
-
init_esm_shims();
|
|
12
|
-
|
|
13
|
-
// ../cli.common/build/esm/commands/auth/login/loginFlow.js
|
|
14
|
-
init_esm_shims();
|
|
15
|
-
|
|
16
|
-
// ../cli.common/build/esm/commands/auth/login/token.js
|
|
17
|
-
init_esm_shims();
|
|
18
|
-
function isTokenErrorResponse(response) {
|
|
19
|
-
return response.error != null;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// ../cli.common/build/esm/commands/auth/login/loginFlow.js
|
|
23
|
-
var BROWSER_PROMPT_TIME_MS = 60 * 1e3;
|
|
24
|
-
async function invokeLoginFlow(args) {
|
|
25
|
-
consola.start(`Authenticating using application id: ${args.clientId}`);
|
|
26
|
-
const redirectUrl = "http://localhost:8080/auth/callback";
|
|
27
|
-
const port = parse(redirectUrl).port;
|
|
28
|
-
let resolve;
|
|
29
|
-
const authCode = new Promise((_res) => {
|
|
30
|
-
resolve = _res;
|
|
31
|
-
});
|
|
32
|
-
const server = createServer((req, res) => {
|
|
33
|
-
const query = parse(req.url, true).query;
|
|
34
|
-
res.end("Authenticated");
|
|
35
|
-
resolve(query["code"]);
|
|
36
|
-
});
|
|
37
|
-
server.on("error", (e) => {
|
|
38
|
-
if (e.code === "EADDRINUSE") {
|
|
39
|
-
consola.error(`Port ${port} is already in use, unable to perform authentication flow.`);
|
|
40
|
-
server.close();
|
|
41
|
-
exit(1);
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
server.listen(port);
|
|
45
|
-
const clientId = args.clientId;
|
|
46
|
-
const state = generateRandomString();
|
|
47
|
-
const codeVerifier = generateRandomString();
|
|
48
|
-
const codeChallenge = await generateCodeChallenge(codeVerifier);
|
|
49
|
-
const authorizeUrl = generateAuthorizeUrl(args.foundryUrl, clientId, state, redirectUrl, codeChallenge);
|
|
50
|
-
try {
|
|
51
|
-
await open(authorizeUrl);
|
|
52
|
-
} catch {
|
|
53
|
-
consola.warn(`Unable to open browser, please open this url in your browser to to authenticate: ${authorizeUrl}`);
|
|
54
|
-
}
|
|
55
|
-
const browserPrompt = setTimeout(() => {
|
|
56
|
-
consola.warn(`Still waiting for the authentication to complete. Please open a browser to ${authorizeUrl}`);
|
|
57
|
-
}, BROWSER_PROMPT_TIME_MS);
|
|
58
|
-
const code = await authCode;
|
|
59
|
-
server.close();
|
|
60
|
-
clearTimeout(browserPrompt);
|
|
61
|
-
const token = await getTokenWithCodeVerifier(clientId, redirectUrl, code, args.foundryUrl, codeVerifier);
|
|
62
|
-
if (isTokenErrorResponse(token)) {
|
|
63
|
-
consola.error("Unable to authenticate", token.error, token.error_description);
|
|
64
|
-
exit(1);
|
|
65
|
-
}
|
|
66
|
-
consola.success(`Successfully authenticated!`);
|
|
67
|
-
return token;
|
|
68
|
-
}
|
|
69
|
-
function generateRandomString(length = 128) {
|
|
70
|
-
const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";
|
|
71
|
-
const output = [];
|
|
72
|
-
const array = new Uint8Array(1);
|
|
73
|
-
const maxIndex = 256 - 256 % characters.length;
|
|
74
|
-
while (output.length < length) {
|
|
75
|
-
getRandomValues(array);
|
|
76
|
-
if (array[0] < maxIndex) {
|
|
77
|
-
output.push(characters[array[0] % characters.length]);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return output.join("");
|
|
81
|
-
}
|
|
82
|
-
async function generateCodeChallenge(codeVerifier) {
|
|
83
|
-
const data = new TextEncoder().encode(codeVerifier);
|
|
84
|
-
const digest = await subtle.digest("SHA-256", data);
|
|
85
|
-
const codeChallenge = btoa(String.fromCharCode(...new Uint8Array(digest))).replace(/\//g, "_").replace(/\+/g, "-").replace(/=/g, "");
|
|
86
|
-
return {
|
|
87
|
-
codeChallenge,
|
|
88
|
-
codeChallengeMethod: "S256"
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
function generateAuthorizeUrl(baseUrl, clientId, state, redirectUrl, codeChallenge) {
|
|
92
|
-
const queryParams = new URLSearchParams();
|
|
93
|
-
queryParams.append("client_id", clientId);
|
|
94
|
-
queryParams.append("response_type", "code");
|
|
95
|
-
queryParams.append("state", state);
|
|
96
|
-
queryParams.append("redirect_uri", redirectUrl);
|
|
97
|
-
queryParams.append("code_challenge", codeChallenge.codeChallenge);
|
|
98
|
-
queryParams.append("code_challenge_method", codeChallenge.codeChallengeMethod);
|
|
99
|
-
queryParams.append("scope", ["offline_access", "api:read-data", "api:use-ontologies-read"].join(" "));
|
|
100
|
-
return join(baseUrl, "multipass", "api", "oauth2", "authorize") + `?` + queryParams.toString();
|
|
101
|
-
}
|
|
102
|
-
async function getTokenWithCodeVerifier(clientId, redirectUrl, code, baseUrl, codeVerifier) {
|
|
103
|
-
const body = new URLSearchParams();
|
|
104
|
-
body.append("client_id", clientId);
|
|
105
|
-
body.append("grant_type", "authorization_code");
|
|
106
|
-
body.append("code", code);
|
|
107
|
-
body.append("redirect_uri", redirectUrl);
|
|
108
|
-
body.append("code_verifier", codeVerifier);
|
|
109
|
-
const tokenUrl = join(baseUrl, "multipass", "api", "oauth2", "token") + `?state=${codeVerifier}`;
|
|
110
|
-
try {
|
|
111
|
-
const response = await fetch(tokenUrl, {
|
|
112
|
-
body: body.toString(),
|
|
113
|
-
headers: {
|
|
114
|
-
"Content-Type": "application/x-www-form-urlencoded"
|
|
115
|
-
},
|
|
116
|
-
method: "POST"
|
|
117
|
-
});
|
|
118
|
-
const responseText = await response.json();
|
|
119
|
-
return responseText;
|
|
120
|
-
} catch (e) {
|
|
121
|
-
throw new Error(`Failed to get token: ${e?.cause?.toString() ?? e?.toString() ?? "Unknown error"}`);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export { invokeLoginFlow };
|
|
126
|
-
//# sourceMappingURL=chunk-SEFKBDOM.js.map
|
|
127
|
-
//# sourceMappingURL=chunk-SEFKBDOM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../cli.common/build/esm/public/loginFlow.js","../../../cli.common/build/esm/commands/auth/login/loginFlow.js","../../../cli.common/build/esm/commands/auth/login/token.js"],"names":[],"mappings":"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","file":"chunk-SEFKBDOM.js","sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { invokeLoginFlow as default } from \"../commands/auth/login/loginFlow.js\";","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport consola from \"consola\";\nimport { getRandomValues, subtle } from \"node:crypto\";\nimport { createServer } from \"node:http\";\nimport { join } from \"node:path/posix\";\nimport { exit } from \"node:process\";\nimport { parse } from \"node:url\";\nimport open from \"open\";\nimport { isTokenErrorResponse } from \"./token.js\";\nconst BROWSER_PROMPT_TIME_MS = 60 * 1000;\nexport async function invokeLoginFlow(args) {\n consola.start(`Authenticating using application id: ${args.clientId}`);\n const redirectUrl = \"http://localhost:8080/auth/callback\";\n const port = parse(redirectUrl).port;\n let resolve;\n const authCode = new Promise(_res => {\n resolve = _res;\n });\n const server = createServer((req, res) => {\n const query = parse(req.url, true).query;\n res.end(\"Authenticated\");\n resolve(query[\"code\"]);\n });\n server.on(\"error\", e => {\n if (e.code === \"EADDRINUSE\") {\n consola.error(`Port ${port} is already in use, unable to perform authentication flow.`);\n server.close();\n exit(1);\n }\n });\n server.listen(port);\n const clientId = args.clientId;\n const state = generateRandomString();\n const codeVerifier = generateRandomString();\n const codeChallenge = await generateCodeChallenge(codeVerifier);\n const authorizeUrl = generateAuthorizeUrl(args.foundryUrl, clientId, state, redirectUrl, codeChallenge);\n try {\n await open(authorizeUrl);\n } catch {\n consola.warn(`Unable to open browser, please open this url in your browser to to authenticate: ${authorizeUrl}`);\n }\n\n // nag the user if we didn't get an auth token for a relatively long time\n const browserPrompt = setTimeout(() => {\n consola.warn(`Still waiting for the authentication to complete. Please open a browser to ${authorizeUrl}`);\n }, BROWSER_PROMPT_TIME_MS);\n const code = await authCode;\n server.close();\n clearTimeout(browserPrompt);\n const token = await getTokenWithCodeVerifier(clientId, redirectUrl, code, args.foundryUrl, codeVerifier);\n if (isTokenErrorResponse(token)) {\n consola.error(\"Unable to authenticate\", token.error, token.error_description);\n exit(1);\n }\n consola.success(`Successfully authenticated!`);\n return token;\n}\nfunction generateRandomString(length = 128) {\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~\";\n const output = [];\n const array = new Uint8Array(1);\n const maxIndex = 256 - 256 % characters.length;\n while (output.length < length) {\n getRandomValues(array);\n if (array[0] < maxIndex) {\n output.push(characters[array[0] % characters.length]);\n }\n }\n return output.join(\"\");\n}\nasync function generateCodeChallenge(codeVerifier) {\n const data = new TextEncoder().encode(codeVerifier);\n const digest = await subtle.digest(\"SHA-256\", data);\n const codeChallenge = btoa(String.fromCharCode(...new Uint8Array(digest))).replace(/\\//g, \"_\").replace(/\\+/g, \"-\").replace(/=/g, \"\");\n return {\n codeChallenge,\n codeChallengeMethod: \"S256\"\n };\n}\nfunction generateAuthorizeUrl(baseUrl, clientId, state, redirectUrl, codeChallenge) {\n const queryParams = new URLSearchParams();\n queryParams.append(\"client_id\", clientId);\n queryParams.append(\"response_type\", \"code\");\n queryParams.append(\"state\", state);\n queryParams.append(\"redirect_uri\", redirectUrl);\n queryParams.append(\"code_challenge\", codeChallenge.codeChallenge);\n queryParams.append(\"code_challenge_method\", codeChallenge.codeChallengeMethod);\n queryParams.append(\"scope\", [\"offline_access\", \"api:read-data\", \"api:use-ontologies-read\"].join(\" \"));\n return join(baseUrl, \"multipass\", \"api\", \"oauth2\", \"authorize\") + `?` + queryParams.toString();\n}\nasync function getTokenWithCodeVerifier(clientId, redirectUrl, code, baseUrl, codeVerifier) {\n const body = new URLSearchParams();\n body.append(\"client_id\", clientId);\n body.append(\"grant_type\", \"authorization_code\");\n body.append(\"code\", code);\n body.append(\"redirect_uri\", redirectUrl);\n body.append(\"code_verifier\", codeVerifier);\n const tokenUrl = join(baseUrl, \"multipass\", \"api\", \"oauth2\", \"token\") + `?state=${codeVerifier}`;\n try {\n const response = await fetch(tokenUrl, {\n body: body.toString(),\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n method: \"POST\"\n });\n const responseText = await response.json();\n return responseText;\n } catch (e) {\n throw new Error(`Failed to get token: ${e?.cause?.toString() ?? e?.toString() ?? \"Unknown error\"}`);\n }\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function isTokenErrorResponse(response) {\n return response.error != null;\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/consola/handlePromptCancel.ts"],"names":[],"mappings":";;;;AAAA,cAAA,EAAA;AAmBA,IAAM,YAAA,GAAe,MAAO,CAAA,GAAA,CAAI,QAAQ,CAAA;AACjC,SAAS,mBAAmB,cAAgB,EAAA;AACjD,EAAA,MAAM,OAAU,GAAA,OAAO,cAAmB,KAAA,SAAA,IAAa,CAAC,cAAA;AACxD,EAAA,MAAM,WAAW,cAAmB,KAAA,YAAA;AACpC,EAAA,IAAI,YAAY,OAAS,EAAA;AACvB,IAAA,OAAA,CAAQ,KAAK,qBAAqB,CAAA;AAClC,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA;AAElB","file":"chunk-UIAONP7L.js","sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"consola\";\n\n// https://github.com/unjs/consola?tab=readme-ov-file#await-promptmessage--type-cancel-\nconst cancelSymbol = Symbol.for(\"cancel\");\nexport function handlePromptCancel(promptResponse) {\n const isFalse = typeof promptResponse === \"boolean\" && !promptResponse;\n const isSigInt = promptResponse === cancelSymbol;\n if (isSigInt || isFalse) {\n consola.fail(\"Operation cancelled\");\n process.exit(0);\n }\n}"]}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import 'path';
|
|
2
|
-
import 'url';
|
|
3
|
-
|
|
4
|
-
var __create = Object.create;
|
|
5
|
-
var __defProp = Object.defineProperty;
|
|
6
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
-
var __esm = (fn, res) => function __init() {
|
|
11
|
-
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
12
|
-
};
|
|
13
|
-
var __commonJS = (cb, mod) => function __require() {
|
|
14
|
-
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
15
|
-
};
|
|
16
|
-
var __export = (target, all) => {
|
|
17
|
-
for (var name in all)
|
|
18
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
19
|
-
};
|
|
20
|
-
var __copyProps = (to, from, except, desc) => {
|
|
21
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
22
|
-
for (let key of __getOwnPropNames(from))
|
|
23
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
24
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
25
|
-
}
|
|
26
|
-
return to;
|
|
27
|
-
};
|
|
28
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
|
-
mod
|
|
35
|
-
));
|
|
36
|
-
var init_esm_shims = __esm({
|
|
37
|
-
"../../node_modules/.pnpm/tsup@8.5.0_@microsoft+api-extractor@7.52.11_@types+node@18.19.124__@swc+core@1.7.39_jit_2efd353a01dfa07b53783c60af3184d6/node_modules/tsup/assets/esm_shims.js"() {
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
export { __commonJS, __export, __toESM, init_esm_shims };
|
|
42
|
-
//# sourceMappingURL=chunk-UN2YTB6E.js.map
|
|
43
|
-
//# sourceMappingURL=chunk-UN2YTB6E.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/.pnpm/tsup@8.5.0_@microsoft+api-extractor@7.52.11_@types+node@18.19.124__@swc+core@1.7.39_jit_2efd353a01dfa07b53783c60af3184d6/node_modules/tsup/assets/esm_shims.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,cAAA,GAAA,KAAA,CAAA;AAAA,EAAA,yLAAA,GAAA;AAAA;AAAA,CAAA","file":"chunk-UN2YTB6E.js","sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nconst getFilename = () => fileURLToPath(import.meta.url);\nconst getDirname = () => path.dirname(getFilename());\nexport const __dirname = /* @__PURE__ */getDirname();\nexport const __filename = /* @__PURE__ */getFilename();"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/net/createInternalClientContext.mts","../../src/net/third-party-applications/index.mts","../../src/net/third-party-applications/deleteVersion.mts","../../src/net/createFetch.mts","../../src/net/UserAgent.ts","../../src/net/third-party-applications/deployWebsite.mts","../../src/net/third-party-applications/getWebsite.mts","../../src/net/third-party-applications/listVersions.mts","../../src/net/third-party-applications/undeployWebsite.mts","../../src/net/third-party-applications/uploadSnapshotVersion.mts","../../src/net/third-party-applications/uploadVersion.mts","../../src/net/widget-registry/index.mts","../../src/net/widget-registry/deleteRelease.mts","../../src/net/widget-registry/getRelease.mts","../../src/net/widget-registry/listReleases.mts","../../src/net/widget-registry/publishRelease.mts","../../src/net/index.mts","../../src/util/token.ts"],"names":["fetch","consola","fsPromises"],"mappings":"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","file":"chunk-XIUA5MQB.js","sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function createInternalClientContext(foundryUrl, tokenProvider) {\n return {\n tokenProvider,\n foundryUrl\n };\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { deleteVersion } from \"./deleteVersion.mjs\";\nexport { deployWebsite } from \"./deployWebsite.mjs\";\nexport { getWebsite } from \"./getWebsite.mjs\";\nexport { listVersions } from \"./listVersions.mjs\";\nexport { undeployWebsite } from \"./undeployWebsite.mjs\";\nexport { uploadSnapshotVersion } from \"./uploadSnapshotVersion.mjs\";\nexport { uploadVersion } from \"./uploadVersion.mjs\";","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createFetch } from \"../createFetch.mjs\";\nexport async function deleteVersion(ctx, thirdPartyAppRid, version) {\n const fetch = createFetch(ctx.tokenProvider);\n const url = `${ctx.foundryUrl}/api/v2/thirdPartyApplications/${thirdPartyAppRid}/website/versions/${encodeURIComponent(version)}?preview=true`;\n await fetch(url, {\n method: \"DELETE\"\n });\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExitProcessError } from \"@osdk/cli.common\";\nimport { PalantirApiError, UnknownError } from \"@osdk/shared.net.errors\";\nimport { createFetchHeaderMutator, createFetchOrThrow } from \"@osdk/shared.net.fetch\";\nimport { consola } from \"consola\";\nimport { inspect } from \"node:util\";\nimport prettyBytes from \"pretty-bytes\";\nimport { USER_AGENT } from \"./UserAgent.js\";\nexport function createFetch(tokenProvider, fetchFn = fetch) {\n return createFetchHeaderMutator(createRequestLoggingFetch(createErrorExitingFetch(createFetchOrThrow(fetchFn))), async headers => {\n const token = await tokenProvider();\n headers.set(\"Authorization\", `Bearer ${token}`);\n headers.set(\"Fetch-User-Agent\", USER_AGENT);\n return headers;\n });\n}\nfunction createErrorExitingFetch(fetchFn = fetch) {\n return function errorExitingFetch(input, init) {\n return fetchFn(input, init).catch(handleFetchError);\n };\n}\nfunction handleFetchError(e) {\n if (!(e instanceof PalantirApiError)) {\n throw new ExitProcessError(1, \"Unexpected fetch error\");\n }\n let tip;\n if (e.statusCode === 401) {\n tip = \"Check your token is valid and has not expired or been disabled\";\n } else if (e.statusCode === 403) {\n tip = \"Check your token has the required scopes for this operation\";\n } else if (e.statusCode === 404) {\n tip = \"The resource may not exist or your token may not have the required scopes to load it\";\n }\n let message;\n if (e.errorName === \"CannotDeleteDeployedVersion\") {\n message = \"The site version to delete is live and cannot be deleted\";\n tip = \"Run the `site version set` command to change the live site version\";\n } else if (e.errorName === \"InvalidVersion\") {\n message = \"The site version is invalid and must be a valid SemVer string\";\n } else if (e.errorName === \"VersionAlreadyExists\") {\n message = \"The site version already exists\";\n } else if (e.errorName === \"VersionNotFound\") {\n message = \"The site version could not be found\";\n } else if (e.errorName === \"VersionLimitExceeded\") {\n const {\n versionLimit\n } = e.parameters ?? {};\n const versionLimitPart = versionLimit != null ? ` (Limit: ${versionLimit} versions)` : \"\";\n message = `The site contains too many versions${versionLimitPart}`;\n tip = \"Run the `site version delete` command to delete an old version and try again\";\n } else if (e.errorName === \"FileCountLimitExceeded\") {\n const {\n fileCountLimit\n } = e.parameters ?? {};\n const fileCountLimitPart = fileCountLimit != null ? ` (Limit: ${fileCountLimit} files)` : \"\";\n message = `The .zip file contains too many files${fileCountLimitPart}`;\n tip = \"Reduce the number of files in the production build to below the limit\";\n } else if (e.errorName === \"FileSizeLimitExceeded\") {\n const {\n currentFilePath,\n currentFileSizeBytes,\n fileSizeBytesLimit\n } = e.parameters ?? {};\n const currentFilePathPart = currentFilePath != null ? ` \"${currentFilePath}\"` : \"\";\n const currentFileSizePart = currentFileSizeBytes != null ? ` (${prettyBytes(parseInt(currentFileSizeBytes), {\n binary: true\n })})` : \"\";\n const fileSizeLimitPart = fileSizeBytesLimit != null ? ` (Limit: ${prettyBytes(parseInt(fileSizeBytesLimit), {\n binary: true\n })})` : \"\";\n message = `The .zip file contains a file${currentFilePathPart}${currentFileSizePart} that is too large${fileSizeLimitPart}`;\n tip = \"Ensure all files in the production build are below the size limit\";\n } else if (e.errorName === \"ScanningInProgress\") {\n message = \"The website version is being scanned for vulnerabilities and cannot be deployed yet\";\n tip = \"If you have a `foundry.config.json` file, set the `site.uploadOnly` property to `true` to disable automatic deployment.\\n\" + \"Website versions can be manually deployed from the Website Hosting page in Developer Console after their scans have completed\";\n } else {\n if (e instanceof UnknownError) {\n // Include deep inspect of original error\n message = `${e.message}\\n\\n${inspect(e, {\n depth: 10,\n colors: true\n })}`;\n } else {\n // Include extra info about the original API error\n // https://www.palantir.com/docs/foundry/api/general/overview/errors/\n const {\n errorCode,\n errorName,\n errorInstanceId,\n parameters\n } = e;\n message = `${e.message}\\n\\n${JSON.stringify({\n errorCode,\n errorName,\n errorInstanceId,\n parameters\n }, null, 2)}`;\n }\n }\n throw new ExitProcessError(1, message, tip, e);\n}\nfunction createRequestLoggingFetch(fetchFn = fetch) {\n return function requestLoggingFetch(input, init) {\n const requestLog = typeof input === \"string\" || input instanceof URL ? `${init?.method ?? \"GET\"}: ${input.toString().trim()}`\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-conversion\n : `${input.method ?? \"GET\"}: ${input.url.toString().trim()}`;\n consola.trace(requestLog);\n return fetchFn(input, init).then(a => {\n consola.trace(`FINISH ${requestLog}`);\n return a;\n });\n };\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const USER_AGENT = `osdk-cli/${process.env.PACKAGE_VERSION}`;","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createFetch } from \"../createFetch.mjs\";\nexport async function deployWebsite(ctx, thirdPartyAppRid, request) {\n const fetch = createFetch(ctx.tokenProvider);\n const url = `${ctx.foundryUrl}/api/v2/thirdPartyApplications/${thirdPartyAppRid}/website/deploy?preview=true`;\n const result = await fetch(url, {\n method: \"POST\",\n body: JSON.stringify(request),\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n return result.json();\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExitProcessError } from \"@osdk/cli.common\";\nimport { PalantirApiError } from \"@osdk/shared.net.errors\";\nimport { createFetch } from \"../createFetch.mjs\";\nexport async function getWebsite(ctx, thirdPartyAppRid) {\n const fetch = createFetch(ctx.tokenProvider);\n const url = `${ctx.foundryUrl}/api/v2/thirdPartyApplications/${thirdPartyAppRid}/website?preview=true`;\n try {\n const result = await fetch(url);\n return await result.json();\n } catch (e) {\n // Revisit this error handling in the API\n if (e instanceof ExitProcessError && e.originalError != null && e.originalError instanceof PalantirApiError && e.originalError.errorName === \"WebsiteNotFound\") {\n return undefined;\n }\n throw e;\n }\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createFetch } from \"../createFetch.mjs\";\nexport async function listVersions(ctx, thirdPartyAppRid) {\n const fetch = createFetch(ctx.tokenProvider);\n const url = `${ctx.foundryUrl}/api/v2/thirdPartyApplications/${thirdPartyAppRid}/website/versions?preview=true`;\n const result = await fetch(url);\n return result.json();\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createFetch } from \"../createFetch.mjs\";\nexport async function undeployWebsite(ctx, thirdPartyAppRid) {\n const fetch = createFetch(ctx.tokenProvider);\n const url = `${ctx.foundryUrl}/api/v2/thirdPartyApplications/${thirdPartyAppRid}/website/undeploy?preview=true`;\n await fetch(url, {\n method: \"POST\"\n });\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createFetch } from \"../createFetch.mjs\";\nexport async function uploadSnapshotVersion(ctx, thirdPartyAppRid, version, snapshotId, zipFile) {\n const fetch = createFetch(ctx.tokenProvider);\n const url = `${ctx.foundryUrl}/api/v2/thirdPartyApplications/${thirdPartyAppRid}/website/versions/uploadSnapshot?version=${encodeURIComponent(version)}&preview=true${snapshotId !== \"\" ? `&snapshotIdentifier=${encodeURIComponent(snapshotId)}` : \"\"}`;\n const result = await fetch(url, {\n method: \"POST\",\n body: zipFile,\n headers: {\n \"Content-Type\": \"application/octet-stream\"\n },\n duplex: \"half\" // Node hates me\n });\n return result.json();\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createFetch } from \"../createFetch.mjs\";\nexport async function uploadVersion(ctx, thirdPartyAppRid, version, zipFile) {\n const fetch = createFetch(ctx.tokenProvider);\n const url = `${ctx.foundryUrl}/api/v2/thirdPartyApplications/${thirdPartyAppRid}/website/versions/upload?version=${encodeURIComponent(version)}&preview=true`;\n const result = await fetch(url, {\n method: \"POST\",\n body: zipFile,\n headers: {\n \"Content-Type\": \"application/octet-stream\"\n },\n duplex: \"half\" // Node hates me\n });\n return result.json();\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { deleteRelease } from \"./deleteRelease.mjs\";\nexport { getRelease } from \"./getRelease.mjs\";\nexport { listReleases } from \"./listReleases.mjs\";\nexport { publishRelease } from \"./publishRelease.mjs\";","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createFetch } from \"../createFetch.mjs\";\nexport async function deleteRelease(ctx, widgetSetRid, releaseVersion) {\n const fetch = createFetch(ctx.tokenProvider);\n const url = `${ctx.foundryUrl}/api/v2/widgets/widgetSets/${widgetSetRid}/releases/${releaseVersion}?preview=true`;\n await fetch(url, {\n method: \"DELETE\"\n });\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createFetch } from \"../createFetch.mjs\";\nexport async function getRelease(ctx, widgetSetRid, releaseVersion) {\n const fetch = createFetch(ctx.tokenProvider);\n const url = `${ctx.foundryUrl}/api/v2/widgets/widgetSets/${widgetSetRid}/releases/${releaseVersion}?preview=true`;\n const response = await fetch(url);\n return response.json();\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createFetch } from \"../createFetch.mjs\";\nexport async function listReleases(ctx, widgetSetRid) {\n const fetch = createFetch(ctx.tokenProvider);\n const url = `${ctx.foundryUrl}/api/v2/widgets/widgetSets/${widgetSetRid}/releases?preview=true`;\n const response = await fetch(url);\n return response.json();\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createFetch } from \"../createFetch.mjs\";\nexport async function publishRelease(ctx, repositoryRid, repositoryVersion, zipFile) {\n const fetch = createFetch(ctx.tokenProvider);\n const url = `${ctx.foundryUrl}/api/v2/widgets/repositories/${repositoryRid}/publish?preview=true&repositoryVersion=${repositoryVersion}`;\n await fetch(url, {\n method: \"POST\",\n body: zipFile,\n headers: {\n \"Content-Type\": \"application/octet-stream\"\n },\n duplex: \"half\" // Node hates me\n });\n}","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { createInternalClientContext } from \"./createInternalClientContext.mjs\";\nexport * as thirdPartyApplications from \"./third-party-applications/index.mjs\";\nexport * as widgetRegistry from \"./widget-registry/index.mjs\";","/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExitProcessError } from \"@osdk/cli.common\";\nimport { consola } from \"consola\";\nimport { promises as fsPromises } from \"node:fs\";\nimport path from \"node:path\";\nconst TOKEN_ENV_VARS = [\"FOUNDRY_TOKEN\", \"FOUNDRY_SDK_AUTH_TOKEN\"];\n\n/**\n * Loads a JWT Auth Token from an argument, a file, or environment variable returning the first found.\n * @param token The token as a string.\n * @param tokenFile The path to the token file.\n * @returns The token as a string.\n * @throws An error if no token is found.\n */\nexport async function loadToken(token, tokenFile) {\n if (token) {\n consola.debug(`Using token from --token option`);\n validate(token);\n return token;\n }\n if (tokenFile) {\n const loadedToken = await loadTokenFile(tokenFile);\n consola.debug(`Using token from --tokenFile=${loadedToken.filePath} option`);\n validate(loadedToken.token);\n return loadedToken.token;\n }\n for (const envVar of TOKEN_ENV_VARS) {\n const environmentToken = process.env[envVar];\n if (environmentToken) {\n consola.debug(`Using token from ${envVar} environment variable`);\n validate(environmentToken);\n if (envVar === \"FOUNDRY_SDK_AUTH_TOKEN\") {\n consola.warn(`Using FOUNDRY_SDK_AUTH_TOKEN environment variable is deprecated. Please use FOUNDRY_TOKEN instead.`);\n }\n return environmentToken;\n }\n }\n throw new ExitProcessError(2, `No token found.`, `You can supply a --token or --token-file option, or set the ${TOKEN_ENV_VARS[0]} environment variable`);\n}\n/**\n * Reads a JWT Auth Token from a file.\n * @param filePath The path to the token file.\n * @returns The token as a string.\n * @throws An error if the file cannot be read.\n */\nexport async function loadTokenFile(filePath) {\n let token;\n let resolvedPath;\n try {\n resolvedPath = path.resolve(filePath);\n token = await fsPromises.readFile(resolvedPath, \"utf8\");\n token = token.trim();\n } catch (error) {\n throw new ExitProcessError(2, `Unable to read token file \"${filePath}\": ${error}`);\n }\n return {\n filePath: resolvedPath,\n token\n };\n}\nexport function validate(token) {\n if (!isJWT(token)) {\n throw new ExitProcessError(2, `Token does not appear to be a JWT`);\n }\n}\nfunction isJWT(token) {\n // https://stackoverflow.com/a/65755789\n const jwtPattern = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\n return jwtPattern.test(token);\n}"]}
|