@osdk/cli 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/build/js/{chunk-GTNZA5UY.mjs → chunk-CLAEREOL.mjs} +4 -2
  2. package/build/js/chunk-CLAEREOL.mjs.map +1 -0
  3. package/build/js/chunk-DQYIDDJN.cjs +17 -0
  4. package/build/js/chunk-DQYIDDJN.cjs.map +1 -0
  5. package/build/js/{chunk-XNYKWAIE.mjs → chunk-EZIJJWAA.mjs} +35 -16
  6. package/build/js/chunk-EZIJJWAA.mjs.map +1 -0
  7. package/build/js/chunk-GX2IOTA6.mjs +10 -0
  8. package/build/js/{chunk-N6K26UR4.mjs.map → chunk-GX2IOTA6.mjs.map} +1 -1
  9. package/build/js/{chunk-JFDXL5SV.mjs → chunk-HD6SVFKA.mjs} +5 -5
  10. package/build/js/chunk-HD6SVFKA.mjs.map +1 -0
  11. package/build/js/{chunk-HYF3CTKZ.cjs → chunk-HZ3XILMW.cjs} +4 -2
  12. package/build/js/chunk-HZ3XILMW.cjs.map +1 -0
  13. package/build/js/chunk-IV3QY3PZ.mjs +15 -0
  14. package/build/js/chunk-IV3QY3PZ.mjs.map +1 -0
  15. package/build/js/{chunk-D7QHLGEU.cjs → chunk-JFYC74FJ.cjs} +41 -22
  16. package/build/js/chunk-JFYC74FJ.cjs.map +1 -0
  17. package/build/js/{chunk-2DZBTS5E.cjs → chunk-TZGNA5WR.cjs} +5 -5
  18. package/build/js/chunk-TZGNA5WR.cjs.map +1 -0
  19. package/build/js/chunk-UE2TMWJL.cjs +12 -0
  20. package/build/js/{chunk-X2S4O5ZR.cjs.map → chunk-UE2TMWJL.cjs.map} +1 -1
  21. package/build/js/{handleGenerate-Q6EQWXFG.cjs → handleGenerate-GBN42PDO.cjs} +11 -11
  22. package/build/js/handleGenerate-GBN42PDO.cjs.map +1 -0
  23. package/build/js/{handleGenerate-ZUZV3IBI.mjs → handleGenerate-NQPMMKLX.mjs} +10 -10
  24. package/build/js/handleGenerate-NQPMMKLX.mjs.map +1 -0
  25. package/build/js/index.cjs +99 -55
  26. package/build/js/index.cjs.map +1 -1
  27. package/build/js/index.mjs +95 -51
  28. package/build/js/index.mjs.map +1 -1
  29. package/build/js/loginFlow-5ZAMXQKE.cjs +10 -0
  30. package/build/js/loginFlow-BWWZBM36.mjs +4 -0
  31. package/build/js/siteDeployCommand-7QTLGWZI.mjs +150 -0
  32. package/build/js/siteDeployCommand-7QTLGWZI.mjs.map +1 -0
  33. package/build/js/siteDeployCommand-HOXKQM56.cjs +176 -0
  34. package/build/js/siteDeployCommand-HOXKQM56.cjs.map +1 -0
  35. package/build/js/versionDeleteCommand-GDQEZLYA.cjs +38 -0
  36. package/build/js/versionDeleteCommand-GDQEZLYA.cjs.map +1 -0
  37. package/build/js/{versionDeleteCommand-6BJL5XLG.mjs → versionDeleteCommand-LQRGKTMH.mjs} +13 -3
  38. package/build/js/versionDeleteCommand-LQRGKTMH.mjs.map +1 -0
  39. package/build/js/{versionGetCommand-OR4RLOLM.mjs → versionGetCommand-NZAQX7U5.mjs} +3 -3
  40. package/build/js/{versionGetCommand-Y2VR2WKH.cjs → versionGetCommand-RU5LS3IG.cjs} +8 -8
  41. package/build/js/{versionListCommand-LPPGQCQF.mjs → versionListCommand-5N57YKEQ.mjs} +6 -4
  42. package/build/js/versionListCommand-5N57YKEQ.mjs.map +1 -0
  43. package/build/js/{versionListCommand-5KM5PFYL.cjs → versionListCommand-QYCTS6KU.cjs} +11 -9
  44. package/build/js/versionListCommand-QYCTS6KU.cjs.map +1 -0
  45. package/build/js/{versionSetCommand-VD3L5DOV.cjs → versionSetCommand-K4SDBPLB.cjs} +8 -8
  46. package/build/js/{versionSetCommand-LHOVVI6U.mjs → versionSetCommand-UWPAQ7NV.mjs} +3 -3
  47. package/build/js/versionUnsetCommand-INDJ26MO.cjs +36 -0
  48. package/build/js/versionUnsetCommand-INDJ26MO.cjs.map +1 -0
  49. package/build/js/{versionUnsetCommand-IJT4JWBN.mjs → versionUnsetCommand-PZRZPTPR.mjs} +13 -3
  50. package/build/js/versionUnsetCommand-PZRZPTPR.mjs.map +1 -0
  51. package/build/types/ExitProcessError.d.ts +3 -1
  52. package/build/types/commands/auth/CommonAuthArgs.d.ts +1 -1
  53. package/build/types/commands/auth/login/LoginArgs.d.ts +1 -1
  54. package/build/types/commands/site/deploy/SiteDeployArgs.d.ts +2 -1
  55. package/build/types/commands/site/deploy/siteDeployCommand.d.mts +8 -1
  56. package/build/types/commands/site/version/delete/VersionDeleteArgs.d.ts +5 -0
  57. package/build/types/commands/site/version/delete/index.d.ts +2 -2
  58. package/build/types/commands/site/version/delete/versionDeleteCommand.d.mts +2 -2
  59. package/build/types/commands/site/version/get/VersionGetArgs.d.ts +3 -0
  60. package/build/types/commands/site/version/get/index.d.ts +2 -1
  61. package/build/types/commands/site/version/get/versionGetCommand.d.mts +2 -2
  62. package/build/types/commands/site/version/list/VersionListArgs.d.ts +3 -0
  63. package/build/types/commands/site/version/list/index.d.ts +2 -1
  64. package/build/types/commands/site/version/list/versionListCommand.d.mts +2 -2
  65. package/build/types/commands/site/version/set/VersionSetArgs.d.ts +4 -0
  66. package/build/types/commands/site/version/set/index.d.ts +2 -2
  67. package/build/types/commands/site/version/set/versionSetCommand.d.mts +2 -2
  68. package/build/types/commands/site/version/unset/VersionUnsetArgs.d.ts +4 -0
  69. package/build/types/commands/site/version/unset/index.d.ts +2 -1
  70. package/build/types/commands/site/version/unset/versionUnsetCommand.d.mts +2 -2
  71. package/build/types/commands/typescript/generate/TypescriptGenerateArgs.d.ts +1 -1
  72. package/build/types/consola/handlePromptCancel.d.ts +1 -0
  73. package/build/types/net/UserAgent.d.ts +1 -0
  74. package/build/types/net/index.d.mts +1 -0
  75. package/build/types/util/config.d.ts +2 -2
  76. package/build/types/util/token.d.ts +2 -2
  77. package/changelog/0.6.0/pr-54.v2.yml +5 -0
  78. package/changelog/0.6.0/pr-56.v2.yml +5 -0
  79. package/changelog/0.6.0/pr-58.v2.yml +5 -0
  80. package/changelog/0.7.0/pr-50.v2.yml +5 -0
  81. package/changelog/0.7.0/pr-52.v2.yml +5 -0
  82. package/changelog/0.7.0/pr-55.v2.yml +5 -0
  83. package/changelog/0.7.0/pr-61.v2.yml +5 -0
  84. package/changelog/0.7.0/pr-63.v2.yml +5 -0
  85. package/package.json +9 -3
  86. package/build/js/chunk-2DZBTS5E.cjs.map +0 -1
  87. package/build/js/chunk-D7QHLGEU.cjs.map +0 -1
  88. package/build/js/chunk-GTNZA5UY.mjs.map +0 -1
  89. package/build/js/chunk-HYF3CTKZ.cjs.map +0 -1
  90. package/build/js/chunk-JFDXL5SV.mjs.map +0 -1
  91. package/build/js/chunk-N6K26UR4.mjs +0 -9
  92. package/build/js/chunk-X2S4O5ZR.cjs +0 -11
  93. package/build/js/chunk-XNYKWAIE.mjs.map +0 -1
  94. package/build/js/handleGenerate-Q6EQWXFG.cjs.map +0 -1
  95. package/build/js/handleGenerate-ZUZV3IBI.mjs.map +0 -1
  96. package/build/js/loginFlow-BZDDHHT5.cjs +0 -10
  97. package/build/js/loginFlow-KGLTXVZ6.mjs +0 -4
  98. package/build/js/siteDeployCommand-7GXJF5HF.mjs +0 -100
  99. package/build/js/siteDeployCommand-7GXJF5HF.mjs.map +0 -1
  100. package/build/js/siteDeployCommand-KUNL3GIW.cjs +0 -126
  101. package/build/js/siteDeployCommand-KUNL3GIW.cjs.map +0 -1
  102. package/build/js/versionDeleteCommand-6BJL5XLG.mjs.map +0 -1
  103. package/build/js/versionDeleteCommand-RLU7UUYD.cjs +0 -28
  104. package/build/js/versionDeleteCommand-RLU7UUYD.cjs.map +0 -1
  105. package/build/js/versionListCommand-5KM5PFYL.cjs.map +0 -1
  106. package/build/js/versionListCommand-LPPGQCQF.mjs.map +0 -1
  107. package/build/js/versionUnsetCommand-IJT4JWBN.mjs.map +0 -1
  108. package/build/js/versionUnsetCommand-XYBUQ6XB.cjs +0 -26
  109. package/build/js/versionUnsetCommand-XYBUQ6XB.cjs.map +0 -1
  110. package/build/types/commands/site/version/SiteVersionArgs.d.ts +0 -4
  111. /package/build/js/{loginFlow-BZDDHHT5.cjs.map → loginFlow-5ZAMXQKE.cjs.map} +0 -0
  112. /package/build/js/{loginFlow-KGLTXVZ6.mjs.map → loginFlow-BWWZBM36.mjs.map} +0 -0
  113. /package/build/js/{versionGetCommand-OR4RLOLM.mjs.map → versionGetCommand-NZAQX7U5.mjs.map} +0 -0
  114. /package/build/js/{versionGetCommand-Y2VR2WKH.cjs.map → versionGetCommand-RU5LS3IG.cjs.map} +0 -0
  115. /package/build/js/{versionSetCommand-LHOVVI6U.mjs.map → versionSetCommand-K4SDBPLB.cjs.map} +0 -0
  116. /package/build/js/{versionSetCommand-VD3L5DOV.cjs.map → versionSetCommand-UWPAQ7NV.mjs.map} +0 -0
@@ -23,7 +23,7 @@ function isTokenErrorResponse(response) {
23
23
  // src/commands/auth/login/loginFlow.ts
24
24
  var BROWSER_PROMPT_TIME_MS = 60 * 1e3;
25
25
  async function invokeLoginFlow(args) {
26
- consola__default.default.start(`Authenticating using application id: ${args.applicationId}`);
26
+ consola__default.default.start(`Authenticating using application id: ${args.clientId}`);
27
27
  const redirectUrl = "http://localhost:8080/auth/callback";
28
28
  const port = url.parse(redirectUrl).port;
29
29
  let resolve;
@@ -43,11 +43,11 @@ async function invokeLoginFlow(args) {
43
43
  }
44
44
  });
45
45
  server.listen(port);
46
- const clientId = args.applicationId;
46
+ const clientId = args.clientId;
47
47
  const state = generateRandomString();
48
48
  const codeVerifier = generateRandomString();
49
49
  const codeChallenge = await generateCodeChallenge(codeVerifier);
50
- const authorizeUrl = generateAuthorizeUrl(args.baseUrl, clientId, state, redirectUrl, codeChallenge);
50
+ const authorizeUrl = generateAuthorizeUrl(args.foundryUrl, clientId, state, redirectUrl, codeChallenge);
51
51
  try {
52
52
  await open__default.default(authorizeUrl);
53
53
  } catch {
@@ -59,7 +59,7 @@ async function invokeLoginFlow(args) {
59
59
  const code = await authCode;
60
60
  server.close();
61
61
  clearTimeout(browserPrompt);
62
- const token = await getTokenWithCodeVerifier(clientId, redirectUrl, code, args.baseUrl, codeVerifier);
62
+ const token = await getTokenWithCodeVerifier(clientId, redirectUrl, code, args.foundryUrl, codeVerifier);
63
63
  if (isTokenErrorResponse(token)) {
64
64
  consola__default.default.error("Unable to authenticate", token.error, token.error_description);
65
65
  process.exit(1);
@@ -126,4 +126,4 @@ async function getTokenWithCodeVerifier(clientId, redirectUrl, code, baseUrl, co
126
126
 
127
127
  exports.invokeLoginFlow = invokeLoginFlow;
128
128
  //# sourceMappingURL=out.js.map
129
- //# sourceMappingURL=chunk-2DZBTS5E.cjs.map
129
+ //# sourceMappingURL=chunk-TZGNA5WR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/commands/auth/login/loginFlow.ts","../../src/commands/auth/login/token.ts"],"names":[],"mappings":"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","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\n// eslint-disable-next-line import/no-named-as-default\nimport consola from \"consola\";\nimport { getRandomValues, subtle } from \"crypto\";\nimport { createServer } from \"http\";\nimport open from \"open\";\nimport { join } from \"path/posix\";\nimport { exit } from \"process\";\nimport { parse } from \"url\";\nimport { isTokenErrorResponse } from \"./token.js\";\nconst BROWSER_PROMPT_TIME_MS = 60 * 1000;\nexport default 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 let output = [];\n let 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 codeChallengeMethod = \"S256\";\n const codeChallenge = btoa(String.fromCharCode(...new Uint8Array(digest))).replace(/\\//g, \"_\").replace(/\\+/g, \"-\").replace(/=/g, \"\");\n return {\n codeChallenge,\n codeChallengeMethod\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\"].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}"]}
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ var semver = require('semver');
4
+
5
+ // src/util/isValidSemver.ts
6
+ function isValidSemver(semverString) {
7
+ return semver.valid(semverString) != null;
8
+ }
9
+
10
+ exports.isValidSemver = isValidSemver;
11
+ //# sourceMappingURL=out.js.map
12
+ //# sourceMappingURL=chunk-UE2TMWJL.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/isValidSemver.ts"],"names":[],"mappings":";AAiBA,IAAM,SAAS;AACR,SAAS,cAAc,cAAc;AAC1C,SAAO,OAAO,KAAK,YAAY;AACjC","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\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst semver = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nexport function isValidSemver(semverString) {\n return semver.test(semverString);\n}"]}
1
+ {"version":3,"sources":["../../src/util/isValidSemver.ts"],"names":[],"mappings":";AAgBA,SAAS,aAAa;AACf,SAAS,cAAc,cAAc;AAC1C,SAAO,MAAM,YAAY,KAAK;AAChC","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 { valid } from \"semver\";\nexport function isValidSemver(semverString) {\n return valid(semverString) != null;\n}"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk2DZBTS5E_cjs = require('./chunk-2DZBTS5E.cjs');
3
+ var chunkTZGNA5WR_cjs = require('./chunk-TZGNA5WR.cjs');
4
4
  require('./chunk-HQDDGVB7.cjs');
5
5
  var requests = require('@osdk/gateway/requests');
6
6
  var generator = require('@osdk/generator');
@@ -28,12 +28,12 @@ function _interopNamespace(e) {
28
28
 
29
29
  var fs__namespace = /*#__PURE__*/_interopNamespace(fs);
30
30
 
31
- var USER_AGENT = `osdk-cli/${"0.5.0"}`;
31
+ var USER_AGENT = `osdk-cli/${"0.7.0"}`;
32
32
  async function handleGenerate(args) {
33
33
  let success = false;
34
34
  if (args.ontologyPath) {
35
35
  success = await generateFromLocalFile(args);
36
- } else if (args.stack && args.clientId) {
36
+ } else if (args.foundryUrl && args.clientId) {
37
37
  success = await generateFromStack(args);
38
38
  } else {
39
39
  throw new Error("Must have specified ontologyPath or stack and clientId");
@@ -52,13 +52,13 @@ async function generateFromLocalFile(args) {
52
52
  }
53
53
  async function generateFromStack(args) {
54
54
  const {
55
- stack,
55
+ foundryUrl,
56
56
  clientId,
57
57
  ontologyWritePath
58
58
  } = args;
59
- const token = await chunk2DZBTS5E_cjs.invokeLoginFlow({
60
- applicationId: clientId,
61
- baseUrl: stack,
59
+ const token = await chunkTZGNA5WR_cjs.invokeLoginFlow({
60
+ clientId,
61
+ foundryUrl,
62
62
  verbose: 0
63
63
  });
64
64
  const {
@@ -67,14 +67,14 @@ async function generateFromStack(args) {
67
67
  metadata: {
68
68
  userAgent: USER_AGENT
69
69
  }
70
- }, args.stack, () => token.access_token, USER_AGENT);
70
+ }, args.foundryUrl, () => token.access_token, USER_AGENT);
71
71
  try {
72
- const ontologies = await requests.listOntologiesV2(shared_net.createOpenApiRequest(stack, fetch));
72
+ const ontologies = await requests.listOntologiesV2(shared_net.createOpenApiRequest(foundryUrl, fetch));
73
73
  if (ontologies.data.length !== 1) {
74
74
  consola.consola.error(`Could not look up ontology with these credentials. Found ${ontologies.data.length} ontologies.`);
75
75
  return false;
76
76
  }
77
- const ontology = await requests.getOntologyFullMetadata(shared_net.createOpenApiRequest(stack, fetch), ontologies.data[0].apiName);
77
+ const ontology = await requests.getOntologyFullMetadata(shared_net.createOpenApiRequest(foundryUrl, fetch), ontologies.data[0].apiName);
78
78
  if (ontologyWritePath) {
79
79
  fs__namespace.writeFileSync(ontologyWritePath, JSON.stringify(ontology, null, 2));
80
80
  }
@@ -116,4 +116,4 @@ function getUserAgent(version) {
116
116
 
117
117
  module.exports = handleGenerate;
118
118
  //# sourceMappingURL=out.js.map
119
- //# sourceMappingURL=handleGenerate-Q6EQWXFG.cjs.map
119
+ //# sourceMappingURL=handleGenerate-GBN42PDO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/commands/typescript/generate/handleGenerate.mts"],"names":[],"mappings":";;;;;;AAgBA,SAAS,yBAAyB,wBAAwB;AAC1D,SAAS,mCAAmC,4CAA4C;AACxF,SAAS,qBAAqB,4BAA4B;AAC1D,SAAS,eAAe;AACxB,YAAY,QAAQ;AAEpB,IAAM,aAAa,YAAY,OAA2B;AAC1D,eAAO,eAAsC,MAAM;AACjD,MAAI,UAAU;AACd,MAAI,KAAK,cAAc;AACrB,cAAU,MAAM,sBAAsB,IAAI;AAAA,EAC5C,WAAW,KAAK,cAAc,KAAK,UAAU;AAC3C,cAAU,MAAM,kBAAkB,IAAI;AAAA,EACxC,OAAO;AACL,UAAM,IAAI,MAAM,wDAAwD;AAAA,EAC1E;AACA,MAAI,SAAS;AACX,YAAQ,KAAK,iBAAiB;AAAA,EAChC;AACF;AACA,eAAe,sBAAsB,MAAM;AACzC,MAAI,CAAI,cAAW,KAAK,YAAY,GAAG;AACrC,YAAQ,MAAM,iCAAiC,KAAK,YAAY,EAAE;AAClE,WAAO;AAAA,EACT;AACA,QAAM,WAAW,KAAK,MAAM,MAAS,YAAS,SAAS,KAAK,cAAc,OAAO,CAAC;AAClF,SAAO,MAAM,kBAAkB,UAAU,IAAI;AAC/C;AACA,eAAe,kBAAkB,MAAM;AACrC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ,MAAM,gBAAgB;AAAA,IAClC;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACD,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,oBAAoB;AAAA,IACtB,UAAU;AAAA,MACR,WAAW;AAAA,IACb;AAAA,EACF,GAAG,KAAK,YAAY,MAAM,MAAM,cAAc,UAAU;AACxD,MAAI;AACF,UAAM,aAAa,MAAM,iBAAiB,qBAAqB,YAAY,KAAK,CAAC;AACjF,QAAI,WAAW,KAAK,WAAW,GAAG;AAChC,cAAQ,MAAM,4DAA4D,WAAW,KAAK,MAAM,cAAc;AAC9G,aAAO;AAAA,IACT;AACA,UAAM,WAAW,MAAM,wBAAwB,qBAAqB,YAAY,KAAK,GAAG,WAAW,KAAK,CAAC,EAAE,OAAO;AAClH,QAAI,mBAAmB;AACrB,MAAG,iBAAc,mBAAmB,KAAK,UAAU,UAAU,MAAM,CAAC,CAAC;AAAA,IACvE;AACA,WAAO,MAAM,kBAAkB,UAAU,IAAI;AAAA,EAC/C,SAAS,GAAG;AACV,YAAQ,MAAM,mCAAmC,CAAC;AAClD,WAAO;AAAA,EACT;AACF;AACA,eAAe,kBAAkB,UAAU,MAAM;AAC/C,QAAM,YAAY;AAAA,IAChB,WAAW,CAAC,MAAM,aAAa;AAC7B,aAAU,YAAS,UAAU,MAAM,UAAU,OAAO;AAAA,IACtD;AAAA,IACA,OAAO,OAAO,MAAM,YAAY;AAC9B,YAAS,YAAS,MAAM,MAAM,OAAO;AAAA,IACvC;AAAA,IACA,SAAS,OAAM,SAAW,YAAS,QAAQ,IAAI;AAAA,EACjD;AACA,MAAI;AACF,QAAI,KAAK,MAAM;AACb,YAAM,qCAAqC,UAAU,aAAa,KAAK,OAAO,GAAG,WAAW,KAAK,QAAQ,KAAK,WAAW;AAAA,IAC3H,OAAO;AACL,YAAM,kCAAkC,UAAU,aAAa,KAAK,OAAO,GAAG,WAAW,KAAK,QAAQ,KAAK,WAAW;AAAA,IACxH;AAAA,EACF,SAAS,GAAG;AACV,YAAQ,MAAM,0BAA0B,EAAE,OAAO;AACjD,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAIA,SAAS,aAAa,SAAS;AAC7B,MAAI,YAAY,OAAO;AACrB,WAAO;AAAA,EACT,OAAO;AACL,WAAO,kBAAkB,OAAO,IAAI,UAAU;AAAA,EAChD;AACF","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 { getOntologyFullMetadata, listOntologiesV2 } from \"@osdk/gateway/requests\";\nimport { generateClientSdkVersionOneDotOne, generateClientSdkVersionTwoPointZero } from \"@osdk/generator\";\nimport { createClientContext, createOpenApiRequest } from \"@osdk/shared.net\";\nimport { consola } from \"consola\";\nimport * as fs from \"node:fs\";\nimport invokeLoginFlow from \"../../auth/login/loginFlow.js\";\nconst USER_AGENT = `osdk-cli/${process.env.PACKAGE_VERSION}`;\nexport default async function handleGenerate(args) {\n let success = false;\n if (args.ontologyPath) {\n success = await generateFromLocalFile(args);\n } else if (args.foundryUrl && args.clientId) {\n success = await generateFromStack(args);\n } else {\n throw new Error(\"Must have specified ontologyPath or stack and clientId\");\n }\n if (success) {\n consola.info(\"OSDK Generated!\");\n }\n}\nasync function generateFromLocalFile(args) {\n if (!fs.existsSync(args.ontologyPath)) {\n consola.error(`Ontology file does not exist: ${args.ontologyPath}`);\n return false;\n }\n const ontology = JSON.parse(await fs.promises.readFile(args.ontologyPath, \"utf-8\"));\n return await generateClientSdk(ontology, args);\n}\nasync function generateFromStack(args) {\n const {\n foundryUrl,\n clientId,\n ontologyWritePath\n } = args;\n const token = await invokeLoginFlow({\n clientId,\n foundryUrl,\n verbose: 0\n });\n const {\n fetch\n } = createClientContext({\n metadata: {\n userAgent: USER_AGENT\n }\n }, args.foundryUrl, () => token.access_token, USER_AGENT);\n try {\n const ontologies = await listOntologiesV2(createOpenApiRequest(foundryUrl, fetch));\n if (ontologies.data.length !== 1) {\n consola.error(`Could not look up ontology with these credentials. Found ${ontologies.data.length} ontologies.`);\n return false;\n }\n const ontology = await getOntologyFullMetadata(createOpenApiRequest(foundryUrl, fetch), ontologies.data[0].apiName);\n if (ontologyWritePath) {\n fs.writeFileSync(ontologyWritePath, JSON.stringify(ontology, null, 2));\n }\n return await generateClientSdk(ontology, args);\n } catch (e) {\n consola.error(\"Failed to generate the ontology\", e);\n return false;\n }\n}\nasync function generateClientSdk(ontology, args) {\n const minimalFs = {\n writeFile: (path, contents) => {\n return fs.promises.writeFile(path, contents, \"utf-8\");\n },\n mkdir: async (path, options) => {\n await fs.promises.mkdir(path, options);\n },\n readdir: async path => fs.promises.readdir(path)\n };\n try {\n if (args.beta) {\n await generateClientSdkVersionTwoPointZero(ontology, getUserAgent(args.version), minimalFs, args.outDir, args.packageType);\n } else {\n await generateClientSdkVersionOneDotOne(ontology, getUserAgent(args.version), minimalFs, args.outDir, args.packageType);\n }\n } catch (e) {\n consola.error(\"OSDK generation failed\", e.message);\n return false;\n }\n return true;\n}\n\n// If the user passed us `dev` as our version, we use that for both our generated package version AND the cli version.\n// This makes it so that releases don't force us to have to regenerate the code when the version strings change.\nfunction getUserAgent(version) {\n if (version === \"dev\") {\n return \"typescript-sdk/dev osdk-cli/dev\";\n } else {\n return `typescript-sdk/${version} ${USER_AGENT}`;\n }\n}"]}
@@ -1,4 +1,4 @@
1
- import { invokeLoginFlow } from './chunk-JFDXL5SV.mjs';
1
+ import { invokeLoginFlow } from './chunk-HD6SVFKA.mjs';
2
2
  import './chunk-E2SEJZTC.mjs';
3
3
  import { listOntologiesV2, getOntologyFullMetadata } from '@osdk/gateway/requests';
4
4
  import { generateClientSdkVersionTwoPointZero, generateClientSdkVersionOneDotOne } from '@osdk/generator';
@@ -6,12 +6,12 @@ import { createClientContext, createOpenApiRequest } from '@osdk/shared.net';
6
6
  import { consola } from 'consola';
7
7
  import * as fs from 'fs';
8
8
 
9
- var USER_AGENT = `osdk-cli/${"0.5.0"}`;
9
+ var USER_AGENT = `osdk-cli/${"0.7.0"}`;
10
10
  async function handleGenerate(args) {
11
11
  let success = false;
12
12
  if (args.ontologyPath) {
13
13
  success = await generateFromLocalFile(args);
14
- } else if (args.stack && args.clientId) {
14
+ } else if (args.foundryUrl && args.clientId) {
15
15
  success = await generateFromStack(args);
16
16
  } else {
17
17
  throw new Error("Must have specified ontologyPath or stack and clientId");
@@ -30,13 +30,13 @@ async function generateFromLocalFile(args) {
30
30
  }
31
31
  async function generateFromStack(args) {
32
32
  const {
33
- stack,
33
+ foundryUrl,
34
34
  clientId,
35
35
  ontologyWritePath
36
36
  } = args;
37
37
  const token = await invokeLoginFlow({
38
- applicationId: clientId,
39
- baseUrl: stack,
38
+ clientId,
39
+ foundryUrl,
40
40
  verbose: 0
41
41
  });
42
42
  const {
@@ -45,14 +45,14 @@ async function generateFromStack(args) {
45
45
  metadata: {
46
46
  userAgent: USER_AGENT
47
47
  }
48
- }, args.stack, () => token.access_token, USER_AGENT);
48
+ }, args.foundryUrl, () => token.access_token, USER_AGENT);
49
49
  try {
50
- const ontologies = await listOntologiesV2(createOpenApiRequest(stack, fetch));
50
+ const ontologies = await listOntologiesV2(createOpenApiRequest(foundryUrl, fetch));
51
51
  if (ontologies.data.length !== 1) {
52
52
  consola.error(`Could not look up ontology with these credentials. Found ${ontologies.data.length} ontologies.`);
53
53
  return false;
54
54
  }
55
- const ontology = await getOntologyFullMetadata(createOpenApiRequest(stack, fetch), ontologies.data[0].apiName);
55
+ const ontology = await getOntologyFullMetadata(createOpenApiRequest(foundryUrl, fetch), ontologies.data[0].apiName);
56
56
  if (ontologyWritePath) {
57
57
  fs.writeFileSync(ontologyWritePath, JSON.stringify(ontology, null, 2));
58
58
  }
@@ -94,4 +94,4 @@ function getUserAgent(version) {
94
94
 
95
95
  export { handleGenerate as default };
96
96
  //# sourceMappingURL=out.js.map
97
- //# sourceMappingURL=handleGenerate-ZUZV3IBI.mjs.map
97
+ //# sourceMappingURL=handleGenerate-NQPMMKLX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/commands/typescript/generate/handleGenerate.mts"],"names":[],"mappings":";;;;;;AAgBA,SAAS,yBAAyB,wBAAwB;AAC1D,SAAS,mCAAmC,4CAA4C;AACxF,SAAS,qBAAqB,4BAA4B;AAC1D,SAAS,eAAe;AACxB,YAAY,QAAQ;AAEpB,IAAM,aAAa,YAAY,OAA2B;AAC1D,eAAO,eAAsC,MAAM;AACjD,MAAI,UAAU;AACd,MAAI,KAAK,cAAc;AACrB,cAAU,MAAM,sBAAsB,IAAI;AAAA,EAC5C,WAAW,KAAK,cAAc,KAAK,UAAU;AAC3C,cAAU,MAAM,kBAAkB,IAAI;AAAA,EACxC,OAAO;AACL,UAAM,IAAI,MAAM,wDAAwD;AAAA,EAC1E;AACA,MAAI,SAAS;AACX,YAAQ,KAAK,iBAAiB;AAAA,EAChC;AACF;AACA,eAAe,sBAAsB,MAAM;AACzC,MAAI,CAAI,cAAW,KAAK,YAAY,GAAG;AACrC,YAAQ,MAAM,iCAAiC,KAAK,YAAY,EAAE;AAClE,WAAO;AAAA,EACT;AACA,QAAM,WAAW,KAAK,MAAM,MAAS,YAAS,SAAS,KAAK,cAAc,OAAO,CAAC;AAClF,SAAO,MAAM,kBAAkB,UAAU,IAAI;AAC/C;AACA,eAAe,kBAAkB,MAAM;AACrC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ,MAAM,gBAAgB;AAAA,IAClC;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACD,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,oBAAoB;AAAA,IACtB,UAAU;AAAA,MACR,WAAW;AAAA,IACb;AAAA,EACF,GAAG,KAAK,YAAY,MAAM,MAAM,cAAc,UAAU;AACxD,MAAI;AACF,UAAM,aAAa,MAAM,iBAAiB,qBAAqB,YAAY,KAAK,CAAC;AACjF,QAAI,WAAW,KAAK,WAAW,GAAG;AAChC,cAAQ,MAAM,4DAA4D,WAAW,KAAK,MAAM,cAAc;AAC9G,aAAO;AAAA,IACT;AACA,UAAM,WAAW,MAAM,wBAAwB,qBAAqB,YAAY,KAAK,GAAG,WAAW,KAAK,CAAC,EAAE,OAAO;AAClH,QAAI,mBAAmB;AACrB,MAAG,iBAAc,mBAAmB,KAAK,UAAU,UAAU,MAAM,CAAC,CAAC;AAAA,IACvE;AACA,WAAO,MAAM,kBAAkB,UAAU,IAAI;AAAA,EAC/C,SAAS,GAAG;AACV,YAAQ,MAAM,mCAAmC,CAAC;AAClD,WAAO;AAAA,EACT;AACF;AACA,eAAe,kBAAkB,UAAU,MAAM;AAC/C,QAAM,YAAY;AAAA,IAChB,WAAW,CAAC,MAAM,aAAa;AAC7B,aAAU,YAAS,UAAU,MAAM,UAAU,OAAO;AAAA,IACtD;AAAA,IACA,OAAO,OAAO,MAAM,YAAY;AAC9B,YAAS,YAAS,MAAM,MAAM,OAAO;AAAA,IACvC;AAAA,IACA,SAAS,OAAM,SAAW,YAAS,QAAQ,IAAI;AAAA,EACjD;AACA,MAAI;AACF,QAAI,KAAK,MAAM;AACb,YAAM,qCAAqC,UAAU,aAAa,KAAK,OAAO,GAAG,WAAW,KAAK,QAAQ,KAAK,WAAW;AAAA,IAC3H,OAAO;AACL,YAAM,kCAAkC,UAAU,aAAa,KAAK,OAAO,GAAG,WAAW,KAAK,QAAQ,KAAK,WAAW;AAAA,IACxH;AAAA,EACF,SAAS,GAAG;AACV,YAAQ,MAAM,0BAA0B,EAAE,OAAO;AACjD,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAIA,SAAS,aAAa,SAAS;AAC7B,MAAI,YAAY,OAAO;AACrB,WAAO;AAAA,EACT,OAAO;AACL,WAAO,kBAAkB,OAAO,IAAI,UAAU;AAAA,EAChD;AACF","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 { getOntologyFullMetadata, listOntologiesV2 } from \"@osdk/gateway/requests\";\nimport { generateClientSdkVersionOneDotOne, generateClientSdkVersionTwoPointZero } from \"@osdk/generator\";\nimport { createClientContext, createOpenApiRequest } from \"@osdk/shared.net\";\nimport { consola } from \"consola\";\nimport * as fs from \"node:fs\";\nimport invokeLoginFlow from \"../../auth/login/loginFlow.js\";\nconst USER_AGENT = `osdk-cli/${process.env.PACKAGE_VERSION}`;\nexport default async function handleGenerate(args) {\n let success = false;\n if (args.ontologyPath) {\n success = await generateFromLocalFile(args);\n } else if (args.foundryUrl && args.clientId) {\n success = await generateFromStack(args);\n } else {\n throw new Error(\"Must have specified ontologyPath or stack and clientId\");\n }\n if (success) {\n consola.info(\"OSDK Generated!\");\n }\n}\nasync function generateFromLocalFile(args) {\n if (!fs.existsSync(args.ontologyPath)) {\n consola.error(`Ontology file does not exist: ${args.ontologyPath}`);\n return false;\n }\n const ontology = JSON.parse(await fs.promises.readFile(args.ontologyPath, \"utf-8\"));\n return await generateClientSdk(ontology, args);\n}\nasync function generateFromStack(args) {\n const {\n foundryUrl,\n clientId,\n ontologyWritePath\n } = args;\n const token = await invokeLoginFlow({\n clientId,\n foundryUrl,\n verbose: 0\n });\n const {\n fetch\n } = createClientContext({\n metadata: {\n userAgent: USER_AGENT\n }\n }, args.foundryUrl, () => token.access_token, USER_AGENT);\n try {\n const ontologies = await listOntologiesV2(createOpenApiRequest(foundryUrl, fetch));\n if (ontologies.data.length !== 1) {\n consola.error(`Could not look up ontology with these credentials. Found ${ontologies.data.length} ontologies.`);\n return false;\n }\n const ontology = await getOntologyFullMetadata(createOpenApiRequest(foundryUrl, fetch), ontologies.data[0].apiName);\n if (ontologyWritePath) {\n fs.writeFileSync(ontologyWritePath, JSON.stringify(ontology, null, 2));\n }\n return await generateClientSdk(ontology, args);\n } catch (e) {\n consola.error(\"Failed to generate the ontology\", e);\n return false;\n }\n}\nasync function generateClientSdk(ontology, args) {\n const minimalFs = {\n writeFile: (path, contents) => {\n return fs.promises.writeFile(path, contents, \"utf-8\");\n },\n mkdir: async (path, options) => {\n await fs.promises.mkdir(path, options);\n },\n readdir: async path => fs.promises.readdir(path)\n };\n try {\n if (args.beta) {\n await generateClientSdkVersionTwoPointZero(ontology, getUserAgent(args.version), minimalFs, args.outDir, args.packageType);\n } else {\n await generateClientSdkVersionOneDotOne(ontology, getUserAgent(args.version), minimalFs, args.outDir, args.packageType);\n }\n } catch (e) {\n consola.error(\"OSDK generation failed\", e.message);\n return false;\n }\n return true;\n}\n\n// If the user passed us `dev` as our version, we use that for both our generated package version AND the cli version.\n// This makes it so that releases don't force us to have to regenerate the code when the version strings change.\nfunction getUserAgent(version) {\n if (version === \"dev\") {\n return \"typescript-sdk/dev osdk-cli/dev\";\n } else {\n return `typescript-sdk/${version} ${USER_AGENT}`;\n }\n}"]}
@@ -1,12 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var chunkX2S4O5ZR_cjs = require('./chunk-X2S4O5ZR.cjs');
4
- var chunkHYF3CTKZ_cjs = require('./chunk-HYF3CTKZ.cjs');
3
+ var chunkUE2TMWJL_cjs = require('./chunk-UE2TMWJL.cjs');
4
+ var chunkHZ3XILMW_cjs = require('./chunk-HZ3XILMW.cjs');
5
5
  require('./chunk-HQDDGVB7.cjs');
6
6
  var consola = require('consola');
7
+ var utils = require('consola/utils');
7
8
  var yargs = require('yargs');
8
9
  var helpers = require('yargs/helpers');
9
10
  var fs = require('fs');
11
+ var path = require('path');
10
12
 
11
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
14
 
@@ -17,13 +19,15 @@ var command = {
17
19
  command: "login",
18
20
  describe: "Authenticate with an application ID",
19
21
  builder: (argv) => {
20
- return argv.option("applicationId", {
22
+ return argv.option("clientId", {
23
+ alias: "applicationId",
24
+ // for backwards compatibility
21
25
  type: "string",
22
26
  demandOption: true
23
27
  });
24
28
  },
25
29
  handler: async (args) => {
26
- const command11 = await import('./loginFlow-BZDDHHT5.cjs');
30
+ const command11 = await import('./loginFlow-5ZAMXQKE.cjs');
27
31
  await command11.default(args);
28
32
  }
29
33
  };
@@ -35,9 +39,11 @@ var site = {
35
39
  describe: "Manage your session",
36
40
  builder: (argv) => {
37
41
  return argv.options({
38
- baseUrl: {
42
+ foundryUrl: {
39
43
  type: "string",
40
- demandOption: true
44
+ demandOption: true,
45
+ alias: "baseUrl"
46
+ // for backwards compatibility
41
47
  }
42
48
  }).command(login_default).demandCommand();
43
49
  },
@@ -100,12 +106,12 @@ async function loadFoundryConfig() {
100
106
  let foundryConfig;
101
107
  try {
102
108
  const fileContent = await fs.promises.readFile(configFilePath, "utf-8");
103
- foundryConfig = JSON.parse(fileContent);
104
- } catch {
105
- throw new chunkHYF3CTKZ_cjs.ExitProcessError(2, `Couldn't read or parse config file ${configFilePath}`);
109
+ foundryConfig = parseConfigFile(fileContent, configFilePath);
110
+ } catch (error) {
111
+ throw new chunkHZ3XILMW_cjs.ExitProcessError(2, `Couldn't read or parse config file ${configFilePath}. Error: ${error}`);
106
112
  }
107
113
  if (!validate(foundryConfig)) {
108
- throw new chunkHYF3CTKZ_cjs.ExitProcessError(2, `The configuration file does not match the expected schema: ${ajv.errorsText(validate.errors)}`);
114
+ throw new chunkHZ3XILMW_cjs.ExitProcessError(2, `The configuration file does not match the expected schema: ${ajv.errorsText(validate.errors)}`);
109
115
  }
110
116
  return {
111
117
  foundryConfig,
@@ -114,6 +120,15 @@ async function loadFoundryConfig() {
114
120
  }
115
121
  return void 0;
116
122
  }
123
+ function parseConfigFile(fileContent, configFilePath) {
124
+ const extension = path.extname(configFilePath);
125
+ switch (extension) {
126
+ case ".json":
127
+ return JSON.parse(fileContent);
128
+ default:
129
+ throw new chunkHZ3XILMW_cjs.ExitProcessError(2, `Unsupported file extension: ${extension} for config file.`);
130
+ }
131
+ }
117
132
 
118
133
  // src/util/configLoader.ts
119
134
  var configPromise = void 0;
@@ -146,7 +161,7 @@ async function logDeployCommandConfigFileOverride(args, config) {
146
161
  // src/commands/site/deploy/index.ts
147
162
  var command2 = {
148
163
  command: "deploy",
149
- describe: "Deploy an uploaded version",
164
+ describe: "Deploy a new site version",
150
165
  builder: async (argv) => {
151
166
  const config = await configLoader_default();
152
167
  const siteConfig = config?.foundryConfig.site;
@@ -156,7 +171,7 @@ var command2 = {
156
171
  return argv.options({
157
172
  directory: {
158
173
  type: "string",
159
- description: "Directory to deploy",
174
+ description: "Directory containing site files",
160
175
  ...directory ? {
161
176
  default: directory
162
177
  } : {
@@ -165,19 +180,21 @@ var command2 = {
165
180
  },
166
181
  uploadOnly: {
167
182
  type: "boolean",
168
- description: "Upload the directory but do not deploy it",
183
+ description: "Upload new site version only without setting as live",
169
184
  default: false
170
185
  },
171
186
  version: {
172
187
  type: "string",
173
- description: "Version to deploy",
188
+ description: "New version of site to deploy",
174
189
  ...autoVersion == null ? {
175
190
  conflicts: "autoVersion"
176
191
  } : {}
177
192
  },
178
193
  autoVersion: {
194
+ coerce: (autoVersion2) => autoVersion2,
179
195
  type: "string",
180
- description: "Enables autoversioning. Can be set to 'git-describe' to use git describe to determine the version.",
196
+ choices: ["git-describe"],
197
+ description: "Enable auto versioning",
181
198
  ...autoVersion != null ? {
182
199
  default: autoVersion.type
183
200
  } : {
@@ -186,12 +203,12 @@ var command2 = {
186
203
  },
187
204
  gitTagPrefix: {
188
205
  type: "string",
189
- description: "Prefix to match git tags against when --autoVersion=git-describe is used. If not provided, a default prefix 'v' is used.",
206
+ description: "Prefix to match git tags on when 'git-describe' auto versioning is used. If not provided, all tags are matched and the prefix 'v' is stripped if present.",
190
207
  ...gitTagPrefix ? {
191
208
  default: gitTagPrefix
192
209
  } : {}
193
210
  }
194
- }).group(["autoVersion", "gitTagPrefix"], "Autoversion Arguments").group(["version", "directory", "uploadOnly"], "Common Arguments").check((args) => {
211
+ }).group(["directory", "version", "uploadOnly"], "Deploy Options").group(["autoVersion", "gitTagPrefix"], "Auto Version Options").check((args) => {
195
212
  if (autoVersion == null && args.autoVersion == null && args.version == null) {
196
213
  throw new YargsCheckError("One of --version or --autoVersion must be specified");
197
214
  }
@@ -207,8 +224,21 @@ var command2 = {
207
224
  }).middleware((args) => logDeployCommandConfigFileOverride(args, siteConfig));
208
225
  },
209
226
  handler: async (args) => {
210
- const command11 = await import('./siteDeployCommand-KUNL3GIW.cjs');
211
- await command11.default(args);
227
+ const command11 = await import('./siteDeployCommand-HOXKQM56.cjs');
228
+ const {
229
+ version,
230
+ autoVersion,
231
+ gitTagPrefix,
232
+ ...restArgs
233
+ } = args;
234
+ const selectedVersion = args.version != null ? args.version : {
235
+ type: args.autoVersion,
236
+ tagPrefix: args.gitTagPrefix
237
+ };
238
+ await command11.default({
239
+ ...restArgs,
240
+ selectedVersion
241
+ });
212
242
  }
213
243
  };
214
244
  var deploy_default = command2;
@@ -224,16 +254,20 @@ async function logSiteCommandConfigFileOverride(args, config) {
224
254
  // src/commands/site/version/delete/index.ts
225
255
  var command3 = {
226
256
  command: "delete <version>",
227
- describe: "Delete the specified site version.",
257
+ describe: "Delete site version",
228
258
  builder: (argv) => {
229
259
  return argv.positional("version", {
230
260
  type: "string",
231
261
  demandOption: true,
232
262
  description: "Version to set as live"
233
- });
263
+ }).option("yes", {
264
+ alias: "y",
265
+ type: "boolean",
266
+ description: "Automatically confirm destructive changes"
267
+ }).group(["yes"], "Delete Options");
234
268
  },
235
269
  handler: async (args) => {
236
- const command11 = await import('./versionDeleteCommand-RLU7UUYD.cjs');
270
+ const command11 = await import('./versionDeleteCommand-GDQEZLYA.cjs');
237
271
  await command11.default(args);
238
272
  }
239
273
  };
@@ -242,12 +276,12 @@ var delete_default = command3;
242
276
  // src/commands/site/version/get/index.ts
243
277
  var command4 = {
244
278
  command: "get",
245
- describe: "Get the currently set live site version",
279
+ describe: "Get live site version",
246
280
  builder: (argv) => {
247
281
  return argv;
248
282
  },
249
283
  handler: async (args) => {
250
- const command11 = await import('./versionGetCommand-Y2VR2WKH.cjs');
284
+ const command11 = await import('./versionGetCommand-RU5LS3IG.cjs');
251
285
  await command11.default(args);
252
286
  }
253
287
  };
@@ -256,12 +290,12 @@ var get_default = command4;
256
290
  // src/commands/site/version/list/index.ts
257
291
  var command5 = {
258
292
  command: "list",
259
- describe: "List application versions",
293
+ describe: "List site versions",
260
294
  builder: (argv) => {
261
295
  return argv;
262
296
  },
263
297
  handler: async (args) => {
264
- const command11 = await import('./versionListCommand-5KM5PFYL.cjs');
298
+ const command11 = await import('./versionListCommand-QYCTS6KU.cjs');
265
299
  await command11.default(args);
266
300
  }
267
301
  };
@@ -270,7 +304,7 @@ var list_default = command5;
270
304
  // src/commands/site/version/set/index.ts
271
305
  var command6 = {
272
306
  command: "set <version>",
273
- describe: "Set the live site version",
307
+ describe: "Set live site version",
274
308
  builder: (argv) => {
275
309
  return argv.positional("version", {
276
310
  type: "string",
@@ -279,7 +313,7 @@ var command6 = {
279
313
  });
280
314
  },
281
315
  handler: async (args) => {
282
- const command11 = await import('./versionSetCommand-VD3L5DOV.cjs');
316
+ const command11 = await import('./versionSetCommand-K4SDBPLB.cjs');
283
317
  await command11.default(args);
284
318
  }
285
319
  };
@@ -288,12 +322,16 @@ var set_default = command6;
288
322
  // src/commands/site/version/unset/index.ts
289
323
  var command7 = {
290
324
  command: "unset",
291
- describe: "Clear the currently set live site version.",
325
+ describe: "Clear live site version",
292
326
  builder: (argv) => {
293
- return argv;
327
+ return argv.option("yes", {
328
+ alias: "y",
329
+ type: "boolean",
330
+ description: "Automatically confirm destructive changes"
331
+ }).group(["yes"], "Unset Options");
294
332
  },
295
333
  handler: async (args) => {
296
- const command11 = await import('./versionUnsetCommand-XYBUQ6XB.cjs');
334
+ const command11 = await import('./versionUnsetCommand-INDJ26MO.cjs');
297
335
  await command11.default(args);
298
336
  }
299
337
  };
@@ -302,9 +340,9 @@ var unset_default = command7;
302
340
  // src/commands/site/version/index.ts
303
341
  var command8 = {
304
342
  command: "version",
305
- describe: "Manage application version",
343
+ describe: "Manage site versions",
306
344
  builder: (argv) => {
307
- return argv.command(list_default).command(set_default).command(unset_default).command(delete_default).command(get_default).demandCommand();
345
+ return argv.command(list_default).command(get_default).command(set_default).command(unset_default).command(delete_default).demandCommand();
308
346
  },
309
347
  handler: async (args) => {
310
348
  }
@@ -328,7 +366,7 @@ var command9 = {
328
366
  } : {
329
367
  demandOption: true
330
368
  },
331
- description: "Application RID"
369
+ description: "Application resource identifier (rid)"
332
370
  },
333
371
  foundryUrl: {
334
372
  coerce: (foundryUrl2) => foundryUrl2.replace(/\/$/, ""),
@@ -338,19 +376,19 @@ var command9 = {
338
376
  } : {
339
377
  demandOption: true
340
378
  },
341
- description: "Foundry Stack URL with Protocol (e.g. https://example.palantirfoundry.com)"
379
+ description: "Foundry URL including protocol"
342
380
  },
343
381
  token: {
344
382
  type: "string",
345
383
  conflicts: "tokenFile",
346
- description: "Foundry API Token"
384
+ description: "Foundry API token"
347
385
  },
348
386
  tokenFile: {
349
387
  type: "string",
350
388
  conflicts: "token",
351
- description: "Path to a file containing your Foundry API Token"
389
+ description: "Path to file containing Foundry API token"
352
390
  }
353
- }).group(["application", "foundryUrl", "token", "tokenFile"], "Common Arguments").command(version_default).command(deploy_default).check((args) => {
391
+ }).group(["application", "foundryUrl", "token", "tokenFile"], "Common Options").command(version_default).command(deploy_default).check((args) => {
354
392
  if (!args.foundryUrl.startsWith("https://")) {
355
393
  throw new YargsCheckError("foundryUrl must start with https://");
356
394
  }
@@ -365,7 +403,7 @@ var site_default = command9;
365
403
  // src/commands/typescript/generate/generate.ts
366
404
  var command10 = {
367
405
  command: "generate",
368
- describe: "Generate typescript from ontology",
406
+ describe: "Generate TypeScript SDK from ontology",
369
407
  builder: (argv) => {
370
408
  return argv.options({
371
409
  "outDir": {
@@ -374,27 +412,29 @@ var command10 = {
374
412
  demandOption: true
375
413
  },
376
414
  ontologyPath: {
377
- description: "path to the ontology wire json",
415
+ description: "Path to the ontology wire json",
378
416
  type: "string",
379
417
  demandOption: false,
380
- conflicts: ["stack", "clientId"]
418
+ conflicts: ["foundryUrl", "clientId"]
381
419
  },
382
- stack: {
383
- description: "the URL to the stack that contains the ontology",
420
+ foundryUrl: {
421
+ description: "The URL to the foundry stack that contains the ontology",
384
422
  type: "string",
385
423
  demandOption: false,
386
424
  conflicts: "ontologyPath",
387
- implies: "clientId"
425
+ implies: "clientId",
426
+ alias: "stack"
427
+ // for backwards compatibility
388
428
  },
389
429
  clientId: {
390
- description: "the application's client id",
430
+ description: "The application's client id",
391
431
  type: "string",
392
432
  demandOption: false,
393
433
  conflicts: "ontologyPath",
394
- implies: "stack"
434
+ implies: "foundryUrl"
395
435
  },
396
436
  ontologyWritePath: {
397
- description: "path to write the ontology wire json",
437
+ description: "Path to write the ontology wire json",
398
438
  type: "string",
399
439
  demandOption: false,
400
440
  conflicts: ["ontologyPath"]
@@ -413,18 +453,18 @@ var command10 = {
413
453
  description: "Version of the generated code, or 'dev'",
414
454
  demandOption: true
415
455
  }
416
- }).group(["ontologyPath", "outDir", "version"], "Generate from a local file").group(["stack", "clientId", "outDir", "ontologyWritePath", "version"], "OR Generate from a stack").check((args) => {
417
- if (!args.ontologyPath && !args.stack) {
418
- throw new Error("Error: Must specify either ontologyPath or stack and clientId");
456
+ }).group(["ontologyPath", "outDir", "version"], "Generate from a local file").group(["foundryUrl", "clientId", "outDir", "ontologyWritePath", "version"], "OR Generate from Foundry").check((args) => {
457
+ if (!args.ontologyPath && !args.foundryUrl) {
458
+ throw new Error("Error: Must specify either ontologyPath or foundryUrl and clientId");
419
459
  }
420
- if (args.version !== "dev" && !chunkX2S4O5ZR_cjs.isValidSemver(args.version)) {
460
+ if (args.version !== "dev" && !chunkUE2TMWJL_cjs.isValidSemver(args.version)) {
421
461
  throw new Error("Error: Version must be 'dev' or a valid semver version");
422
462
  }
423
463
  return true;
424
464
  });
425
465
  },
426
466
  handler: async (args) => {
427
- const command11 = await import('./handleGenerate-Q6EQWXFG.cjs');
467
+ const command11 = await import('./handleGenerate-GBN42PDO.cjs');
428
468
  await command11.default(args);
429
469
  }
430
470
  };
@@ -456,7 +496,7 @@ var firstTime2 = true;
456
496
  async function logVersionMiddleware(args) {
457
497
  if (firstTime2) {
458
498
  firstTime2 = false;
459
- consola.consola.info(`Palantir OSDK CLI ${"0.5.0"}`);
499
+ consola.consola.info(`Palantir OSDK CLI ${"0.7.0"}`);
460
500
  consola.consola.level = 3 + args.verbose;
461
501
  if (consola.consola.level > 3) {
462
502
  consola.consola.debug(`Verbose logging enabled (${consola.consola.level === 4 ? "debug" : "trace"})`);
@@ -482,8 +522,12 @@ async function cli(args = process.argv) {
482
522
  handler: (_args) => {
483
523
  }
484
524
  }).fail(async (msg, err, argv) => {
485
- if (err instanceof chunkHYF3CTKZ_cjs.ExitProcessError) {
525
+ if (err instanceof chunkHZ3XILMW_cjs.ExitProcessError) {
486
526
  consola.consola.error(err.message);
527
+ if (err.tip != null) {
528
+ consola.consola.log(utils.colorize("bold", `\u{1F4A1} Tip: ${err.tip}`));
529
+ consola.consola.log("");
530
+ }
487
531
  consola.consola.debug(err.stack);
488
532
  } else {
489
533
  if (err && err instanceof YargsCheckError === false) {
@@ -499,7 +543,7 @@ async function cli(args = process.argv) {
499
543
  try {
500
544
  return await base.parseAsync();
501
545
  } catch (err) {
502
- if (err instanceof chunkHYF3CTKZ_cjs.ExitProcessError) {
546
+ if (err instanceof chunkHZ3XILMW_cjs.ExitProcessError) {
503
547
  consola.consola.error(err);
504
548
  }
505
549
  }