@sanity/cli 6.0.0-alpha.4 → 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 (608) 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/dev/startStudioDevServer.js +3 -8
  14. package/dist/actions/dev/startStudioDevServer.js.map +1 -1
  15. package/dist/actions/dev/types.d.ts +1 -3
  16. package/dist/actions/dev/types.js.map +1 -1
  17. package/dist/actions/documents/validate.d.ts +0 -2
  18. package/dist/actions/documents/validate.js +21 -1
  19. package/dist/actions/documents/validate.js.map +1 -1
  20. package/dist/actions/exec/execScript.js +1 -1
  21. package/dist/actions/exec/execScript.js.map +1 -1
  22. package/dist/actions/graphql/getGraphQLAPIs.js +1 -1
  23. package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -1
  24. package/dist/actions/init/remoteTemplate.js +1 -1
  25. package/dist/actions/init/remoteTemplate.js.map +1 -1
  26. package/dist/actions/manifest/extractAppManifest.d.ts +20 -0
  27. package/dist/actions/manifest/extractAppManifest.js +51 -0
  28. package/dist/actions/manifest/extractAppManifest.js.map +1 -0
  29. package/dist/actions/manifest/extractManifest.js +2 -5
  30. package/dist/actions/manifest/extractManifest.js.map +1 -1
  31. package/dist/actions/manifest/types.d.ts +6 -1
  32. package/dist/actions/manifest/types.js.map +1 -1
  33. package/dist/actions/media/importAspects.js +2 -1
  34. package/dist/actions/media/importAspects.js.map +1 -1
  35. package/dist/actions/schema/deleteSchemaAction.d.ts +13 -5
  36. package/dist/actions/schema/deleteSchemaAction.js +12 -17
  37. package/dist/actions/schema/deleteSchemaAction.js.map +1 -1
  38. package/dist/actions/schema/deploySchemas.d.ts +15 -0
  39. package/dist/actions/schema/deploySchemas.js +98 -0
  40. package/dist/actions/schema/deploySchemas.js.map +1 -0
  41. package/dist/actions/schema/listSchemas.d.ts +12 -0
  42. package/dist/actions/schema/listSchemas.js +119 -0
  43. package/dist/actions/schema/listSchemas.js.map +1 -0
  44. package/dist/actions/schema/schemaStoreTypes.d.ts +0 -11
  45. package/dist/actions/schema/schemaStoreTypes.js.map +1 -1
  46. package/dist/actions/schema/utils/debug.d.ts +2 -0
  47. package/dist/actions/schema/utils/debug.js +5 -0
  48. package/dist/actions/schema/utils/debug.js.map +1 -0
  49. package/dist/actions/schema/utils/manifestExtractor.d.ts +3 -8
  50. package/dist/actions/schema/utils/manifestExtractor.js +12 -17
  51. package/dist/actions/schema/utils/manifestExtractor.js.map +1 -1
  52. package/dist/actions/schema/utils/manifestReader.d.ts +2 -9
  53. package/dist/actions/schema/utils/manifestReader.js +6 -12
  54. package/dist/actions/schema/utils/manifestReader.js.map +1 -1
  55. package/dist/actions/schema/utils/schemaStoreOutStrings.d.ts +0 -1
  56. package/dist/actions/schema/utils/schemaStoreOutStrings.js +1 -1
  57. package/dist/actions/schema/utils/schemaStoreOutStrings.js.map +1 -1
  58. package/dist/actions/schema/utils/schemaStoreValidation.d.ts +10 -62
  59. package/dist/actions/schema/utils/schemaStoreValidation.js +38 -125
  60. package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -1
  61. package/dist/actions/schema/utils/uniqByProjectIdDataset.d.ts +14 -0
  62. package/dist/actions/schema/utils/uniqByProjectIdDataset.js +9 -0
  63. package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -0
  64. package/dist/actions/users/getMembersForProject.d.ts +1 -3
  65. package/dist/actions/users/getMembersForProject.js +6 -17
  66. package/dist/actions/users/getMembersForProject.js.map +1 -1
  67. package/dist/actions/users/types.d.ts +0 -11
  68. package/dist/actions/users/types.js.map +1 -1
  69. package/dist/commands/backup/disable.js +5 -11
  70. package/dist/commands/backup/disable.js.map +1 -1
  71. package/dist/commands/backup/enable.js +5 -11
  72. package/dist/commands/backup/enable.js.map +1 -1
  73. package/dist/commands/backup/list.js +7 -8
  74. package/dist/commands/backup/list.js.map +1 -1
  75. package/dist/commands/cors/add.js +5 -13
  76. package/dist/commands/cors/add.js.map +1 -1
  77. package/dist/commands/cors/delete.js +7 -15
  78. package/dist/commands/cors/delete.js.map +1 -1
  79. package/dist/commands/cors/list.js +2 -10
  80. package/dist/commands/cors/list.js.map +1 -1
  81. package/dist/commands/dataset/create.d.ts +0 -2
  82. package/dist/commands/dataset/create.js +8 -54
  83. package/dist/commands/dataset/create.js.map +1 -1
  84. package/dist/commands/dataset/export.js +4 -4
  85. package/dist/commands/dataset/export.js.map +1 -1
  86. package/dist/commands/debug.js +5 -9
  87. package/dist/commands/debug.js.map +1 -1
  88. package/dist/commands/dev.js +0 -1
  89. package/dist/commands/dev.js.map +1 -1
  90. package/dist/commands/documents/create.d.ts +1 -0
  91. package/dist/commands/documents/create.js +10 -9
  92. package/dist/commands/documents/create.js.map +1 -1
  93. package/dist/commands/documents/delete.js +2 -3
  94. package/dist/commands/documents/delete.js.map +1 -1
  95. package/dist/commands/documents/get.js +2 -3
  96. package/dist/commands/documents/get.js.map +1 -1
  97. package/dist/commands/documents/query.js +2 -3
  98. package/dist/commands/documents/query.js.map +1 -1
  99. package/dist/commands/documents/validate.js +0 -20
  100. package/dist/commands/documents/validate.js.map +1 -1
  101. package/dist/commands/graphql/list.js +2 -2
  102. package/dist/commands/graphql/list.js.map +1 -1
  103. package/dist/commands/graphql/undeploy.js +4 -9
  104. package/dist/commands/graphql/undeploy.js.map +1 -1
  105. package/dist/commands/hook/create.js +2 -6
  106. package/dist/commands/hook/create.js.map +1 -1
  107. package/dist/commands/hook/delete.js +5 -17
  108. package/dist/commands/hook/delete.js.map +1 -1
  109. package/dist/commands/hook/list.js +2 -8
  110. package/dist/commands/hook/list.js.map +1 -1
  111. package/dist/commands/init.d.ts +6 -1
  112. package/dist/commands/init.js +358 -20
  113. package/dist/commands/init.js.map +1 -1
  114. package/dist/commands/manifest/extract.js +7 -8
  115. package/dist/commands/manifest/extract.js.map +1 -1
  116. package/dist/commands/media/export.js +2 -2
  117. package/dist/commands/media/export.js.map +1 -1
  118. package/dist/commands/media/import.js +2 -2
  119. package/dist/commands/media/import.js.map +1 -1
  120. package/dist/commands/projects/list.js +2 -6
  121. package/dist/commands/projects/list.js.map +1 -1
  122. package/dist/commands/schema/delete.d.ts +1 -1
  123. package/dist/commands/schema/delete.js +20 -23
  124. package/dist/commands/schema/delete.js.map +1 -1
  125. package/dist/commands/schema/deploy.d.ts +16 -0
  126. package/dist/commands/schema/deploy.js +98 -0
  127. package/dist/commands/schema/deploy.js.map +1 -0
  128. package/dist/commands/schema/list.d.ts +15 -0
  129. package/dist/commands/schema/list.js +104 -0
  130. package/dist/commands/schema/list.js.map +1 -0
  131. package/dist/commands/tokens/add.js +3 -5
  132. package/dist/commands/tokens/add.js.map +1 -1
  133. package/dist/commands/users/invite.js +6 -17
  134. package/dist/commands/users/invite.js.map +1 -1
  135. package/dist/commands/users/list.js +4 -7
  136. package/dist/commands/users/list.js.map +1 -1
  137. package/dist/config/createCliConfig.d.ts +13 -4
  138. package/dist/prompts/init/promptForTypescript.d.ts +2 -0
  139. package/dist/prompts/init/promptForTypescript.js +15 -0
  140. package/dist/prompts/init/promptForTypescript.js.map +1 -0
  141. package/dist/prompts/promptForDatasetAclMode.d.ts +9 -0
  142. package/dist/prompts/promptForDatasetAclMode.js +27 -0
  143. package/dist/prompts/promptForDatasetAclMode.js.map +1 -0
  144. package/dist/prompts/promptForDatasetName.d.ts +1 -1
  145. package/dist/prompts/promptForDatasetName.js +4 -1
  146. package/dist/prompts/promptForDatasetName.js.map +1 -1
  147. package/dist/services/backup.d.ts +8 -0
  148. package/dist/services/backup.js +19 -0
  149. package/dist/services/backup.js.map +1 -1
  150. package/dist/services/cors.d.ts +23 -0
  151. package/dist/services/cors.js +38 -0
  152. package/dist/services/cors.js.map +1 -0
  153. package/dist/services/graphql.d.ts +7 -0
  154. package/dist/services/graphql.js +11 -0
  155. package/dist/services/graphql.js.map +1 -1
  156. package/dist/services/hooks.d.ts +2 -0
  157. package/dist/services/hooks.js +19 -0
  158. package/dist/services/hooks.js.map +1 -1
  159. package/dist/services/organizations.d.ts +4 -2
  160. package/dist/services/organizations.js +3 -2
  161. package/dist/services/organizations.js.map +1 -1
  162. package/dist/services/projects.d.ts +11 -0
  163. package/dist/services/projects.js +41 -0
  164. package/dist/services/projects.js.map +1 -1
  165. package/dist/services/schemas.d.ts +4 -0
  166. package/dist/services/schemas.js +40 -0
  167. package/dist/services/schemas.js.map +1 -0
  168. package/dist/services/user.d.ts +13 -0
  169. package/dist/services/user.js +27 -3
  170. package/dist/services/user.js.map +1 -1
  171. package/dist/services/userApplications.d.ts +3 -1
  172. package/dist/services/userApplications.js +5 -1
  173. package/dist/services/userApplications.js.map +1 -1
  174. package/dist/util/errorMessages.d.ts +1 -0
  175. package/dist/util/errorMessages.js +1 -0
  176. package/dist/util/errorMessages.js.map +1 -1
  177. package/dist/util/getCliVersion.js +1 -1
  178. package/dist/util/getCliVersion.js.map +1 -1
  179. package/dist/util/readPackageJson.d.ts +1 -15
  180. package/dist/util/readPackageJson.js +1 -1
  181. package/dist/util/readPackageJson.js.map +1 -1
  182. package/dist/util/uniqBy.d.ts +1 -0
  183. package/dist/util/uniqBy.js +14 -0
  184. package/dist/util/uniqBy.js.map +1 -0
  185. package/oclif.manifest.json +284 -139
  186. package/package.json +36 -33
  187. package/templates/app-quickstart/src/App.css +20 -0
  188. package/templates/app-quickstart/src/App.tsx +25 -0
  189. package/templates/app-quickstart/src/ExampleComponent.css +90 -0
  190. package/templates/app-quickstart/src/ExampleComponent.tsx +37 -0
  191. package/templates/app-sanity-ui/src/App.tsx +34 -0
  192. package/templates/app-sanity-ui/src/ExampleComponent.tsx +34 -0
  193. package/templates/app-sanity-ui/src/SanityUI.tsx +23 -0
  194. package/templates/blog/README.md +11 -0
  195. package/templates/blog/schemaTypes/author.js +50 -0
  196. package/templates/blog/schemaTypes/blockContent.js +67 -0
  197. package/templates/blog/schemaTypes/category.js +19 -0
  198. package/templates/blog/schemaTypes/index.js +6 -0
  199. package/templates/blog/schemaTypes/post.js +65 -0
  200. package/templates/blog/static/.gitkeep +1 -0
  201. package/templates/clean/README.md +9 -0
  202. package/templates/clean/schemaTypes/index.js +1 -0
  203. package/templates/clean/static/.gitkeep +1 -0
  204. package/templates/ecommerce/README.md +11 -0
  205. package/templates/ecommerce/plugins/.gitkeep +1 -0
  206. package/templates/ecommerce/plugins/barcode-input/BarcodeInput.js +62 -0
  207. package/templates/ecommerce/plugins/barcode-input/index.js +9 -0
  208. package/templates/ecommerce/plugins/barcode-input/schemaType.js +60 -0
  209. package/templates/ecommerce/schemaTypes/blockContent.js +67 -0
  210. package/templates/ecommerce/schemaTypes/category.js +39 -0
  211. package/templates/ecommerce/schemaTypes/index.js +23 -0
  212. package/templates/ecommerce/schemaTypes/locale/localeBlockContent.js +19 -0
  213. package/templates/ecommerce/schemaTypes/locale/localeString.js +19 -0
  214. package/templates/ecommerce/schemaTypes/locale/localeText.js +19 -0
  215. package/templates/ecommerce/schemaTypes/locale/supportedLanguages.js +5 -0
  216. package/templates/ecommerce/schemaTypes/product.js +83 -0
  217. package/templates/ecommerce/schemaTypes/productVariant.js +52 -0
  218. package/templates/ecommerce/schemaTypes/vendor.js +39 -0
  219. package/templates/ecommerce/static/.gitkeep +1 -0
  220. package/templates/get-started/README.md +9 -0
  221. package/templates/get-started/plugins/.gitkeep +1 -0
  222. package/templates/get-started/plugins/sanity-plugin-tutorial/CustomDefaultLayout.tsx +16 -0
  223. package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +104 -0
  224. package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +11 -0
  225. package/templates/get-started/schemaTypes/index.ts +1 -0
  226. package/templates/get-started/static/.gitkeep +1 -0
  227. package/templates/moviedb/README.md +10 -0
  228. package/templates/moviedb/schemaTypes/blockContent.js +67 -0
  229. package/templates/moviedb/schemaTypes/castMember.js +37 -0
  230. package/templates/moviedb/schemaTypes/crewMember.js +52 -0
  231. package/templates/moviedb/schemaTypes/index.js +22 -0
  232. package/templates/moviedb/schemaTypes/movie.js +85 -0
  233. package/templates/moviedb/schemaTypes/person.js +37 -0
  234. package/templates/moviedb/schemaTypes/plotSummaries.js +20 -0
  235. package/templates/moviedb/schemaTypes/plotSummary.js +24 -0
  236. package/templates/moviedb/schemaTypes/screening.js +81 -0
  237. package/templates/moviedb/static/.gitkeep +1 -0
  238. package/templates/quickstart/README.md +9 -0
  239. package/templates/quickstart/schemaTypes/index.js +1 -0
  240. package/templates/quickstart/static/.gitkeep +1 -0
  241. package/templates/shared/gitignore.txt +29 -0
  242. package/templates/shared/tsconfig.json +17 -0
  243. package/templates/shopify/README.md +85 -0
  244. package/templates/shopify/components/hotspots/ProductTooltip.tsx +38 -0
  245. package/templates/shopify/components/icons/Shopify.tsx +20 -0
  246. package/templates/shopify/components/inputs/CollectionHidden.tsx +23 -0
  247. package/templates/shopify/components/inputs/PlaceholderString.tsx +20 -0
  248. package/templates/shopify/components/inputs/ProductHidden.tsx +64 -0
  249. package/templates/shopify/components/inputs/ProductVariantHidden.tsx +24 -0
  250. package/templates/shopify/components/inputs/ProxyString.tsx +32 -0
  251. package/templates/shopify/components/media/ColorTheme.tsx +38 -0
  252. package/templates/shopify/components/media/ShopifyDocumentStatus.tsx +82 -0
  253. package/templates/shopify/components/studio/Navbar.tsx +29 -0
  254. package/templates/shopify/constants.ts +61 -0
  255. package/templates/shopify/docs/features.md +158 -0
  256. package/templates/shopify/plugins/customDocumentActions/index.ts +55 -0
  257. package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +144 -0
  258. package/templates/shopify/plugins/customDocumentActions/shopifyLink.ts +39 -0
  259. package/templates/shopify/plugins/customDocumentActions/types.ts +14 -0
  260. package/templates/shopify/schemaTypes/documents/collection.tsx +142 -0
  261. package/templates/shopify/schemaTypes/documents/colorTheme.tsx +44 -0
  262. package/templates/shopify/schemaTypes/documents/page.ts +70 -0
  263. package/templates/shopify/schemaTypes/documents/product.tsx +132 -0
  264. package/templates/shopify/schemaTypes/documents/productVariant.tsx +67 -0
  265. package/templates/shopify/schemaTypes/index.ts +108 -0
  266. package/templates/shopify/schemaTypes/objects/collection/collectionGroupType.ts +27 -0
  267. package/templates/shopify/schemaTypes/objects/collection/collectionLinksType.ts +16 -0
  268. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +48 -0
  269. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorType.tsx +50 -0
  270. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeObjectType.ts +40 -0
  271. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeType.ts +49 -0
  272. package/templates/shopify/schemaTypes/objects/global/footerType.ts +22 -0
  273. package/templates/shopify/schemaTypes/objects/global/menuLinksType.ts +21 -0
  274. package/templates/shopify/schemaTypes/objects/global/menuType.ts +17 -0
  275. package/templates/shopify/schemaTypes/objects/global/notFoundPageType.ts +37 -0
  276. package/templates/shopify/schemaTypes/objects/hotspot/imageWithProductHotspotsType.ts +48 -0
  277. package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +17 -0
  278. package/templates/shopify/schemaTypes/objects/hotspot/spotType.tsx +60 -0
  279. package/templates/shopify/schemaTypes/objects/link/linkEmailType.tsx +34 -0
  280. package/templates/shopify/schemaTypes/objects/link/linkExternalType.tsx +37 -0
  281. package/templates/shopify/schemaTypes/objects/link/linkInternalType.tsx +33 -0
  282. package/templates/shopify/schemaTypes/objects/link/linkProductType.tsx +60 -0
  283. package/templates/shopify/schemaTypes/objects/module/accordionGroupType.ts +33 -0
  284. package/templates/shopify/schemaTypes/objects/module/accordionType.ts +28 -0
  285. package/templates/shopify/schemaTypes/objects/module/callToActionType.tsx +85 -0
  286. package/templates/shopify/schemaTypes/objects/module/calloutType.ts +38 -0
  287. package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +47 -0
  288. package/templates/shopify/schemaTypes/objects/module/gridItemType.ts +41 -0
  289. package/templates/shopify/schemaTypes/objects/module/gridType.ts +28 -0
  290. package/templates/shopify/schemaTypes/objects/module/heroType.tsx +40 -0
  291. package/templates/shopify/schemaTypes/objects/module/imageCallToActionType.tsx +19 -0
  292. package/templates/shopify/schemaTypes/objects/module/imageFeatureType.ts +80 -0
  293. package/templates/shopify/schemaTypes/objects/module/imageFeaturesType.tsx +51 -0
  294. package/templates/shopify/schemaTypes/objects/module/instagramType.ts +35 -0
  295. package/templates/shopify/schemaTypes/objects/module/productFeaturesType.tsx +50 -0
  296. package/templates/shopify/schemaTypes/objects/module/productReferenceType.tsx +42 -0
  297. package/templates/shopify/schemaTypes/objects/seoType.ts +31 -0
  298. package/templates/shopify/schemaTypes/objects/shopify/collectionRuleType.tsx +37 -0
  299. package/templates/shopify/schemaTypes/objects/shopify/inventoryType.ts +25 -0
  300. package/templates/shopify/schemaTypes/objects/shopify/optionType.tsx +31 -0
  301. package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +11 -0
  302. package/templates/shopify/schemaTypes/objects/shopify/priceRangeType.ts +20 -0
  303. package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +142 -0
  304. package/templates/shopify/schemaTypes/objects/shopify/proxyStringType.ts +12 -0
  305. package/templates/shopify/schemaTypes/objects/shopify/shopType.ts +15 -0
  306. package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +84 -0
  307. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +131 -0
  308. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductVariantType.ts +121 -0
  309. package/templates/shopify/schemaTypes/portableText/portableTextSimpleType.tsx +45 -0
  310. package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +52 -0
  311. package/templates/shopify/schemaTypes/singletons/homeType.ts +49 -0
  312. package/templates/shopify/schemaTypes/singletons/settingsType.ts +96 -0
  313. package/templates/shopify/static/.gitkeep +1 -0
  314. package/templates/shopify/structure/collectionStructure.ts +9 -0
  315. package/templates/shopify/structure/colorThemeStructure.ts +9 -0
  316. package/templates/shopify/structure/homeStructure.ts +9 -0
  317. package/templates/shopify/structure/index.ts +57 -0
  318. package/templates/shopify/structure/pageStructure.ts +11 -0
  319. package/templates/shopify/structure/productStructure.ts +51 -0
  320. package/templates/shopify/structure/settingStructure.ts +9 -0
  321. package/templates/shopify/utils/blocksToText.ts +20 -0
  322. package/templates/shopify/utils/defineStructure.ts +11 -0
  323. package/templates/shopify/utils/getPriceRange.ts +24 -0
  324. package/templates/shopify/utils/shopifyUrls.ts +22 -0
  325. package/templates/shopify/utils/validateSlug.ts +18 -0
  326. package/templates/shopify-online-storefront/README.md +54 -0
  327. package/templates/shopify-online-storefront/components/icons/Shopify.tsx +22 -0
  328. package/templates/shopify-online-storefront/components/inputs/CollectionHidden.tsx +23 -0
  329. package/templates/shopify-online-storefront/components/inputs/PlaceholderString.tsx +25 -0
  330. package/templates/shopify-online-storefront/components/inputs/ProductHidden.tsx +66 -0
  331. package/templates/shopify-online-storefront/components/inputs/ProductVariantHidden.tsx +25 -0
  332. package/templates/shopify-online-storefront/components/inputs/ProxyString.tsx +38 -0
  333. package/templates/shopify-online-storefront/components/media/ShopifyDocumentStatus.tsx +83 -0
  334. package/templates/shopify-online-storefront/constants.ts +18 -0
  335. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +45 -0
  336. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +144 -0
  337. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyLink.ts +39 -0
  338. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/types.ts +14 -0
  339. package/templates/shopify-online-storefront/schemaTypes/blocks/blockContent.ts +32 -0
  340. package/templates/shopify-online-storefront/schemaTypes/documents/collection.tsx +83 -0
  341. package/templates/shopify-online-storefront/schemaTypes/documents/product.tsx +102 -0
  342. package/templates/shopify-online-storefront/schemaTypes/documents/productVariant.tsx +82 -0
  343. package/templates/shopify-online-storefront/schemaTypes/index.ts +43 -0
  344. package/templates/shopify-online-storefront/schemaTypes/objects/accordion.ts +31 -0
  345. package/templates/shopify-online-storefront/schemaTypes/objects/accordionGroup.ts +35 -0
  346. package/templates/shopify-online-storefront/schemaTypes/objects/callout.ts +40 -0
  347. package/templates/shopify-online-storefront/schemaTypes/objects/inventory.ts +30 -0
  348. package/templates/shopify-online-storefront/schemaTypes/objects/option.ts +30 -0
  349. package/templates/shopify-online-storefront/schemaTypes/objects/priceRange.ts +22 -0
  350. package/templates/shopify-online-storefront/schemaTypes/objects/proxyString.ts +11 -0
  351. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollection.ts +109 -0
  352. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollectionRule.tsx +45 -0
  353. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProduct.ts +165 -0
  354. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProductVariant.ts +151 -0
  355. package/templates/shopify-online-storefront/structure/collectionStructure.ts +9 -0
  356. package/templates/shopify-online-storefront/structure/index.ts +37 -0
  357. package/templates/shopify-online-storefront/structure/productStructure.ts +35 -0
  358. package/templates/shopify-online-storefront/utils/defineStructure.ts +11 -0
  359. package/templates/shopify-online-storefront/utils/getPriceRange.ts +24 -0
  360. package/templates/shopify-online-storefront/utils/shopifyUrls.ts +22 -0
  361. package/dist/actions/build/__tests__/buildApp.test.js +0 -367
  362. package/dist/actions/build/__tests__/buildApp.test.js.map +0 -1
  363. package/dist/actions/build/__tests__/buildStudio.test.js +0 -561
  364. package/dist/actions/build/__tests__/buildStudio.test.js.map +0 -1
  365. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js +0 -233
  366. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js.map +0 -1
  367. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js +0 -414
  368. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js.map +0 -1
  369. package/dist/actions/build/__tests__/determineBasePath.test.js +0 -24
  370. package/dist/actions/build/__tests__/determineBasePath.test.js.map +0 -1
  371. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js +0 -109
  372. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js.map +0 -1
  373. package/dist/actions/build/__tests__/getViteConfig.test.js +0 -493
  374. package/dist/actions/build/__tests__/getViteConfig.test.js.map +0 -1
  375. package/dist/actions/build/__tests__/renderDocument.test.js +0 -278
  376. package/dist/actions/build/__tests__/renderDocument.test.js.map +0 -1
  377. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js +0 -153
  378. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js.map +0 -1
  379. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js +0 -657
  380. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js.map +0 -1
  381. package/dist/actions/cors/constants.d.ts +0 -1
  382. package/dist/actions/cors/constants.js +0 -3
  383. package/dist/actions/cors/constants.js.map +0 -1
  384. package/dist/actions/cors/types.d.ts +0 -9
  385. package/dist/actions/cors/types.js +0 -3
  386. package/dist/actions/cors/types.js.map +0 -1
  387. package/dist/actions/dataset/__tests__/validateDatasetName.test.js +0 -182
  388. package/dist/actions/dataset/__tests__/validateDatasetName.test.js.map +0 -1
  389. package/dist/actions/deploy/__tests__/checkDir.test.js +0 -120
  390. package/dist/actions/deploy/__tests__/checkDir.test.js.map +0 -1
  391. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js +0 -16
  392. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js.map +0 -1
  393. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js +0 -124
  394. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js.map +0 -1
  395. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js +0 -274
  396. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js.map +0 -1
  397. package/dist/actions/media/__tests__/importMedia.test.js +0 -182
  398. package/dist/actions/media/__tests__/importMedia.test.js.map +0 -1
  399. package/dist/actions/schema/__tests__/deleteSchemaAction.test.js +0 -294
  400. package/dist/actions/schema/__tests__/deleteSchemaAction.test.js.map +0 -1
  401. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js +0 -174
  402. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js.map +0 -1
  403. package/dist/actions/schema/__tests__/validateAction.test.js +0 -281
  404. package/dist/actions/schema/__tests__/validateAction.test.js.map +0 -1
  405. package/dist/actions/schema/schemaStoreConstants.d.ts +0 -1
  406. package/dist/actions/schema/schemaStoreConstants.js +0 -4
  407. package/dist/actions/schema/schemaStoreConstants.js.map +0 -1
  408. package/dist/actions/schema/utils/schemaActionHelpers.d.ts +0 -1
  409. package/dist/actions/schema/utils/schemaActionHelpers.js +0 -5
  410. package/dist/actions/schema/utils/schemaActionHelpers.js.map +0 -1
  411. package/dist/actions/schema/utils/schemaApiClient.d.ts +0 -6
  412. package/dist/actions/schema/utils/schemaApiClient.js +0 -17
  413. package/dist/actions/schema/utils/schemaApiClient.js.map +0 -1
  414. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js +0 -27
  415. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js.map +0 -1
  416. package/dist/actions/users/__tests__/validateEmail.test.js +0 -16
  417. package/dist/actions/users/__tests__/validateEmail.test.js.map +0 -1
  418. package/dist/actions/users/apiVersion.d.ts +0 -6
  419. package/dist/actions/users/apiVersion.js +0 -7
  420. package/dist/actions/users/apiVersion.js.map +0 -1
  421. package/dist/commands/__tests__/blueprints.test.js +0 -54
  422. package/dist/commands/__tests__/blueprints.test.js.map +0 -1
  423. package/dist/commands/__tests__/build.test.js +0 -132
  424. package/dist/commands/__tests__/build.test.js.map +0 -1
  425. package/dist/commands/__tests__/codemod.test.js +0 -271
  426. package/dist/commands/__tests__/codemod.test.js.map +0 -1
  427. package/dist/commands/__tests__/debug.test.js +0 -697
  428. package/dist/commands/__tests__/debug.test.js.map +0 -1
  429. package/dist/commands/__tests__/deploy.test.js +0 -1913
  430. package/dist/commands/__tests__/deploy.test.js.map +0 -1
  431. package/dist/commands/__tests__/dev.test.js +0 -410
  432. package/dist/commands/__tests__/dev.test.js.map +0 -1
  433. package/dist/commands/__tests__/exec.test.js +0 -207
  434. package/dist/commands/__tests__/exec.test.js.map +0 -1
  435. package/dist/commands/__tests__/init/init.authentication.test.js +0 -60
  436. package/dist/commands/__tests__/init/init.authentication.test.js.map +0 -1
  437. package/dist/commands/__tests__/init/init.create-new-project.test.js +0 -196
  438. package/dist/commands/__tests__/init/init.create-new-project.test.js.map +0 -1
  439. package/dist/commands/__tests__/init/init.plan.test.js +0 -220
  440. package/dist/commands/__tests__/init/init.plan.test.js.map +0 -1
  441. package/dist/commands/__tests__/init/init.setup.test.js +0 -279
  442. package/dist/commands/__tests__/init/init.setup.test.js.map +0 -1
  443. package/dist/commands/__tests__/install.test.js +0 -258
  444. package/dist/commands/__tests__/install.test.js.map +0 -1
  445. package/dist/commands/__tests__/learn.test.js +0 -29
  446. package/dist/commands/__tests__/learn.test.js.map +0 -1
  447. package/dist/commands/__tests__/logout.test.js +0 -88
  448. package/dist/commands/__tests__/logout.test.js.map +0 -1
  449. package/dist/commands/__tests__/manage.test.js +0 -105
  450. package/dist/commands/__tests__/manage.test.js.map +0 -1
  451. package/dist/commands/__tests__/migration.test.js +0 -119
  452. package/dist/commands/__tests__/migration.test.js.map +0 -1
  453. package/dist/commands/__tests__/preview.test.js +0 -261
  454. package/dist/commands/__tests__/preview.test.js.map +0 -1
  455. package/dist/commands/__tests__/start.test.js +0 -253
  456. package/dist/commands/__tests__/start.test.js.map +0 -1
  457. package/dist/commands/__tests__/undeploy.test.js +0 -382
  458. package/dist/commands/__tests__/undeploy.test.js.map +0 -1
  459. package/dist/commands/__tests__/versions.test.js +0 -134
  460. package/dist/commands/__tests__/versions.test.js.map +0 -1
  461. package/dist/commands/backup/__tests__/disable.test.js +0 -207
  462. package/dist/commands/backup/__tests__/disable.test.js.map +0 -1
  463. package/dist/commands/backup/__tests__/download.test.js +0 -679
  464. package/dist/commands/backup/__tests__/download.test.js.map +0 -1
  465. package/dist/commands/backup/__tests__/enable.test.js +0 -317
  466. package/dist/commands/backup/__tests__/enable.test.js.map +0 -1
  467. package/dist/commands/backup/__tests__/list.test.js +0 -321
  468. package/dist/commands/backup/__tests__/list.test.js.map +0 -1
  469. package/dist/commands/cors/__tests__/add.test.js +0 -346
  470. package/dist/commands/cors/__tests__/add.test.js.map +0 -1
  471. package/dist/commands/cors/__tests__/delete.test.js +0 -293
  472. package/dist/commands/cors/__tests__/delete.test.js.map +0 -1
  473. package/dist/commands/cors/__tests__/list.test.js +0 -218
  474. package/dist/commands/cors/__tests__/list.test.js.map +0 -1
  475. package/dist/commands/dataset/__tests__/copy.test.js +0 -520
  476. package/dist/commands/dataset/__tests__/copy.test.js.map +0 -1
  477. package/dist/commands/dataset/__tests__/create.test.js +0 -312
  478. package/dist/commands/dataset/__tests__/create.test.js.map +0 -1
  479. package/dist/commands/dataset/__tests__/delete.test.js +0 -224
  480. package/dist/commands/dataset/__tests__/delete.test.js.map +0 -1
  481. package/dist/commands/dataset/__tests__/export.test.js +0 -561
  482. package/dist/commands/dataset/__tests__/export.test.js.map +0 -1
  483. package/dist/commands/dataset/__tests__/import.test.js +0 -53
  484. package/dist/commands/dataset/__tests__/import.test.js.map +0 -1
  485. package/dist/commands/dataset/__tests__/list.test.js +0 -174
  486. package/dist/commands/dataset/__tests__/list.test.js.map +0 -1
  487. package/dist/commands/dataset/alias/__tests__/create.test.js +0 -299
  488. package/dist/commands/dataset/alias/__tests__/create.test.js.map +0 -1
  489. package/dist/commands/dataset/alias/__tests__/delete.test.js +0 -236
  490. package/dist/commands/dataset/alias/__tests__/delete.test.js.map +0 -1
  491. package/dist/commands/dataset/alias/__tests__/link.test.js +0 -336
  492. package/dist/commands/dataset/alias/__tests__/link.test.js.map +0 -1
  493. package/dist/commands/dataset/alias/__tests__/unlink.test.js +0 -298
  494. package/dist/commands/dataset/alias/__tests__/unlink.test.js.map +0 -1
  495. package/dist/commands/dataset/visibility/__tests__/get.test.js +0 -147
  496. package/dist/commands/dataset/visibility/__tests__/get.test.js.map +0 -1
  497. package/dist/commands/dataset/visibility/__tests__/set.test.js +0 -245
  498. package/dist/commands/dataset/visibility/__tests__/set.test.js.map +0 -1
  499. package/dist/commands/docs/__tests__/browse.test.js +0 -29
  500. package/dist/commands/docs/__tests__/browse.test.js.map +0 -1
  501. package/dist/commands/docs/__tests__/read.test.js +0 -78
  502. package/dist/commands/docs/__tests__/read.test.js.map +0 -1
  503. package/dist/commands/docs/__tests__/search.test.js +0 -254
  504. package/dist/commands/docs/__tests__/search.test.js.map +0 -1
  505. package/dist/commands/documents/__tests__/create.test.js +0 -967
  506. package/dist/commands/documents/__tests__/create.test.js.map +0 -1
  507. package/dist/commands/documents/__tests__/delete.test.js +0 -268
  508. package/dist/commands/documents/__tests__/delete.test.js.map +0 -1
  509. package/dist/commands/documents/__tests__/get.test.js +0 -209
  510. package/dist/commands/documents/__tests__/get.test.js.map +0 -1
  511. package/dist/commands/documents/__tests__/query.test.js +0 -405
  512. package/dist/commands/documents/__tests__/query.test.js.map +0 -1
  513. package/dist/commands/documents/__tests__/validate.test.js +0 -226
  514. package/dist/commands/documents/__tests__/validate.test.js.map +0 -1
  515. package/dist/commands/graphql/__tests__/list.test.js +0 -228
  516. package/dist/commands/graphql/__tests__/list.test.js.map +0 -1
  517. package/dist/commands/graphql/__tests__/undeploy.test.js +0 -384
  518. package/dist/commands/graphql/__tests__/undeploy.test.js.map +0 -1
  519. package/dist/commands/hook/__tests__/attempt.test.js +0 -260
  520. package/dist/commands/hook/__tests__/attempt.test.js.map +0 -1
  521. package/dist/commands/hook/__tests__/create.test.js +0 -121
  522. package/dist/commands/hook/__tests__/create.test.js.map +0 -1
  523. package/dist/commands/hook/__tests__/delete.test.js +0 -220
  524. package/dist/commands/hook/__tests__/delete.test.js.map +0 -1
  525. package/dist/commands/hook/__tests__/list.test.js +0 -138
  526. package/dist/commands/hook/__tests__/list.test.js.map +0 -1
  527. package/dist/commands/hook/__tests__/logs.test.js +0 -770
  528. package/dist/commands/hook/__tests__/logs.test.js.map +0 -1
  529. package/dist/commands/manifest/__tests__/extract.test.js +0 -123
  530. package/dist/commands/manifest/__tests__/extract.test.js.map +0 -1
  531. package/dist/commands/mcp/__tests__/configure.test.js +0 -397
  532. package/dist/commands/mcp/__tests__/configure.test.js.map +0 -1
  533. package/dist/commands/media/__tests__/create-aspect.test.js +0 -160
  534. package/dist/commands/media/__tests__/create-aspect.test.js.map +0 -1
  535. package/dist/commands/media/__tests__/delete-aspect.test.js +0 -333
  536. package/dist/commands/media/__tests__/delete-aspect.test.js.map +0 -1
  537. package/dist/commands/media/__tests__/deploy-aspect.test.js +0 -632
  538. package/dist/commands/media/__tests__/deploy-aspect.test.js.map +0 -1
  539. package/dist/commands/media/__tests__/export.test.js +0 -398
  540. package/dist/commands/media/__tests__/export.test.js.map +0 -1
  541. package/dist/commands/media/__tests__/import.test.js +0 -281
  542. package/dist/commands/media/__tests__/import.test.js.map +0 -1
  543. package/dist/commands/openapi/__tests__/get.test.js +0 -149
  544. package/dist/commands/openapi/__tests__/get.test.js.map +0 -1
  545. package/dist/commands/openapi/__tests__/list.test.js +0 -113
  546. package/dist/commands/openapi/__tests__/list.test.js.map +0 -1
  547. package/dist/commands/projects/__tests__/list.test.js +0 -153
  548. package/dist/commands/projects/__tests__/list.test.js.map +0 -1
  549. package/dist/commands/schema/__tests__/delete.test.js +0 -209
  550. package/dist/commands/schema/__tests__/delete.test.js.map +0 -1
  551. package/dist/commands/schema/__tests__/extract.test.js +0 -113
  552. package/dist/commands/schema/__tests__/extract.test.js.map +0 -1
  553. package/dist/commands/schema/__tests__/validate.test.js +0 -104
  554. package/dist/commands/schema/__tests__/validate.test.js.map +0 -1
  555. package/dist/commands/telemetry/__tests__/disable.test.js +0 -145
  556. package/dist/commands/telemetry/__tests__/disable.test.js.map +0 -1
  557. package/dist/commands/telemetry/__tests__/enable.test.js +0 -131
  558. package/dist/commands/telemetry/__tests__/enable.test.js.map +0 -1
  559. package/dist/commands/telemetry/__tests__/status.test.js +0 -153
  560. package/dist/commands/telemetry/__tests__/status.test.js.map +0 -1
  561. package/dist/commands/tokens/__tests__/add.test.js +0 -420
  562. package/dist/commands/tokens/__tests__/add.test.js.map +0 -1
  563. package/dist/commands/tokens/__tests__/delete.test.js +0 -375
  564. package/dist/commands/tokens/__tests__/delete.test.js.map +0 -1
  565. package/dist/commands/tokens/__tests__/list.test.js +0 -368
  566. package/dist/commands/tokens/__tests__/list.test.js.map +0 -1
  567. package/dist/commands/users/__tests__/invite.test.js +0 -341
  568. package/dist/commands/users/__tests__/invite.test.js.map +0 -1
  569. package/dist/commands/users/__tests__/list.test.js +0 -401
  570. package/dist/commands/users/__tests__/list.test.js.map +0 -1
  571. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js +0 -77
  572. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js.map +0 -1
  573. package/dist/services/__tests__/datasetAliases.test.js +0 -131
  574. package/dist/services/__tests__/datasetAliases.test.js.map +0 -1
  575. package/dist/services/__tests__/datasets.test.js +0 -436
  576. package/dist/services/__tests__/datasets.test.js.map +0 -1
  577. package/dist/services/__tests__/graphql.test.js +0 -43
  578. package/dist/services/__tests__/graphql.test.js.map +0 -1
  579. package/dist/services/__tests__/mediaLibraries.test.js +0 -88
  580. package/dist/services/__tests__/mediaLibraries.test.js.map +0 -1
  581. package/dist/services/__tests__/projects.test.js +0 -41
  582. package/dist/services/__tests__/projects.test.js.map +0 -1
  583. package/dist/services/__tests__/userApplications.test.js +0 -113
  584. package/dist/services/__tests__/userApplications.test.js.map +0 -1
  585. package/dist/util/__tests__/appId.test.js +0 -31
  586. package/dist/util/__tests__/appId.test.js.map +0 -1
  587. package/dist/util/__tests__/cliClient.test.js +0 -184
  588. package/dist/util/__tests__/cliClient.test.js.map +0 -1
  589. package/dist/util/__tests__/compareDependencyVersions.test.js +0 -426
  590. package/dist/util/__tests__/compareDependencyVersions.test.js.map +0 -1
  591. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js +0 -74
  592. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js.map +0 -1
  593. package/dist/util/__tests__/findNdjsonEntry.test.js +0 -54
  594. package/dist/util/__tests__/findNdjsonEntry.test.js.map +0 -1
  595. package/dist/util/__tests__/getCliVersion.test.js +0 -28
  596. package/dist/util/__tests__/getCliVersion.test.js.map +0 -1
  597. package/dist/util/__tests__/getLocalPackageVersion.test.js +0 -84
  598. package/dist/util/__tests__/getLocalPackageVersion.test.js.map +0 -1
  599. package/dist/util/__tests__/getWorkspace.test.js +0 -37
  600. package/dist/util/__tests__/getWorkspace.test.js.map +0 -1
  601. package/dist/util/__tests__/readPackageJson.test.js +0 -69
  602. package/dist/util/__tests__/readPackageJson.test.js.map +0 -1
  603. package/dist/util/__tests__/warnAboutMissingAppId.test.js +0 -28
  604. package/dist/util/__tests__/warnAboutMissingAppId.test.js.map +0 -1
  605. package/dist/util/packageManager/__tests__/installPackages.test.js +0 -388
  606. package/dist/util/packageManager/__tests__/installPackages.test.js.map +0 -1
  607. package/dist/util/validation/ __tests__/validateDocuments.test.js +0 -274
  608. package/dist/util/validation/ __tests__/validateDocuments.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/build/__tests__/buildApp.test.ts"],"sourcesContent":["import {rm} from 'node:fs/promises'\n\nimport {type Output} from '@sanity/cli-core'\nimport {logSymbols} from '@sanity/cli-core/ux'\nimport {afterEach, beforeEach, describe, expect, it, type MockedFunction, vi} from 'vitest'\n\nimport {buildApp} from '../buildApp.js'\nimport {type BuildOptions} from '../types.js'\n\nvi.mock('node:fs/promises')\n\nvi.mock('@sanity/cli-core/ux', async () => {\n const original = await import('@sanity/cli-core/ux')\n return {\n ...original,\n confirm: mockedConfirm,\n spinner: vi.fn(() => ({\n fail: vi.fn().mockReturnThis(),\n start: vi.fn().mockReturnThis(),\n succeed: vi.fn().mockReturnThis(),\n text: '',\n })),\n }\n})\nvi.mock('../../../util/compareDependencyVersions.js')\nvi.mock('../../../util/readModuleVersion.js')\nvi.mock('../buildStaticFiles.js')\nvi.mock('../buildVendorDependencies.js')\nvi.mock('../getAppEnvVars.js')\nvi.mock('../getAutoUpdatesImportMap.js')\n\nconst mockedRm = rm as MockedFunction<typeof rm>\nconst mockedConfirm = vi.hoisted(() => vi.fn())\nconst mockedCompareDependencyVersions = vi.hoisted(() => vi.fn())\nconst mockedReadModuleVersion = vi.hoisted(() => vi.fn())\nconst mockedBuildStaticFiles = vi.hoisted(() => vi.fn())\nconst mockedBuildVendorDependencies = vi.hoisted(() => vi.fn())\nconst mockedGetAppEnvVars = vi.hoisted(() => vi.fn())\nconst mockedGetAutoUpdatesImportMap = vi.hoisted(() => vi.fn())\n\nvi.mock('../../../util/compareDependencyVersions.js', () => ({\n compareDependencyVersions: mockedCompareDependencyVersions,\n}))\n\nvi.mock('../../../util/readModuleVersion.js', () => ({\n readModuleVersion: mockedReadModuleVersion,\n}))\n\nvi.mock('../buildStaticFiles.js', () => ({\n buildStaticFiles: mockedBuildStaticFiles,\n}))\n\nvi.mock('../buildVendorDependencies.js', () => ({\n buildVendorDependencies: mockedBuildVendorDependencies,\n}))\n\nvi.mock('../getAppEnvVars.js', () => ({\n getAppEnvVars: mockedGetAppEnvVars,\n}))\n\nvi.mock('../getAutoUpdatesImportMap.js', () => ({\n getAutoUpdatesImportMap: mockedGetAutoUpdatesImportMap,\n}))\n\ndescribe('buildApp', () => {\n const mockOutput = {\n error: vi.fn(),\n log: vi.fn(),\n warn: vi.fn(),\n } as unknown as Output\n\n const baseBuildOptions: BuildOptions = {\n autoUpdatesEnabled: false,\n cliConfig: {},\n exit: vi.fn(),\n flags: {\n 'auto-updates': false,\n json: false,\n minify: false,\n 'source-maps': false,\n stats: false,\n yes: false,\n },\n outDir: undefined,\n output: mockOutput,\n workDir: '/test/work/dir',\n }\n\n beforeEach(() => {\n vi.clearAllMocks()\n\n // Default mocks\n mockedReadModuleVersion.mockResolvedValue('1.0.0')\n mockedGetAppEnvVars.mockReturnValue([])\n mockedGetAutoUpdatesImportMap.mockReturnValue({})\n mockedBuildStaticFiles.mockResolvedValue({\n chunks: [],\n })\n mockedBuildVendorDependencies.mockResolvedValue({})\n mockedCompareDependencyVersions.mockResolvedValue([])\n mockedRm.mockResolvedValue(undefined)\n })\n\n afterEach(() => {\n vi.restoreAllMocks()\n })\n\n it('should build app successfully with basic options', async () => {\n await buildApp(baseBuildOptions)\n\n expect(mockedReadModuleVersion).toHaveBeenCalledWith('/test/work/dir/dist', '@sanity/sdk-react')\n expect(mockedBuildStaticFiles).toHaveBeenCalled()\n })\n\n it('should throw error when installedSdkVersion is not found', async () => {\n mockedReadModuleVersion.mockResolvedValueOnce(undefined)\n\n await expect(buildApp(baseBuildOptions)).rejects.toThrow(\n 'Failed to find installed @sanity/sdk-react version',\n )\n })\n\n it('should throw error when auto-updates enabled but cleanSdkVersion is invalid', async () => {\n // Mock an invalid version that semver.parse returns null for\n mockedReadModuleVersion.mockResolvedValueOnce('invalid-version')\n\n const options = {\n ...baseBuildOptions,\n autoUpdatesEnabled: true,\n }\n\n await expect(buildApp(options)).rejects.toThrow(\n 'Failed to parse installed SDK version: invalid-version',\n )\n })\n\n it('should handle auto-updates enabled with valid version', async () => {\n const options = {\n ...baseBuildOptions,\n autoUpdatesEnabled: true,\n }\n\n await buildApp(options)\n\n expect(mockOutput.log).toHaveBeenCalledWith(\n `${logSymbols.info} Building with auto-updates enabled`,\n )\n expect(mockedCompareDependencyVersions).toHaveBeenCalled()\n })\n\n it('should prompt user when version differences exist and not in unattended mode', async () => {\n const versionDifferences = [\n {\n installed: '1.0.0',\n pkg: '@sanity/sdk-react',\n remote: '1.1.0',\n },\n ]\n\n mockedCompareDependencyVersions.mockResolvedValue(versionDifferences)\n mockedConfirm.mockResolvedValue(true)\n\n const options = {\n ...baseBuildOptions,\n autoUpdatesEnabled: true,\n flags: {...baseBuildOptions.flags, yes: false},\n }\n\n await buildApp(options)\n\n expect(mockedConfirm).toHaveBeenCalledWith({\n default: false,\n message: expect.stringContaining('different from the versions currently served'),\n })\n })\n\n it('should exit when user declines version difference confirmation', async () => {\n const versionDifferences = [\n {\n installed: '1.0.0',\n pkg: '@sanity/sdk-react',\n remote: '1.1.0',\n },\n ]\n\n mockedCompareDependencyVersions.mockResolvedValue(versionDifferences)\n mockedConfirm.mockResolvedValue(false)\n\n const options = {\n ...baseBuildOptions,\n autoUpdatesEnabled: true,\n flags: {...baseBuildOptions.flags, yes: false},\n }\n\n await buildApp(options)\n expect(baseBuildOptions.exit).toHaveBeenCalledWith(1)\n })\n\n it('should continue build when user confirms version difference prompt', async () => {\n const versionDifferences = [\n {\n installed: '1.0.0',\n pkg: '@sanity/sdk-react',\n remote: '1.1.0',\n },\n ]\n\n mockedCompareDependencyVersions.mockResolvedValue(versionDifferences)\n mockedConfirm.mockResolvedValue(true)\n\n const options = {\n ...baseBuildOptions,\n autoUpdatesEnabled: true,\n flags: {...baseBuildOptions.flags, yes: false},\n }\n\n await buildApp(options)\n\n expect(mockedConfirm).toHaveBeenCalledWith({\n default: false,\n message: expect.stringContaining('different from the versions currently served'),\n })\n expect(baseBuildOptions.exit).not.toHaveBeenCalled()\n expect(mockedBuildStaticFiles).toHaveBeenCalled()\n expect(mockedBuildVendorDependencies).toHaveBeenCalled()\n })\n\n it('should skip version confirmation in unattended mode', async () => {\n const versionDifferences = [\n {\n installed: '1.0.0',\n pkg: '@sanity/sdk-react',\n remote: '1.1.0',\n },\n ]\n\n mockedCompareDependencyVersions.mockResolvedValue(versionDifferences)\n\n const options = {\n ...baseBuildOptions,\n autoUpdatesEnabled: true,\n flags: {...baseBuildOptions.flags, yes: true},\n }\n\n await buildApp(options)\n\n expect(mockedConfirm).not.toHaveBeenCalled()\n })\n\n it('should log environment variables when present', async () => {\n mockedGetAppEnvVars.mockReturnValue(['NODE_ENV', 'API_URL'])\n\n await buildApp(baseBuildOptions)\n\n expect(mockOutput.log).toHaveBeenCalledWith(\n '\\nIncluding the following environment variables as part of the JavaScript bundle:',\n )\n expect(mockOutput.log).toHaveBeenCalledWith('- NODE_ENV')\n expect(mockOutput.log).toHaveBeenCalledWith('- API_URL')\n expect(mockOutput.log).toHaveBeenCalledWith('')\n })\n\n it('should prompt for directory cleanup when using custom output directory in interactive mode', async () => {\n mockedConfirm.mockResolvedValue(true)\n\n const options = {\n ...baseBuildOptions,\n flags: {...baseBuildOptions.flags, yes: false},\n outDir: '/custom/output/dir',\n }\n\n await buildApp(options)\n\n expect(mockedConfirm).toHaveBeenCalledWith({\n default: true,\n message: expect.stringContaining('Do you want to delete the existing directory'),\n })\n })\n\n it('should skip cleanup when user declines directory cleanup', async () => {\n mockedConfirm.mockResolvedValue(false)\n\n const options = {\n ...baseBuildOptions,\n flags: {...baseBuildOptions.flags, yes: false},\n outDir: '/custom/output/dir',\n }\n\n await buildApp(options)\n\n expect(mockedRm).not.toHaveBeenCalled()\n })\n\n it('should skip cleanup prompt in unattended mode with custom output directory', async () => {\n const options = {\n ...baseBuildOptions,\n flags: {...baseBuildOptions.flags, yes: true},\n outDir: '/custom/output/dir',\n }\n\n await buildApp(options)\n\n expect(mockedConfirm).not.toHaveBeenCalled()\n expect(mockedRm).toHaveBeenCalled()\n })\n\n it('should handle CLI config with app entry', async () => {\n const options = {\n ...baseBuildOptions,\n cliConfig: {\n app: {\n entry: 'custom-entry.ts',\n },\n },\n }\n\n await buildApp(options)\n\n expect(mockedBuildStaticFiles).toHaveBeenCalledWith(\n expect.objectContaining({\n entry: 'custom-entry.ts',\n }),\n )\n })\n\n it('should handle CLI config with react compiler', async () => {\n const reactCompilerConfig = {\n compilationMode: 'all' as const,\n target: '19' as const,\n }\n\n const options = {\n ...baseBuildOptions,\n cliConfig: {\n reactCompiler: reactCompilerConfig,\n },\n }\n\n await buildApp(options)\n\n expect(mockedBuildStaticFiles).toHaveBeenCalledWith(\n expect.objectContaining({\n reactCompiler: reactCompilerConfig,\n }),\n )\n })\n\n it('should handle CLI config with vite config', async () => {\n const viteConfig = {base: '/custom/'}\n const options = {\n ...baseBuildOptions,\n cliConfig: {\n vite: viteConfig,\n },\n }\n\n await buildApp(options)\n\n expect(mockedBuildStaticFiles).toHaveBeenCalledWith(\n expect.objectContaining({\n vite: viteConfig,\n }),\n )\n })\n\n it('should show stats when stats flag is enabled', async () => {\n const mockBundle = {\n chunks: [\n {\n modules: [{name: 'test', renderedLength: 1000}],\n },\n ],\n }\n\n mockedBuildStaticFiles.mockResolvedValue(mockBundle)\n\n const options = {\n ...baseBuildOptions,\n flags: {...baseBuildOptions.flags, stats: true},\n }\n\n await buildApp(options)\n\n expect(mockOutput.log).toHaveBeenCalledWith('\\nLargest module files:')\n expect(mockOutput.log).toHaveBeenCalledWith(' - test (1 kB)')\n })\n\n it('should handle build errors gracefully', async () => {\n const buildError = new Error('Build failed')\n mockedBuildStaticFiles.mockRejectedValue(buildError)\n\n await buildApp(baseBuildOptions)\n expect(mockOutput.error).toHaveBeenCalledWith(\n 'Failed to build Sanity application: Build failed',\n {exit: 1},\n )\n })\n\n it('should handle minify flag', async () => {\n const options = {\n ...baseBuildOptions,\n flags: {...baseBuildOptions.flags, minify: true},\n }\n\n await buildApp(options)\n\n expect(mockedBuildStaticFiles).toHaveBeenCalledWith(\n expect.objectContaining({\n minify: true,\n }),\n )\n })\n\n it('should handle source-maps flag', async () => {\n const options = {\n ...baseBuildOptions,\n flags: {...baseBuildOptions.flags, 'source-maps': true},\n }\n\n await buildApp(options)\n\n expect(mockedBuildStaticFiles).toHaveBeenCalledWith(\n expect.objectContaining({\n sourceMap: true,\n }),\n )\n })\n})\n"],"names":["rm","logSymbols","afterEach","beforeEach","describe","expect","it","vi","buildApp","mock","original","confirm","mockedConfirm","spinner","fn","fail","mockReturnThis","start","succeed","text","mockedRm","hoisted","mockedCompareDependencyVersions","mockedReadModuleVersion","mockedBuildStaticFiles","mockedBuildVendorDependencies","mockedGetAppEnvVars","mockedGetAutoUpdatesImportMap","compareDependencyVersions","readModuleVersion","buildStaticFiles","buildVendorDependencies","getAppEnvVars","getAutoUpdatesImportMap","mockOutput","error","log","warn","baseBuildOptions","autoUpdatesEnabled","cliConfig","exit","flags","json","minify","stats","yes","outDir","undefined","output","workDir","clearAllMocks","mockResolvedValue","mockReturnValue","chunks","restoreAllMocks","toHaveBeenCalledWith","toHaveBeenCalled","mockResolvedValueOnce","rejects","toThrow","options","info","versionDifferences","installed","pkg","remote","default","message","stringContaining","not","app","entry","objectContaining","reactCompilerConfig","compilationMode","target","reactCompiler","viteConfig","base","vite","mockBundle","modules","name","renderedLength","buildError","Error","mockRejectedValue","sourceMap"],"mappings":"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"}
@@ -1,561 +0,0 @@
1
- import { rm } from 'node:fs/promises';
2
- import path from 'node:path';
3
- import { logSymbols } from '@sanity/cli-core/ux';
4
- import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
5
- import { buildStudio } from '../buildStudio.js';
6
- vi.mock('node:fs/promises');
7
- const mockedRm = rm;
8
- const mockedConfirm = vi.hoisted(()=>vi.fn());
9
- const mockedSelect = vi.hoisted(()=>vi.fn());
10
- const mockedGetAppId = vi.hoisted(()=>vi.fn());
11
- const mockedCompareDependencyVersions = vi.hoisted(()=>vi.fn());
12
- const mockedGetPackageManagerChoice = vi.hoisted(()=>vi.fn());
13
- const mockedUpgradePackages = vi.hoisted(()=>vi.fn());
14
- const mockedWarnAboutMissingAppId = vi.hoisted(()=>vi.fn());
15
- const mockedBuildStaticFiles = vi.hoisted(()=>vi.fn());
16
- const mockedBuildVendorDependencies = vi.hoisted(()=>vi.fn());
17
- const mockedCheckRequiredDependencies = vi.hoisted(()=>vi.fn());
18
- const mockedCheckStudioDependencyVersions = vi.hoisted(()=>vi.fn());
19
- const mockedDetermineBasePath = vi.hoisted(()=>vi.fn());
20
- const mockedGetAutoUpdatesImportMap = vi.hoisted(()=>vi.fn());
21
- const mockedGetStudioEnvVars = vi.hoisted(()=>vi.fn());
22
- const mockedShouldAutoUpdate = vi.hoisted(()=>vi.fn());
23
- vi.mock('@sanity/cli-core/ux', async ()=>{
24
- const original = await import('@sanity/cli-core/ux');
25
- return {
26
- ...original,
27
- confirm: mockedConfirm,
28
- select: mockedSelect,
29
- spinner: vi.fn(()=>({
30
- fail: vi.fn().mockReturnThis(),
31
- start: vi.fn().mockReturnThis(),
32
- succeed: vi.fn().mockReturnThis(),
33
- text: ''
34
- }))
35
- };
36
- });
37
- vi.mock('../../../util/appId.js', ()=>({
38
- getAppId: mockedGetAppId
39
- }));
40
- vi.mock('../../../util/compareDependencyVersions.js', ()=>({
41
- compareDependencyVersions: mockedCompareDependencyVersions
42
- }));
43
- vi.mock('../../../util/warnAboutMissingAppId.js', ()=>({
44
- warnAboutMissingAppId: mockedWarnAboutMissingAppId
45
- }));
46
- vi.mock('../../../util/packageManager/packageManagerChoice.js', ()=>({
47
- getPackageManagerChoice: mockedGetPackageManagerChoice
48
- }));
49
- vi.mock('../../../util/packageManager/upgradePackages.js', ()=>({
50
- upgradePackages: mockedUpgradePackages
51
- }));
52
- vi.mock('../buildStaticFiles.js', ()=>({
53
- buildStaticFiles: mockedBuildStaticFiles
54
- }));
55
- vi.mock('../buildVendorDependencies.js', ()=>({
56
- buildVendorDependencies: mockedBuildVendorDependencies
57
- }));
58
- vi.mock('../checkRequiredDependencies.js', ()=>({
59
- checkRequiredDependencies: mockedCheckRequiredDependencies
60
- }));
61
- vi.mock('../checkStudioDependencyVersions.js', ()=>({
62
- checkStudioDependencyVersions: mockedCheckStudioDependencyVersions
63
- }));
64
- vi.mock('../determineBasePath.js', ()=>({
65
- determineBasePath: mockedDetermineBasePath
66
- }));
67
- vi.mock('../getAutoUpdatesImportMap.js', ()=>({
68
- getAutoUpdatesImportMap: mockedGetAutoUpdatesImportMap
69
- }));
70
- vi.mock('../getStudioEnvVars.js', ()=>({
71
- getStudioEnvVars: mockedGetStudioEnvVars
72
- }));
73
- vi.mock('../shouldAutoUpdate.js', ()=>({
74
- shouldAutoUpdate: mockedShouldAutoUpdate
75
- }));
76
- describe('buildStudio', ()=>{
77
- const mockOutput = {
78
- error: vi.fn(),
79
- log: vi.fn(),
80
- warn: vi.fn()
81
- };
82
- const baseBuildOptions = {
83
- autoUpdatesEnabled: false,
84
- cliConfig: {},
85
- exit: vi.fn(),
86
- flags: {
87
- 'auto-updates': false,
88
- json: false,
89
- minify: false,
90
- 'source-maps': false,
91
- stats: false,
92
- yes: false
93
- },
94
- outDir: undefined,
95
- output: mockOutput,
96
- workDir: '/test/work/dir'
97
- };
98
- beforeEach(()=>{
99
- vi.clearAllMocks();
100
- // Default mocks
101
- mockedGetAppId.mockReturnValue(undefined);
102
- mockedWarnAboutMissingAppId.mockReturnValue(undefined);
103
- mockedCheckStudioDependencyVersions.mockResolvedValue(undefined);
104
- mockedCheckRequiredDependencies.mockResolvedValue({
105
- installedSanityVersion: '3.0.0'
106
- });
107
- mockedShouldAutoUpdate.mockReturnValue(false);
108
- mockedGetAutoUpdatesImportMap.mockReturnValue({});
109
- mockedCompareDependencyVersions.mockResolvedValue([]);
110
- mockedGetStudioEnvVars.mockReturnValue([]);
111
- mockedDetermineBasePath.mockReturnValue('/studio');
112
- mockedBuildVendorDependencies.mockResolvedValue({});
113
- mockedBuildStaticFiles.mockResolvedValue({
114
- chunks: []
115
- });
116
- mockedRm.mockResolvedValue(undefined);
117
- mockedGetPackageManagerChoice.mockResolvedValue({
118
- chosen: 'npm'
119
- });
120
- mockedUpgradePackages.mockResolvedValue(undefined);
121
- });
122
- afterEach(()=>{
123
- vi.restoreAllMocks();
124
- });
125
- it('should build studio successfully with basic options', async ()=>{
126
- await buildStudio(baseBuildOptions);
127
- expect(mockedCheckStudioDependencyVersions).toHaveBeenCalledWith('/test/work/dir', mockOutput);
128
- expect(mockedCheckRequiredDependencies).toHaveBeenCalledWith({
129
- cliConfig: {},
130
- output: mockOutput,
131
- workDir: '/test/work/dir'
132
- });
133
- expect(mockedBuildStaticFiles).toHaveBeenCalled();
134
- });
135
- it('should throw error when auto-updates enabled but cleanSanityVersion is invalid', async ()=>{
136
- mockedCheckRequiredDependencies.mockResolvedValue({
137
- installedSanityVersion: 'invalid-version'
138
- });
139
- mockedShouldAutoUpdate.mockReturnValue(true);
140
- const options = {
141
- ...baseBuildOptions,
142
- autoUpdatesEnabled: true
143
- };
144
- await expect(buildStudio(options)).rejects.toThrow('Failed to parse installed Sanity version: invalid-version');
145
- });
146
- it('should warn when auto updates are enabled but an appId has not been configured', async ()=>{
147
- mockedShouldAutoUpdate.mockReturnValue(true);
148
- const options = {
149
- ...baseBuildOptions,
150
- autoUpdatesEnabled: true,
151
- cliConfig: {
152
- api: {
153
- projectId: 'test-project'
154
- }
155
- }
156
- };
157
- await buildStudio(options);
158
- expect(mockedWarnAboutMissingAppId).toHaveBeenCalledWith({
159
- appType: 'studio',
160
- output: mockOutput,
161
- projectId: 'test-project'
162
- });
163
- });
164
- it('should handle auto-updates enabled with valid version', async ()=>{
165
- mockedShouldAutoUpdate.mockReturnValue(true);
166
- const options = {
167
- ...baseBuildOptions,
168
- autoUpdatesEnabled: true
169
- };
170
- await buildStudio(options);
171
- expect(mockOutput.log).toHaveBeenCalledWith(`${logSymbols.info} Building with auto-updates enabled`);
172
- const expectedPackages = [
173
- {
174
- name: 'sanity',
175
- version: '3.0.0'
176
- },
177
- {
178
- name: '@sanity/vision',
179
- version: '3.0.0'
180
- }
181
- ];
182
- expect(mockedGetAutoUpdatesImportMap).toHaveBeenCalledWith(expectedPackages, {
183
- appId: undefined
184
- });
185
- expect(mockedCompareDependencyVersions).toHaveBeenCalledWith(expectedPackages, '/test/work/dir');
186
- });
187
- it('should pass appId to getAutoUpdatesImportMap when configured', async ()=>{
188
- mockedShouldAutoUpdate.mockReturnValue(true);
189
- mockedGetAppId.mockReturnValue('test-app-id');
190
- const options = {
191
- ...baseBuildOptions,
192
- autoUpdatesEnabled: true,
193
- cliConfig: {
194
- deployment: {
195
- appId: 'test-app-id'
196
- }
197
- }
198
- };
199
- await buildStudio(options);
200
- const expectedPackages = [
201
- {
202
- name: 'sanity',
203
- version: '3.0.0'
204
- },
205
- {
206
- name: '@sanity/vision',
207
- version: '3.0.0'
208
- }
209
- ];
210
- expect(mockedGetAutoUpdatesImportMap).toHaveBeenCalledWith(expectedPackages, {
211
- appId: 'test-app-id'
212
- });
213
- expect(mockedCompareDependencyVersions).toHaveBeenCalledWith(expectedPackages, '/test/work/dir');
214
- // Should not warn about missing appId when appId is configured
215
- expect(mockedWarnAboutMissingAppId).not.toHaveBeenCalled();
216
- });
217
- it('should prompt user when version differences exist and not in unattended mode', async ()=>{
218
- const versionDifferences = [
219
- {
220
- installed: '3.0.0',
221
- pkg: 'sanity',
222
- remote: '3.1.0'
223
- }
224
- ];
225
- mockedShouldAutoUpdate.mockReturnValue(true);
226
- mockedCompareDependencyVersions.mockResolvedValue(versionDifferences);
227
- mockedSelect.mockResolvedValue('upgrade-and-proceed');
228
- const options = {
229
- ...baseBuildOptions,
230
- autoUpdatesEnabled: true,
231
- flags: {
232
- ...baseBuildOptions.flags,
233
- yes: false
234
- }
235
- };
236
- await buildStudio(options);
237
- expect(mockedSelect).toHaveBeenCalledWith({
238
- choices: [
239
- {
240
- name: `Upgrade and proceed with build`,
241
- value: 'upgrade-and-proceed'
242
- },
243
- {
244
- name: `Upgrade only. You will need to run the build command again`,
245
- value: 'upgrade'
246
- },
247
- {
248
- name: 'Cancel',
249
- value: 'cancel'
250
- }
251
- ],
252
- default: 'upgrade-and-proceed',
253
- message: expect.stringContaining('different from the versions currently served')
254
- });
255
- });
256
- it('should exit when user selects cancel for version differences', async ()=>{
257
- const versionDifferences = [
258
- {
259
- installed: '3.0.0',
260
- pkg: 'sanity',
261
- remote: '3.1.0'
262
- }
263
- ];
264
- mockedShouldAutoUpdate.mockReturnValue(true);
265
- mockedCompareDependencyVersions.mockResolvedValue(versionDifferences);
266
- mockedSelect.mockResolvedValue('cancel');
267
- const options = {
268
- ...baseBuildOptions,
269
- autoUpdatesEnabled: true,
270
- flags: {
271
- ...baseBuildOptions.flags,
272
- yes: false
273
- }
274
- };
275
- await buildStudio(options);
276
- expect(baseBuildOptions.exit).toHaveBeenCalledWith(1);
277
- expect(mockedUpgradePackages).not.toHaveBeenCalled();
278
- });
279
- it('should upgrade packages and exit when user selects upgrade only', async ()=>{
280
- const versionDifferences = [
281
- {
282
- installed: '3.0.0',
283
- pkg: 'sanity',
284
- remote: '3.1.0'
285
- }
286
- ];
287
- mockedShouldAutoUpdate.mockReturnValue(true);
288
- mockedCompareDependencyVersions.mockResolvedValue(versionDifferences);
289
- mockedSelect.mockResolvedValue('upgrade');
290
- const options = {
291
- ...baseBuildOptions,
292
- autoUpdatesEnabled: true,
293
- flags: {
294
- ...baseBuildOptions.flags,
295
- yes: false
296
- }
297
- };
298
- await buildStudio(options);
299
- expect(mockedUpgradePackages).toHaveBeenCalledWith({
300
- packageManager: 'npm',
301
- packages: [
302
- [
303
- 'sanity',
304
- '3.1.0'
305
- ]
306
- ]
307
- }, {
308
- output: mockOutput,
309
- workDir: '/test/work/dir'
310
- });
311
- expect(baseBuildOptions.exit).toHaveBeenCalledWith(1);
312
- });
313
- it('should upgrade packages and continue building when user selects upgrade-and-proceed', async ()=>{
314
- const versionDifferences = [
315
- {
316
- installed: '3.0.0',
317
- pkg: 'sanity',
318
- remote: '3.1.0'
319
- }
320
- ];
321
- mockedShouldAutoUpdate.mockReturnValue(true);
322
- mockedCompareDependencyVersions.mockResolvedValue(versionDifferences);
323
- mockedSelect.mockResolvedValue('upgrade-and-proceed');
324
- const options = {
325
- ...baseBuildOptions,
326
- autoUpdatesEnabled: true,
327
- flags: {
328
- ...baseBuildOptions.flags,
329
- yes: false
330
- }
331
- };
332
- await buildStudio(options);
333
- expect(mockedUpgradePackages).toHaveBeenCalled();
334
- expect(mockedBuildStaticFiles).toHaveBeenCalled();
335
- });
336
- it('should skip version confirmation in unattended mode', async ()=>{
337
- const versionDifferences = [
338
- {
339
- installed: '3.0.0',
340
- pkg: 'sanity',
341
- remote: '3.1.0'
342
- }
343
- ];
344
- mockedShouldAutoUpdate.mockReturnValue(true);
345
- mockedCompareDependencyVersions.mockResolvedValue(versionDifferences);
346
- const options = {
347
- ...baseBuildOptions,
348
- autoUpdatesEnabled: true,
349
- flags: {
350
- ...baseBuildOptions.flags,
351
- yes: true
352
- }
353
- };
354
- await buildStudio(options);
355
- expect(mockedSelect).not.toHaveBeenCalled();
356
- });
357
- it('should log environment variables when present', async ()=>{
358
- mockedGetStudioEnvVars.mockReturnValue([
359
- 'NODE_ENV',
360
- 'SANITY_STUDIO_API_URL'
361
- ]);
362
- await buildStudio(baseBuildOptions);
363
- expect(mockOutput.log).toHaveBeenCalledWith('\nIncluding the following environment variables as part of the JavaScript bundle:');
364
- expect(mockOutput.log).toHaveBeenCalledWith('- NODE_ENV');
365
- expect(mockOutput.log).toHaveBeenCalledWith('- SANITY_STUDIO_API_URL');
366
- expect(mockOutput.log).toHaveBeenCalledWith('');
367
- });
368
- it('should prompt for directory cleanup when using custom output directory in interactive mode', async ()=>{
369
- mockedConfirm.mockResolvedValue(true);
370
- const options = {
371
- ...baseBuildOptions,
372
- flags: {
373
- ...baseBuildOptions.flags,
374
- yes: false
375
- },
376
- outDir: '/custom/output/dir'
377
- };
378
- await buildStudio(options);
379
- expect(mockedConfirm).toHaveBeenCalledWith({
380
- default: true,
381
- message: expect.stringContaining('Do you want to delete the existing directory')
382
- });
383
- });
384
- it('should skip cleanup when user declines directory cleanup', async ()=>{
385
- mockedConfirm.mockResolvedValue(false);
386
- const options = {
387
- ...baseBuildOptions,
388
- flags: {
389
- ...baseBuildOptions.flags,
390
- yes: false
391
- },
392
- outDir: '/custom/output/dir'
393
- };
394
- await buildStudio(options);
395
- expect(mockedRm).not.toHaveBeenCalled();
396
- });
397
- it('should skip cleanup prompt in unattended mode with custom output directory', async ()=>{
398
- const options = {
399
- ...baseBuildOptions,
400
- flags: {
401
- ...baseBuildOptions.flags,
402
- yes: true
403
- },
404
- outDir: '/custom/output/dir'
405
- };
406
- await buildStudio(options);
407
- expect(mockedConfirm).not.toHaveBeenCalled();
408
- expect(mockedRm).toHaveBeenCalled();
409
- });
410
- it('should handle CLI config with react compiler', async ()=>{
411
- const reactCompilerConfig = {
412
- compilationMode: 'all',
413
- target: '19'
414
- };
415
- const options = {
416
- ...baseBuildOptions,
417
- cliConfig: {
418
- reactCompiler: reactCompilerConfig
419
- }
420
- };
421
- await buildStudio(options);
422
- expect(mockedBuildStaticFiles).toHaveBeenCalledWith(expect.objectContaining({
423
- reactCompiler: reactCompilerConfig
424
- }));
425
- });
426
- it('should handle CLI config with vite config', async ()=>{
427
- const viteConfig = {
428
- base: '/custom/'
429
- };
430
- const options = {
431
- ...baseBuildOptions,
432
- cliConfig: {
433
- vite: viteConfig
434
- }
435
- };
436
- await buildStudio(options);
437
- expect(mockedBuildStaticFiles).toHaveBeenCalledWith(expect.objectContaining({
438
- vite: viteConfig
439
- }));
440
- });
441
- it('should show stats when stats flag is enabled', async ()=>{
442
- const mockBundle = {
443
- chunks: [
444
- {
445
- modules: [
446
- {
447
- name: 'test',
448
- renderedLength: 1000
449
- }
450
- ]
451
- }
452
- ]
453
- };
454
- mockedBuildStaticFiles.mockResolvedValue(mockBundle);
455
- const options = {
456
- ...baseBuildOptions,
457
- flags: {
458
- ...baseBuildOptions.flags,
459
- stats: true
460
- }
461
- };
462
- await buildStudio(options);
463
- expect(mockOutput.log).toHaveBeenCalledWith('\nLargest module files:');
464
- expect(mockOutput.log).toHaveBeenCalledWith(' - test (1 kB)');
465
- });
466
- it('should handle build errors gracefully', async ()=>{
467
- const buildError = new Error('Build failed');
468
- mockedBuildStaticFiles.mockRejectedValue(buildError);
469
- await buildStudio(baseBuildOptions);
470
- expect(mockOutput.error).toHaveBeenCalledWith('Failed to build Sanity Studio: Build failed', {
471
- exit: 1
472
- });
473
- });
474
- it('should handle minify flag', async ()=>{
475
- const options = {
476
- ...baseBuildOptions,
477
- flags: {
478
- ...baseBuildOptions.flags,
479
- minify: true
480
- }
481
- };
482
- await buildStudio(options);
483
- expect(mockedBuildStaticFiles).toHaveBeenCalledWith(expect.objectContaining({
484
- minify: true
485
- }));
486
- });
487
- it('should handle source-maps flag', async ()=>{
488
- const options = {
489
- ...baseBuildOptions,
490
- flags: {
491
- ...baseBuildOptions.flags,
492
- 'source-maps': true
493
- }
494
- };
495
- await buildStudio(options);
496
- expect(mockedBuildStaticFiles).toHaveBeenCalledWith(expect.objectContaining({
497
- sourceMap: true
498
- }));
499
- });
500
- it('should pass basePath from determineBasePath to buildStaticFiles', async ()=>{
501
- mockedDetermineBasePath.mockReturnValue('/custom-base-path');
502
- await buildStudio(baseBuildOptions);
503
- expect(mockedDetermineBasePath).toHaveBeenCalledWith({}, 'studio');
504
- expect(mockedBuildStaticFiles).toHaveBeenCalledWith(expect.objectContaining({
505
- basePath: '/custom-base-path'
506
- }));
507
- });
508
- it('should build vendor dependencies when auto-updates enabled', async ()=>{
509
- mockedShouldAutoUpdate.mockReturnValue(true);
510
- mockedGetAutoUpdatesImportMap.mockReturnValue({
511
- test: 'import'
512
- });
513
- mockedBuildVendorDependencies.mockResolvedValue({
514
- 'vendor-dep': 'path'
515
- });
516
- const options = {
517
- ...baseBuildOptions,
518
- autoUpdatesEnabled: true
519
- };
520
- await buildStudio(options);
521
- expect(mockedBuildVendorDependencies).toHaveBeenCalledWith({
522
- basePath: '/studio',
523
- cwd: '/test/work/dir',
524
- outputDir: path.resolve('/test/work/dir/dist')
525
- });
526
- expect(mockedBuildStaticFiles).toHaveBeenCalledWith(expect.objectContaining({
527
- importMap: {
528
- imports: {
529
- test: 'import',
530
- 'vendor-dep': 'path'
531
- }
532
- }
533
- }));
534
- });
535
- it('should not build vendor dependencies when auto-updates disabled', async ()=>{
536
- mockedShouldAutoUpdate.mockReturnValue(false);
537
- await buildStudio(baseBuildOptions);
538
- expect(mockedBuildVendorDependencies).not.toHaveBeenCalled();
539
- expect(mockedBuildStaticFiles).toHaveBeenCalledWith(expect.objectContaining({
540
- importMap: undefined
541
- }));
542
- });
543
- it('should use default output directory when outDir is not provided', async ()=>{
544
- await buildStudio(baseBuildOptions);
545
- expect(mockedBuildStaticFiles).toHaveBeenCalledWith(expect.objectContaining({
546
- outputDir: path.resolve('/test/work/dir/dist')
547
- }));
548
- });
549
- it('should use custom output directory when outDir is provided', async ()=>{
550
- const options = {
551
- ...baseBuildOptions,
552
- outDir: '/custom/output'
553
- };
554
- await buildStudio(options);
555
- expect(mockedBuildStaticFiles).toHaveBeenCalledWith(expect.objectContaining({
556
- outputDir: path.resolve('/custom/output')
557
- }));
558
- });
559
- });
560
-
561
- //# sourceMappingURL=buildStudio.test.js.map