@sanity/cli 6.0.0-alpha.5 → 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 (461) 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/init/remoteTemplate.js +1 -1
  14. package/dist/actions/init/remoteTemplate.js.map +1 -1
  15. package/dist/actions/manifest/extractAppManifest.d.ts +20 -0
  16. package/dist/actions/manifest/extractAppManifest.js +51 -0
  17. package/dist/actions/manifest/extractAppManifest.js.map +1 -0
  18. package/dist/actions/manifest/extractManifest.js +1 -1
  19. package/dist/actions/manifest/extractManifest.js.map +1 -1
  20. package/dist/actions/manifest/types.d.ts +6 -1
  21. package/dist/actions/manifest/types.js.map +1 -1
  22. package/dist/actions/media/importAspects.js +2 -1
  23. package/dist/actions/media/importAspects.js.map +1 -1
  24. package/dist/actions/schema/utils/uniqByProjectIdDataset.d.ts +1 -1
  25. package/dist/commands/dataset/create.d.ts +0 -2
  26. package/dist/commands/dataset/create.js +8 -54
  27. package/dist/commands/dataset/create.js.map +1 -1
  28. package/dist/commands/debug.js +5 -9
  29. package/dist/commands/debug.js.map +1 -1
  30. package/dist/commands/init.d.ts +6 -1
  31. package/dist/commands/init.js +358 -20
  32. package/dist/commands/init.js.map +1 -1
  33. package/dist/commands/manifest/extract.js +7 -8
  34. package/dist/commands/manifest/extract.js.map +1 -1
  35. package/dist/config/createCliConfig.d.ts +9 -0
  36. package/dist/prompts/init/promptForTypescript.d.ts +2 -0
  37. package/dist/prompts/init/promptForTypescript.js +15 -0
  38. package/dist/prompts/init/promptForTypescript.js.map +1 -0
  39. package/dist/prompts/promptForDatasetAclMode.d.ts +9 -0
  40. package/dist/prompts/promptForDatasetAclMode.js +27 -0
  41. package/dist/prompts/promptForDatasetAclMode.js.map +1 -0
  42. package/dist/prompts/promptForDatasetName.d.ts +1 -1
  43. package/dist/prompts/promptForDatasetName.js +4 -1
  44. package/dist/prompts/promptForDatasetName.js.map +1 -1
  45. package/dist/services/organizations.d.ts +3 -1
  46. package/dist/services/organizations.js +2 -1
  47. package/dist/services/organizations.js.map +1 -1
  48. package/dist/services/user.d.ts +5 -0
  49. package/dist/services/user.js +12 -1
  50. package/dist/services/user.js.map +1 -1
  51. package/dist/services/userApplications.d.ts +3 -1
  52. package/dist/services/userApplications.js +5 -1
  53. package/dist/services/userApplications.js.map +1 -1
  54. package/oclif.manifest.json +113 -113
  55. package/package.json +16 -12
  56. package/templates/app-quickstart/src/App.css +20 -0
  57. package/templates/app-quickstart/src/App.tsx +25 -0
  58. package/templates/app-quickstart/src/ExampleComponent.css +90 -0
  59. package/templates/app-quickstart/src/ExampleComponent.tsx +37 -0
  60. package/templates/app-sanity-ui/src/App.tsx +34 -0
  61. package/templates/app-sanity-ui/src/ExampleComponent.tsx +34 -0
  62. package/templates/app-sanity-ui/src/SanityUI.tsx +23 -0
  63. package/templates/blog/README.md +11 -0
  64. package/templates/blog/schemaTypes/author.js +50 -0
  65. package/templates/blog/schemaTypes/blockContent.js +67 -0
  66. package/templates/blog/schemaTypes/category.js +19 -0
  67. package/templates/blog/schemaTypes/index.js +6 -0
  68. package/templates/blog/schemaTypes/post.js +65 -0
  69. package/templates/blog/static/.gitkeep +1 -0
  70. package/templates/clean/README.md +9 -0
  71. package/templates/clean/schemaTypes/index.js +1 -0
  72. package/templates/clean/static/.gitkeep +1 -0
  73. package/templates/ecommerce/README.md +11 -0
  74. package/templates/ecommerce/plugins/.gitkeep +1 -0
  75. package/templates/ecommerce/plugins/barcode-input/BarcodeInput.js +62 -0
  76. package/templates/ecommerce/plugins/barcode-input/index.js +9 -0
  77. package/templates/ecommerce/plugins/barcode-input/schemaType.js +60 -0
  78. package/templates/ecommerce/schemaTypes/blockContent.js +67 -0
  79. package/templates/ecommerce/schemaTypes/category.js +39 -0
  80. package/templates/ecommerce/schemaTypes/index.js +23 -0
  81. package/templates/ecommerce/schemaTypes/locale/localeBlockContent.js +19 -0
  82. package/templates/ecommerce/schemaTypes/locale/localeString.js +19 -0
  83. package/templates/ecommerce/schemaTypes/locale/localeText.js +19 -0
  84. package/templates/ecommerce/schemaTypes/locale/supportedLanguages.js +5 -0
  85. package/templates/ecommerce/schemaTypes/product.js +83 -0
  86. package/templates/ecommerce/schemaTypes/productVariant.js +52 -0
  87. package/templates/ecommerce/schemaTypes/vendor.js +39 -0
  88. package/templates/ecommerce/static/.gitkeep +1 -0
  89. package/templates/get-started/README.md +9 -0
  90. package/templates/get-started/plugins/.gitkeep +1 -0
  91. package/templates/get-started/plugins/sanity-plugin-tutorial/CustomDefaultLayout.tsx +16 -0
  92. package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +104 -0
  93. package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +11 -0
  94. package/templates/get-started/schemaTypes/index.ts +1 -0
  95. package/templates/get-started/static/.gitkeep +1 -0
  96. package/templates/moviedb/README.md +10 -0
  97. package/templates/moviedb/schemaTypes/blockContent.js +67 -0
  98. package/templates/moviedb/schemaTypes/castMember.js +37 -0
  99. package/templates/moviedb/schemaTypes/crewMember.js +52 -0
  100. package/templates/moviedb/schemaTypes/index.js +22 -0
  101. package/templates/moviedb/schemaTypes/movie.js +85 -0
  102. package/templates/moviedb/schemaTypes/person.js +37 -0
  103. package/templates/moviedb/schemaTypes/plotSummaries.js +20 -0
  104. package/templates/moviedb/schemaTypes/plotSummary.js +24 -0
  105. package/templates/moviedb/schemaTypes/screening.js +81 -0
  106. package/templates/moviedb/static/.gitkeep +1 -0
  107. package/templates/quickstart/README.md +9 -0
  108. package/templates/quickstart/schemaTypes/index.js +1 -0
  109. package/templates/quickstart/static/.gitkeep +1 -0
  110. package/templates/shared/gitignore.txt +29 -0
  111. package/templates/shared/tsconfig.json +17 -0
  112. package/templates/shopify/README.md +85 -0
  113. package/templates/shopify/components/hotspots/ProductTooltip.tsx +38 -0
  114. package/templates/shopify/components/icons/Shopify.tsx +20 -0
  115. package/templates/shopify/components/inputs/CollectionHidden.tsx +23 -0
  116. package/templates/shopify/components/inputs/PlaceholderString.tsx +20 -0
  117. package/templates/shopify/components/inputs/ProductHidden.tsx +64 -0
  118. package/templates/shopify/components/inputs/ProductVariantHidden.tsx +24 -0
  119. package/templates/shopify/components/inputs/ProxyString.tsx +32 -0
  120. package/templates/shopify/components/media/ColorTheme.tsx +38 -0
  121. package/templates/shopify/components/media/ShopifyDocumentStatus.tsx +82 -0
  122. package/templates/shopify/components/studio/Navbar.tsx +29 -0
  123. package/templates/shopify/constants.ts +61 -0
  124. package/templates/shopify/docs/features.md +158 -0
  125. package/templates/shopify/plugins/customDocumentActions/index.ts +55 -0
  126. package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +144 -0
  127. package/templates/shopify/plugins/customDocumentActions/shopifyLink.ts +39 -0
  128. package/templates/shopify/plugins/customDocumentActions/types.ts +14 -0
  129. package/templates/shopify/schemaTypes/documents/collection.tsx +142 -0
  130. package/templates/shopify/schemaTypes/documents/colorTheme.tsx +44 -0
  131. package/templates/shopify/schemaTypes/documents/page.ts +70 -0
  132. package/templates/shopify/schemaTypes/documents/product.tsx +132 -0
  133. package/templates/shopify/schemaTypes/documents/productVariant.tsx +67 -0
  134. package/templates/shopify/schemaTypes/index.ts +108 -0
  135. package/templates/shopify/schemaTypes/objects/collection/collectionGroupType.ts +27 -0
  136. package/templates/shopify/schemaTypes/objects/collection/collectionLinksType.ts +16 -0
  137. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +48 -0
  138. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorType.tsx +50 -0
  139. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeObjectType.ts +40 -0
  140. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeType.ts +49 -0
  141. package/templates/shopify/schemaTypes/objects/global/footerType.ts +22 -0
  142. package/templates/shopify/schemaTypes/objects/global/menuLinksType.ts +21 -0
  143. package/templates/shopify/schemaTypes/objects/global/menuType.ts +17 -0
  144. package/templates/shopify/schemaTypes/objects/global/notFoundPageType.ts +37 -0
  145. package/templates/shopify/schemaTypes/objects/hotspot/imageWithProductHotspotsType.ts +48 -0
  146. package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +17 -0
  147. package/templates/shopify/schemaTypes/objects/hotspot/spotType.tsx +60 -0
  148. package/templates/shopify/schemaTypes/objects/link/linkEmailType.tsx +34 -0
  149. package/templates/shopify/schemaTypes/objects/link/linkExternalType.tsx +37 -0
  150. package/templates/shopify/schemaTypes/objects/link/linkInternalType.tsx +33 -0
  151. package/templates/shopify/schemaTypes/objects/link/linkProductType.tsx +60 -0
  152. package/templates/shopify/schemaTypes/objects/module/accordionGroupType.ts +33 -0
  153. package/templates/shopify/schemaTypes/objects/module/accordionType.ts +28 -0
  154. package/templates/shopify/schemaTypes/objects/module/callToActionType.tsx +85 -0
  155. package/templates/shopify/schemaTypes/objects/module/calloutType.ts +38 -0
  156. package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +47 -0
  157. package/templates/shopify/schemaTypes/objects/module/gridItemType.ts +41 -0
  158. package/templates/shopify/schemaTypes/objects/module/gridType.ts +28 -0
  159. package/templates/shopify/schemaTypes/objects/module/heroType.tsx +40 -0
  160. package/templates/shopify/schemaTypes/objects/module/imageCallToActionType.tsx +19 -0
  161. package/templates/shopify/schemaTypes/objects/module/imageFeatureType.ts +80 -0
  162. package/templates/shopify/schemaTypes/objects/module/imageFeaturesType.tsx +51 -0
  163. package/templates/shopify/schemaTypes/objects/module/instagramType.ts +35 -0
  164. package/templates/shopify/schemaTypes/objects/module/productFeaturesType.tsx +50 -0
  165. package/templates/shopify/schemaTypes/objects/module/productReferenceType.tsx +42 -0
  166. package/templates/shopify/schemaTypes/objects/seoType.ts +31 -0
  167. package/templates/shopify/schemaTypes/objects/shopify/collectionRuleType.tsx +37 -0
  168. package/templates/shopify/schemaTypes/objects/shopify/inventoryType.ts +25 -0
  169. package/templates/shopify/schemaTypes/objects/shopify/optionType.tsx +31 -0
  170. package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +11 -0
  171. package/templates/shopify/schemaTypes/objects/shopify/priceRangeType.ts +20 -0
  172. package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +142 -0
  173. package/templates/shopify/schemaTypes/objects/shopify/proxyStringType.ts +12 -0
  174. package/templates/shopify/schemaTypes/objects/shopify/shopType.ts +15 -0
  175. package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +84 -0
  176. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +131 -0
  177. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductVariantType.ts +121 -0
  178. package/templates/shopify/schemaTypes/portableText/portableTextSimpleType.tsx +45 -0
  179. package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +52 -0
  180. package/templates/shopify/schemaTypes/singletons/homeType.ts +49 -0
  181. package/templates/shopify/schemaTypes/singletons/settingsType.ts +96 -0
  182. package/templates/shopify/static/.gitkeep +1 -0
  183. package/templates/shopify/structure/collectionStructure.ts +9 -0
  184. package/templates/shopify/structure/colorThemeStructure.ts +9 -0
  185. package/templates/shopify/structure/homeStructure.ts +9 -0
  186. package/templates/shopify/structure/index.ts +57 -0
  187. package/templates/shopify/structure/pageStructure.ts +11 -0
  188. package/templates/shopify/structure/productStructure.ts +51 -0
  189. package/templates/shopify/structure/settingStructure.ts +9 -0
  190. package/templates/shopify/utils/blocksToText.ts +20 -0
  191. package/templates/shopify/utils/defineStructure.ts +11 -0
  192. package/templates/shopify/utils/getPriceRange.ts +24 -0
  193. package/templates/shopify/utils/shopifyUrls.ts +22 -0
  194. package/templates/shopify/utils/validateSlug.ts +18 -0
  195. package/templates/shopify-online-storefront/README.md +54 -0
  196. package/templates/shopify-online-storefront/components/icons/Shopify.tsx +22 -0
  197. package/templates/shopify-online-storefront/components/inputs/CollectionHidden.tsx +23 -0
  198. package/templates/shopify-online-storefront/components/inputs/PlaceholderString.tsx +25 -0
  199. package/templates/shopify-online-storefront/components/inputs/ProductHidden.tsx +66 -0
  200. package/templates/shopify-online-storefront/components/inputs/ProductVariantHidden.tsx +25 -0
  201. package/templates/shopify-online-storefront/components/inputs/ProxyString.tsx +38 -0
  202. package/templates/shopify-online-storefront/components/media/ShopifyDocumentStatus.tsx +83 -0
  203. package/templates/shopify-online-storefront/constants.ts +18 -0
  204. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +45 -0
  205. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +144 -0
  206. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyLink.ts +39 -0
  207. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/types.ts +14 -0
  208. package/templates/shopify-online-storefront/schemaTypes/blocks/blockContent.ts +32 -0
  209. package/templates/shopify-online-storefront/schemaTypes/documents/collection.tsx +83 -0
  210. package/templates/shopify-online-storefront/schemaTypes/documents/product.tsx +102 -0
  211. package/templates/shopify-online-storefront/schemaTypes/documents/productVariant.tsx +82 -0
  212. package/templates/shopify-online-storefront/schemaTypes/index.ts +43 -0
  213. package/templates/shopify-online-storefront/schemaTypes/objects/accordion.ts +31 -0
  214. package/templates/shopify-online-storefront/schemaTypes/objects/accordionGroup.ts +35 -0
  215. package/templates/shopify-online-storefront/schemaTypes/objects/callout.ts +40 -0
  216. package/templates/shopify-online-storefront/schemaTypes/objects/inventory.ts +30 -0
  217. package/templates/shopify-online-storefront/schemaTypes/objects/option.ts +30 -0
  218. package/templates/shopify-online-storefront/schemaTypes/objects/priceRange.ts +22 -0
  219. package/templates/shopify-online-storefront/schemaTypes/objects/proxyString.ts +11 -0
  220. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollection.ts +109 -0
  221. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollectionRule.tsx +45 -0
  222. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProduct.ts +165 -0
  223. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProductVariant.ts +151 -0
  224. package/templates/shopify-online-storefront/structure/collectionStructure.ts +9 -0
  225. package/templates/shopify-online-storefront/structure/index.ts +37 -0
  226. package/templates/shopify-online-storefront/structure/productStructure.ts +35 -0
  227. package/templates/shopify-online-storefront/utils/defineStructure.ts +11 -0
  228. package/templates/shopify-online-storefront/utils/getPriceRange.ts +24 -0
  229. package/templates/shopify-online-storefront/utils/shopifyUrls.ts +22 -0
  230. package/dist/actions/build/__tests__/buildApp.test.js +0 -367
  231. package/dist/actions/build/__tests__/buildApp.test.js.map +0 -1
  232. package/dist/actions/build/__tests__/buildStudio.test.js +0 -561
  233. package/dist/actions/build/__tests__/buildStudio.test.js.map +0 -1
  234. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js +0 -233
  235. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js.map +0 -1
  236. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js +0 -414
  237. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js.map +0 -1
  238. package/dist/actions/build/__tests__/determineBasePath.test.js +0 -24
  239. package/dist/actions/build/__tests__/determineBasePath.test.js.map +0 -1
  240. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js +0 -109
  241. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js.map +0 -1
  242. package/dist/actions/build/__tests__/getViteConfig.test.js +0 -493
  243. package/dist/actions/build/__tests__/getViteConfig.test.js.map +0 -1
  244. package/dist/actions/build/__tests__/renderDocument.test.js +0 -278
  245. package/dist/actions/build/__tests__/renderDocument.test.js.map +0 -1
  246. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js +0 -153
  247. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js.map +0 -1
  248. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js +0 -657
  249. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js.map +0 -1
  250. package/dist/actions/dataset/__tests__/validateDatasetName.test.js +0 -182
  251. package/dist/actions/dataset/__tests__/validateDatasetName.test.js.map +0 -1
  252. package/dist/actions/deploy/__tests__/checkDir.test.js +0 -120
  253. package/dist/actions/deploy/__tests__/checkDir.test.js.map +0 -1
  254. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js +0 -16
  255. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js.map +0 -1
  256. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js +0 -124
  257. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js.map +0 -1
  258. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js +0 -274
  259. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js.map +0 -1
  260. package/dist/actions/media/__tests__/importMedia.test.js +0 -182
  261. package/dist/actions/media/__tests__/importMedia.test.js.map +0 -1
  262. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js +0 -174
  263. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js.map +0 -1
  264. package/dist/actions/schema/__tests__/validateAction.test.js +0 -281
  265. package/dist/actions/schema/__tests__/validateAction.test.js.map +0 -1
  266. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js +0 -27
  267. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js.map +0 -1
  268. package/dist/actions/users/__tests__/validateEmail.test.js +0 -16
  269. package/dist/actions/users/__tests__/validateEmail.test.js.map +0 -1
  270. package/dist/commands/__tests__/blueprints.test.js +0 -54
  271. package/dist/commands/__tests__/blueprints.test.js.map +0 -1
  272. package/dist/commands/__tests__/build.test.js +0 -132
  273. package/dist/commands/__tests__/build.test.js.map +0 -1
  274. package/dist/commands/__tests__/codemod.test.js +0 -271
  275. package/dist/commands/__tests__/codemod.test.js.map +0 -1
  276. package/dist/commands/__tests__/debug.test.js +0 -590
  277. package/dist/commands/__tests__/debug.test.js.map +0 -1
  278. package/dist/commands/__tests__/deploy.test.js +0 -1945
  279. package/dist/commands/__tests__/deploy.test.js.map +0 -1
  280. package/dist/commands/__tests__/dev.test.js +0 -453
  281. package/dist/commands/__tests__/dev.test.js.map +0 -1
  282. package/dist/commands/__tests__/exec.test.js +0 -207
  283. package/dist/commands/__tests__/exec.test.js.map +0 -1
  284. package/dist/commands/__tests__/init/init.authentication.test.js +0 -73
  285. package/dist/commands/__tests__/init/init.authentication.test.js.map +0 -1
  286. package/dist/commands/__tests__/init/init.create-new-project.test.js +0 -195
  287. package/dist/commands/__tests__/init/init.create-new-project.test.js.map +0 -1
  288. package/dist/commands/__tests__/init/init.plan.test.js +0 -279
  289. package/dist/commands/__tests__/init/init.plan.test.js.map +0 -1
  290. package/dist/commands/__tests__/init/init.setup.test.js +0 -335
  291. package/dist/commands/__tests__/init/init.setup.test.js.map +0 -1
  292. package/dist/commands/__tests__/install.test.js +0 -282
  293. package/dist/commands/__tests__/install.test.js.map +0 -1
  294. package/dist/commands/__tests__/learn.test.js +0 -29
  295. package/dist/commands/__tests__/learn.test.js.map +0 -1
  296. package/dist/commands/__tests__/logout.test.js +0 -91
  297. package/dist/commands/__tests__/logout.test.js.map +0 -1
  298. package/dist/commands/__tests__/manage.test.js +0 -110
  299. package/dist/commands/__tests__/manage.test.js.map +0 -1
  300. package/dist/commands/__tests__/migration.test.js +0 -119
  301. package/dist/commands/__tests__/migration.test.js.map +0 -1
  302. package/dist/commands/__tests__/preview.test.js +0 -261
  303. package/dist/commands/__tests__/preview.test.js.map +0 -1
  304. package/dist/commands/__tests__/start.test.js +0 -253
  305. package/dist/commands/__tests__/start.test.js.map +0 -1
  306. package/dist/commands/__tests__/undeploy.test.js +0 -382
  307. package/dist/commands/__tests__/undeploy.test.js.map +0 -1
  308. package/dist/commands/__tests__/versions.test.js +0 -142
  309. package/dist/commands/__tests__/versions.test.js.map +0 -1
  310. package/dist/commands/backup/__tests__/disable.test.js +0 -204
  311. package/dist/commands/backup/__tests__/disable.test.js.map +0 -1
  312. package/dist/commands/backup/__tests__/download.test.js +0 -768
  313. package/dist/commands/backup/__tests__/download.test.js.map +0 -1
  314. package/dist/commands/backup/__tests__/enable.test.js +0 -286
  315. package/dist/commands/backup/__tests__/enable.test.js.map +0 -1
  316. package/dist/commands/backup/__tests__/list.test.js +0 -330
  317. package/dist/commands/backup/__tests__/list.test.js.map +0 -1
  318. package/dist/commands/cors/__tests__/add.test.js +0 -376
  319. package/dist/commands/cors/__tests__/add.test.js.map +0 -1
  320. package/dist/commands/cors/__tests__/delete.test.js +0 -308
  321. package/dist/commands/cors/__tests__/delete.test.js.map +0 -1
  322. package/dist/commands/cors/__tests__/list.test.js +0 -241
  323. package/dist/commands/cors/__tests__/list.test.js.map +0 -1
  324. package/dist/commands/dataset/__tests__/copy.test.js +0 -628
  325. package/dist/commands/dataset/__tests__/copy.test.js.map +0 -1
  326. package/dist/commands/dataset/__tests__/create.test.js +0 -342
  327. package/dist/commands/dataset/__tests__/create.test.js.map +0 -1
  328. package/dist/commands/dataset/__tests__/delete.test.js +0 -231
  329. package/dist/commands/dataset/__tests__/delete.test.js.map +0 -1
  330. package/dist/commands/dataset/__tests__/export.test.js +0 -601
  331. package/dist/commands/dataset/__tests__/export.test.js.map +0 -1
  332. package/dist/commands/dataset/__tests__/import.test.js +0 -53
  333. package/dist/commands/dataset/__tests__/import.test.js.map +0 -1
  334. package/dist/commands/dataset/__tests__/list.test.js +0 -216
  335. package/dist/commands/dataset/__tests__/list.test.js.map +0 -1
  336. package/dist/commands/dataset/alias/__tests__/create.test.js +0 -339
  337. package/dist/commands/dataset/alias/__tests__/create.test.js.map +0 -1
  338. package/dist/commands/dataset/alias/__tests__/delete.test.js +0 -247
  339. package/dist/commands/dataset/alias/__tests__/delete.test.js.map +0 -1
  340. package/dist/commands/dataset/alias/__tests__/link.test.js +0 -376
  341. package/dist/commands/dataset/alias/__tests__/link.test.js.map +0 -1
  342. package/dist/commands/dataset/alias/__tests__/unlink.test.js +0 -313
  343. package/dist/commands/dataset/alias/__tests__/unlink.test.js.map +0 -1
  344. package/dist/commands/dataset/visibility/__tests__/get.test.js +0 -128
  345. package/dist/commands/dataset/visibility/__tests__/get.test.js.map +0 -1
  346. package/dist/commands/dataset/visibility/__tests__/set.test.js +0 -198
  347. package/dist/commands/dataset/visibility/__tests__/set.test.js.map +0 -1
  348. package/dist/commands/docs/__tests__/browse.test.js +0 -29
  349. package/dist/commands/docs/__tests__/browse.test.js.map +0 -1
  350. package/dist/commands/docs/__tests__/read.test.js +0 -78
  351. package/dist/commands/docs/__tests__/read.test.js.map +0 -1
  352. package/dist/commands/docs/__tests__/search.test.js +0 -255
  353. package/dist/commands/docs/__tests__/search.test.js.map +0 -1
  354. package/dist/commands/documents/__tests__/create.test.js +0 -1030
  355. package/dist/commands/documents/__tests__/create.test.js.map +0 -1
  356. package/dist/commands/documents/__tests__/delete.test.js +0 -300
  357. package/dist/commands/documents/__tests__/delete.test.js.map +0 -1
  358. package/dist/commands/documents/__tests__/get.test.js +0 -182
  359. package/dist/commands/documents/__tests__/get.test.js.map +0 -1
  360. package/dist/commands/documents/__tests__/query.test.js +0 -300
  361. package/dist/commands/documents/__tests__/query.test.js.map +0 -1
  362. package/dist/commands/documents/__tests__/validate.test.js +0 -249
  363. package/dist/commands/documents/__tests__/validate.test.js.map +0 -1
  364. package/dist/commands/graphql/__tests__/list.test.js +0 -240
  365. package/dist/commands/graphql/__tests__/list.test.js.map +0 -1
  366. package/dist/commands/graphql/__tests__/undeploy.test.js +0 -410
  367. package/dist/commands/graphql/__tests__/undeploy.test.js.map +0 -1
  368. package/dist/commands/hook/__tests__/attempt.test.js +0 -275
  369. package/dist/commands/hook/__tests__/attempt.test.js.map +0 -1
  370. package/dist/commands/hook/__tests__/create.test.js +0 -119
  371. package/dist/commands/hook/__tests__/create.test.js.map +0 -1
  372. package/dist/commands/hook/__tests__/delete.test.js +0 -233
  373. package/dist/commands/hook/__tests__/delete.test.js.map +0 -1
  374. package/dist/commands/hook/__tests__/list.test.js +0 -145
  375. package/dist/commands/hook/__tests__/list.test.js.map +0 -1
  376. package/dist/commands/hook/__tests__/logs.test.js +0 -798
  377. package/dist/commands/hook/__tests__/logs.test.js.map +0 -1
  378. package/dist/commands/manifest/__tests__/extract.test.js +0 -132
  379. package/dist/commands/manifest/__tests__/extract.test.js.map +0 -1
  380. package/dist/commands/mcp/__tests__/configure.test.js +0 -397
  381. package/dist/commands/mcp/__tests__/configure.test.js.map +0 -1
  382. package/dist/commands/media/__tests__/create-aspect.test.js +0 -173
  383. package/dist/commands/media/__tests__/create-aspect.test.js.map +0 -1
  384. package/dist/commands/media/__tests__/delete-aspect.test.js +0 -342
  385. package/dist/commands/media/__tests__/delete-aspect.test.js.map +0 -1
  386. package/dist/commands/media/__tests__/deploy-aspect.test.js +0 -619
  387. package/dist/commands/media/__tests__/deploy-aspect.test.js.map +0 -1
  388. package/dist/commands/media/__tests__/export.test.js +0 -697
  389. package/dist/commands/media/__tests__/export.test.js.map +0 -1
  390. package/dist/commands/media/__tests__/import.test.js +0 -347
  391. package/dist/commands/media/__tests__/import.test.js.map +0 -1
  392. package/dist/commands/openapi/__tests__/get.test.js +0 -149
  393. package/dist/commands/openapi/__tests__/get.test.js.map +0 -1
  394. package/dist/commands/openapi/__tests__/list.test.js +0 -113
  395. package/dist/commands/openapi/__tests__/list.test.js.map +0 -1
  396. package/dist/commands/projects/__tests__/list.test.js +0 -154
  397. package/dist/commands/projects/__tests__/list.test.js.map +0 -1
  398. package/dist/commands/schema/__tests__/delete.test.js +0 -454
  399. package/dist/commands/schema/__tests__/delete.test.js.map +0 -1
  400. package/dist/commands/schema/__tests__/deploy.test.js +0 -348
  401. package/dist/commands/schema/__tests__/deploy.test.js.map +0 -1
  402. package/dist/commands/schema/__tests__/extract.test.js +0 -121
  403. package/dist/commands/schema/__tests__/extract.test.js.map +0 -1
  404. package/dist/commands/schema/__tests__/list.test.js +0 -399
  405. package/dist/commands/schema/__tests__/list.test.js.map +0 -1
  406. package/dist/commands/schema/__tests__/validate.test.js +0 -121
  407. package/dist/commands/schema/__tests__/validate.test.js.map +0 -1
  408. package/dist/commands/telemetry/__tests__/disable.test.js +0 -147
  409. package/dist/commands/telemetry/__tests__/disable.test.js.map +0 -1
  410. package/dist/commands/telemetry/__tests__/enable.test.js +0 -133
  411. package/dist/commands/telemetry/__tests__/enable.test.js.map +0 -1
  412. package/dist/commands/telemetry/__tests__/status.test.js +0 -155
  413. package/dist/commands/telemetry/__tests__/status.test.js.map +0 -1
  414. package/dist/commands/tokens/__tests__/add.test.js +0 -435
  415. package/dist/commands/tokens/__tests__/add.test.js.map +0 -1
  416. package/dist/commands/tokens/__tests__/delete.test.js +0 -405
  417. package/dist/commands/tokens/__tests__/delete.test.js.map +0 -1
  418. package/dist/commands/tokens/__tests__/list.test.js +0 -395
  419. package/dist/commands/tokens/__tests__/list.test.js.map +0 -1
  420. package/dist/commands/users/__tests__/invite.test.js +0 -362
  421. package/dist/commands/users/__tests__/invite.test.js.map +0 -1
  422. package/dist/commands/users/__tests__/list.test.js +0 -407
  423. package/dist/commands/users/__tests__/list.test.js.map +0 -1
  424. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js +0 -77
  425. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js.map +0 -1
  426. package/dist/services/__tests__/datasetAliases.test.js +0 -131
  427. package/dist/services/__tests__/datasetAliases.test.js.map +0 -1
  428. package/dist/services/__tests__/datasets.test.js +0 -436
  429. package/dist/services/__tests__/datasets.test.js.map +0 -1
  430. package/dist/services/__tests__/graphql.test.js +0 -43
  431. package/dist/services/__tests__/graphql.test.js.map +0 -1
  432. package/dist/services/__tests__/mediaLibraries.test.js +0 -88
  433. package/dist/services/__tests__/mediaLibraries.test.js.map +0 -1
  434. package/dist/services/__tests__/projects.test.js +0 -41
  435. package/dist/services/__tests__/projects.test.js.map +0 -1
  436. package/dist/services/__tests__/userApplications.test.js +0 -113
  437. package/dist/services/__tests__/userApplications.test.js.map +0 -1
  438. package/dist/util/__tests__/appId.test.js +0 -31
  439. package/dist/util/__tests__/appId.test.js.map +0 -1
  440. package/dist/util/__tests__/cliClient.test.js +0 -184
  441. package/dist/util/__tests__/cliClient.test.js.map +0 -1
  442. package/dist/util/__tests__/compareDependencyVersions.test.js +0 -426
  443. package/dist/util/__tests__/compareDependencyVersions.test.js.map +0 -1
  444. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js +0 -74
  445. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js.map +0 -1
  446. package/dist/util/__tests__/findNdjsonEntry.test.js +0 -54
  447. package/dist/util/__tests__/findNdjsonEntry.test.js.map +0 -1
  448. package/dist/util/__tests__/getCliVersion.test.js +0 -28
  449. package/dist/util/__tests__/getCliVersion.test.js.map +0 -1
  450. package/dist/util/__tests__/getLocalPackageVersion.test.js +0 -84
  451. package/dist/util/__tests__/getLocalPackageVersion.test.js.map +0 -1
  452. package/dist/util/__tests__/getWorkspace.test.js +0 -37
  453. package/dist/util/__tests__/getWorkspace.test.js.map +0 -1
  454. package/dist/util/__tests__/readPackageJson.test.js +0 -69
  455. package/dist/util/__tests__/readPackageJson.test.js.map +0 -1
  456. package/dist/util/__tests__/warnAboutMissingAppId.test.js +0 -28
  457. package/dist/util/__tests__/warnAboutMissingAppId.test.js.map +0 -1
  458. package/dist/util/packageManager/__tests__/installPackages.test.js +0 -388
  459. package/dist/util/packageManager/__tests__/installPackages.test.js.map +0 -1
  460. package/dist/util/validation/ __tests__/validateDocuments.test.js +0 -274
  461. package/dist/util/validation/ __tests__/validateDocuments.test.js.map +0 -1
@@ -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
@@ -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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"}