@sanity/cli 6.0.0-alpha.5 → 6.0.0-alpha.6

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 (461) hide show
  1. package/dist/actions/dataset/create.d.ts +49 -0
  2. package/dist/actions/dataset/create.js +48 -0
  3. package/dist/actions/dataset/create.js.map +1 -0
  4. package/dist/actions/dataset/determineDatasetAclMode.d.ts +37 -0
  5. package/dist/actions/dataset/determineDatasetAclMode.js +36 -0
  6. package/dist/actions/dataset/determineDatasetAclMode.js.map +1 -0
  7. package/dist/actions/debug/gatherDebugInfo.js +15 -21
  8. package/dist/actions/debug/gatherDebugInfo.js.map +1 -1
  9. package/dist/actions/debug/types.d.ts +0 -2
  10. package/dist/actions/debug/types.js.map +1 -1
  11. package/dist/actions/deploy/deployApp.js +13 -0
  12. package/dist/actions/deploy/deployApp.js.map +1 -1
  13. package/dist/actions/init/remoteTemplate.js +1 -1
  14. package/dist/actions/init/remoteTemplate.js.map +1 -1
  15. package/dist/actions/manifest/extractAppManifest.d.ts +20 -0
  16. package/dist/actions/manifest/extractAppManifest.js +51 -0
  17. package/dist/actions/manifest/extractAppManifest.js.map +1 -0
  18. package/dist/actions/manifest/extractManifest.js +1 -1
  19. package/dist/actions/manifest/extractManifest.js.map +1 -1
  20. package/dist/actions/manifest/types.d.ts +6 -1
  21. package/dist/actions/manifest/types.js.map +1 -1
  22. package/dist/actions/media/importAspects.js +2 -1
  23. package/dist/actions/media/importAspects.js.map +1 -1
  24. package/dist/actions/schema/utils/uniqByProjectIdDataset.d.ts +1 -1
  25. package/dist/commands/dataset/create.d.ts +0 -2
  26. package/dist/commands/dataset/create.js +8 -54
  27. package/dist/commands/dataset/create.js.map +1 -1
  28. package/dist/commands/debug.js +5 -9
  29. package/dist/commands/debug.js.map +1 -1
  30. package/dist/commands/init.d.ts +6 -1
  31. package/dist/commands/init.js +358 -20
  32. package/dist/commands/init.js.map +1 -1
  33. package/dist/commands/manifest/extract.js +7 -8
  34. package/dist/commands/manifest/extract.js.map +1 -1
  35. package/dist/config/createCliConfig.d.ts +9 -0
  36. package/dist/prompts/init/promptForTypescript.d.ts +2 -0
  37. package/dist/prompts/init/promptForTypescript.js +15 -0
  38. package/dist/prompts/init/promptForTypescript.js.map +1 -0
  39. package/dist/prompts/promptForDatasetAclMode.d.ts +9 -0
  40. package/dist/prompts/promptForDatasetAclMode.js +27 -0
  41. package/dist/prompts/promptForDatasetAclMode.js.map +1 -0
  42. package/dist/prompts/promptForDatasetName.d.ts +1 -1
  43. package/dist/prompts/promptForDatasetName.js +4 -1
  44. package/dist/prompts/promptForDatasetName.js.map +1 -1
  45. package/dist/services/organizations.d.ts +3 -1
  46. package/dist/services/organizations.js +2 -1
  47. package/dist/services/organizations.js.map +1 -1
  48. package/dist/services/user.d.ts +5 -0
  49. package/dist/services/user.js +12 -1
  50. package/dist/services/user.js.map +1 -1
  51. package/dist/services/userApplications.d.ts +3 -1
  52. package/dist/services/userApplications.js +5 -1
  53. package/dist/services/userApplications.js.map +1 -1
  54. package/oclif.manifest.json +113 -113
  55. package/package.json +16 -12
  56. package/templates/app-quickstart/src/App.css +20 -0
  57. package/templates/app-quickstart/src/App.tsx +25 -0
  58. package/templates/app-quickstart/src/ExampleComponent.css +90 -0
  59. package/templates/app-quickstart/src/ExampleComponent.tsx +37 -0
  60. package/templates/app-sanity-ui/src/App.tsx +34 -0
  61. package/templates/app-sanity-ui/src/ExampleComponent.tsx +34 -0
  62. package/templates/app-sanity-ui/src/SanityUI.tsx +23 -0
  63. package/templates/blog/README.md +11 -0
  64. package/templates/blog/schemaTypes/author.js +50 -0
  65. package/templates/blog/schemaTypes/blockContent.js +67 -0
  66. package/templates/blog/schemaTypes/category.js +19 -0
  67. package/templates/blog/schemaTypes/index.js +6 -0
  68. package/templates/blog/schemaTypes/post.js +65 -0
  69. package/templates/blog/static/.gitkeep +1 -0
  70. package/templates/clean/README.md +9 -0
  71. package/templates/clean/schemaTypes/index.js +1 -0
  72. package/templates/clean/static/.gitkeep +1 -0
  73. package/templates/ecommerce/README.md +11 -0
  74. package/templates/ecommerce/plugins/.gitkeep +1 -0
  75. package/templates/ecommerce/plugins/barcode-input/BarcodeInput.js +62 -0
  76. package/templates/ecommerce/plugins/barcode-input/index.js +9 -0
  77. package/templates/ecommerce/plugins/barcode-input/schemaType.js +60 -0
  78. package/templates/ecommerce/schemaTypes/blockContent.js +67 -0
  79. package/templates/ecommerce/schemaTypes/category.js +39 -0
  80. package/templates/ecommerce/schemaTypes/index.js +23 -0
  81. package/templates/ecommerce/schemaTypes/locale/localeBlockContent.js +19 -0
  82. package/templates/ecommerce/schemaTypes/locale/localeString.js +19 -0
  83. package/templates/ecommerce/schemaTypes/locale/localeText.js +19 -0
  84. package/templates/ecommerce/schemaTypes/locale/supportedLanguages.js +5 -0
  85. package/templates/ecommerce/schemaTypes/product.js +83 -0
  86. package/templates/ecommerce/schemaTypes/productVariant.js +52 -0
  87. package/templates/ecommerce/schemaTypes/vendor.js +39 -0
  88. package/templates/ecommerce/static/.gitkeep +1 -0
  89. package/templates/get-started/README.md +9 -0
  90. package/templates/get-started/plugins/.gitkeep +1 -0
  91. package/templates/get-started/plugins/sanity-plugin-tutorial/CustomDefaultLayout.tsx +16 -0
  92. package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +104 -0
  93. package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +11 -0
  94. package/templates/get-started/schemaTypes/index.ts +1 -0
  95. package/templates/get-started/static/.gitkeep +1 -0
  96. package/templates/moviedb/README.md +10 -0
  97. package/templates/moviedb/schemaTypes/blockContent.js +67 -0
  98. package/templates/moviedb/schemaTypes/castMember.js +37 -0
  99. package/templates/moviedb/schemaTypes/crewMember.js +52 -0
  100. package/templates/moviedb/schemaTypes/index.js +22 -0
  101. package/templates/moviedb/schemaTypes/movie.js +85 -0
  102. package/templates/moviedb/schemaTypes/person.js +37 -0
  103. package/templates/moviedb/schemaTypes/plotSummaries.js +20 -0
  104. package/templates/moviedb/schemaTypes/plotSummary.js +24 -0
  105. package/templates/moviedb/schemaTypes/screening.js +81 -0
  106. package/templates/moviedb/static/.gitkeep +1 -0
  107. package/templates/quickstart/README.md +9 -0
  108. package/templates/quickstart/schemaTypes/index.js +1 -0
  109. package/templates/quickstart/static/.gitkeep +1 -0
  110. package/templates/shared/gitignore.txt +29 -0
  111. package/templates/shared/tsconfig.json +17 -0
  112. package/templates/shopify/README.md +85 -0
  113. package/templates/shopify/components/hotspots/ProductTooltip.tsx +38 -0
  114. package/templates/shopify/components/icons/Shopify.tsx +20 -0
  115. package/templates/shopify/components/inputs/CollectionHidden.tsx +23 -0
  116. package/templates/shopify/components/inputs/PlaceholderString.tsx +20 -0
  117. package/templates/shopify/components/inputs/ProductHidden.tsx +64 -0
  118. package/templates/shopify/components/inputs/ProductVariantHidden.tsx +24 -0
  119. package/templates/shopify/components/inputs/ProxyString.tsx +32 -0
  120. package/templates/shopify/components/media/ColorTheme.tsx +38 -0
  121. package/templates/shopify/components/media/ShopifyDocumentStatus.tsx +82 -0
  122. package/templates/shopify/components/studio/Navbar.tsx +29 -0
  123. package/templates/shopify/constants.ts +61 -0
  124. package/templates/shopify/docs/features.md +158 -0
  125. package/templates/shopify/plugins/customDocumentActions/index.ts +55 -0
  126. package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +144 -0
  127. package/templates/shopify/plugins/customDocumentActions/shopifyLink.ts +39 -0
  128. package/templates/shopify/plugins/customDocumentActions/types.ts +14 -0
  129. package/templates/shopify/schemaTypes/documents/collection.tsx +142 -0
  130. package/templates/shopify/schemaTypes/documents/colorTheme.tsx +44 -0
  131. package/templates/shopify/schemaTypes/documents/page.ts +70 -0
  132. package/templates/shopify/schemaTypes/documents/product.tsx +132 -0
  133. package/templates/shopify/schemaTypes/documents/productVariant.tsx +67 -0
  134. package/templates/shopify/schemaTypes/index.ts +108 -0
  135. package/templates/shopify/schemaTypes/objects/collection/collectionGroupType.ts +27 -0
  136. package/templates/shopify/schemaTypes/objects/collection/collectionLinksType.ts +16 -0
  137. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +48 -0
  138. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorType.tsx +50 -0
  139. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeObjectType.ts +40 -0
  140. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeType.ts +49 -0
  141. package/templates/shopify/schemaTypes/objects/global/footerType.ts +22 -0
  142. package/templates/shopify/schemaTypes/objects/global/menuLinksType.ts +21 -0
  143. package/templates/shopify/schemaTypes/objects/global/menuType.ts +17 -0
  144. package/templates/shopify/schemaTypes/objects/global/notFoundPageType.ts +37 -0
  145. package/templates/shopify/schemaTypes/objects/hotspot/imageWithProductHotspotsType.ts +48 -0
  146. package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +17 -0
  147. package/templates/shopify/schemaTypes/objects/hotspot/spotType.tsx +60 -0
  148. package/templates/shopify/schemaTypes/objects/link/linkEmailType.tsx +34 -0
  149. package/templates/shopify/schemaTypes/objects/link/linkExternalType.tsx +37 -0
  150. package/templates/shopify/schemaTypes/objects/link/linkInternalType.tsx +33 -0
  151. package/templates/shopify/schemaTypes/objects/link/linkProductType.tsx +60 -0
  152. package/templates/shopify/schemaTypes/objects/module/accordionGroupType.ts +33 -0
  153. package/templates/shopify/schemaTypes/objects/module/accordionType.ts +28 -0
  154. package/templates/shopify/schemaTypes/objects/module/callToActionType.tsx +85 -0
  155. package/templates/shopify/schemaTypes/objects/module/calloutType.ts +38 -0
  156. package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +47 -0
  157. package/templates/shopify/schemaTypes/objects/module/gridItemType.ts +41 -0
  158. package/templates/shopify/schemaTypes/objects/module/gridType.ts +28 -0
  159. package/templates/shopify/schemaTypes/objects/module/heroType.tsx +40 -0
  160. package/templates/shopify/schemaTypes/objects/module/imageCallToActionType.tsx +19 -0
  161. package/templates/shopify/schemaTypes/objects/module/imageFeatureType.ts +80 -0
  162. package/templates/shopify/schemaTypes/objects/module/imageFeaturesType.tsx +51 -0
  163. package/templates/shopify/schemaTypes/objects/module/instagramType.ts +35 -0
  164. package/templates/shopify/schemaTypes/objects/module/productFeaturesType.tsx +50 -0
  165. package/templates/shopify/schemaTypes/objects/module/productReferenceType.tsx +42 -0
  166. package/templates/shopify/schemaTypes/objects/seoType.ts +31 -0
  167. package/templates/shopify/schemaTypes/objects/shopify/collectionRuleType.tsx +37 -0
  168. package/templates/shopify/schemaTypes/objects/shopify/inventoryType.ts +25 -0
  169. package/templates/shopify/schemaTypes/objects/shopify/optionType.tsx +31 -0
  170. package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +11 -0
  171. package/templates/shopify/schemaTypes/objects/shopify/priceRangeType.ts +20 -0
  172. package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +142 -0
  173. package/templates/shopify/schemaTypes/objects/shopify/proxyStringType.ts +12 -0
  174. package/templates/shopify/schemaTypes/objects/shopify/shopType.ts +15 -0
  175. package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +84 -0
  176. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +131 -0
  177. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductVariantType.ts +121 -0
  178. package/templates/shopify/schemaTypes/portableText/portableTextSimpleType.tsx +45 -0
  179. package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +52 -0
  180. package/templates/shopify/schemaTypes/singletons/homeType.ts +49 -0
  181. package/templates/shopify/schemaTypes/singletons/settingsType.ts +96 -0
  182. package/templates/shopify/static/.gitkeep +1 -0
  183. package/templates/shopify/structure/collectionStructure.ts +9 -0
  184. package/templates/shopify/structure/colorThemeStructure.ts +9 -0
  185. package/templates/shopify/structure/homeStructure.ts +9 -0
  186. package/templates/shopify/structure/index.ts +57 -0
  187. package/templates/shopify/structure/pageStructure.ts +11 -0
  188. package/templates/shopify/structure/productStructure.ts +51 -0
  189. package/templates/shopify/structure/settingStructure.ts +9 -0
  190. package/templates/shopify/utils/blocksToText.ts +20 -0
  191. package/templates/shopify/utils/defineStructure.ts +11 -0
  192. package/templates/shopify/utils/getPriceRange.ts +24 -0
  193. package/templates/shopify/utils/shopifyUrls.ts +22 -0
  194. package/templates/shopify/utils/validateSlug.ts +18 -0
  195. package/templates/shopify-online-storefront/README.md +54 -0
  196. package/templates/shopify-online-storefront/components/icons/Shopify.tsx +22 -0
  197. package/templates/shopify-online-storefront/components/inputs/CollectionHidden.tsx +23 -0
  198. package/templates/shopify-online-storefront/components/inputs/PlaceholderString.tsx +25 -0
  199. package/templates/shopify-online-storefront/components/inputs/ProductHidden.tsx +66 -0
  200. package/templates/shopify-online-storefront/components/inputs/ProductVariantHidden.tsx +25 -0
  201. package/templates/shopify-online-storefront/components/inputs/ProxyString.tsx +38 -0
  202. package/templates/shopify-online-storefront/components/media/ShopifyDocumentStatus.tsx +83 -0
  203. package/templates/shopify-online-storefront/constants.ts +18 -0
  204. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +45 -0
  205. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +144 -0
  206. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyLink.ts +39 -0
  207. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/types.ts +14 -0
  208. package/templates/shopify-online-storefront/schemaTypes/blocks/blockContent.ts +32 -0
  209. package/templates/shopify-online-storefront/schemaTypes/documents/collection.tsx +83 -0
  210. package/templates/shopify-online-storefront/schemaTypes/documents/product.tsx +102 -0
  211. package/templates/shopify-online-storefront/schemaTypes/documents/productVariant.tsx +82 -0
  212. package/templates/shopify-online-storefront/schemaTypes/index.ts +43 -0
  213. package/templates/shopify-online-storefront/schemaTypes/objects/accordion.ts +31 -0
  214. package/templates/shopify-online-storefront/schemaTypes/objects/accordionGroup.ts +35 -0
  215. package/templates/shopify-online-storefront/schemaTypes/objects/callout.ts +40 -0
  216. package/templates/shopify-online-storefront/schemaTypes/objects/inventory.ts +30 -0
  217. package/templates/shopify-online-storefront/schemaTypes/objects/option.ts +30 -0
  218. package/templates/shopify-online-storefront/schemaTypes/objects/priceRange.ts +22 -0
  219. package/templates/shopify-online-storefront/schemaTypes/objects/proxyString.ts +11 -0
  220. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollection.ts +109 -0
  221. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollectionRule.tsx +45 -0
  222. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProduct.ts +165 -0
  223. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProductVariant.ts +151 -0
  224. package/templates/shopify-online-storefront/structure/collectionStructure.ts +9 -0
  225. package/templates/shopify-online-storefront/structure/index.ts +37 -0
  226. package/templates/shopify-online-storefront/structure/productStructure.ts +35 -0
  227. package/templates/shopify-online-storefront/utils/defineStructure.ts +11 -0
  228. package/templates/shopify-online-storefront/utils/getPriceRange.ts +24 -0
  229. package/templates/shopify-online-storefront/utils/shopifyUrls.ts +22 -0
  230. package/dist/actions/build/__tests__/buildApp.test.js +0 -367
  231. package/dist/actions/build/__tests__/buildApp.test.js.map +0 -1
  232. package/dist/actions/build/__tests__/buildStudio.test.js +0 -561
  233. package/dist/actions/build/__tests__/buildStudio.test.js.map +0 -1
  234. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js +0 -233
  235. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js.map +0 -1
  236. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js +0 -414
  237. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js.map +0 -1
  238. package/dist/actions/build/__tests__/determineBasePath.test.js +0 -24
  239. package/dist/actions/build/__tests__/determineBasePath.test.js.map +0 -1
  240. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js +0 -109
  241. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js.map +0 -1
  242. package/dist/actions/build/__tests__/getViteConfig.test.js +0 -493
  243. package/dist/actions/build/__tests__/getViteConfig.test.js.map +0 -1
  244. package/dist/actions/build/__tests__/renderDocument.test.js +0 -278
  245. package/dist/actions/build/__tests__/renderDocument.test.js.map +0 -1
  246. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js +0 -153
  247. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js.map +0 -1
  248. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js +0 -657
  249. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js.map +0 -1
  250. package/dist/actions/dataset/__tests__/validateDatasetName.test.js +0 -182
  251. package/dist/actions/dataset/__tests__/validateDatasetName.test.js.map +0 -1
  252. package/dist/actions/deploy/__tests__/checkDir.test.js +0 -120
  253. package/dist/actions/deploy/__tests__/checkDir.test.js.map +0 -1
  254. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js +0 -16
  255. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js.map +0 -1
  256. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js +0 -124
  257. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js.map +0 -1
  258. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js +0 -274
  259. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js.map +0 -1
  260. package/dist/actions/media/__tests__/importMedia.test.js +0 -182
  261. package/dist/actions/media/__tests__/importMedia.test.js.map +0 -1
  262. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js +0 -174
  263. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js.map +0 -1
  264. package/dist/actions/schema/__tests__/validateAction.test.js +0 -281
  265. package/dist/actions/schema/__tests__/validateAction.test.js.map +0 -1
  266. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js +0 -27
  267. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js.map +0 -1
  268. package/dist/actions/users/__tests__/validateEmail.test.js +0 -16
  269. package/dist/actions/users/__tests__/validateEmail.test.js.map +0 -1
  270. package/dist/commands/__tests__/blueprints.test.js +0 -54
  271. package/dist/commands/__tests__/blueprints.test.js.map +0 -1
  272. package/dist/commands/__tests__/build.test.js +0 -132
  273. package/dist/commands/__tests__/build.test.js.map +0 -1
  274. package/dist/commands/__tests__/codemod.test.js +0 -271
  275. package/dist/commands/__tests__/codemod.test.js.map +0 -1
  276. package/dist/commands/__tests__/debug.test.js +0 -590
  277. package/dist/commands/__tests__/debug.test.js.map +0 -1
  278. package/dist/commands/__tests__/deploy.test.js +0 -1945
  279. package/dist/commands/__tests__/deploy.test.js.map +0 -1
  280. package/dist/commands/__tests__/dev.test.js +0 -453
  281. package/dist/commands/__tests__/dev.test.js.map +0 -1
  282. package/dist/commands/__tests__/exec.test.js +0 -207
  283. package/dist/commands/__tests__/exec.test.js.map +0 -1
  284. package/dist/commands/__tests__/init/init.authentication.test.js +0 -73
  285. package/dist/commands/__tests__/init/init.authentication.test.js.map +0 -1
  286. package/dist/commands/__tests__/init/init.create-new-project.test.js +0 -195
  287. package/dist/commands/__tests__/init/init.create-new-project.test.js.map +0 -1
  288. package/dist/commands/__tests__/init/init.plan.test.js +0 -279
  289. package/dist/commands/__tests__/init/init.plan.test.js.map +0 -1
  290. package/dist/commands/__tests__/init/init.setup.test.js +0 -335
  291. package/dist/commands/__tests__/init/init.setup.test.js.map +0 -1
  292. package/dist/commands/__tests__/install.test.js +0 -282
  293. package/dist/commands/__tests__/install.test.js.map +0 -1
  294. package/dist/commands/__tests__/learn.test.js +0 -29
  295. package/dist/commands/__tests__/learn.test.js.map +0 -1
  296. package/dist/commands/__tests__/logout.test.js +0 -91
  297. package/dist/commands/__tests__/logout.test.js.map +0 -1
  298. package/dist/commands/__tests__/manage.test.js +0 -110
  299. package/dist/commands/__tests__/manage.test.js.map +0 -1
  300. package/dist/commands/__tests__/migration.test.js +0 -119
  301. package/dist/commands/__tests__/migration.test.js.map +0 -1
  302. package/dist/commands/__tests__/preview.test.js +0 -261
  303. package/dist/commands/__tests__/preview.test.js.map +0 -1
  304. package/dist/commands/__tests__/start.test.js +0 -253
  305. package/dist/commands/__tests__/start.test.js.map +0 -1
  306. package/dist/commands/__tests__/undeploy.test.js +0 -382
  307. package/dist/commands/__tests__/undeploy.test.js.map +0 -1
  308. package/dist/commands/__tests__/versions.test.js +0 -142
  309. package/dist/commands/__tests__/versions.test.js.map +0 -1
  310. package/dist/commands/backup/__tests__/disable.test.js +0 -204
  311. package/dist/commands/backup/__tests__/disable.test.js.map +0 -1
  312. package/dist/commands/backup/__tests__/download.test.js +0 -768
  313. package/dist/commands/backup/__tests__/download.test.js.map +0 -1
  314. package/dist/commands/backup/__tests__/enable.test.js +0 -286
  315. package/dist/commands/backup/__tests__/enable.test.js.map +0 -1
  316. package/dist/commands/backup/__tests__/list.test.js +0 -330
  317. package/dist/commands/backup/__tests__/list.test.js.map +0 -1
  318. package/dist/commands/cors/__tests__/add.test.js +0 -376
  319. package/dist/commands/cors/__tests__/add.test.js.map +0 -1
  320. package/dist/commands/cors/__tests__/delete.test.js +0 -308
  321. package/dist/commands/cors/__tests__/delete.test.js.map +0 -1
  322. package/dist/commands/cors/__tests__/list.test.js +0 -241
  323. package/dist/commands/cors/__tests__/list.test.js.map +0 -1
  324. package/dist/commands/dataset/__tests__/copy.test.js +0 -628
  325. package/dist/commands/dataset/__tests__/copy.test.js.map +0 -1
  326. package/dist/commands/dataset/__tests__/create.test.js +0 -342
  327. package/dist/commands/dataset/__tests__/create.test.js.map +0 -1
  328. package/dist/commands/dataset/__tests__/delete.test.js +0 -231
  329. package/dist/commands/dataset/__tests__/delete.test.js.map +0 -1
  330. package/dist/commands/dataset/__tests__/export.test.js +0 -601
  331. package/dist/commands/dataset/__tests__/export.test.js.map +0 -1
  332. package/dist/commands/dataset/__tests__/import.test.js +0 -53
  333. package/dist/commands/dataset/__tests__/import.test.js.map +0 -1
  334. package/dist/commands/dataset/__tests__/list.test.js +0 -216
  335. package/dist/commands/dataset/__tests__/list.test.js.map +0 -1
  336. package/dist/commands/dataset/alias/__tests__/create.test.js +0 -339
  337. package/dist/commands/dataset/alias/__tests__/create.test.js.map +0 -1
  338. package/dist/commands/dataset/alias/__tests__/delete.test.js +0 -247
  339. package/dist/commands/dataset/alias/__tests__/delete.test.js.map +0 -1
  340. package/dist/commands/dataset/alias/__tests__/link.test.js +0 -376
  341. package/dist/commands/dataset/alias/__tests__/link.test.js.map +0 -1
  342. package/dist/commands/dataset/alias/__tests__/unlink.test.js +0 -313
  343. package/dist/commands/dataset/alias/__tests__/unlink.test.js.map +0 -1
  344. package/dist/commands/dataset/visibility/__tests__/get.test.js +0 -128
  345. package/dist/commands/dataset/visibility/__tests__/get.test.js.map +0 -1
  346. package/dist/commands/dataset/visibility/__tests__/set.test.js +0 -198
  347. package/dist/commands/dataset/visibility/__tests__/set.test.js.map +0 -1
  348. package/dist/commands/docs/__tests__/browse.test.js +0 -29
  349. package/dist/commands/docs/__tests__/browse.test.js.map +0 -1
  350. package/dist/commands/docs/__tests__/read.test.js +0 -78
  351. package/dist/commands/docs/__tests__/read.test.js.map +0 -1
  352. package/dist/commands/docs/__tests__/search.test.js +0 -255
  353. package/dist/commands/docs/__tests__/search.test.js.map +0 -1
  354. package/dist/commands/documents/__tests__/create.test.js +0 -1030
  355. package/dist/commands/documents/__tests__/create.test.js.map +0 -1
  356. package/dist/commands/documents/__tests__/delete.test.js +0 -300
  357. package/dist/commands/documents/__tests__/delete.test.js.map +0 -1
  358. package/dist/commands/documents/__tests__/get.test.js +0 -182
  359. package/dist/commands/documents/__tests__/get.test.js.map +0 -1
  360. package/dist/commands/documents/__tests__/query.test.js +0 -300
  361. package/dist/commands/documents/__tests__/query.test.js.map +0 -1
  362. package/dist/commands/documents/__tests__/validate.test.js +0 -249
  363. package/dist/commands/documents/__tests__/validate.test.js.map +0 -1
  364. package/dist/commands/graphql/__tests__/list.test.js +0 -240
  365. package/dist/commands/graphql/__tests__/list.test.js.map +0 -1
  366. package/dist/commands/graphql/__tests__/undeploy.test.js +0 -410
  367. package/dist/commands/graphql/__tests__/undeploy.test.js.map +0 -1
  368. package/dist/commands/hook/__tests__/attempt.test.js +0 -275
  369. package/dist/commands/hook/__tests__/attempt.test.js.map +0 -1
  370. package/dist/commands/hook/__tests__/create.test.js +0 -119
  371. package/dist/commands/hook/__tests__/create.test.js.map +0 -1
  372. package/dist/commands/hook/__tests__/delete.test.js +0 -233
  373. package/dist/commands/hook/__tests__/delete.test.js.map +0 -1
  374. package/dist/commands/hook/__tests__/list.test.js +0 -145
  375. package/dist/commands/hook/__tests__/list.test.js.map +0 -1
  376. package/dist/commands/hook/__tests__/logs.test.js +0 -798
  377. package/dist/commands/hook/__tests__/logs.test.js.map +0 -1
  378. package/dist/commands/manifest/__tests__/extract.test.js +0 -132
  379. package/dist/commands/manifest/__tests__/extract.test.js.map +0 -1
  380. package/dist/commands/mcp/__tests__/configure.test.js +0 -397
  381. package/dist/commands/mcp/__tests__/configure.test.js.map +0 -1
  382. package/dist/commands/media/__tests__/create-aspect.test.js +0 -173
  383. package/dist/commands/media/__tests__/create-aspect.test.js.map +0 -1
  384. package/dist/commands/media/__tests__/delete-aspect.test.js +0 -342
  385. package/dist/commands/media/__tests__/delete-aspect.test.js.map +0 -1
  386. package/dist/commands/media/__tests__/deploy-aspect.test.js +0 -619
  387. package/dist/commands/media/__tests__/deploy-aspect.test.js.map +0 -1
  388. package/dist/commands/media/__tests__/export.test.js +0 -697
  389. package/dist/commands/media/__tests__/export.test.js.map +0 -1
  390. package/dist/commands/media/__tests__/import.test.js +0 -347
  391. package/dist/commands/media/__tests__/import.test.js.map +0 -1
  392. package/dist/commands/openapi/__tests__/get.test.js +0 -149
  393. package/dist/commands/openapi/__tests__/get.test.js.map +0 -1
  394. package/dist/commands/openapi/__tests__/list.test.js +0 -113
  395. package/dist/commands/openapi/__tests__/list.test.js.map +0 -1
  396. package/dist/commands/projects/__tests__/list.test.js +0 -154
  397. package/dist/commands/projects/__tests__/list.test.js.map +0 -1
  398. package/dist/commands/schema/__tests__/delete.test.js +0 -454
  399. package/dist/commands/schema/__tests__/delete.test.js.map +0 -1
  400. package/dist/commands/schema/__tests__/deploy.test.js +0 -348
  401. package/dist/commands/schema/__tests__/deploy.test.js.map +0 -1
  402. package/dist/commands/schema/__tests__/extract.test.js +0 -121
  403. package/dist/commands/schema/__tests__/extract.test.js.map +0 -1
  404. package/dist/commands/schema/__tests__/list.test.js +0 -399
  405. package/dist/commands/schema/__tests__/list.test.js.map +0 -1
  406. package/dist/commands/schema/__tests__/validate.test.js +0 -121
  407. package/dist/commands/schema/__tests__/validate.test.js.map +0 -1
  408. package/dist/commands/telemetry/__tests__/disable.test.js +0 -147
  409. package/dist/commands/telemetry/__tests__/disable.test.js.map +0 -1
  410. package/dist/commands/telemetry/__tests__/enable.test.js +0 -133
  411. package/dist/commands/telemetry/__tests__/enable.test.js.map +0 -1
  412. package/dist/commands/telemetry/__tests__/status.test.js +0 -155
  413. package/dist/commands/telemetry/__tests__/status.test.js.map +0 -1
  414. package/dist/commands/tokens/__tests__/add.test.js +0 -435
  415. package/dist/commands/tokens/__tests__/add.test.js.map +0 -1
  416. package/dist/commands/tokens/__tests__/delete.test.js +0 -405
  417. package/dist/commands/tokens/__tests__/delete.test.js.map +0 -1
  418. package/dist/commands/tokens/__tests__/list.test.js +0 -395
  419. package/dist/commands/tokens/__tests__/list.test.js.map +0 -1
  420. package/dist/commands/users/__tests__/invite.test.js +0 -362
  421. package/dist/commands/users/__tests__/invite.test.js.map +0 -1
  422. package/dist/commands/users/__tests__/list.test.js +0 -407
  423. package/dist/commands/users/__tests__/list.test.js.map +0 -1
  424. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js +0 -77
  425. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js.map +0 -1
  426. package/dist/services/__tests__/datasetAliases.test.js +0 -131
  427. package/dist/services/__tests__/datasetAliases.test.js.map +0 -1
  428. package/dist/services/__tests__/datasets.test.js +0 -436
  429. package/dist/services/__tests__/datasets.test.js.map +0 -1
  430. package/dist/services/__tests__/graphql.test.js +0 -43
  431. package/dist/services/__tests__/graphql.test.js.map +0 -1
  432. package/dist/services/__tests__/mediaLibraries.test.js +0 -88
  433. package/dist/services/__tests__/mediaLibraries.test.js.map +0 -1
  434. package/dist/services/__tests__/projects.test.js +0 -41
  435. package/dist/services/__tests__/projects.test.js.map +0 -1
  436. package/dist/services/__tests__/userApplications.test.js +0 -113
  437. package/dist/services/__tests__/userApplications.test.js.map +0 -1
  438. package/dist/util/__tests__/appId.test.js +0 -31
  439. package/dist/util/__tests__/appId.test.js.map +0 -1
  440. package/dist/util/__tests__/cliClient.test.js +0 -184
  441. package/dist/util/__tests__/cliClient.test.js.map +0 -1
  442. package/dist/util/__tests__/compareDependencyVersions.test.js +0 -426
  443. package/dist/util/__tests__/compareDependencyVersions.test.js.map +0 -1
  444. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js +0 -74
  445. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js.map +0 -1
  446. package/dist/util/__tests__/findNdjsonEntry.test.js +0 -54
  447. package/dist/util/__tests__/findNdjsonEntry.test.js.map +0 -1
  448. package/dist/util/__tests__/getCliVersion.test.js +0 -28
  449. package/dist/util/__tests__/getCliVersion.test.js.map +0 -1
  450. package/dist/util/__tests__/getLocalPackageVersion.test.js +0 -84
  451. package/dist/util/__tests__/getLocalPackageVersion.test.js.map +0 -1
  452. package/dist/util/__tests__/getWorkspace.test.js +0 -37
  453. package/dist/util/__tests__/getWorkspace.test.js.map +0 -1
  454. package/dist/util/__tests__/readPackageJson.test.js +0 -69
  455. package/dist/util/__tests__/readPackageJson.test.js.map +0 -1
  456. package/dist/util/__tests__/warnAboutMissingAppId.test.js +0 -28
  457. package/dist/util/__tests__/warnAboutMissingAppId.test.js.map +0 -1
  458. package/dist/util/packageManager/__tests__/installPackages.test.js +0 -388
  459. package/dist/util/packageManager/__tests__/installPackages.test.js.map +0 -1
  460. package/dist/util/validation/ __tests__/validateDocuments.test.js +0 -274
  461. package/dist/util/validation/ __tests__/validateDocuments.test.js.map +0 -1
@@ -1,119 +0,0 @@
1
- import { runCommand } from '@oclif/test';
2
- import { describe, expect, test } from 'vitest';
3
- describe('#migration', ()=>{
4
- test('should print migrations help', async ()=>{
5
- const { stdout } = await runCommand('migration --help');
6
- expect(stdout).toMatchInlineSnapshot(`
7
- "Create a new migration within your project
8
-
9
- USAGE
10
- $ sanity migration COMMAND
11
-
12
- COMMANDS
13
- migration create Create a new migration within your project
14
- migration list List available migrations
15
- migration run Run a migration against a dataset
16
-
17
- "
18
- `);
19
- });
20
- test('should print migration create help', async ()=>{
21
- const { stdout } = await runCommand('migration create --help');
22
- expect(stdout).toMatchInlineSnapshot(`
23
- "Create a new migration within your project
24
-
25
- USAGE
26
- $ sanity migration create [TITLE]
27
-
28
- ARGUMENTS
29
- [TITLE] Title of migration
30
-
31
- DESCRIPTION
32
- Create a new migration within your project
33
-
34
- EXAMPLES
35
- Create a new migration, prompting for title and options
36
-
37
- $ sanity migration create
38
-
39
- Create a new migration with the provided title, prompting for options
40
-
41
- $ sanity migration create "Rename field from location to address"
42
-
43
- "
44
- `);
45
- });
46
- test('should print migration list help', async ()=>{
47
- const { stdout } = await runCommand('migration list --help');
48
- expect(stdout).toMatchInlineSnapshot(`
49
- "List available migrations
50
-
51
- USAGE
52
- $ sanity migration list
53
-
54
- DESCRIPTION
55
- List available migrations
56
-
57
- EXAMPLES
58
- List all available migrations in the project
59
-
60
- $ sanity migration list
61
-
62
- "
63
- `);
64
- });
65
- test('should print migration run help', async ()=>{
66
- const { stdout } = await runCommand('migration run --help');
67
- expect(stdout).toMatchInlineSnapshot(String.raw`
68
- "Run a migration against a dataset
69
-
70
- USAGE
71
- $ sanity migration run [ID] [--api-version <value>] [--concurrency
72
- <value>] [--confirm] [--dataset <value>] [--dry-run] [--from-export <value>]
73
- [--progress] [--project <value>]
74
-
75
- ARGUMENTS
76
- [ID] ID
77
-
78
- FLAGS
79
- --api-version=<value> API version to use when migrating. Defaults to
80
- v2024-01-29.
81
- --concurrency=<value> [default: 6] How many mutation requests to run in
82
- parallel. Must be between 1 and 10. Default: 6.
83
- --[no-]confirm Prompt for confirmation before running the migration
84
- (default: true). Use --no-confirm to skip.
85
- --dataset=<value> Dataset to migrate. Defaults to the dataset configured
86
- in your Sanity CLI config.
87
- --[no-]dry-run By default the migration runs in dry mode. Use
88
- --no-dry-run to migrate dataset.
89
- --from-export=<value> Use a local dataset export as source for migration
90
- instead of calling the Sanity API. Note: this is only
91
- supported for dry runs.
92
- --[no-]progress Display progress during migration (default: true). Use
93
- --no-progress to hide output.
94
- --project=<value> Project ID of the dataset to migrate. Defaults to the
95
- projectId configured in your Sanity CLI config.
96
-
97
- DESCRIPTION
98
- Run a migration against a dataset
99
-
100
- EXAMPLES
101
- dry run the migration
102
-
103
- $ sanity migration run <id>
104
-
105
- execute the migration against a dataset
106
-
107
- $ sanity migration run <id> --no-dry-run --project xyz --dataset staging
108
-
109
- execute the migration using a dataset export as the source
110
-
111
- $ sanity migration run <id> --from-export=production.tar.gz --no-dry-run \
112
- --project xyz --dataset staging
113
-
114
- "
115
- `);
116
- });
117
- });
118
-
119
- //# sourceMappingURL=migration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/commands/__tests__/migration.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {describe, expect, test} from 'vitest'\n\ndescribe('#migration', () => {\n test('should print migrations help', async () => {\n const {stdout} = await runCommand('migration --help')\n expect(stdout).toMatchInlineSnapshot(`\n \"Create a new migration within your project\n\n USAGE\n $ sanity migration COMMAND\n\n COMMANDS\n migration create Create a new migration within your project\n migration list List available migrations\n migration run Run a migration against a dataset\n\n \"\n `)\n })\n\n test('should print migration create help', async () => {\n const {stdout} = await runCommand('migration create --help')\n expect(stdout).toMatchInlineSnapshot(`\n \"Create a new migration within your project\n\n USAGE\n $ sanity migration create [TITLE]\n\n ARGUMENTS\n [TITLE] Title of migration\n\n DESCRIPTION\n Create a new migration within your project\n\n EXAMPLES\n Create a new migration, prompting for title and options\n\n $ sanity migration create\n\n Create a new migration with the provided title, prompting for options\n\n $ sanity migration create \"Rename field from location to address\"\n\n \"\n `)\n })\n\n test('should print migration list help', async () => {\n const {stdout} = await runCommand('migration list --help')\n expect(stdout).toMatchInlineSnapshot(`\n \"List available migrations\n\n USAGE\n $ sanity migration list\n\n DESCRIPTION\n List available migrations\n\n EXAMPLES\n List all available migrations in the project\n\n $ sanity migration list\n\n \"\n `)\n })\n\n test('should print migration run help', async () => {\n const {stdout} = await runCommand('migration run --help')\n expect(stdout).toMatchInlineSnapshot(String.raw`\n \"Run a migration against a dataset\n\n USAGE\n $ sanity migration run [ID] [--api-version <value>] [--concurrency\n <value>] [--confirm] [--dataset <value>] [--dry-run] [--from-export <value>]\n [--progress] [--project <value>]\n\n ARGUMENTS\n [ID] ID\n\n FLAGS\n --api-version=<value> API version to use when migrating. Defaults to\n v2024-01-29.\n --concurrency=<value> [default: 6] How many mutation requests to run in\n parallel. Must be between 1 and 10. Default: 6.\n --[no-]confirm Prompt for confirmation before running the migration\n (default: true). Use --no-confirm to skip.\n --dataset=<value> Dataset to migrate. Defaults to the dataset configured\n in your Sanity CLI config.\n --[no-]dry-run By default the migration runs in dry mode. Use\n --no-dry-run to migrate dataset.\n --from-export=<value> Use a local dataset export as source for migration\n instead of calling the Sanity API. Note: this is only\n supported for dry runs.\n --[no-]progress Display progress during migration (default: true). Use\n --no-progress to hide output.\n --project=<value> Project ID of the dataset to migrate. Defaults to the\n projectId configured in your Sanity CLI config.\n\n DESCRIPTION\n Run a migration against a dataset\n\n EXAMPLES\n dry run the migration\n\n $ sanity migration run <id>\n\n execute the migration against a dataset\n\n $ sanity migration run <id> --no-dry-run --project xyz --dataset staging\n\n execute the migration using a dataset export as the source\n\n $ sanity migration run <id> --from-export=production.tar.gz --no-dry-run \\\n --project xyz --dataset staging\n\n \"\n `)\n })\n})\n"],"names":["runCommand","describe","expect","test","stdout","toMatchInlineSnapshot","String","raw"],"mappings":"AAAA,SAAQA,UAAU,QAAO,cAAa;AACtC,SAAQC,QAAQ,EAAEC,MAAM,EAAEC,IAAI,QAAO,SAAQ;AAE7CF,SAAS,cAAc;IACrBE,KAAK,gCAAgC;QACnC,MAAM,EAACC,MAAM,EAAC,GAAG,MAAMJ,WAAW;QAClCE,OAAOE,QAAQC,qBAAqB,CAAC,CAAC;;;;;;;;;;;;IAYtC,CAAC;IACH;IAEAF,KAAK,sCAAsC;QACzC,MAAM,EAACC,MAAM,EAAC,GAAG,MAAMJ,WAAW;QAClCE,OAAOE,QAAQC,qBAAqB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;IAsBtC,CAAC;IACH;IAEAF,KAAK,oCAAoC;QACvC,MAAM,EAACC,MAAM,EAAC,GAAG,MAAMJ,WAAW;QAClCE,OAAOE,QAAQC,qBAAqB,CAAC,CAAC;;;;;;;;;;;;;;;IAetC,CAAC;IACH;IAEAF,KAAK,mCAAmC;QACtC,MAAM,EAACC,MAAM,EAAC,GAAG,MAAMJ,WAAW;QAClCE,OAAOE,QAAQC,qBAAqB,CAACC,OAAOC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgDhD,CAAC;IACH;AACF"}
@@ -1,261 +0,0 @@
1
- import { readFile, rm, 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 { testCommand } from '@sanity/cli-test';
6
- import { describe, expect, test } from 'vitest';
7
- import { testExample } from '~test/helpers/testExample.js';
8
- import { PreviewCommand } from '../preview.js';
9
- describe('#preview', ()=>{
10
- test('help works', async ()=>{
11
- const { stdout } = await runCommand([
12
- 'preview',
13
- '--help'
14
- ]);
15
- expect(stdout).toMatchInlineSnapshot(`
16
- "Starts a server to preview a production build
17
-
18
- USAGE
19
- $ sanity preview [OUTPUTDIR] [--host <value>] [--port <value>]
20
-
21
- ARGUMENTS
22
- [OUTPUTDIR] Output directory
23
-
24
- FLAGS
25
- --host=<value> [default: localhost] The local network interface at which to
26
- listen.
27
- --port=<value> [default: 3333] TCP port to start server on.
28
-
29
- DESCRIPTION
30
- Starts a server to preview a production build
31
-
32
- ALIASES
33
- $ sanity start
34
-
35
- EXAMPLES
36
- $ sanity preview --host=0.0.0.0
37
-
38
- $ sanity preview --port=1942
39
-
40
- $ sanity preview some/build-output-dir
41
-
42
- "
43
- `);
44
- });
45
- describe('basic-app', ()=>{
46
- test('should start the example', async ()=>{
47
- const cwd = await testExample('basic-app', {
48
- shouldBuild: true
49
- });
50
- // Mock the process.cwd() to the example directory
51
- process.cwd = ()=>cwd;
52
- const { error, stdout } = await testCommand(PreviewCommand, [
53
- '--port',
54
- '4334'
55
- ], {
56
- config: {
57
- root: cwd
58
- }
59
- });
60
- expect(error).toBeUndefined();
61
- expect(stdout).toContain(`Sanity application using vite@`);
62
- expect(stdout).toContain(`ready in`);
63
- expect(stdout).toContain(`ms and running at http://localhost:4334/ (production preview mode)`);
64
- });
65
- test('should throw an error if the example has not been built', async ()=>{
66
- const cwd = await testExample('basic-app', {
67
- shouldBuild: false
68
- });
69
- // Mock the process.cwd() to the example directory
70
- process.cwd = ()=>cwd;
71
- const { error, stdout } = await testCommand(PreviewCommand, [], {
72
- config: {
73
- root: cwd
74
- }
75
- });
76
- expect(error).toBeDefined();
77
- expect(error?.message).toContain('Failed to start preview server');
78
- expect(error?.oclif?.exit).toBe(1);
79
- expect(stdout).toContain(`Could not find a production build in the '${cwd}/dist' directory.`);
80
- expect(stdout).toContain(`Try building your application with 'sanity build' before starting the preview server.`);
81
- });
82
- });
83
- describe('basic-studio', ()=>{
84
- test('should start the example', async ()=>{
85
- const cwd = await testExample('basic-studio', {
86
- shouldBuild: true
87
- });
88
- // Mock the process.cwd() to the example directory
89
- process.cwd = ()=>cwd;
90
- const { error, stdout } = await testCommand(PreviewCommand, [
91
- '--port',
92
- '4333'
93
- ], {
94
- config: {
95
- root: cwd
96
- }
97
- });
98
- expect(error).toBeUndefined();
99
- expect(stdout).toContain(`Sanity Studio using vite@`);
100
- expect(stdout).toContain(`ready in`);
101
- expect(stdout).toContain(`ms and running at http://localhost:4333/ (production preview mode)`);
102
- });
103
- test('should throw an error if the example has not been built', async ()=>{
104
- const cwd = await testExample('basic-studio', {
105
- shouldBuild: false
106
- });
107
- // Mock the process.cwd() to the example directory
108
- process.cwd = ()=>cwd;
109
- const { error, stdout } = await testCommand(PreviewCommand, [], {
110
- config: {
111
- root: cwd
112
- }
113
- });
114
- expect(error).toBeDefined();
115
- expect(error?.message).toContain('Failed to start preview server');
116
- expect(error?.oclif?.exit).toBe(1);
117
- expect(stdout).toContain(`Could not find a production build in the '${cwd}/dist' directory.`);
118
- expect(stdout).toContain(`Try building your studio with 'sanity build' before starting the preview server.`);
119
- });
120
- });
121
- test('should use resolved base path from index.html file', async ()=>{
122
- const cwd = await testExample('basic-studio', {
123
- shouldBuild: true
124
- });
125
- // Mock the process.cwd() to the example directory
126
- process.cwd = ()=>cwd;
127
- // Replace the script tag in the index.html file with a script tag that does not have a src attribute
128
- const indexPath = join(cwd, 'dist', 'index.html');
129
- const index = await readFile(indexPath, 'utf8');
130
- // Find the script tag that matches <script src="/static/sanity-D_-mPegc.js" type="module"></script>
131
- const scriptTag = index.match(/<script src="\/static\/sanity-.*\.js" type="module"><\/script>/);
132
- const newIndex = index.replace(scriptTag?.[0] || '', '<script src="/custom-base-path/static/sanity-a3cc3d86.js" type="module"></script>');
133
- await writeFile(indexPath, newIndex);
134
- const { error, stdout } = await testCommand(PreviewCommand, [
135
- '--port',
136
- '4335'
137
- ], {
138
- config: {
139
- root: cwd
140
- }
141
- });
142
- expect(error).toBeUndefined();
143
- expect(stdout).toContain(`Using resolved base path from static build: /custom-base-path`);
144
- expect(stdout).toContain(`Sanity Studio using vite@`);
145
- expect(stdout).toContain(`ready in`);
146
- expect(stdout).toContain(`ms and running at http://localhost:4335/custom-base-path (production preview mode)`);
147
- });
148
- test('should fallback to default basepath when cannot resolve from index.html', async ()=>{
149
- const cwd = await testExample('basic-studio', {
150
- shouldBuild: true
151
- });
152
- // Mock the process.cwd() to the example directory
153
- process.cwd = ()=>cwd;
154
- // Replace the script tag in the index.html file with a script tag that does not have a src attribute
155
- const indexPath = join(cwd, 'dist', 'index.html');
156
- const index = await readFile(indexPath, 'utf8');
157
- // Find the script tag that matches <script src="/static/sanity-D_-mPegc.js" type="module"></script>
158
- const scriptTag = index.match(/<script src="\/static\/sanity-.*\.js" type="module"><\/script>/);
159
- const newIndex = index.replace(scriptTag?.[0] || '', '<script src="/sanity-a3cc3d86.js" type="module"></script>');
160
- await writeFile(indexPath, newIndex);
161
- const { error, stderr, stdout } = await testCommand(PreviewCommand, [
162
- '--port',
163
- '4336'
164
- ], {
165
- config: {
166
- root: cwd
167
- }
168
- });
169
- expect(error).toBeUndefined();
170
- expect(stderr).toContain(`Could not determine base path from index.html, using "/" as default`);
171
- expect(stdout).toContain(`Sanity Studio using vite@`);
172
- expect(stdout).toContain(`ready in`);
173
- expect(stdout).toContain(`ms and running at http://localhost:4336/ (production preview mode)`);
174
- });
175
- test('should throw an error if the index.html file is not found', async ()=>{
176
- const cwd = await testExample('basic-studio', {
177
- shouldBuild: true
178
- });
179
- // Mock the process.cwd() to the example directory
180
- process.cwd = ()=>cwd;
181
- // Remove the index.html file
182
- await rm(join(cwd, 'dist', 'index.html'));
183
- const { error } = await testCommand(PreviewCommand, [
184
- '--port',
185
- '4337'
186
- ], {
187
- config: {
188
- root: cwd
189
- }
190
- });
191
- expect(error).toBeDefined();
192
- expect(error?.message).toContain('Failed to start preview server');
193
- expect(error?.oclif?.exit).toBe(1);
194
- });
195
- test('should throw an error if port is already in use', async ()=>{
196
- const cwd = await testExample('basic-studio', {
197
- shouldBuild: true
198
- });
199
- // Mock the process.cwd() to the example directory
200
- process.cwd = ()=>cwd;
201
- // Create a server on port 4338 to block it
202
- const server = createServer();
203
- await new Promise((resolve)=>{
204
- server.listen(4338, 'localhost', resolve);
205
- });
206
- try {
207
- const { error } = await testCommand(PreviewCommand, [
208
- '--port',
209
- '4338'
210
- ], {
211
- config: {
212
- root: cwd
213
- }
214
- });
215
- expect(error).toBeDefined();
216
- expect(error?.message).toContain('Port 4338 is already in use');
217
- expect(error?.oclif?.exit).toBe(1);
218
- } finally{
219
- // Clean up the server
220
- await new Promise((resolve, reject)=>{
221
- server.close((err)=>{
222
- if (err) reject(err);
223
- else resolve();
224
- });
225
- });
226
- }
227
- });
228
- test('should allow using vite config from sanity.cli.ts', async ()=>{
229
- const cwd = await testExample('basic-app', {
230
- shouldBuild: true
231
- });
232
- // Mock the process.cwd() to the example directory
233
- process.cwd = ()=>cwd;
234
- const existingSanityCli = await readFile(join(cwd, 'sanity.cli.ts'), 'utf8');
235
- // Create a vite.config.ts file
236
- await writeFile(join(cwd, 'sanity.cli.ts'), `
237
- import {defineCliConfig} from '@sanity/cli'
238
-
239
- export default defineCliConfig({
240
- app: {
241
- entry: './src/App.tsx',
242
- organizationId: 'organizationId',
243
- },
244
- vite: {
245
- preview: {
246
- port: 4339,
247
- },
248
- },
249
- })
250
- `);
251
- const { stdout } = await testCommand(PreviewCommand, [], {
252
- config: {
253
- root: cwd
254
- }
255
- });
256
- expect(stdout).toContain(`ms and running at http://localhost:4339/ (production preview mode)`);
257
- await writeFile(join(cwd, 'sanity.cli.ts'), existingSanityCli);
258
- });
259
- });
260
-
261
- //# sourceMappingURL=preview.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/commands/__tests__/preview.test.ts"],"sourcesContent":["import {readFile, rm, writeFile} from 'node:fs/promises'\nimport {createServer} from 'node:http'\nimport {join} from 'node:path'\n\nimport {runCommand} from '@oclif/test'\nimport {testCommand} from '@sanity/cli-test'\nimport {describe, expect, test} from 'vitest'\nimport {testExample} from '~test/helpers/testExample.js'\n\nimport {PreviewCommand} from '../preview.js'\n\ndescribe('#preview', () => {\n test('help works', async () => {\n const {stdout} = await runCommand(['preview', '--help'])\n\n expect(stdout).toMatchInlineSnapshot(`\n \"Starts a server to preview a production build\n\n USAGE\n $ sanity preview [OUTPUTDIR] [--host <value>] [--port <value>]\n\n ARGUMENTS\n [OUTPUTDIR] Output directory\n\n FLAGS\n --host=<value> [default: localhost] The local network interface at which to\n listen.\n --port=<value> [default: 3333] TCP port to start server on.\n\n DESCRIPTION\n Starts a server to preview a production build\n\n ALIASES\n $ sanity start\n\n EXAMPLES\n $ sanity preview --host=0.0.0.0\n\n $ sanity preview --port=1942\n\n $ sanity preview some/build-output-dir\n\n \"\n `)\n })\n\n describe('basic-app', () => {\n test('should start the example', async () => {\n const cwd = await testExample('basic-app', {shouldBuild: true})\n // Mock the process.cwd() to the example directory\n process.cwd = () => cwd\n\n const {error, stdout} = await testCommand(PreviewCommand, ['--port', '4334'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain(`Sanity application using vite@`)\n expect(stdout).toContain(`ready in`)\n expect(stdout).toContain(`ms and running at http://localhost:4334/ (production preview mode)`)\n })\n\n test('should throw an error if the example has not been built', async () => {\n const cwd = await testExample('basic-app', {shouldBuild: false})\n // Mock the process.cwd() to the example directory\n process.cwd = () => cwd\n\n const {error, stdout} = await testCommand(PreviewCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeDefined()\n expect(error?.message).toContain('Failed to start preview server')\n expect(error?.oclif?.exit).toBe(1)\n expect(stdout).toContain(`Could not find a production build in the '${cwd}/dist' directory.`)\n expect(stdout).toContain(\n `Try building your application with 'sanity build' before starting the preview server.`,\n )\n })\n })\n\n describe('basic-studio', () => {\n test('should start the example', async () => {\n const cwd = await testExample('basic-studio', {shouldBuild: true})\n // Mock the process.cwd() to the example directory\n process.cwd = () => cwd\n\n const {error, stdout} = await testCommand(PreviewCommand, ['--port', '4333'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain(`Sanity Studio using vite@`)\n expect(stdout).toContain(`ready in`)\n expect(stdout).toContain(`ms and running at http://localhost:4333/ (production preview mode)`)\n })\n\n test('should throw an error if the example has not been built', async () => {\n const cwd = await testExample('basic-studio', {shouldBuild: false})\n // Mock the process.cwd() to the example directory\n process.cwd = () => cwd\n\n const {error, stdout} = await testCommand(PreviewCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeDefined()\n expect(error?.message).toContain('Failed to start preview server')\n expect(error?.oclif?.exit).toBe(1)\n expect(stdout).toContain(`Could not find a production build in the '${cwd}/dist' directory.`)\n expect(stdout).toContain(\n `Try building your studio with 'sanity build' before starting the preview server.`,\n )\n })\n })\n\n test('should use resolved base path from index.html file', async () => {\n const cwd = await testExample('basic-studio', {shouldBuild: true})\n // Mock the process.cwd() to the example directory\n process.cwd = () => cwd\n\n // Replace the script tag in the index.html file with a script tag that does not have a src attribute\n const indexPath = join(cwd, 'dist', 'index.html')\n const index = await readFile(indexPath, 'utf8')\n\n // Find the script tag that matches <script src=\"/static/sanity-D_-mPegc.js\" type=\"module\"></script>\n const scriptTag = index.match(/<script src=\"\\/static\\/sanity-.*\\.js\" type=\"module\"><\\/script>/)\n const newIndex = index.replace(\n scriptTag?.[0] || '',\n '<script src=\"/custom-base-path/static/sanity-a3cc3d86.js\" type=\"module\"></script>',\n )\n\n await writeFile(indexPath, newIndex)\n\n const {error, stdout} = await testCommand(PreviewCommand, ['--port', '4335'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain(`Using resolved base path from static build: /custom-base-path`)\n expect(stdout).toContain(`Sanity Studio using vite@`)\n expect(stdout).toContain(`ready in`)\n expect(stdout).toContain(\n `ms and running at http://localhost:4335/custom-base-path (production preview mode)`,\n )\n })\n\n test('should fallback to default basepath when cannot resolve from index.html', async () => {\n const cwd = await testExample('basic-studio', {shouldBuild: true})\n // Mock the process.cwd() to the example directory\n process.cwd = () => cwd\n\n // Replace the script tag in the index.html file with a script tag that does not have a src attribute\n const indexPath = join(cwd, 'dist', 'index.html')\n const index = await readFile(indexPath, 'utf8')\n\n // Find the script tag that matches <script src=\"/static/sanity-D_-mPegc.js\" type=\"module\"></script>\n const scriptTag = index.match(/<script src=\"\\/static\\/sanity-.*\\.js\" type=\"module\"><\\/script>/)\n const newIndex = index.replace(\n scriptTag?.[0] || '',\n '<script src=\"/sanity-a3cc3d86.js\" type=\"module\"></script>',\n )\n\n await writeFile(indexPath, newIndex)\n\n const {error, stderr, stdout} = await testCommand(PreviewCommand, ['--port', '4336'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stderr).toContain(`Could not determine base path from index.html, using \"/\" as default`)\n expect(stdout).toContain(`Sanity Studio using vite@`)\n expect(stdout).toContain(`ready in`)\n expect(stdout).toContain(`ms and running at http://localhost:4336/ (production preview mode)`)\n })\n\n test('should throw an error if the index.html file is not found', async () => {\n const cwd = await testExample('basic-studio', {shouldBuild: true})\n // Mock the process.cwd() to the example directory\n process.cwd = () => cwd\n\n // Remove the index.html file\n await rm(join(cwd, 'dist', 'index.html'))\n\n const {error} = await testCommand(PreviewCommand, ['--port', '4337'], {\n config: {root: cwd},\n })\n\n expect(error).toBeDefined()\n expect(error?.message).toContain('Failed to start preview server')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should throw an error if port is already in use', async () => {\n const cwd = await testExample('basic-studio', {shouldBuild: true})\n // Mock the process.cwd() to the example directory\n process.cwd = () => cwd\n\n // Create a server on port 4338 to block it\n const server = createServer()\n await new Promise<void>((resolve) => {\n server.listen(4338, 'localhost', resolve)\n })\n\n try {\n const {error} = await testCommand(PreviewCommand, ['--port', '4338'], {\n config: {root: cwd},\n })\n\n expect(error).toBeDefined()\n expect(error?.message).toContain('Port 4338 is already in use')\n expect(error?.oclif?.exit).toBe(1)\n } finally {\n // Clean up the server\n await new Promise<void>((resolve, reject) => {\n server.close((err) => {\n if (err) reject(err)\n else resolve()\n })\n })\n }\n })\n\n test('should allow using vite config from sanity.cli.ts', async () => {\n const cwd = await testExample('basic-app', {shouldBuild: true})\n // Mock the process.cwd() to the example directory\n process.cwd = () => cwd\n\n const existingSanityCli = await readFile(join(cwd, 'sanity.cli.ts'), 'utf8')\n\n // Create a vite.config.ts file\n await writeFile(\n join(cwd, 'sanity.cli.ts'),\n `\n import {defineCliConfig} from '@sanity/cli'\n\n export default defineCliConfig({\n app: {\n entry: './src/App.tsx',\n organizationId: 'organizationId',\n },\n vite: {\n preview: {\n port: 4339,\n },\n },\n })\n `,\n )\n\n const {stdout} = await testCommand(PreviewCommand, [], {\n config: {root: cwd},\n })\n\n expect(stdout).toContain(`ms and running at http://localhost:4339/ (production preview mode)`)\n\n await writeFile(join(cwd, 'sanity.cli.ts'), existingSanityCli)\n })\n})\n"],"names":["readFile","rm","writeFile","createServer","join","runCommand","testCommand","describe","expect","test","testExample","PreviewCommand","stdout","toMatchInlineSnapshot","cwd","shouldBuild","process","error","config","root","toBeUndefined","toContain","toBeDefined","message","oclif","exit","toBe","indexPath","index","scriptTag","match","newIndex","replace","stderr","server","Promise","resolve","listen","reject","close","err","existingSanityCli"],"mappings":"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"}