@osdk/cli 0.8.0 → 0.9.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 (45) hide show
  1. package/build/js/chunk-CCA2T5YW.cjs +12 -0
  2. package/build/js/chunk-CCA2T5YW.cjs.map +1 -0
  3. package/build/js/chunk-MU5KWUEI.mjs +10 -0
  4. package/build/js/chunk-MU5KWUEI.mjs.map +1 -0
  5. package/build/js/{chunk-NJJ5VSTS.cjs → chunk-S2I3VLCY.cjs} +2 -2
  6. package/build/js/{chunk-M5JTX7RC.mjs → chunk-UUMRUSW7.mjs} +2 -2
  7. package/build/js/{handleGenerate-EGYMVXVW.cjs → handleGenerate-CR7EMFR7.cjs} +4 -3
  8. package/build/js/handleGenerate-CR7EMFR7.cjs.map +1 -0
  9. package/build/js/{handleGenerate-OBJOC2XY.mjs → handleGenerate-JD2EN42M.mjs} +4 -3
  10. package/build/js/handleGenerate-JD2EN42M.mjs.map +1 -0
  11. package/build/js/index.cjs +26 -27
  12. package/build/js/index.cjs.map +1 -1
  13. package/build/js/index.mjs +21 -22
  14. package/build/js/index.mjs.map +1 -1
  15. package/build/js/{siteDeployCommand-D62CVVEY.mjs → siteDeployCommand-PEQ4IOIZ.mjs} +2 -2
  16. package/build/js/{siteDeployCommand-5DBNGRT3.cjs → siteDeployCommand-XSWYJZYG.cjs} +9 -9
  17. package/build/js/{versionDeleteCommand-F255OTHE.mjs → versionDeleteCommand-AAP4O5ZE.mjs} +2 -2
  18. package/build/js/{versionDeleteCommand-SKJ7OBNI.cjs → versionDeleteCommand-VFJ2WM7Q.cjs} +5 -5
  19. package/build/js/{versionGetCommand-VHIOZCA7.mjs → versionGetCommand-3UVDIRMY.mjs} +2 -2
  20. package/build/js/{versionGetCommand-LVE7IZL3.cjs → versionGetCommand-JASRA4QL.cjs} +7 -7
  21. package/build/js/{versionListCommand-W4A2FA43.mjs → versionListCommand-AGCM7LFR.mjs} +2 -2
  22. package/build/js/{versionListCommand-JNYLJ45G.cjs → versionListCommand-DANLZEEE.cjs} +7 -7
  23. package/build/js/{versionSetCommand-PLKTCPWX.cjs → versionSetCommand-K3IPOA5G.cjs} +7 -7
  24. package/build/js/{versionSetCommand-JLILKOKN.mjs → versionSetCommand-UT4LAKJO.mjs} +2 -2
  25. package/build/js/{versionUnsetCommand-PGU2S3WS.cjs → versionUnsetCommand-NIEO3RO4.cjs} +7 -7
  26. package/build/js/{versionUnsetCommand-Q6YWVVAI.mjs → versionUnsetCommand-OKXMDWJU.mjs} +2 -2
  27. package/changelog/0.9.0/pr-38.v2.yml +5 -0
  28. package/changelog/0.9.0/pr-68.v2.yml +6 -0
  29. package/package.json +2 -2
  30. package/build/js/handleGenerate-EGYMVXVW.cjs.map +0 -1
  31. package/build/js/handleGenerate-OBJOC2XY.mjs.map +0 -1
  32. /package/build/js/{chunk-M5JTX7RC.mjs.map → chunk-S2I3VLCY.cjs.map} +0 -0
  33. /package/build/js/{chunk-NJJ5VSTS.cjs.map → chunk-UUMRUSW7.mjs.map} +0 -0
  34. /package/build/js/{siteDeployCommand-5DBNGRT3.cjs.map → siteDeployCommand-PEQ4IOIZ.mjs.map} +0 -0
  35. /package/build/js/{siteDeployCommand-D62CVVEY.mjs.map → siteDeployCommand-XSWYJZYG.cjs.map} +0 -0
  36. /package/build/js/{versionDeleteCommand-F255OTHE.mjs.map → versionDeleteCommand-AAP4O5ZE.mjs.map} +0 -0
  37. /package/build/js/{versionDeleteCommand-SKJ7OBNI.cjs.map → versionDeleteCommand-VFJ2WM7Q.cjs.map} +0 -0
  38. /package/build/js/{versionGetCommand-LVE7IZL3.cjs.map → versionGetCommand-3UVDIRMY.mjs.map} +0 -0
  39. /package/build/js/{versionGetCommand-VHIOZCA7.mjs.map → versionGetCommand-JASRA4QL.cjs.map} +0 -0
  40. /package/build/js/{versionListCommand-JNYLJ45G.cjs.map → versionListCommand-AGCM7LFR.mjs.map} +0 -0
  41. /package/build/js/{versionListCommand-W4A2FA43.mjs.map → versionListCommand-DANLZEEE.cjs.map} +0 -0
  42. /package/build/js/{versionSetCommand-JLILKOKN.mjs.map → versionSetCommand-K3IPOA5G.cjs.map} +0 -0
  43. /package/build/js/{versionSetCommand-PLKTCPWX.cjs.map → versionSetCommand-UT4LAKJO.mjs.map} +0 -0
  44. /package/build/js/{versionUnsetCommand-PGU2S3WS.cjs.map → versionUnsetCommand-NIEO3RO4.cjs.map} +0 -0
  45. /package/build/js/{versionUnsetCommand-Q6YWVVAI.mjs.map → versionUnsetCommand-OKXMDWJU.mjs.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkDQYIDDJN_cjs = require('./chunk-DQYIDDJN.cjs');
4
- var chunkNJJ5VSTS_cjs = require('./chunk-NJJ5VSTS.cjs');
4
+ var chunkS2I3VLCY_cjs = require('./chunk-S2I3VLCY.cjs');
5
5
  require('./chunk-HZ3XILMW.cjs');
6
6
  require('./chunk-HQDDGVB7.cjs');
7
7
  var consola = require('consola');
@@ -21,16 +21,16 @@ ${utils.colorize("bold", "Your site will no longer be accessible until a new liv
21
21
  });
22
22
  chunkDQYIDDJN_cjs.handlePromptCancel(confirmed);
23
23
  }
24
- const loadedToken = await chunkNJJ5VSTS_cjs.loadToken(token, tokenFile);
24
+ const loadedToken = await chunkS2I3VLCY_cjs.loadToken(token, tokenFile);
25
25
  const tokenProvider = () => loadedToken;
26
- const clientCtx = chunkNJJ5VSTS_cjs.createInternalClientContext(foundryUrl, tokenProvider);
26
+ const clientCtx = chunkS2I3VLCY_cjs.createInternalClientContext(foundryUrl, tokenProvider);
27
27
  consola.consola.start("Clearing live site version");
28
- const repositoryRid = await chunkNJJ5VSTS_cjs.third_party_application_service_exports.fetchWebsiteRepositoryRid(clientCtx, application);
29
- const ctx = chunkNJJ5VSTS_cjs.createConjureContext(foundryUrl, "/artifacts/api", tokenProvider);
30
- await chunkNJJ5VSTS_cjs.ArtifactsSitesAdminV2Service_exports.clearDeployedVersion(ctx, repositoryRid);
28
+ const repositoryRid = await chunkS2I3VLCY_cjs.third_party_application_service_exports.fetchWebsiteRepositoryRid(clientCtx, application);
29
+ const ctx = chunkS2I3VLCY_cjs.createConjureContext(foundryUrl, "/artifacts/api", tokenProvider);
30
+ await chunkS2I3VLCY_cjs.ArtifactsSitesAdminV2Service_exports.clearDeployedVersion(ctx, repositoryRid);
31
31
  consola.consola.success("Cleared live site version");
32
32
  }
33
33
 
34
34
  module.exports = versionUnsetCommand;
35
35
  //# sourceMappingURL=out.js.map
36
- //# sourceMappingURL=versionUnsetCommand-PGU2S3WS.cjs.map
36
+ //# sourceMappingURL=versionUnsetCommand-NIEO3RO4.cjs.map
@@ -1,5 +1,5 @@
1
1
  import { handlePromptCancel } from './chunk-IV3QY3PZ.mjs';
2
- import { loadToken, createInternalClientContext, third_party_application_service_exports, createConjureContext, ArtifactsSitesAdminV2Service_exports } from './chunk-M5JTX7RC.mjs';
2
+ import { loadToken, createInternalClientContext, third_party_application_service_exports, createConjureContext, ArtifactsSitesAdminV2Service_exports } from './chunk-UUMRUSW7.mjs';
3
3
  import './chunk-CLAEREOL.mjs';
4
4
  import './chunk-E2SEJZTC.mjs';
5
5
  import { consola } from 'consola';
@@ -31,4 +31,4 @@ ${colorize("bold", "Your site will no longer be accessible until a new live site
31
31
 
32
32
  export { versionUnsetCommand as default };
33
33
  //# sourceMappingURL=out.js.map
34
- //# sourceMappingURL=versionUnsetCommand-Q6YWVVAI.mjs.map
34
+ //# sourceMappingURL=versionUnsetCommand-OKXMDWJU.mjs.map
@@ -0,0 +1,5 @@
1
+ type: improvement
2
+ improvement:
3
+ description: Update api-gateway definitions
4
+ links:
5
+ - https://github.com/palantir/osdk-ts/pull/38
@@ -0,0 +1,6 @@
1
+ type: improvement
2
+ improvement:
3
+ description: Polish casing, option description, and YargsCheckErrors across CLIs
4
+ and commands
5
+ links:
6
+ - https://github.com/palantir/osdk-ts/pull/68
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osdk/cli",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "",
5
5
  "access": "public",
6
6
  "license": "Apache-2.0",
@@ -25,7 +25,7 @@
25
25
  "archiver": "^6.0.1",
26
26
  "conjure-lite": "^0.3.3",
27
27
  "consola": "^3.2.3",
28
- "find-up": "^6.3.0",
28
+ "find-up": "^7.0.0",
29
29
  "open": "^9.1.0",
30
30
  "semver": "^7.6.0",
31
31
  "yargs": "^17.7.2",
@@ -1 +0,0 @@
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 +0,0 @@
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}"]}