@osdk/cli 0.26.0-beta.6 → 0.26.0-beta.8

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 (111) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/esm/{acorn-LQZJTRX7.js → acorn-RXMSUCXL.js} +33 -33
  3. package/build/esm/acorn-RXMSUCXL.js.map +1 -0
  4. package/build/esm/{angular-VWUX447C.js → angular-ZXAN5BMN.js} +11 -11
  5. package/build/esm/angular-ZXAN5BMN.js.map +1 -0
  6. package/build/esm/{babel-7BWEVLBS.js → babel-TI7T67T2.js} +67 -67
  7. package/build/esm/babel-TI7T67T2.js.map +1 -0
  8. package/build/esm/{chunk-SAOPV5FF.js → chunk-2U36M44D.js} +3 -3
  9. package/build/esm/chunk-2U36M44D.js.map +1 -0
  10. package/build/esm/{chunk-LR3YBME3.js → chunk-KJFA7LBI.js} +10 -10
  11. package/build/esm/chunk-KJFA7LBI.js.map +1 -0
  12. package/build/esm/{chunk-KHVWTBWA.js → chunk-M2BWWO6L.js} +8 -8
  13. package/build/esm/chunk-M2BWWO6L.js.map +1 -0
  14. package/build/esm/{chunk-GVZBRYRL.js → chunk-ML7ZMS6G.js} +3 -3
  15. package/build/esm/chunk-ML7ZMS6G.js.map +1 -0
  16. package/build/esm/{chunk-KXNCVDQG.js → chunk-MU54JM45.js} +11 -11
  17. package/build/esm/chunk-MU54JM45.js.map +1 -0
  18. package/build/esm/{chunk-HCWMXOMI.js → chunk-N3LXG6II.js} +5 -4
  19. package/build/esm/chunk-N3LXG6II.js.map +1 -0
  20. package/build/esm/{chunk-TYCMYZ74.js → chunk-OFL7F425.js} +31 -21
  21. package/build/esm/chunk-OFL7F425.js.map +1 -0
  22. package/build/esm/{chunk-PXU2ECCD.js → chunk-P5HXJTVE.js} +23 -16
  23. package/build/esm/chunk-P5HXJTVE.js.map +1 -0
  24. package/build/esm/{chunk-DMUWBIYY.js → chunk-VHOQB2JW.js} +4 -4
  25. package/build/esm/chunk-VHOQB2JW.js.map +1 -0
  26. package/build/esm/{estree-PI6JMQNR.js → estree-CSIG7D6Y.js} +102 -102
  27. package/build/esm/estree-CSIG7D6Y.js.map +1 -0
  28. package/build/esm/find-up-EKHQCTZM.js +4 -0
  29. package/build/esm/{find-up-QYNPYSRQ.js.map → find-up-EKHQCTZM.js.map} +1 -1
  30. package/build/esm/{flow-AP4DEOL5.js → flow-NUNWZLRW.js} +17 -17
  31. package/build/esm/flow-NUNWZLRW.js.map +1 -0
  32. package/build/esm/{glimmer-LM2ZFC5U.js → glimmer-GYUSOBQY.js} +53 -53
  33. package/build/esm/glimmer-GYUSOBQY.js.map +1 -0
  34. package/build/esm/{graphql-U5CPDQKQ.js → graphql-OALHBC5M.js} +21 -21
  35. package/build/esm/graphql-OALHBC5M.js.map +1 -0
  36. package/build/esm/{handleGenerate-KB4B5KME.js → handleGenerate-3SPVQBRK.js} +345 -316
  37. package/build/esm/handleGenerate-3SPVQBRK.js.map +1 -0
  38. package/build/esm/{html-FNGHE355.js → html-4RLNYFM4.js} +37 -37
  39. package/build/esm/html-4RLNYFM4.js.map +1 -0
  40. package/build/esm/index.js +23 -23
  41. package/build/esm/index.js.map +1 -1
  42. package/build/esm/loginFlow-ETZCNKG3.js +4 -0
  43. package/build/esm/{loginFlow-ESPJDVBX.js.map → loginFlow-ETZCNKG3.js.map} +1 -1
  44. package/build/esm/{markdown-HUHOYR5Q.js → markdown-MRACSGE5.js} +48 -48
  45. package/build/esm/markdown-MRACSGE5.js.map +1 -0
  46. package/build/esm/{meriyah-WP7UQXC7.js → meriyah-LVMHXIGF.js} +37 -37
  47. package/build/esm/meriyah-LVMHXIGF.js.map +1 -0
  48. package/build/esm/{postcss-JMNG34CL.js → postcss-A2ITI5N4.js} +78 -78
  49. package/build/esm/postcss-A2ITI5N4.js.map +1 -0
  50. package/build/esm/{siteDeployCommand-FKDPDR4P.js → siteDeployCommand-Y5UMKNDE.js} +12 -12
  51. package/build/esm/siteDeployCommand-Y5UMKNDE.js.map +1 -0
  52. package/build/esm/{typescript-A4QI3FB6.js → typescript-BMNHHGAA.js} +667 -667
  53. package/build/esm/typescript-BMNHHGAA.js.map +1 -0
  54. package/build/esm/{versionDeleteCommand-YDDZMNZR.js → versionDeleteCommand-V3ERNBUY.js} +9 -8
  55. package/build/esm/versionDeleteCommand-V3ERNBUY.js.map +1 -0
  56. package/build/esm/{versionDeleteCommand-3WAXOD3K.js → versionDeleteCommand-VTDZ5DMG.js} +9 -8
  57. package/build/esm/versionDeleteCommand-VTDZ5DMG.js.map +1 -0
  58. package/build/esm/{versionGetCommand-D5UKJRW7.js → versionGetCommand-5RGYFRW4.js} +6 -6
  59. package/build/esm/versionGetCommand-5RGYFRW4.js.map +1 -0
  60. package/build/esm/{versionInfoCommand-KAW7DOIN.js → versionInfoCommand-GUETKW4X.js} +6 -6
  61. package/build/esm/versionInfoCommand-GUETKW4X.js.map +1 -0
  62. package/build/esm/{versionListCommand-LI6TPANH.js → versionListCommand-BPI6W6H5.js} +6 -6
  63. package/build/esm/versionListCommand-BPI6W6H5.js.map +1 -0
  64. package/build/esm/{versionListCommand-VYQCZPIZ.js → versionListCommand-ETUCNREL.js} +6 -6
  65. package/build/esm/versionListCommand-ETUCNREL.js.map +1 -0
  66. package/build/esm/{versionSetCommand-MR343G7W.js → versionSetCommand-5JMRDYUM.js} +6 -6
  67. package/build/esm/versionSetCommand-5JMRDYUM.js.map +1 -0
  68. package/build/esm/{versionUnsetCommand-HDH44EUP.js → versionUnsetCommand-CL5VWZ6T.js} +9 -8
  69. package/build/esm/versionUnsetCommand-CL5VWZ6T.js.map +1 -0
  70. package/build/esm/{widgetSetDeployCommand-YVAIPCBY.js → widgetSetDeployCommand-KK2J3CM6.js} +10 -10
  71. package/build/esm/widgetSetDeployCommand-KK2J3CM6.js.map +1 -0
  72. package/build/esm/{yaml-IT3UOTAK.js → yaml-XQ236J4T.js} +49 -49
  73. package/build/esm/yaml-XQ236J4T.js.map +1 -0
  74. package/build/types/consola/handlePromptCancel.d.ts.map +1 -1
  75. package/build/types/net/createFetch.d.mts.map +1 -1
  76. package/package.json +8 -8
  77. package/build/esm/acorn-LQZJTRX7.js.map +0 -1
  78. package/build/esm/angular-VWUX447C.js.map +0 -1
  79. package/build/esm/babel-7BWEVLBS.js.map +0 -1
  80. package/build/esm/chunk-DMUWBIYY.js.map +0 -1
  81. package/build/esm/chunk-GVZBRYRL.js.map +0 -1
  82. package/build/esm/chunk-HCWMXOMI.js.map +0 -1
  83. package/build/esm/chunk-KHVWTBWA.js.map +0 -1
  84. package/build/esm/chunk-KXNCVDQG.js.map +0 -1
  85. package/build/esm/chunk-LR3YBME3.js.map +0 -1
  86. package/build/esm/chunk-PXU2ECCD.js.map +0 -1
  87. package/build/esm/chunk-SAOPV5FF.js.map +0 -1
  88. package/build/esm/chunk-TYCMYZ74.js.map +0 -1
  89. package/build/esm/estree-PI6JMQNR.js.map +0 -1
  90. package/build/esm/find-up-QYNPYSRQ.js +0 -4
  91. package/build/esm/flow-AP4DEOL5.js.map +0 -1
  92. package/build/esm/glimmer-LM2ZFC5U.js.map +0 -1
  93. package/build/esm/graphql-U5CPDQKQ.js.map +0 -1
  94. package/build/esm/handleGenerate-KB4B5KME.js.map +0 -1
  95. package/build/esm/html-FNGHE355.js.map +0 -1
  96. package/build/esm/loginFlow-ESPJDVBX.js +0 -4
  97. package/build/esm/markdown-HUHOYR5Q.js.map +0 -1
  98. package/build/esm/meriyah-WP7UQXC7.js.map +0 -1
  99. package/build/esm/postcss-JMNG34CL.js.map +0 -1
  100. package/build/esm/siteDeployCommand-FKDPDR4P.js.map +0 -1
  101. package/build/esm/typescript-A4QI3FB6.js.map +0 -1
  102. package/build/esm/versionDeleteCommand-3WAXOD3K.js.map +0 -1
  103. package/build/esm/versionDeleteCommand-YDDZMNZR.js.map +0 -1
  104. package/build/esm/versionGetCommand-D5UKJRW7.js.map +0 -1
  105. package/build/esm/versionInfoCommand-KAW7DOIN.js.map +0 -1
  106. package/build/esm/versionListCommand-LI6TPANH.js.map +0 -1
  107. package/build/esm/versionListCommand-VYQCZPIZ.js.map +0 -1
  108. package/build/esm/versionSetCommand-MR343G7W.js.map +0 -1
  109. package/build/esm/versionUnsetCommand-HDH44EUP.js.map +0 -1
  110. package/build/esm/widgetSetDeployCommand-YVAIPCBY.js.map +0 -1
  111. package/build/esm/yaml-IT3UOTAK.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/commands/site/deploy/siteDeployCommand.mts"],"names":[],"mappings":"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","file":"siteDeployCommand-FKDPDR4P.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\";\nimport { createInternalClientContext, thirdPartyApplications } from \"#net\";\nimport { ExitProcessError } from \"@osdk/cli.common\";\nimport { autoVersion, AutoVersionError } from \"@osdk/foundry-config-json\";\nimport archiver from \"archiver\";\nimport { colorize } from \"consola/utils\";\nimport * as fs from \"node:fs\";\nimport path from \"node:path\";\nimport { Readable } from \"node:stream\";\nimport prettyBytes from \"pretty-bytes\";\nimport { loadToken } from \"../../../util/token.js\";\nexport default async function siteDeployCommand({\n selectedVersion,\n application,\n foundryUrl,\n uploadOnly,\n snapshot,\n snapshotId,\n directory,\n token,\n tokenFile\n}) {\n const loadedToken = await loadToken(token, tokenFile);\n const tokenProvider = () => loadedToken;\n const clientCtx = createInternalClientContext(foundryUrl, tokenProvider);\n let siteVersion;\n if (typeof selectedVersion === \"string\") {\n siteVersion = selectedVersion;\n } else {\n siteVersion = await findAutoVersion(selectedVersion);\n consola.info(`Auto version inferred next version to be: ${siteVersion}`);\n }\n consola.debug(`Using directory for site files: \"${path.resolve(directory)}`);\n const stat = await fs.promises.stat(directory);\n if (!stat.isDirectory()) {\n throw new ExitProcessError(2, \"Specified path exists but is not a directory\");\n }\n consola.start(\"Zipping site files\");\n const archive = archiver(\"zip\").directory(directory, false);\n logArchiveStats(archive);\n if (snapshot) {\n await uploadSnapshot(clientCtx, application, siteVersion, snapshotId ?? \"\", archive);\n consola.info(\"Snapshot mode enabled, skipping deployment\");\n return;\n }\n await upload(clientCtx, application, siteVersion, archive);\n if (!uploadOnly) {\n const website = await thirdPartyApplications.deployWebsite(clientCtx, application, {\n version: siteVersion\n });\n consola.success(`Deployed ${siteVersion} successfully`);\n const domain = website.subdomains[0];\n if (domain != null) {\n logSiteLink(\"View live site:\", `https://${domain}`);\n }\n } else {\n const website = await thirdPartyApplications.getWebsite(clientCtx, application);\n const domain = website?.subdomains[0];\n consola.info(\"Upload only mode enabled, skipping deployment\");\n if (domain != null) {\n logSiteLink(\"Preview link:\", `https://${domain}/.system/preview?previewVersion=${siteVersion}`);\n }\n }\n}\nasync function findAutoVersion(config) {\n try {\n return await autoVersion(config);\n } catch (e) {\n throw new ExitProcessError(2, e instanceof Error ? e.message : undefined, e instanceof AutoVersionError ? e.tip : undefined);\n }\n}\nasync function uploadSnapshot(clientCtx, application, siteVersion, snapshotId, archive) {\n consola.start(\"Uploading snapshot site files\");\n await Promise.all([thirdPartyApplications.uploadSnapshotVersion(clientCtx, application, siteVersion, snapshotId, Readable.toWeb(archive) // This cast is because the dom fetch doesn't align type wise with streams\n ), archive.finalize()]);\n consola.success(\"Snapshot upload complete\");\n}\nasync function upload(clientCtx, application, siteVersion, archive) {\n consola.start(\"Uploading site files\");\n await Promise.all([thirdPartyApplications.uploadVersion(clientCtx, application, siteVersion, Readable.toWeb(archive) // This cast is because the dom fetch doesn't align type wise with streams\n ), archive.finalize()]);\n consola.success(\"Upload complete\");\n}\nfunction logArchiveStats(archive) {\n let archiveStats = {\n fileCount: 0,\n bytes: 0\n };\n archive.on(\"progress\", progress => {\n archiveStats = {\n fileCount: progress.entries.total,\n bytes: progress.fs.totalBytes\n };\n });\n archive.on(\"finish\", () => {\n consola.info(`Zipped ${prettyBytes(archiveStats.bytes, {\n binary: true\n })} total over ${archiveStats.fileCount} files`);\n });\n}\nfunction logSiteLink(title, link) {\n consola.box({\n message: `${title}\\n\\n${colorize(\"green\", link)}`,\n style: {\n padding: 2,\n borderColor: \"green\",\n borderStyle: \"rounded\"\n }\n });\n}"]}