@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,493 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
2
- import { extendViteConfigWithUserConfig, finalizeViteConfig, getViteConfig } from '../getViteConfig.js';
3
- // Mock all external dependencies
4
- vi.mock('read-package-up', ()=>({
5
- readPackageUp: vi.fn()
6
- }));
7
- vi.mock('@vitejs/plugin-react', ()=>({
8
- default: vi.fn(()=>({
9
- name: 'react-plugin'
10
- }))
11
- }));
12
- vi.mock('vite', ()=>({
13
- mergeConfig: vi.fn((base, override)=>({
14
- ...base,
15
- ...override
16
- }))
17
- }));
18
- vi.mock('../createExternalFromImportMap.js', ()=>({
19
- createExternalFromImportMap: vi.fn(()=>[
20
- 'external1',
21
- 'external2'
22
- ])
23
- }));
24
- vi.mock('../getBrowserAliases.js', ()=>({
25
- getSanityPkgExportAliases: vi.fn(()=>Promise.resolve({
26
- alias1: 'path1',
27
- alias2: 'path2'
28
- }))
29
- }));
30
- vi.mock('../getStudioEnvironmentVariables.js', ()=>({
31
- getAppEnvironmentVariables: vi.fn(()=>({
32
- 'process.env.APP_VAR': '"app-value"'
33
- })),
34
- getStudioEnvironmentVariables: vi.fn(()=>({
35
- 'process.env.STUDIO_VAR': '"studio-value"'
36
- }))
37
- }));
38
- vi.mock('../normalizeBasePath.js', ()=>({
39
- normalizeBasePath: vi.fn((path)=>`/${path}/`.replace(/^\/+/, '/').replace(/\/+$/, '/'))
40
- }));
41
- vi.mock('../../../server/vite/plugin-sanity-build-entries.js', ()=>({
42
- sanityBuildEntries: vi.fn(()=>({
43
- name: 'sanity-build-entries'
44
- }))
45
- }));
46
- vi.mock('../../../server/vite/plugin-sanity-favicons.js', ()=>({
47
- sanityFaviconsPlugin: vi.fn(()=>({
48
- name: 'sanity-favicons'
49
- }))
50
- }));
51
- vi.mock('../../../server/vite/plugin-sanity-runtime-rewrite.js', ()=>({
52
- sanityRuntimeRewritePlugin: vi.fn(()=>({
53
- name: 'sanity-runtime-rewrite'
54
- }))
55
- }));
56
- describe('#getViteConfig', ()=>{
57
- beforeEach(async ()=>{
58
- vi.clearAllMocks();
59
- // Setup default mock for readPackageUp
60
- const { readPackageUp } = await import('read-package-up');
61
- vi.mocked(readPackageUp).mockResolvedValue({
62
- packageJson: {
63
- name: 'sanity'
64
- },
65
- path: '/mock/path/to/sanity/package.json'
66
- });
67
- });
68
- afterEach(()=>{
69
- vi.unstubAllEnvs();
70
- });
71
- test('should create basic vite config with default options', async ()=>{
72
- const options = {
73
- cwd: '/test/cwd',
74
- mode: 'development',
75
- reactCompiler: undefined
76
- };
77
- const config = await getViteConfig(options);
78
- expect(config).toMatchObject({
79
- base: '/',
80
- build: {
81
- outDir: '/test/cwd/dist',
82
- sourcemap: true
83
- },
84
- cacheDir: 'node_modules/.sanity/vite',
85
- configFile: false,
86
- envPrefix: 'SANITY_STUDIO_',
87
- logLevel: 'info',
88
- mode: 'development',
89
- root: '/test/cwd',
90
- server: {
91
- host: undefined,
92
- port: 3333,
93
- strictPort: true
94
- }
95
- });
96
- expect(config.define).toMatchObject({
97
- __SANITY_STAGING__: false,
98
- 'process.env.MODE': '"development"',
99
- 'process.env.SC_DISABLE_SPEEDY': '"false"',
100
- 'process.env.STUDIO_VAR': '"studio-value"'
101
- });
102
- expect(config.plugins).toHaveLength(4);
103
- expect(config.resolve?.dedupe).toEqual([
104
- 'styled-components'
105
- ]);
106
- });
107
- test('should create vite config for app mode', async ()=>{
108
- const options = {
109
- cwd: '/test/cwd',
110
- isApp: true,
111
- mode: 'development',
112
- reactCompiler: undefined
113
- };
114
- const config = await getViteConfig(options);
115
- expect(config.envPrefix).toBe('SANITY_APP_');
116
- expect(config.define).toMatchObject({
117
- 'process.env.APP_VAR': '"app-value"'
118
- });
119
- });
120
- test('should create production config with minification', async ()=>{
121
- const options = {
122
- cwd: '/test/cwd',
123
- minify: true,
124
- mode: 'production',
125
- outputDir: '/custom/output',
126
- reactCompiler: undefined,
127
- sourceMap: false
128
- };
129
- const config = await getViteConfig(options);
130
- expect(config.mode).toBe('production');
131
- expect(config.logLevel).toBe('silent');
132
- expect(config.build).toMatchObject({
133
- assetsDir: 'static',
134
- emptyOutDir: false,
135
- minify: 'esbuild',
136
- outDir: '/custom/output',
137
- sourcemap: false
138
- });
139
- expect(config.build?.rollupOptions).toMatchObject({
140
- external: [
141
- 'external1',
142
- 'external2'
143
- ],
144
- input: {
145
- sanity: '/test/cwd/.sanity/runtime/app.js'
146
- }
147
- });
148
- });
149
- test('should create production config without minification', async ()=>{
150
- const options = {
151
- cwd: '/test/cwd',
152
- minify: false,
153
- mode: 'production',
154
- reactCompiler: undefined
155
- };
156
- const config = await getViteConfig(options);
157
- expect(config.build?.minify).toBe(false);
158
- });
159
- test('should normalize base path correctly', async ()=>{
160
- const { normalizeBasePath } = await import('../normalizeBasePath.js');
161
- const options = {
162
- basePath: 'custom/path',
163
- cwd: '/test/cwd',
164
- mode: 'development',
165
- reactCompiler: undefined
166
- };
167
- await getViteConfig(options);
168
- expect(normalizeBasePath).toHaveBeenCalledWith('custom/path');
169
- });
170
- test('should handle custom server options', async ()=>{
171
- const options = {
172
- cwd: '/test/cwd',
173
- mode: 'development',
174
- reactCompiler: undefined,
175
- server: {
176
- host: '0.0.0.0',
177
- port: 8080
178
- }
179
- };
180
- const config = await getViteConfig(options);
181
- expect(config.server).toMatchObject({
182
- host: '0.0.0.0',
183
- port: 8080,
184
- strictPort: true
185
- });
186
- });
187
- test('should handle react compiler configuration', async ()=>{
188
- const { default: viteReact } = await import('@vitejs/plugin-react');
189
- const reactCompilerConfig = {
190
- sources: [
191
- 'src/**/*.tsx'
192
- ],
193
- target: '18'
194
- };
195
- const options = {
196
- cwd: '/test/cwd',
197
- mode: 'development',
198
- reactCompiler: reactCompilerConfig
199
- };
200
- await getViteConfig(options);
201
- expect(viteReact).toHaveBeenCalledWith({
202
- babel: {
203
- plugins: [
204
- [
205
- 'babel-plugin-react-compiler',
206
- reactCompilerConfig
207
- ]
208
- ]
209
- }
210
- });
211
- });
212
- test('should set staging flag when SANITY_INTERNAL_ENV is staging', async ()=>{
213
- vi.stubEnv('SANITY_INTERNAL_ENV', 'staging');
214
- const options = {
215
- cwd: '/test/cwd',
216
- mode: 'development',
217
- reactCompiler: undefined
218
- };
219
- const config = await getViteConfig(options);
220
- expect(config.define?.__SANITY_STAGING__).toBe(true);
221
- });
222
- test('should handle import map for external dependencies', async ()=>{
223
- const importMap = {
224
- imports: {
225
- react: 'https://esm.sh/react@18',
226
- 'react-dom': 'https://esm.sh/react-dom@18'
227
- }
228
- };
229
- const options = {
230
- cwd: '/test/cwd',
231
- importMap,
232
- mode: 'production',
233
- reactCompiler: undefined
234
- };
235
- const { createExternalFromImportMap } = await import('../createExternalFromImportMap.js');
236
- const { sanityBuildEntries } = await import('../../../server/vite/plugin-sanity-build-entries.js');
237
- await getViteConfig(options);
238
- expect(createExternalFromImportMap).toHaveBeenCalledWith(importMap);
239
- expect(sanityBuildEntries).toHaveBeenCalledWith({
240
- basePath: '/',
241
- cwd: '/test/cwd',
242
- importMap,
243
- isApp: undefined
244
- });
245
- });
246
- test('should throw error when sanity package path cannot be resolved', async ()=>{
247
- const { readPackageUp } = await import('read-package-up');
248
- vi.mocked(readPackageUp).mockResolvedValue(undefined);
249
- const options = {
250
- cwd: '/test/cwd',
251
- mode: 'development',
252
- reactCompiler: undefined
253
- };
254
- await expect(getViteConfig(options)).rejects.toThrow('Unable to resolve `@sanity/cli` module root');
255
- });
256
- test('should configure favicon plugin with correct paths', async ()=>{
257
- const { sanityFaviconsPlugin } = await import('../../../server/vite/plugin-sanity-favicons.js');
258
- const options = {
259
- basePath: '/studio',
260
- cwd: '/test/cwd',
261
- mode: 'development',
262
- reactCompiler: undefined
263
- };
264
- await getViteConfig(options);
265
- expect(sanityFaviconsPlugin).toHaveBeenCalledWith({
266
- customFaviconsPath: '/test/cwd/static',
267
- defaultFaviconsPath: '/mock/path/to/sanity/static/favicons',
268
- staticUrlPath: '/studio/static'
269
- });
270
- });
271
- });
272
- describe('#finalizeViteConfig', ()=>{
273
- beforeEach(()=>{
274
- vi.clearAllMocks();
275
- });
276
- afterEach(()=>{
277
- vi.unstubAllEnvs();
278
- });
279
- test('should merge sanity entry into existing config', async ()=>{
280
- const { mergeConfig } = await import('vite');
281
- const inputConfig = {
282
- build: {
283
- rollupOptions: {
284
- input: {
285
- main: '/test/main.js'
286
- }
287
- }
288
- },
289
- root: '/test/root'
290
- };
291
- const expectedMerge = {
292
- build: {
293
- rollupOptions: {
294
- input: {
295
- sanity: '/test/root/.sanity/runtime/app.js'
296
- }
297
- }
298
- }
299
- };
300
- vi.mocked(mergeConfig).mockReturnValue({
301
- ...inputConfig,
302
- build: {
303
- rollupOptions: {
304
- input: {
305
- main: '/test/main.js',
306
- sanity: '/test/root/.sanity/runtime/app.js'
307
- }
308
- }
309
- }
310
- });
311
- await finalizeViteConfig(inputConfig);
312
- expect(mergeConfig).toHaveBeenCalledWith(inputConfig, expectedMerge);
313
- });
314
- test('should throw error when build.rollupOptions.input is not an object', async ()=>{
315
- const inputConfig = {
316
- build: {
317
- rollupOptions: {
318
- input: '/single/entry.js'
319
- }
320
- },
321
- root: '/test/root'
322
- };
323
- await expect(finalizeViteConfig(inputConfig)).rejects.toThrow('Vite config must contain `build.rollupOptions.input`, and it must be an object');
324
- });
325
- test('should throw error when root is missing', async ()=>{
326
- const inputConfig = {
327
- build: {
328
- rollupOptions: {
329
- input: {
330
- main: '/test/main.js'
331
- }
332
- }
333
- }
334
- };
335
- await expect(finalizeViteConfig(inputConfig)).rejects.toThrow('Vite config must contain `root` property, and must point to the Sanity root directory');
336
- });
337
- });
338
- describe('#extendViteConfigWithUserConfig', ()=>{
339
- beforeEach(()=>{
340
- vi.clearAllMocks();
341
- });
342
- afterEach(()=>{
343
- vi.unstubAllEnvs();
344
- });
345
- test('should return default config when user config is undefined', async ()=>{
346
- const defaultConfig = {
347
- mode: 'development',
348
- root: '/test'
349
- };
350
- const env = {
351
- command: 'build',
352
- mode: 'development'
353
- };
354
- const result = await extendViteConfigWithUserConfig(env, defaultConfig, undefined);
355
- expect(result).toBe(defaultConfig);
356
- });
357
- test('should merge user config object with default config', async ()=>{
358
- const { mergeConfig } = await import('vite');
359
- const defaultConfig = {
360
- mode: 'development',
361
- root: '/test'
362
- };
363
- const userConfig = {
364
- define: {
365
- custom: 'value'
366
- },
367
- server: {
368
- port: 4000
369
- }
370
- };
371
- const env = {
372
- command: 'build',
373
- mode: 'development'
374
- };
375
- const mergedConfig = {
376
- ...defaultConfig,
377
- ...userConfig
378
- };
379
- vi.mocked(mergeConfig).mockReturnValue(mergedConfig);
380
- const result = await extendViteConfigWithUserConfig(env, defaultConfig, userConfig);
381
- expect(mergeConfig).toHaveBeenCalledWith(defaultConfig, userConfig);
382
- expect(result).toBe(mergedConfig);
383
- });
384
- test('should call user config function with default config and env', async ()=>{
385
- const defaultConfig = {
386
- mode: 'development',
387
- root: '/test'
388
- };
389
- const modifiedConfig = {
390
- ...defaultConfig,
391
- server: {
392
- port: 5000
393
- }
394
- };
395
- const userConfigFn = vi.fn().mockResolvedValue(modifiedConfig);
396
- const env = {
397
- command: 'build',
398
- mode: 'development'
399
- };
400
- const result = await extendViteConfigWithUserConfig(env, defaultConfig, userConfigFn);
401
- expect(userConfigFn).toHaveBeenCalledWith(defaultConfig, env);
402
- expect(result).toBe(modifiedConfig);
403
- });
404
- });
405
- describe('#onRollupWarn and #suppressUnusedImport helper functions', ()=>{
406
- test('should suppress useDebugValue unused import warnings', async ()=>{
407
- // Test the internal suppressUnusedImport function by testing its behavior through onRollupWarn
408
- const mockWarn = vi.fn();
409
- // Create a warning that should be suppressed
410
- const warning = {
411
- code: 'UNUSED_EXTERNAL_IMPORT',
412
- message: 'useDebugValue is imported from external module "react"',
413
- names: [
414
- 'useDebugValue',
415
- 'useState'
416
- ]
417
- };
418
- // Access the onRollupWarn function by testing getViteConfig in production mode
419
- // which includes the onwarn callback
420
- const options = {
421
- cwd: '/test/cwd',
422
- mode: 'production',
423
- reactCompiler: undefined
424
- };
425
- const config = await getViteConfig(options);
426
- const onwarn = config.build?.rollupOptions?.onwarn;
427
- expect(onwarn).toBeDefined();
428
- // Test that useDebugValue warnings are suppressed
429
- onwarn?.(warning, mockWarn);
430
- // Should modify warning.names to remove useDebugValue
431
- expect(warning.names).toEqual([
432
- 'useState'
433
- ]);
434
- // Should still call warn since there are other names
435
- expect(mockWarn).toHaveBeenCalledWith(warning);
436
- });
437
- test('should completely suppress warning when only useDebugValue is present', async ()=>{
438
- const mockWarn = vi.fn();
439
- const warning = {
440
- code: 'UNUSED_EXTERNAL_IMPORT',
441
- message: 'useDebugValue is imported from external module "react"',
442
- names: [
443
- 'useDebugValue'
444
- ]
445
- };
446
- const config = await getViteConfig({
447
- cwd: '/test/cwd',
448
- mode: 'production',
449
- reactCompiler: undefined
450
- });
451
- const onwarn = config.build?.rollupOptions?.onwarn;
452
- onwarn?.(warning, mockWarn);
453
- // Should not call warn at all when only useDebugValue was present
454
- expect(mockWarn).not.toHaveBeenCalled();
455
- });
456
- test('should suppress warnings from node_modules', async ()=>{
457
- const mockWarn = vi.fn();
458
- const warning = {
459
- code: 'UNUSED_EXTERNAL_IMPORT',
460
- ids: [
461
- '/project/node_modules/some-lib/index.js'
462
- ],
463
- message: 'Some warning from node_modules'
464
- };
465
- const config = await getViteConfig({
466
- cwd: '/test/cwd',
467
- mode: 'production',
468
- reactCompiler: undefined
469
- });
470
- const onwarn = config.build?.rollupOptions?.onwarn;
471
- onwarn?.(warning, mockWarn);
472
- // Should not call warn for node_modules warnings
473
- expect(mockWarn).not.toHaveBeenCalled();
474
- });
475
- test('should not suppress other warning types', async ()=>{
476
- const mockWarn = vi.fn();
477
- const warning = {
478
- code: 'CIRCULAR_DEPENDENCY',
479
- message: 'Circular dependency detected'
480
- };
481
- const config = await getViteConfig({
482
- cwd: '/test/cwd',
483
- mode: 'production',
484
- reactCompiler: undefined
485
- });
486
- const onwarn = config.build?.rollupOptions?.onwarn;
487
- onwarn?.(warning, mockWarn);
488
- // Should call warn for other warning types
489
- expect(mockWarn).toHaveBeenCalledWith(warning);
490
- });
491
- });
492
-
493
- //# sourceMappingURL=getViteConfig.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/build/__tests__/getViteConfig.test.ts"],"sourcesContent":["import {type ConfigEnv, type InlineConfig} from 'vite'\nimport {afterEach, beforeEach, describe, expect, test, vi} from 'vitest'\n\nimport {\n extendViteConfigWithUserConfig,\n finalizeViteConfig,\n getViteConfig,\n} from '../getViteConfig.js'\n\n// Mock all external dependencies\nvi.mock('read-package-up', () => ({\n readPackageUp: vi.fn(),\n}))\n\nvi.mock('@vitejs/plugin-react', () => ({\n default: vi.fn(() => ({name: 'react-plugin'})),\n}))\n\nvi.mock('vite', () => ({\n mergeConfig: vi.fn((base: InlineConfig, override: InlineConfig) => ({...base, ...override})),\n}))\n\nvi.mock('../createExternalFromImportMap.js', () => ({\n createExternalFromImportMap: vi.fn(() => ['external1', 'external2']),\n}))\n\nvi.mock('../getBrowserAliases.js', () => ({\n getSanityPkgExportAliases: vi.fn(() => Promise.resolve({alias1: 'path1', alias2: 'path2'})),\n}))\n\nvi.mock('../getStudioEnvironmentVariables.js', () => ({\n getAppEnvironmentVariables: vi.fn(() => ({\n 'process.env.APP_VAR': '\"app-value\"',\n })),\n getStudioEnvironmentVariables: vi.fn(() => ({\n 'process.env.STUDIO_VAR': '\"studio-value\"',\n })),\n}))\n\nvi.mock('../normalizeBasePath.js', () => ({\n normalizeBasePath: vi.fn((path: string) => `/${path}/`.replace(/^\\/+/, '/').replace(/\\/+$/, '/')),\n}))\n\nvi.mock('../../../server/vite/plugin-sanity-build-entries.js', () => ({\n sanityBuildEntries: vi.fn(() => ({name: 'sanity-build-entries'})),\n}))\n\nvi.mock('../../../server/vite/plugin-sanity-favicons.js', () => ({\n sanityFaviconsPlugin: vi.fn(() => ({name: 'sanity-favicons'})),\n}))\n\nvi.mock('../../../server/vite/plugin-sanity-runtime-rewrite.js', () => ({\n sanityRuntimeRewritePlugin: vi.fn(() => ({name: 'sanity-runtime-rewrite'})),\n}))\n\ndescribe('#getViteConfig', () => {\n beforeEach(async () => {\n vi.clearAllMocks()\n\n // Setup default mock for readPackageUp\n const {readPackageUp} = await import('read-package-up')\n vi.mocked(readPackageUp).mockResolvedValue({\n packageJson: {name: 'sanity'},\n path: '/mock/path/to/sanity/package.json',\n })\n })\n\n afterEach(() => {\n vi.unstubAllEnvs()\n })\n\n test('should create basic vite config with default options', async () => {\n const options = {\n cwd: '/test/cwd',\n mode: 'development' as const,\n reactCompiler: undefined,\n }\n\n const config = await getViteConfig(options)\n\n expect(config).toMatchObject({\n base: '/',\n build: {\n outDir: '/test/cwd/dist',\n sourcemap: true,\n },\n cacheDir: 'node_modules/.sanity/vite',\n configFile: false,\n envPrefix: 'SANITY_STUDIO_',\n logLevel: 'info',\n mode: 'development',\n root: '/test/cwd',\n server: {\n host: undefined,\n port: 3333,\n strictPort: true,\n },\n })\n\n expect(config.define).toMatchObject({\n __SANITY_STAGING__: false,\n 'process.env.MODE': '\"development\"',\n 'process.env.SC_DISABLE_SPEEDY': '\"false\"',\n 'process.env.STUDIO_VAR': '\"studio-value\"',\n })\n\n expect(config.plugins).toHaveLength(4)\n expect(config.resolve?.dedupe).toEqual(['styled-components'])\n })\n\n test('should create vite config for app mode', async () => {\n const options = {\n cwd: '/test/cwd',\n isApp: true,\n mode: 'development' as const,\n reactCompiler: undefined,\n }\n\n const config = await getViteConfig(options)\n\n expect(config.envPrefix).toBe('SANITY_APP_')\n expect(config.define).toMatchObject({\n 'process.env.APP_VAR': '\"app-value\"',\n })\n })\n\n test('should create production config with minification', async () => {\n const options = {\n cwd: '/test/cwd',\n minify: true,\n mode: 'production' as const,\n outputDir: '/custom/output',\n reactCompiler: undefined,\n sourceMap: false,\n }\n\n const config = await getViteConfig(options)\n\n expect(config.mode).toBe('production')\n expect(config.logLevel).toBe('silent')\n expect(config.build).toMatchObject({\n assetsDir: 'static',\n emptyOutDir: false,\n minify: 'esbuild',\n outDir: '/custom/output',\n sourcemap: false,\n })\n\n expect(config.build?.rollupOptions).toMatchObject({\n external: ['external1', 'external2'],\n input: {\n sanity: '/test/cwd/.sanity/runtime/app.js',\n },\n })\n })\n\n test('should create production config without minification', async () => {\n const options = {\n cwd: '/test/cwd',\n minify: false,\n mode: 'production' as const,\n reactCompiler: undefined,\n }\n\n const config = await getViteConfig(options)\n\n expect(config.build?.minify).toBe(false)\n })\n\n test('should normalize base path correctly', async () => {\n const {normalizeBasePath} = await import('../normalizeBasePath.js')\n\n const options = {\n basePath: 'custom/path',\n cwd: '/test/cwd',\n mode: 'development' as const,\n reactCompiler: undefined,\n }\n\n await getViteConfig(options)\n\n expect(normalizeBasePath).toHaveBeenCalledWith('custom/path')\n })\n\n test('should handle custom server options', async () => {\n const options = {\n cwd: '/test/cwd',\n mode: 'development' as const,\n reactCompiler: undefined,\n server: {\n host: '0.0.0.0',\n port: 8080,\n },\n }\n\n const config = await getViteConfig(options)\n\n expect(config.server).toMatchObject({\n host: '0.0.0.0',\n port: 8080,\n strictPort: true,\n })\n })\n\n test('should handle react compiler configuration', async () => {\n const {default: viteReact} = await import('@vitejs/plugin-react')\n\n const reactCompilerConfig = {\n sources: ['src/**/*.tsx'],\n target: '18' as const,\n }\n\n const options = {\n cwd: '/test/cwd',\n mode: 'development' as const,\n reactCompiler: reactCompilerConfig,\n }\n\n await getViteConfig(options)\n\n expect(viteReact).toHaveBeenCalledWith({\n babel: {\n plugins: [['babel-plugin-react-compiler', reactCompilerConfig]],\n },\n })\n })\n\n test('should set staging flag when SANITY_INTERNAL_ENV is staging', async () => {\n vi.stubEnv('SANITY_INTERNAL_ENV', 'staging')\n\n const options = {\n cwd: '/test/cwd',\n mode: 'development' as const,\n reactCompiler: undefined,\n }\n\n const config = await getViteConfig(options)\n\n expect(config.define?.__SANITY_STAGING__).toBe(true)\n })\n\n test('should handle import map for external dependencies', async () => {\n const importMap = {\n imports: {\n react: 'https://esm.sh/react@18',\n 'react-dom': 'https://esm.sh/react-dom@18',\n },\n }\n\n const options = {\n cwd: '/test/cwd',\n importMap,\n mode: 'production' as const,\n reactCompiler: undefined,\n }\n\n const {createExternalFromImportMap} = await import('../createExternalFromImportMap.js')\n const {sanityBuildEntries} = await import('../../../server/vite/plugin-sanity-build-entries.js')\n\n await getViteConfig(options)\n\n expect(createExternalFromImportMap).toHaveBeenCalledWith(importMap)\n expect(sanityBuildEntries).toHaveBeenCalledWith({\n basePath: '/',\n cwd: '/test/cwd',\n importMap,\n isApp: undefined,\n })\n })\n\n test('should throw error when sanity package path cannot be resolved', async () => {\n const {readPackageUp} = await import('read-package-up')\n vi.mocked(readPackageUp).mockResolvedValue(undefined)\n\n const options = {\n cwd: '/test/cwd',\n mode: 'development' as const,\n reactCompiler: undefined,\n }\n\n await expect(getViteConfig(options)).rejects.toThrow(\n 'Unable to resolve `@sanity/cli` module root',\n )\n })\n\n test('should configure favicon plugin with correct paths', async () => {\n const {sanityFaviconsPlugin} = await import('../../../server/vite/plugin-sanity-favicons.js')\n\n const options = {\n basePath: '/studio',\n cwd: '/test/cwd',\n mode: 'development' as const,\n reactCompiler: undefined,\n }\n\n await getViteConfig(options)\n\n expect(sanityFaviconsPlugin).toHaveBeenCalledWith({\n customFaviconsPath: '/test/cwd/static',\n defaultFaviconsPath: '/mock/path/to/sanity/static/favicons',\n staticUrlPath: '/studio/static',\n })\n })\n})\n\ndescribe('#finalizeViteConfig', () => {\n beforeEach(() => {\n vi.clearAllMocks()\n })\n\n afterEach(() => {\n vi.unstubAllEnvs()\n })\n\n test('should merge sanity entry into existing config', async () => {\n const {mergeConfig} = await import('vite')\n\n const inputConfig: InlineConfig = {\n build: {\n rollupOptions: {\n input: {\n main: '/test/main.js',\n },\n },\n },\n root: '/test/root',\n }\n\n const expectedMerge = {\n build: {\n rollupOptions: {\n input: {\n sanity: '/test/root/.sanity/runtime/app.js',\n },\n },\n },\n }\n\n vi.mocked(mergeConfig).mockReturnValue({\n ...inputConfig,\n build: {\n rollupOptions: {\n input: {\n main: '/test/main.js',\n sanity: '/test/root/.sanity/runtime/app.js',\n },\n },\n },\n })\n\n await finalizeViteConfig(inputConfig)\n\n expect(mergeConfig).toHaveBeenCalledWith(inputConfig, expectedMerge)\n })\n\n test('should throw error when build.rollupOptions.input is not an object', async () => {\n const inputConfig: InlineConfig = {\n build: {\n rollupOptions: {\n input: '/single/entry.js',\n },\n },\n root: '/test/root',\n }\n\n await expect(finalizeViteConfig(inputConfig)).rejects.toThrow(\n 'Vite config must contain `build.rollupOptions.input`, and it must be an object',\n )\n })\n\n test('should throw error when root is missing', async () => {\n const inputConfig: InlineConfig = {\n build: {\n rollupOptions: {\n input: {\n main: '/test/main.js',\n },\n },\n },\n }\n\n await expect(finalizeViteConfig(inputConfig)).rejects.toThrow(\n 'Vite config must contain `root` property, and must point to the Sanity root directory',\n )\n })\n})\n\ndescribe('#extendViteConfigWithUserConfig', () => {\n beforeEach(() => {\n vi.clearAllMocks()\n })\n\n afterEach(() => {\n vi.unstubAllEnvs()\n })\n\n test('should return default config when user config is undefined', async () => {\n const defaultConfig: InlineConfig = {\n mode: 'development',\n root: '/test',\n }\n const env: ConfigEnv = {command: 'build', mode: 'development'}\n\n const result = await extendViteConfigWithUserConfig(env, defaultConfig, undefined as never)\n\n expect(result).toBe(defaultConfig)\n })\n\n test('should merge user config object with default config', async () => {\n const {mergeConfig} = await import('vite')\n\n const defaultConfig: InlineConfig = {\n mode: 'development',\n root: '/test',\n }\n const userConfig = {\n define: {custom: 'value'},\n server: {port: 4000},\n }\n const env: ConfigEnv = {command: 'build', mode: 'development'}\n\n const mergedConfig = {\n ...defaultConfig,\n ...userConfig,\n }\n vi.mocked(mergeConfig).mockReturnValue(mergedConfig)\n\n const result = await extendViteConfigWithUserConfig(env, defaultConfig, userConfig)\n\n expect(mergeConfig).toHaveBeenCalledWith(defaultConfig, userConfig)\n expect(result).toBe(mergedConfig)\n })\n\n test('should call user config function with default config and env', async () => {\n const defaultConfig: InlineConfig = {\n mode: 'development',\n root: '/test',\n }\n const modifiedConfig = {\n ...defaultConfig,\n server: {port: 5000},\n }\n const userConfigFn = vi.fn().mockResolvedValue(modifiedConfig)\n const env: ConfigEnv = {command: 'build', mode: 'development'}\n\n const result = await extendViteConfigWithUserConfig(env, defaultConfig, userConfigFn)\n\n expect(userConfigFn).toHaveBeenCalledWith(defaultConfig, env)\n expect(result).toBe(modifiedConfig)\n })\n})\n\ndescribe('#onRollupWarn and #suppressUnusedImport helper functions', () => {\n test('should suppress useDebugValue unused import warnings', async () => {\n // Test the internal suppressUnusedImport function by testing its behavior through onRollupWarn\n const mockWarn = vi.fn()\n\n // Create a warning that should be suppressed\n const warning = {\n code: 'UNUSED_EXTERNAL_IMPORT' as const,\n message: 'useDebugValue is imported from external module \"react\"',\n names: ['useDebugValue', 'useState'],\n }\n\n // Access the onRollupWarn function by testing getViteConfig in production mode\n // which includes the onwarn callback\n const options = {\n cwd: '/test/cwd',\n mode: 'production' as const,\n reactCompiler: undefined,\n }\n\n const config = await getViteConfig(options)\n const onwarn = config.build?.rollupOptions?.onwarn\n\n expect(onwarn).toBeDefined()\n\n // Test that useDebugValue warnings are suppressed\n onwarn?.(warning, mockWarn)\n\n // Should modify warning.names to remove useDebugValue\n expect(warning.names).toEqual(['useState'])\n // Should still call warn since there are other names\n expect(mockWarn).toHaveBeenCalledWith(warning)\n })\n\n test('should completely suppress warning when only useDebugValue is present', async () => {\n const mockWarn = vi.fn()\n\n const warning = {\n code: 'UNUSED_EXTERNAL_IMPORT' as const,\n message: 'useDebugValue is imported from external module \"react\"',\n names: ['useDebugValue'],\n }\n\n const config = await getViteConfig({\n cwd: '/test/cwd',\n mode: 'production' as const,\n reactCompiler: undefined,\n })\n\n const onwarn = config.build?.rollupOptions?.onwarn\n onwarn?.(warning, mockWarn)\n\n // Should not call warn at all when only useDebugValue was present\n expect(mockWarn).not.toHaveBeenCalled()\n })\n\n test('should suppress warnings from node_modules', async () => {\n const mockWarn = vi.fn()\n\n const warning = {\n code: 'UNUSED_EXTERNAL_IMPORT' as const,\n ids: ['/project/node_modules/some-lib/index.js'],\n message: 'Some warning from node_modules',\n }\n\n const config = await getViteConfig({\n cwd: '/test/cwd',\n mode: 'production' as const,\n reactCompiler: undefined,\n })\n\n const onwarn = config.build?.rollupOptions?.onwarn\n onwarn?.(warning, mockWarn)\n\n // Should not call warn for node_modules warnings\n expect(mockWarn).not.toHaveBeenCalled()\n })\n\n test('should not suppress other warning types', async () => {\n const mockWarn = vi.fn()\n\n const warning = {\n code: 'CIRCULAR_DEPENDENCY' as const,\n message: 'Circular dependency detected',\n }\n\n const config = await getViteConfig({\n cwd: '/test/cwd',\n mode: 'production' as const,\n reactCompiler: undefined,\n })\n\n const onwarn = config.build?.rollupOptions?.onwarn\n onwarn?.(warning, mockWarn)\n\n // Should call warn for other warning types\n expect(mockWarn).toHaveBeenCalledWith(warning)\n })\n})\n"],"names":["afterEach","beforeEach","describe","expect","test","vi","extendViteConfigWithUserConfig","finalizeViteConfig","getViteConfig","mock","readPackageUp","fn","default","name","mergeConfig","base","override","createExternalFromImportMap","getSanityPkgExportAliases","Promise","resolve","alias1","alias2","getAppEnvironmentVariables","getStudioEnvironmentVariables","normalizeBasePath","path","replace","sanityBuildEntries","sanityFaviconsPlugin","sanityRuntimeRewritePlugin","clearAllMocks","mocked","mockResolvedValue","packageJson","unstubAllEnvs","options","cwd","mode","reactCompiler","undefined","config","toMatchObject","build","outDir","sourcemap","cacheDir","configFile","envPrefix","logLevel","root","server","host","port","strictPort","define","__SANITY_STAGING__","plugins","toHaveLength","dedupe","toEqual","isApp","toBe","minify","outputDir","sourceMap","assetsDir","emptyOutDir","rollupOptions","external","input","sanity","basePath","toHaveBeenCalledWith","viteReact","reactCompilerConfig","sources","target","babel","stubEnv","importMap","imports","react","rejects","toThrow","customFaviconsPath","defaultFaviconsPath","staticUrlPath","inputConfig","main","expectedMerge","mockReturnValue","defaultConfig","env","command","result","userConfig","custom","mergedConfig","modifiedConfig","userConfigFn","mockWarn","warning","code","message","names","onwarn","toBeDefined","not","toHaveBeenCalled","ids"],"mappings":"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"}