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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (608) hide show
  1. package/dist/actions/dataset/create.d.ts +49 -0
  2. package/dist/actions/dataset/create.js +48 -0
  3. package/dist/actions/dataset/create.js.map +1 -0
  4. package/dist/actions/dataset/determineDatasetAclMode.d.ts +37 -0
  5. package/dist/actions/dataset/determineDatasetAclMode.js +36 -0
  6. package/dist/actions/dataset/determineDatasetAclMode.js.map +1 -0
  7. package/dist/actions/debug/gatherDebugInfo.js +15 -21
  8. package/dist/actions/debug/gatherDebugInfo.js.map +1 -1
  9. package/dist/actions/debug/types.d.ts +0 -2
  10. package/dist/actions/debug/types.js.map +1 -1
  11. package/dist/actions/deploy/deployApp.js +13 -0
  12. package/dist/actions/deploy/deployApp.js.map +1 -1
  13. package/dist/actions/dev/startStudioDevServer.js +3 -8
  14. package/dist/actions/dev/startStudioDevServer.js.map +1 -1
  15. package/dist/actions/dev/types.d.ts +1 -3
  16. package/dist/actions/dev/types.js.map +1 -1
  17. package/dist/actions/documents/validate.d.ts +0 -2
  18. package/dist/actions/documents/validate.js +21 -1
  19. package/dist/actions/documents/validate.js.map +1 -1
  20. package/dist/actions/exec/execScript.js +1 -1
  21. package/dist/actions/exec/execScript.js.map +1 -1
  22. package/dist/actions/graphql/getGraphQLAPIs.js +1 -1
  23. package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -1
  24. package/dist/actions/init/remoteTemplate.js +1 -1
  25. package/dist/actions/init/remoteTemplate.js.map +1 -1
  26. package/dist/actions/manifest/extractAppManifest.d.ts +20 -0
  27. package/dist/actions/manifest/extractAppManifest.js +51 -0
  28. package/dist/actions/manifest/extractAppManifest.js.map +1 -0
  29. package/dist/actions/manifest/extractManifest.js +2 -5
  30. package/dist/actions/manifest/extractManifest.js.map +1 -1
  31. package/dist/actions/manifest/types.d.ts +6 -1
  32. package/dist/actions/manifest/types.js.map +1 -1
  33. package/dist/actions/media/importAspects.js +2 -1
  34. package/dist/actions/media/importAspects.js.map +1 -1
  35. package/dist/actions/schema/deleteSchemaAction.d.ts +13 -5
  36. package/dist/actions/schema/deleteSchemaAction.js +12 -17
  37. package/dist/actions/schema/deleteSchemaAction.js.map +1 -1
  38. package/dist/actions/schema/deploySchemas.d.ts +15 -0
  39. package/dist/actions/schema/deploySchemas.js +98 -0
  40. package/dist/actions/schema/deploySchemas.js.map +1 -0
  41. package/dist/actions/schema/listSchemas.d.ts +12 -0
  42. package/dist/actions/schema/listSchemas.js +119 -0
  43. package/dist/actions/schema/listSchemas.js.map +1 -0
  44. package/dist/actions/schema/schemaStoreTypes.d.ts +0 -11
  45. package/dist/actions/schema/schemaStoreTypes.js.map +1 -1
  46. package/dist/actions/schema/utils/debug.d.ts +2 -0
  47. package/dist/actions/schema/utils/debug.js +5 -0
  48. package/dist/actions/schema/utils/debug.js.map +1 -0
  49. package/dist/actions/schema/utils/manifestExtractor.d.ts +3 -8
  50. package/dist/actions/schema/utils/manifestExtractor.js +12 -17
  51. package/dist/actions/schema/utils/manifestExtractor.js.map +1 -1
  52. package/dist/actions/schema/utils/manifestReader.d.ts +2 -9
  53. package/dist/actions/schema/utils/manifestReader.js +6 -12
  54. package/dist/actions/schema/utils/manifestReader.js.map +1 -1
  55. package/dist/actions/schema/utils/schemaStoreOutStrings.d.ts +0 -1
  56. package/dist/actions/schema/utils/schemaStoreOutStrings.js +1 -1
  57. package/dist/actions/schema/utils/schemaStoreOutStrings.js.map +1 -1
  58. package/dist/actions/schema/utils/schemaStoreValidation.d.ts +10 -62
  59. package/dist/actions/schema/utils/schemaStoreValidation.js +38 -125
  60. package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -1
  61. package/dist/actions/schema/utils/uniqByProjectIdDataset.d.ts +14 -0
  62. package/dist/actions/schema/utils/uniqByProjectIdDataset.js +9 -0
  63. package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -0
  64. package/dist/actions/users/getMembersForProject.d.ts +1 -3
  65. package/dist/actions/users/getMembersForProject.js +6 -17
  66. package/dist/actions/users/getMembersForProject.js.map +1 -1
  67. package/dist/actions/users/types.d.ts +0 -11
  68. package/dist/actions/users/types.js.map +1 -1
  69. package/dist/commands/backup/disable.js +5 -11
  70. package/dist/commands/backup/disable.js.map +1 -1
  71. package/dist/commands/backup/enable.js +5 -11
  72. package/dist/commands/backup/enable.js.map +1 -1
  73. package/dist/commands/backup/list.js +7 -8
  74. package/dist/commands/backup/list.js.map +1 -1
  75. package/dist/commands/cors/add.js +5 -13
  76. package/dist/commands/cors/add.js.map +1 -1
  77. package/dist/commands/cors/delete.js +7 -15
  78. package/dist/commands/cors/delete.js.map +1 -1
  79. package/dist/commands/cors/list.js +2 -10
  80. package/dist/commands/cors/list.js.map +1 -1
  81. package/dist/commands/dataset/create.d.ts +0 -2
  82. package/dist/commands/dataset/create.js +8 -54
  83. package/dist/commands/dataset/create.js.map +1 -1
  84. package/dist/commands/dataset/export.js +4 -4
  85. package/dist/commands/dataset/export.js.map +1 -1
  86. package/dist/commands/debug.js +5 -9
  87. package/dist/commands/debug.js.map +1 -1
  88. package/dist/commands/dev.js +0 -1
  89. package/dist/commands/dev.js.map +1 -1
  90. package/dist/commands/documents/create.d.ts +1 -0
  91. package/dist/commands/documents/create.js +10 -9
  92. package/dist/commands/documents/create.js.map +1 -1
  93. package/dist/commands/documents/delete.js +2 -3
  94. package/dist/commands/documents/delete.js.map +1 -1
  95. package/dist/commands/documents/get.js +2 -3
  96. package/dist/commands/documents/get.js.map +1 -1
  97. package/dist/commands/documents/query.js +2 -3
  98. package/dist/commands/documents/query.js.map +1 -1
  99. package/dist/commands/documents/validate.js +0 -20
  100. package/dist/commands/documents/validate.js.map +1 -1
  101. package/dist/commands/graphql/list.js +2 -2
  102. package/dist/commands/graphql/list.js.map +1 -1
  103. package/dist/commands/graphql/undeploy.js +4 -9
  104. package/dist/commands/graphql/undeploy.js.map +1 -1
  105. package/dist/commands/hook/create.js +2 -6
  106. package/dist/commands/hook/create.js.map +1 -1
  107. package/dist/commands/hook/delete.js +5 -17
  108. package/dist/commands/hook/delete.js.map +1 -1
  109. package/dist/commands/hook/list.js +2 -8
  110. package/dist/commands/hook/list.js.map +1 -1
  111. package/dist/commands/init.d.ts +6 -1
  112. package/dist/commands/init.js +358 -20
  113. package/dist/commands/init.js.map +1 -1
  114. package/dist/commands/manifest/extract.js +7 -8
  115. package/dist/commands/manifest/extract.js.map +1 -1
  116. package/dist/commands/media/export.js +2 -2
  117. package/dist/commands/media/export.js.map +1 -1
  118. package/dist/commands/media/import.js +2 -2
  119. package/dist/commands/media/import.js.map +1 -1
  120. package/dist/commands/projects/list.js +2 -6
  121. package/dist/commands/projects/list.js.map +1 -1
  122. package/dist/commands/schema/delete.d.ts +1 -1
  123. package/dist/commands/schema/delete.js +20 -23
  124. package/dist/commands/schema/delete.js.map +1 -1
  125. package/dist/commands/schema/deploy.d.ts +16 -0
  126. package/dist/commands/schema/deploy.js +98 -0
  127. package/dist/commands/schema/deploy.js.map +1 -0
  128. package/dist/commands/schema/list.d.ts +15 -0
  129. package/dist/commands/schema/list.js +104 -0
  130. package/dist/commands/schema/list.js.map +1 -0
  131. package/dist/commands/tokens/add.js +3 -5
  132. package/dist/commands/tokens/add.js.map +1 -1
  133. package/dist/commands/users/invite.js +6 -17
  134. package/dist/commands/users/invite.js.map +1 -1
  135. package/dist/commands/users/list.js +4 -7
  136. package/dist/commands/users/list.js.map +1 -1
  137. package/dist/config/createCliConfig.d.ts +13 -4
  138. package/dist/prompts/init/promptForTypescript.d.ts +2 -0
  139. package/dist/prompts/init/promptForTypescript.js +15 -0
  140. package/dist/prompts/init/promptForTypescript.js.map +1 -0
  141. package/dist/prompts/promptForDatasetAclMode.d.ts +9 -0
  142. package/dist/prompts/promptForDatasetAclMode.js +27 -0
  143. package/dist/prompts/promptForDatasetAclMode.js.map +1 -0
  144. package/dist/prompts/promptForDatasetName.d.ts +1 -1
  145. package/dist/prompts/promptForDatasetName.js +4 -1
  146. package/dist/prompts/promptForDatasetName.js.map +1 -1
  147. package/dist/services/backup.d.ts +8 -0
  148. package/dist/services/backup.js +19 -0
  149. package/dist/services/backup.js.map +1 -1
  150. package/dist/services/cors.d.ts +23 -0
  151. package/dist/services/cors.js +38 -0
  152. package/dist/services/cors.js.map +1 -0
  153. package/dist/services/graphql.d.ts +7 -0
  154. package/dist/services/graphql.js +11 -0
  155. package/dist/services/graphql.js.map +1 -1
  156. package/dist/services/hooks.d.ts +2 -0
  157. package/dist/services/hooks.js +19 -0
  158. package/dist/services/hooks.js.map +1 -1
  159. package/dist/services/organizations.d.ts +4 -2
  160. package/dist/services/organizations.js +3 -2
  161. package/dist/services/organizations.js.map +1 -1
  162. package/dist/services/projects.d.ts +11 -0
  163. package/dist/services/projects.js +41 -0
  164. package/dist/services/projects.js.map +1 -1
  165. package/dist/services/schemas.d.ts +4 -0
  166. package/dist/services/schemas.js +40 -0
  167. package/dist/services/schemas.js.map +1 -0
  168. package/dist/services/user.d.ts +13 -0
  169. package/dist/services/user.js +27 -3
  170. package/dist/services/user.js.map +1 -1
  171. package/dist/services/userApplications.d.ts +3 -1
  172. package/dist/services/userApplications.js +5 -1
  173. package/dist/services/userApplications.js.map +1 -1
  174. package/dist/util/errorMessages.d.ts +1 -0
  175. package/dist/util/errorMessages.js +1 -0
  176. package/dist/util/errorMessages.js.map +1 -1
  177. package/dist/util/getCliVersion.js +1 -1
  178. package/dist/util/getCliVersion.js.map +1 -1
  179. package/dist/util/readPackageJson.d.ts +1 -15
  180. package/dist/util/readPackageJson.js +1 -1
  181. package/dist/util/readPackageJson.js.map +1 -1
  182. package/dist/util/uniqBy.d.ts +1 -0
  183. package/dist/util/uniqBy.js +14 -0
  184. package/dist/util/uniqBy.js.map +1 -0
  185. package/oclif.manifest.json +284 -139
  186. package/package.json +36 -33
  187. package/templates/app-quickstart/src/App.css +20 -0
  188. package/templates/app-quickstart/src/App.tsx +25 -0
  189. package/templates/app-quickstart/src/ExampleComponent.css +90 -0
  190. package/templates/app-quickstart/src/ExampleComponent.tsx +37 -0
  191. package/templates/app-sanity-ui/src/App.tsx +34 -0
  192. package/templates/app-sanity-ui/src/ExampleComponent.tsx +34 -0
  193. package/templates/app-sanity-ui/src/SanityUI.tsx +23 -0
  194. package/templates/blog/README.md +11 -0
  195. package/templates/blog/schemaTypes/author.js +50 -0
  196. package/templates/blog/schemaTypes/blockContent.js +67 -0
  197. package/templates/blog/schemaTypes/category.js +19 -0
  198. package/templates/blog/schemaTypes/index.js +6 -0
  199. package/templates/blog/schemaTypes/post.js +65 -0
  200. package/templates/blog/static/.gitkeep +1 -0
  201. package/templates/clean/README.md +9 -0
  202. package/templates/clean/schemaTypes/index.js +1 -0
  203. package/templates/clean/static/.gitkeep +1 -0
  204. package/templates/ecommerce/README.md +11 -0
  205. package/templates/ecommerce/plugins/.gitkeep +1 -0
  206. package/templates/ecommerce/plugins/barcode-input/BarcodeInput.js +62 -0
  207. package/templates/ecommerce/plugins/barcode-input/index.js +9 -0
  208. package/templates/ecommerce/plugins/barcode-input/schemaType.js +60 -0
  209. package/templates/ecommerce/schemaTypes/blockContent.js +67 -0
  210. package/templates/ecommerce/schemaTypes/category.js +39 -0
  211. package/templates/ecommerce/schemaTypes/index.js +23 -0
  212. package/templates/ecommerce/schemaTypes/locale/localeBlockContent.js +19 -0
  213. package/templates/ecommerce/schemaTypes/locale/localeString.js +19 -0
  214. package/templates/ecommerce/schemaTypes/locale/localeText.js +19 -0
  215. package/templates/ecommerce/schemaTypes/locale/supportedLanguages.js +5 -0
  216. package/templates/ecommerce/schemaTypes/product.js +83 -0
  217. package/templates/ecommerce/schemaTypes/productVariant.js +52 -0
  218. package/templates/ecommerce/schemaTypes/vendor.js +39 -0
  219. package/templates/ecommerce/static/.gitkeep +1 -0
  220. package/templates/get-started/README.md +9 -0
  221. package/templates/get-started/plugins/.gitkeep +1 -0
  222. package/templates/get-started/plugins/sanity-plugin-tutorial/CustomDefaultLayout.tsx +16 -0
  223. package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +104 -0
  224. package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +11 -0
  225. package/templates/get-started/schemaTypes/index.ts +1 -0
  226. package/templates/get-started/static/.gitkeep +1 -0
  227. package/templates/moviedb/README.md +10 -0
  228. package/templates/moviedb/schemaTypes/blockContent.js +67 -0
  229. package/templates/moviedb/schemaTypes/castMember.js +37 -0
  230. package/templates/moviedb/schemaTypes/crewMember.js +52 -0
  231. package/templates/moviedb/schemaTypes/index.js +22 -0
  232. package/templates/moviedb/schemaTypes/movie.js +85 -0
  233. package/templates/moviedb/schemaTypes/person.js +37 -0
  234. package/templates/moviedb/schemaTypes/plotSummaries.js +20 -0
  235. package/templates/moviedb/schemaTypes/plotSummary.js +24 -0
  236. package/templates/moviedb/schemaTypes/screening.js +81 -0
  237. package/templates/moviedb/static/.gitkeep +1 -0
  238. package/templates/quickstart/README.md +9 -0
  239. package/templates/quickstart/schemaTypes/index.js +1 -0
  240. package/templates/quickstart/static/.gitkeep +1 -0
  241. package/templates/shared/gitignore.txt +29 -0
  242. package/templates/shared/tsconfig.json +17 -0
  243. package/templates/shopify/README.md +85 -0
  244. package/templates/shopify/components/hotspots/ProductTooltip.tsx +38 -0
  245. package/templates/shopify/components/icons/Shopify.tsx +20 -0
  246. package/templates/shopify/components/inputs/CollectionHidden.tsx +23 -0
  247. package/templates/shopify/components/inputs/PlaceholderString.tsx +20 -0
  248. package/templates/shopify/components/inputs/ProductHidden.tsx +64 -0
  249. package/templates/shopify/components/inputs/ProductVariantHidden.tsx +24 -0
  250. package/templates/shopify/components/inputs/ProxyString.tsx +32 -0
  251. package/templates/shopify/components/media/ColorTheme.tsx +38 -0
  252. package/templates/shopify/components/media/ShopifyDocumentStatus.tsx +82 -0
  253. package/templates/shopify/components/studio/Navbar.tsx +29 -0
  254. package/templates/shopify/constants.ts +61 -0
  255. package/templates/shopify/docs/features.md +158 -0
  256. package/templates/shopify/plugins/customDocumentActions/index.ts +55 -0
  257. package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +144 -0
  258. package/templates/shopify/plugins/customDocumentActions/shopifyLink.ts +39 -0
  259. package/templates/shopify/plugins/customDocumentActions/types.ts +14 -0
  260. package/templates/shopify/schemaTypes/documents/collection.tsx +142 -0
  261. package/templates/shopify/schemaTypes/documents/colorTheme.tsx +44 -0
  262. package/templates/shopify/schemaTypes/documents/page.ts +70 -0
  263. package/templates/shopify/schemaTypes/documents/product.tsx +132 -0
  264. package/templates/shopify/schemaTypes/documents/productVariant.tsx +67 -0
  265. package/templates/shopify/schemaTypes/index.ts +108 -0
  266. package/templates/shopify/schemaTypes/objects/collection/collectionGroupType.ts +27 -0
  267. package/templates/shopify/schemaTypes/objects/collection/collectionLinksType.ts +16 -0
  268. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +48 -0
  269. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorType.tsx +50 -0
  270. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeObjectType.ts +40 -0
  271. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeType.ts +49 -0
  272. package/templates/shopify/schemaTypes/objects/global/footerType.ts +22 -0
  273. package/templates/shopify/schemaTypes/objects/global/menuLinksType.ts +21 -0
  274. package/templates/shopify/schemaTypes/objects/global/menuType.ts +17 -0
  275. package/templates/shopify/schemaTypes/objects/global/notFoundPageType.ts +37 -0
  276. package/templates/shopify/schemaTypes/objects/hotspot/imageWithProductHotspotsType.ts +48 -0
  277. package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +17 -0
  278. package/templates/shopify/schemaTypes/objects/hotspot/spotType.tsx +60 -0
  279. package/templates/shopify/schemaTypes/objects/link/linkEmailType.tsx +34 -0
  280. package/templates/shopify/schemaTypes/objects/link/linkExternalType.tsx +37 -0
  281. package/templates/shopify/schemaTypes/objects/link/linkInternalType.tsx +33 -0
  282. package/templates/shopify/schemaTypes/objects/link/linkProductType.tsx +60 -0
  283. package/templates/shopify/schemaTypes/objects/module/accordionGroupType.ts +33 -0
  284. package/templates/shopify/schemaTypes/objects/module/accordionType.ts +28 -0
  285. package/templates/shopify/schemaTypes/objects/module/callToActionType.tsx +85 -0
  286. package/templates/shopify/schemaTypes/objects/module/calloutType.ts +38 -0
  287. package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +47 -0
  288. package/templates/shopify/schemaTypes/objects/module/gridItemType.ts +41 -0
  289. package/templates/shopify/schemaTypes/objects/module/gridType.ts +28 -0
  290. package/templates/shopify/schemaTypes/objects/module/heroType.tsx +40 -0
  291. package/templates/shopify/schemaTypes/objects/module/imageCallToActionType.tsx +19 -0
  292. package/templates/shopify/schemaTypes/objects/module/imageFeatureType.ts +80 -0
  293. package/templates/shopify/schemaTypes/objects/module/imageFeaturesType.tsx +51 -0
  294. package/templates/shopify/schemaTypes/objects/module/instagramType.ts +35 -0
  295. package/templates/shopify/schemaTypes/objects/module/productFeaturesType.tsx +50 -0
  296. package/templates/shopify/schemaTypes/objects/module/productReferenceType.tsx +42 -0
  297. package/templates/shopify/schemaTypes/objects/seoType.ts +31 -0
  298. package/templates/shopify/schemaTypes/objects/shopify/collectionRuleType.tsx +37 -0
  299. package/templates/shopify/schemaTypes/objects/shopify/inventoryType.ts +25 -0
  300. package/templates/shopify/schemaTypes/objects/shopify/optionType.tsx +31 -0
  301. package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +11 -0
  302. package/templates/shopify/schemaTypes/objects/shopify/priceRangeType.ts +20 -0
  303. package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +142 -0
  304. package/templates/shopify/schemaTypes/objects/shopify/proxyStringType.ts +12 -0
  305. package/templates/shopify/schemaTypes/objects/shopify/shopType.ts +15 -0
  306. package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +84 -0
  307. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +131 -0
  308. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductVariantType.ts +121 -0
  309. package/templates/shopify/schemaTypes/portableText/portableTextSimpleType.tsx +45 -0
  310. package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +52 -0
  311. package/templates/shopify/schemaTypes/singletons/homeType.ts +49 -0
  312. package/templates/shopify/schemaTypes/singletons/settingsType.ts +96 -0
  313. package/templates/shopify/static/.gitkeep +1 -0
  314. package/templates/shopify/structure/collectionStructure.ts +9 -0
  315. package/templates/shopify/structure/colorThemeStructure.ts +9 -0
  316. package/templates/shopify/structure/homeStructure.ts +9 -0
  317. package/templates/shopify/structure/index.ts +57 -0
  318. package/templates/shopify/structure/pageStructure.ts +11 -0
  319. package/templates/shopify/structure/productStructure.ts +51 -0
  320. package/templates/shopify/structure/settingStructure.ts +9 -0
  321. package/templates/shopify/utils/blocksToText.ts +20 -0
  322. package/templates/shopify/utils/defineStructure.ts +11 -0
  323. package/templates/shopify/utils/getPriceRange.ts +24 -0
  324. package/templates/shopify/utils/shopifyUrls.ts +22 -0
  325. package/templates/shopify/utils/validateSlug.ts +18 -0
  326. package/templates/shopify-online-storefront/README.md +54 -0
  327. package/templates/shopify-online-storefront/components/icons/Shopify.tsx +22 -0
  328. package/templates/shopify-online-storefront/components/inputs/CollectionHidden.tsx +23 -0
  329. package/templates/shopify-online-storefront/components/inputs/PlaceholderString.tsx +25 -0
  330. package/templates/shopify-online-storefront/components/inputs/ProductHidden.tsx +66 -0
  331. package/templates/shopify-online-storefront/components/inputs/ProductVariantHidden.tsx +25 -0
  332. package/templates/shopify-online-storefront/components/inputs/ProxyString.tsx +38 -0
  333. package/templates/shopify-online-storefront/components/media/ShopifyDocumentStatus.tsx +83 -0
  334. package/templates/shopify-online-storefront/constants.ts +18 -0
  335. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +45 -0
  336. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +144 -0
  337. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyLink.ts +39 -0
  338. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/types.ts +14 -0
  339. package/templates/shopify-online-storefront/schemaTypes/blocks/blockContent.ts +32 -0
  340. package/templates/shopify-online-storefront/schemaTypes/documents/collection.tsx +83 -0
  341. package/templates/shopify-online-storefront/schemaTypes/documents/product.tsx +102 -0
  342. package/templates/shopify-online-storefront/schemaTypes/documents/productVariant.tsx +82 -0
  343. package/templates/shopify-online-storefront/schemaTypes/index.ts +43 -0
  344. package/templates/shopify-online-storefront/schemaTypes/objects/accordion.ts +31 -0
  345. package/templates/shopify-online-storefront/schemaTypes/objects/accordionGroup.ts +35 -0
  346. package/templates/shopify-online-storefront/schemaTypes/objects/callout.ts +40 -0
  347. package/templates/shopify-online-storefront/schemaTypes/objects/inventory.ts +30 -0
  348. package/templates/shopify-online-storefront/schemaTypes/objects/option.ts +30 -0
  349. package/templates/shopify-online-storefront/schemaTypes/objects/priceRange.ts +22 -0
  350. package/templates/shopify-online-storefront/schemaTypes/objects/proxyString.ts +11 -0
  351. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollection.ts +109 -0
  352. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollectionRule.tsx +45 -0
  353. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProduct.ts +165 -0
  354. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProductVariant.ts +151 -0
  355. package/templates/shopify-online-storefront/structure/collectionStructure.ts +9 -0
  356. package/templates/shopify-online-storefront/structure/index.ts +37 -0
  357. package/templates/shopify-online-storefront/structure/productStructure.ts +35 -0
  358. package/templates/shopify-online-storefront/utils/defineStructure.ts +11 -0
  359. package/templates/shopify-online-storefront/utils/getPriceRange.ts +24 -0
  360. package/templates/shopify-online-storefront/utils/shopifyUrls.ts +22 -0
  361. package/dist/actions/build/__tests__/buildApp.test.js +0 -367
  362. package/dist/actions/build/__tests__/buildApp.test.js.map +0 -1
  363. package/dist/actions/build/__tests__/buildStudio.test.js +0 -561
  364. package/dist/actions/build/__tests__/buildStudio.test.js.map +0 -1
  365. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js +0 -233
  366. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js.map +0 -1
  367. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js +0 -414
  368. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js.map +0 -1
  369. package/dist/actions/build/__tests__/determineBasePath.test.js +0 -24
  370. package/dist/actions/build/__tests__/determineBasePath.test.js.map +0 -1
  371. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js +0 -109
  372. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js.map +0 -1
  373. package/dist/actions/build/__tests__/getViteConfig.test.js +0 -493
  374. package/dist/actions/build/__tests__/getViteConfig.test.js.map +0 -1
  375. package/dist/actions/build/__tests__/renderDocument.test.js +0 -278
  376. package/dist/actions/build/__tests__/renderDocument.test.js.map +0 -1
  377. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js +0 -153
  378. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js.map +0 -1
  379. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js +0 -657
  380. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js.map +0 -1
  381. package/dist/actions/cors/constants.d.ts +0 -1
  382. package/dist/actions/cors/constants.js +0 -3
  383. package/dist/actions/cors/constants.js.map +0 -1
  384. package/dist/actions/cors/types.d.ts +0 -9
  385. package/dist/actions/cors/types.js +0 -3
  386. package/dist/actions/cors/types.js.map +0 -1
  387. package/dist/actions/dataset/__tests__/validateDatasetName.test.js +0 -182
  388. package/dist/actions/dataset/__tests__/validateDatasetName.test.js.map +0 -1
  389. package/dist/actions/deploy/__tests__/checkDir.test.js +0 -120
  390. package/dist/actions/deploy/__tests__/checkDir.test.js.map +0 -1
  391. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js +0 -16
  392. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js.map +0 -1
  393. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js +0 -124
  394. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js.map +0 -1
  395. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js +0 -274
  396. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js.map +0 -1
  397. package/dist/actions/media/__tests__/importMedia.test.js +0 -182
  398. package/dist/actions/media/__tests__/importMedia.test.js.map +0 -1
  399. package/dist/actions/schema/__tests__/deleteSchemaAction.test.js +0 -294
  400. package/dist/actions/schema/__tests__/deleteSchemaAction.test.js.map +0 -1
  401. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js +0 -174
  402. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js.map +0 -1
  403. package/dist/actions/schema/__tests__/validateAction.test.js +0 -281
  404. package/dist/actions/schema/__tests__/validateAction.test.js.map +0 -1
  405. package/dist/actions/schema/schemaStoreConstants.d.ts +0 -1
  406. package/dist/actions/schema/schemaStoreConstants.js +0 -4
  407. package/dist/actions/schema/schemaStoreConstants.js.map +0 -1
  408. package/dist/actions/schema/utils/schemaActionHelpers.d.ts +0 -1
  409. package/dist/actions/schema/utils/schemaActionHelpers.js +0 -5
  410. package/dist/actions/schema/utils/schemaActionHelpers.js.map +0 -1
  411. package/dist/actions/schema/utils/schemaApiClient.d.ts +0 -6
  412. package/dist/actions/schema/utils/schemaApiClient.js +0 -17
  413. package/dist/actions/schema/utils/schemaApiClient.js.map +0 -1
  414. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js +0 -27
  415. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js.map +0 -1
  416. package/dist/actions/users/__tests__/validateEmail.test.js +0 -16
  417. package/dist/actions/users/__tests__/validateEmail.test.js.map +0 -1
  418. package/dist/actions/users/apiVersion.d.ts +0 -6
  419. package/dist/actions/users/apiVersion.js +0 -7
  420. package/dist/actions/users/apiVersion.js.map +0 -1
  421. package/dist/commands/__tests__/blueprints.test.js +0 -54
  422. package/dist/commands/__tests__/blueprints.test.js.map +0 -1
  423. package/dist/commands/__tests__/build.test.js +0 -132
  424. package/dist/commands/__tests__/build.test.js.map +0 -1
  425. package/dist/commands/__tests__/codemod.test.js +0 -271
  426. package/dist/commands/__tests__/codemod.test.js.map +0 -1
  427. package/dist/commands/__tests__/debug.test.js +0 -697
  428. package/dist/commands/__tests__/debug.test.js.map +0 -1
  429. package/dist/commands/__tests__/deploy.test.js +0 -1913
  430. package/dist/commands/__tests__/deploy.test.js.map +0 -1
  431. package/dist/commands/__tests__/dev.test.js +0 -410
  432. package/dist/commands/__tests__/dev.test.js.map +0 -1
  433. package/dist/commands/__tests__/exec.test.js +0 -207
  434. package/dist/commands/__tests__/exec.test.js.map +0 -1
  435. package/dist/commands/__tests__/init/init.authentication.test.js +0 -60
  436. package/dist/commands/__tests__/init/init.authentication.test.js.map +0 -1
  437. package/dist/commands/__tests__/init/init.create-new-project.test.js +0 -196
  438. package/dist/commands/__tests__/init/init.create-new-project.test.js.map +0 -1
  439. package/dist/commands/__tests__/init/init.plan.test.js +0 -220
  440. package/dist/commands/__tests__/init/init.plan.test.js.map +0 -1
  441. package/dist/commands/__tests__/init/init.setup.test.js +0 -279
  442. package/dist/commands/__tests__/init/init.setup.test.js.map +0 -1
  443. package/dist/commands/__tests__/install.test.js +0 -258
  444. package/dist/commands/__tests__/install.test.js.map +0 -1
  445. package/dist/commands/__tests__/learn.test.js +0 -29
  446. package/dist/commands/__tests__/learn.test.js.map +0 -1
  447. package/dist/commands/__tests__/logout.test.js +0 -88
  448. package/dist/commands/__tests__/logout.test.js.map +0 -1
  449. package/dist/commands/__tests__/manage.test.js +0 -105
  450. package/dist/commands/__tests__/manage.test.js.map +0 -1
  451. package/dist/commands/__tests__/migration.test.js +0 -119
  452. package/dist/commands/__tests__/migration.test.js.map +0 -1
  453. package/dist/commands/__tests__/preview.test.js +0 -261
  454. package/dist/commands/__tests__/preview.test.js.map +0 -1
  455. package/dist/commands/__tests__/start.test.js +0 -253
  456. package/dist/commands/__tests__/start.test.js.map +0 -1
  457. package/dist/commands/__tests__/undeploy.test.js +0 -382
  458. package/dist/commands/__tests__/undeploy.test.js.map +0 -1
  459. package/dist/commands/__tests__/versions.test.js +0 -134
  460. package/dist/commands/__tests__/versions.test.js.map +0 -1
  461. package/dist/commands/backup/__tests__/disable.test.js +0 -207
  462. package/dist/commands/backup/__tests__/disable.test.js.map +0 -1
  463. package/dist/commands/backup/__tests__/download.test.js +0 -679
  464. package/dist/commands/backup/__tests__/download.test.js.map +0 -1
  465. package/dist/commands/backup/__tests__/enable.test.js +0 -317
  466. package/dist/commands/backup/__tests__/enable.test.js.map +0 -1
  467. package/dist/commands/backup/__tests__/list.test.js +0 -321
  468. package/dist/commands/backup/__tests__/list.test.js.map +0 -1
  469. package/dist/commands/cors/__tests__/add.test.js +0 -346
  470. package/dist/commands/cors/__tests__/add.test.js.map +0 -1
  471. package/dist/commands/cors/__tests__/delete.test.js +0 -293
  472. package/dist/commands/cors/__tests__/delete.test.js.map +0 -1
  473. package/dist/commands/cors/__tests__/list.test.js +0 -218
  474. package/dist/commands/cors/__tests__/list.test.js.map +0 -1
  475. package/dist/commands/dataset/__tests__/copy.test.js +0 -520
  476. package/dist/commands/dataset/__tests__/copy.test.js.map +0 -1
  477. package/dist/commands/dataset/__tests__/create.test.js +0 -312
  478. package/dist/commands/dataset/__tests__/create.test.js.map +0 -1
  479. package/dist/commands/dataset/__tests__/delete.test.js +0 -224
  480. package/dist/commands/dataset/__tests__/delete.test.js.map +0 -1
  481. package/dist/commands/dataset/__tests__/export.test.js +0 -561
  482. package/dist/commands/dataset/__tests__/export.test.js.map +0 -1
  483. package/dist/commands/dataset/__tests__/import.test.js +0 -53
  484. package/dist/commands/dataset/__tests__/import.test.js.map +0 -1
  485. package/dist/commands/dataset/__tests__/list.test.js +0 -174
  486. package/dist/commands/dataset/__tests__/list.test.js.map +0 -1
  487. package/dist/commands/dataset/alias/__tests__/create.test.js +0 -299
  488. package/dist/commands/dataset/alias/__tests__/create.test.js.map +0 -1
  489. package/dist/commands/dataset/alias/__tests__/delete.test.js +0 -236
  490. package/dist/commands/dataset/alias/__tests__/delete.test.js.map +0 -1
  491. package/dist/commands/dataset/alias/__tests__/link.test.js +0 -336
  492. package/dist/commands/dataset/alias/__tests__/link.test.js.map +0 -1
  493. package/dist/commands/dataset/alias/__tests__/unlink.test.js +0 -298
  494. package/dist/commands/dataset/alias/__tests__/unlink.test.js.map +0 -1
  495. package/dist/commands/dataset/visibility/__tests__/get.test.js +0 -147
  496. package/dist/commands/dataset/visibility/__tests__/get.test.js.map +0 -1
  497. package/dist/commands/dataset/visibility/__tests__/set.test.js +0 -245
  498. package/dist/commands/dataset/visibility/__tests__/set.test.js.map +0 -1
  499. package/dist/commands/docs/__tests__/browse.test.js +0 -29
  500. package/dist/commands/docs/__tests__/browse.test.js.map +0 -1
  501. package/dist/commands/docs/__tests__/read.test.js +0 -78
  502. package/dist/commands/docs/__tests__/read.test.js.map +0 -1
  503. package/dist/commands/docs/__tests__/search.test.js +0 -254
  504. package/dist/commands/docs/__tests__/search.test.js.map +0 -1
  505. package/dist/commands/documents/__tests__/create.test.js +0 -967
  506. package/dist/commands/documents/__tests__/create.test.js.map +0 -1
  507. package/dist/commands/documents/__tests__/delete.test.js +0 -268
  508. package/dist/commands/documents/__tests__/delete.test.js.map +0 -1
  509. package/dist/commands/documents/__tests__/get.test.js +0 -209
  510. package/dist/commands/documents/__tests__/get.test.js.map +0 -1
  511. package/dist/commands/documents/__tests__/query.test.js +0 -405
  512. package/dist/commands/documents/__tests__/query.test.js.map +0 -1
  513. package/dist/commands/documents/__tests__/validate.test.js +0 -226
  514. package/dist/commands/documents/__tests__/validate.test.js.map +0 -1
  515. package/dist/commands/graphql/__tests__/list.test.js +0 -228
  516. package/dist/commands/graphql/__tests__/list.test.js.map +0 -1
  517. package/dist/commands/graphql/__tests__/undeploy.test.js +0 -384
  518. package/dist/commands/graphql/__tests__/undeploy.test.js.map +0 -1
  519. package/dist/commands/hook/__tests__/attempt.test.js +0 -260
  520. package/dist/commands/hook/__tests__/attempt.test.js.map +0 -1
  521. package/dist/commands/hook/__tests__/create.test.js +0 -121
  522. package/dist/commands/hook/__tests__/create.test.js.map +0 -1
  523. package/dist/commands/hook/__tests__/delete.test.js +0 -220
  524. package/dist/commands/hook/__tests__/delete.test.js.map +0 -1
  525. package/dist/commands/hook/__tests__/list.test.js +0 -138
  526. package/dist/commands/hook/__tests__/list.test.js.map +0 -1
  527. package/dist/commands/hook/__tests__/logs.test.js +0 -770
  528. package/dist/commands/hook/__tests__/logs.test.js.map +0 -1
  529. package/dist/commands/manifest/__tests__/extract.test.js +0 -123
  530. package/dist/commands/manifest/__tests__/extract.test.js.map +0 -1
  531. package/dist/commands/mcp/__tests__/configure.test.js +0 -397
  532. package/dist/commands/mcp/__tests__/configure.test.js.map +0 -1
  533. package/dist/commands/media/__tests__/create-aspect.test.js +0 -160
  534. package/dist/commands/media/__tests__/create-aspect.test.js.map +0 -1
  535. package/dist/commands/media/__tests__/delete-aspect.test.js +0 -333
  536. package/dist/commands/media/__tests__/delete-aspect.test.js.map +0 -1
  537. package/dist/commands/media/__tests__/deploy-aspect.test.js +0 -632
  538. package/dist/commands/media/__tests__/deploy-aspect.test.js.map +0 -1
  539. package/dist/commands/media/__tests__/export.test.js +0 -398
  540. package/dist/commands/media/__tests__/export.test.js.map +0 -1
  541. package/dist/commands/media/__tests__/import.test.js +0 -281
  542. package/dist/commands/media/__tests__/import.test.js.map +0 -1
  543. package/dist/commands/openapi/__tests__/get.test.js +0 -149
  544. package/dist/commands/openapi/__tests__/get.test.js.map +0 -1
  545. package/dist/commands/openapi/__tests__/list.test.js +0 -113
  546. package/dist/commands/openapi/__tests__/list.test.js.map +0 -1
  547. package/dist/commands/projects/__tests__/list.test.js +0 -153
  548. package/dist/commands/projects/__tests__/list.test.js.map +0 -1
  549. package/dist/commands/schema/__tests__/delete.test.js +0 -209
  550. package/dist/commands/schema/__tests__/delete.test.js.map +0 -1
  551. package/dist/commands/schema/__tests__/extract.test.js +0 -113
  552. package/dist/commands/schema/__tests__/extract.test.js.map +0 -1
  553. package/dist/commands/schema/__tests__/validate.test.js +0 -104
  554. package/dist/commands/schema/__tests__/validate.test.js.map +0 -1
  555. package/dist/commands/telemetry/__tests__/disable.test.js +0 -145
  556. package/dist/commands/telemetry/__tests__/disable.test.js.map +0 -1
  557. package/dist/commands/telemetry/__tests__/enable.test.js +0 -131
  558. package/dist/commands/telemetry/__tests__/enable.test.js.map +0 -1
  559. package/dist/commands/telemetry/__tests__/status.test.js +0 -153
  560. package/dist/commands/telemetry/__tests__/status.test.js.map +0 -1
  561. package/dist/commands/tokens/__tests__/add.test.js +0 -420
  562. package/dist/commands/tokens/__tests__/add.test.js.map +0 -1
  563. package/dist/commands/tokens/__tests__/delete.test.js +0 -375
  564. package/dist/commands/tokens/__tests__/delete.test.js.map +0 -1
  565. package/dist/commands/tokens/__tests__/list.test.js +0 -368
  566. package/dist/commands/tokens/__tests__/list.test.js.map +0 -1
  567. package/dist/commands/users/__tests__/invite.test.js +0 -341
  568. package/dist/commands/users/__tests__/invite.test.js.map +0 -1
  569. package/dist/commands/users/__tests__/list.test.js +0 -401
  570. package/dist/commands/users/__tests__/list.test.js.map +0 -1
  571. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js +0 -77
  572. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js.map +0 -1
  573. package/dist/services/__tests__/datasetAliases.test.js +0 -131
  574. package/dist/services/__tests__/datasetAliases.test.js.map +0 -1
  575. package/dist/services/__tests__/datasets.test.js +0 -436
  576. package/dist/services/__tests__/datasets.test.js.map +0 -1
  577. package/dist/services/__tests__/graphql.test.js +0 -43
  578. package/dist/services/__tests__/graphql.test.js.map +0 -1
  579. package/dist/services/__tests__/mediaLibraries.test.js +0 -88
  580. package/dist/services/__tests__/mediaLibraries.test.js.map +0 -1
  581. package/dist/services/__tests__/projects.test.js +0 -41
  582. package/dist/services/__tests__/projects.test.js.map +0 -1
  583. package/dist/services/__tests__/userApplications.test.js +0 -113
  584. package/dist/services/__tests__/userApplications.test.js.map +0 -1
  585. package/dist/util/__tests__/appId.test.js +0 -31
  586. package/dist/util/__tests__/appId.test.js.map +0 -1
  587. package/dist/util/__tests__/cliClient.test.js +0 -184
  588. package/dist/util/__tests__/cliClient.test.js.map +0 -1
  589. package/dist/util/__tests__/compareDependencyVersions.test.js +0 -426
  590. package/dist/util/__tests__/compareDependencyVersions.test.js.map +0 -1
  591. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js +0 -74
  592. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js.map +0 -1
  593. package/dist/util/__tests__/findNdjsonEntry.test.js +0 -54
  594. package/dist/util/__tests__/findNdjsonEntry.test.js.map +0 -1
  595. package/dist/util/__tests__/getCliVersion.test.js +0 -28
  596. package/dist/util/__tests__/getCliVersion.test.js.map +0 -1
  597. package/dist/util/__tests__/getLocalPackageVersion.test.js +0 -84
  598. package/dist/util/__tests__/getLocalPackageVersion.test.js.map +0 -1
  599. package/dist/util/__tests__/getWorkspace.test.js +0 -37
  600. package/dist/util/__tests__/getWorkspace.test.js.map +0 -1
  601. package/dist/util/__tests__/readPackageJson.test.js +0 -69
  602. package/dist/util/__tests__/readPackageJson.test.js.map +0 -1
  603. package/dist/util/__tests__/warnAboutMissingAppId.test.js +0 -28
  604. package/dist/util/__tests__/warnAboutMissingAppId.test.js.map +0 -1
  605. package/dist/util/packageManager/__tests__/installPackages.test.js +0 -388
  606. package/dist/util/packageManager/__tests__/installPackages.test.js.map +0 -1
  607. package/dist/util/validation/ __tests__/validateDocuments.test.js +0 -274
  608. package/dist/util/validation/ __tests__/validateDocuments.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/commands/__tests__/build.test.ts"],"sourcesContent":["import {readdir, readFile} from 'node:fs/promises'\nimport {join} from 'node:path'\n\nimport {runCommand} from '@oclif/test'\nimport {testCommand} from '@sanity/cli-test'\nimport {describe, expect, test} from 'vitest'\nimport {testExample} from '~test/helpers/testExample.js'\n\nimport {BuildCommand} from '../build.js'\n\ndescribe(\n '#build',\n // might help with speed of tests if not ran concurrently\n {concurrent: false},\n () => {\n test('help text is correct', async () => {\n const {stdout} = await runCommand('build --help')\n expect(stdout).toMatchInlineSnapshot(`\n \"Builds the Sanity Studio configuration into a static bundle\n\n USAGE\n $ sanity build [OUTPUTDIR] [--auto-updates] [--minify]\n [--source-maps] [--stats] [-y]\n\n ARGUMENTS\n [OUTPUTDIR] Output directory\n\n FLAGS\n -y, --yes Unattended mode, answers \"yes\" to any \"yes/no\" prompt\n and otherwise uses defaults\n --[no-]auto-updates Enable/disable auto updates of studio versions\n --[no-]minify Enable/disable minifying of built bundles\n --[no-]source-maps Enable source maps for built bundles (increases size\n of bundle)\n --stats Show stats about the built bundles\n\n DESCRIPTION\n Builds the Sanity Studio configuration into a static bundle\n\n EXAMPLES\n $ sanity build\n\n $ sanity build --no-minify --source-maps\n\n \"\n `)\n })\n test('shows an error for invalid flags', async () => {\n const {error} = await testCommand(BuildCommand, ['--invalid'])\n\n expect(error?.message).toContain('Nonexistent flag: --invalid')\n })\n\n test('should build the \"basic-studio\" example', async () => {\n const cwd = await testExample('basic-studio')\n process.chdir(cwd)\n\n const {error, stderr, stdout} = await testCommand(BuildCommand, ['--yes'], {\n config: {root: cwd},\n })\n\n // Assert things here\n expect(error).toBeUndefined()\n expect(stdout).toContain(`Building with auto-updates enabled`)\n expect(stderr).toContain('✔ Clean output folder')\n expect(stderr).toContain(`✔ Build Sanity Studio`)\n\n const outputFolder = join(cwd, 'dist')\n const files = await readdir(outputFolder)\n expect(files).toContain('index.html')\n expect(files).toContain('static')\n })\n\n test('should build the \"basic-app\" example', async () => {\n const cwd = await testExample('basic-app')\n process.chdir(cwd)\n\n const {error, stderr} = await testCommand(BuildCommand, ['--yes'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stderr).toContain('Clean output folder')\n expect(stderr).toContain(`Build Sanity application`)\n\n const outputFolder = join(cwd, 'dist')\n const files = await readdir(outputFolder)\n expect(files).toContain('index.html')\n expect(files).toContain('static')\n })\n\n test('should build the \"basic-app\" example with auto-updates', async () => {\n const cwd = await testExample('basic-app')\n process.chdir(cwd)\n\n const {error, stderr, stdout} = await testCommand(BuildCommand, ['--yes'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain(`Building with auto-updates enabled`)\n expect(stderr).toContain('Clean output folder')\n expect(stderr).toContain(`Build Sanity application`)\n\n const outputFolder = join(cwd, 'dist')\n const files = await readdir(outputFolder)\n expect(files).toContain('index.html')\n expect(files).toContain('static')\n\n const indexHtml = await readFile(join(outputFolder, 'index.html'), 'utf8')\n expect(indexHtml).toContain('importmap')\n })\n\n // TODO: Fix this so it works in CI\n test.skip(\"should build the 'worst-case-studio' example\", {timeout: 15_000}, async () => {\n const cwd = await testExample('worst-case-studio')\n process.chdir(cwd)\n\n const {error, stderr} = await testCommand(BuildCommand, ['--yes'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stderr).toContain('Clean output folder')\n expect(stderr).toContain(`Build Sanity Studio`)\n\n const outputFolder = join(cwd, 'dist')\n const files = await readdir(outputFolder)\n expect(files).toContain('index.html')\n expect(files).toContain('static')\n })\n },\n)\n"],"names":["readdir","readFile","join","runCommand","testCommand","describe","expect","test","testExample","BuildCommand","concurrent","stdout","toMatchInlineSnapshot","error","message","toContain","cwd","process","chdir","stderr","config","root","toBeUndefined","outputFolder","files","indexHtml","skip","timeout"],"mappings":"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"}
@@ -1,271 +0,0 @@
1
- import { execSync, spawn } from 'node:child_process';
2
- import { existsSync } from 'node:fs';
3
- import { runCommand } from '@oclif/test';
4
- import { testCommand } from '@sanity/cli-test';
5
- import { afterEach, describe, expect, test, vi } from 'vitest';
6
- import { getLocalPackageVersion } from '../../util/getLocalPackageVersion.js';
7
- import { CodemodCommand } from '../codemod.js';
8
- vi.mock('../../util/getLocalPackageVersion.js', ()=>({
9
- getLocalPackageVersion: vi.fn()
10
- }));
11
- vi.mock('node:child_process');
12
- vi.mock('node:fs');
13
- const mockGetLocalPackageVersion = vi.mocked(getLocalPackageVersion);
14
- const mockSpawn = vi.mocked(spawn);
15
- const mockExecSync = vi.mocked(execSync);
16
- const mockExistsSync = vi.mocked(existsSync);
17
- const createSpawnMock = (exitCode = 0)=>{
18
- const killMock = vi.fn();
19
- const onMock = vi.fn((event, cb)=>{
20
- if (event === 'close') cb(exitCode);
21
- });
22
- const childProcess = {
23
- kill: killMock,
24
- on: onMock
25
- };
26
- const spawnMock = vi.fn().mockReturnValue(childProcess);
27
- mockSpawn.mockImplementation(spawnMock);
28
- return {
29
- childProcess,
30
- killMock,
31
- onMock,
32
- spawnMock
33
- };
34
- };
35
- const setupBasicMocks = (options = {})=>{
36
- const defaults = {
37
- exitCode: 0,
38
- gitIgnoreExists: false,
39
- npxOutput: 'npm exec',
40
- packageVersion: '4.0.0'
41
- };
42
- const config = {
43
- ...defaults,
44
- ...options
45
- };
46
- if (config.packageVersion !== null) {
47
- mockGetLocalPackageVersion.mockResolvedValue(config.packageVersion);
48
- }
49
- mockExistsSync.mockReturnValue(config.gitIgnoreExists);
50
- mockExecSync.mockReturnValue(config.npxOutput);
51
- return createSpawnMock(config.exitCode);
52
- };
53
- describe('#codemod', ()=>{
54
- afterEach(()=>{
55
- vi.clearAllMocks();
56
- });
57
- test('outputs empty string for help command', async ()=>{
58
- const { stdout } = await runCommand('codemod --help');
59
- expect(stdout).toMatchInlineSnapshot(`
60
- "Updates Sanity Studio codebase with a code modification script
61
-
62
- USAGE
63
- $ sanity codemod [CODEMODNAME] [--dry] [--extensions <value>]
64
- [--no-verify]
65
-
66
- ARGUMENTS
67
- [CODEMODNAME] Name of the codemod to run
68
-
69
- FLAGS
70
- --dry Dry run (no changes are made to files)
71
- --extensions=<value> [default: js,ts,tsx] Transform files with these file
72
- extensions (comma separated)
73
- --no-verify Skip verification steps before running codemod
74
-
75
- DESCRIPTION
76
- Updates Sanity Studio codebase with a code modification script
77
-
78
- EXAMPLES
79
- Show available code mods
80
-
81
- $ sanity codemod
82
-
83
- Run codemod to transform react-icons imports (dry run)
84
-
85
- $ sanity codemod reactIconsV3 --dry
86
-
87
- "
88
- `);
89
- });
90
- test('lists available codemods when no name provided', async ()=>{
91
- const { stdout } = await testCommand(CodemodCommand, [
92
- ''
93
- ]);
94
- expect(stdout).toContain('Available code modifications:');
95
- expect(stdout).toContain('reactIconsV3');
96
- expect(stdout).toContain('partsTypeDirective');
97
- expect(stdout).toContain('deskRename');
98
- });
99
- test('validates codemod exists', async ()=>{
100
- const { error } = await testCommand(CodemodCommand, [
101
- 'nonexistent'
102
- ]);
103
- expect(error?.message).toContain('Codemod with name "nonexistent" not found');
104
- expect(error?.oclif?.exit).toBe(1);
105
- });
106
- test('handles case-insensitive codemod names', async ()=>{
107
- const { spawnMock } = setupBasicMocks();
108
- await testCommand(CodemodCommand, [
109
- 'REACTICONSV3'
110
- ]);
111
- expect(spawnMock).toHaveBeenCalledWith('npx', expect.arrayContaining([
112
- 'jscodeshift',
113
- '-t',
114
- expect.stringContaining('reactIconsV3.js')
115
- ]), expect.any(Object));
116
- });
117
- test('runs codemod with dry flag', async ()=>{
118
- const { spawnMock } = setupBasicMocks();
119
- await testCommand(CodemodCommand, [
120
- 'reactIconsV3',
121
- '--dry'
122
- ]);
123
- expect(spawnMock).toHaveBeenCalledWith('npx', expect.arrayContaining([
124
- 'jscodeshift',
125
- '--dry'
126
- ]), expect.any(Object));
127
- });
128
- test('skips verification when --no-verify flag is used', async ()=>{
129
- const { spawnMock } = setupBasicMocks({
130
- packageVersion: null
131
- });
132
- await testCommand(CodemodCommand, [
133
- 'reactIconsV3',
134
- '--no-verify'
135
- ]);
136
- expect(mockGetLocalPackageVersion).not.toHaveBeenCalled();
137
- expect(spawnMock).toHaveBeenCalled();
138
- });
139
- test('uses gitignore when present', async ()=>{
140
- const { spawnMock } = setupBasicMocks({
141
- gitIgnoreExists: true
142
- });
143
- await testCommand(CodemodCommand, [
144
- 'partsTypeDirective'
145
- ]);
146
- expect(spawnMock).toHaveBeenCalledWith('npx', expect.arrayContaining([
147
- '--ignore-config',
148
- '.gitignore'
149
- ]), expect.any(Object));
150
- });
151
- describe('extension handling', ()=>{
152
- test.each([
153
- {
154
- description: 'handles custom extensions',
155
- expected: 'jsx,mjs',
156
- input: 'jsx,mjs'
157
- },
158
- {
159
- description: 'normalizes extension handling with dots',
160
- expected: 'tsx,ts',
161
- input: '.tsx,.ts'
162
- },
163
- {
164
- description: 'handles extensions with spaces and mixed formatting',
165
- expected: 'jsx,mjs,ts',
166
- input: ' .jsx , .mjs , ts '
167
- }
168
- ])('$description', async ({ expected, input })=>{
169
- const { spawnMock } = setupBasicMocks({
170
- packageVersion: null
171
- });
172
- await testCommand(CodemodCommand, [
173
- 'partsTypeDirective',
174
- '--extensions',
175
- input
176
- ]);
177
- expect(spawnMock).toHaveBeenCalledWith('npx', expect.arrayContaining([
178
- '--extensions',
179
- expected
180
- ]), expect.any(Object));
181
- });
182
- });
183
- describe('npx availability', ()=>{
184
- test.each([
185
- {
186
- description: 'throws error when npx is not available',
187
- expectedError: 'Failed to run "npx"',
188
- mockImpl: ()=>{
189
- throw new Error('Command not found');
190
- }
191
- },
192
- {
193
- description: 'throws error when npx help output does not contain npm',
194
- expectedError: 'Failed to run "npx" - required to run codemods. Do you have a recent version of npm installed?',
195
- mockImpl: ()=>'some other tool help that does not include'
196
- }
197
- ])('$description', async ({ expectedError, mockImpl })=>{
198
- mockExecSync.mockImplementationOnce(mockImpl);
199
- const { error } = await testCommand(CodemodCommand, [
200
- 'partsTypeDirective'
201
- ]);
202
- expect(error?.message).toContain(expectedError);
203
- expect(error?.oclif?.exit).toBe(1);
204
- });
205
- });
206
- describe('react-icons verification', ()=>{
207
- test('runs verification for reactIconsV3 codemod', async ()=>{
208
- const { spawnMock } = setupBasicMocks();
209
- await testCommand(CodemodCommand, [
210
- 'reactIconsV3'
211
- ]);
212
- expect(mockGetLocalPackageVersion).toHaveBeenCalledWith('react-icons', process.cwd());
213
- expect(spawnMock).toHaveBeenCalled();
214
- });
215
- test.each([
216
- {
217
- description: 'throws error when react-icons is not found',
218
- expectedError: 'Could not find react-icons declared as dependency in package.json',
219
- version: undefined
220
- },
221
- {
222
- description: 'throws error when react-icons version is below 3.0.0',
223
- expectedError: 'react-icons declared in package.json dependencies is lower than 3.0.0',
224
- version: '2.8.0'
225
- }
226
- ])('$description', async ({ expectedError, version })=>{
227
- mockGetLocalPackageVersion.mockResolvedValue(version);
228
- const { error } = await testCommand(CodemodCommand, [
229
- 'reactIconsV3'
230
- ]);
231
- expect(error?.message).toContain(expectedError);
232
- expect(error?.oclif?.exit).toBe(1);
233
- });
234
- });
235
- describe('process management', ()=>{
236
- test('handles child process exit with non-zero code', async ()=>{
237
- setupBasicMocks({
238
- exitCode: 1
239
- });
240
- const { error } = await testCommand(CodemodCommand, [
241
- 'partsTypeDirective'
242
- ]);
243
- expect(error?.oclif?.exit).toBe(1);
244
- });
245
- test('handles SIGINT signal by killing child process', async ()=>{
246
- const { killMock } = setupBasicMocks();
247
- const originalProcessOn = process.on;
248
- const processOnMock = vi.fn((event, handler)=>{
249
- if (event === 'SIGINT') {
250
- // Immediately call the handler to simulate SIGINT
251
- ;
252
- handler();
253
- }
254
- return originalProcessOn.call(process, event, handler);
255
- });
256
- process.on = processOnMock;
257
- try {
258
- const { error } = await testCommand(CodemodCommand, [
259
- 'partsTypeDirective'
260
- ]);
261
- expect(killMock).toHaveBeenCalledWith(2);
262
- expect(error?.oclif?.exit).toBe(0);
263
- } finally{
264
- process.on = originalProcessOn;
265
- process.removeAllListeners('SIGINT');
266
- }
267
- });
268
- });
269
- });
270
-
271
- //# sourceMappingURL=codemod.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/commands/__tests__/codemod.test.ts"],"sourcesContent":["import {execSync, spawn} from 'node:child_process'\nimport {existsSync} from 'node:fs'\n\nimport {runCommand} from '@oclif/test'\nimport {testCommand} from '@sanity/cli-test'\nimport {afterEach, describe, expect, test, vi} from 'vitest'\n\nimport {getLocalPackageVersion} from '../../util/getLocalPackageVersion.js'\nimport {CodemodCommand} from '../codemod.js'\n\nvi.mock('../../util/getLocalPackageVersion.js', () => ({\n getLocalPackageVersion: vi.fn(),\n}))\n\nvi.mock('node:child_process')\nvi.mock('node:fs')\n\nconst mockGetLocalPackageVersion = vi.mocked(getLocalPackageVersion)\nconst mockSpawn = vi.mocked(spawn)\nconst mockExecSync = vi.mocked(execSync)\nconst mockExistsSync = vi.mocked(existsSync)\n\nconst createSpawnMock = (exitCode = 0) => {\n const killMock = vi.fn()\n const onMock = vi.fn((event, cb) => {\n if (event === 'close') cb(exitCode)\n })\n const childProcess = {\n kill: killMock,\n on: onMock,\n }\n const spawnMock = vi.fn().mockReturnValue(childProcess)\n mockSpawn.mockImplementation(spawnMock)\n return {childProcess, killMock, onMock, spawnMock}\n}\n\nconst setupBasicMocks = (options = {}) => {\n const defaults = {\n exitCode: 0,\n gitIgnoreExists: false,\n npxOutput: 'npm exec',\n packageVersion: '4.0.0',\n }\n const config = {...defaults, ...options}\n\n if (config.packageVersion !== null) {\n mockGetLocalPackageVersion.mockResolvedValue(config.packageVersion)\n }\n mockExistsSync.mockReturnValue(config.gitIgnoreExists)\n mockExecSync.mockReturnValue(config.npxOutput)\n\n return createSpawnMock(config.exitCode)\n}\n\ndescribe('#codemod', () => {\n afterEach(() => {\n vi.clearAllMocks()\n })\n\n test('outputs empty string for help command', async () => {\n const {stdout} = await runCommand('codemod --help')\n\n expect(stdout).toMatchInlineSnapshot(`\n \"Updates Sanity Studio codebase with a code modification script\n\n USAGE\n $ sanity codemod [CODEMODNAME] [--dry] [--extensions <value>]\n [--no-verify]\n\n ARGUMENTS\n [CODEMODNAME] Name of the codemod to run\n\n FLAGS\n --dry Dry run (no changes are made to files)\n --extensions=<value> [default: js,ts,tsx] Transform files with these file\n extensions (comma separated)\n --no-verify Skip verification steps before running codemod\n\n DESCRIPTION\n Updates Sanity Studio codebase with a code modification script\n\n EXAMPLES\n Show available code mods\n\n $ sanity codemod\n\n Run codemod to transform react-icons imports (dry run)\n\n $ sanity codemod reactIconsV3 --dry\n\n \"\n `)\n })\n\n test('lists available codemods when no name provided', async () => {\n const {stdout} = await testCommand(CodemodCommand, [''])\n\n expect(stdout).toContain('Available code modifications:')\n expect(stdout).toContain('reactIconsV3')\n expect(stdout).toContain('partsTypeDirective')\n expect(stdout).toContain('deskRename')\n })\n\n test('validates codemod exists', async () => {\n const {error} = await testCommand(CodemodCommand, ['nonexistent'])\n\n expect(error?.message).toContain('Codemod with name \"nonexistent\" not found')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('handles case-insensitive codemod names', async () => {\n const {spawnMock} = setupBasicMocks()\n\n await testCommand(CodemodCommand, ['REACTICONSV3'])\n\n expect(spawnMock).toHaveBeenCalledWith(\n 'npx',\n expect.arrayContaining(['jscodeshift', '-t', expect.stringContaining('reactIconsV3.js')]),\n expect.any(Object),\n )\n })\n\n test('runs codemod with dry flag', async () => {\n const {spawnMock} = setupBasicMocks()\n\n await testCommand(CodemodCommand, ['reactIconsV3', '--dry'])\n\n expect(spawnMock).toHaveBeenCalledWith(\n 'npx',\n expect.arrayContaining(['jscodeshift', '--dry']),\n expect.any(Object),\n )\n })\n\n test('skips verification when --no-verify flag is used', async () => {\n const {spawnMock} = setupBasicMocks({packageVersion: null})\n\n await testCommand(CodemodCommand, ['reactIconsV3', '--no-verify'])\n\n expect(mockGetLocalPackageVersion).not.toHaveBeenCalled()\n expect(spawnMock).toHaveBeenCalled()\n })\n\n test('uses gitignore when present', async () => {\n const {spawnMock} = setupBasicMocks({gitIgnoreExists: true})\n\n await testCommand(CodemodCommand, ['partsTypeDirective'])\n\n expect(spawnMock).toHaveBeenCalledWith(\n 'npx',\n expect.arrayContaining(['--ignore-config', '.gitignore']),\n expect.any(Object),\n )\n })\n\n describe('extension handling', () => {\n test.each([\n {\n description: 'handles custom extensions',\n expected: 'jsx,mjs',\n input: 'jsx,mjs',\n },\n {\n description: 'normalizes extension handling with dots',\n expected: 'tsx,ts',\n input: '.tsx,.ts',\n },\n {\n description: 'handles extensions with spaces and mixed formatting',\n expected: 'jsx,mjs,ts',\n input: ' .jsx , .mjs , ts ',\n },\n ])('$description', async ({expected, input}) => {\n const {spawnMock} = setupBasicMocks({packageVersion: null})\n\n await testCommand(CodemodCommand, ['partsTypeDirective', '--extensions', input])\n\n expect(spawnMock).toHaveBeenCalledWith(\n 'npx',\n expect.arrayContaining(['--extensions', expected]),\n expect.any(Object),\n )\n })\n })\n\n describe('npx availability', () => {\n test.each([\n {\n description: 'throws error when npx is not available',\n expectedError: 'Failed to run \"npx\"',\n mockImpl: () => {\n throw new Error('Command not found')\n },\n },\n {\n description: 'throws error when npx help output does not contain npm',\n expectedError:\n 'Failed to run \"npx\" - required to run codemods. Do you have a recent version of npm installed?',\n mockImpl: () => 'some other tool help that does not include',\n },\n ])('$description', async ({expectedError, mockImpl}) => {\n mockExecSync.mockImplementationOnce(mockImpl)\n\n const {error} = await testCommand(CodemodCommand, ['partsTypeDirective'])\n\n expect(error?.message).toContain(expectedError)\n expect(error?.oclif?.exit).toBe(1)\n })\n })\n\n describe('react-icons verification', () => {\n test('runs verification for reactIconsV3 codemod', async () => {\n const {spawnMock} = setupBasicMocks()\n\n await testCommand(CodemodCommand, ['reactIconsV3'])\n\n expect(mockGetLocalPackageVersion).toHaveBeenCalledWith('react-icons', process.cwd())\n expect(spawnMock).toHaveBeenCalled()\n })\n\n test.each([\n {\n description: 'throws error when react-icons is not found',\n expectedError: 'Could not find react-icons declared as dependency in package.json',\n version: undefined,\n },\n {\n description: 'throws error when react-icons version is below 3.0.0',\n expectedError: 'react-icons declared in package.json dependencies is lower than 3.0.0',\n version: '2.8.0',\n },\n ])('$description', async ({expectedError, version}) => {\n mockGetLocalPackageVersion.mockResolvedValue(version)\n\n const {error} = await testCommand(CodemodCommand, ['reactIconsV3'])\n\n expect(error?.message).toContain(expectedError)\n expect(error?.oclif?.exit).toBe(1)\n })\n })\n\n describe('process management', () => {\n test('handles child process exit with non-zero code', async () => {\n setupBasicMocks({exitCode: 1})\n\n const {error} = await testCommand(CodemodCommand, ['partsTypeDirective'])\n\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('handles SIGINT signal by killing child process', async () => {\n const {killMock} = setupBasicMocks()\n\n const originalProcessOn = process.on\n const processOnMock = vi.fn((event, handler) => {\n if (event === 'SIGINT') {\n // Immediately call the handler to simulate SIGINT\n ;(handler as () => void)()\n }\n return originalProcessOn.call(process, event, handler)\n })\n process.on = processOnMock as unknown as typeof process.on\n\n try {\n const {error} = await testCommand(CodemodCommand, ['partsTypeDirective'])\n\n expect(killMock).toHaveBeenCalledWith(2)\n expect(error?.oclif?.exit).toBe(0)\n } finally {\n process.on = originalProcessOn\n process.removeAllListeners('SIGINT')\n }\n })\n })\n})\n"],"names":["execSync","spawn","existsSync","runCommand","testCommand","afterEach","describe","expect","test","vi","getLocalPackageVersion","CodemodCommand","mock","fn","mockGetLocalPackageVersion","mocked","mockSpawn","mockExecSync","mockExistsSync","createSpawnMock","exitCode","killMock","onMock","event","cb","childProcess","kill","on","spawnMock","mockReturnValue","mockImplementation","setupBasicMocks","options","defaults","gitIgnoreExists","npxOutput","packageVersion","config","mockResolvedValue","clearAllMocks","stdout","toMatchInlineSnapshot","toContain","error","message","oclif","exit","toBe","toHaveBeenCalledWith","arrayContaining","stringContaining","any","Object","not","toHaveBeenCalled","each","description","expected","input","expectedError","mockImpl","Error","mockImplementationOnce","process","cwd","version","undefined","originalProcessOn","processOnMock","handler","call","removeAllListeners"],"mappings":"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"}