@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,278 +0,0 @@
1
- import { afterAll, beforeEach, describe, expect, test, vi } from 'vitest';
2
- // Import after mocking
3
- import { renderDocument } from '../renderDocument.js';
4
- // Hoist mocks to the top using vi.hoisted
5
- const mockWorkerConstructor = vi.hoisted(()=>vi.fn());
6
- const mockBuildDebug = vi.hoisted(()=>vi.fn());
7
- // Mock the Worker constructor from node:worker_threads
8
- vi.mock('node:worker_threads', ()=>({
9
- Worker: mockWorkerConstructor
10
- }));
11
- vi.mock('../buildDebug.js', ()=>({
12
- buildDebug: mockBuildDebug
13
- }));
14
- vi.mock('@sanity/cli-core/ux', ()=>({
15
- chalk: {
16
- yellow: vi.fn((str)=>`[YELLOW]${str}[/YELLOW]`)
17
- }
18
- }));
19
- // Mock console.warn
20
- const originalConsoleWarn = console.warn;
21
- const mockConsoleWarn = vi.fn();
22
- describe('renderDocument', ()=>{
23
- let testResponse;
24
- beforeEach(()=>{
25
- vi.clearAllMocks();
26
- console.warn = mockConsoleWarn;
27
- // Default to a successful response
28
- testResponse = {
29
- html: '<html></html>',
30
- type: 'result'
31
- };
32
- // Create a mock worker instance
33
- const mockWorkerInstance = {
34
- addListener: vi.fn(),
35
- terminate: vi.fn()
36
- };
37
- // Setup the Worker constructor mock
38
- mockWorkerConstructor.mockImplementation(()=>{
39
- // Simulate async worker behavior
40
- setImmediate(()=>{
41
- // Find the message listener and call it with the test response
42
- const messageListener = mockWorkerInstance.addListener.mock.calls.find((call)=>call[0] === 'message')?.[1];
43
- if (messageListener) {
44
- messageListener(testResponse);
45
- }
46
- });
47
- return mockWorkerInstance;
48
- });
49
- });
50
- afterAll(()=>{
51
- console.warn = originalConsoleWarn;
52
- });
53
- test('should successfully render document with result message', async ()=>{
54
- const mockHtml = '<html><body>Test Document</body></html>';
55
- // Set the expected response for this test
56
- testResponse = {
57
- html: mockHtml,
58
- type: 'result'
59
- };
60
- const options = {
61
- importMap: {
62
- imports: {
63
- react: 'https://esm.sh/react'
64
- }
65
- },
66
- isApp: false,
67
- props: {
68
- basePath: '/studio'
69
- },
70
- studioRootPath: '/test/studio'
71
- };
72
- const result = await renderDocument(options);
73
- expect(result).toBe(mockHtml);
74
- expect(mockWorkerConstructor).toHaveBeenCalledOnce();
75
- expect(mockBuildDebug).toHaveBeenCalledWith('Starting worker thread for %s', expect.any(String));
76
- expect(mockBuildDebug).toHaveBeenCalledWith('Document HTML rendered, %d bytes', mockHtml.length);
77
- });
78
- test('should handle warning message with single string', async ()=>{
79
- testResponse = {
80
- message: 'This is a warning message',
81
- type: 'warning',
82
- warnKey: 'test-warning'
83
- };
84
- const options = {
85
- studioRootPath: '/test/studio'
86
- };
87
- const result = await renderDocument(options);
88
- expect(result).toBe('');
89
- expect(mockConsoleWarn).toHaveBeenCalledWith('[YELLOW][warn][/YELLOW] This is a warning message');
90
- });
91
- test('should handle warning message with array of strings', async ()=>{
92
- const warnings = [
93
- 'Warning 1',
94
- 'Warning 2',
95
- 'Warning 3'
96
- ];
97
- testResponse = {
98
- message: warnings,
99
- type: 'warning',
100
- warnKey: 'multi-warning'
101
- };
102
- const options = {
103
- studioRootPath: '/test/studio'
104
- };
105
- const result = await renderDocument(options);
106
- expect(result).toBe('');
107
- expect(mockConsoleWarn).toHaveBeenCalledTimes(3);
108
- for (const warning of warnings){
109
- expect(mockConsoleWarn).toHaveBeenCalledWith(`[YELLOW][warn][/YELLOW] ${warning}`);
110
- }
111
- });
112
- test('should handle warning message without warnKey', async ()=>{
113
- testResponse = {
114
- message: 'Warning without key',
115
- type: 'warning'
116
- };
117
- const options = {
118
- studioRootPath: '/test/studio'
119
- };
120
- const result = await renderDocument(options);
121
- expect(result).toBe('');
122
- expect(mockConsoleWarn).toHaveBeenCalledWith('[YELLOW][warn][/YELLOW] Warning without key');
123
- });
124
- test('should throw error for error message type with string', async ()=>{
125
- const errorMessage = 'Something went wrong';
126
- testResponse = {
127
- message: errorMessage,
128
- type: 'error'
129
- };
130
- const options = {
131
- studioRootPath: '/test/studio'
132
- };
133
- await expect(renderDocument(options)).rejects.toThrow(errorMessage);
134
- expect(mockBuildDebug).toHaveBeenCalledWith('Error from worker: %s', errorMessage);
135
- });
136
- test('should throw error for error message type with array', async ()=>{
137
- const errorMessages = [
138
- 'Error 1',
139
- 'Error 2'
140
- ];
141
- const joinedError = errorMessages.join('\n');
142
- testResponse = {
143
- message: errorMessages,
144
- type: 'error'
145
- };
146
- const options = {
147
- studioRootPath: '/test/studio'
148
- };
149
- await expect(renderDocument(options)).rejects.toThrow(joinedError);
150
- expect(mockBuildDebug).toHaveBeenCalledWith('Worker errored: %s', joinedError);
151
- });
152
- test('should throw error for error message type without message', async ()=>{
153
- testResponse = {
154
- type: 'error'
155
- };
156
- const options = {
157
- studioRootPath: '/test/studio'
158
- };
159
- await expect(renderDocument(options)).rejects.toThrow('Document rendering worker stopped with an unknown error');
160
- expect(mockBuildDebug).toHaveBeenCalledWith('Error from worker: %s', 'Unknown error');
161
- });
162
- test('should throw error for result type without html', async ()=>{
163
- testResponse = {
164
- type: 'result'
165
- };
166
- const options = {
167
- studioRootPath: '/test/studio'
168
- };
169
- await expect(renderDocument(options)).rejects.toThrow('Document rendering worker stopped with an unknown error');
170
- });
171
- test('should throw error for unknown message type', async ()=>{
172
- testResponse = {
173
- type: 'unknown'
174
- };
175
- const options = {
176
- studioRootPath: '/test/studio'
177
- };
178
- await expect(renderDocument(options)).rejects.toThrow('Unknown message type');
179
- });
180
- test('should handle worker task rejection', async ()=>{
181
- const workerError = new Error('Worker failed to start');
182
- // Mock worker to trigger error event
183
- const mockWorkerInstance = {
184
- addListener: vi.fn((event, callback)=>{
185
- if (event === 'error') {
186
- setImmediate(()=>callback(workerError));
187
- }
188
- }),
189
- terminate: vi.fn()
190
- };
191
- mockWorkerConstructor.mockImplementationOnce(()=>mockWorkerInstance);
192
- const options = {
193
- studioRootPath: '/test/studio'
194
- };
195
- await expect(renderDocument(options)).rejects.toThrow('Failed to load file through worker: Worker failed to start');
196
- expect(mockBuildDebug).toHaveBeenCalledWith('Worker errored: %s', 'Failed to load file through worker: Worker failed to start');
197
- });
198
- test('should use correct worker URL', async ()=>{
199
- testResponse = {
200
- html: '<html></html>',
201
- type: 'result'
202
- };
203
- const options = {
204
- studioRootPath: '/test/studio'
205
- };
206
- await renderDocument(options);
207
- const [workerUrl] = mockWorkerConstructor.mock.calls[0];
208
- expect(workerUrl).toBeInstanceOf(URL);
209
- expect(workerUrl.href).toMatch(/tsxWorkerLoader\.worker\.js$/);
210
- });
211
- test('should handle minimal options', async ()=>{
212
- testResponse = {
213
- html: '<html><body>Minimal</body></html>',
214
- type: 'result'
215
- };
216
- const options = {
217
- studioRootPath: '/minimal/studio'
218
- };
219
- const result = await renderDocument(options);
220
- expect(result).toBe('<html><body>Minimal</body></html>');
221
- expect(mockWorkerConstructor).toHaveBeenCalledWith(expect.any(URL), expect.objectContaining({
222
- name: 'renderDocument',
223
- workerData: {
224
- shouldWarn: true,
225
- studioRootPath: '/minimal/studio'
226
- }
227
- }));
228
- });
229
- test('should include all optional properties in worker data when provided', async ()=>{
230
- testResponse = {
231
- html: '<html></html>',
232
- type: 'result'
233
- };
234
- const options = {
235
- importMap: {
236
- imports: {
237
- react: 'https://esm.sh/react@18',
238
- 'react-dom': 'https://esm.sh/react-dom@18'
239
- }
240
- },
241
- isApp: false,
242
- props: {
243
- basePath: '/studio',
244
- css: [
245
- 'main.css',
246
- 'theme.css'
247
- ],
248
- entryPath: './custom-entry.js'
249
- },
250
- studioRootPath: '/test/studio'
251
- };
252
- await renderDocument(options);
253
- expect(mockWorkerConstructor).toHaveBeenCalledWith(expect.any(URL), expect.objectContaining({
254
- name: 'renderDocument',
255
- workerData: {
256
- importMap: {
257
- imports: {
258
- react: 'https://esm.sh/react@18',
259
- 'react-dom': 'https://esm.sh/react-dom@18'
260
- }
261
- },
262
- isApp: false,
263
- props: {
264
- basePath: '/studio',
265
- css: [
266
- 'main.css',
267
- 'theme.css'
268
- ],
269
- entryPath: './custom-entry.js'
270
- },
271
- shouldWarn: true,
272
- studioRootPath: '/test/studio'
273
- }
274
- }));
275
- });
276
- });
277
-
278
- //# sourceMappingURL=renderDocument.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/build/__tests__/renderDocument.test.ts"],"sourcesContent":["import {afterAll, beforeEach, describe, expect, test, vi} from 'vitest'\n\n// Import after mocking\nimport {renderDocument} from '../renderDocument.js'\n\n// Hoist mocks to the top using vi.hoisted\nconst mockWorkerConstructor = vi.hoisted(() => vi.fn())\n\nconst mockBuildDebug = vi.hoisted(() => vi.fn())\n\n// Mock the Worker constructor from node:worker_threads\nvi.mock('node:worker_threads', () => ({\n Worker: mockWorkerConstructor,\n}))\n\nvi.mock('../buildDebug.js', () => ({\n buildDebug: mockBuildDebug,\n}))\n\nvi.mock('@sanity/cli-core/ux', () => ({\n chalk: {\n yellow: vi.fn((str) => `[YELLOW]${str}[/YELLOW]`),\n },\n}))\n\n// Mock console.warn\nconst originalConsoleWarn = console.warn\nconst mockConsoleWarn = vi.fn()\n\ndescribe('renderDocument', () => {\n let testResponse: {html?: string; message?: string | string[]; type: string; warnKey?: string}\n\n beforeEach(() => {\n vi.clearAllMocks()\n console.warn = mockConsoleWarn\n // Default to a successful response\n testResponse = {html: '<html></html>', type: 'result'}\n\n // Create a mock worker instance\n const mockWorkerInstance = {\n addListener: vi.fn(),\n terminate: vi.fn(),\n }\n\n // Setup the Worker constructor mock\n mockWorkerConstructor.mockImplementation(() => {\n // Simulate async worker behavior\n setImmediate(() => {\n // Find the message listener and call it with the test response\n const messageListener = mockWorkerInstance.addListener.mock.calls.find(\n (call) => call[0] === 'message',\n )?.[1]\n\n if (messageListener) {\n messageListener(testResponse)\n }\n })\n\n return mockWorkerInstance\n })\n })\n\n afterAll(() => {\n console.warn = originalConsoleWarn\n })\n\n test('should successfully render document with result message', async () => {\n const mockHtml = '<html><body>Test Document</body></html>'\n\n // Set the expected response for this test\n testResponse = {\n html: mockHtml,\n type: 'result',\n }\n\n const options = {\n importMap: {imports: {react: 'https://esm.sh/react'}},\n isApp: false,\n props: {basePath: '/studio'},\n studioRootPath: '/test/studio',\n }\n\n const result = await renderDocument(options)\n\n expect(result).toBe(mockHtml)\n expect(mockWorkerConstructor).toHaveBeenCalledOnce()\n expect(mockBuildDebug).toHaveBeenCalledWith('Starting worker thread for %s', expect.any(String))\n expect(mockBuildDebug).toHaveBeenCalledWith('Document HTML rendered, %d bytes', mockHtml.length)\n })\n\n test('should handle warning message with single string', async () => {\n testResponse = {\n message: 'This is a warning message',\n type: 'warning',\n warnKey: 'test-warning',\n }\n\n const options = {\n studioRootPath: '/test/studio',\n }\n\n const result = await renderDocument(options)\n\n expect(result).toBe('')\n expect(mockConsoleWarn).toHaveBeenCalledWith(\n '[YELLOW][warn][/YELLOW] This is a warning message',\n )\n })\n\n test('should handle warning message with array of strings', async () => {\n const warnings = ['Warning 1', 'Warning 2', 'Warning 3']\n testResponse = {\n message: warnings,\n type: 'warning',\n warnKey: 'multi-warning',\n }\n\n const options = {\n studioRootPath: '/test/studio',\n }\n\n const result = await renderDocument(options)\n\n expect(result).toBe('')\n expect(mockConsoleWarn).toHaveBeenCalledTimes(3)\n for (const warning of warnings) {\n expect(mockConsoleWarn).toHaveBeenCalledWith(`[YELLOW][warn][/YELLOW] ${warning}`)\n }\n })\n\n test('should handle warning message without warnKey', async () => {\n testResponse = {\n message: 'Warning without key',\n type: 'warning',\n }\n\n const options = {\n studioRootPath: '/test/studio',\n }\n\n const result = await renderDocument(options)\n\n expect(result).toBe('')\n expect(mockConsoleWarn).toHaveBeenCalledWith('[YELLOW][warn][/YELLOW] Warning without key')\n })\n\n test('should throw error for error message type with string', async () => {\n const errorMessage = 'Something went wrong'\n testResponse = {\n message: errorMessage,\n type: 'error',\n }\n\n const options = {\n studioRootPath: '/test/studio',\n }\n\n await expect(renderDocument(options)).rejects.toThrow(errorMessage)\n expect(mockBuildDebug).toHaveBeenCalledWith('Error from worker: %s', errorMessage)\n })\n\n test('should throw error for error message type with array', async () => {\n const errorMessages = ['Error 1', 'Error 2']\n const joinedError = errorMessages.join('\\n')\n testResponse = {\n message: errorMessages,\n type: 'error',\n }\n\n const options = {\n studioRootPath: '/test/studio',\n }\n\n await expect(renderDocument(options)).rejects.toThrow(joinedError)\n expect(mockBuildDebug).toHaveBeenCalledWith('Worker errored: %s', joinedError)\n })\n\n test('should throw error for error message type without message', async () => {\n testResponse = {\n type: 'error',\n }\n\n const options = {\n studioRootPath: '/test/studio',\n }\n\n await expect(renderDocument(options)).rejects.toThrow(\n 'Document rendering worker stopped with an unknown error',\n )\n expect(mockBuildDebug).toHaveBeenCalledWith('Error from worker: %s', 'Unknown error')\n })\n\n test('should throw error for result type without html', async () => {\n testResponse = {\n type: 'result',\n }\n\n const options = {\n studioRootPath: '/test/studio',\n }\n\n await expect(renderDocument(options)).rejects.toThrow(\n 'Document rendering worker stopped with an unknown error',\n )\n })\n\n test('should throw error for unknown message type', async () => {\n testResponse = {\n type: 'unknown',\n }\n\n const options = {\n studioRootPath: '/test/studio',\n }\n\n await expect(renderDocument(options)).rejects.toThrow('Unknown message type')\n })\n\n test('should handle worker task rejection', async () => {\n const workerError = new Error('Worker failed to start')\n\n // Mock worker to trigger error event\n const mockWorkerInstance = {\n addListener: vi.fn((event, callback) => {\n if (event === 'error') {\n setImmediate(() => callback(workerError))\n }\n }),\n terminate: vi.fn(),\n }\n\n mockWorkerConstructor.mockImplementationOnce(() => mockWorkerInstance)\n\n const options = {\n studioRootPath: '/test/studio',\n }\n\n await expect(renderDocument(options)).rejects.toThrow(\n 'Failed to load file through worker: Worker failed to start',\n )\n expect(mockBuildDebug).toHaveBeenCalledWith(\n 'Worker errored: %s',\n 'Failed to load file through worker: Worker failed to start',\n )\n })\n\n test('should use correct worker URL', async () => {\n testResponse = {\n html: '<html></html>',\n type: 'result',\n }\n\n const options = {\n studioRootPath: '/test/studio',\n }\n\n await renderDocument(options)\n\n const [workerUrl] = mockWorkerConstructor.mock.calls[0]\n expect(workerUrl).toBeInstanceOf(URL)\n expect(workerUrl.href).toMatch(/tsxWorkerLoader\\.worker\\.js$/)\n })\n\n test('should handle minimal options', async () => {\n testResponse = {\n html: '<html><body>Minimal</body></html>',\n type: 'result',\n }\n\n const options = {\n studioRootPath: '/minimal/studio',\n }\n\n const result = await renderDocument(options)\n\n expect(result).toBe('<html><body>Minimal</body></html>')\n expect(mockWorkerConstructor).toHaveBeenCalledWith(\n expect.any(URL),\n expect.objectContaining({\n name: 'renderDocument',\n workerData: {\n shouldWarn: true,\n studioRootPath: '/minimal/studio',\n },\n }),\n )\n })\n\n test('should include all optional properties in worker data when provided', async () => {\n testResponse = {\n html: '<html></html>',\n type: 'result',\n }\n\n const options = {\n importMap: {\n imports: {\n react: 'https://esm.sh/react@18',\n 'react-dom': 'https://esm.sh/react-dom@18',\n },\n },\n isApp: false,\n props: {\n basePath: '/studio',\n css: ['main.css', 'theme.css'],\n entryPath: './custom-entry.js',\n },\n studioRootPath: '/test/studio',\n }\n\n await renderDocument(options)\n\n expect(mockWorkerConstructor).toHaveBeenCalledWith(\n expect.any(URL),\n expect.objectContaining({\n name: 'renderDocument',\n workerData: {\n importMap: {\n imports: {\n react: 'https://esm.sh/react@18',\n 'react-dom': 'https://esm.sh/react-dom@18',\n },\n },\n isApp: false,\n props: {\n basePath: '/studio',\n css: ['main.css', 'theme.css'],\n entryPath: './custom-entry.js',\n },\n shouldWarn: true,\n studioRootPath: '/test/studio',\n },\n }),\n )\n })\n})\n"],"names":["afterAll","beforeEach","describe","expect","test","vi","renderDocument","mockWorkerConstructor","hoisted","fn","mockBuildDebug","mock","Worker","buildDebug","chalk","yellow","str","originalConsoleWarn","console","warn","mockConsoleWarn","testResponse","clearAllMocks","html","type","mockWorkerInstance","addListener","terminate","mockImplementation","setImmediate","messageListener","calls","find","call","mockHtml","options","importMap","imports","react","isApp","props","basePath","studioRootPath","result","toBe","toHaveBeenCalledOnce","toHaveBeenCalledWith","any","String","length","message","warnKey","warnings","toHaveBeenCalledTimes","warning","errorMessage","rejects","toThrow","errorMessages","joinedError","join","workerError","Error","event","callback","mockImplementationOnce","workerUrl","toBeInstanceOf","URL","href","toMatch","objectContaining","name","workerData","shouldWarn","css","entryPath"],"mappings":"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"}
@@ -1,153 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
2
- import { shouldAutoUpdate } from '../shouldAutoUpdate';
3
- describe('shouldAutoUpdate', ()=>{
4
- let mockOutput;
5
- beforeEach(()=>{
6
- mockOutput = {
7
- error: vi.fn(),
8
- warn: vi.fn()
9
- };
10
- });
11
- describe('when no config is provided', ()=>{
12
- it('should return false', ()=>{
13
- const result = shouldAutoUpdate({
14
- cliConfig: {},
15
- flags: {},
16
- output: mockOutput
17
- });
18
- expect(result).toBe(false);
19
- expect(mockOutput.warn).not.toHaveBeenCalled();
20
- expect(mockOutput.error).not.toHaveBeenCalled();
21
- });
22
- });
23
- describe('when using deployment.autoUpdates config', ()=>{
24
- it('should return true when deployment.autoUpdates is true', ()=>{
25
- const result = shouldAutoUpdate({
26
- cliConfig: {
27
- deployment: {
28
- autoUpdates: true
29
- }
30
- },
31
- flags: {},
32
- output: mockOutput
33
- });
34
- expect(result).toBe(true);
35
- expect(mockOutput.warn).not.toHaveBeenCalled();
36
- expect(mockOutput.error).not.toHaveBeenCalled();
37
- });
38
- it('should return false when deployment.autoUpdates is false', ()=>{
39
- const result = shouldAutoUpdate({
40
- cliConfig: {
41
- deployment: {
42
- autoUpdates: false
43
- }
44
- },
45
- flags: {},
46
- output: mockOutput
47
- });
48
- expect(result).toBe(false);
49
- expect(mockOutput.warn).not.toHaveBeenCalled();
50
- expect(mockOutput.error).not.toHaveBeenCalled();
51
- });
52
- it('should handle deployment object without autoUpdates property', ()=>{
53
- const result = shouldAutoUpdate({
54
- cliConfig: {
55
- deployment: {}
56
- },
57
- flags: {},
58
- output: mockOutput
59
- });
60
- expect(result).toBe(false);
61
- expect(mockOutput.warn).not.toHaveBeenCalled();
62
- expect(mockOutput.error).not.toHaveBeenCalled();
63
- });
64
- });
65
- describe('when using deprecated autoUpdates config', ()=>{
66
- it('should return true when autoUpdates is true and show deprecation warning with migration instructions', ()=>{
67
- const result = shouldAutoUpdate({
68
- cliConfig: {
69
- autoUpdates: true
70
- },
71
- flags: {},
72
- output: mockOutput
73
- });
74
- expect(result).toBe(true);
75
- expect(mockOutput.warn).toHaveBeenCalledWith('The autoUpdates config has moved to deployment.autoUpdates.');
76
- expect(mockOutput.warn).toHaveBeenCalledWith(expect.stringContaining('Please update sanity.cli.ts or sanity.cli.js'));
77
- expect(mockOutput.warn).toHaveBeenCalledTimes(2);
78
- expect(mockOutput.error).not.toHaveBeenCalled();
79
- });
80
- it('should return false when autoUpdates is false and show deprecation warning with migration instructions', ()=>{
81
- const result = shouldAutoUpdate({
82
- cliConfig: {
83
- autoUpdates: false
84
- },
85
- flags: {},
86
- output: mockOutput
87
- });
88
- expect(result).toBe(false);
89
- expect(mockOutput.warn).toHaveBeenCalledWith('The autoUpdates config has moved to deployment.autoUpdates.');
90
- expect(mockOutput.warn).toHaveBeenCalledWith(expect.stringContaining('Please update sanity.cli.ts or sanity.cli.js'));
91
- expect(mockOutput.warn).toHaveBeenCalledTimes(2);
92
- expect(mockOutput.error).not.toHaveBeenCalled();
93
- });
94
- });
95
- describe('when both old and new configs are present', ()=>{
96
- it('should throw error', ()=>{
97
- shouldAutoUpdate({
98
- cliConfig: {
99
- autoUpdates: true,
100
- deployment: {
101
- autoUpdates: true
102
- }
103
- },
104
- flags: {},
105
- output: mockOutput
106
- });
107
- expect(mockOutput.error).toHaveBeenCalledWith('Found both `autoUpdates` (deprecated) and `deployment.autoUpdates` in sanity.cli.js/.ts. Please remove the deprecated top level `autoUpdates` config.', {
108
- exit: 1
109
- });
110
- });
111
- });
112
- describe('when using deprecated flags', ()=>{
113
- it('should warn when --auto-updates flag is used', ()=>{
114
- const result = shouldAutoUpdate({
115
- cliConfig: {},
116
- flags: {
117
- 'auto-updates': true
118
- },
119
- output: mockOutput
120
- });
121
- expect(result).toBe(false);
122
- expect(mockOutput.warn).toHaveBeenCalledWith('The --auto-updates flag is deprecated for deploy and build commands. Set the autoUpdates option in the deployment section of sanity.cli.ts or sanity.cli.js instead.');
123
- });
124
- it('should warn when --no-auto-updates flag is used', ()=>{
125
- const result = shouldAutoUpdate({
126
- cliConfig: {},
127
- flags: {
128
- 'auto-updates': false
129
- },
130
- output: mockOutput
131
- });
132
- expect(result).toBe(false);
133
- expect(mockOutput.warn).toHaveBeenCalledWith('The --no-auto-updates flag is deprecated for deploy and build commands. Set the autoUpdates option in the deployment section of sanity.cli.ts or sanity.cli.js instead.');
134
- });
135
- it('should warn about flag but use config value when both are present', ()=>{
136
- const result = shouldAutoUpdate({
137
- cliConfig: {
138
- deployment: {
139
- autoUpdates: true
140
- }
141
- },
142
- flags: {
143
- 'auto-updates': false
144
- },
145
- output: mockOutput
146
- });
147
- expect(result).toBe(true);
148
- expect(mockOutput.warn).toHaveBeenCalledWith('The --no-auto-updates flag is deprecated for deploy and build commands. Set the autoUpdates option in the deployment section of sanity.cli.ts or sanity.cli.js instead.');
149
- });
150
- });
151
- });
152
-
153
- //# sourceMappingURL=shouldAutoUpdate.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/build/__tests__/shouldAutoUpdate.test.ts"],"sourcesContent":["import {type Output} from '@sanity/cli-core'\nimport {beforeEach, describe, expect, it, vi} from 'vitest'\n\nimport {shouldAutoUpdate} from '../shouldAutoUpdate'\nimport {type BuildFlags} from '../types'\n\ndescribe('shouldAutoUpdate', () => {\n let mockOutput: Output\n\n beforeEach(() => {\n mockOutput = {\n error: vi.fn(),\n warn: vi.fn(),\n } as unknown as Output\n })\n\n describe('when no config is provided', () => {\n it('should return false', () => {\n const result = shouldAutoUpdate({\n cliConfig: {},\n flags: {} as BuildFlags,\n output: mockOutput,\n })\n\n expect(result).toBe(false)\n expect(mockOutput.warn).not.toHaveBeenCalled()\n expect(mockOutput.error).not.toHaveBeenCalled()\n })\n })\n\n describe('when using deployment.autoUpdates config', () => {\n it('should return true when deployment.autoUpdates is true', () => {\n const result = shouldAutoUpdate({\n cliConfig: {\n deployment: {\n autoUpdates: true,\n },\n },\n flags: {} as BuildFlags,\n output: mockOutput,\n })\n\n expect(result).toBe(true)\n expect(mockOutput.warn).not.toHaveBeenCalled()\n expect(mockOutput.error).not.toHaveBeenCalled()\n })\n\n it('should return false when deployment.autoUpdates is false', () => {\n const result = shouldAutoUpdate({\n cliConfig: {\n deployment: {\n autoUpdates: false,\n },\n },\n flags: {} as BuildFlags,\n output: mockOutput,\n })\n\n expect(result).toBe(false)\n expect(mockOutput.warn).not.toHaveBeenCalled()\n expect(mockOutput.error).not.toHaveBeenCalled()\n })\n\n it('should handle deployment object without autoUpdates property', () => {\n const result = shouldAutoUpdate({\n cliConfig: {\n deployment: {},\n },\n flags: {} as BuildFlags,\n output: mockOutput,\n })\n\n expect(result).toBe(false)\n expect(mockOutput.warn).not.toHaveBeenCalled()\n expect(mockOutput.error).not.toHaveBeenCalled()\n })\n })\n\n describe('when using deprecated autoUpdates config', () => {\n it('should return true when autoUpdates is true and show deprecation warning with migration instructions', () => {\n const result = shouldAutoUpdate({\n cliConfig: {\n autoUpdates: true,\n },\n flags: {} as BuildFlags,\n output: mockOutput,\n })\n\n expect(result).toBe(true)\n expect(mockOutput.warn).toHaveBeenCalledWith(\n 'The autoUpdates config has moved to deployment.autoUpdates.',\n )\n expect(mockOutput.warn).toHaveBeenCalledWith(\n expect.stringContaining('Please update sanity.cli.ts or sanity.cli.js'),\n )\n expect(mockOutput.warn).toHaveBeenCalledTimes(2)\n expect(mockOutput.error).not.toHaveBeenCalled()\n })\n\n it('should return false when autoUpdates is false and show deprecation warning with migration instructions', () => {\n const result = shouldAutoUpdate({\n cliConfig: {\n autoUpdates: false,\n },\n flags: {} as BuildFlags,\n output: mockOutput,\n })\n\n expect(result).toBe(false)\n expect(mockOutput.warn).toHaveBeenCalledWith(\n 'The autoUpdates config has moved to deployment.autoUpdates.',\n )\n expect(mockOutput.warn).toHaveBeenCalledWith(\n expect.stringContaining('Please update sanity.cli.ts or sanity.cli.js'),\n )\n expect(mockOutput.warn).toHaveBeenCalledTimes(2)\n expect(mockOutput.error).not.toHaveBeenCalled()\n })\n })\n\n describe('when both old and new configs are present', () => {\n it('should throw error', () => {\n shouldAutoUpdate({\n cliConfig: {\n autoUpdates: true,\n deployment: {\n autoUpdates: true,\n },\n },\n flags: {} as BuildFlags,\n output: mockOutput,\n })\n\n expect(mockOutput.error).toHaveBeenCalledWith(\n 'Found both `autoUpdates` (deprecated) and `deployment.autoUpdates` in sanity.cli.js/.ts. Please remove the deprecated top level `autoUpdates` config.',\n {exit: 1},\n )\n })\n })\n\n describe('when using deprecated flags', () => {\n it('should warn when --auto-updates flag is used', () => {\n const result = shouldAutoUpdate({\n cliConfig: {},\n flags: {\n 'auto-updates': true,\n } as BuildFlags,\n output: mockOutput,\n })\n\n expect(result).toBe(false)\n expect(mockOutput.warn).toHaveBeenCalledWith(\n 'The --auto-updates flag is deprecated for deploy and build commands. Set the autoUpdates option in the deployment section of sanity.cli.ts or sanity.cli.js instead.',\n )\n })\n\n it('should warn when --no-auto-updates flag is used', () => {\n const result = shouldAutoUpdate({\n cliConfig: {},\n flags: {\n 'auto-updates': false,\n } as BuildFlags,\n output: mockOutput,\n })\n\n expect(result).toBe(false)\n expect(mockOutput.warn).toHaveBeenCalledWith(\n 'The --no-auto-updates flag is deprecated for deploy and build commands. Set the autoUpdates option in the deployment section of sanity.cli.ts or sanity.cli.js instead.',\n )\n })\n\n it('should warn about flag but use config value when both are present', () => {\n const result = shouldAutoUpdate({\n cliConfig: {\n deployment: {\n autoUpdates: true,\n },\n },\n flags: {\n 'auto-updates': false,\n } as BuildFlags,\n output: mockOutput,\n })\n\n expect(result).toBe(true)\n expect(mockOutput.warn).toHaveBeenCalledWith(\n 'The --no-auto-updates flag is deprecated for deploy and build commands. Set the autoUpdates option in the deployment section of sanity.cli.ts or sanity.cli.js instead.',\n )\n })\n })\n})\n"],"names":["beforeEach","describe","expect","it","vi","shouldAutoUpdate","mockOutput","error","fn","warn","result","cliConfig","flags","output","toBe","not","toHaveBeenCalled","deployment","autoUpdates","toHaveBeenCalledWith","stringContaining","toHaveBeenCalledTimes","exit"],"mappings":"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"}