@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,281 +0,0 @@
1
- import { beforeEach, describe, expect, test, vi } from 'vitest';
2
- import { validateAction } from '../validateAction.js';
3
- const mockReadPackageUp = vi.hoisted(()=>vi.fn());
4
- const mockSpinner = vi.hoisted(()=>({
5
- fail: vi.fn().mockReturnThis(),
6
- start: vi.fn().mockReturnThis(),
7
- succeed: vi.fn().mockReturnThis()
8
- }));
9
- const mockSpinnerFn = vi.hoisted(()=>vi.fn(()=>mockSpinner));
10
- const mockWorkerConstructor = vi.hoisted(()=>vi.fn());
11
- const mockWriteFileSync = vi.hoisted(()=>vi.fn());
12
- vi.mock('read-package-up', ()=>({
13
- readPackageUp: mockReadPackageUp
14
- }));
15
- vi.mock('@sanity/cli-core/ux', async ()=>{
16
- const actual = await vi.importActual('@sanity/cli-core/ux');
17
- return {
18
- ...actual,
19
- spinner: mockSpinnerFn
20
- };
21
- });
22
- vi.mock('node:worker_threads', ()=>({
23
- Worker: mockWorkerConstructor
24
- }));
25
- vi.mock('node:fs', ()=>({
26
- writeFileSync: mockWriteFileSync
27
- }));
28
- const mockOutput = {
29
- error: vi.fn(),
30
- log: vi.fn(),
31
- warn: vi.fn()
32
- };
33
- describe('#validateAction', ()=>{
34
- let testWorkerResponse;
35
- beforeEach(()=>{
36
- vi.clearAllMocks();
37
- testWorkerResponse = {
38
- serializedDebug: undefined,
39
- validation: []
40
- };
41
- const mockWorkerInstance = {
42
- addListener: vi.fn()
43
- };
44
- mockWorkerConstructor.mockImplementation(()=>{
45
- setImmediate(()=>{
46
- const messageListener = mockWorkerInstance.addListener.mock.calls.find((call)=>call[0] === 'message')?.[1];
47
- if (messageListener) {
48
- messageListener(testWorkerResponse);
49
- }
50
- });
51
- return mockWorkerInstance;
52
- });
53
- });
54
- test('throws error if sanity package does not exist', async ()=>{
55
- mockReadPackageUp.mockResolvedValueOnce(undefined);
56
- const options = {
57
- output: mockOutput,
58
- workDir: '/test/project',
59
- workspace: 'nonexistent'
60
- };
61
- await expect(validateAction(options)).rejects.toThrow('Could not find root directory for `sanity` package');
62
- });
63
- test('shows validating spinner if format flag pretty', async ()=>{
64
- mockReadPackageUp.mockResolvedValueOnce({
65
- path: '/test/sanity/package.json'
66
- });
67
- const options = {
68
- format: 'pretty',
69
- output: mockOutput,
70
- workDir: '/test/project'
71
- };
72
- await validateAction(options);
73
- expect(mockSpinnerFn).toHaveBeenCalledWith('Validating schema…');
74
- expect(mockSpinner.start).toHaveBeenCalled();
75
- });
76
- test('throws serializeDebug error if debug-metafile-path flag is passed worker does not return serializeDebug', async ()=>{
77
- mockReadPackageUp.mockResolvedValueOnce({
78
- path: '/test/sanity/package.json'
79
- });
80
- const options = {
81
- debugMetafilePath: '/test/metafile.json',
82
- output: mockOutput,
83
- workDir: '/test/project'
84
- };
85
- await expect(validateAction(options)).rejects.toThrow('serializedDebug should always be produced');
86
- });
87
- test('writes metafile', async ()=>{
88
- mockReadPackageUp.mockResolvedValueOnce({
89
- path: '/test/sanity/package.json'
90
- });
91
- testWorkerResponse = {
92
- serializedDebug: {
93
- hoisted: {},
94
- size: 1000,
95
- types: {}
96
- },
97
- validation: []
98
- };
99
- const options = {
100
- debugMetafilePath: '/test/metafile.json',
101
- output: mockOutput,
102
- workDir: '/test/project'
103
- };
104
- await validateAction(options);
105
- expect(mockWriteFileSync).toHaveBeenCalledWith('/test/metafile.json', expect.any(String), 'utf8');
106
- });
107
- test('does not write to metafile if schema validation fails', async ()=>{
108
- mockReadPackageUp.mockResolvedValueOnce({
109
- path: '/test/sanity/package.json'
110
- });
111
- testWorkerResponse = {
112
- serializedDebug: {
113
- hoisted: {},
114
- size: 1000,
115
- types: {}
116
- },
117
- validation: [
118
- {
119
- path: [
120
- {
121
- kind: 'type',
122
- name: 'testType',
123
- type: 'document'
124
- }
125
- ],
126
- problems: [
127
- {
128
- helpId: 'test-error',
129
- message: 'Test error message',
130
- severity: 'error'
131
- }
132
- ]
133
- }
134
- ]
135
- };
136
- const options = {
137
- debugMetafilePath: '/test/metafile.json',
138
- output: mockOutput,
139
- workDir: '/test/project'
140
- };
141
- await validateAction(options);
142
- expect(mockWriteFileSync).not.toHaveBeenCalled();
143
- });
144
- test('shows default output with manifest success message', async ()=>{
145
- mockReadPackageUp.mockResolvedValueOnce({
146
- path: '/test/sanity/package.json'
147
- });
148
- testWorkerResponse = {
149
- serializedDebug: {
150
- hoisted: {},
151
- size: 1000,
152
- types: {}
153
- },
154
- validation: []
155
- };
156
- const options = {
157
- debugMetafilePath: '/test/metafile.json',
158
- format: 'pretty',
159
- output: mockOutput,
160
- workDir: '/test/project'
161
- };
162
- await validateAction(options);
163
- expect(mockSpinner.succeed).toHaveBeenCalledWith('Validated schema');
164
- expect(mockOutput.log).toHaveBeenCalledWith('\nValidation results:');
165
- expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('Errors: 0 errors'));
166
- expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('Warnings: 0 warnings'));
167
- expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('Metafile written to: /test/metafile.json'));
168
- expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('This can be analyzed at https://esbuild.github.io/analyze/'));
169
- expect(process.exitCode).toBe(0);
170
- });
171
- test('shows default output with manifest failure message', async ()=>{
172
- mockReadPackageUp.mockResolvedValueOnce({
173
- path: '/test/sanity/package.json'
174
- });
175
- testWorkerResponse = {
176
- serializedDebug: {
177
- hoisted: {},
178
- size: 1000,
179
- types: {}
180
- },
181
- validation: [
182
- {
183
- path: [
184
- {
185
- kind: 'type',
186
- name: 'testType',
187
- type: 'document'
188
- }
189
- ],
190
- problems: [
191
- {
192
- helpId: 'test-error',
193
- message: 'Test error message',
194
- severity: 'error'
195
- }
196
- ]
197
- }
198
- ]
199
- };
200
- const options = {
201
- debugMetafilePath: '/test/metafile.json',
202
- output: mockOutput,
203
- workDir: '/test/project'
204
- };
205
- await validateAction(options);
206
- expect(mockOutput.log).toHaveBeenCalledWith('\nValidation results:');
207
- expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('Errors: 1 error'));
208
- expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('Warnings: 0 warnings'));
209
- expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('Test error message'));
210
- expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('Metafile not written due to validation errors'));
211
- expect(process.exitCode).toBe(1);
212
- });
213
- test('shows json output', async ()=>{
214
- mockReadPackageUp.mockResolvedValueOnce({
215
- path: '/test/sanity/package.json'
216
- });
217
- testWorkerResponse = {
218
- serializedDebug: undefined,
219
- validation: [
220
- {
221
- path: [
222
- {
223
- kind: 'type',
224
- name: 'testType',
225
- type: 'document'
226
- }
227
- ],
228
- problems: [
229
- {
230
- helpId: 'test-error',
231
- message: 'Test error message',
232
- severity: 'error'
233
- }
234
- ]
235
- }
236
- ]
237
- };
238
- const options = {
239
- format: 'json',
240
- output: mockOutput,
241
- workDir: '/test/project'
242
- };
243
- await validateAction(options);
244
- expect(mockOutput.log).toHaveBeenCalledWith(JSON.stringify(testWorkerResponse.validation));
245
- });
246
- test('shows ndjson output', async ()=>{
247
- mockReadPackageUp.mockResolvedValueOnce({
248
- path: '/test/sanity/package.json'
249
- });
250
- testWorkerResponse = {
251
- serializedDebug: undefined,
252
- validation: [
253
- {
254
- path: [
255
- {
256
- kind: 'type',
257
- name: 'testType',
258
- type: 'document'
259
- }
260
- ],
261
- problems: [
262
- {
263
- helpId: 'test-error',
264
- message: 'Test error message',
265
- severity: 'error'
266
- }
267
- ]
268
- }
269
- ]
270
- };
271
- const options = {
272
- format: 'ndjson',
273
- output: mockOutput,
274
- workDir: '/test/project'
275
- };
276
- await validateAction(options);
277
- expect(mockOutput.log).toHaveBeenCalledWith(JSON.stringify(testWorkerResponse.validation[0]));
278
- });
279
- });
280
-
281
- //# sourceMappingURL=validateAction.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/schema/__tests__/validateAction.test.ts"],"sourcesContent":["import {type Output} from '@sanity/cli-core'\nimport {beforeEach, describe, expect, test, vi} from 'vitest'\n\nimport {validateAction} from '../validateAction.js'\n\nconst mockReadPackageUp = vi.hoisted(() => vi.fn())\n\nconst mockSpinner = vi.hoisted(() => ({\n fail: vi.fn().mockReturnThis(),\n start: vi.fn().mockReturnThis(),\n succeed: vi.fn().mockReturnThis(),\n}))\nconst mockSpinnerFn = vi.hoisted(() => vi.fn(() => mockSpinner))\n\nconst mockWorkerConstructor = vi.hoisted(() => vi.fn())\n\nconst mockWriteFileSync = vi.hoisted(() => vi.fn())\n\nvi.mock('read-package-up', () => ({\n readPackageUp: mockReadPackageUp,\n}))\n\nvi.mock('@sanity/cli-core/ux', async () => {\n const actual = await vi.importActual('@sanity/cli-core/ux')\n return {\n ...actual,\n spinner: mockSpinnerFn,\n }\n})\n\nvi.mock('node:worker_threads', () => ({\n Worker: mockWorkerConstructor,\n}))\n\nvi.mock('node:fs', () => ({\n writeFileSync: mockWriteFileSync,\n}))\n\nconst mockOutput = {\n error: vi.fn(),\n log: vi.fn(),\n warn: vi.fn(),\n} as unknown as Output\n\ndescribe('#validateAction', () => {\n let testWorkerResponse: {serializedDebug?: unknown; validation: unknown[]}\n\n beforeEach(() => {\n vi.clearAllMocks()\n\n testWorkerResponse = {\n serializedDebug: undefined,\n validation: [],\n }\n\n const mockWorkerInstance = {\n addListener: vi.fn(),\n }\n\n mockWorkerConstructor.mockImplementation(() => {\n setImmediate(() => {\n const messageListener = mockWorkerInstance.addListener.mock.calls.find(\n (call) => call[0] === 'message',\n )?.[1]\n\n if (messageListener) {\n messageListener(testWorkerResponse)\n }\n })\n\n return mockWorkerInstance\n })\n })\n\n test('throws error if sanity package does not exist', async () => {\n mockReadPackageUp.mockResolvedValueOnce(undefined)\n\n const options = {\n output: mockOutput,\n workDir: '/test/project',\n workspace: 'nonexistent',\n }\n\n await expect(validateAction(options)).rejects.toThrow(\n 'Could not find root directory for `sanity` package',\n )\n })\n\n test('shows validating spinner if format flag pretty', async () => {\n mockReadPackageUp.mockResolvedValueOnce({\n path: '/test/sanity/package.json',\n })\n\n const options = {\n format: 'pretty',\n output: mockOutput,\n workDir: '/test/project',\n }\n\n await validateAction(options)\n\n expect(mockSpinnerFn).toHaveBeenCalledWith('Validating schema…')\n expect(mockSpinner.start).toHaveBeenCalled()\n })\n\n test('throws serializeDebug error if debug-metafile-path flag is passed worker does not return serializeDebug', async () => {\n mockReadPackageUp.mockResolvedValueOnce({\n path: '/test/sanity/package.json',\n })\n\n const options = {\n debugMetafilePath: '/test/metafile.json',\n output: mockOutput,\n workDir: '/test/project',\n }\n\n await expect(validateAction(options)).rejects.toThrow(\n 'serializedDebug should always be produced',\n )\n })\n\n test('writes metafile', async () => {\n mockReadPackageUp.mockResolvedValueOnce({\n path: '/test/sanity/package.json',\n })\n\n testWorkerResponse = {\n serializedDebug: {\n hoisted: {},\n size: 1000,\n types: {},\n },\n validation: [],\n }\n\n const options = {\n debugMetafilePath: '/test/metafile.json',\n output: mockOutput,\n workDir: '/test/project',\n }\n\n await validateAction(options)\n\n expect(mockWriteFileSync).toHaveBeenCalledWith(\n '/test/metafile.json',\n expect.any(String),\n 'utf8',\n )\n })\n\n test('does not write to metafile if schema validation fails', async () => {\n mockReadPackageUp.mockResolvedValueOnce({\n path: '/test/sanity/package.json',\n })\n\n testWorkerResponse = {\n serializedDebug: {\n hoisted: {},\n size: 1000,\n types: {},\n },\n validation: [\n {\n path: [{kind: 'type', name: 'testType', type: 'document'}],\n problems: [\n {\n helpId: 'test-error',\n message: 'Test error message',\n severity: 'error',\n },\n ],\n },\n ],\n }\n\n const options = {\n debugMetafilePath: '/test/metafile.json',\n output: mockOutput,\n workDir: '/test/project',\n }\n\n await validateAction(options)\n\n expect(mockWriteFileSync).not.toHaveBeenCalled()\n })\n\n test('shows default output with manifest success message', async () => {\n mockReadPackageUp.mockResolvedValueOnce({\n path: '/test/sanity/package.json',\n })\n\n testWorkerResponse = {\n serializedDebug: {\n hoisted: {},\n size: 1000,\n types: {},\n },\n validation: [],\n }\n\n const options = {\n debugMetafilePath: '/test/metafile.json',\n format: 'pretty',\n output: mockOutput,\n workDir: '/test/project',\n }\n\n await validateAction(options)\n\n expect(mockSpinner.succeed).toHaveBeenCalledWith('Validated schema')\n expect(mockOutput.log).toHaveBeenCalledWith('\\nValidation results:')\n expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('Errors: 0 errors'))\n expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('Warnings: 0 warnings'))\n expect(mockOutput.log).toHaveBeenCalledWith(\n expect.stringContaining('Metafile written to: /test/metafile.json'),\n )\n expect(mockOutput.log).toHaveBeenCalledWith(\n expect.stringContaining('This can be analyzed at https://esbuild.github.io/analyze/'),\n )\n expect(process.exitCode).toBe(0)\n })\n\n test('shows default output with manifest failure message', async () => {\n mockReadPackageUp.mockResolvedValueOnce({\n path: '/test/sanity/package.json',\n })\n\n testWorkerResponse = {\n serializedDebug: {\n hoisted: {},\n size: 1000,\n types: {},\n },\n validation: [\n {\n path: [{kind: 'type', name: 'testType', type: 'document'}],\n problems: [\n {\n helpId: 'test-error',\n message: 'Test error message',\n severity: 'error',\n },\n ],\n },\n ],\n }\n\n const options = {\n debugMetafilePath: '/test/metafile.json',\n output: mockOutput,\n workDir: '/test/project',\n }\n\n await validateAction(options)\n expect(mockOutput.log).toHaveBeenCalledWith('\\nValidation results:')\n expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('Errors: 1 error'))\n expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('Warnings: 0 warnings'))\n expect(mockOutput.log).toHaveBeenCalledWith(expect.stringContaining('Test error message'))\n expect(mockOutput.log).toHaveBeenCalledWith(\n expect.stringContaining('Metafile not written due to validation errors'),\n )\n expect(process.exitCode).toBe(1)\n })\n\n test('shows json output', async () => {\n mockReadPackageUp.mockResolvedValueOnce({\n path: '/test/sanity/package.json',\n })\n\n testWorkerResponse = {\n serializedDebug: undefined,\n validation: [\n {\n path: [{kind: 'type', name: 'testType', type: 'document'}],\n problems: [\n {\n helpId: 'test-error',\n message: 'Test error message',\n severity: 'error',\n },\n ],\n },\n ],\n }\n\n const options = {\n format: 'json',\n output: mockOutput,\n workDir: '/test/project',\n }\n\n await validateAction(options)\n\n expect(mockOutput.log).toHaveBeenCalledWith(JSON.stringify(testWorkerResponse.validation))\n })\n\n test('shows ndjson output', async () => {\n mockReadPackageUp.mockResolvedValueOnce({\n path: '/test/sanity/package.json',\n })\n\n testWorkerResponse = {\n serializedDebug: undefined,\n validation: [\n {\n path: [{kind: 'type', name: 'testType', type: 'document'}],\n problems: [\n {\n helpId: 'test-error',\n message: 'Test error message',\n severity: 'error',\n },\n ],\n },\n ],\n }\n\n const options = {\n format: 'ndjson',\n output: mockOutput,\n workDir: '/test/project',\n }\n\n await validateAction(options)\n\n expect(mockOutput.log).toHaveBeenCalledWith(JSON.stringify(testWorkerResponse.validation[0]))\n })\n})\n"],"names":["beforeEach","describe","expect","test","vi","validateAction","mockReadPackageUp","hoisted","fn","mockSpinner","fail","mockReturnThis","start","succeed","mockSpinnerFn","mockWorkerConstructor","mockWriteFileSync","mock","readPackageUp","actual","importActual","spinner","Worker","writeFileSync","mockOutput","error","log","warn","testWorkerResponse","clearAllMocks","serializedDebug","undefined","validation","mockWorkerInstance","addListener","mockImplementation","setImmediate","messageListener","calls","find","call","mockResolvedValueOnce","options","output","workDir","workspace","rejects","toThrow","path","format","toHaveBeenCalledWith","toHaveBeenCalled","debugMetafilePath","size","types","any","String","kind","name","type","problems","helpId","message","severity","not","stringContaining","process","exitCode","toBe","JSON","stringify"],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare const SCHEMA_STORE_FEATURE_ENABLED: boolean;
@@ -1,4 +0,0 @@
1
- const FEATURE_ENABLED_ENV_NAME = 'SANITY_CLI_SCHEMA_STORE_ENABLED';
2
- export const SCHEMA_STORE_FEATURE_ENABLED = process.env[FEATURE_ENABLED_ENV_NAME] === 'true';
3
-
4
- //# sourceMappingURL=schemaStoreConstants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/actions/schema/schemaStoreConstants.ts"],"sourcesContent":["const FEATURE_ENABLED_ENV_NAME = 'SANITY_CLI_SCHEMA_STORE_ENABLED'\n\nexport const SCHEMA_STORE_FEATURE_ENABLED = process.env[FEATURE_ENABLED_ENV_NAME] === 'true'\n"],"names":["FEATURE_ENABLED_ENV_NAME","SCHEMA_STORE_FEATURE_ENABLED","process","env"],"mappings":"AAAA,MAAMA,2BAA2B;AAEjC,OAAO,MAAMC,+BAA+BC,QAAQC,GAAG,CAACH,yBAAyB,KAAK,OAAM"}
@@ -1 +0,0 @@
1
- export declare function pluralize(word: string, count: number): string;
@@ -1,5 +0,0 @@
1
- export function pluralize(word, count) {
2
- return `${count} ${word}${count === 1 ? '' : 's'}`;
3
- }
4
-
5
- //# sourceMappingURL=schemaActionHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/schema/utils/schemaActionHelpers.ts"],"sourcesContent":["export function pluralize(word: string, count: number) {\n return `${count} ${word}${count === 1 ? '' : 's'}`\n}\n"],"names":["pluralize","word","count"],"mappings":"AAAA,OAAO,SAASA,UAAUC,IAAY,EAAEC,KAAa;IACnD,OAAO,GAAGA,MAAM,CAAC,EAAED,OAAOC,UAAU,IAAI,KAAK,KAAK;AACpD"}
@@ -1,6 +0,0 @@
1
- import { type SanityClient } from '@sanity/client';
2
- export declare function createSchemaApiClient(apiClient: () => Promise<SanityClient>): Promise<{
3
- client: SanityClient;
4
- dataset: string;
5
- projectId: string;
6
- }>;
@@ -1,17 +0,0 @@
1
- export async function createSchemaApiClient(apiClient) {
2
- const client = (await apiClient()).withConfig({
3
- apiVersion: 'v2025-03-01',
4
- useCdn: false
5
- });
6
- const projectId = client.config().projectId;
7
- const dataset = client.config().dataset;
8
- if (!projectId) throw new Error('Project ID is not defined');
9
- if (!dataset) throw new Error('Dataset is not defined');
10
- return {
11
- client,
12
- dataset,
13
- projectId
14
- };
15
- }
16
-
17
- //# sourceMappingURL=schemaApiClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/schema/utils/schemaApiClient.ts"],"sourcesContent":["import {type SanityClient} from '@sanity/client'\n\nexport async function createSchemaApiClient(apiClient: () => Promise<SanityClient>) {\n const client = (await apiClient()).withConfig({apiVersion: 'v2025-03-01', useCdn: false})\n\n const projectId = client.config().projectId\n const dataset = client.config().dataset\n if (!projectId) throw new Error('Project ID is not defined')\n if (!dataset) throw new Error('Dataset is not defined')\n\n return {\n client,\n dataset,\n projectId,\n }\n}\n"],"names":["createSchemaApiClient","apiClient","client","withConfig","apiVersion","useCdn","projectId","config","dataset","Error"],"mappings":"AAEA,OAAO,eAAeA,sBAAsBC,SAAsC;IAChF,MAAMC,SAAS,AAAC,CAAA,MAAMD,WAAU,EAAGE,UAAU,CAAC;QAACC,YAAY;QAAeC,QAAQ;IAAK;IAEvF,MAAMC,YAAYJ,OAAOK,MAAM,GAAGD,SAAS;IAC3C,MAAME,UAAUN,OAAOK,MAAM,GAAGC,OAAO;IACvC,IAAI,CAACF,WAAW,MAAM,IAAIG,MAAM;IAChC,IAAI,CAACD,SAAS,MAAM,IAAIC,MAAM;IAE9B,OAAO;QACLP;QACAM;QACAF;IACF;AACF"}
@@ -1,27 +0,0 @@
1
- import { getUserConfig } from '@sanity/cli-core';
2
- import { mockApi } from '@sanity/cli-test';
3
- import { beforeEach, describe, expect, test } from 'vitest';
4
- import { fetchTelemetryConsent, TELEMETRY_CONSENT_CONFIG_KEY } from '../fetchTelemetryConsent.js';
5
- describe('#fetchTelemetryConsent', ()=>{
6
- beforeEach(()=>{
7
- const userConfig = getUserConfig();
8
- userConfig.delete(TELEMETRY_CONSENT_CONFIG_KEY);
9
- });
10
- test('should return the telemetry consent status', async ()=>{
11
- mockApi({
12
- apiVersion: 'v2025-08-14',
13
- query: {
14
- tag: 'sanity.cli.telemetry-consent'
15
- },
16
- uri: '/intake/telemetry-status'
17
- }).reply(200, {
18
- status: 'granted'
19
- });
20
- const consent = await fetchTelemetryConsent();
21
- expect(consent).toEqual({
22
- status: 'granted'
23
- });
24
- });
25
- });
26
-
27
- //# sourceMappingURL=fetchTelemetryConsent.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/telemetry/__tests__/fetchTelemetryConsent.test.ts"],"sourcesContent":["import {getUserConfig} from '@sanity/cli-core'\nimport {mockApi} from '@sanity/cli-test'\nimport {beforeEach, describe, expect, test} from 'vitest'\n\nimport {fetchTelemetryConsent, TELEMETRY_CONSENT_CONFIG_KEY} from '../fetchTelemetryConsent.js'\n\ndescribe('#fetchTelemetryConsent', () => {\n beforeEach(() => {\n const userConfig = getUserConfig()\n userConfig.delete(TELEMETRY_CONSENT_CONFIG_KEY)\n })\n\n test('should return the telemetry consent status', async () => {\n mockApi({\n apiVersion: 'v2025-08-14',\n query: {tag: 'sanity.cli.telemetry-consent'},\n uri: '/intake/telemetry-status',\n }).reply(200, {status: 'granted'})\n const consent = await fetchTelemetryConsent()\n\n expect(consent).toEqual({status: 'granted'})\n })\n})\n"],"names":["getUserConfig","mockApi","beforeEach","describe","expect","test","fetchTelemetryConsent","TELEMETRY_CONSENT_CONFIG_KEY","userConfig","delete","apiVersion","query","tag","uri","reply","status","consent","toEqual"],"mappings":"AAAA,SAAQA,aAAa,QAAO,mBAAkB;AAC9C,SAAQC,OAAO,QAAO,mBAAkB;AACxC,SAAQC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,IAAI,QAAO,SAAQ;AAEzD,SAAQC,qBAAqB,EAAEC,4BAA4B,QAAO,8BAA6B;AAE/FJ,SAAS,0BAA0B;IACjCD,WAAW;QACT,MAAMM,aAAaR;QACnBQ,WAAWC,MAAM,CAACF;IACpB;IAEAF,KAAK,8CAA8C;QACjDJ,QAAQ;YACNS,YAAY;YACZC,OAAO;gBAACC,KAAK;YAA8B;YAC3CC,KAAK;QACP,GAAGC,KAAK,CAAC,KAAK;YAACC,QAAQ;QAAS;QAChC,MAAMC,UAAU,MAAMV;QAEtBF,OAAOY,SAASC,OAAO,CAAC;YAACF,QAAQ;QAAS;IAC5C;AACF"}
@@ -1,16 +0,0 @@
1
- import { describe, expect, test } from 'vitest';
2
- import { validateEmail } from '../validateEmail.js';
3
- describe('validateEmail', ()=>{
4
- test('returns true for valid email', ()=>{
5
- expect(validateEmail('test@test.com')).toBe(true);
6
- });
7
- test('returns "Email is required" for empty email', ()=>{
8
- expect(validateEmail('')).toBe('Email is required');
9
- expect(validateEmail(' ')).toBe('Email is required');
10
- });
11
- test('returns "Please enter a valid email address" for invalid email', ()=>{
12
- expect(validateEmail('invalid-email')).toBe('Please enter a valid email address');
13
- });
14
- });
15
-
16
- //# sourceMappingURL=validateEmail.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/actions/users/__tests__/validateEmail.test.ts"],"sourcesContent":["import {describe, expect, test} from 'vitest'\n\nimport {validateEmail} from '../validateEmail.js'\n\ndescribe('validateEmail', () => {\n test('returns true for valid email', () => {\n expect(validateEmail('test@test.com')).toBe(true)\n })\n\n test('returns \"Email is required\" for empty email', () => {\n expect(validateEmail('')).toBe('Email is required')\n expect(validateEmail(' ')).toBe('Email is required')\n })\n\n test('returns \"Please enter a valid email address\" for invalid email', () => {\n expect(validateEmail('invalid-email')).toBe('Please enter a valid email address')\n })\n})\n"],"names":["describe","expect","test","validateEmail","toBe"],"mappings":"AAAA,SAAQA,QAAQ,EAAEC,MAAM,EAAEC,IAAI,QAAO,SAAQ;AAE7C,SAAQC,aAAa,QAAO,sBAAqB;AAEjDH,SAAS,iBAAiB;IACxBE,KAAK,gCAAgC;QACnCD,OAAOE,cAAc,kBAAkBC,IAAI,CAAC;IAC9C;IAEAF,KAAK,+CAA+C;QAClDD,OAAOE,cAAc,KAAKC,IAAI,CAAC;QAC/BH,OAAOE,cAAc,MAAMC,IAAI,CAAC;IAClC;IAEAF,KAAK,kEAAkE;QACrED,OAAOE,cAAc,kBAAkBC,IAAI,CAAC;IAC9C;AACF"}
@@ -1,6 +0,0 @@
1
- /**
2
- * The API version to use for the users list command
3
- *
4
- * @internal
5
- */
6
- export declare const USERS_API_VERSION = "v2025-08-30";
@@ -1,7 +0,0 @@
1
- /**
2
- * The API version to use for the users list command
3
- *
4
- * @internal
5
- */ export const USERS_API_VERSION = 'v2025-08-30';
6
-
7
- //# sourceMappingURL=apiVersion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/actions/users/apiVersion.ts"],"sourcesContent":["/**\n * The API version to use for the users list command\n *\n * @internal\n */\nexport const USERS_API_VERSION = 'v2025-08-30'\n"],"names":["USERS_API_VERSION"],"mappings":"AAAA;;;;CAIC,GACD,OAAO,MAAMA,oBAAoB,cAAa"}
@@ -1,54 +0,0 @@
1
- import { runCommand } from '@oclif/test';
2
- import { describe, expect, it } from 'vitest';
3
- describe('#blueprints', ()=>{
4
- it('should print blueprints help', async ()=>{
5
- const { stdout } = await runCommand('blueprints --help');
6
- expect(stdout).toMatchInlineSnapshot(`
7
- "Blueprint Stack deployment and management commands
8
-
9
- USAGE
10
- $ sanity blueprints COMMAND
11
-
12
- COMMANDS
13
- blueprints add Add a Resource to a Blueprint
14
- blueprints config View or edit Blueprint configuration
15
- blueprints deploy Deploy a Blueprint
16
- blueprints destroy Destroy a Blueprint Stack deployment and its resources
17
- (will not delete local files)
18
- blueprints doctor Diagnose potential issues with Blueprint configuration
19
- blueprints info Show information about a Blueprint Stack deployment
20
- blueprints init Initialize a new Blueprint Stack deployment
21
- blueprints logs Display logs for a Blueprint Stack deployment
22
- blueprints plan Enumerate resources to be deployed - will not modify any
23
- resources
24
- blueprints stacks List all Blueprint Stacks
25
-
26
- "
27
- `);
28
- });
29
- });
30
- describe('#functions', ()=>{
31
- it('should print function help', async ()=>{
32
- const { stdout } = await runCommand('functions --help');
33
- expect(stdout).toMatchInlineSnapshot(`
34
- "Sanity Function development and management commands
35
-
36
- USAGE
37
- $ sanity functions COMMAND
38
-
39
- TOPICS
40
- functions env Add or set the value of an environment variable for a Sanity
41
- function
42
-
43
- COMMANDS
44
- functions add Add a Function to your Blueprint
45
- functions dev Start the Sanity Function emulator
46
- functions logs Retrieve or delete logs for a Sanity Function
47
- functions test Invoke a local Sanity Function
48
-
49
- "
50
- `);
51
- });
52
- });
53
-
54
- //# sourceMappingURL=blueprints.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/commands/__tests__/blueprints.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {describe, expect, it} from 'vitest'\n\ndescribe('#blueprints', () => {\n it('should print blueprints help', async () => {\n const {stdout} = await runCommand('blueprints --help')\n expect(stdout).toMatchInlineSnapshot(`\n \"Blueprint Stack deployment and management commands\n\n USAGE\n $ sanity blueprints COMMAND\n\n COMMANDS\n blueprints add Add a Resource to a Blueprint\n blueprints config View or edit Blueprint configuration\n blueprints deploy Deploy a Blueprint\n blueprints destroy Destroy a Blueprint Stack deployment and its resources\n (will not delete local files)\n blueprints doctor Diagnose potential issues with Blueprint configuration\n blueprints info Show information about a Blueprint Stack deployment\n blueprints init Initialize a new Blueprint Stack deployment\n blueprints logs Display logs for a Blueprint Stack deployment\n blueprints plan Enumerate resources to be deployed - will not modify any\n resources\n blueprints stacks List all Blueprint Stacks\n\n \"\n `)\n })\n})\n\ndescribe('#functions', () => {\n it('should print function help', async () => {\n const {stdout} = await runCommand('functions --help')\n expect(stdout).toMatchInlineSnapshot(`\n \"Sanity Function development and management commands\n\n USAGE\n $ sanity functions COMMAND\n\n TOPICS\n functions env Add or set the value of an environment variable for a Sanity\n function\n\n COMMANDS\n functions add Add a Function to your Blueprint\n functions dev Start the Sanity Function emulator\n functions logs Retrieve or delete logs for a Sanity Function\n functions test Invoke a local Sanity Function\n\n \"\n `)\n })\n})\n"],"names":["runCommand","describe","expect","it","stdout","toMatchInlineSnapshot"],"mappings":"AAAA,SAAQA,UAAU,QAAO,cAAa;AACtC,SAAQC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAO,SAAQ;AAE3CF,SAAS,eAAe;IACtBE,GAAG,gCAAgC;QACjC,MAAM,EAACC,MAAM,EAAC,GAAG,MAAMJ,WAAW;QAClCE,OAAOE,QAAQC,qBAAqB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;IAqBtC,CAAC;IACH;AACF;AAEAJ,SAAS,cAAc;IACrBE,GAAG,8BAA8B;QAC/B,MAAM,EAACC,MAAM,EAAC,GAAG,MAAMJ,WAAW;QAClCE,OAAOE,QAAQC,qBAAqB,CAAC,CAAC;;;;;;;;;;;;;;;;;IAiBtC,CAAC;IACH;AACF"}
@@ -1,132 +0,0 @@
1
- import { readdir, readFile } from 'node:fs/promises';
2
- import { join } from 'node:path';
3
- import { runCommand } from '@oclif/test';
4
- import { testCommand } from '@sanity/cli-test';
5
- import { describe, expect, test } from 'vitest';
6
- import { testExample } from '~test/helpers/testExample.js';
7
- import { BuildCommand } from '../build.js';
8
- describe('#build', // might help with speed of tests if not ran concurrently
9
- {
10
- concurrent: false
11
- }, ()=>{
12
- test('help text is correct', async ()=>{
13
- const { stdout } = await runCommand('build --help');
14
- expect(stdout).toMatchInlineSnapshot(`
15
- "Builds the Sanity Studio configuration into a static bundle
16
-
17
- USAGE
18
- $ sanity build [OUTPUTDIR] [--auto-updates] [--minify]
19
- [--source-maps] [--stats] [-y]
20
-
21
- ARGUMENTS
22
- [OUTPUTDIR] Output directory
23
-
24
- FLAGS
25
- -y, --yes Unattended mode, answers "yes" to any "yes/no" prompt
26
- and otherwise uses defaults
27
- --[no-]auto-updates Enable/disable auto updates of studio versions
28
- --[no-]minify Enable/disable minifying of built bundles
29
- --[no-]source-maps Enable source maps for built bundles (increases size
30
- of bundle)
31
- --stats Show stats about the built bundles
32
-
33
- DESCRIPTION
34
- Builds the Sanity Studio configuration into a static bundle
35
-
36
- EXAMPLES
37
- $ sanity build
38
-
39
- $ sanity build --no-minify --source-maps
40
-
41
- "
42
- `);
43
- });
44
- test('shows an error for invalid flags', async ()=>{
45
- const { error } = await testCommand(BuildCommand, [
46
- '--invalid'
47
- ]);
48
- expect(error?.message).toContain('Nonexistent flag: --invalid');
49
- });
50
- test('should build the "basic-studio" example', async ()=>{
51
- const cwd = await testExample('basic-studio');
52
- process.chdir(cwd);
53
- const { error, stderr, stdout } = await testCommand(BuildCommand, [
54
- '--yes'
55
- ], {
56
- config: {
57
- root: cwd
58
- }
59
- });
60
- // Assert things here
61
- expect(error).toBeUndefined();
62
- expect(stdout).toContain(`Building with auto-updates enabled`);
63
- expect(stderr).toContain('✔ Clean output folder');
64
- expect(stderr).toContain(`✔ Build Sanity Studio`);
65
- const outputFolder = join(cwd, 'dist');
66
- const files = await readdir(outputFolder);
67
- expect(files).toContain('index.html');
68
- expect(files).toContain('static');
69
- });
70
- test('should build the "basic-app" example', async ()=>{
71
- const cwd = await testExample('basic-app');
72
- process.chdir(cwd);
73
- const { error, stderr } = await testCommand(BuildCommand, [
74
- '--yes'
75
- ], {
76
- config: {
77
- root: cwd
78
- }
79
- });
80
- expect(error).toBeUndefined();
81
- expect(stderr).toContain('Clean output folder');
82
- expect(stderr).toContain(`Build Sanity application`);
83
- const outputFolder = join(cwd, 'dist');
84
- const files = await readdir(outputFolder);
85
- expect(files).toContain('index.html');
86
- expect(files).toContain('static');
87
- });
88
- test('should build the "basic-app" example with auto-updates', async ()=>{
89
- const cwd = await testExample('basic-app');
90
- process.chdir(cwd);
91
- const { error, stderr, stdout } = await testCommand(BuildCommand, [
92
- '--yes'
93
- ], {
94
- config: {
95
- root: cwd
96
- }
97
- });
98
- expect(error).toBeUndefined();
99
- expect(stdout).toContain(`Building with auto-updates enabled`);
100
- expect(stderr).toContain('Clean output folder');
101
- expect(stderr).toContain(`Build Sanity application`);
102
- const outputFolder = join(cwd, 'dist');
103
- const files = await readdir(outputFolder);
104
- expect(files).toContain('index.html');
105
- expect(files).toContain('static');
106
- const indexHtml = await readFile(join(outputFolder, 'index.html'), 'utf8');
107
- expect(indexHtml).toContain('importmap');
108
- });
109
- // TODO: Fix this so it works in CI
110
- test.skip("should build the 'worst-case-studio' example", {
111
- timeout: 15_000
112
- }, async ()=>{
113
- const cwd = await testExample('worst-case-studio');
114
- process.chdir(cwd);
115
- const { error, stderr } = await testCommand(BuildCommand, [
116
- '--yes'
117
- ], {
118
- config: {
119
- root: cwd
120
- }
121
- });
122
- expect(error).toBeUndefined();
123
- expect(stderr).toContain('Clean output folder');
124
- expect(stderr).toContain(`Build Sanity Studio`);
125
- const outputFolder = join(cwd, 'dist');
126
- const files = await readdir(outputFolder);
127
- expect(files).toContain('index.html');
128
- expect(files).toContain('static');
129
- });
130
- });
131
-
132
- //# sourceMappingURL=build.test.js.map