@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 @@
1
+ {"version":3,"sources":["../../../src/commands/__tests__/deploy.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {getCliConfig} from '@sanity/cli-core'\nimport {confirm, input, select} from '@sanity/cli-core/ux'\nimport {mockApi, testCommand} from '@sanity/cli-test'\nimport nock from 'nock'\nimport {afterEach, beforeEach, describe, expect, test, vi} from 'vitest'\nimport {testExample} from '~test/helpers/testExample.js'\n\nimport {buildApp} from '../../actions/build/buildApp.js'\nimport {buildStudio} from '../../actions/build/buildStudio.js'\nimport {checkDir} from '../../actions/deploy/checkDir.js'\nimport {USER_APPLICATIONS_API_VERSION} from '../../services/userApplications.js'\nimport {dirIsEmptyOrNonExistent} from '../../util/dirIsEmptyOrNonExistent.js'\nimport {readModuleVersion} from '../../util/readModuleVersion.js'\nimport {DeployCommand} from '../deploy.js'\n\nvi.mock('../../../../cli-core/src/config/cli/getCliConfig.js', () => ({\n getCliConfig: vi.fn(),\n}))\n\nvi.mock('../../util/readModuleVersion.js', () => ({\n readModuleVersion: vi.fn(),\n}))\n\nvi.mock('../../actions/build/buildApp.js', () => ({\n buildApp: vi.fn(),\n}))\n\nvi.mock('../../actions/build/buildStudio.js', () => ({\n buildStudio: vi.fn(),\n}))\n\nvi.mock('../../actions/deploy/checkDir.js', () => ({\n checkDir: vi.fn(),\n}))\n\nvi.mock('@sanity/cli-core/ux', async () => {\n const actual = await vi.importActual<typeof import('@sanity/cli-core/ux')>('@sanity/cli-core/ux')\n return {\n ...actual,\n confirm: vi.fn(),\n input: vi.fn(),\n select: vi.fn(),\n }\n})\n\nvi.mock('../../util/dirIsEmptyOrNonExistent.js', () => ({\n dirIsEmptyOrNonExistent: vi.fn(() => true),\n}))\n\nvi.mock('tar-fs', () => ({\n pack: vi.fn(() => {\n return {\n pipe: vi.fn(),\n }\n }),\n}))\n\nconst mockGetCliConfig = vi.mocked(getCliConfig)\nconst mockSelect = vi.mocked(select)\nconst mockConfirm = vi.mocked(confirm)\nconst mockInput = vi.mocked(input)\nconst mockCheckDir = vi.mocked(checkDir)\nconst mockDirIsEmptyOrNonExistent = vi.mocked(dirIsEmptyOrNonExistent)\nconst mockReadModuleVersion = vi.mocked(readModuleVersion)\nconst mockBuildStudio = vi.mocked(buildStudio)\nconst mockBuildApp = vi.mocked(buildApp)\n\ndescribe('#deploy', () => {\n beforeEach(async () => {\n // Set up default mocks\n mockReadModuleVersion.mockImplementation(async (sourceDir, moduleName) => {\n if (moduleName === 'sanity') return '3.0.0' // for studio deployments\n if (moduleName === '@sanity/sdk-react') return '1.0.0' // for app deployments\n return '1.0.0'\n })\n mockCheckDir.mockResolvedValue()\n })\n\n afterEach(() => {\n vi.clearAllMocks()\n const pending = nock.pendingMocks()\n nock.cleanAll()\n expect(pending, 'pending mocks').toEqual([])\n })\n\n test('help text is correct', async () => {\n const {stdout} = await runCommand('deploy --help')\n expect(stdout).toMatchInlineSnapshot(`\n \"Builds and deploys Sanity Studio or application to Sanity hosting\n\n USAGE\n $ sanity deploy [SOURCEDIR] [--auto-updates] [--build] [--minify]\n [--schema-required] [--source-maps] [--verbose] [-y]\n\n ARGUMENTS\n [SOURCEDIR] Source directory\n\n FLAGS\n -y, --yes Unattended mode, answers \"yes\" to any \"yes/no\" prompt\n and otherwise uses defaults\n --[no-]auto-updates Automatically update the studio to the latest version\n --[no-]build Don't build the studio prior to deploy, instead\n deploying the version currently in \\`dist/\\`\n --[no-]minify Skip minifying built JavaScript (speeds up build,\n increases size of bundle)\n --schema-required Fail-fast deployment if schema store fails\n --source-maps Enable source maps for built bundles (increases size\n of bundle)\n --verbose Enable verbose logging\n\n DESCRIPTION\n Builds and deploys Sanity Studio or application to Sanity hosting\n\n EXAMPLES\n Build the studio\n\n $ sanity deploy\n\n Deploys non-minified build with source maps\n\n $ sanity deploy --no-minify --source-maps\n\n Fail fast on schema store fails - for when other services rely on the stored\n schema\n\n $ sanity deploy --schema-required\n\n \"\n `)\n })\n test('shows an error for invalid flags', async () => {\n const {error} = await testCommand(DeployCommand, ['--invalid'])\n\n expect(error?.message).toContain('Nonexistent flag: --invalid')\n })\n\n test(\"should prompt to confirm deleting source directory if it's not empty\", async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n mockConfirm.mockResolvedValue(true)\n mockDirIsEmptyOrNonExistent.mockResolvedValue(false)\n\n const appId = 'app-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId: 'org-id',\n },\n deployment: {\n appId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${appId}`,\n }).reply(200, {\n appHost: 'existing-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: appId,\n organizationId: 'org-id',\n projectId: null,\n title: 'Existing App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${appId}/deployments`,\n }).reply(200, {\n id: 'deployment-id',\n })\n\n const {error} = await testCommand(DeployCommand, ['build'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(mockConfirm).toHaveBeenCalledWith({\n default: false,\n message: '\"./build\" is not empty, do you want to proceed?',\n })\n })\n\n test(\"should cancel the deployment if the user doesn't want to proceed\", async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n mockConfirm.mockResolvedValue(false)\n\n const appId = 'app-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId: 'org-id',\n },\n deployment: {\n appId,\n },\n })\n\n const {error} = await testCommand(DeployCommand, ['build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Cancelled.')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n describe('app', () => {\n test('should re-deploy app if it already exists', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const appId = 'app-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId: 'org-id',\n },\n deployment: {\n appId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${appId}`,\n }).reply(200, {\n appHost: 'existing-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: appId,\n organizationId: 'org-id',\n projectId: null,\n title: 'Existing App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${appId}/deployments`,\n }).reply(200, {\n id: 'deployment-id',\n })\n\n const {error, stderr, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n\n expect(stderr).toContain('Checking application info')\n expect(stderr).toContain('Verifying local content')\n expect(stderr).toContain('Deploying...')\n\n expect(stdout).toContain('Success! Application deployed')\n })\n\n test('should handle missing @sanity/sdk-react version', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const appId = 'app-id'\n const organizationId = 'org-id'\n\n mockReadModuleVersion.mockResolvedValue(null)\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId,\n },\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Failed to find installed @sanity/sdk-react version')\n })\n\n test('should create new user application if none exists', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const organizationId = 'org-id'\n const newAppId = 'new-app-id'\n const deploymentId = 'deployment-id'\n\n mockInput.mockResolvedValue('Test App')\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, [])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, {\n appHost: 'generated-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: newAppId,\n organizationId,\n projectId: null,\n title: 'Test App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${newAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Application deployed')\n expect(stdout).toContain(\n `Add the deployment.appId to your sanity.cli.js or sanity.cli.ts file:`,\n )\n expect(stdout).toContain(`deployment: {\n appId: '${newAppId}',`)\n expect(mockInput).toHaveBeenCalledWith({\n message: 'Enter a title for your application:',\n validate: expect.any(Function),\n })\n })\n\n test('should skip build when --no-build flag is used', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const existingAppId = 'existing-app-id'\n const organizationId = 'org-id'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId: existingAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}`,\n }).reply(200, {\n appHost: 'existing-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId,\n organizationId,\n projectId: null,\n title: 'Existing App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Application deployed')\n expect(mockBuildApp).not.toHaveBeenCalled()\n })\n\n test('should handle directory check errors', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const existingAppId = 'existing-app-id'\n const organizationId = 'org-id'\n\n mockCheckDir.mockRejectedValue(new Error('Directory check failed'))\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId: existingAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}`,\n }).reply(200, {\n appHost: 'existing-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId,\n organizationId,\n projectId: null,\n title: 'Existing App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error checking directory')\n })\n\n test('should error when fetching user applications if user doesn’t have org access', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const appId = 'some-app-id'\n const organizationId = 'org-without-access'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId,\n },\n })\n\n // Simulate API returning 403 Forbidden for the given org\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${appId}`,\n }).reply(403, {\n error: 'Forbidden',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain(\n `You don’t have permission to view applications for the configured organization ID (\"${organizationId}\")`,\n )\n })\n\n test('should handle user-applications endpoint errors', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const existingAppId = 'existing-app-id'\n const organizationId = 'org-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId: existingAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}`,\n }).reply(500, {\n error: 'Internal server error',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error deploying application')\n })\n\n test('should handle deployment API errors', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const existingAppId = 'existing-app-id'\n const organizationId = 'org-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId: existingAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}`,\n }).reply(200, {\n appHost: 'existing-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId,\n organizationId,\n projectId: null,\n title: 'Existing App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}/deployments`,\n }).reply(500, {\n error: 'Internal server error',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error deploying application')\n })\n\n test('should show an error if deployment.appId is configured but the application does not exist', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const nonExistentAppId = 'non-existent-app-id'\n const organizationId = 'org-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId: nonExistentAppId,\n },\n })\n\n // Simulate API returning no user application for the given app.id\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${nonExistentAppId}`,\n }).reply(404, {\n error: 'Not found',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain(\n 'The `appId` provided in your configuration’s `deployment` object cannot be found in your organization',\n )\n })\n\n test('should show an error if deployment.appId and app.id (deprecated) are both in use', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const appId = 'app-id'\n const organizationId = 'org-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n id: appId,\n organizationId,\n },\n deployment: {\n appId: appId,\n },\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain(\n '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.',\n )\n })\n\n test('should show a warning if app.id (deprecated) is used', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const appId = 'app-id'\n const organizationId = 'org-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n id: appId,\n organizationId,\n },\n })\n\n const {stderr} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(stderr).toContain('The `app.id` config has moved to `deployment.appId`.')\n })\n\n test('should handle app creation with retry when host is taken', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const organizationId = 'org-id'\n const newAppId = 'new-app-id'\n const deploymentId = 'deployment-id'\n\n mockInput.mockResolvedValue('Test App')\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, [])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n })\n .once()\n .reply(409, {\n message: 'App host already taken',\n statusCode: 409,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n })\n .once()\n .reply(200, {\n appHost: 'generated-host-2',\n createdAt: '2024-01-01T00:00:00Z',\n id: newAppId,\n organizationId,\n projectId: null,\n title: 'Test App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${newAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Application deployed')\n })\n\n test('should handle app creation failure with non-retryable error', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const organizationId = 'org-id'\n\n mockInput.mockResolvedValue('Test App')\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, [])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(500, {\n message: 'Internal server error',\n statusCode: 500,\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error deploying application')\n })\n\n test('should handle findUserApplicationForApp API errors', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const existingAppId = 'existing-app-id'\n const organizationId = 'org-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId: existingAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}`,\n }).reply(500, {\n error: 'Internal server error',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error deploying application')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should test input validation for app title', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const organizationId = 'org-id'\n const newAppId = 'new-app-id'\n const deploymentId = 'deployment-id'\n\n mockInput.mockResolvedValue('Valid App Title')\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, [])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, {\n appHost: 'generated-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: newAppId,\n organizationId,\n projectId: null,\n title: 'Valid App Title',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${newAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n\n expect(mockInput).toHaveBeenCalledWith({\n message: 'Enter a title for your application:',\n validate: expect.any(Function),\n })\n })\n\n test('should allow selecting from list of apps', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const organizationId = 'org-id'\n const existingAppId1 = 'existing-app-id-1'\n const existingAppId2 = 'existing-app-id-2'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, [\n {\n appHost: 'existing-host-1',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId1,\n organizationId,\n projectId: null,\n title: 'Existing App 1',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n {\n appHost: 'existing-host-2',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId2,\n organizationId,\n projectId: null,\n title: 'Existing App 2',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n ])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId2}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n mockSelect.mockResolvedValue('existing-host-2')\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Application deployed')\n expect(stdout).toContain(\n `Add the deployment.appId to your sanity.cli.js or sanity.cli.ts file:`,\n )\n expect(stdout).toContain(`deployment: {\n appId: '${existingAppId2}',`)\n })\n\n test('should allow creating a new app by selecting from list of apps', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const organizationId = 'org-id'\n const existingAppId1 = 'existing-app-id-1'\n const existingAppId2 = 'existing-app-id-2'\n const newAppId = 'new-app-id'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, [\n {\n appHost: 'existing-host-1',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId1,\n organizationId,\n projectId: null,\n title: 'Existing App 1',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n {\n appHost: 'existing-host-2',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId2,\n organizationId,\n projectId: null,\n title: 'Existing App 2',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n ])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, {\n appHost: 'generated-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: newAppId,\n organizationId,\n projectId: null,\n title: 'Test App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${newAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n mockSelect.mockResolvedValue('NEW_APP')\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Application deployed')\n expect(stdout).toContain(\n `Add the deployment.appId to your sanity.cli.js or sanity.cli.ts file:`,\n )\n expect(stdout).toContain(`deployment: {\n appId: '${newAppId}',`)\n })\n\n test('should throw an error if organizationId is not set', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId: undefined,\n },\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain(\n 'sanity.cli.ts does not contain an organization identifier (\"app.organizationId\"), which is required for the Sanity CLI to communicate with the Sanity API',\n )\n expect(error?.oclif?.exit).toBe(1)\n })\n })\n\n describe('studio', () => {\n test('should handle missing sanity version', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n mockReadModuleVersion.mockResolvedValue(null)\n\n mockGetCliConfig.mockResolvedValue({\n studioHost: 'existing-studio',\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Failed to find installed sanity version')\n })\n\n test('should handle directory check errors', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'existing-studio'\n const studioAppId = 'studio-app-id'\n\n mockCheckDir.mockRejectedValue(new Error('Directory check failed'))\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, {\n appHost: studioHost,\n createdAt: '2024-01-01T00:00:00Z',\n id: studioAppId,\n projectId,\n title: 'Existing Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error checking directory')\n })\n\n test('should re-deploy studio if it already exists', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'existing-studio'\n const studioAppId = 'studio-app-id'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, {\n appHost: studioHost,\n createdAt: '2024-01-01T00:00:00Z',\n id: studioAppId,\n projectId,\n title: 'Existing Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stderr, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stderr).toContain('Checking project info')\n expect(stderr).toContain('Verifying local content')\n expect(stderr).toContain('Deploying to sanity.studio')\n expect(stdout).toContain('Success! Studio deployed')\n })\n\n test('should create new studio hostname when studioHost is provided but does not exist', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId: 'test-project-id',\n },\n studioHost: 'new-studio-host',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: 'new-studio-host',\n appType: 'studio',\n },\n uri: `/projects/test-project-id/user-applications`,\n }).reply(404, {\n message: 'Not found',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/test-project-id/user-applications`,\n }).reply(200, {\n appHost: 'new-studio-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: 'new-studio-app-id',\n projectId: 'test-project-id',\n title: 'New Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/test-project-id/user-applications/new-studio-app-id/deployments`,\n }).reply(200, {\n id: 'deployment-id',\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Studio deployed')\n expect(stdout).toContain('Your project has not been assigned a studio hostname')\n expect(stdout).toContain('Creating https://new-studio-host.sanity.studio')\n })\n\n test('should handle studio hostname creation failure when name is taken', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'taken-studio-host'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(404, {\n message: 'Not found',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(409, {\n message: 'Studio hostname already taken',\n statusCode: 409,\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Studio hostname already taken')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should allow selecting from existing studio hostnames', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n })\n\n const studioOneId = 'studio-one-id'\n const studioTwoId = 'studio-two-id'\n const deploymentId = 'deployment-id'\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, [\n {\n appHost: 'studio-one',\n createdAt: '2024-01-01T00:00:00Z',\n id: studioOneId,\n projectId,\n title: 'Studio One',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n {\n appHost: 'studio-two',\n createdAt: '2024-01-01T00:00:00Z',\n id: studioTwoId,\n projectId,\n title: 'Studio Two',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n ])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${studioTwoId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n location: 'https://studio-two.sanity.studio',\n })\n\n mockSelect.mockResolvedValue('studio-two')\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Studio deployed to https://studio-two.sanity.studio')\n expect(mockSelect).toHaveBeenCalledWith({\n choices: [\n {name: 'Create new studio hostname', value: 'NEW_STUDIO'},\n expect.any(Object), // Separator\n {name: 'Studio One', value: 'studio-one'},\n {name: 'Studio Two', value: 'studio-two'},\n ],\n message: 'Select existing studio hostname, or create a new one',\n })\n })\n\n test('should allow creating new studio hostname from selection menu', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const existingStudioId = 'existing-studio-id'\n const newStudioFromMenuId = 'new-studio-from-menu-id'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n })\n .once()\n .reply(200, [\n {\n appHost: 'existing-studio',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingStudioId,\n projectId,\n title: 'Existing Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n ])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, {\n appHost: 'new-studio-from-menu',\n createdAt: '2024-01-01T00:00:00Z',\n id: newStudioFromMenuId,\n projectId,\n title: 'New Studio From Menu',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${newStudioFromMenuId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n mockSelect.mockResolvedValue('NEW_STUDIO')\n mockInput.mockImplementation(({validate}) => {\n const promise = (async () => {\n if (validate) {\n await validate('new-studio-from-menu')\n }\n return 'new-studio-from-menu'\n })() as Promise<string> & {cancel: () => void}\n\n promise.cancel = () => {}\n return promise\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Studio deployed')\n expect(mockInput).toHaveBeenCalledWith({\n message: 'Studio hostname (<value>.sanity.studio):',\n validate: expect.any(Function),\n })\n })\n\n test('should handle input validation with retry for studio hostname creation', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const validStudioId = 'valid-studio-id'\n const deploymentId = 'deployment-id'\n\n mockInput.mockImplementation(({validate}) => {\n const promise = (async () => {\n if (validate) {\n // First attempt with a name that will be taken (triggers 409)\n let result = await validate('taken-name')\n if (result !== true) {\n // Name was taken, try again with a valid name (triggers 200)\n result = await validate('valid-name')\n }\n }\n return 'valid-name'\n })() as Promise<string> & {cancel: () => void}\n\n promise.cancel = () => {}\n return promise\n })\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, [])\n\n // First API call fails (hostname taken)\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n })\n .once()\n .reply(409, {\n message: 'Studio hostname already taken',\n statusCode: 409,\n })\n\n // Second API call succeeds\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n })\n .once()\n .reply(200, {\n appHost: 'valid-name',\n createdAt: '2024-01-01T00:00:00Z',\n id: validStudioId,\n projectId,\n title: 'Valid Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${validStudioId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Studio deployed')\n })\n\n test('should handle input validation fails with unknown error', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n\n mockInput.mockImplementation(({validate}) => {\n const promise = (async () => {\n if (validate) {\n // First attempt with a name that will be taken (triggers 409)\n let result = await validate('taken-name')\n if (result !== true) {\n // Name was taken, try again with a valid name (triggers 200)\n result = await validate('valid-name')\n }\n }\n return 'valid-name'\n })() as Promise<string> & {cancel: () => void}\n\n promise.cancel = () => {}\n return promise\n })\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, [])\n\n // First API call fails (hostname taken)\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n })\n .once()\n .reply(500, {\n message: 'Internal server error',\n statusCode: 500,\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error creating user application')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should throw error when no projectId is configured', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n mockGetCliConfig.mockResolvedValue({\n api: {},\n studioHost: 'some-studio',\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain(\n 'sanity.cli.ts does not contain a project identifier (\"api.projectId\"), which is required for the Sanity CLI to communicate with the Sanity API',\n )\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should log a warning if the deprecated auto-updates flag is used', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const {stderr} = await testCommand(DeployCommand, ['--auto-updates'], {\n config: {root: cwd},\n })\n\n expect(stderr).toContain('Warning: The --auto-updates flag is deprecated')\n })\n\n test('should throw an error when both the current and deprecated autoUpdates config are used', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n mockGetCliConfig.mockResolvedValue({\n autoUpdates: true,\n deployment: {\n autoUpdates: true,\n },\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain(\n 'Found both `autoUpdates` (deprecated) and `deployment.autoUpdates` in sanity.cli.',\n )\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should handle general API errors when finding user application', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'existing-studio'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(500, {\n error: 'Internal server error',\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error finding user application')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should handle deployment API errors for studio', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'existing-studio'\n const studioAppId = 'studio-app-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, {\n appHost: studioHost,\n createdAt: '2024-01-01T00:00:00Z',\n id: studioAppId,\n projectId,\n title: 'Existing Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`,\n }).reply(500, {\n error: 'Internal server error',\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error deploying studio')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should handle fatal errors during studio hostname creation', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'new-studio-host'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(404, {\n message: 'Not found',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(500, {\n message: 'Internal server error',\n statusCode: 500,\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error creating user application from config')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should handle no existing studio applications scenario', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const newStudioId = 'new-studio-id'\n const deploymentId = 'deployment-id'\n\n mockInput.mockImplementation(({validate}) => {\n const promise = (async () => {\n if (validate) {\n await validate('new-studio-name')\n }\n return 'new-studio-name'\n })() as Promise<string> & {cancel: () => void}\n\n promise.cancel = () => {}\n return promise\n })\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, [])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, {\n appHost: 'new-studio-name',\n createdAt: '2024-01-01T00:00:00Z',\n id: newStudioId,\n projectId,\n title: 'New Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${newStudioId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Studio deployed')\n expect(mockInput).toHaveBeenCalledWith({\n message: 'Studio hostname (<value>.sanity.studio):',\n validate: expect.any(Function),\n })\n })\n\n test('should skip build when --no-build flag is used for studio', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'existing-studio'\n const studioAppId = 'studio-app-id'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, {\n appHost: studioHost,\n createdAt: '2024-01-01T00:00:00Z',\n id: studioAppId,\n projectId,\n title: 'Existing Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Studio deployed')\n expect(mockBuildStudio).not.toHaveBeenCalled()\n })\n\n test('should deploy studio using deployment.appId', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioAppId = 'studio-app-id'\n const appHost = 'my-studio'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n deployment: {\n appId: studioAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n uri: `/projects/${projectId}/user-applications/${studioAppId}`,\n }).reply(200, {\n appHost,\n createdAt: '2024-01-01T00:00:00Z',\n id: studioAppId,\n projectId,\n title: 'My Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n location: `https://${appHost}.sanity.studio`,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain(`Success! Studio deployed to https://${appHost}.sanity.studio`)\n })\n\n test('should prioritize deployment.appId over studioHost when both are configured', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioAppId = 'studio-app-id'\n const studioHost = 'my-studio-host'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n deployment: {\n appId: studioAppId,\n },\n studioHost,\n })\n\n // Should call by appId, NOT by appHost\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n uri: `/projects/${projectId}/user-applications/${studioAppId}`,\n }).reply(200, {\n appHost: studioHost,\n createdAt: '2024-01-01T00:00:00Z',\n id: studioAppId,\n projectId,\n title: 'My Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n location: `https://${studioHost}.sanity.studio`,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain(`Success! Studio deployed to https://${studioHost}.sanity.studio`)\n })\n\n test('should handle error when deployment.appId does not exist for the org', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioAppId = 'non-existent-app-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n deployment: {\n appId: studioAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n uri: `/projects/${projectId}/user-applications/${studioAppId}`,\n }).reply(404, {\n message: 'Application not found',\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error finding user application')\n expect(error?.message).toContain(`Cannot find app with app ID ${studioAppId}`)\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should not fall back to studioHost when deployment.appId is configured but does not exist', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioAppId = 'non-existent-app-id'\n const studioHost = 'valid-studio-host'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n deployment: {\n appId: studioAppId,\n },\n studioHost, // This should NOT be used as fallback\n })\n\n // appId lookup fails\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n uri: `/projects/${projectId}/user-applications/${studioAppId}`,\n }).reply(404, {\n message: 'Application not found',\n })\n\n // Should NOT make a call to studioHost - if it does, this mock will remain unused\n // and cause the test to fail due to pending mocks check\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error finding user application')\n expect(error?.message).toContain(`Cannot find app with app ID ${studioAppId}`)\n expect(error?.oclif?.exit).toBe(1)\n })\n })\n})\n"],"names":["runCommand","getCliConfig","confirm","input","select","mockApi","testCommand","nock","afterEach","beforeEach","describe","expect","test","vi","testExample","buildApp","buildStudio","checkDir","USER_APPLICATIONS_API_VERSION","dirIsEmptyOrNonExistent","readModuleVersion","DeployCommand","mock","fn","actual","importActual","pack","pipe","mockGetCliConfig","mocked","mockSelect","mockConfirm","mockInput","mockCheckDir","mockDirIsEmptyOrNonExistent","mockReadModuleVersion","mockBuildStudio","mockBuildApp","mockImplementation","sourceDir","moduleName","mockResolvedValue","clearAllMocks","pending","pendingMocks","cleanAll","toEqual","stdout","toMatchInlineSnapshot","error","message","toContain","cwd","process","appId","app","organizationId","deployment","apiVersion","query","appType","uri","reply","appHost","createdAt","id","projectId","title","type","updatedAt","urlType","method","config","root","toBeUndefined","toHaveBeenCalledWith","default","oclif","exit","toBe","stderr","newAppId","deploymentId","validate","any","Function","existingAppId","not","toHaveBeenCalled","mockRejectedValue","Error","nonExistentAppId","once","statusCode","existingAppId1","existingAppId2","undefined","studioHost","studioAppId","api","studioOneId","studioTwoId","location","choices","name","value","Object","existingStudioId","newStudioFromMenuId","promise","cancel","validStudioId","result","autoUpdates","newStudioId"],"mappings":"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"}
@@ -0,0 +1,410 @@
1
+ import { readFile, writeFile } from 'node:fs/promises';
2
+ import { createServer } from 'node:http';
3
+ import { join } from 'node:path';
4
+ import { runCommand } from '@oclif/test';
5
+ import { confirm } from '@sanity/cli-core/ux';
6
+ import { mockApi, testCommand } from '@sanity/cli-test';
7
+ import nock from 'nock';
8
+ import { afterEach, describe, expect, test, vi } from 'vitest';
9
+ import { testExample } from '~test/helpers/testExample.js';
10
+ import { checkRequiredDependencies } from '../../actions/build/checkRequiredDependencies.js';
11
+ import { compareDependencyVersions } from '../../util/compareDependencyVersions.js';
12
+ import { getPackageManagerChoice } from '../../util/packageManager/packageManagerChoice.js';
13
+ import { upgradePackages } from '../../util/packageManager/upgradePackages.js';
14
+ import { DevCommand } from '../dev.js';
15
+ vi.mock('../../actions/build/checkRequiredDependencies.js', ()=>({
16
+ checkRequiredDependencies: vi.fn().mockResolvedValue({
17
+ installedSanityVersion: '3.0.0'
18
+ })
19
+ }));
20
+ vi.mock('../../util/compareDependencyVersions.js', ()=>({
21
+ compareDependencyVersions: vi.fn().mockResolvedValue([])
22
+ }));
23
+ vi.mock('@sanity/cli-core/ux', async ()=>{
24
+ const actual = await vi.importActual('@sanity/cli-core/ux');
25
+ return {
26
+ ...actual,
27
+ confirm: vi.fn()
28
+ };
29
+ });
30
+ vi.mock('../../../../cli-core/src/util/isInteractive.js', ()=>({
31
+ isInteractive: vi.fn().mockReturnValue(true)
32
+ }));
33
+ vi.mock('../../util/packageManager/upgradePackages.js');
34
+ vi.mock('../../util/packageManager/packageManagerChoice.js');
35
+ const mockCheckRequiredDependencies = vi.mocked(checkRequiredDependencies);
36
+ const mockCompareDependencyVersions = vi.mocked(compareDependencyVersions);
37
+ const mockConfirm = vi.mocked(confirm);
38
+ const mockUpgradePackages = vi.mocked(upgradePackages);
39
+ const mockGetPackageManagerChoice = vi.mocked(getPackageManagerChoice);
40
+ describe('#dev', ()=>{
41
+ afterEach(()=>{
42
+ const pending = nock.pendingMocks();
43
+ nock.cleanAll();
44
+ expect(pending, 'pending mocks').toEqual([]);
45
+ vi.clearAllMocks();
46
+ });
47
+ test('help text is correct', async ()=>{
48
+ const { stdout } = await runCommand([
49
+ 'dev',
50
+ '--help'
51
+ ]);
52
+ expect(stdout).toMatchInlineSnapshot(`
53
+ "Starts a local development server for Sanity Studio with live reloading
54
+
55
+ USAGE
56
+ $ sanity dev [--auto-updates] [--host <value>]
57
+ [--load-in-dashboard] [--port <value>]
58
+
59
+ FLAGS
60
+ --[no-]auto-updates Automatically update Sanity Studio dependencies.
61
+ --host=<value> [default: localhost] The local network interface at
62
+ which to listen.
63
+ --[no-]load-in-dashboard Load the app/studio in the Sanity dashboard.
64
+ --port=<value> [default: 3333] TCP port to start server on.
65
+
66
+ DESCRIPTION
67
+ Starts a local development server for Sanity Studio with live reloading
68
+
69
+ EXAMPLES
70
+ $ sanity dev --host=0.0.0.0
71
+
72
+ $ sanity dev --port=1942
73
+
74
+ $ sanity dev --load-in-dashboard
75
+
76
+ "
77
+ `);
78
+ });
79
+ test('shows an error for invalid flags', async ()=>{
80
+ const { error } = await testCommand(DevCommand, [
81
+ '--invalid'
82
+ ]);
83
+ expect(error?.message).toContain('Nonexistent flag: --invalid');
84
+ });
85
+ describe('basic-app', ()=>{
86
+ test('should start the dev server for app', async ()=>{
87
+ const cwd = await testExample('basic-app');
88
+ process.cwd = ()=>cwd;
89
+ const { error, result, stderr, stdout } = await testCommand(DevCommand, [
90
+ '--port',
91
+ '5333'
92
+ ], {
93
+ config: {
94
+ root: cwd
95
+ }
96
+ });
97
+ expect(error).toBeUndefined();
98
+ expect(stdout).toContain('Dev server started on port 5333');
99
+ expect(stdout).toContain('View your app in the Sanity dashboard here:');
100
+ expect(stderr).toContain('Checking configuration files');
101
+ await result.close?.();
102
+ });
103
+ test('should warn when --no-load-in-dashboard is used with app', async ()=>{
104
+ const cwd = await testExample('basic-app');
105
+ process.cwd = ()=>cwd;
106
+ const { error, result, stderr, stdout } = await testCommand(DevCommand, [
107
+ '--no-load-in-dashboard',
108
+ '--port',
109
+ '5334'
110
+ ], {
111
+ config: {
112
+ root: cwd
113
+ }
114
+ });
115
+ expect(error).toBeUndefined();
116
+ expect(stderr).toContain('Apps cannot run without the Sanity dashboard');
117
+ expect(stderr).toContain('Starting dev server with the --load-in-dashboard flag set to true');
118
+ expect(stdout).toContain('Dev server started on port 5334');
119
+ await result.close?.();
120
+ });
121
+ test('should automatically change port if conflicted', async ()=>{
122
+ const cwd = await testExample('basic-app');
123
+ process.cwd = ()=>cwd;
124
+ // Create a server on port 5338 to block it
125
+ const server = createServer();
126
+ await new Promise((resolve)=>{
127
+ server.listen(5338, 'localhost', resolve);
128
+ });
129
+ try {
130
+ const { error, result, stdout } = await testCommand(DevCommand, [
131
+ '--port',
132
+ '5338'
133
+ ], {
134
+ config: {
135
+ root: cwd
136
+ }
137
+ });
138
+ expect(error).toBeUndefined();
139
+ // Should automatically pick a different port
140
+ expect(stdout).toMatch(/Dev server started on port \d{4}/);
141
+ expect(stdout).not.toContain('Dev server started on port 5338');
142
+ expect(stdout).toContain('View your app in the Sanity dashboard here:');
143
+ await result.close?.();
144
+ } finally{
145
+ // Clean up the server
146
+ await new Promise((resolve, reject)=>{
147
+ server.close((err)=>{
148
+ if (err) reject(err);
149
+ else resolve();
150
+ });
151
+ });
152
+ }
153
+ });
154
+ test('should error when organizationId is missing from config', async ()=>{
155
+ const cwd = await testExample('basic-app');
156
+ process.cwd = ()=>cwd;
157
+ // Modify the config to remove organizationId
158
+ const configPath = join(cwd, 'sanity.cli.ts');
159
+ const existingConfig = await readFile(configPath, 'utf8');
160
+ const modifiedConfig = existingConfig.replace(/organizationId: '[^']*',?/, '');
161
+ await writeFile(configPath, modifiedConfig);
162
+ const { error } = await testCommand(DevCommand, [
163
+ '--port',
164
+ '5341'
165
+ ], {
166
+ config: {
167
+ root: cwd
168
+ }
169
+ });
170
+ expect(error).toBeDefined();
171
+ expect(error?.message).toContain('Apps require an organization ID (orgId)');
172
+ expect(error?.oclif?.exit).toBe(1);
173
+ });
174
+ });
175
+ describe('basic-studio', ()=>{
176
+ test('should start the dev server for studio', async ()=>{
177
+ const cwd = await testExample('basic-studio');
178
+ process.cwd = ()=>cwd;
179
+ const { error, result, stderr, stdout } = await testCommand(DevCommand, [
180
+ '--port',
181
+ '5335'
182
+ ], {
183
+ config: {
184
+ root: cwd
185
+ }
186
+ });
187
+ expect(error).toBeUndefined();
188
+ expect(stdout).toContain('Sanity Studio using vite@');
189
+ expect(stdout).toContain('ready in');
190
+ expect(stdout).toContain('ms and running at http://localhost:5335');
191
+ expect(stderr).toContain('Checking configuration files');
192
+ await result.close?.();
193
+ });
194
+ test('should start with custom host configuration', async ()=>{
195
+ const cwd = await testExample('basic-studio');
196
+ process.cwd = ()=>cwd;
197
+ const { error, result, stdout } = await testCommand(DevCommand, [
198
+ '--host',
199
+ '127.0.0.1',
200
+ '--port',
201
+ '5336'
202
+ ], {
203
+ config: {
204
+ root: cwd
205
+ }
206
+ });
207
+ expect(error).toBeUndefined();
208
+ expect(stdout).toContain('http://127.0.0.1:5336');
209
+ await result.close?.();
210
+ });
211
+ test('should start with load-in-dashboard', async ()=>{
212
+ const cwd = await testExample('basic-studio');
213
+ process.cwd = ()=>cwd;
214
+ const projectId = 'test-project';
215
+ // Need to modify the sanity config to include projectId for this test
216
+ const configPath = join(cwd, 'sanity.cli.ts');
217
+ const existingConfig = await readFile(configPath, 'utf8');
218
+ // Add projectId to the config
219
+ const modifiedConfig = existingConfig.replace(/projectId: '.*',/, `projectId: '${projectId}',`);
220
+ await writeFile(configPath, modifiedConfig);
221
+ mockApi({
222
+ apiVersion: 'v2025-08-25',
223
+ uri: `/projects/${projectId}`
224
+ }).reply(200, {
225
+ organizationId: 'test-org'
226
+ });
227
+ const { error, result, stderr, stdout } = await testCommand(DevCommand, [
228
+ '--load-in-dashboard',
229
+ '--port',
230
+ '5340'
231
+ ], {
232
+ config: {
233
+ root: cwd
234
+ }
235
+ });
236
+ expect(error).toBeUndefined();
237
+ expect(stdout).toContain('Dev server started on port 5340');
238
+ expect(stdout).toContain('View your studio in the Sanity dashboard here:');
239
+ expect(stdout).toContain('https://www.sanity.io/@test-org?dev=http%3A%2F%2Flocalhost%3A5340');
240
+ expect(stderr).toContain('Checking configuration files');
241
+ await result.close?.();
242
+ });
243
+ test('should error when projectId is missing with --load-in-dashboard', async ()=>{
244
+ const cwd = await testExample('basic-studio');
245
+ process.cwd = ()=>cwd;
246
+ // Modify config to remove projectId
247
+ const configPath = join(cwd, 'sanity.cli.ts');
248
+ const existingConfig = await readFile(configPath, 'utf8');
249
+ const modifiedConfig = existingConfig.replace(/projectId: '[^']*',/, '');
250
+ await writeFile(configPath, modifiedConfig);
251
+ const { error } = await testCommand(DevCommand, [
252
+ '--load-in-dashboard',
253
+ '--port',
254
+ '5343'
255
+ ], {
256
+ config: {
257
+ root: cwd
258
+ }
259
+ });
260
+ expect(error).toBeDefined();
261
+ expect(error?.message).toContain('Project Id is required to load in dashboard');
262
+ expect(error?.oclif?.exit).toBe(1);
263
+ });
264
+ test('should error when API fails to fetch organizationId', async ()=>{
265
+ const cwd = await testExample('basic-studio');
266
+ process.cwd = ()=>cwd;
267
+ const projectId = 'test-project';
268
+ const configPath = join(cwd, 'sanity.cli.ts');
269
+ const existingConfig = await readFile(configPath, 'utf8');
270
+ const modifiedConfig = existingConfig.replace(/projectId: '.*',/, `projectId: '${projectId}',`);
271
+ await writeFile(configPath, modifiedConfig);
272
+ mockApi({
273
+ apiVersion: 'v2025-08-25',
274
+ uri: `/projects/${projectId}`
275
+ }).reply(404, {
276
+ error: 'Project not found'
277
+ });
278
+ const { error } = await testCommand(DevCommand, [
279
+ '--load-in-dashboard',
280
+ '--port',
281
+ '5344'
282
+ ], {
283
+ config: {
284
+ root: cwd
285
+ }
286
+ });
287
+ expect(error).toBeDefined();
288
+ expect(error?.message).toContain('Failed to get organization id from project id');
289
+ expect(error?.oclif?.exit).toBe(1);
290
+ });
291
+ test('should start dev server successfully when user declines auto-updates', async ()=>{
292
+ const cwd = await testExample('basic-studio');
293
+ process.cwd = ()=>cwd;
294
+ mockCompareDependencyVersions.mockResolvedValueOnce([
295
+ {
296
+ installed: '3.0.0',
297
+ pkg: 'sanity',
298
+ remote: '3.1.0'
299
+ }
300
+ ]);
301
+ mockConfirm.mockResolvedValueOnce(false); // User declines upgrade
302
+ const { error, result, stderr, stdout } = await testCommand(DevCommand, [
303
+ '--auto-updates',
304
+ '--port',
305
+ '5346'
306
+ ], {
307
+ config: {
308
+ root: cwd
309
+ }
310
+ });
311
+ expect(error).toBeUndefined();
312
+ // Check that the server started successfully with auto-updates flag
313
+ expect(stdout).toMatch(/running at http:\/\/localhost:5346/);
314
+ expect(stderr).toContain('Checking configuration files');
315
+ await result.close?.();
316
+ });
317
+ test('should handle auto-updates with version mismatch and user accepts upgrade', async ()=>{
318
+ const cwd = await testExample('basic-studio');
319
+ process.cwd = ()=>cwd;
320
+ mockCompareDependencyVersions.mockResolvedValueOnce([
321
+ {
322
+ installed: '3.0.0',
323
+ pkg: 'sanity',
324
+ remote: '3.1.0'
325
+ }
326
+ ]);
327
+ mockConfirm.mockResolvedValueOnce(true); // User accepts upgrade
328
+ mockUpgradePackages.mockResolvedValueOnce(undefined);
329
+ mockGetPackageManagerChoice.mockResolvedValueOnce({
330
+ chosen: 'npm',
331
+ mostOptimal: 'npm'
332
+ });
333
+ const { error, result, stderr, stdout } = await testCommand(DevCommand, [
334
+ '--auto-updates',
335
+ '--port',
336
+ '5348'
337
+ ], {
338
+ config: {
339
+ root: cwd
340
+ }
341
+ });
342
+ expect(error).toBeUndefined();
343
+ expect(stdout).toMatch(/running at http:\/\/localhost:5348/);
344
+ expect(stderr).toContain('Checking configuration files');
345
+ expect(mockUpgradePackages).toHaveBeenCalledWith({
346
+ packageManager: 'npm',
347
+ packages: [
348
+ [
349
+ 'sanity',
350
+ '3.1.0'
351
+ ]
352
+ ]
353
+ }, {
354
+ output: expect.any(Object),
355
+ workDir: cwd
356
+ });
357
+ await result.close?.();
358
+ });
359
+ test('should handle invalid Sanity version during auto-updates', async ()=>{
360
+ const cwd = await testExample('basic-studio');
361
+ process.cwd = ()=>cwd;
362
+ mockCheckRequiredDependencies.mockResolvedValueOnce({
363
+ installedSanityVersion: 'invalid-version'
364
+ });
365
+ const { error } = await testCommand(DevCommand, [
366
+ '--auto-updates',
367
+ '--port',
368
+ '5347'
369
+ ], {
370
+ config: {
371
+ root: cwd
372
+ }
373
+ });
374
+ expect(error).toBeDefined();
375
+ expect(error?.message).toContain('Failed to parse installed Sanity version');
376
+ });
377
+ });
378
+ test('should throw an error if port is already in use', async ()=>{
379
+ const cwd = await testExample('basic-studio');
380
+ process.cwd = ()=>cwd;
381
+ // Create a server on port 5337 to block it
382
+ const server = createServer();
383
+ await new Promise((resolve)=>{
384
+ server.listen(5337, 'localhost', resolve);
385
+ });
386
+ try {
387
+ const { error } = await testCommand(DevCommand, [
388
+ '--port',
389
+ '5337'
390
+ ], {
391
+ config: {
392
+ root: cwd
393
+ }
394
+ });
395
+ expect(error).toBeDefined();
396
+ expect(error?.message).toContain('Port 5337 is already in use');
397
+ expect(error?.oclif?.exit).toBe(1);
398
+ } finally{
399
+ // Clean up the server
400
+ await new Promise((resolve, reject)=>{
401
+ server.close((err)=>{
402
+ if (err) reject(err);
403
+ else resolve();
404
+ });
405
+ });
406
+ }
407
+ });
408
+ });
409
+
410
+ //# sourceMappingURL=dev.test.js.map