@sanity/cli 5.1.1-next.5 → 6.0.0-alpha.3

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 (1431) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +288 -2
  3. package/bin/run.cmd +3 -0
  4. package/bin/run.js +31 -0
  5. package/codemods/deskRename.js +115 -96
  6. package/codemods/partsTypeDirective.js +7 -7
  7. package/codemods/reactIconsV3.js +78 -51
  8. package/dist/SanityHelp.d.ts +4 -0
  9. package/dist/SanityHelp.js +43 -0
  10. package/dist/SanityHelp.js.map +1 -0
  11. package/dist/actions/auth/authServer.d.ts +33 -0
  12. package/dist/actions/auth/authServer.js +153 -0
  13. package/dist/actions/auth/authServer.js.map +1 -0
  14. package/dist/actions/auth/getProviderName.d.ts +8 -0
  15. package/dist/actions/auth/getProviderName.js +15 -0
  16. package/dist/actions/auth/getProviderName.js.map +1 -0
  17. package/dist/actions/auth/login/getProvider.d.ts +15 -0
  18. package/dist/actions/auth/login/getProvider.js +54 -0
  19. package/dist/actions/auth/login/getProvider.js.map +1 -0
  20. package/dist/actions/auth/login/getSSOProvider.d.ts +13 -0
  21. package/dist/actions/auth/login/getSSOProvider.js +30 -0
  22. package/dist/actions/auth/login/getSSOProvider.js.map +1 -0
  23. package/dist/actions/auth/login/index.d.ts +20 -0
  24. package/dist/actions/auth/login/index.js +93 -0
  25. package/dist/actions/auth/login/index.js.map +1 -0
  26. package/dist/actions/auth/login/promptProviders.d.ts +10 -0
  27. package/dist/actions/auth/login/promptProviders.js +23 -0
  28. package/dist/actions/auth/login/promptProviders.js.map +1 -0
  29. package/dist/actions/auth/login/samlProviderToLoginProvider.d.ts +9 -0
  30. package/dist/actions/auth/login/samlProviderToLoginProvider.js +15 -0
  31. package/dist/actions/auth/login/samlProviderToLoginProvider.js.map +1 -0
  32. package/dist/actions/auth/types.d.ts +26 -0
  33. package/dist/actions/auth/types.js +7 -0
  34. package/dist/actions/auth/types.js.map +1 -0
  35. package/dist/actions/backup/archiveDir.d.ts +10 -0
  36. package/dist/actions/backup/archiveDir.js +43 -0
  37. package/dist/actions/backup/archiveDir.js.map +1 -0
  38. package/dist/actions/backup/assertDatasetExist.d.ts +8 -0
  39. package/dist/actions/backup/assertDatasetExist.js +16 -0
  40. package/dist/actions/backup/assertDatasetExist.js.map +1 -0
  41. package/dist/actions/backup/backupDownloadDebug.d.ts +1 -0
  42. package/dist/actions/backup/backupDownloadDebug.js +4 -0
  43. package/dist/actions/backup/backupDownloadDebug.js.map +1 -0
  44. package/dist/actions/backup/cleanupTmpDir.d.ts +6 -0
  45. package/dist/actions/backup/cleanupTmpDir.js +19 -0
  46. package/dist/actions/backup/cleanupTmpDir.js.map +1 -0
  47. package/dist/actions/backup/constants.d.ts +1 -0
  48. package/dist/actions/backup/constants.js +3 -0
  49. package/dist/actions/backup/constants.js.map +1 -0
  50. package/dist/actions/backup/downloadAsset.d.ts +9 -0
  51. package/dist/actions/backup/downloadAsset.js +54 -0
  52. package/dist/actions/backup/downloadAsset.js.map +1 -0
  53. package/dist/actions/backup/downloadDocument.d.ts +7 -0
  54. package/dist/actions/backup/downloadDocument.js +32 -0
  55. package/dist/actions/backup/downloadDocument.js.map +1 -0
  56. package/dist/actions/backup/fetchNextBackupPage.d.ts +23 -0
  57. package/dist/actions/backup/fetchNextBackupPage.js +48 -0
  58. package/dist/actions/backup/fetchNextBackupPage.js.map +1 -0
  59. package/dist/actions/backup/progressSpinner.d.ts +14 -0
  60. package/dist/actions/backup/progressSpinner.js +40 -0
  61. package/dist/actions/backup/progressSpinner.js.map +1 -0
  62. package/dist/actions/build/__tests__/buildApp.test.js +367 -0
  63. package/dist/actions/build/__tests__/buildApp.test.js.map +1 -0
  64. package/dist/actions/build/__tests__/buildStudio.test.js +561 -0
  65. package/dist/actions/build/__tests__/buildStudio.test.js.map +1 -0
  66. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js +233 -0
  67. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js.map +1 -0
  68. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js +414 -0
  69. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js.map +1 -0
  70. package/dist/actions/build/__tests__/determineBasePath.test.js +24 -0
  71. package/dist/actions/build/__tests__/determineBasePath.test.js.map +1 -0
  72. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js +109 -0
  73. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js.map +1 -0
  74. package/dist/actions/build/__tests__/getViteConfig.test.js +493 -0
  75. package/dist/actions/build/__tests__/getViteConfig.test.js.map +1 -0
  76. package/dist/actions/build/__tests__/renderDocument.test.js +278 -0
  77. package/dist/actions/build/__tests__/renderDocument.test.js.map +1 -0
  78. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js +153 -0
  79. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js.map +1 -0
  80. package/dist/actions/build/buildApp.d.ts +7 -0
  81. package/dist/actions/build/buildApp.js +159 -0
  82. package/dist/actions/build/buildApp.js.map +1 -0
  83. package/dist/actions/build/buildDebug.d.ts +1 -0
  84. package/dist/actions/build/buildDebug.js +4 -0
  85. package/dist/actions/build/buildDebug.js.map +1 -0
  86. package/dist/actions/build/buildStaticFiles.d.ts +35 -0
  87. package/dist/actions/build/buildStaticFiles.js +82 -0
  88. package/dist/actions/build/buildStaticFiles.js.map +1 -0
  89. package/dist/actions/build/buildStudio.d.ts +7 -0
  90. package/dist/actions/build/buildStudio.js +202 -0
  91. package/dist/actions/build/buildStudio.js.map +1 -0
  92. package/dist/actions/build/buildVendorDependencies.d.ts +11 -0
  93. package/dist/actions/build/buildVendorDependencies.js +179 -0
  94. package/dist/actions/build/buildVendorDependencies.js.map +1 -0
  95. package/dist/actions/build/checkRequiredDependencies.d.ts +22 -0
  96. package/dist/actions/build/checkRequiredDependencies.js +122 -0
  97. package/dist/actions/build/checkRequiredDependencies.js.map +1 -0
  98. package/dist/actions/build/checkStudioDependencyVersions.d.ts +2 -0
  99. package/dist/actions/build/checkStudioDependencyVersions.js +154 -0
  100. package/dist/actions/build/checkStudioDependencyVersions.js.map +1 -0
  101. package/dist/actions/build/createExternalFromImportMap.d.ts +11 -0
  102. package/dist/actions/build/createExternalFromImportMap.js +11 -0
  103. package/dist/actions/build/createExternalFromImportMap.js.map +1 -0
  104. package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.d.ts +6 -0
  105. package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.js +13 -0
  106. package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.js.map +1 -0
  107. package/dist/actions/build/decorateIndexWithBridgeScript.d.ts +8 -0
  108. package/dist/actions/build/decorateIndexWithBridgeScript.js +17 -0
  109. package/dist/actions/build/decorateIndexWithBridgeScript.js.map +1 -0
  110. package/dist/actions/build/determineBasePath.d.ts +7 -0
  111. package/dist/actions/build/determineBasePath.js +20 -0
  112. package/dist/actions/build/determineBasePath.js.map +1 -0
  113. package/dist/actions/build/generateWebManifest.d.ts +15 -0
  114. package/dist/actions/build/generateWebManifest.js +27 -0
  115. package/dist/actions/build/generateWebManifest.js.map +1 -0
  116. package/dist/actions/build/getAppEnvVars.d.ts +6 -0
  117. package/dist/actions/build/getAppEnvVars.js +9 -0
  118. package/dist/actions/build/getAppEnvVars.js.map +1 -0
  119. package/dist/actions/build/getAutoUpdatesImportMap.d.ts +21 -0
  120. package/dist/actions/build/getAutoUpdatesImportMap.js +57 -0
  121. package/dist/actions/build/getAutoUpdatesImportMap.js.map +1 -0
  122. package/dist/actions/build/getEntryModule.d.ts +7 -0
  123. package/dist/actions/build/getEntryModule.js +46 -0
  124. package/dist/actions/build/getEntryModule.js.map +1 -0
  125. package/dist/actions/build/getPossibleDocumentComponentLocations.d.ts +4 -0
  126. package/dist/actions/build/getPossibleDocumentComponentLocations.js +11 -0
  127. package/dist/actions/build/getPossibleDocumentComponentLocations.js.map +1 -0
  128. package/dist/actions/build/getStudioEnvVars.d.ts +6 -0
  129. package/dist/actions/build/getStudioEnvVars.js +9 -0
  130. package/dist/actions/build/getStudioEnvVars.js.map +1 -0
  131. package/dist/actions/build/getStudioEnvironmentVariables.d.ts +52 -0
  132. package/dist/actions/build/getStudioEnvironmentVariables.js +58 -0
  133. package/dist/actions/build/getStudioEnvironmentVariables.js.map +1 -0
  134. package/dist/actions/build/getViteConfig.d.ts +66 -0
  135. package/dist/actions/build/getViteConfig.js +180 -0
  136. package/dist/actions/build/getViteConfig.js.map +1 -0
  137. package/dist/actions/build/normalizeBasePath.d.ts +6 -0
  138. package/dist/actions/build/normalizeBasePath.js +9 -0
  139. package/dist/actions/build/normalizeBasePath.js.map +1 -0
  140. package/dist/actions/build/renderDocument.d.ts +15 -0
  141. package/dist/actions/build/renderDocument.js +54 -0
  142. package/dist/actions/build/renderDocument.js.map +1 -0
  143. package/dist/actions/build/renderDocument.worker.d.ts +1 -0
  144. package/dist/actions/build/renderDocument.worker.js +9 -0
  145. package/dist/actions/build/renderDocument.worker.js.map +1 -0
  146. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js +657 -0
  147. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js.map +1 -0
  148. package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.d.ts +6 -0
  149. package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.js +59 -0
  150. package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.js.map +1 -0
  151. package/dist/actions/build/renderDocumentWorker/components/BasicDocument.d.ts +19 -0
  152. package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js +61 -0
  153. package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js.map +1 -0
  154. package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.d.ts +13 -0
  155. package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js +165 -0
  156. package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js.map +1 -0
  157. package/dist/actions/build/renderDocumentWorker/components/Favicons.d.ts +2 -0
  158. package/dist/actions/build/renderDocumentWorker/components/Favicons.js +28 -0
  159. package/dist/actions/build/renderDocumentWorker/components/Favicons.js.map +1 -0
  160. package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.d.ts +3 -0
  161. package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js +177 -0
  162. package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js.map +1 -0
  163. package/dist/actions/build/renderDocumentWorker/components/NoJavascript.d.ts +3 -0
  164. package/dist/actions/build/renderDocumentWorker/components/NoJavascript.js +51 -0
  165. package/dist/actions/build/renderDocumentWorker/components/NoJavascript.js.map +1 -0
  166. package/dist/actions/build/renderDocumentWorker/getDocumentComponent.d.ts +5 -0
  167. package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js +41 -0
  168. package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js.map +1 -0
  169. package/dist/actions/build/renderDocumentWorker/getDocumentHtml.d.ts +8 -0
  170. package/dist/actions/build/renderDocumentWorker/getDocumentHtml.js +55 -0
  171. package/dist/actions/build/renderDocumentWorker/getDocumentHtml.js.map +1 -0
  172. package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.d.ts +21 -0
  173. package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js +31 -0
  174. package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js.map +1 -0
  175. package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.d.ts +8 -0
  176. package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.js +29 -0
  177. package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.js.map +1 -0
  178. package/dist/actions/build/renderDocumentWorker/types.d.ts +8 -0
  179. package/dist/actions/build/renderDocumentWorker/types.js +5 -0
  180. package/dist/actions/build/renderDocumentWorker/types.js.map +1 -0
  181. package/dist/actions/build/shouldAutoUpdate.d.ts +16 -0
  182. package/dist/actions/build/shouldAutoUpdate.js +35 -0
  183. package/dist/actions/build/shouldAutoUpdate.js.map +1 -0
  184. package/dist/actions/build/types.d.ts +13 -0
  185. package/dist/actions/build/types.js +3 -0
  186. package/dist/actions/build/types.js.map +1 -0
  187. package/dist/actions/build/writeFavicons.d.ts +1 -0
  188. package/dist/actions/build/writeFavicons.js +26 -0
  189. package/dist/actions/build/writeFavicons.js.map +1 -0
  190. package/dist/actions/build/writeSanityRuntime.d.ts +19 -0
  191. package/dist/actions/build/writeSanityRuntime.js +61 -0
  192. package/dist/actions/build/writeSanityRuntime.js.map +1 -0
  193. package/dist/actions/build/writeWebManifest.d.ts +4 -0
  194. package/dist/actions/build/writeWebManifest.js +12 -0
  195. package/dist/actions/build/writeWebManifest.js.map +1 -0
  196. package/dist/actions/codemods/deskRename.d.ts +2 -0
  197. package/dist/actions/codemods/deskRename.js +18 -0
  198. package/dist/actions/codemods/deskRename.js.map +1 -0
  199. package/dist/actions/codemods/index.d.ts +5 -0
  200. package/dist/actions/codemods/index.js +10 -0
  201. package/dist/actions/codemods/index.js.map +1 -0
  202. package/dist/actions/codemods/partsTypeDirective.d.ts +2 -0
  203. package/dist/actions/codemods/partsTypeDirective.js +27 -0
  204. package/dist/actions/codemods/partsTypeDirective.js.map +1 -0
  205. package/dist/actions/codemods/reactIconsV3.d.ts +2 -0
  206. package/dist/actions/codemods/reactIconsV3.js +30 -0
  207. package/dist/actions/codemods/reactIconsV3.js.map +1 -0
  208. package/dist/actions/codemods/types.d.ts +8 -0
  209. package/dist/actions/codemods/types.js +3 -0
  210. package/dist/actions/codemods/types.js.map +1 -0
  211. package/dist/actions/cors/constants.d.ts +1 -0
  212. package/dist/actions/cors/constants.js +3 -0
  213. package/dist/actions/cors/constants.js.map +1 -0
  214. package/dist/actions/cors/filterAndValidateOrigin.d.ts +7 -0
  215. package/dist/actions/cors/filterAndValidateOrigin.js +38 -0
  216. package/dist/actions/cors/filterAndValidateOrigin.js.map +1 -0
  217. package/dist/actions/cors/types.d.ts +9 -0
  218. package/dist/actions/cors/types.js +3 -0
  219. package/dist/actions/cors/types.js.map +1 -0
  220. package/dist/actions/dataset/__tests__/validateDatasetName.test.js +182 -0
  221. package/dist/actions/dataset/__tests__/validateDatasetName.test.js.map +1 -0
  222. package/dist/actions/dataset/processAliasName.d.ts +9 -0
  223. package/dist/actions/dataset/processAliasName.js +20 -0
  224. package/dist/actions/dataset/processAliasName.js.map +1 -0
  225. package/dist/actions/dataset/validateDatasetAliasName.d.ts +1 -0
  226. package/dist/actions/dataset/validateDatasetAliasName.js +28 -0
  227. package/dist/actions/dataset/validateDatasetAliasName.js.map +1 -0
  228. package/dist/actions/dataset/validateDatasetName.d.ts +13 -0
  229. package/dist/actions/dataset/validateDatasetName.js +39 -0
  230. package/dist/actions/dataset/validateDatasetName.js.map +1 -0
  231. package/dist/actions/debug/gatherDebugInfo.d.ts +2 -0
  232. package/dist/actions/debug/gatherDebugInfo.js +110 -0
  233. package/dist/actions/debug/gatherDebugInfo.js.map +1 -0
  234. package/dist/actions/debug/getGlobalConfigLocation.d.ts +1 -0
  235. package/dist/actions/debug/getGlobalConfigLocation.js +7 -0
  236. package/dist/actions/debug/getGlobalConfigLocation.js.map +1 -0
  237. package/dist/actions/debug/types.d.ts +32 -0
  238. package/dist/actions/debug/types.js +3 -0
  239. package/dist/actions/debug/types.js.map +1 -0
  240. package/dist/actions/deploy/__tests__/checkDir.test.js +120 -0
  241. package/dist/actions/deploy/__tests__/checkDir.test.js.map +1 -0
  242. package/dist/actions/deploy/checkDir.d.ts +8 -0
  243. package/dist/actions/deploy/checkDir.js +31 -0
  244. package/dist/actions/deploy/checkDir.js.map +1 -0
  245. package/dist/actions/deploy/createStudioUserApplication.d.ts +2 -0
  246. package/dist/actions/deploy/createStudioUserApplication.js +59 -0
  247. package/dist/actions/deploy/createStudioUserApplication.js.map +1 -0
  248. package/dist/actions/deploy/createUserApplicationForApp.d.ts +2 -0
  249. package/dist/actions/deploy/createUserApplicationForApp.js +56 -0
  250. package/dist/actions/deploy/createUserApplicationForApp.js.map +1 -0
  251. package/dist/actions/deploy/deployApp.d.ts +7 -0
  252. package/dist/actions/deploy/deployApp.js +145 -0
  253. package/dist/actions/deploy/deployApp.js.map +1 -0
  254. package/dist/actions/deploy/deployDebug.d.ts +1 -0
  255. package/dist/actions/deploy/deployDebug.js +4 -0
  256. package/dist/actions/deploy/deployDebug.js.map +1 -0
  257. package/dist/actions/deploy/deployStudio.d.ts +2 -0
  258. package/dist/actions/deploy/deployStudio.js +133 -0
  259. package/dist/actions/deploy/deployStudio.js.map +1 -0
  260. package/dist/actions/deploy/findUserApplicationForApp.d.ts +15 -0
  261. package/dist/actions/deploy/findUserApplicationForApp.js +110 -0
  262. package/dist/actions/deploy/findUserApplicationForApp.js.map +1 -0
  263. package/dist/actions/deploy/findUserApplicationForStudio.d.ts +13 -0
  264. package/dist/actions/deploy/findUserApplicationForStudio.js +143 -0
  265. package/dist/actions/deploy/findUserApplicationForStudio.js.map +1 -0
  266. package/dist/actions/deploy/types.d.ts +11 -0
  267. package/dist/actions/deploy/types.js +3 -0
  268. package/dist/actions/deploy/types.js.map +1 -0
  269. package/dist/actions/dev/devAction.d.ts +4 -0
  270. package/dist/actions/dev/devAction.js +7 -0
  271. package/dist/actions/dev/devAction.js.map +1 -0
  272. package/dist/actions/dev/devDebug.d.ts +1 -0
  273. package/dist/actions/dev/devDebug.js +4 -0
  274. package/dist/actions/dev/devDebug.js.map +1 -0
  275. package/dist/actions/dev/getCoreAppUrl.d.ts +5 -0
  276. package/dist/actions/dev/getCoreAppUrl.js +10 -0
  277. package/dist/actions/dev/getCoreAppUrl.js.map +1 -0
  278. package/dist/actions/dev/getDevServerConfig.d.ts +9 -0
  279. package/dist/actions/dev/getDevServerConfig.js +28 -0
  280. package/dist/actions/dev/getDevServerConfig.js.map +1 -0
  281. package/dist/actions/dev/startAppDevServer.d.ts +4 -0
  282. package/dist/actions/dev/startAppDevServer.js +54 -0
  283. package/dist/actions/dev/startAppDevServer.js.map +1 -0
  284. package/dist/actions/dev/startStudioDevServer.d.ts +4 -0
  285. package/dist/actions/dev/startStudioDevServer.js +155 -0
  286. package/dist/actions/dev/startStudioDevServer.js.map +1 -0
  287. package/dist/actions/dev/types.d.ts +12 -0
  288. package/dist/actions/dev/types.js +3 -0
  289. package/dist/actions/dev/types.js.map +1 -0
  290. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js +16 -0
  291. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js.map +1 -0
  292. package/dist/actions/docs/normalizeDocsPath.d.ts +8 -0
  293. package/dist/actions/docs/normalizeDocsPath.js +15 -0
  294. package/dist/actions/docs/normalizeDocsPath.js.map +1 -0
  295. package/dist/actions/documents/constants.d.ts +1 -0
  296. package/dist/actions/documents/constants.js +3 -0
  297. package/dist/actions/documents/constants.js.map +1 -0
  298. package/dist/actions/documents/editor.d.ts +11 -0
  299. package/dist/actions/documents/editor.js +26 -0
  300. package/dist/actions/documents/editor.js.map +1 -0
  301. package/dist/actions/documents/types.d.ts +2 -0
  302. package/dist/actions/documents/types.js +3 -0
  303. package/dist/actions/documents/types.js.map +1 -0
  304. package/dist/actions/documents/validate.d.ts +28 -0
  305. package/dist/actions/documents/validate.js +51 -0
  306. package/dist/actions/documents/validate.js.map +1 -0
  307. package/dist/actions/documents/validation/reporters/index.d.ts +5 -0
  308. package/dist/actions/documents/validation/reporters/index.js +10 -0
  309. package/dist/actions/documents/validation/reporters/index.js.map +1 -0
  310. package/dist/actions/documents/validation/reporters/jsonReporter.d.ts +2 -0
  311. package/dist/actions/documents/validation/reporters/jsonReporter.js +25 -0
  312. package/dist/actions/documents/validation/reporters/jsonReporter.js.map +1 -0
  313. package/dist/actions/documents/validation/reporters/ndjsonReporter.d.ts +2 -0
  314. package/dist/actions/documents/validation/reporters/ndjsonReporter.js +18 -0
  315. package/dist/actions/documents/validation/reporters/ndjsonReporter.js.map +1 -0
  316. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js +124 -0
  317. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js.map +1 -0
  318. package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.d.ts +10 -0
  319. package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js +61 -0
  320. package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js.map +1 -0
  321. package/dist/actions/documents/validation/reporters/prettyReporter/index.d.ts +1 -0
  322. package/dist/actions/documents/validation/reporters/prettyReporter/index.js +3 -0
  323. package/dist/actions/documents/validation/reporters/prettyReporter/index.js.map +1 -0
  324. package/dist/actions/documents/validation/reporters/prettyReporter/prettyReporter.d.ts +5 -0
  325. package/dist/actions/documents/validation/reporters/prettyReporter/prettyReporter.js +92 -0
  326. package/dist/actions/documents/validation/reporters/prettyReporter/prettyReporter.js.map +1 -0
  327. package/dist/actions/documents/validation/reporters/prettyReporter/util.d.ts +53 -0
  328. package/dist/actions/documents/validation/reporters/prettyReporter/util.js +45 -0
  329. package/dist/actions/documents/validation/reporters/prettyReporter/util.js.map +1 -0
  330. package/dist/actions/exec/execScript.d.ts +11 -0
  331. package/dist/actions/exec/execScript.js +73 -0
  332. package/dist/actions/exec/execScript.js.map +1 -0
  333. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js +274 -0
  334. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js.map +1 -0
  335. package/dist/actions/graphql/getGraphQLAPIs.d.ts +2 -0
  336. package/dist/actions/graphql/getGraphQLAPIs.js +65 -0
  337. package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -0
  338. package/dist/actions/graphql/getGraphQLAPIs.worker.d.ts +1 -0
  339. package/dist/actions/graphql/getGraphQLAPIs.worker.js +126 -0
  340. package/dist/actions/graphql/getGraphQLAPIs.worker.js.map +1 -0
  341. package/dist/actions/graphql/types.d.ts +68 -0
  342. package/dist/actions/graphql/types.js +3 -0
  343. package/dist/actions/graphql/types.js.map +1 -0
  344. package/dist/actions/hook/constants.d.ts +1 -0
  345. package/dist/actions/hook/constants.js +3 -0
  346. package/dist/actions/hook/constants.js.map +1 -0
  347. package/dist/actions/hook/formatFailure.d.ts +4 -0
  348. package/dist/actions/hook/formatFailure.js +29 -0
  349. package/dist/actions/hook/formatFailure.js.map +1 -0
  350. package/dist/actions/hook/types.d.ts +78 -0
  351. package/dist/actions/hook/types.js +3 -0
  352. package/dist/actions/hook/types.js.map +1 -0
  353. package/dist/actions/init/constants.d.ts +1 -0
  354. package/dist/actions/init/constants.js +3 -0
  355. package/dist/actions/init/constants.js.map +1 -0
  356. package/dist/actions/init/determineAppTemplate.d.ts +9 -0
  357. package/dist/actions/init/determineAppTemplate.js +16 -0
  358. package/dist/actions/init/determineAppTemplate.js.map +1 -0
  359. package/dist/actions/init/remoteTemplate.d.ts +23 -0
  360. package/dist/actions/init/remoteTemplate.js +249 -0
  361. package/dist/actions/init/remoteTemplate.js.map +1 -0
  362. package/dist/actions/manifest/SchemaIcon.d.ts +9 -0
  363. package/dist/actions/manifest/SchemaIcon.js +21 -0
  364. package/dist/actions/manifest/SchemaIcon.js.map +1 -0
  365. package/dist/actions/manifest/extractManifest.d.ts +14 -0
  366. package/dist/actions/manifest/extractManifest.js +96 -0
  367. package/dist/actions/manifest/extractManifest.js.map +1 -0
  368. package/dist/actions/manifest/extractWorkspaceManifest.d.ts +3 -0
  369. package/dist/actions/manifest/extractWorkspaceManifest.js +406 -0
  370. package/dist/actions/manifest/extractWorkspaceManifest.js.map +1 -0
  371. package/dist/actions/manifest/purifyConfig.d.ts +10 -0
  372. package/dist/actions/manifest/purifyConfig.js +307 -0
  373. package/dist/actions/manifest/purifyConfig.js.map +1 -0
  374. package/dist/actions/manifest/schemaTypeHelpers.d.ts +17 -0
  375. package/dist/actions/manifest/schemaTypeHelpers.js +110 -0
  376. package/dist/actions/manifest/schemaTypeHelpers.js.map +1 -0
  377. package/dist/actions/manifest/types.d.ts +114 -0
  378. package/dist/actions/manifest/types.js +5 -0
  379. package/dist/actions/manifest/types.js.map +1 -0
  380. package/dist/actions/mcp/detectAvailableEditors.d.ts +8 -0
  381. package/dist/actions/mcp/detectAvailableEditors.js +70 -0
  382. package/dist/actions/mcp/detectAvailableEditors.js.map +1 -0
  383. package/dist/actions/mcp/getEditorsWithExistingConfig.d.ts +8 -0
  384. package/dist/actions/mcp/getEditorsWithExistingConfig.js +29 -0
  385. package/dist/actions/mcp/getEditorsWithExistingConfig.js.map +1 -0
  386. package/dist/actions/mcp/writeMCPConfig.d.ts +9 -0
  387. package/dist/actions/mcp/writeMCPConfig.js +46 -0
  388. package/dist/actions/mcp/writeMCPConfig.js.map +1 -0
  389. package/dist/actions/media/__tests__/createMockClient.js +32 -0
  390. package/dist/actions/media/__tests__/createMockClient.js.map +1 -0
  391. package/dist/actions/media/__tests__/importMedia.test.js +182 -0
  392. package/dist/actions/media/__tests__/importMedia.test.js.map +1 -0
  393. package/dist/actions/media/getMediaLibraryConfig.d.ts +2 -0
  394. package/dist/actions/media/getMediaLibraryConfig.js +5 -0
  395. package/dist/actions/media/getMediaLibraryConfig.js.map +1 -0
  396. package/dist/actions/media/importAspects.d.ts +52 -0
  397. package/dist/actions/media/importAspects.js +111 -0
  398. package/dist/actions/media/importAspects.js.map +1 -0
  399. package/dist/actions/media/importMedia.d.ts +55 -0
  400. package/dist/actions/media/importMedia.js +213 -0
  401. package/dist/actions/media/importMedia.js.map +1 -0
  402. package/dist/actions/media/importMediaDebug.d.ts +1 -0
  403. package/dist/actions/media/importMediaDebug.js +4 -0
  404. package/dist/actions/media/importMediaDebug.js.map +1 -0
  405. package/dist/actions/migration/getMigrationRootDirectory.d.ts +2 -0
  406. package/dist/actions/migration/getMigrationRootDirectory.js +14 -0
  407. package/dist/actions/migration/getMigrationRootDirectory.js.map +1 -0
  408. package/dist/actions/migration/resolveMigrations.d.ts +19 -0
  409. package/dist/actions/migration/resolveMigrations.js +43 -0
  410. package/dist/actions/migration/resolveMigrations.js.map +1 -0
  411. package/dist/actions/migration/templates/__tests__/minimalAdvanced.test.js +65 -0
  412. package/dist/actions/migration/templates/__tests__/minimalAdvanced.test.js.map +1 -0
  413. package/dist/actions/migration/templates/__tests__/minimalSimple.test.js +145 -0
  414. package/dist/actions/migration/templates/__tests__/minimalSimple.test.js.map +1 -0
  415. package/dist/actions/migration/templates/__tests__/renameField.test.js +63 -0
  416. package/dist/actions/migration/templates/__tests__/renameField.test.js.map +1 -0
  417. package/dist/actions/migration/templates/__tests__/renameType.test.js +61 -0
  418. package/dist/actions/migration/templates/__tests__/renameType.test.js.map +1 -0
  419. package/dist/actions/migration/templates/__tests__/stringToPTE.test.js +87 -0
  420. package/dist/actions/migration/templates/__tests__/stringToPTE.test.js.map +1 -0
  421. package/dist/actions/migration/templates/index.d.ts +5 -0
  422. package/dist/actions/migration/templates/index.js +7 -0
  423. package/dist/actions/migration/templates/index.js.map +1 -0
  424. package/dist/actions/migration/templates/minimalAdvanced.d.ts +4 -0
  425. package/dist/actions/migration/templates/minimalAdvanced.js +21 -0
  426. package/dist/actions/migration/templates/minimalAdvanced.js.map +1 -0
  427. package/dist/actions/migration/templates/minimalSimple.d.ts +4 -0
  428. package/dist/actions/migration/templates/minimalSimple.js +61 -0
  429. package/dist/actions/migration/templates/minimalSimple.js.map +1 -0
  430. package/dist/actions/migration/templates/renameField.d.ts +4 -0
  431. package/dist/actions/migration/templates/renameField.js +20 -0
  432. package/dist/actions/migration/templates/renameField.js.map +1 -0
  433. package/dist/actions/migration/templates/renameType.d.ts +4 -0
  434. package/dist/actions/migration/templates/renameType.js +19 -0
  435. package/dist/actions/migration/templates/renameType.js.map +1 -0
  436. package/dist/actions/migration/templates/stringToPTE.d.ts +4 -0
  437. package/dist/actions/migration/templates/stringToPTE.js +32 -0
  438. package/dist/actions/migration/templates/stringToPTE.js.map +1 -0
  439. package/dist/actions/preview/getPreviewServerConfig.d.ts +15 -0
  440. package/dist/actions/preview/getPreviewServerConfig.js +16 -0
  441. package/dist/actions/preview/getPreviewServerConfig.js.map +1 -0
  442. package/dist/actions/preview/previewAction.d.ts +10 -0
  443. package/dist/actions/preview/previewAction.js +19 -0
  444. package/dist/actions/preview/previewAction.js.map +1 -0
  445. package/dist/actions/preview/types.d.ts +2 -0
  446. package/dist/actions/preview/types.js +3 -0
  447. package/dist/actions/preview/types.js.map +1 -0
  448. package/dist/actions/schema/__tests__/deleteSchemaAction.test.js +294 -0
  449. package/dist/actions/schema/__tests__/deleteSchemaAction.test.js.map +1 -0
  450. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js +174 -0
  451. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js.map +1 -0
  452. package/dist/actions/schema/__tests__/validateAction.test.js +281 -0
  453. package/dist/actions/schema/__tests__/validateAction.test.js.map +1 -0
  454. package/dist/actions/schema/deleteSchemaAction.d.ts +15 -0
  455. package/dist/actions/schema/deleteSchemaAction.js +106 -0
  456. package/dist/actions/schema/deleteSchemaAction.js.map +1 -0
  457. package/dist/actions/schema/extract.d.ts +7 -0
  458. package/dist/actions/schema/extract.js +38 -0
  459. package/dist/actions/schema/extract.js.map +1 -0
  460. package/dist/actions/schema/formatSchemaValidation.d.ts +3 -0
  461. package/dist/actions/schema/formatSchemaValidation.js +62 -0
  462. package/dist/actions/schema/formatSchemaValidation.js.map +1 -0
  463. package/dist/actions/schema/metafile.d.ts +21 -0
  464. package/dist/actions/schema/metafile.js +51 -0
  465. package/dist/actions/schema/metafile.js.map +1 -0
  466. package/dist/actions/schema/schemaStoreConstants.d.ts +1 -0
  467. package/dist/actions/schema/schemaStoreConstants.js +4 -0
  468. package/dist/actions/schema/schemaStoreConstants.js.map +1 -0
  469. package/dist/actions/schema/schemaStoreTypes.d.ts +29 -0
  470. package/dist/actions/schema/schemaStoreTypes.js +19 -0
  471. package/dist/actions/schema/schemaStoreTypes.js.map +1 -0
  472. package/dist/actions/schema/utils/manifestExtractor.d.ts +14 -0
  473. package/dist/actions/schema/utils/manifestExtractor.js +38 -0
  474. package/dist/actions/schema/utils/manifestExtractor.js.map +1 -0
  475. package/dist/actions/schema/utils/manifestReader.d.ts +24 -0
  476. package/dist/actions/schema/utils/manifestReader.js +77 -0
  477. package/dist/actions/schema/utils/manifestReader.js.map +1 -0
  478. package/dist/actions/schema/utils/schemaActionHelpers.d.ts +1 -0
  479. package/dist/actions/schema/utils/schemaActionHelpers.js +5 -0
  480. package/dist/actions/schema/utils/schemaActionHelpers.js.map +1 -0
  481. package/dist/actions/schema/utils/schemaApiClient.d.ts +6 -0
  482. package/dist/actions/schema/utils/schemaApiClient.js +17 -0
  483. package/dist/actions/schema/utils/schemaApiClient.js.map +1 -0
  484. package/dist/actions/schema/utils/schemaStoreOutStrings.d.ts +3 -0
  485. package/dist/actions/schema/utils/schemaStoreOutStrings.js +11 -0
  486. package/dist/actions/schema/utils/schemaStoreOutStrings.js.map +1 -0
  487. package/dist/actions/schema/utils/schemaStoreValidation.d.ts +81 -0
  488. package/dist/actions/schema/utils/schemaStoreValidation.js +195 -0
  489. package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -0
  490. package/dist/actions/schema/utils/workspaceSchemaId.d.ts +8 -0
  491. package/dist/actions/schema/utils/workspaceSchemaId.js +23 -0
  492. package/dist/actions/schema/utils/workspaceSchemaId.js.map +1 -0
  493. package/dist/actions/schema/validateAction.d.ts +11 -0
  494. package/dist/actions/schema/validateAction.js +81 -0
  495. package/dist/actions/schema/validateAction.js.map +1 -0
  496. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js +27 -0
  497. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js.map +1 -0
  498. package/dist/actions/telemetry/fetchTelemetryConsent.d.ts +11 -0
  499. package/dist/actions/telemetry/fetchTelemetryConsent.js +38 -0
  500. package/dist/actions/telemetry/fetchTelemetryConsent.js.map +1 -0
  501. package/dist/actions/telemetry/getLearnMoreMessage.d.ts +2 -0
  502. package/dist/actions/telemetry/getLearnMoreMessage.js +15 -0
  503. package/dist/actions/telemetry/getLearnMoreMessage.js.map +1 -0
  504. package/dist/actions/telemetry/getStatusDisplay.d.ts +2 -0
  505. package/dist/actions/telemetry/getStatusDisplay.js +26 -0
  506. package/dist/actions/telemetry/getStatusDisplay.js.map +1 -0
  507. package/dist/actions/telemetry/getStatusMessage.d.ts +2 -0
  508. package/dist/actions/telemetry/getStatusMessage.js +36 -0
  509. package/dist/actions/telemetry/getStatusMessage.js.map +1 -0
  510. package/dist/actions/telemetry/isValidApiConsentStatus.d.ts +20 -0
  511. package/dist/actions/telemetry/isValidApiConsentStatus.js +25 -0
  512. package/dist/actions/telemetry/isValidApiConsentStatus.js.map +1 -0
  513. package/dist/actions/telemetry/resolveConsent.d.ts +10 -0
  514. package/dist/actions/telemetry/resolveConsent.js +49 -0
  515. package/dist/actions/telemetry/resolveConsent.js.map +1 -0
  516. package/dist/actions/telemetry/setConsent.d.ts +16 -0
  517. package/dist/actions/telemetry/setConsent.js +87 -0
  518. package/dist/actions/telemetry/setConsent.js.map +1 -0
  519. package/dist/actions/telemetry/telemetryDebug.d.ts +1 -0
  520. package/dist/actions/telemetry/telemetryDebug.js +4 -0
  521. package/dist/actions/telemetry/telemetryDebug.js.map +1 -0
  522. package/dist/actions/telemetry/telemetryDisclosure.d.ts +1 -0
  523. package/dist/actions/telemetry/telemetryDisclosure.js +33 -0
  524. package/dist/actions/telemetry/telemetryDisclosure.js.map +1 -0
  525. package/dist/actions/telemetry/telemetryLearnMoreMessage.d.ts +2 -0
  526. package/dist/actions/telemetry/telemetryLearnMoreMessage.js +15 -0
  527. package/dist/actions/telemetry/telemetryLearnMoreMessage.js.map +1 -0
  528. package/dist/actions/telemetry/types.d.ts +14 -0
  529. package/dist/actions/telemetry/types.js +3 -0
  530. package/dist/actions/telemetry/types.js.map +1 -0
  531. package/dist/actions/tokens/constants.d.ts +4 -0
  532. package/dist/actions/tokens/constants.js +5 -0
  533. package/dist/actions/tokens/constants.js.map +1 -0
  534. package/dist/actions/tokens/types.d.ts +32 -0
  535. package/dist/actions/tokens/types.js +3 -0
  536. package/dist/actions/tokens/types.js.map +1 -0
  537. package/dist/actions/tokens/validateRole.d.ts +9 -0
  538. package/dist/actions/tokens/validateRole.js +23 -0
  539. package/dist/actions/tokens/validateRole.js.map +1 -0
  540. package/dist/actions/undeploy/getStudioOrAppUserApplication.d.ts +9 -0
  541. package/dist/actions/undeploy/getStudioOrAppUserApplication.js +36 -0
  542. package/dist/actions/undeploy/getStudioOrAppUserApplication.js.map +1 -0
  543. package/dist/actions/users/__tests__/validateEmail.test.js +16 -0
  544. package/dist/actions/users/__tests__/validateEmail.test.js.map +1 -0
  545. package/dist/actions/users/apiVersion.d.ts +6 -0
  546. package/dist/actions/users/apiVersion.js +7 -0
  547. package/dist/actions/users/apiVersion.js.map +1 -0
  548. package/dist/actions/users/getMembersForProject.d.ts +26 -0
  549. package/dist/actions/users/getMembersForProject.js +58 -0
  550. package/dist/actions/users/getMembersForProject.js.map +1 -0
  551. package/dist/actions/users/getPendingInvitations.d.ts +13 -0
  552. package/dist/actions/users/getPendingInvitations.js +15 -0
  553. package/dist/actions/users/getPendingInvitations.js.map +1 -0
  554. package/dist/actions/users/types.d.ts +50 -0
  555. package/dist/actions/users/types.js +3 -0
  556. package/dist/actions/users/types.js.map +1 -0
  557. package/dist/actions/users/usersDebug.d.ts +1 -0
  558. package/dist/actions/users/usersDebug.js +4 -0
  559. package/dist/actions/users/usersDebug.js.map +1 -0
  560. package/dist/actions/users/validateEmail.d.ts +1 -0
  561. package/dist/actions/users/validateEmail.js +14 -0
  562. package/dist/actions/users/validateEmail.js.map +1 -0
  563. package/dist/actions/versions/buildPackageArray.d.ts +18 -0
  564. package/dist/actions/versions/buildPackageArray.js +44 -0
  565. package/dist/actions/versions/buildPackageArray.js.map +1 -0
  566. package/dist/actions/versions/filterSanityModules.d.ts +8 -0
  567. package/dist/actions/versions/filterSanityModules.js +20 -0
  568. package/dist/actions/versions/filterSanityModules.js.map +1 -0
  569. package/dist/actions/versions/findSanityModulesVersions.d.ts +14 -0
  570. package/dist/actions/versions/findSanityModulesVersions.js +47 -0
  571. package/dist/actions/versions/findSanityModulesVersions.js.map +1 -0
  572. package/dist/actions/versions/getFormatters.d.ts +17 -0
  573. package/dist/actions/versions/getFormatters.js +30 -0
  574. package/dist/actions/versions/getFormatters.js.map +1 -0
  575. package/dist/actions/versions/tryFindLatestVersion.d.ts +8 -0
  576. package/dist/actions/versions/tryFindLatestVersion.js +21 -0
  577. package/dist/actions/versions/tryFindLatestVersion.js.map +1 -0
  578. package/dist/actions/versions/types.d.ts +14 -0
  579. package/dist/actions/versions/types.js +5 -0
  580. package/dist/actions/versions/types.js.map +1 -0
  581. package/dist/actions/versions/versionsDebug.d.ts +1 -0
  582. package/dist/actions/versions/versionsDebug.js +4 -0
  583. package/dist/actions/versions/versionsDebug.js.map +1 -0
  584. package/dist/commands/__tests__/blueprints.test.js +54 -0
  585. package/dist/commands/__tests__/blueprints.test.js.map +1 -0
  586. package/dist/commands/__tests__/build.test.js +132 -0
  587. package/dist/commands/__tests__/build.test.js.map +1 -0
  588. package/dist/commands/__tests__/codemod.test.js +271 -0
  589. package/dist/commands/__tests__/codemod.test.js.map +1 -0
  590. package/dist/commands/__tests__/debug.test.js +697 -0
  591. package/dist/commands/__tests__/debug.test.js.map +1 -0
  592. package/dist/commands/__tests__/deploy.test.js +1913 -0
  593. package/dist/commands/__tests__/deploy.test.js.map +1 -0
  594. package/dist/commands/__tests__/dev.test.js +410 -0
  595. package/dist/commands/__tests__/dev.test.js.map +1 -0
  596. package/dist/commands/__tests__/exec.test.js +207 -0
  597. package/dist/commands/__tests__/exec.test.js.map +1 -0
  598. package/dist/commands/__tests__/init.test.js +411 -0
  599. package/dist/commands/__tests__/init.test.js.map +1 -0
  600. package/dist/commands/__tests__/install.test.js +258 -0
  601. package/dist/commands/__tests__/install.test.js.map +1 -0
  602. package/dist/commands/__tests__/learn.test.js +29 -0
  603. package/dist/commands/__tests__/learn.test.js.map +1 -0
  604. package/dist/commands/__tests__/logout.test.js +88 -0
  605. package/dist/commands/__tests__/logout.test.js.map +1 -0
  606. package/dist/commands/__tests__/manage.test.js +105 -0
  607. package/dist/commands/__tests__/manage.test.js.map +1 -0
  608. package/dist/commands/__tests__/preview.test.js +261 -0
  609. package/dist/commands/__tests__/preview.test.js.map +1 -0
  610. package/dist/commands/__tests__/start.test.js +253 -0
  611. package/dist/commands/__tests__/start.test.js.map +1 -0
  612. package/dist/commands/__tests__/undeploy.test.js +382 -0
  613. package/dist/commands/__tests__/undeploy.test.js.map +1 -0
  614. package/dist/commands/__tests__/versions.test.js +134 -0
  615. package/dist/commands/__tests__/versions.test.js.map +1 -0
  616. package/dist/commands/backup/__tests__/disable.test.js +207 -0
  617. package/dist/commands/backup/__tests__/disable.test.js.map +1 -0
  618. package/dist/commands/backup/__tests__/download.test.js +679 -0
  619. package/dist/commands/backup/__tests__/download.test.js.map +1 -0
  620. package/dist/commands/backup/__tests__/enable.test.js +317 -0
  621. package/dist/commands/backup/__tests__/enable.test.js.map +1 -0
  622. package/dist/commands/backup/__tests__/list.test.js +321 -0
  623. package/dist/commands/backup/__tests__/list.test.js.map +1 -0
  624. package/dist/commands/backup/disable.d.ts +13 -0
  625. package/dist/commands/backup/disable.js +99 -0
  626. package/dist/commands/backup/disable.js.map +1 -0
  627. package/dist/commands/backup/download.d.ts +21 -0
  628. package/dist/commands/backup/download.js +291 -0
  629. package/dist/commands/backup/download.js.map +1 -0
  630. package/dist/commands/backup/enable.d.ts +12 -0
  631. package/dist/commands/backup/enable.js +105 -0
  632. package/dist/commands/backup/enable.js.map +1 -0
  633. package/dist/commands/backup/list.d.ts +19 -0
  634. package/dist/commands/backup/list.js +188 -0
  635. package/dist/commands/backup/list.js.map +1 -0
  636. package/dist/commands/build.d.ts +18 -0
  637. package/dist/commands/build.js +82 -0
  638. package/dist/commands/build.js.map +1 -0
  639. package/dist/commands/codemod.d.ts +19 -0
  640. package/dist/commands/codemod.js +141 -0
  641. package/dist/commands/codemod.js.map +1 -0
  642. package/dist/commands/cors/__tests__/add.test.js +346 -0
  643. package/dist/commands/cors/__tests__/add.test.js.map +1 -0
  644. package/dist/commands/cors/__tests__/delete.test.js +293 -0
  645. package/dist/commands/cors/__tests__/delete.test.js.map +1 -0
  646. package/dist/commands/cors/__tests__/list.test.js +218 -0
  647. package/dist/commands/cors/__tests__/list.test.js.map +1 -0
  648. package/dist/commands/cors/add.d.ts +29 -0
  649. package/dist/commands/cors/add.js +158 -0
  650. package/dist/commands/cors/add.js.map +1 -0
  651. package/dist/commands/cors/delete.d.ts +13 -0
  652. package/dist/commands/cors/delete.js +98 -0
  653. package/dist/commands/cors/delete.js.map +1 -0
  654. package/dist/commands/cors/list.d.ts +9 -0
  655. package/dist/commands/cors/list.js +48 -0
  656. package/dist/commands/cors/list.js.map +1 -0
  657. package/dist/commands/dataset/__tests__/copy.test.js +520 -0
  658. package/dist/commands/dataset/__tests__/copy.test.js.map +1 -0
  659. package/dist/commands/dataset/__tests__/create.test.js +312 -0
  660. package/dist/commands/dataset/__tests__/create.test.js.map +1 -0
  661. package/dist/commands/dataset/__tests__/delete.test.js +224 -0
  662. package/dist/commands/dataset/__tests__/delete.test.js.map +1 -0
  663. package/dist/commands/dataset/__tests__/export.test.js +561 -0
  664. package/dist/commands/dataset/__tests__/export.test.js.map +1 -0
  665. package/dist/commands/dataset/__tests__/import.test.js +53 -0
  666. package/dist/commands/dataset/__tests__/import.test.js.map +1 -0
  667. package/dist/commands/dataset/__tests__/list.test.js +174 -0
  668. package/dist/commands/dataset/__tests__/list.test.js.map +1 -0
  669. package/dist/commands/dataset/alias/__tests__/create.test.js +299 -0
  670. package/dist/commands/dataset/alias/__tests__/create.test.js.map +1 -0
  671. package/dist/commands/dataset/alias/__tests__/delete.test.js +236 -0
  672. package/dist/commands/dataset/alias/__tests__/delete.test.js.map +1 -0
  673. package/dist/commands/dataset/alias/__tests__/link.test.js +336 -0
  674. package/dist/commands/dataset/alias/__tests__/link.test.js.map +1 -0
  675. package/dist/commands/dataset/alias/__tests__/unlink.test.js +298 -0
  676. package/dist/commands/dataset/alias/__tests__/unlink.test.js.map +1 -0
  677. package/dist/commands/dataset/alias/create.d.ts +13 -0
  678. package/dist/commands/dataset/alias/create.js +118 -0
  679. package/dist/commands/dataset/alias/create.js.map +1 -0
  680. package/dist/commands/dataset/alias/delete.d.ts +16 -0
  681. package/dist/commands/dataset/alias/delete.js +88 -0
  682. package/dist/commands/dataset/alias/delete.js.map +1 -0
  683. package/dist/commands/dataset/alias/link.d.ts +17 -0
  684. package/dist/commands/dataset/alias/link.js +137 -0
  685. package/dist/commands/dataset/alias/link.js.map +1 -0
  686. package/dist/commands/dataset/alias/unlink.d.ts +16 -0
  687. package/dist/commands/dataset/alias/unlink.js +98 -0
  688. package/dist/commands/dataset/alias/unlink.js.map +1 -0
  689. package/dist/commands/dataset/copy.d.ts +27 -0
  690. package/dist/commands/dataset/copy.js +368 -0
  691. package/dist/commands/dataset/copy.js.map +1 -0
  692. package/dist/commands/dataset/create.d.ts +17 -0
  693. package/dist/commands/dataset/create.js +145 -0
  694. package/dist/commands/dataset/create.js.map +1 -0
  695. package/dist/commands/dataset/delete.d.ts +15 -0
  696. package/dist/commands/dataset/delete.js +94 -0
  697. package/dist/commands/dataset/delete.js.map +1 -0
  698. package/dist/commands/dataset/export.d.ts +26 -0
  699. package/dist/commands/dataset/export.js +272 -0
  700. package/dist/commands/dataset/export.js.map +1 -0
  701. package/dist/commands/dataset/import.d.ts +1 -0
  702. package/dist/commands/dataset/import.js +3 -0
  703. package/dist/commands/dataset/import.js.map +1 -0
  704. package/dist/commands/dataset/list.d.ts +9 -0
  705. package/dist/commands/dataset/list.js +50 -0
  706. package/dist/commands/dataset/list.js.map +1 -0
  707. package/dist/commands/dataset/visibility/__tests__/get.test.js +147 -0
  708. package/dist/commands/dataset/visibility/__tests__/get.test.js.map +1 -0
  709. package/dist/commands/dataset/visibility/__tests__/set.test.js +245 -0
  710. package/dist/commands/dataset/visibility/__tests__/set.test.js.map +1 -0
  711. package/dist/commands/dataset/visibility/get.d.ts +12 -0
  712. package/dist/commands/dataset/visibility/get.js +55 -0
  713. package/dist/commands/dataset/visibility/get.js.map +1 -0
  714. package/dist/commands/dataset/visibility/set.d.ts +13 -0
  715. package/dist/commands/dataset/visibility/set.js +88 -0
  716. package/dist/commands/dataset/visibility/set.js.map +1 -0
  717. package/dist/commands/debug.d.ts +9 -0
  718. package/dist/commands/debug.js +97 -0
  719. package/dist/commands/debug.js.map +1 -0
  720. package/dist/commands/deploy.d.ts +23 -0
  721. package/dist/commands/deploy.js +115 -0
  722. package/dist/commands/deploy.js.map +1 -0
  723. package/dist/commands/dev.d.ts +14 -0
  724. package/dist/commands/dev.js +63 -0
  725. package/dist/commands/dev.js.map +1 -0
  726. package/dist/commands/docs/__tests__/browse.test.js +29 -0
  727. package/dist/commands/docs/__tests__/browse.test.js.map +1 -0
  728. package/dist/commands/docs/__tests__/read.test.js +78 -0
  729. package/dist/commands/docs/__tests__/read.test.js.map +1 -0
  730. package/dist/commands/docs/__tests__/search.test.js +254 -0
  731. package/dist/commands/docs/__tests__/search.test.js.map +1 -0
  732. package/dist/commands/docs/browse.d.ts +6 -0
  733. package/dist/commands/docs/browse.js +15 -0
  734. package/dist/commands/docs/browse.js.map +1 -0
  735. package/dist/commands/docs/read.d.ts +15 -0
  736. package/dist/commands/docs/read.js +81 -0
  737. package/dist/commands/docs/read.js.map +1 -0
  738. package/dist/commands/docs/search.d.ts +15 -0
  739. package/dist/commands/docs/search.js +110 -0
  740. package/dist/commands/docs/search.js.map +1 -0
  741. package/dist/commands/documents/__tests__/create.test.js +967 -0
  742. package/dist/commands/documents/__tests__/create.test.js.map +1 -0
  743. package/dist/commands/documents/__tests__/delete.test.js +268 -0
  744. package/dist/commands/documents/__tests__/delete.test.js.map +1 -0
  745. package/dist/commands/documents/__tests__/get.test.js +209 -0
  746. package/dist/commands/documents/__tests__/get.test.js.map +1 -0
  747. package/dist/commands/documents/__tests__/query.test.js +405 -0
  748. package/dist/commands/documents/__tests__/query.test.js.map +1 -0
  749. package/dist/commands/documents/__tests__/validate.test.js +226 -0
  750. package/dist/commands/documents/__tests__/validate.test.js.map +1 -0
  751. package/dist/commands/documents/create.d.ts +38 -0
  752. package/dist/commands/documents/create.js +337 -0
  753. package/dist/commands/documents/create.js.map +1 -0
  754. package/dist/commands/documents/delete.d.ts +17 -0
  755. package/dist/commands/documents/delete.js +105 -0
  756. package/dist/commands/documents/delete.js.map +1 -0
  757. package/dist/commands/documents/get.d.ts +16 -0
  758. package/dist/commands/documents/get.js +86 -0
  759. package/dist/commands/documents/get.js.map +1 -0
  760. package/dist/commands/documents/query.d.ts +19 -0
  761. package/dist/commands/documents/query.js +106 -0
  762. package/dist/commands/documents/query.js.map +1 -0
  763. package/dist/commands/documents/validate.d.ts +29 -0
  764. package/dist/commands/documents/validate.js +158 -0
  765. package/dist/commands/documents/validate.js.map +1 -0
  766. package/dist/commands/exec.d.ts +19 -0
  767. package/dist/commands/exec.js +54 -0
  768. package/dist/commands/exec.js.map +1 -0
  769. package/dist/commands/graphql/__tests__/list.test.js +228 -0
  770. package/dist/commands/graphql/__tests__/list.test.js.map +1 -0
  771. package/dist/commands/graphql/__tests__/undeploy.test.js +384 -0
  772. package/dist/commands/graphql/__tests__/undeploy.test.js.map +1 -0
  773. package/dist/commands/graphql/list.d.ts +9 -0
  774. package/dist/commands/graphql/list.js +53 -0
  775. package/dist/commands/graphql/list.js.map +1 -0
  776. package/dist/commands/graphql/undeploy.d.ts +16 -0
  777. package/dist/commands/graphql/undeploy.js +148 -0
  778. package/dist/commands/graphql/undeploy.js.map +1 -0
  779. package/dist/commands/hook/__tests__/attempt.test.js +260 -0
  780. package/dist/commands/hook/__tests__/attempt.test.js.map +1 -0
  781. package/dist/commands/hook/__tests__/create.test.js +121 -0
  782. package/dist/commands/hook/__tests__/create.test.js.map +1 -0
  783. package/dist/commands/hook/__tests__/delete.test.js +220 -0
  784. package/dist/commands/hook/__tests__/delete.test.js.map +1 -0
  785. package/dist/commands/hook/__tests__/list.test.js +138 -0
  786. package/dist/commands/hook/__tests__/list.test.js.map +1 -0
  787. package/dist/commands/hook/__tests__/logs.test.js +770 -0
  788. package/dist/commands/hook/__tests__/logs.test.js.map +1 -0
  789. package/dist/commands/hook/attempt.d.ts +13 -0
  790. package/dist/commands/hook/attempt.js +66 -0
  791. package/dist/commands/hook/attempt.js.map +1 -0
  792. package/dist/commands/hook/create.d.ts +9 -0
  793. package/dist/commands/hook/create.js +50 -0
  794. package/dist/commands/hook/create.js.map +1 -0
  795. package/dist/commands/hook/delete.d.ts +13 -0
  796. package/dist/commands/hook/delete.js +98 -0
  797. package/dist/commands/hook/delete.js.map +1 -0
  798. package/dist/commands/hook/list.d.ts +9 -0
  799. package/dist/commands/hook/list.js +52 -0
  800. package/dist/commands/hook/list.js.map +1 -0
  801. package/dist/commands/hook/logs.d.ts +19 -0
  802. package/dist/commands/hook/logs.js +184 -0
  803. package/dist/commands/hook/logs.js.map +1 -0
  804. package/dist/commands/init.d.ts +46 -0
  805. package/dist/commands/init.js +397 -0
  806. package/dist/commands/init.js.map +1 -0
  807. package/dist/commands/install.d.ts +10 -0
  808. package/dist/commands/install.js +43 -0
  809. package/dist/commands/install.js.map +1 -0
  810. package/dist/commands/learn.d.ts +6 -0
  811. package/dist/commands/learn.js +15 -0
  812. package/dist/commands/learn.js.map +1 -0
  813. package/dist/commands/login.d.ts +13 -0
  814. package/dist/commands/login.js +50 -0
  815. package/dist/commands/login.js.map +1 -0
  816. package/dist/commands/logout.d.ts +6 -0
  817. package/dist/commands/logout.js +37 -0
  818. package/dist/commands/logout.js.map +1 -0
  819. package/dist/commands/manage.d.ts +6 -0
  820. package/dist/commands/manage.js +28 -0
  821. package/dist/commands/manage.js.map +1 -0
  822. package/dist/commands/manifest/__tests__/extract.test.js +123 -0
  823. package/dist/commands/manifest/__tests__/extract.test.js.map +1 -0
  824. package/dist/commands/manifest/extract.d.ts +12 -0
  825. package/dist/commands/manifest/extract.js +44 -0
  826. package/dist/commands/manifest/extract.js.map +1 -0
  827. package/dist/commands/mcp/__tests__/configure.test.js +397 -0
  828. package/dist/commands/mcp/__tests__/configure.test.js.map +1 -0
  829. package/dist/commands/mcp/configure.d.ts +9 -0
  830. package/dist/commands/mcp/configure.js +89 -0
  831. package/dist/commands/mcp/configure.js.map +1 -0
  832. package/dist/commands/media/__tests__/create-aspect.test.js +160 -0
  833. package/dist/commands/media/__tests__/create-aspect.test.js.map +1 -0
  834. package/dist/commands/media/__tests__/delete-aspect.test.js +333 -0
  835. package/dist/commands/media/__tests__/delete-aspect.test.js.map +1 -0
  836. package/dist/commands/media/__tests__/deploy-aspect.test.js +632 -0
  837. package/dist/commands/media/__tests__/deploy-aspect.test.js.map +1 -0
  838. package/dist/commands/media/__tests__/export.test.js +398 -0
  839. package/dist/commands/media/__tests__/export.test.js.map +1 -0
  840. package/dist/commands/media/__tests__/import.test.js +281 -0
  841. package/dist/commands/media/__tests__/import.test.js.map +1 -0
  842. package/dist/commands/media/create-aspect.d.ts +9 -0
  843. package/dist/commands/media/create-aspect.js +87 -0
  844. package/dist/commands/media/create-aspect.js.map +1 -0
  845. package/dist/commands/media/delete-aspect.d.ts +16 -0
  846. package/dist/commands/media/delete-aspect.js +84 -0
  847. package/dist/commands/media/delete-aspect.js.map +1 -0
  848. package/dist/commands/media/deploy-aspect.d.ts +20 -0
  849. package/dist/commands/media/deploy-aspect.js +150 -0
  850. package/dist/commands/media/deploy-aspect.js.map +1 -0
  851. package/dist/commands/media/export.d.ts +21 -0
  852. package/dist/commands/media/export.js +211 -0
  853. package/dist/commands/media/export.js.map +1 -0
  854. package/dist/commands/media/import.d.ts +18 -0
  855. package/dist/commands/media/import.js +160 -0
  856. package/dist/commands/media/import.js.map +1 -0
  857. package/dist/commands/migration/__tests__/create.test.js +296 -0
  858. package/dist/commands/migration/__tests__/create.test.js.map +1 -0
  859. package/dist/commands/migration/__tests__/list.test.js +166 -0
  860. package/dist/commands/migration/__tests__/list.test.js.map +1 -0
  861. package/dist/commands/migration/__tests__/run.test.js +481 -0
  862. package/dist/commands/migration/__tests__/run.test.js.map +1 -0
  863. package/dist/commands/migration/create.d.ts +17 -0
  864. package/dist/commands/migration/create.js +143 -0
  865. package/dist/commands/migration/create.js.map +1 -0
  866. package/dist/commands/migration/list.d.ts +9 -0
  867. package/dist/commands/migration/list.js +61 -0
  868. package/dist/commands/migration/list.js.map +1 -0
  869. package/dist/commands/migration/run.d.ts +26 -0
  870. package/dist/commands/migration/run.js +271 -0
  871. package/dist/commands/migration/run.js.map +1 -0
  872. package/dist/commands/openapi/__tests__/get.test.js +149 -0
  873. package/dist/commands/openapi/__tests__/get.test.js.map +1 -0
  874. package/dist/commands/openapi/__tests__/list.test.js +113 -0
  875. package/dist/commands/openapi/__tests__/list.test.js.map +1 -0
  876. package/dist/commands/openapi/get.d.ts +17 -0
  877. package/dist/commands/openapi/get.js +83 -0
  878. package/dist/commands/openapi/get.js.map +1 -0
  879. package/dist/commands/openapi/list.d.ts +14 -0
  880. package/dist/commands/openapi/list.js +80 -0
  881. package/dist/commands/openapi/list.js.map +1 -0
  882. package/dist/commands/preview.d.ts +17 -0
  883. package/dist/commands/preview.js +74 -0
  884. package/dist/commands/preview.js.map +1 -0
  885. package/dist/commands/projects/__tests__/list.test.js +153 -0
  886. package/dist/commands/projects/__tests__/list.test.js.map +1 -0
  887. package/dist/commands/projects/list.d.ts +13 -0
  888. package/dist/commands/projects/list.js +80 -0
  889. package/dist/commands/projects/list.js.map +1 -0
  890. package/dist/commands/schema/__tests__/delete.test.js +209 -0
  891. package/dist/commands/schema/__tests__/delete.test.js.map +1 -0
  892. package/dist/commands/schema/__tests__/extract.test.js +113 -0
  893. package/dist/commands/schema/__tests__/extract.test.js.map +1 -0
  894. package/dist/commands/schema/__tests__/validate.test.js +104 -0
  895. package/dist/commands/schema/__tests__/validate.test.js.map +1 -0
  896. package/dist/commands/schema/delete.d.ts +16 -0
  897. package/dist/commands/schema/delete.js +94 -0
  898. package/dist/commands/schema/delete.js.map +1 -0
  899. package/dist/commands/schema/extract.d.ts +15 -0
  900. package/dist/commands/schema/extract.js +51 -0
  901. package/dist/commands/schema/extract.js.map +1 -0
  902. package/dist/commands/schema/validate.d.ts +15 -0
  903. package/dist/commands/schema/validate.js +65 -0
  904. package/dist/commands/schema/validate.js.map +1 -0
  905. package/dist/commands/telemetry/__tests__/disable.test.js +145 -0
  906. package/dist/commands/telemetry/__tests__/disable.test.js.map +1 -0
  907. package/dist/commands/telemetry/__tests__/enable.test.js +131 -0
  908. package/dist/commands/telemetry/__tests__/enable.test.js.map +1 -0
  909. package/dist/commands/telemetry/__tests__/status.test.js +153 -0
  910. package/dist/commands/telemetry/__tests__/status.test.js.map +1 -0
  911. package/dist/commands/telemetry/disable.d.ts +8 -0
  912. package/dist/commands/telemetry/disable.js +34 -0
  913. package/dist/commands/telemetry/disable.js.map +1 -0
  914. package/dist/commands/telemetry/enable.d.ts +8 -0
  915. package/dist/commands/telemetry/enable.js +34 -0
  916. package/dist/commands/telemetry/enable.js.map +1 -0
  917. package/dist/commands/telemetry/status.d.ts +8 -0
  918. package/dist/commands/telemetry/status.js +27 -0
  919. package/dist/commands/telemetry/status.js.map +1 -0
  920. package/dist/commands/tokens/__tests__/add.test.js +420 -0
  921. package/dist/commands/tokens/__tests__/add.test.js.map +1 -0
  922. package/dist/commands/tokens/__tests__/delete.test.js +375 -0
  923. package/dist/commands/tokens/__tests__/delete.test.js.map +1 -0
  924. package/dist/commands/tokens/__tests__/list.test.js +368 -0
  925. package/dist/commands/tokens/__tests__/list.test.js.map +1 -0
  926. package/dist/commands/tokens/add.d.ts +19 -0
  927. package/dist/commands/tokens/add.js +137 -0
  928. package/dist/commands/tokens/add.js.map +1 -0
  929. package/dist/commands/tokens/delete.d.ts +17 -0
  930. package/dist/commands/tokens/delete.js +107 -0
  931. package/dist/commands/tokens/delete.js.map +1 -0
  932. package/dist/commands/tokens/list.d.ts +12 -0
  933. package/dist/commands/tokens/list.js +92 -0
  934. package/dist/commands/tokens/list.js.map +1 -0
  935. package/dist/commands/undeploy.d.ts +8 -0
  936. package/dist/commands/undeploy.js +92 -0
  937. package/dist/commands/undeploy.js.map +1 -0
  938. package/dist/commands/users/__tests__/invite.test.js +341 -0
  939. package/dist/commands/users/__tests__/invite.test.js.map +1 -0
  940. package/dist/commands/users/__tests__/list.test.js +401 -0
  941. package/dist/commands/users/__tests__/list.test.js.map +1 -0
  942. package/dist/commands/users/invite.d.ts +17 -0
  943. package/dist/commands/users/invite.js +111 -0
  944. package/dist/commands/users/invite.js.map +1 -0
  945. package/dist/commands/users/list.d.ts +16 -0
  946. package/dist/commands/users/list.js +104 -0
  947. package/dist/commands/users/list.js.map +1 -0
  948. package/dist/commands/versions.d.ts +6 -0
  949. package/dist/commands/versions.js +27 -0
  950. package/dist/commands/versions.js.map +1 -0
  951. package/dist/config/createCliConfig.d.ts +64 -0
  952. package/dist/config/createCliConfig.js +8 -0
  953. package/dist/config/createCliConfig.js.map +1 -0
  954. package/dist/config/defineCliConfig.d.ts +3 -0
  955. package/dist/config/defineCliConfig.js +5 -0
  956. package/dist/config/defineCliConfig.js.map +1 -0
  957. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js +77 -0
  958. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js.map +1 -0
  959. package/dist/hooks/prerun/setupTelemetry.d.ts +2 -0
  960. package/dist/hooks/prerun/setupTelemetry.js +7 -0
  961. package/dist/hooks/prerun/setupTelemetry.js.map +1 -0
  962. package/dist/index.d.ts +6 -0
  963. package/dist/index.js +7 -0
  964. package/dist/index.js.map +1 -0
  965. package/dist/prompts/promptForDataset.d.ts +17 -0
  966. package/dist/prompts/promptForDataset.js +32 -0
  967. package/dist/prompts/promptForDataset.js.map +1 -0
  968. package/dist/prompts/promptForDatasetAliasName.d.ts +4 -0
  969. package/dist/prompts/promptForDatasetAliasName.js +17 -0
  970. package/dist/prompts/promptForDatasetAliasName.js.map +1 -0
  971. package/dist/prompts/promptForDatasetName.d.ts +4 -0
  972. package/dist/prompts/promptForDatasetName.js +17 -0
  973. package/dist/prompts/promptForDatasetName.js.map +1 -0
  974. package/dist/prompts/promptForMediaLibrary.d.ts +15 -0
  975. package/dist/prompts/promptForMediaLibrary.js +37 -0
  976. package/dist/prompts/promptForMediaLibrary.js.map +1 -0
  977. package/dist/prompts/selectDataset.d.ts +3 -0
  978. package/dist/prompts/selectDataset.js +12 -0
  979. package/dist/prompts/selectDataset.js.map +1 -0
  980. package/dist/prompts/selectMediaLibrary.d.ts +5 -0
  981. package/dist/prompts/selectMediaLibrary.js +34 -0
  982. package/dist/prompts/selectMediaLibrary.js.map +1 -0
  983. package/dist/server/devServer.d.ts +24 -0
  984. package/dist/server/devServer.js +53 -0
  985. package/dist/server/devServer.js.map +1 -0
  986. package/dist/server/gracefulServerDeath.d.ts +3 -0
  987. package/dist/server/gracefulServerDeath.js +12 -0
  988. package/dist/server/gracefulServerDeath.js.map +1 -0
  989. package/dist/server/previewServer.d.ts +19 -0
  990. package/dist/server/previewServer.js +87 -0
  991. package/dist/server/previewServer.js.map +1 -0
  992. package/dist/server/serverDebug.d.ts +1 -0
  993. package/dist/server/serverDebug.js +4 -0
  994. package/dist/server/serverDebug.js.map +1 -0
  995. package/dist/server/vite/plugin-sanity-basepath-redirect.d.ts +2 -0
  996. package/dist/server/vite/plugin-sanity-basepath-redirect.js +25 -0
  997. package/dist/server/vite/plugin-sanity-basepath-redirect.js.map +1 -0
  998. package/dist/server/vite/plugin-sanity-build-entries.d.ts +9 -0
  999. package/dist/server/vite/plugin-sanity-build-entries.js +65 -0
  1000. package/dist/server/vite/plugin-sanity-build-entries.js.map +1 -0
  1001. package/dist/server/vite/plugin-sanity-favicons.d.ts +17 -0
  1002. package/dist/server/vite/plugin-sanity-favicons.js +72 -0
  1003. package/dist/server/vite/plugin-sanity-favicons.js.map +1 -0
  1004. package/dist/server/vite/plugin-sanity-runtime-rewrite.d.ts +2 -0
  1005. package/dist/server/vite/plugin-sanity-runtime-rewrite.js +18 -0
  1006. package/dist/server/vite/plugin-sanity-runtime-rewrite.js.map +1 -0
  1007. package/dist/services/__tests__/datasetAliases.test.js +131 -0
  1008. package/dist/services/__tests__/datasetAliases.test.js.map +1 -0
  1009. package/dist/services/__tests__/datasets.test.js +436 -0
  1010. package/dist/services/__tests__/datasets.test.js.map +1 -0
  1011. package/dist/services/__tests__/graphql.test.js +43 -0
  1012. package/dist/services/__tests__/graphql.test.js.map +1 -0
  1013. package/dist/services/__tests__/mediaLibraries.test.js +88 -0
  1014. package/dist/services/__tests__/mediaLibraries.test.js.map +1 -0
  1015. package/dist/services/__tests__/projects.test.js +41 -0
  1016. package/dist/services/__tests__/projects.test.js.map +1 -0
  1017. package/dist/services/__tests__/userApplications.test.js +113 -0
  1018. package/dist/services/__tests__/userApplications.test.js.map +1 -0
  1019. package/dist/services/auth.d.ts +2 -0
  1020. package/dist/services/auth.js +13 -0
  1021. package/dist/services/auth.js.map +1 -0
  1022. package/dist/services/backup.d.ts +29 -0
  1023. package/dist/services/backup.js +32 -0
  1024. package/dist/services/backup.js.map +1 -0
  1025. package/dist/services/datasetAliases.d.ts +31 -0
  1026. package/dist/services/datasetAliases.js +64 -0
  1027. package/dist/services/datasetAliases.js.map +1 -0
  1028. package/dist/services/datasets.d.ts +64 -0
  1029. package/dist/services/datasets.js +153 -0
  1030. package/dist/services/datasets.js.map +1 -0
  1031. package/dist/services/docs.d.ts +15 -0
  1032. package/dist/services/docs.js +46 -0
  1033. package/dist/services/docs.js.map +1 -0
  1034. package/dist/services/getProjectFeatures.d.ts +5 -0
  1035. package/dist/services/getProjectFeatures.js +16 -0
  1036. package/dist/services/getProjectFeatures.js.map +1 -0
  1037. package/dist/services/graphql.d.ts +16 -0
  1038. package/dist/services/graphql.js +21 -0
  1039. package/dist/services/graphql.js.map +1 -0
  1040. package/dist/services/hooks.d.ts +14 -0
  1041. package/dist/services/hooks.js +40 -0
  1042. package/dist/services/hooks.js.map +1 -0
  1043. package/dist/services/mcp.d.ts +29 -0
  1044. package/dist/services/mcp.js +34 -0
  1045. package/dist/services/mcp.js.map +1 -0
  1046. package/dist/services/mediaLibraries.d.ts +52 -0
  1047. package/dist/services/mediaLibraries.js +74 -0
  1048. package/dist/services/mediaLibraries.js.map +1 -0
  1049. package/dist/services/plans.d.ts +2 -0
  1050. package/dist/services/plans.js +37 -0
  1051. package/dist/services/plans.js.map +1 -0
  1052. package/dist/services/projects.d.ts +2 -0
  1053. package/dist/services/projects.js +12 -0
  1054. package/dist/services/projects.js.map +1 -0
  1055. package/dist/services/tokens.d.ts +43 -0
  1056. package/dist/services/tokens.js +72 -0
  1057. package/dist/services/tokens.js.map +1 -0
  1058. package/dist/services/userApplications.d.ts +75 -0
  1059. package/dist/services/userApplications.js +160 -0
  1060. package/dist/services/userApplications.js.map +1 -0
  1061. package/dist/threads/configClient.d.ts +1 -0
  1062. package/dist/threads/configClient.js +9 -0
  1063. package/dist/threads/configClient.js.map +1 -0
  1064. package/dist/threads/registerBrowserEnv.d.ts +1 -0
  1065. package/dist/threads/registerBrowserEnv.js +17 -0
  1066. package/dist/threads/registerBrowserEnv.js.map +1 -0
  1067. package/dist/threads/validateDocuments.d.ts +45 -0
  1068. package/dist/threads/validateDocuments.js +251 -0
  1069. package/dist/threads/validateDocuments.js.map +1 -0
  1070. package/dist/threads/validateSchema.d.ts +35 -0
  1071. package/dist/threads/validateSchema.js +115 -0
  1072. package/dist/threads/validateSchema.js.map +1 -0
  1073. package/dist/types.d.ts +16 -0
  1074. package/dist/types.js +3 -0
  1075. package/dist/types.js.map +1 -0
  1076. package/dist/util/__tests__/appId.test.js +31 -0
  1077. package/dist/util/__tests__/appId.test.js.map +1 -0
  1078. package/dist/util/__tests__/cliClient.test.js +184 -0
  1079. package/dist/util/__tests__/cliClient.test.js.map +1 -0
  1080. package/dist/util/__tests__/compareDependencyVersions.test.js +426 -0
  1081. package/dist/util/__tests__/compareDependencyVersions.test.js.map +1 -0
  1082. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js +74 -0
  1083. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js.map +1 -0
  1084. package/dist/util/__tests__/findNdjsonEntry.test.js +54 -0
  1085. package/dist/util/__tests__/findNdjsonEntry.test.js.map +1 -0
  1086. package/dist/util/__tests__/getCliVersion.test.js +28 -0
  1087. package/dist/util/__tests__/getCliVersion.test.js.map +1 -0
  1088. package/dist/util/__tests__/getLocalPackageVersion.test.js +84 -0
  1089. package/dist/util/__tests__/getLocalPackageVersion.test.js.map +1 -0
  1090. package/dist/util/__tests__/getWorkspace.test.js +37 -0
  1091. package/dist/util/__tests__/getWorkspace.test.js.map +1 -0
  1092. package/dist/util/__tests__/readPackageJson.test.js +69 -0
  1093. package/dist/util/__tests__/readPackageJson.test.js.map +1 -0
  1094. package/dist/util/__tests__/warnAboutMissingAppId.test.js +28 -0
  1095. package/dist/util/__tests__/warnAboutMissingAppId.test.js.map +1 -0
  1096. package/dist/util/absolutify.d.ts +6 -0
  1097. package/dist/util/absolutify.js +26 -0
  1098. package/dist/util/absolutify.js.map +1 -0
  1099. package/dist/util/appId.d.ts +18 -0
  1100. package/dist/util/appId.js +58 -0
  1101. package/dist/util/appId.js.map +1 -0
  1102. package/dist/util/canLaunchBrowser.d.ts +1 -0
  1103. package/dist/util/canLaunchBrowser.js +14 -0
  1104. package/dist/util/canLaunchBrowser.js.map +1 -0
  1105. package/dist/util/cliClient.d.ts +13 -0
  1106. package/dist/util/cliClient.js +40 -0
  1107. package/dist/util/cliClient.js.map +1 -0
  1108. package/dist/util/compareDependencyVersions.d.ts +35 -0
  1109. package/dist/util/compareDependencyVersions.js +73 -0
  1110. package/dist/util/compareDependencyVersions.js.map +1 -0
  1111. package/dist/util/copyDir.d.ts +20 -0
  1112. package/dist/util/copyDir.js +63 -0
  1113. package/dist/util/copyDir.js.map +1 -0
  1114. package/dist/util/determineIsApp.d.ts +7 -0
  1115. package/dist/util/determineIsApp.js +9 -0
  1116. package/dist/util/determineIsApp.js.map +1 -0
  1117. package/dist/util/dirIsEmptyOrNonExistent.d.ts +1 -0
  1118. package/dist/util/dirIsEmptyOrNonExistent.js +18 -0
  1119. package/dist/util/dirIsEmptyOrNonExistent.js.map +1 -0
  1120. package/dist/util/ensureTrailingSlash.d.ts +9 -0
  1121. package/dist/util/ensureTrailingSlash.js +12 -0
  1122. package/dist/util/ensureTrailingSlash.js.map +1 -0
  1123. package/dist/util/errorMessages.d.ts +3 -0
  1124. package/dist/util/errorMessages.js +5 -0
  1125. package/dist/util/errorMessages.js.map +1 -0
  1126. package/dist/util/extractDocumentsFromNdjsonOrTarball.d.ts +6 -0
  1127. package/dist/util/extractDocumentsFromNdjsonOrTarball.js +88 -0
  1128. package/dist/util/extractDocumentsFromNdjsonOrTarball.js.map +1 -0
  1129. package/dist/util/findNdjsonEntry.d.ts +7 -0
  1130. package/dist/util/findNdjsonEntry.js +21 -0
  1131. package/dist/util/findNdjsonEntry.js.map +1 -0
  1132. package/dist/util/formatSize.d.ts +6 -0
  1133. package/dist/util/formatSize.js +10 -0
  1134. package/dist/util/formatSize.js.map +1 -0
  1135. package/dist/util/getCliVersion.d.ts +7 -0
  1136. package/dist/util/getCliVersion.js +28 -0
  1137. package/dist/util/getCliVersion.js.map +1 -0
  1138. package/dist/util/getErrorMessage.d.ts +8 -0
  1139. package/dist/util/getErrorMessage.js +19 -0
  1140. package/dist/util/getErrorMessage.js.map +1 -0
  1141. package/dist/util/getLocalPackageVersion.d.ts +9 -0
  1142. package/dist/util/getLocalPackageVersion.js +32 -0
  1143. package/dist/util/getLocalPackageVersion.js.map +1 -0
  1144. package/dist/util/getSharedServerConfig.d.ts +30 -0
  1145. package/dist/util/getSharedServerConfig.js +31 -0
  1146. package/dist/util/getSharedServerConfig.js.map +1 -0
  1147. package/dist/util/getWorkspace.d.ts +3 -0
  1148. package/dist/util/getWorkspace.js +18 -0
  1149. package/dist/util/getWorkspace.js.map +1 -0
  1150. package/dist/util/humanFileSize.d.ts +1 -0
  1151. package/dist/util/humanFileSize.js +12 -0
  1152. package/dist/util/humanFileSize.js.map +1 -0
  1153. package/dist/util/importStudioConfig.d.ts +1 -0
  1154. package/dist/util/importStudioConfig.js +43 -0
  1155. package/dist/util/importStudioConfig.js.map +1 -0
  1156. package/dist/util/isPathDirName.d.ts +1 -0
  1157. package/dist/util/isPathDirName.js +6 -0
  1158. package/dist/util/isPathDirName.js.map +1 -0
  1159. package/dist/util/isSanityDocumentish.d.ts +19 -0
  1160. package/dist/util/isSanityDocumentish.js +20 -0
  1161. package/dist/util/isSanityDocumentish.js.map +1 -0
  1162. package/dist/util/loadEnv.d.ts +1 -0
  1163. package/dist/util/loadEnv.js +8 -0
  1164. package/dist/util/loadEnv.js.map +1 -0
  1165. package/dist/util/migration/constants.d.ts +3 -0
  1166. package/dist/util/migration/constants.js +10 -0
  1167. package/dist/util/migration/constants.js.map +1 -0
  1168. package/dist/util/migration/ensureApiVersionFormat.d.ts +9 -0
  1169. package/dist/util/migration/ensureApiVersionFormat.js +16 -0
  1170. package/dist/util/migration/ensureApiVersionFormat.js.map +1 -0
  1171. package/dist/util/migration/prettyMutationFormatter.d.ts +8 -0
  1172. package/dist/util/migration/prettyMutationFormatter.js +141 -0
  1173. package/dist/util/migration/prettyMutationFormatter.js.map +1 -0
  1174. package/dist/util/moduleFormatUtils.d.ts +3 -0
  1175. package/dist/util/moduleFormatUtils.js +18 -0
  1176. package/dist/util/moduleFormatUtils.js.map +1 -0
  1177. package/dist/util/packageManager/__tests__/installPackages.test.js +388 -0
  1178. package/dist/util/packageManager/__tests__/installPackages.test.js.map +1 -0
  1179. package/dist/util/packageManager/installPackages.d.ts +18 -0
  1180. package/dist/util/packageManager/installPackages.js +87 -0
  1181. package/dist/util/packageManager/installPackages.js.map +1 -0
  1182. package/dist/util/packageManager/packageManagerChoice.d.ts +29 -0
  1183. package/dist/util/packageManager/packageManagerChoice.js +173 -0
  1184. package/dist/util/packageManager/packageManagerChoice.js.map +1 -0
  1185. package/dist/util/packageManager/upgradePackages.d.ts +17 -0
  1186. package/dist/util/packageManager/upgradePackages.js +69 -0
  1187. package/dist/util/packageManager/upgradePackages.js.map +1 -0
  1188. package/dist/util/pluralize.d.ts +8 -0
  1189. package/dist/util/pluralize.js +11 -0
  1190. package/dist/util/pluralize.js.map +1 -0
  1191. package/dist/util/readModuleVersion.d.ts +8 -0
  1192. package/dist/util/readModuleVersion.js +15 -0
  1193. package/dist/util/readModuleVersion.js.map +1 -0
  1194. package/dist/util/readPackageJson.d.ts +45 -0
  1195. package/dist/util/readPackageJson.js +42 -0
  1196. package/dist/util/readPackageJson.js.map +1 -0
  1197. package/dist/util/readPackageManifest.d.ts +21 -0
  1198. package/dist/util/readPackageManifest.js +46 -0
  1199. package/dist/util/readPackageManifest.js.map +1 -0
  1200. package/dist/util/toInt.d.ts +1 -0
  1201. package/dist/util/toInt.js +9 -0
  1202. package/dist/util/toInt.js.map +1 -0
  1203. package/dist/util/trimHashFromVersion.d.ts +5 -0
  1204. package/dist/util/trimHashFromVersion.js +8 -0
  1205. package/dist/util/trimHashFromVersion.js.map +1 -0
  1206. package/dist/util/validation/ __tests__/validateDocuments.test.js +274 -0
  1207. package/dist/util/validation/ __tests__/validateDocuments.test.js.map +1 -0
  1208. package/dist/util/validation/validateDocumentsUtils.d.ts +12 -0
  1209. package/dist/util/validation/validateDocumentsUtils.js +33 -0
  1210. package/dist/util/validation/validateDocumentsUtils.js.map +1 -0
  1211. package/dist/util/warnAboutMissingAppId.d.ts +7 -0
  1212. package/dist/util/warnAboutMissingAppId.js +11 -0
  1213. package/dist/util/warnAboutMissingAppId.js.map +1 -0
  1214. package/dist/util/workerChannels.d.ts +59 -0
  1215. package/dist/util/workerChannels.js +172 -0
  1216. package/dist/util/workerChannels.js.map +1 -0
  1217. package/dist/utils/migration/resolveMigrationScript.d.ts +44 -0
  1218. package/dist/utils/migration/resolveMigrationScript.js +74 -0
  1219. package/dist/utils/migration/resolveMigrationScript.js.map +1 -0
  1220. package/oclif.config.js +11 -0
  1221. package/oclif.manifest.json +3957 -0
  1222. package/package.json +120 -100
  1223. package/bin/dev.js +0 -30
  1224. package/bin/sanity +0 -14
  1225. package/lib/_chunks-cjs/cli.js +0 -70981
  1226. package/lib/_chunks-cjs/cli.js.map +0 -1
  1227. package/lib/_chunks-cjs/cliWorker.js +0 -19
  1228. package/lib/_chunks-cjs/cliWorker.js.map +0 -1
  1229. package/lib/_chunks-cjs/generateAction.js +0 -162
  1230. package/lib/_chunks-cjs/generateAction.js.map +0 -1
  1231. package/lib/_chunks-cjs/getCliConfig.js +0 -89
  1232. package/lib/_chunks-cjs/getCliConfig.js.map +0 -1
  1233. package/lib/_chunks-cjs/index.js +0 -31
  1234. package/lib/_chunks-cjs/index.js.map +0 -1
  1235. package/lib/_chunks-cjs/journeyConfig.js +0 -113
  1236. package/lib/_chunks-cjs/journeyConfig.js.map +0 -1
  1237. package/lib/_chunks-cjs/loadEnv.js +0 -347
  1238. package/lib/_chunks-cjs/loadEnv.js.map +0 -1
  1239. package/lib/cli.d.ts +0 -28
  1240. package/lib/cli.js +0 -10
  1241. package/lib/cli.js.map +0 -1
  1242. package/lib/index.d.ts +0 -512
  1243. package/lib/index.js +0 -44
  1244. package/lib/index.js.map +0 -1
  1245. package/lib/run.d.ts +0 -1
  1246. package/lib/run.js +0 -8
  1247. package/lib/run.js.map +0 -1
  1248. package/lib/workers/getAndWriteJourneySchema.d.ts +0 -1
  1249. package/lib/workers/getAndWriteJourneySchema.js +0 -4
  1250. package/lib/workers/getAndWriteJourneySchema.js.map +0 -1
  1251. package/lib/workers/getCliConfig.d.ts +0 -1
  1252. package/lib/workers/getCliConfig.js +0 -10
  1253. package/lib/workers/getCliConfig.js.map +0 -1
  1254. package/lib/workers/typegenGenerate.d.ts +0 -23
  1255. package/lib/workers/typegenGenerate.js +0 -47
  1256. package/lib/workers/typegenGenerate.js.map +0 -1
  1257. package/templates/app-quickstart/src/App.css +0 -18
  1258. package/templates/app-quickstart/src/App.tsx +0 -25
  1259. package/templates/app-quickstart/src/ExampleComponent.css +0 -90
  1260. package/templates/app-quickstart/src/ExampleComponent.tsx +0 -37
  1261. package/templates/app-sanity-ui/src/App.tsx +0 -34
  1262. package/templates/app-sanity-ui/src/ExampleComponent.tsx +0 -33
  1263. package/templates/app-sanity-ui/src/SanityUI.tsx +0 -23
  1264. package/templates/blog/README.md +0 -11
  1265. package/templates/blog/schemaTypes/author.js +0 -50
  1266. package/templates/blog/schemaTypes/blockContent.js +0 -67
  1267. package/templates/blog/schemaTypes/category.js +0 -19
  1268. package/templates/blog/schemaTypes/index.js +0 -6
  1269. package/templates/blog/schemaTypes/post.js +0 -65
  1270. package/templates/blog/static/.gitkeep +0 -1
  1271. package/templates/clean/README.md +0 -9
  1272. package/templates/clean/schemaTypes/index.js +0 -1
  1273. package/templates/clean/static/.gitkeep +0 -1
  1274. package/templates/ecommerce/README.md +0 -11
  1275. package/templates/ecommerce/plugins/.gitkeep +0 -1
  1276. package/templates/ecommerce/plugins/barcode-input/BarcodeInput.js +0 -62
  1277. package/templates/ecommerce/plugins/barcode-input/index.js +0 -9
  1278. package/templates/ecommerce/plugins/barcode-input/schemaType.js +0 -60
  1279. package/templates/ecommerce/schemaTypes/blockContent.js +0 -67
  1280. package/templates/ecommerce/schemaTypes/category.js +0 -39
  1281. package/templates/ecommerce/schemaTypes/index.js +0 -23
  1282. package/templates/ecommerce/schemaTypes/locale/localeBlockContent.js +0 -19
  1283. package/templates/ecommerce/schemaTypes/locale/localeString.js +0 -19
  1284. package/templates/ecommerce/schemaTypes/locale/localeText.js +0 -19
  1285. package/templates/ecommerce/schemaTypes/locale/supportedLanguages.js +0 -5
  1286. package/templates/ecommerce/schemaTypes/product.js +0 -83
  1287. package/templates/ecommerce/schemaTypes/productVariant.js +0 -52
  1288. package/templates/ecommerce/schemaTypes/vendor.js +0 -39
  1289. package/templates/ecommerce/static/.gitkeep +0 -1
  1290. package/templates/get-started/README.md +0 -9
  1291. package/templates/get-started/plugins/.gitkeep +0 -1
  1292. package/templates/get-started/plugins/sanity-plugin-tutorial/CustomDefaultLayout.tsx +0 -16
  1293. package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +0 -104
  1294. package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +0 -11
  1295. package/templates/get-started/schemaTypes/index.ts +0 -1
  1296. package/templates/get-started/static/.gitkeep +0 -1
  1297. package/templates/moviedb/README.md +0 -10
  1298. package/templates/moviedb/schemaTypes/blockContent.js +0 -67
  1299. package/templates/moviedb/schemaTypes/castMember.js +0 -37
  1300. package/templates/moviedb/schemaTypes/crewMember.js +0 -52
  1301. package/templates/moviedb/schemaTypes/index.js +0 -22
  1302. package/templates/moviedb/schemaTypes/movie.js +0 -85
  1303. package/templates/moviedb/schemaTypes/person.js +0 -37
  1304. package/templates/moviedb/schemaTypes/plotSummaries.js +0 -20
  1305. package/templates/moviedb/schemaTypes/plotSummary.js +0 -24
  1306. package/templates/moviedb/schemaTypes/screening.js +0 -81
  1307. package/templates/moviedb/static/.gitkeep +0 -1
  1308. package/templates/quickstart/README.md +0 -9
  1309. package/templates/quickstart/schemaTypes/index.js +0 -1
  1310. package/templates/quickstart/static/.gitkeep +0 -1
  1311. package/templates/shared/gitignore.txt +0 -29
  1312. package/templates/shared/tsconfig.json +0 -17
  1313. package/templates/shopify/LICENSE +0 -21
  1314. package/templates/shopify/README.md +0 -85
  1315. package/templates/shopify/components/hotspots/ProductTooltip.tsx +0 -38
  1316. package/templates/shopify/components/icons/Shopify.tsx +0 -22
  1317. package/templates/shopify/components/inputs/CollectionHidden.tsx +0 -24
  1318. package/templates/shopify/components/inputs/PlaceholderString.tsx +0 -20
  1319. package/templates/shopify/components/inputs/ProductHidden.tsx +0 -64
  1320. package/templates/shopify/components/inputs/ProductVariantHidden.tsx +0 -24
  1321. package/templates/shopify/components/inputs/ProxyString.tsx +0 -32
  1322. package/templates/shopify/components/media/ColorTheme.tsx +0 -38
  1323. package/templates/shopify/components/media/ShopifyDocumentStatus.tsx +0 -82
  1324. package/templates/shopify/components/studio/Navbar.tsx +0 -29
  1325. package/templates/shopify/constants.ts +0 -61
  1326. package/templates/shopify/docs/features.md +0 -158
  1327. package/templates/shopify/plugins/customDocumentActions/index.ts +0 -55
  1328. package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +0 -144
  1329. package/templates/shopify/plugins/customDocumentActions/shopifyLink.ts +0 -39
  1330. package/templates/shopify/plugins/customDocumentActions/types.ts +0 -14
  1331. package/templates/shopify/schemaTypes/documents/collection.tsx +0 -143
  1332. package/templates/shopify/schemaTypes/documents/colorTheme.tsx +0 -44
  1333. package/templates/shopify/schemaTypes/documents/page.ts +0 -70
  1334. package/templates/shopify/schemaTypes/documents/product.tsx +0 -132
  1335. package/templates/shopify/schemaTypes/documents/productVariant.tsx +0 -68
  1336. package/templates/shopify/schemaTypes/index.ts +0 -108
  1337. package/templates/shopify/schemaTypes/objects/collection/collectionGroupType.ts +0 -27
  1338. package/templates/shopify/schemaTypes/objects/collection/collectionLinksType.ts +0 -16
  1339. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +0 -49
  1340. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorType.tsx +0 -50
  1341. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeObjectType.ts +0 -40
  1342. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeType.ts +0 -49
  1343. package/templates/shopify/schemaTypes/objects/global/footerType.ts +0 -22
  1344. package/templates/shopify/schemaTypes/objects/global/menuLinksType.ts +0 -21
  1345. package/templates/shopify/schemaTypes/objects/global/menuType.ts +0 -17
  1346. package/templates/shopify/schemaTypes/objects/global/notFoundPageType.ts +0 -37
  1347. package/templates/shopify/schemaTypes/objects/hotspot/imageWithProductHotspotsType.ts +0 -48
  1348. package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +0 -19
  1349. package/templates/shopify/schemaTypes/objects/hotspot/spotType.tsx +0 -60
  1350. package/templates/shopify/schemaTypes/objects/link/linkEmailType.tsx +0 -34
  1351. package/templates/shopify/schemaTypes/objects/link/linkExternalType.tsx +0 -37
  1352. package/templates/shopify/schemaTypes/objects/link/linkInternalType.tsx +0 -33
  1353. package/templates/shopify/schemaTypes/objects/link/linkProductType.tsx +0 -60
  1354. package/templates/shopify/schemaTypes/objects/module/accordionGroupType.ts +0 -33
  1355. package/templates/shopify/schemaTypes/objects/module/accordionType.ts +0 -28
  1356. package/templates/shopify/schemaTypes/objects/module/callToActionType.tsx +0 -85
  1357. package/templates/shopify/schemaTypes/objects/module/calloutType.ts +0 -38
  1358. package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +0 -48
  1359. package/templates/shopify/schemaTypes/objects/module/gridItemType.ts +0 -41
  1360. package/templates/shopify/schemaTypes/objects/module/gridType.ts +0 -28
  1361. package/templates/shopify/schemaTypes/objects/module/heroType.tsx +0 -40
  1362. package/templates/shopify/schemaTypes/objects/module/imageCallToActionType.tsx +0 -19
  1363. package/templates/shopify/schemaTypes/objects/module/imageFeatureType.ts +0 -80
  1364. package/templates/shopify/schemaTypes/objects/module/imageFeaturesType.tsx +0 -51
  1365. package/templates/shopify/schemaTypes/objects/module/instagramType.ts +0 -35
  1366. package/templates/shopify/schemaTypes/objects/module/productFeaturesType.tsx +0 -50
  1367. package/templates/shopify/schemaTypes/objects/module/productReferenceType.tsx +0 -42
  1368. package/templates/shopify/schemaTypes/objects/seoType.ts +0 -31
  1369. package/templates/shopify/schemaTypes/objects/shopify/collectionRuleType.tsx +0 -37
  1370. package/templates/shopify/schemaTypes/objects/shopify/inventoryType.ts +0 -25
  1371. package/templates/shopify/schemaTypes/objects/shopify/optionType.tsx +0 -31
  1372. package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +0 -12
  1373. package/templates/shopify/schemaTypes/objects/shopify/priceRangeType.ts +0 -20
  1374. package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +0 -142
  1375. package/templates/shopify/schemaTypes/objects/shopify/proxyStringType.ts +0 -12
  1376. package/templates/shopify/schemaTypes/objects/shopify/shopType.ts +0 -15
  1377. package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +0 -85
  1378. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +0 -132
  1379. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductVariantType.ts +0 -121
  1380. package/templates/shopify/schemaTypes/portableText/portableTextSimpleType.tsx +0 -45
  1381. package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +0 -52
  1382. package/templates/shopify/schemaTypes/singletons/homeType.ts +0 -49
  1383. package/templates/shopify/schemaTypes/singletons/settingsType.ts +0 -96
  1384. package/templates/shopify/static/.gitkeep +0 -1
  1385. package/templates/shopify/structure/collectionStructure.ts +0 -6
  1386. package/templates/shopify/structure/colorThemeStructure.ts +0 -9
  1387. package/templates/shopify/structure/homeStructure.ts +0 -9
  1388. package/templates/shopify/structure/index.ts +0 -57
  1389. package/templates/shopify/structure/pageStructure.ts +0 -11
  1390. package/templates/shopify/structure/productStructure.ts +0 -51
  1391. package/templates/shopify/structure/settingStructure.ts +0 -9
  1392. package/templates/shopify/utils/blocksToText.ts +0 -20
  1393. package/templates/shopify/utils/defineStructure.ts +0 -11
  1394. package/templates/shopify/utils/getPriceRange.ts +0 -24
  1395. package/templates/shopify/utils/shopifyUrls.ts +0 -22
  1396. package/templates/shopify/utils/validateSlug.ts +0 -18
  1397. package/templates/shopify-online-storefront/README.md +0 -54
  1398. package/templates/shopify-online-storefront/components/icons/Shopify.tsx +0 -22
  1399. package/templates/shopify-online-storefront/components/inputs/CollectionHidden.tsx +0 -23
  1400. package/templates/shopify-online-storefront/components/inputs/PlaceholderString.tsx +0 -25
  1401. package/templates/shopify-online-storefront/components/inputs/ProductHidden.tsx +0 -66
  1402. package/templates/shopify-online-storefront/components/inputs/ProductVariantHidden.tsx +0 -25
  1403. package/templates/shopify-online-storefront/components/inputs/ProxyString.tsx +0 -38
  1404. package/templates/shopify-online-storefront/components/media/ShopifyDocumentStatus.tsx +0 -83
  1405. package/templates/shopify-online-storefront/constants.ts +0 -18
  1406. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +0 -45
  1407. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +0 -144
  1408. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyLink.ts +0 -39
  1409. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/types.ts +0 -14
  1410. package/templates/shopify-online-storefront/schemaTypes/blocks/blockContent.ts +0 -32
  1411. package/templates/shopify-online-storefront/schemaTypes/documents/collection.tsx +0 -83
  1412. package/templates/shopify-online-storefront/schemaTypes/documents/product.tsx +0 -102
  1413. package/templates/shopify-online-storefront/schemaTypes/documents/productVariant.tsx +0 -82
  1414. package/templates/shopify-online-storefront/schemaTypes/index.ts +0 -43
  1415. package/templates/shopify-online-storefront/schemaTypes/objects/accordion.ts +0 -31
  1416. package/templates/shopify-online-storefront/schemaTypes/objects/accordionGroup.ts +0 -35
  1417. package/templates/shopify-online-storefront/schemaTypes/objects/callout.ts +0 -40
  1418. package/templates/shopify-online-storefront/schemaTypes/objects/inventory.ts +0 -30
  1419. package/templates/shopify-online-storefront/schemaTypes/objects/option.ts +0 -30
  1420. package/templates/shopify-online-storefront/schemaTypes/objects/priceRange.ts +0 -22
  1421. package/templates/shopify-online-storefront/schemaTypes/objects/proxyString.ts +0 -11
  1422. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollection.ts +0 -109
  1423. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollectionRule.tsx +0 -45
  1424. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProduct.ts +0 -165
  1425. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProductVariant.ts +0 -151
  1426. package/templates/shopify-online-storefront/structure/collectionStructure.ts +0 -6
  1427. package/templates/shopify-online-storefront/structure/index.ts +0 -37
  1428. package/templates/shopify-online-storefront/structure/productStructure.ts +0 -35
  1429. package/templates/shopify-online-storefront/utils/defineStructure.ts +0 -11
  1430. package/templates/shopify-online-storefront/utils/getPriceRange.ts +0 -24
  1431. package/templates/shopify-online-storefront/utils/shopifyUrls.ts +0 -22
@@ -0,0 +1,1913 @@
1
+ import { runCommand } from '@oclif/test';
2
+ import { getCliConfig } from '@sanity/cli-core';
3
+ import { confirm, input, select } from '@sanity/cli-core/ux';
4
+ import { mockApi, testCommand } from '@sanity/cli-test';
5
+ import nock from 'nock';
6
+ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
7
+ import { testExample } from '~test/helpers/testExample.js';
8
+ import { buildApp } from '../../actions/build/buildApp.js';
9
+ import { buildStudio } from '../../actions/build/buildStudio.js';
10
+ import { checkDir } from '../../actions/deploy/checkDir.js';
11
+ import { USER_APPLICATIONS_API_VERSION } from '../../services/userApplications.js';
12
+ import { dirIsEmptyOrNonExistent } from '../../util/dirIsEmptyOrNonExistent.js';
13
+ import { readModuleVersion } from '../../util/readModuleVersion.js';
14
+ import { DeployCommand } from '../deploy.js';
15
+ vi.mock('../../../../cli-core/src/config/cli/getCliConfig.js', ()=>({
16
+ getCliConfig: vi.fn()
17
+ }));
18
+ vi.mock('../../util/readModuleVersion.js', ()=>({
19
+ readModuleVersion: vi.fn()
20
+ }));
21
+ vi.mock('../../actions/build/buildApp.js', ()=>({
22
+ buildApp: vi.fn()
23
+ }));
24
+ vi.mock('../../actions/build/buildStudio.js', ()=>({
25
+ buildStudio: vi.fn()
26
+ }));
27
+ vi.mock('../../actions/deploy/checkDir.js', ()=>({
28
+ checkDir: vi.fn()
29
+ }));
30
+ vi.mock('@sanity/cli-core/ux', async ()=>{
31
+ const actual = await vi.importActual('@sanity/cli-core/ux');
32
+ return {
33
+ ...actual,
34
+ confirm: vi.fn(),
35
+ input: vi.fn(),
36
+ select: vi.fn()
37
+ };
38
+ });
39
+ vi.mock('../../util/dirIsEmptyOrNonExistent.js', ()=>({
40
+ dirIsEmptyOrNonExistent: vi.fn(()=>true)
41
+ }));
42
+ vi.mock('tar-fs', ()=>({
43
+ pack: vi.fn(()=>{
44
+ return {
45
+ pipe: vi.fn()
46
+ };
47
+ })
48
+ }));
49
+ const mockGetCliConfig = vi.mocked(getCliConfig);
50
+ const mockSelect = vi.mocked(select);
51
+ const mockConfirm = vi.mocked(confirm);
52
+ const mockInput = vi.mocked(input);
53
+ const mockCheckDir = vi.mocked(checkDir);
54
+ const mockDirIsEmptyOrNonExistent = vi.mocked(dirIsEmptyOrNonExistent);
55
+ const mockReadModuleVersion = vi.mocked(readModuleVersion);
56
+ const mockBuildStudio = vi.mocked(buildStudio);
57
+ const mockBuildApp = vi.mocked(buildApp);
58
+ describe('#deploy', ()=>{
59
+ beforeEach(async ()=>{
60
+ // Set up default mocks
61
+ mockReadModuleVersion.mockImplementation(async (sourceDir, moduleName)=>{
62
+ if (moduleName === 'sanity') return '3.0.0' // for studio deployments
63
+ ;
64
+ if (moduleName === '@sanity/sdk-react') return '1.0.0' // for app deployments
65
+ ;
66
+ return '1.0.0';
67
+ });
68
+ mockCheckDir.mockResolvedValue();
69
+ });
70
+ afterEach(()=>{
71
+ vi.clearAllMocks();
72
+ const pending = nock.pendingMocks();
73
+ nock.cleanAll();
74
+ expect(pending, 'pending mocks').toEqual([]);
75
+ });
76
+ test('help text is correct', async ()=>{
77
+ const { stdout } = await runCommand('deploy --help');
78
+ expect(stdout).toMatchInlineSnapshot(`
79
+ "Builds and deploys Sanity Studio or application to Sanity hosting
80
+
81
+ USAGE
82
+ $ sanity deploy [SOURCEDIR] [--auto-updates] [--build] [--minify]
83
+ [--schema-required] [--source-maps] [--verbose] [-y]
84
+
85
+ ARGUMENTS
86
+ [SOURCEDIR] Source directory
87
+
88
+ FLAGS
89
+ -y, --yes Unattended mode, answers "yes" to any "yes/no" prompt
90
+ and otherwise uses defaults
91
+ --[no-]auto-updates Automatically update the studio to the latest version
92
+ --[no-]build Don't build the studio prior to deploy, instead
93
+ deploying the version currently in \`dist/\`
94
+ --[no-]minify Skip minifying built JavaScript (speeds up build,
95
+ increases size of bundle)
96
+ --schema-required Fail-fast deployment if schema store fails
97
+ --source-maps Enable source maps for built bundles (increases size
98
+ of bundle)
99
+ --verbose Enable verbose logging
100
+
101
+ DESCRIPTION
102
+ Builds and deploys Sanity Studio or application to Sanity hosting
103
+
104
+ EXAMPLES
105
+ Build the studio
106
+
107
+ $ sanity deploy
108
+
109
+ Deploys non-minified build with source maps
110
+
111
+ $ sanity deploy --no-minify --source-maps
112
+
113
+ Fail fast on schema store fails - for when other services rely on the stored
114
+ schema
115
+
116
+ $ sanity deploy --schema-required
117
+
118
+ "
119
+ `);
120
+ });
121
+ test('shows an error for invalid flags', async ()=>{
122
+ const { error } = await testCommand(DeployCommand, [
123
+ '--invalid'
124
+ ]);
125
+ expect(error?.message).toContain('Nonexistent flag: --invalid');
126
+ });
127
+ test("should prompt to confirm deleting source directory if it's not empty", async ()=>{
128
+ const cwd = await testExample('basic-app');
129
+ process.cwd = ()=>cwd;
130
+ mockConfirm.mockResolvedValue(true);
131
+ mockDirIsEmptyOrNonExistent.mockResolvedValue(false);
132
+ const appId = 'app-id';
133
+ mockGetCliConfig.mockResolvedValue({
134
+ app: {
135
+ organizationId: 'org-id'
136
+ },
137
+ deployment: {
138
+ appId
139
+ }
140
+ });
141
+ mockApi({
142
+ apiVersion: USER_APPLICATIONS_API_VERSION,
143
+ query: {
144
+ appType: 'coreApp'
145
+ },
146
+ uri: `/user-applications/${appId}`
147
+ }).reply(200, {
148
+ appHost: 'existing-host',
149
+ createdAt: '2024-01-01T00:00:00Z',
150
+ id: appId,
151
+ organizationId: 'org-id',
152
+ projectId: null,
153
+ title: 'Existing App',
154
+ type: 'coreApp',
155
+ updatedAt: '2024-01-01T00:00:00Z',
156
+ urlType: 'internal'
157
+ });
158
+ mockApi({
159
+ apiVersion: USER_APPLICATIONS_API_VERSION,
160
+ method: 'post',
161
+ query: {
162
+ appType: 'coreApp'
163
+ },
164
+ uri: `/user-applications/${appId}/deployments`
165
+ }).reply(200, {
166
+ id: 'deployment-id'
167
+ });
168
+ const { error } = await testCommand(DeployCommand, [
169
+ 'build'
170
+ ], {
171
+ config: {
172
+ root: cwd
173
+ }
174
+ });
175
+ expect(error).toBeUndefined();
176
+ expect(mockConfirm).toHaveBeenCalledWith({
177
+ default: false,
178
+ message: '"./build" is not empty, do you want to proceed?'
179
+ });
180
+ });
181
+ test("should cancel the deployment if the user doesn't want to proceed", async ()=>{
182
+ const cwd = await testExample('basic-app');
183
+ process.cwd = ()=>cwd;
184
+ mockConfirm.mockResolvedValue(false);
185
+ const appId = 'app-id';
186
+ mockGetCliConfig.mockResolvedValue({
187
+ app: {
188
+ organizationId: 'org-id'
189
+ },
190
+ deployment: {
191
+ appId
192
+ }
193
+ });
194
+ const { error } = await testCommand(DeployCommand, [
195
+ 'build'
196
+ ], {
197
+ config: {
198
+ root: cwd
199
+ }
200
+ });
201
+ expect(error?.message).toContain('Cancelled.');
202
+ expect(error?.oclif?.exit).toBe(1);
203
+ });
204
+ describe('app', ()=>{
205
+ test('should re-deploy app if it already exists', async ()=>{
206
+ const cwd = await testExample('basic-app');
207
+ process.cwd = ()=>cwd;
208
+ const appId = 'app-id';
209
+ mockGetCliConfig.mockResolvedValue({
210
+ app: {
211
+ organizationId: 'org-id'
212
+ },
213
+ deployment: {
214
+ appId
215
+ }
216
+ });
217
+ mockApi({
218
+ apiVersion: USER_APPLICATIONS_API_VERSION,
219
+ query: {
220
+ appType: 'coreApp'
221
+ },
222
+ uri: `/user-applications/${appId}`
223
+ }).reply(200, {
224
+ appHost: 'existing-host',
225
+ createdAt: '2024-01-01T00:00:00Z',
226
+ id: appId,
227
+ organizationId: 'org-id',
228
+ projectId: null,
229
+ title: 'Existing App',
230
+ type: 'coreApp',
231
+ updatedAt: '2024-01-01T00:00:00Z',
232
+ urlType: 'internal'
233
+ });
234
+ mockApi({
235
+ apiVersion: USER_APPLICATIONS_API_VERSION,
236
+ method: 'post',
237
+ query: {
238
+ appType: 'coreApp'
239
+ },
240
+ uri: `/user-applications/${appId}/deployments`
241
+ }).reply(200, {
242
+ id: 'deployment-id'
243
+ });
244
+ const { error, stderr, stdout } = await testCommand(DeployCommand, [], {
245
+ config: {
246
+ root: cwd
247
+ }
248
+ });
249
+ expect(error).toBeUndefined();
250
+ expect(stderr).toContain('Checking application info');
251
+ expect(stderr).toContain('Verifying local content');
252
+ expect(stderr).toContain('Deploying...');
253
+ expect(stdout).toContain('Success! Application deployed');
254
+ });
255
+ test('should handle missing @sanity/sdk-react version', async ()=>{
256
+ const cwd = await testExample('basic-app');
257
+ process.cwd = ()=>cwd;
258
+ const appId = 'app-id';
259
+ const organizationId = 'org-id';
260
+ mockReadModuleVersion.mockResolvedValue(null);
261
+ mockGetCliConfig.mockResolvedValue({
262
+ app: {
263
+ organizationId
264
+ },
265
+ deployment: {
266
+ appId
267
+ }
268
+ });
269
+ const { error } = await testCommand(DeployCommand, [], {
270
+ config: {
271
+ root: cwd
272
+ }
273
+ });
274
+ expect(error?.message).toContain('Failed to find installed @sanity/sdk-react version');
275
+ });
276
+ test('should create new user application if none exists', async ()=>{
277
+ const cwd = await testExample('basic-app');
278
+ process.cwd = ()=>cwd;
279
+ const organizationId = 'org-id';
280
+ const newAppId = 'new-app-id';
281
+ const deploymentId = 'deployment-id';
282
+ mockInput.mockResolvedValue('Test App');
283
+ mockGetCliConfig.mockResolvedValue({
284
+ app: {
285
+ organizationId
286
+ }
287
+ });
288
+ mockApi({
289
+ apiVersion: USER_APPLICATIONS_API_VERSION,
290
+ query: {
291
+ appType: 'coreApp',
292
+ organizationId
293
+ },
294
+ uri: `/user-applications`
295
+ }).reply(200, []);
296
+ mockApi({
297
+ apiVersion: USER_APPLICATIONS_API_VERSION,
298
+ method: 'post',
299
+ query: {
300
+ appType: 'coreApp',
301
+ organizationId
302
+ },
303
+ uri: `/user-applications`
304
+ }).reply(200, {
305
+ appHost: 'generated-host',
306
+ createdAt: '2024-01-01T00:00:00Z',
307
+ id: newAppId,
308
+ organizationId,
309
+ projectId: null,
310
+ title: 'Test App',
311
+ type: 'coreApp',
312
+ updatedAt: '2024-01-01T00:00:00Z',
313
+ urlType: 'internal'
314
+ });
315
+ mockApi({
316
+ apiVersion: USER_APPLICATIONS_API_VERSION,
317
+ method: 'post',
318
+ query: {
319
+ appType: 'coreApp'
320
+ },
321
+ uri: `/user-applications/${newAppId}/deployments`
322
+ }).reply(200, {
323
+ id: deploymentId
324
+ });
325
+ const { error, stdout } = await testCommand(DeployCommand, [], {
326
+ config: {
327
+ root: cwd
328
+ }
329
+ });
330
+ expect(error).toBeUndefined();
331
+ expect(stdout).toContain('Success! Application deployed');
332
+ expect(stdout).toContain(`Add the deployment.appId to your sanity.cli.js or sanity.cli.ts file:`);
333
+ expect(stdout).toContain(`deployment: {
334
+ appId: '${newAppId}',`);
335
+ expect(mockInput).toHaveBeenCalledWith({
336
+ message: 'Enter a title for your application:',
337
+ validate: expect.any(Function)
338
+ });
339
+ });
340
+ test('should skip build when --no-build flag is used', async ()=>{
341
+ const cwd = await testExample('basic-app');
342
+ process.cwd = ()=>cwd;
343
+ const existingAppId = 'existing-app-id';
344
+ const organizationId = 'org-id';
345
+ const deploymentId = 'deployment-id';
346
+ mockGetCliConfig.mockResolvedValue({
347
+ app: {
348
+ organizationId
349
+ },
350
+ deployment: {
351
+ appId: existingAppId
352
+ }
353
+ });
354
+ mockApi({
355
+ apiVersion: USER_APPLICATIONS_API_VERSION,
356
+ query: {
357
+ appType: 'coreApp'
358
+ },
359
+ uri: `/user-applications/${existingAppId}`
360
+ }).reply(200, {
361
+ appHost: 'existing-host',
362
+ createdAt: '2024-01-01T00:00:00Z',
363
+ id: existingAppId,
364
+ organizationId,
365
+ projectId: null,
366
+ title: 'Existing App',
367
+ type: 'coreApp',
368
+ updatedAt: '2024-01-01T00:00:00Z',
369
+ urlType: 'internal'
370
+ });
371
+ mockApi({
372
+ apiVersion: USER_APPLICATIONS_API_VERSION,
373
+ method: 'post',
374
+ query: {
375
+ appType: 'coreApp'
376
+ },
377
+ uri: `/user-applications/${existingAppId}/deployments`
378
+ }).reply(200, {
379
+ id: deploymentId
380
+ });
381
+ const { error, stdout } = await testCommand(DeployCommand, [
382
+ '--no-build'
383
+ ], {
384
+ config: {
385
+ root: cwd
386
+ }
387
+ });
388
+ expect(error).toBeUndefined();
389
+ expect(stdout).toContain('Success! Application deployed');
390
+ expect(mockBuildApp).not.toHaveBeenCalled();
391
+ });
392
+ test('should handle directory check errors', async ()=>{
393
+ const cwd = await testExample('basic-app');
394
+ process.cwd = ()=>cwd;
395
+ const existingAppId = 'existing-app-id';
396
+ const organizationId = 'org-id';
397
+ mockCheckDir.mockRejectedValue(new Error('Directory check failed'));
398
+ mockGetCliConfig.mockResolvedValue({
399
+ app: {
400
+ organizationId
401
+ },
402
+ deployment: {
403
+ appId: existingAppId
404
+ }
405
+ });
406
+ mockApi({
407
+ apiVersion: USER_APPLICATIONS_API_VERSION,
408
+ query: {
409
+ appType: 'coreApp'
410
+ },
411
+ uri: `/user-applications/${existingAppId}`
412
+ }).reply(200, {
413
+ appHost: 'existing-host',
414
+ createdAt: '2024-01-01T00:00:00Z',
415
+ id: existingAppId,
416
+ organizationId,
417
+ projectId: null,
418
+ title: 'Existing App',
419
+ type: 'coreApp',
420
+ updatedAt: '2024-01-01T00:00:00Z',
421
+ urlType: 'internal'
422
+ });
423
+ const { error } = await testCommand(DeployCommand, [
424
+ '--no-build'
425
+ ], {
426
+ config: {
427
+ root: cwd
428
+ }
429
+ });
430
+ expect(error?.message).toContain('Error checking directory');
431
+ });
432
+ test('should error when fetching user applications if user doesn’t have org access', async ()=>{
433
+ const cwd = await testExample('basic-app');
434
+ process.cwd = ()=>cwd;
435
+ const appId = 'some-app-id';
436
+ const organizationId = 'org-without-access';
437
+ mockGetCliConfig.mockResolvedValue({
438
+ app: {
439
+ organizationId
440
+ },
441
+ deployment: {
442
+ appId
443
+ }
444
+ });
445
+ // Simulate API returning 403 Forbidden for the given org
446
+ mockApi({
447
+ apiVersion: USER_APPLICATIONS_API_VERSION,
448
+ query: {
449
+ appType: 'coreApp'
450
+ },
451
+ uri: `/user-applications/${appId}`
452
+ }).reply(403, {
453
+ error: 'Forbidden'
454
+ });
455
+ const { error } = await testCommand(DeployCommand, [
456
+ '--no-build'
457
+ ], {
458
+ config: {
459
+ root: cwd
460
+ }
461
+ });
462
+ expect(error?.message).toContain(`You don’t have permission to view applications for the configured organization ID ("${organizationId}")`);
463
+ });
464
+ test('should handle user-applications endpoint errors', async ()=>{
465
+ const cwd = await testExample('basic-app');
466
+ process.cwd = ()=>cwd;
467
+ const existingAppId = 'existing-app-id';
468
+ const organizationId = 'org-id';
469
+ mockGetCliConfig.mockResolvedValue({
470
+ app: {
471
+ organizationId
472
+ },
473
+ deployment: {
474
+ appId: existingAppId
475
+ }
476
+ });
477
+ mockApi({
478
+ apiVersion: USER_APPLICATIONS_API_VERSION,
479
+ query: {
480
+ appType: 'coreApp'
481
+ },
482
+ uri: `/user-applications/${existingAppId}`
483
+ }).reply(500, {
484
+ error: 'Internal server error'
485
+ });
486
+ const { error } = await testCommand(DeployCommand, [
487
+ '--no-build'
488
+ ], {
489
+ config: {
490
+ root: cwd
491
+ }
492
+ });
493
+ expect(error?.message).toContain('Error deploying application');
494
+ });
495
+ test('should handle deployment API errors', async ()=>{
496
+ const cwd = await testExample('basic-app');
497
+ process.cwd = ()=>cwd;
498
+ const existingAppId = 'existing-app-id';
499
+ const organizationId = 'org-id';
500
+ mockGetCliConfig.mockResolvedValue({
501
+ app: {
502
+ organizationId
503
+ },
504
+ deployment: {
505
+ appId: existingAppId
506
+ }
507
+ });
508
+ mockApi({
509
+ apiVersion: USER_APPLICATIONS_API_VERSION,
510
+ query: {
511
+ appType: 'coreApp'
512
+ },
513
+ uri: `/user-applications/${existingAppId}`
514
+ }).reply(200, {
515
+ appHost: 'existing-host',
516
+ createdAt: '2024-01-01T00:00:00Z',
517
+ id: existingAppId,
518
+ organizationId,
519
+ projectId: null,
520
+ title: 'Existing App',
521
+ type: 'coreApp',
522
+ updatedAt: '2024-01-01T00:00:00Z',
523
+ urlType: 'internal'
524
+ });
525
+ mockApi({
526
+ apiVersion: USER_APPLICATIONS_API_VERSION,
527
+ method: 'post',
528
+ query: {
529
+ appType: 'coreApp'
530
+ },
531
+ uri: `/user-applications/${existingAppId}/deployments`
532
+ }).reply(500, {
533
+ error: 'Internal server error'
534
+ });
535
+ const { error } = await testCommand(DeployCommand, [
536
+ '--no-build'
537
+ ], {
538
+ config: {
539
+ root: cwd
540
+ }
541
+ });
542
+ expect(error?.message).toContain('Error deploying application');
543
+ });
544
+ test('should show an error if deployment.appId is configured but the application does not exist', async ()=>{
545
+ const cwd = await testExample('basic-app');
546
+ process.cwd = ()=>cwd;
547
+ const nonExistentAppId = 'non-existent-app-id';
548
+ const organizationId = 'org-id';
549
+ mockGetCliConfig.mockResolvedValue({
550
+ app: {
551
+ organizationId
552
+ },
553
+ deployment: {
554
+ appId: nonExistentAppId
555
+ }
556
+ });
557
+ // Simulate API returning no user application for the given app.id
558
+ mockApi({
559
+ apiVersion: USER_APPLICATIONS_API_VERSION,
560
+ query: {
561
+ appType: 'coreApp'
562
+ },
563
+ uri: `/user-applications/${nonExistentAppId}`
564
+ }).reply(404, {
565
+ error: 'Not found'
566
+ });
567
+ const { error } = await testCommand(DeployCommand, [
568
+ '--no-build'
569
+ ], {
570
+ config: {
571
+ root: cwd
572
+ }
573
+ });
574
+ expect(error?.message).toContain('The `appId` provided in your configuration’s `deployment` object cannot be found in your organization');
575
+ });
576
+ test('should show an error if deployment.appId and app.id (deprecated) are both in use', async ()=>{
577
+ const cwd = await testExample('basic-app');
578
+ process.cwd = ()=>cwd;
579
+ const appId = 'app-id';
580
+ const organizationId = 'org-id';
581
+ mockGetCliConfig.mockResolvedValue({
582
+ app: {
583
+ id: appId,
584
+ organizationId
585
+ },
586
+ deployment: {
587
+ appId: appId
588
+ }
589
+ });
590
+ const { error } = await testCommand(DeployCommand, [
591
+ '--no-build'
592
+ ], {
593
+ config: {
594
+ root: cwd
595
+ }
596
+ });
597
+ expect(error?.message).toContain('Found both app.id (deprecated) and deployment.appId in your application configuration.\n\nPlease remove app.id from your sanity.cli.js or sanity.cli.ts file.');
598
+ });
599
+ test('should show a warning if app.id (deprecated) is used', async ()=>{
600
+ const cwd = await testExample('basic-app');
601
+ process.cwd = ()=>cwd;
602
+ const appId = 'app-id';
603
+ const organizationId = 'org-id';
604
+ mockGetCliConfig.mockResolvedValue({
605
+ app: {
606
+ id: appId,
607
+ organizationId
608
+ }
609
+ });
610
+ const { stderr } = await testCommand(DeployCommand, [
611
+ '--no-build'
612
+ ], {
613
+ config: {
614
+ root: cwd
615
+ }
616
+ });
617
+ expect(stderr).toContain('The `app.id` config has moved to `deployment.appId`.');
618
+ });
619
+ test('should handle app creation with retry when host is taken', async ()=>{
620
+ const cwd = await testExample('basic-app');
621
+ process.cwd = ()=>cwd;
622
+ const organizationId = 'org-id';
623
+ const newAppId = 'new-app-id';
624
+ const deploymentId = 'deployment-id';
625
+ mockInput.mockResolvedValue('Test App');
626
+ mockGetCliConfig.mockResolvedValue({
627
+ app: {
628
+ organizationId
629
+ }
630
+ });
631
+ mockApi({
632
+ apiVersion: USER_APPLICATIONS_API_VERSION,
633
+ query: {
634
+ appType: 'coreApp',
635
+ organizationId
636
+ },
637
+ uri: `/user-applications`
638
+ }).reply(200, []);
639
+ mockApi({
640
+ apiVersion: USER_APPLICATIONS_API_VERSION,
641
+ method: 'post',
642
+ query: {
643
+ appType: 'coreApp',
644
+ organizationId
645
+ },
646
+ uri: `/user-applications`
647
+ }).once().reply(409, {
648
+ message: 'App host already taken',
649
+ statusCode: 409
650
+ });
651
+ mockApi({
652
+ apiVersion: USER_APPLICATIONS_API_VERSION,
653
+ method: 'post',
654
+ query: {
655
+ appType: 'coreApp',
656
+ organizationId
657
+ },
658
+ uri: `/user-applications`
659
+ }).once().reply(200, {
660
+ appHost: 'generated-host-2',
661
+ createdAt: '2024-01-01T00:00:00Z',
662
+ id: newAppId,
663
+ organizationId,
664
+ projectId: null,
665
+ title: 'Test App',
666
+ type: 'coreApp',
667
+ updatedAt: '2024-01-01T00:00:00Z',
668
+ urlType: 'internal'
669
+ });
670
+ mockApi({
671
+ apiVersion: USER_APPLICATIONS_API_VERSION,
672
+ method: 'post',
673
+ query: {
674
+ appType: 'coreApp'
675
+ },
676
+ uri: `/user-applications/${newAppId}/deployments`
677
+ }).reply(200, {
678
+ id: deploymentId
679
+ });
680
+ const { error, stdout } = await testCommand(DeployCommand, [], {
681
+ config: {
682
+ root: cwd
683
+ }
684
+ });
685
+ expect(error).toBeUndefined();
686
+ expect(stdout).toContain('Success! Application deployed');
687
+ });
688
+ test('should handle app creation failure with non-retryable error', async ()=>{
689
+ const cwd = await testExample('basic-app');
690
+ process.cwd = ()=>cwd;
691
+ const organizationId = 'org-id';
692
+ mockInput.mockResolvedValue('Test App');
693
+ mockGetCliConfig.mockResolvedValue({
694
+ app: {
695
+ organizationId
696
+ }
697
+ });
698
+ mockApi({
699
+ apiVersion: USER_APPLICATIONS_API_VERSION,
700
+ query: {
701
+ appType: 'coreApp',
702
+ organizationId
703
+ },
704
+ uri: `/user-applications`
705
+ }).reply(200, []);
706
+ mockApi({
707
+ apiVersion: USER_APPLICATIONS_API_VERSION,
708
+ method: 'post',
709
+ query: {
710
+ appType: 'coreApp',
711
+ organizationId
712
+ },
713
+ uri: `/user-applications`
714
+ }).reply(500, {
715
+ message: 'Internal server error',
716
+ statusCode: 500
717
+ });
718
+ const { error } = await testCommand(DeployCommand, [], {
719
+ config: {
720
+ root: cwd
721
+ }
722
+ });
723
+ expect(error?.message).toContain('Error deploying application');
724
+ });
725
+ test('should handle findUserApplicationForApp API errors', async ()=>{
726
+ const cwd = await testExample('basic-app');
727
+ process.cwd = ()=>cwd;
728
+ const existingAppId = 'existing-app-id';
729
+ const organizationId = 'org-id';
730
+ mockGetCliConfig.mockResolvedValue({
731
+ app: {
732
+ organizationId
733
+ },
734
+ deployment: {
735
+ appId: existingAppId
736
+ }
737
+ });
738
+ mockApi({
739
+ apiVersion: USER_APPLICATIONS_API_VERSION,
740
+ query: {
741
+ appType: 'coreApp'
742
+ },
743
+ uri: `/user-applications/${existingAppId}`
744
+ }).reply(500, {
745
+ error: 'Internal server error'
746
+ });
747
+ const { error } = await testCommand(DeployCommand, [
748
+ '--no-build'
749
+ ], {
750
+ config: {
751
+ root: cwd
752
+ }
753
+ });
754
+ expect(error?.message).toContain('Error deploying application');
755
+ expect(error?.oclif?.exit).toBe(1);
756
+ });
757
+ test('should test input validation for app title', async ()=>{
758
+ const cwd = await testExample('basic-app');
759
+ process.cwd = ()=>cwd;
760
+ const organizationId = 'org-id';
761
+ const newAppId = 'new-app-id';
762
+ const deploymentId = 'deployment-id';
763
+ mockInput.mockResolvedValue('Valid App Title');
764
+ mockGetCliConfig.mockResolvedValue({
765
+ app: {
766
+ organizationId
767
+ }
768
+ });
769
+ mockApi({
770
+ apiVersion: USER_APPLICATIONS_API_VERSION,
771
+ query: {
772
+ appType: 'coreApp',
773
+ organizationId
774
+ },
775
+ uri: `/user-applications`
776
+ }).reply(200, []);
777
+ mockApi({
778
+ apiVersion: USER_APPLICATIONS_API_VERSION,
779
+ method: 'post',
780
+ query: {
781
+ appType: 'coreApp',
782
+ organizationId
783
+ },
784
+ uri: `/user-applications`
785
+ }).reply(200, {
786
+ appHost: 'generated-host',
787
+ createdAt: '2024-01-01T00:00:00Z',
788
+ id: newAppId,
789
+ organizationId,
790
+ projectId: null,
791
+ title: 'Valid App Title',
792
+ type: 'coreApp',
793
+ updatedAt: '2024-01-01T00:00:00Z',
794
+ urlType: 'internal'
795
+ });
796
+ mockApi({
797
+ apiVersion: USER_APPLICATIONS_API_VERSION,
798
+ method: 'post',
799
+ query: {
800
+ appType: 'coreApp'
801
+ },
802
+ uri: `/user-applications/${newAppId}/deployments`
803
+ }).reply(200, {
804
+ id: deploymentId
805
+ });
806
+ const { error } = await testCommand(DeployCommand, [], {
807
+ config: {
808
+ root: cwd
809
+ }
810
+ });
811
+ expect(error).toBeUndefined();
812
+ expect(mockInput).toHaveBeenCalledWith({
813
+ message: 'Enter a title for your application:',
814
+ validate: expect.any(Function)
815
+ });
816
+ });
817
+ test('should allow selecting from list of apps', async ()=>{
818
+ const cwd = await testExample('basic-app');
819
+ process.cwd = ()=>cwd;
820
+ const organizationId = 'org-id';
821
+ const existingAppId1 = 'existing-app-id-1';
822
+ const existingAppId2 = 'existing-app-id-2';
823
+ const deploymentId = 'deployment-id';
824
+ mockGetCliConfig.mockResolvedValue({
825
+ app: {
826
+ organizationId
827
+ }
828
+ });
829
+ mockApi({
830
+ apiVersion: USER_APPLICATIONS_API_VERSION,
831
+ query: {
832
+ appType: 'coreApp',
833
+ organizationId
834
+ },
835
+ uri: `/user-applications`
836
+ }).reply(200, [
837
+ {
838
+ appHost: 'existing-host-1',
839
+ createdAt: '2024-01-01T00:00:00Z',
840
+ id: existingAppId1,
841
+ organizationId,
842
+ projectId: null,
843
+ title: 'Existing App 1',
844
+ type: 'coreApp',
845
+ updatedAt: '2024-01-01T00:00:00Z',
846
+ urlType: 'internal'
847
+ },
848
+ {
849
+ appHost: 'existing-host-2',
850
+ createdAt: '2024-01-01T00:00:00Z',
851
+ id: existingAppId2,
852
+ organizationId,
853
+ projectId: null,
854
+ title: 'Existing App 2',
855
+ type: 'coreApp',
856
+ updatedAt: '2024-01-01T00:00:00Z',
857
+ urlType: 'internal'
858
+ }
859
+ ]);
860
+ mockApi({
861
+ apiVersion: USER_APPLICATIONS_API_VERSION,
862
+ method: 'post',
863
+ query: {
864
+ appType: 'coreApp'
865
+ },
866
+ uri: `/user-applications/${existingAppId2}/deployments`
867
+ }).reply(200, {
868
+ id: deploymentId
869
+ });
870
+ mockSelect.mockResolvedValue('existing-host-2');
871
+ const { error, stdout } = await testCommand(DeployCommand, [], {
872
+ config: {
873
+ root: cwd
874
+ }
875
+ });
876
+ expect(error).toBeUndefined();
877
+ expect(stdout).toContain('Success! Application deployed');
878
+ expect(stdout).toContain(`Add the deployment.appId to your sanity.cli.js or sanity.cli.ts file:`);
879
+ expect(stdout).toContain(`deployment: {
880
+ appId: '${existingAppId2}',`);
881
+ });
882
+ test('should allow creating a new app by selecting from list of apps', async ()=>{
883
+ const cwd = await testExample('basic-app');
884
+ process.cwd = ()=>cwd;
885
+ const organizationId = 'org-id';
886
+ const existingAppId1 = 'existing-app-id-1';
887
+ const existingAppId2 = 'existing-app-id-2';
888
+ const newAppId = 'new-app-id';
889
+ const deploymentId = 'deployment-id';
890
+ mockGetCliConfig.mockResolvedValue({
891
+ app: {
892
+ organizationId
893
+ }
894
+ });
895
+ mockApi({
896
+ apiVersion: USER_APPLICATIONS_API_VERSION,
897
+ query: {
898
+ appType: 'coreApp',
899
+ organizationId
900
+ },
901
+ uri: `/user-applications`
902
+ }).reply(200, [
903
+ {
904
+ appHost: 'existing-host-1',
905
+ createdAt: '2024-01-01T00:00:00Z',
906
+ id: existingAppId1,
907
+ organizationId,
908
+ projectId: null,
909
+ title: 'Existing App 1',
910
+ type: 'coreApp',
911
+ updatedAt: '2024-01-01T00:00:00Z',
912
+ urlType: 'internal'
913
+ },
914
+ {
915
+ appHost: 'existing-host-2',
916
+ createdAt: '2024-01-01T00:00:00Z',
917
+ id: existingAppId2,
918
+ organizationId,
919
+ projectId: null,
920
+ title: 'Existing App 2',
921
+ type: 'coreApp',
922
+ updatedAt: '2024-01-01T00:00:00Z',
923
+ urlType: 'internal'
924
+ }
925
+ ]);
926
+ mockApi({
927
+ apiVersion: USER_APPLICATIONS_API_VERSION,
928
+ method: 'post',
929
+ query: {
930
+ appType: 'coreApp',
931
+ organizationId
932
+ },
933
+ uri: `/user-applications`
934
+ }).reply(200, {
935
+ appHost: 'generated-host',
936
+ createdAt: '2024-01-01T00:00:00Z',
937
+ id: newAppId,
938
+ organizationId,
939
+ projectId: null,
940
+ title: 'Test App',
941
+ type: 'coreApp',
942
+ updatedAt: '2024-01-01T00:00:00Z',
943
+ urlType: 'internal'
944
+ });
945
+ mockApi({
946
+ apiVersion: USER_APPLICATIONS_API_VERSION,
947
+ method: 'post',
948
+ query: {
949
+ appType: 'coreApp'
950
+ },
951
+ uri: `/user-applications/${newAppId}/deployments`
952
+ }).reply(200, {
953
+ id: deploymentId
954
+ });
955
+ mockSelect.mockResolvedValue('NEW_APP');
956
+ const { error, stdout } = await testCommand(DeployCommand, [], {
957
+ config: {
958
+ root: cwd
959
+ }
960
+ });
961
+ expect(error).toBeUndefined();
962
+ expect(stdout).toContain('Success! Application deployed');
963
+ expect(stdout).toContain(`Add the deployment.appId to your sanity.cli.js or sanity.cli.ts file:`);
964
+ expect(stdout).toContain(`deployment: {
965
+ appId: '${newAppId}',`);
966
+ });
967
+ test('should throw an error if organizationId is not set', async ()=>{
968
+ const cwd = await testExample('basic-app');
969
+ process.cwd = ()=>cwd;
970
+ mockGetCliConfig.mockResolvedValue({
971
+ app: {
972
+ organizationId: undefined
973
+ }
974
+ });
975
+ const { error } = await testCommand(DeployCommand, [], {
976
+ config: {
977
+ root: cwd
978
+ }
979
+ });
980
+ expect(error?.message).toContain('sanity.cli.ts does not contain an organization identifier ("app.organizationId"), which is required for the Sanity CLI to communicate with the Sanity API');
981
+ expect(error?.oclif?.exit).toBe(1);
982
+ });
983
+ });
984
+ describe('studio', ()=>{
985
+ test('should handle missing sanity version', async ()=>{
986
+ const cwd = await testExample('basic-studio');
987
+ process.cwd = ()=>cwd;
988
+ mockReadModuleVersion.mockResolvedValue(null);
989
+ mockGetCliConfig.mockResolvedValue({
990
+ studioHost: 'existing-studio'
991
+ });
992
+ const { error } = await testCommand(DeployCommand, [], {
993
+ config: {
994
+ root: cwd
995
+ }
996
+ });
997
+ expect(error?.message).toContain('Failed to find installed sanity version');
998
+ });
999
+ test('should handle directory check errors', async ()=>{
1000
+ const cwd = await testExample('basic-app');
1001
+ process.cwd = ()=>cwd;
1002
+ const projectId = 'test-project-id';
1003
+ const studioHost = 'existing-studio';
1004
+ const studioAppId = 'studio-app-id';
1005
+ mockCheckDir.mockRejectedValue(new Error('Directory check failed'));
1006
+ mockGetCliConfig.mockResolvedValue({
1007
+ api: {
1008
+ projectId
1009
+ },
1010
+ studioHost
1011
+ });
1012
+ mockApi({
1013
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1014
+ query: {
1015
+ appHost: studioHost,
1016
+ appType: 'studio'
1017
+ },
1018
+ uri: `/projects/${projectId}/user-applications`
1019
+ }).reply(200, {
1020
+ appHost: studioHost,
1021
+ createdAt: '2024-01-01T00:00:00Z',
1022
+ id: studioAppId,
1023
+ projectId,
1024
+ title: 'Existing Studio',
1025
+ type: 'studio',
1026
+ updatedAt: '2024-01-01T00:00:00Z',
1027
+ urlType: 'internal'
1028
+ });
1029
+ const { error } = await testCommand(DeployCommand, [
1030
+ '--no-build'
1031
+ ], {
1032
+ config: {
1033
+ root: cwd
1034
+ }
1035
+ });
1036
+ expect(error?.message).toContain('Error checking directory');
1037
+ });
1038
+ test('should re-deploy studio if it already exists', async ()=>{
1039
+ const cwd = await testExample('basic-studio');
1040
+ process.cwd = ()=>cwd;
1041
+ const projectId = 'test-project-id';
1042
+ const studioHost = 'existing-studio';
1043
+ const studioAppId = 'studio-app-id';
1044
+ const deploymentId = 'deployment-id';
1045
+ mockGetCliConfig.mockResolvedValue({
1046
+ api: {
1047
+ projectId
1048
+ },
1049
+ studioHost
1050
+ });
1051
+ mockApi({
1052
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1053
+ query: {
1054
+ appHost: studioHost,
1055
+ appType: 'studio'
1056
+ },
1057
+ uri: `/projects/${projectId}/user-applications`
1058
+ }).reply(200, {
1059
+ appHost: studioHost,
1060
+ createdAt: '2024-01-01T00:00:00Z',
1061
+ id: studioAppId,
1062
+ projectId,
1063
+ title: 'Existing Studio',
1064
+ type: 'studio',
1065
+ updatedAt: '2024-01-01T00:00:00Z',
1066
+ urlType: 'internal'
1067
+ });
1068
+ mockApi({
1069
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1070
+ method: 'post',
1071
+ query: {
1072
+ appType: 'studio'
1073
+ },
1074
+ uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`
1075
+ }).reply(200, {
1076
+ id: deploymentId
1077
+ });
1078
+ const { error, stderr, stdout } = await testCommand(DeployCommand, [], {
1079
+ config: {
1080
+ root: cwd
1081
+ }
1082
+ });
1083
+ expect(error).toBeUndefined();
1084
+ expect(stderr).toContain('Checking project info');
1085
+ expect(stderr).toContain('Verifying local content');
1086
+ expect(stderr).toContain('Deploying to sanity.studio');
1087
+ expect(stdout).toContain('Success! Studio deployed');
1088
+ });
1089
+ test('should create new studio hostname when studioHost is provided but does not exist', async ()=>{
1090
+ const cwd = await testExample('basic-studio');
1091
+ process.cwd = ()=>cwd;
1092
+ mockGetCliConfig.mockResolvedValue({
1093
+ api: {
1094
+ projectId: 'test-project-id'
1095
+ },
1096
+ studioHost: 'new-studio-host'
1097
+ });
1098
+ mockApi({
1099
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1100
+ query: {
1101
+ appHost: 'new-studio-host',
1102
+ appType: 'studio'
1103
+ },
1104
+ uri: `/projects/test-project-id/user-applications`
1105
+ }).reply(404, {
1106
+ message: 'Not found'
1107
+ });
1108
+ mockApi({
1109
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1110
+ method: 'post',
1111
+ query: {
1112
+ appType: 'studio'
1113
+ },
1114
+ uri: `/projects/test-project-id/user-applications`
1115
+ }).reply(200, {
1116
+ appHost: 'new-studio-host',
1117
+ createdAt: '2024-01-01T00:00:00Z',
1118
+ id: 'new-studio-app-id',
1119
+ projectId: 'test-project-id',
1120
+ title: 'New Studio',
1121
+ type: 'studio',
1122
+ updatedAt: '2024-01-01T00:00:00Z',
1123
+ urlType: 'internal'
1124
+ });
1125
+ mockApi({
1126
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1127
+ method: 'post',
1128
+ query: {
1129
+ appType: 'studio'
1130
+ },
1131
+ uri: `/projects/test-project-id/user-applications/new-studio-app-id/deployments`
1132
+ }).reply(200, {
1133
+ id: 'deployment-id'
1134
+ });
1135
+ const { error, stdout } = await testCommand(DeployCommand, [], {
1136
+ config: {
1137
+ root: cwd
1138
+ }
1139
+ });
1140
+ expect(error).toBeUndefined();
1141
+ expect(stdout).toContain('Success! Studio deployed');
1142
+ expect(stdout).toContain('Your project has not been assigned a studio hostname');
1143
+ expect(stdout).toContain('Creating https://new-studio-host.sanity.studio');
1144
+ });
1145
+ test('should handle studio hostname creation failure when name is taken', async ()=>{
1146
+ const cwd = await testExample('basic-studio');
1147
+ process.cwd = ()=>cwd;
1148
+ const projectId = 'test-project-id';
1149
+ const studioHost = 'taken-studio-host';
1150
+ mockGetCliConfig.mockResolvedValue({
1151
+ api: {
1152
+ projectId
1153
+ },
1154
+ studioHost
1155
+ });
1156
+ mockApi({
1157
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1158
+ query: {
1159
+ appHost: studioHost,
1160
+ appType: 'studio'
1161
+ },
1162
+ uri: `/projects/${projectId}/user-applications`
1163
+ }).reply(404, {
1164
+ message: 'Not found'
1165
+ });
1166
+ mockApi({
1167
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1168
+ method: 'post',
1169
+ query: {
1170
+ appType: 'studio'
1171
+ },
1172
+ uri: `/projects/${projectId}/user-applications`
1173
+ }).reply(409, {
1174
+ message: 'Studio hostname already taken',
1175
+ statusCode: 409
1176
+ });
1177
+ const { error } = await testCommand(DeployCommand, [], {
1178
+ config: {
1179
+ root: cwd
1180
+ }
1181
+ });
1182
+ expect(error?.message).toContain('Studio hostname already taken');
1183
+ expect(error?.oclif?.exit).toBe(1);
1184
+ });
1185
+ test('should allow selecting from existing studio hostnames', async ()=>{
1186
+ const cwd = await testExample('basic-studio');
1187
+ process.cwd = ()=>cwd;
1188
+ const projectId = 'test-project-id';
1189
+ mockGetCliConfig.mockResolvedValue({
1190
+ api: {
1191
+ projectId
1192
+ }
1193
+ });
1194
+ const studioOneId = 'studio-one-id';
1195
+ const studioTwoId = 'studio-two-id';
1196
+ const deploymentId = 'deployment-id';
1197
+ mockApi({
1198
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1199
+ query: {
1200
+ appType: 'studio'
1201
+ },
1202
+ uri: `/projects/${projectId}/user-applications`
1203
+ }).reply(200, [
1204
+ {
1205
+ appHost: 'studio-one',
1206
+ createdAt: '2024-01-01T00:00:00Z',
1207
+ id: studioOneId,
1208
+ projectId,
1209
+ title: 'Studio One',
1210
+ type: 'studio',
1211
+ updatedAt: '2024-01-01T00:00:00Z',
1212
+ urlType: 'internal'
1213
+ },
1214
+ {
1215
+ appHost: 'studio-two',
1216
+ createdAt: '2024-01-01T00:00:00Z',
1217
+ id: studioTwoId,
1218
+ projectId,
1219
+ title: 'Studio Two',
1220
+ type: 'studio',
1221
+ updatedAt: '2024-01-01T00:00:00Z',
1222
+ urlType: 'internal'
1223
+ }
1224
+ ]);
1225
+ mockApi({
1226
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1227
+ method: 'post',
1228
+ query: {
1229
+ appType: 'studio'
1230
+ },
1231
+ uri: `/projects/${projectId}/user-applications/${studioTwoId}/deployments`
1232
+ }).reply(200, {
1233
+ id: deploymentId,
1234
+ location: 'https://studio-two.sanity.studio'
1235
+ });
1236
+ mockSelect.mockResolvedValue('studio-two');
1237
+ const { error, stdout } = await testCommand(DeployCommand, [], {
1238
+ config: {
1239
+ root: cwd
1240
+ }
1241
+ });
1242
+ expect(error).toBeUndefined();
1243
+ expect(stdout).toContain('Success! Studio deployed to https://studio-two.sanity.studio');
1244
+ expect(mockSelect).toHaveBeenCalledWith({
1245
+ choices: [
1246
+ {
1247
+ name: 'Create new studio hostname',
1248
+ value: 'NEW_STUDIO'
1249
+ },
1250
+ expect.any(Object),
1251
+ {
1252
+ name: 'Studio One',
1253
+ value: 'studio-one'
1254
+ },
1255
+ {
1256
+ name: 'Studio Two',
1257
+ value: 'studio-two'
1258
+ }
1259
+ ],
1260
+ message: 'Select existing studio hostname, or create a new one'
1261
+ });
1262
+ });
1263
+ test('should allow creating new studio hostname from selection menu', async ()=>{
1264
+ const cwd = await testExample('basic-studio');
1265
+ process.cwd = ()=>cwd;
1266
+ const projectId = 'test-project-id';
1267
+ const existingStudioId = 'existing-studio-id';
1268
+ const newStudioFromMenuId = 'new-studio-from-menu-id';
1269
+ const deploymentId = 'deployment-id';
1270
+ mockGetCliConfig.mockResolvedValue({
1271
+ api: {
1272
+ projectId
1273
+ }
1274
+ });
1275
+ mockApi({
1276
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1277
+ query: {
1278
+ appType: 'studio'
1279
+ },
1280
+ uri: `/projects/${projectId}/user-applications`
1281
+ }).once().reply(200, [
1282
+ {
1283
+ appHost: 'existing-studio',
1284
+ createdAt: '2024-01-01T00:00:00Z',
1285
+ id: existingStudioId,
1286
+ projectId,
1287
+ title: 'Existing Studio',
1288
+ type: 'studio',
1289
+ updatedAt: '2024-01-01T00:00:00Z',
1290
+ urlType: 'internal'
1291
+ }
1292
+ ]);
1293
+ mockApi({
1294
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1295
+ method: 'post',
1296
+ query: {
1297
+ appType: 'studio'
1298
+ },
1299
+ uri: `/projects/${projectId}/user-applications`
1300
+ }).reply(200, {
1301
+ appHost: 'new-studio-from-menu',
1302
+ createdAt: '2024-01-01T00:00:00Z',
1303
+ id: newStudioFromMenuId,
1304
+ projectId,
1305
+ title: 'New Studio From Menu',
1306
+ type: 'studio',
1307
+ updatedAt: '2024-01-01T00:00:00Z',
1308
+ urlType: 'internal'
1309
+ });
1310
+ mockApi({
1311
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1312
+ method: 'post',
1313
+ query: {
1314
+ appType: 'studio'
1315
+ },
1316
+ uri: `/projects/${projectId}/user-applications/${newStudioFromMenuId}/deployments`
1317
+ }).reply(200, {
1318
+ id: deploymentId
1319
+ });
1320
+ mockSelect.mockResolvedValue('NEW_STUDIO');
1321
+ mockInput.mockImplementation(({ validate })=>{
1322
+ const promise = (async ()=>{
1323
+ if (validate) {
1324
+ await validate('new-studio-from-menu');
1325
+ }
1326
+ return 'new-studio-from-menu';
1327
+ })();
1328
+ promise.cancel = ()=>{};
1329
+ return promise;
1330
+ });
1331
+ const { error, stdout } = await testCommand(DeployCommand, [], {
1332
+ config: {
1333
+ root: cwd
1334
+ }
1335
+ });
1336
+ expect(error).toBeUndefined();
1337
+ expect(stdout).toContain('Success! Studio deployed');
1338
+ expect(mockInput).toHaveBeenCalledWith({
1339
+ message: 'Studio hostname (<value>.sanity.studio):',
1340
+ validate: expect.any(Function)
1341
+ });
1342
+ });
1343
+ test('should handle input validation with retry for studio hostname creation', async ()=>{
1344
+ const cwd = await testExample('basic-studio');
1345
+ process.cwd = ()=>cwd;
1346
+ const projectId = 'test-project-id';
1347
+ const validStudioId = 'valid-studio-id';
1348
+ const deploymentId = 'deployment-id';
1349
+ mockInput.mockImplementation(({ validate })=>{
1350
+ const promise = (async ()=>{
1351
+ if (validate) {
1352
+ // First attempt with a name that will be taken (triggers 409)
1353
+ let result = await validate('taken-name');
1354
+ if (result !== true) {
1355
+ // Name was taken, try again with a valid name (triggers 200)
1356
+ result = await validate('valid-name');
1357
+ }
1358
+ }
1359
+ return 'valid-name';
1360
+ })();
1361
+ promise.cancel = ()=>{};
1362
+ return promise;
1363
+ });
1364
+ mockGetCliConfig.mockResolvedValue({
1365
+ api: {
1366
+ projectId
1367
+ }
1368
+ });
1369
+ mockApi({
1370
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1371
+ query: {
1372
+ appType: 'studio'
1373
+ },
1374
+ uri: `/projects/${projectId}/user-applications`
1375
+ }).reply(200, []);
1376
+ // First API call fails (hostname taken)
1377
+ mockApi({
1378
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1379
+ method: 'post',
1380
+ query: {
1381
+ appType: 'studio'
1382
+ },
1383
+ uri: `/projects/${projectId}/user-applications`
1384
+ }).once().reply(409, {
1385
+ message: 'Studio hostname already taken',
1386
+ statusCode: 409
1387
+ });
1388
+ // Second API call succeeds
1389
+ mockApi({
1390
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1391
+ method: 'post',
1392
+ query: {
1393
+ appType: 'studio'
1394
+ },
1395
+ uri: `/projects/${projectId}/user-applications`
1396
+ }).once().reply(200, {
1397
+ appHost: 'valid-name',
1398
+ createdAt: '2024-01-01T00:00:00Z',
1399
+ id: validStudioId,
1400
+ projectId,
1401
+ title: 'Valid Studio',
1402
+ type: 'studio',
1403
+ updatedAt: '2024-01-01T00:00:00Z',
1404
+ urlType: 'internal'
1405
+ });
1406
+ mockApi({
1407
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1408
+ method: 'post',
1409
+ query: {
1410
+ appType: 'studio'
1411
+ },
1412
+ uri: `/projects/${projectId}/user-applications/${validStudioId}/deployments`
1413
+ }).reply(200, {
1414
+ id: deploymentId
1415
+ });
1416
+ const { error, stdout } = await testCommand(DeployCommand, [], {
1417
+ config: {
1418
+ root: cwd
1419
+ }
1420
+ });
1421
+ expect(error).toBeUndefined();
1422
+ expect(stdout).toContain('Success! Studio deployed');
1423
+ });
1424
+ test('should handle input validation fails with unknown error', async ()=>{
1425
+ const cwd = await testExample('basic-studio');
1426
+ process.cwd = ()=>cwd;
1427
+ const projectId = 'test-project-id';
1428
+ mockInput.mockImplementation(({ validate })=>{
1429
+ const promise = (async ()=>{
1430
+ if (validate) {
1431
+ // First attempt with a name that will be taken (triggers 409)
1432
+ let result = await validate('taken-name');
1433
+ if (result !== true) {
1434
+ // Name was taken, try again with a valid name (triggers 200)
1435
+ result = await validate('valid-name');
1436
+ }
1437
+ }
1438
+ return 'valid-name';
1439
+ })();
1440
+ promise.cancel = ()=>{};
1441
+ return promise;
1442
+ });
1443
+ mockGetCliConfig.mockResolvedValue({
1444
+ api: {
1445
+ projectId
1446
+ }
1447
+ });
1448
+ mockApi({
1449
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1450
+ query: {
1451
+ appType: 'studio'
1452
+ },
1453
+ uri: `/projects/${projectId}/user-applications`
1454
+ }).reply(200, []);
1455
+ // First API call fails (hostname taken)
1456
+ mockApi({
1457
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1458
+ method: 'post',
1459
+ query: {
1460
+ appType: 'studio'
1461
+ },
1462
+ uri: `/projects/${projectId}/user-applications`
1463
+ }).once().reply(500, {
1464
+ message: 'Internal server error',
1465
+ statusCode: 500
1466
+ });
1467
+ const { error } = await testCommand(DeployCommand, [], {
1468
+ config: {
1469
+ root: cwd
1470
+ }
1471
+ });
1472
+ expect(error?.message).toContain('Error creating user application');
1473
+ expect(error?.oclif?.exit).toBe(1);
1474
+ });
1475
+ test('should throw error when no projectId is configured', async ()=>{
1476
+ const cwd = await testExample('basic-studio');
1477
+ process.cwd = ()=>cwd;
1478
+ mockGetCliConfig.mockResolvedValue({
1479
+ api: {},
1480
+ studioHost: 'some-studio'
1481
+ });
1482
+ const { error } = await testCommand(DeployCommand, [], {
1483
+ config: {
1484
+ root: cwd
1485
+ }
1486
+ });
1487
+ expect(error?.message).toContain('sanity.cli.ts does not contain a project identifier ("api.projectId"), which is required for the Sanity CLI to communicate with the Sanity API');
1488
+ expect(error?.oclif?.exit).toBe(1);
1489
+ });
1490
+ test('should log a warning if the deprecated auto-updates flag is used', async ()=>{
1491
+ const cwd = await testExample('basic-studio');
1492
+ process.cwd = ()=>cwd;
1493
+ const { stderr } = await testCommand(DeployCommand, [
1494
+ '--auto-updates'
1495
+ ], {
1496
+ config: {
1497
+ root: cwd
1498
+ }
1499
+ });
1500
+ expect(stderr).toContain('Warning: The --auto-updates flag is deprecated');
1501
+ });
1502
+ test('should throw an error when both the current and deprecated autoUpdates config are used', async ()=>{
1503
+ const cwd = await testExample('basic-studio');
1504
+ process.cwd = ()=>cwd;
1505
+ mockGetCliConfig.mockResolvedValue({
1506
+ autoUpdates: true,
1507
+ deployment: {
1508
+ autoUpdates: true
1509
+ }
1510
+ });
1511
+ const { error } = await testCommand(DeployCommand, [], {
1512
+ config: {
1513
+ root: cwd
1514
+ }
1515
+ });
1516
+ expect(error?.message).toContain('Found both `autoUpdates` (deprecated) and `deployment.autoUpdates` in sanity.cli.');
1517
+ expect(error?.oclif?.exit).toBe(1);
1518
+ });
1519
+ test('should handle general API errors when finding user application', async ()=>{
1520
+ const cwd = await testExample('basic-studio');
1521
+ process.cwd = ()=>cwd;
1522
+ const projectId = 'test-project-id';
1523
+ const studioHost = 'existing-studio';
1524
+ mockGetCliConfig.mockResolvedValue({
1525
+ api: {
1526
+ projectId
1527
+ },
1528
+ studioHost
1529
+ });
1530
+ mockApi({
1531
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1532
+ query: {
1533
+ appHost: studioHost,
1534
+ appType: 'studio'
1535
+ },
1536
+ uri: `/projects/${projectId}/user-applications`
1537
+ }).reply(500, {
1538
+ error: 'Internal server error'
1539
+ });
1540
+ const { error } = await testCommand(DeployCommand, [], {
1541
+ config: {
1542
+ root: cwd
1543
+ }
1544
+ });
1545
+ expect(error?.message).toContain('Error finding user application');
1546
+ expect(error?.oclif?.exit).toBe(1);
1547
+ });
1548
+ test('should handle deployment API errors for studio', async ()=>{
1549
+ const cwd = await testExample('basic-studio');
1550
+ process.cwd = ()=>cwd;
1551
+ const projectId = 'test-project-id';
1552
+ const studioHost = 'existing-studio';
1553
+ const studioAppId = 'studio-app-id';
1554
+ mockGetCliConfig.mockResolvedValue({
1555
+ api: {
1556
+ projectId
1557
+ },
1558
+ studioHost
1559
+ });
1560
+ mockApi({
1561
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1562
+ query: {
1563
+ appHost: studioHost,
1564
+ appType: 'studio'
1565
+ },
1566
+ uri: `/projects/${projectId}/user-applications`
1567
+ }).reply(200, {
1568
+ appHost: studioHost,
1569
+ createdAt: '2024-01-01T00:00:00Z',
1570
+ id: studioAppId,
1571
+ projectId,
1572
+ title: 'Existing Studio',
1573
+ type: 'studio',
1574
+ updatedAt: '2024-01-01T00:00:00Z',
1575
+ urlType: 'internal'
1576
+ });
1577
+ mockApi({
1578
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1579
+ method: 'post',
1580
+ query: {
1581
+ appType: 'studio'
1582
+ },
1583
+ uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`
1584
+ }).reply(500, {
1585
+ error: 'Internal server error'
1586
+ });
1587
+ const { error } = await testCommand(DeployCommand, [], {
1588
+ config: {
1589
+ root: cwd
1590
+ }
1591
+ });
1592
+ expect(error?.message).toContain('Error deploying studio');
1593
+ expect(error?.oclif?.exit).toBe(1);
1594
+ });
1595
+ test('should handle fatal errors during studio hostname creation', async ()=>{
1596
+ const cwd = await testExample('basic-studio');
1597
+ process.cwd = ()=>cwd;
1598
+ const projectId = 'test-project-id';
1599
+ const studioHost = 'new-studio-host';
1600
+ mockGetCliConfig.mockResolvedValue({
1601
+ api: {
1602
+ projectId
1603
+ },
1604
+ studioHost
1605
+ });
1606
+ mockApi({
1607
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1608
+ query: {
1609
+ appHost: studioHost,
1610
+ appType: 'studio'
1611
+ },
1612
+ uri: `/projects/${projectId}/user-applications`
1613
+ }).reply(404, {
1614
+ message: 'Not found'
1615
+ });
1616
+ mockApi({
1617
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1618
+ method: 'post',
1619
+ query: {
1620
+ appType: 'studio'
1621
+ },
1622
+ uri: `/projects/${projectId}/user-applications`
1623
+ }).reply(500, {
1624
+ message: 'Internal server error',
1625
+ statusCode: 500
1626
+ });
1627
+ const { error } = await testCommand(DeployCommand, [], {
1628
+ config: {
1629
+ root: cwd
1630
+ }
1631
+ });
1632
+ expect(error?.message).toContain('Error creating user application from config');
1633
+ expect(error?.oclif?.exit).toBe(1);
1634
+ });
1635
+ test('should handle no existing studio applications scenario', async ()=>{
1636
+ const cwd = await testExample('basic-studio');
1637
+ process.cwd = ()=>cwd;
1638
+ const projectId = 'test-project-id';
1639
+ const newStudioId = 'new-studio-id';
1640
+ const deploymentId = 'deployment-id';
1641
+ mockInput.mockImplementation(({ validate })=>{
1642
+ const promise = (async ()=>{
1643
+ if (validate) {
1644
+ await validate('new-studio-name');
1645
+ }
1646
+ return 'new-studio-name';
1647
+ })();
1648
+ promise.cancel = ()=>{};
1649
+ return promise;
1650
+ });
1651
+ mockGetCliConfig.mockResolvedValue({
1652
+ api: {
1653
+ projectId
1654
+ }
1655
+ });
1656
+ mockApi({
1657
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1658
+ query: {
1659
+ appType: 'studio'
1660
+ },
1661
+ uri: `/projects/${projectId}/user-applications`
1662
+ }).reply(200, []);
1663
+ mockApi({
1664
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1665
+ method: 'post',
1666
+ query: {
1667
+ appType: 'studio'
1668
+ },
1669
+ uri: `/projects/${projectId}/user-applications`
1670
+ }).reply(200, {
1671
+ appHost: 'new-studio-name',
1672
+ createdAt: '2024-01-01T00:00:00Z',
1673
+ id: newStudioId,
1674
+ projectId,
1675
+ title: 'New Studio',
1676
+ type: 'studio',
1677
+ updatedAt: '2024-01-01T00:00:00Z',
1678
+ urlType: 'internal'
1679
+ });
1680
+ mockApi({
1681
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1682
+ method: 'post',
1683
+ query: {
1684
+ appType: 'studio'
1685
+ },
1686
+ uri: `/projects/${projectId}/user-applications/${newStudioId}/deployments`
1687
+ }).reply(200, {
1688
+ id: deploymentId
1689
+ });
1690
+ const { error, stdout } = await testCommand(DeployCommand, [], {
1691
+ config: {
1692
+ root: cwd
1693
+ }
1694
+ });
1695
+ expect(error).toBeUndefined();
1696
+ expect(stdout).toContain('Success! Studio deployed');
1697
+ expect(mockInput).toHaveBeenCalledWith({
1698
+ message: 'Studio hostname (<value>.sanity.studio):',
1699
+ validate: expect.any(Function)
1700
+ });
1701
+ });
1702
+ test('should skip build when --no-build flag is used for studio', async ()=>{
1703
+ const cwd = await testExample('basic-studio');
1704
+ process.cwd = ()=>cwd;
1705
+ const projectId = 'test-project-id';
1706
+ const studioHost = 'existing-studio';
1707
+ const studioAppId = 'studio-app-id';
1708
+ const deploymentId = 'deployment-id';
1709
+ mockGetCliConfig.mockResolvedValue({
1710
+ api: {
1711
+ projectId
1712
+ },
1713
+ studioHost
1714
+ });
1715
+ mockApi({
1716
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1717
+ query: {
1718
+ appHost: studioHost,
1719
+ appType: 'studio'
1720
+ },
1721
+ uri: `/projects/${projectId}/user-applications`
1722
+ }).reply(200, {
1723
+ appHost: studioHost,
1724
+ createdAt: '2024-01-01T00:00:00Z',
1725
+ id: studioAppId,
1726
+ projectId,
1727
+ title: 'Existing Studio',
1728
+ type: 'studio',
1729
+ updatedAt: '2024-01-01T00:00:00Z',
1730
+ urlType: 'internal'
1731
+ });
1732
+ mockApi({
1733
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1734
+ method: 'post',
1735
+ query: {
1736
+ appType: 'studio'
1737
+ },
1738
+ uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`
1739
+ }).reply(200, {
1740
+ id: deploymentId
1741
+ });
1742
+ const { error, stdout } = await testCommand(DeployCommand, [
1743
+ '--no-build'
1744
+ ], {
1745
+ config: {
1746
+ root: cwd
1747
+ }
1748
+ });
1749
+ expect(error).toBeUndefined();
1750
+ expect(stdout).toContain('Success! Studio deployed');
1751
+ expect(mockBuildStudio).not.toHaveBeenCalled();
1752
+ });
1753
+ test('should deploy studio using deployment.appId', async ()=>{
1754
+ const cwd = await testExample('basic-studio');
1755
+ process.cwd = ()=>cwd;
1756
+ const projectId = 'test-project-id';
1757
+ const studioAppId = 'studio-app-id';
1758
+ const appHost = 'my-studio';
1759
+ const deploymentId = 'deployment-id';
1760
+ mockGetCliConfig.mockResolvedValue({
1761
+ api: {
1762
+ projectId
1763
+ },
1764
+ deployment: {
1765
+ appId: studioAppId
1766
+ }
1767
+ });
1768
+ mockApi({
1769
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1770
+ uri: `/projects/${projectId}/user-applications/${studioAppId}`
1771
+ }).reply(200, {
1772
+ appHost,
1773
+ createdAt: '2024-01-01T00:00:00Z',
1774
+ id: studioAppId,
1775
+ projectId,
1776
+ title: 'My Studio',
1777
+ type: 'studio',
1778
+ updatedAt: '2024-01-01T00:00:00Z',
1779
+ urlType: 'internal'
1780
+ });
1781
+ mockApi({
1782
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1783
+ method: 'post',
1784
+ query: {
1785
+ appType: 'studio'
1786
+ },
1787
+ uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`
1788
+ }).reply(200, {
1789
+ id: deploymentId,
1790
+ location: `https://${appHost}.sanity.studio`
1791
+ });
1792
+ const { error, stdout } = await testCommand(DeployCommand, [], {
1793
+ config: {
1794
+ root: cwd
1795
+ }
1796
+ });
1797
+ expect(error).toBeUndefined();
1798
+ expect(stdout).toContain(`Success! Studio deployed to https://${appHost}.sanity.studio`);
1799
+ });
1800
+ test('should prioritize deployment.appId over studioHost when both are configured', async ()=>{
1801
+ const cwd = await testExample('basic-studio');
1802
+ process.cwd = ()=>cwd;
1803
+ const projectId = 'test-project-id';
1804
+ const studioAppId = 'studio-app-id';
1805
+ const studioHost = 'my-studio-host';
1806
+ const deploymentId = 'deployment-id';
1807
+ mockGetCliConfig.mockResolvedValue({
1808
+ api: {
1809
+ projectId
1810
+ },
1811
+ deployment: {
1812
+ appId: studioAppId
1813
+ },
1814
+ studioHost
1815
+ });
1816
+ // Should call by appId, NOT by appHost
1817
+ mockApi({
1818
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1819
+ uri: `/projects/${projectId}/user-applications/${studioAppId}`
1820
+ }).reply(200, {
1821
+ appHost: studioHost,
1822
+ createdAt: '2024-01-01T00:00:00Z',
1823
+ id: studioAppId,
1824
+ projectId,
1825
+ title: 'My Studio',
1826
+ type: 'studio',
1827
+ updatedAt: '2024-01-01T00:00:00Z',
1828
+ urlType: 'internal'
1829
+ });
1830
+ mockApi({
1831
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1832
+ method: 'post',
1833
+ query: {
1834
+ appType: 'studio'
1835
+ },
1836
+ uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`
1837
+ }).reply(200, {
1838
+ id: deploymentId,
1839
+ location: `https://${studioHost}.sanity.studio`
1840
+ });
1841
+ const { error, stdout } = await testCommand(DeployCommand, [], {
1842
+ config: {
1843
+ root: cwd
1844
+ }
1845
+ });
1846
+ expect(error).toBeUndefined();
1847
+ expect(stdout).toContain(`Success! Studio deployed to https://${studioHost}.sanity.studio`);
1848
+ });
1849
+ test('should handle error when deployment.appId does not exist for the org', async ()=>{
1850
+ const cwd = await testExample('basic-studio');
1851
+ process.cwd = ()=>cwd;
1852
+ const projectId = 'test-project-id';
1853
+ const studioAppId = 'non-existent-app-id';
1854
+ mockGetCliConfig.mockResolvedValue({
1855
+ api: {
1856
+ projectId
1857
+ },
1858
+ deployment: {
1859
+ appId: studioAppId
1860
+ }
1861
+ });
1862
+ mockApi({
1863
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1864
+ uri: `/projects/${projectId}/user-applications/${studioAppId}`
1865
+ }).reply(404, {
1866
+ message: 'Application not found'
1867
+ });
1868
+ const { error } = await testCommand(DeployCommand, [], {
1869
+ config: {
1870
+ root: cwd
1871
+ }
1872
+ });
1873
+ expect(error?.message).toContain('Error finding user application');
1874
+ expect(error?.message).toContain(`Cannot find app with app ID ${studioAppId}`);
1875
+ expect(error?.oclif?.exit).toBe(1);
1876
+ });
1877
+ test('should not fall back to studioHost when deployment.appId is configured but does not exist', async ()=>{
1878
+ const cwd = await testExample('basic-studio');
1879
+ process.cwd = ()=>cwd;
1880
+ const projectId = 'test-project-id';
1881
+ const studioAppId = 'non-existent-app-id';
1882
+ const studioHost = 'valid-studio-host';
1883
+ mockGetCliConfig.mockResolvedValue({
1884
+ api: {
1885
+ projectId
1886
+ },
1887
+ deployment: {
1888
+ appId: studioAppId
1889
+ },
1890
+ studioHost
1891
+ });
1892
+ // appId lookup fails
1893
+ mockApi({
1894
+ apiVersion: USER_APPLICATIONS_API_VERSION,
1895
+ uri: `/projects/${projectId}/user-applications/${studioAppId}`
1896
+ }).reply(404, {
1897
+ message: 'Application not found'
1898
+ });
1899
+ // Should NOT make a call to studioHost - if it does, this mock will remain unused
1900
+ // and cause the test to fail due to pending mocks check
1901
+ const { error } = await testCommand(DeployCommand, [], {
1902
+ config: {
1903
+ root: cwd
1904
+ }
1905
+ });
1906
+ expect(error?.message).toContain('Error finding user application');
1907
+ expect(error?.message).toContain(`Cannot find app with app ID ${studioAppId}`);
1908
+ expect(error?.oclif?.exit).toBe(1);
1909
+ });
1910
+ });
1911
+ });
1912
+
1913
+ //# sourceMappingURL=deploy.test.js.map