@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,247 +0,0 @@
1
- import { runCommand } from '@oclif/test';
2
- import { input } from '@sanity/cli-core/ux';
3
- import { mockApi, testCommand } from '@sanity/cli-test';
4
- import nock from 'nock';
5
- import { afterEach, describe, expect, test, vi } from 'vitest';
6
- import { DATASET_ALIASES_API_VERSION } from '../../../../services/datasetAliases.js';
7
- import { NO_PROJECT_ID } from '../../../../util/errorMessages.js';
8
- import { DeleteAliasCommand } from '../delete.js';
9
- vi.mock('@sanity/cli-core/ux', async ()=>{
10
- const actual = await vi.importActual('@sanity/cli-core/ux');
11
- return {
12
- ...actual,
13
- input: vi.fn()
14
- };
15
- });
16
- const testProjectId = 'test-project';
17
- const defaultMocks = {
18
- cliConfig: {
19
- api: {
20
- projectId: testProjectId
21
- }
22
- },
23
- projectRoot: {
24
- directory: '/test/path',
25
- path: '/test/path/sanity.config.ts',
26
- type: 'studio'
27
- },
28
- token: 'test-token'
29
- };
30
- const mockInput = vi.mocked(input);
31
- describe('#dataset:alias:delete', ()=>{
32
- afterEach(()=>{
33
- vi.clearAllMocks();
34
- const pending = nock.pendingMocks();
35
- nock.cleanAll();
36
- expect(pending, 'pending mocks').toEqual([]);
37
- });
38
- test('help works correctly', async ()=>{
39
- const { stdout } = await runCommand([
40
- 'dataset alias delete',
41
- '--help'
42
- ]);
43
- expect(stdout).toMatchInlineSnapshot(`
44
- "Delete a dataset alias within your project
45
-
46
- USAGE
47
- $ sanity dataset alias delete ALIASNAME [--force]
48
-
49
- ARGUMENTS
50
- ALIASNAME Dataset alias name to delete
51
-
52
- FLAGS
53
- --force Skip confirmation prompt and delete immediately
54
-
55
- DESCRIPTION
56
- Delete a dataset alias within your project
57
-
58
- EXAMPLES
59
- Delete alias named "conference" with confirmation prompt
60
-
61
- $ sanity dataset alias delete conference
62
-
63
- Delete alias with explicit ~ prefix
64
-
65
- $ sanity dataset alias delete ~conference
66
-
67
- Delete alias named "conference" without confirmation prompt
68
-
69
- $ sanity dataset alias delete conference --force
70
-
71
- "
72
- `);
73
- });
74
- test.each([
75
- [
76
- 'test-alias',
77
- 'without ~ prefix'
78
- ],
79
- [
80
- '~test-alias',
81
- 'with ~ prefix'
82
- ]
83
- ])('deletes alias with confirmation: %s (%s)', async (aliasInput)=>{
84
- mockApi({
85
- apiHost: 'https://test-project.api.sanity.io',
86
- apiVersion: DATASET_ALIASES_API_VERSION,
87
- uri: '/aliases'
88
- }).reply(200, [
89
- {
90
- datasetName: 'production',
91
- name: 'test-alias'
92
- }
93
- ]);
94
- mockApi({
95
- apiHost: 'https://test-project.api.sanity.io',
96
- apiVersion: DATASET_ALIASES_API_VERSION,
97
- method: 'delete',
98
- uri: '/aliases/test-alias'
99
- }).reply(200, {
100
- deleted: true
101
- });
102
- mockInput.mockResolvedValueOnce('~test-alias');
103
- const { stdout } = await testCommand(DeleteAliasCommand, [
104
- aliasInput
105
- ], {
106
- mocks: defaultMocks
107
- });
108
- expect(stdout).toContain('Dataset alias deleted successfully');
109
- expect(mockInput).toHaveBeenCalledWith({
110
- message: expect.stringContaining('This dataset alias is linked to production'),
111
- validate: expect.any(Function)
112
- });
113
- });
114
- test('deletes alias with force flag (skips confirmation)', async ()=>{
115
- mockApi({
116
- apiHost: 'https://test-project.api.sanity.io',
117
- apiVersion: DATASET_ALIASES_API_VERSION,
118
- uri: '/aliases'
119
- }).reply(200, [
120
- {
121
- datasetName: 'production',
122
- name: 'test-alias'
123
- }
124
- ]);
125
- mockApi({
126
- apiHost: 'https://test-project.api.sanity.io',
127
- apiVersion: DATASET_ALIASES_API_VERSION,
128
- method: 'delete',
129
- uri: '/aliases/test-alias'
130
- }).reply(200, {
131
- deleted: true
132
- });
133
- const { stderr, stdout } = await testCommand(DeleteAliasCommand, [
134
- 'test-alias',
135
- '--force'
136
- ], {
137
- mocks: defaultMocks
138
- });
139
- expect(stderr).toContain("'--force' used: skipping confirmation");
140
- expect(stdout).toContain('Dataset alias deleted successfully');
141
- expect(mockInput).not.toHaveBeenCalled();
142
- });
143
- test('deletes unlinked alias with confirmation (different prompt message)', async ()=>{
144
- mockApi({
145
- apiHost: 'https://test-project.api.sanity.io',
146
- apiVersion: DATASET_ALIASES_API_VERSION,
147
- uri: '/aliases'
148
- }).reply(200, [
149
- {
150
- datasetName: null,
151
- name: 'test-alias'
152
- }
153
- ]);
154
- mockApi({
155
- apiHost: 'https://test-project.api.sanity.io',
156
- apiVersion: DATASET_ALIASES_API_VERSION,
157
- method: 'delete',
158
- uri: '/aliases/test-alias'
159
- }).reply(200, {
160
- deleted: true
161
- });
162
- mockInput.mockResolvedValueOnce('~test-alias');
163
- const { stdout } = await testCommand(DeleteAliasCommand, [
164
- 'test-alias'
165
- ], {
166
- mocks: defaultMocks
167
- });
168
- expect(stdout).toContain('Dataset alias deleted successfully');
169
- expect(mockInput).toHaveBeenCalledWith({
170
- message: expect.stringContaining('Are you ABSOLUTELY sure you want to delete'),
171
- validate: expect.any(Function)
172
- });
173
- expect(mockInput.mock.calls[0][0].message).not.toContain('linked to');
174
- });
175
- test('fails when alias does not exist', async ()=>{
176
- mockApi({
177
- apiHost: 'https://test-project.api.sanity.io',
178
- apiVersion: DATASET_ALIASES_API_VERSION,
179
- uri: '/aliases'
180
- }).reply(200, [
181
- {
182
- datasetName: 'production',
183
- name: 'other-alias'
184
- }
185
- ]);
186
- const { error } = await testCommand(DeleteAliasCommand, [
187
- 'nonexistent'
188
- ], {
189
- mocks: defaultMocks
190
- });
191
- expect(error?.message).toContain('Dataset alias "~nonexistent" does not exist');
192
- expect(error?.oclif?.exit).toBe(1);
193
- });
194
- test('fails with invalid alias name', async ()=>{
195
- const { error } = await testCommand(DeleteAliasCommand, [
196
- 'a'
197
- ], {
198
- mocks: defaultMocks
199
- });
200
- expect(error?.message).toContain('Alias name must be at least two characters long');
201
- expect(error?.oclif?.exit).toBe(1);
202
- });
203
- test('fails when no project ID available', async ()=>{
204
- const { error } = await testCommand(DeleteAliasCommand, [
205
- 'test-alias'
206
- ], {
207
- mocks: {
208
- ...defaultMocks,
209
- cliConfig: {
210
- api: {}
211
- }
212
- }
213
- });
214
- expect(error?.message).toContain(NO_PROJECT_ID);
215
- expect(error?.oclif?.exit).toBe(1);
216
- });
217
- test('handles API errors gracefully', async ()=>{
218
- mockApi({
219
- apiHost: 'https://test-project.api.sanity.io',
220
- apiVersion: DATASET_ALIASES_API_VERSION,
221
- uri: '/aliases'
222
- }).reply(200, [
223
- {
224
- datasetName: 'production',
225
- name: 'test-alias'
226
- }
227
- ]);
228
- mockApi({
229
- apiHost: 'https://test-project.api.sanity.io',
230
- apiVersion: DATASET_ALIASES_API_VERSION,
231
- method: 'delete',
232
- uri: '/aliases/test-alias'
233
- }).reply(500, {
234
- message: 'API Error: Network timeout'
235
- });
236
- mockInput.mockResolvedValueOnce('~test-alias');
237
- const { error } = await testCommand(DeleteAliasCommand, [
238
- 'test-alias'
239
- ], {
240
- mocks: defaultMocks
241
- });
242
- expect(error?.message).toContain('Dataset alias deletion failed: API Error: Network timeout');
243
- expect(error?.oclif?.exit).toBe(1);
244
- });
245
- });
246
-
247
- //# sourceMappingURL=delete.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/commands/dataset/alias/__tests__/delete.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {input} from '@sanity/cli-core/ux'\nimport {mockApi, testCommand} from '@sanity/cli-test'\nimport nock from 'nock'\nimport {afterEach, describe, expect, test, vi} from 'vitest'\n\nimport {DATASET_ALIASES_API_VERSION} from '../../../../services/datasetAliases.js'\nimport {NO_PROJECT_ID} from '../../../../util/errorMessages.js'\nimport {DeleteAliasCommand} from '../delete.js'\n\nvi.mock('@sanity/cli-core/ux', async () => {\n const actual = await vi.importActual<typeof import('@sanity/cli-core/ux')>('@sanity/cli-core/ux')\n return {\n ...actual,\n input: vi.fn(),\n }\n})\n\nconst testProjectId = 'test-project'\n\nconst defaultMocks = {\n cliConfig: {api: {projectId: testProjectId}},\n projectRoot: {\n directory: '/test/path',\n path: '/test/path/sanity.config.ts',\n type: 'studio' as const,\n },\n token: 'test-token',\n}\n\nconst mockInput = vi.mocked(input)\n\ndescribe('#dataset:alias:delete', () => {\n afterEach(() => {\n vi.clearAllMocks()\n const pending = nock.pendingMocks()\n nock.cleanAll()\n expect(pending, 'pending mocks').toEqual([])\n })\n\n test('help works correctly', async () => {\n const {stdout} = await runCommand(['dataset alias delete', '--help'])\n expect(stdout).toMatchInlineSnapshot(`\n \"Delete a dataset alias within your project\n\n USAGE\n $ sanity dataset alias delete ALIASNAME [--force]\n\n ARGUMENTS\n ALIASNAME Dataset alias name to delete\n\n FLAGS\n --force Skip confirmation prompt and delete immediately\n\n DESCRIPTION\n Delete a dataset alias within your project\n\n EXAMPLES\n Delete alias named \"conference\" with confirmation prompt\n\n $ sanity dataset alias delete conference\n\n Delete alias with explicit ~ prefix\n\n $ sanity dataset alias delete ~conference\n\n Delete alias named \"conference\" without confirmation prompt\n\n $ sanity dataset alias delete conference --force\n\n \"\n `)\n })\n\n test.each([\n ['test-alias', 'without ~ prefix'],\n ['~test-alias', 'with ~ prefix'],\n ])('deletes alias with confirmation: %s (%s)', async (aliasInput) => {\n mockApi({\n apiHost: 'https://test-project.api.sanity.io',\n apiVersion: DATASET_ALIASES_API_VERSION,\n uri: '/aliases',\n }).reply(200, [{datasetName: 'production', name: 'test-alias'}])\n\n mockApi({\n apiHost: 'https://test-project.api.sanity.io',\n apiVersion: DATASET_ALIASES_API_VERSION,\n method: 'delete',\n uri: '/aliases/test-alias',\n }).reply(200, {deleted: true})\n\n mockInput.mockResolvedValueOnce('~test-alias')\n\n const {stdout} = await testCommand(DeleteAliasCommand, [aliasInput], {mocks: defaultMocks})\n\n expect(stdout).toContain('Dataset alias deleted successfully')\n expect(mockInput).toHaveBeenCalledWith({\n message: expect.stringContaining('This dataset alias is linked to production'),\n validate: expect.any(Function),\n })\n })\n\n test('deletes alias with force flag (skips confirmation)', async () => {\n mockApi({\n apiHost: 'https://test-project.api.sanity.io',\n apiVersion: DATASET_ALIASES_API_VERSION,\n uri: '/aliases',\n }).reply(200, [{datasetName: 'production', name: 'test-alias'}])\n\n mockApi({\n apiHost: 'https://test-project.api.sanity.io',\n apiVersion: DATASET_ALIASES_API_VERSION,\n method: 'delete',\n uri: '/aliases/test-alias',\n }).reply(200, {deleted: true})\n\n const {stderr, stdout} = await testCommand(DeleteAliasCommand, ['test-alias', '--force'], {\n mocks: defaultMocks,\n })\n\n expect(stderr).toContain(\"'--force' used: skipping confirmation\")\n expect(stdout).toContain('Dataset alias deleted successfully')\n expect(mockInput).not.toHaveBeenCalled()\n })\n\n test('deletes unlinked alias with confirmation (different prompt message)', async () => {\n mockApi({\n apiHost: 'https://test-project.api.sanity.io',\n apiVersion: DATASET_ALIASES_API_VERSION,\n uri: '/aliases',\n }).reply(200, [{datasetName: null, name: 'test-alias'}])\n\n mockApi({\n apiHost: 'https://test-project.api.sanity.io',\n apiVersion: DATASET_ALIASES_API_VERSION,\n method: 'delete',\n uri: '/aliases/test-alias',\n }).reply(200, {deleted: true})\n\n mockInput.mockResolvedValueOnce('~test-alias')\n\n const {stdout} = await testCommand(DeleteAliasCommand, ['test-alias'], {mocks: defaultMocks})\n\n expect(stdout).toContain('Dataset alias deleted successfully')\n expect(mockInput).toHaveBeenCalledWith({\n message: expect.stringContaining('Are you ABSOLUTELY sure you want to delete'),\n validate: expect.any(Function),\n })\n expect(mockInput.mock.calls[0][0].message).not.toContain('linked to')\n })\n\n test('fails when alias does not exist', async () => {\n mockApi({\n apiHost: 'https://test-project.api.sanity.io',\n apiVersion: DATASET_ALIASES_API_VERSION,\n uri: '/aliases',\n }).reply(200, [{datasetName: 'production', name: 'other-alias'}])\n\n const {error} = await testCommand(DeleteAliasCommand, ['nonexistent'], {mocks: defaultMocks})\n\n expect(error?.message).toContain('Dataset alias \"~nonexistent\" does not exist')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('fails with invalid alias name', async () => {\n const {error} = await testCommand(DeleteAliasCommand, ['a'], {mocks: defaultMocks})\n\n expect(error?.message).toContain('Alias name must be at least two characters long')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('fails when no project ID available', async () => {\n const {error} = await testCommand(DeleteAliasCommand, ['test-alias'], {\n mocks: {\n ...defaultMocks,\n cliConfig: {api: {}},\n },\n })\n\n expect(error?.message).toContain(NO_PROJECT_ID)\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('handles API errors gracefully', async () => {\n mockApi({\n apiHost: 'https://test-project.api.sanity.io',\n apiVersion: DATASET_ALIASES_API_VERSION,\n uri: '/aliases',\n }).reply(200, [{datasetName: 'production', name: 'test-alias'}])\n\n mockApi({\n apiHost: 'https://test-project.api.sanity.io',\n apiVersion: DATASET_ALIASES_API_VERSION,\n method: 'delete',\n uri: '/aliases/test-alias',\n }).reply(500, {message: 'API Error: Network timeout'})\n\n mockInput.mockResolvedValueOnce('~test-alias')\n\n const {error} = await testCommand(DeleteAliasCommand, ['test-alias'], {mocks: defaultMocks})\n\n expect(error?.message).toContain('Dataset alias deletion failed: API Error: Network timeout')\n expect(error?.oclif?.exit).toBe(1)\n })\n})\n"],"names":["runCommand","input","mockApi","testCommand","nock","afterEach","describe","expect","test","vi","DATASET_ALIASES_API_VERSION","NO_PROJECT_ID","DeleteAliasCommand","mock","actual","importActual","fn","testProjectId","defaultMocks","cliConfig","api","projectId","projectRoot","directory","path","type","token","mockInput","mocked","clearAllMocks","pending","pendingMocks","cleanAll","toEqual","stdout","toMatchInlineSnapshot","each","aliasInput","apiHost","apiVersion","uri","reply","datasetName","name","method","deleted","mockResolvedValueOnce","mocks","toContain","toHaveBeenCalledWith","message","stringContaining","validate","any","Function","stderr","not","toHaveBeenCalled","calls","error","oclif","exit","toBe"],"mappings":"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"}
@@ -1,376 +0,0 @@
1
- import { runCommand } from '@oclif/test';
2
- import { createTestClient, mockApi, testCommand } from '@sanity/cli-test';
3
- import nock from 'nock';
4
- import { afterEach, describe, expect, test, vi } from 'vitest';
5
- import { DATASET_API_VERSION } from '../../../../services/datasets.js';
6
- import { NO_PROJECT_ID } from '../../../../util/errorMessages.js';
7
- import { LinkAliasCommand } from '../link.js';
8
- const mockListDatasets = vi.hoisted(()=>vi.fn());
9
- const testProjectId = vi.hoisted(()=>'test-project');
10
- const testToken = vi.hoisted(()=>'test-token');
11
- vi.mock('@sanity/cli-core', async (importOriginal)=>{
12
- const actual = await importOriginal();
13
- const testClient = createTestClient({
14
- apiVersion: 'v2025-09-16',
15
- projectId: testProjectId,
16
- token: testToken
17
- });
18
- return {
19
- ...actual,
20
- getProjectCliClient: vi.fn().mockResolvedValue({
21
- datasets: {
22
- list: mockListDatasets
23
- },
24
- request: testClient.request
25
- })
26
- };
27
- });
28
- const defaultMocks = {
29
- cliConfig: {
30
- api: {
31
- projectId: testProjectId
32
- }
33
- },
34
- projectRoot: {
35
- directory: '/test/path',
36
- path: '/test/path/sanity.config.ts',
37
- type: 'studio'
38
- },
39
- token: testToken
40
- };
41
- describe('#dataset:alias:link', ()=>{
42
- afterEach(()=>{
43
- vi.clearAllMocks();
44
- const pending = nock.pendingMocks();
45
- nock.cleanAll();
46
- expect(pending, 'pending mocks').toEqual([]);
47
- });
48
- test('help works correctly', async ()=>{
49
- const { stdout } = await runCommand([
50
- 'dataset alias link',
51
- '--help'
52
- ]);
53
- expect(stdout).toMatchInlineSnapshot(`
54
- "Link a dataset alias to a dataset within your project
55
-
56
- USAGE
57
- $ sanity dataset alias link [ALIASNAME] [TARGETDATASET] [--force]
58
-
59
- ARGUMENTS
60
- [ALIASNAME] Dataset alias name to link
61
- [TARGETDATASET] Target dataset name to link the alias to
62
-
63
- FLAGS
64
- --force Skip confirmation prompt when relinking existing alias
65
-
66
- DESCRIPTION
67
- Link a dataset alias to a dataset within your project
68
-
69
- EXAMPLES
70
- Link an alias with interactive prompts
71
-
72
- $ sanity dataset alias link
73
-
74
- Link alias named "conference" with interactive dataset selection
75
-
76
- $ sanity dataset alias link conference
77
-
78
- Link alias "conference" to "conf-2025" dataset
79
-
80
- $ sanity dataset alias link conference conf-2025
81
-
82
- Link alias with explicit ~ prefix
83
-
84
- $ sanity dataset alias link ~conference conf-2025
85
-
86
- Force link without confirmation (skip relink prompt)
87
-
88
- $ sanity dataset alias link conference conf-2025 --force
89
-
90
- "
91
- `);
92
- });
93
- test('links alias with valid arguments', async ()=>{
94
- mockListDatasets.mockResolvedValue([
95
- {
96
- name: 'production'
97
- },
98
- {
99
- name: 'development'
100
- }
101
- ]);
102
- mockApi({
103
- apiHost: `https://${testProjectId}.api.sanity.io`,
104
- apiVersion: DATASET_API_VERSION,
105
- method: 'get',
106
- uri: `/aliases`
107
- }).reply(200, [
108
- {
109
- datasetName: null,
110
- name: 'staging'
111
- }
112
- ]);
113
- mockApi({
114
- apiHost: `https://${testProjectId}.api.sanity.io`,
115
- apiVersion: DATASET_API_VERSION,
116
- method: 'patch',
117
- uri: `/aliases/staging`
118
- }).reply(200, {
119
- aliasName: 'staging',
120
- datasetName: 'production'
121
- });
122
- const { stdout } = await testCommand(LinkAliasCommand, [
123
- 'staging',
124
- 'production'
125
- ], {
126
- mocks: defaultMocks
127
- });
128
- expect(stdout).toContain('Dataset alias ~staging linked to production successfully');
129
- });
130
- test('re-links already-linked alias when using force flag', async ()=>{
131
- mockListDatasets.mockResolvedValue([
132
- {
133
- name: 'production'
134
- },
135
- {
136
- name: 'development'
137
- }
138
- ]);
139
- mockApi({
140
- apiHost: `https://${testProjectId}.api.sanity.io`,
141
- apiVersion: DATASET_API_VERSION,
142
- method: 'get',
143
- uri: `/aliases`
144
- }).reply(200, [
145
- {
146
- datasetName: 'development',
147
- name: 'staging'
148
- }
149
- ]);
150
- mockApi({
151
- apiHost: `https://${testProjectId}.api.sanity.io`,
152
- apiVersion: DATASET_API_VERSION,
153
- method: 'patch',
154
- uri: `/aliases/staging`
155
- }).reply(200, {
156
- aliasName: 'staging',
157
- datasetName: 'production'
158
- });
159
- const { stderr, stdout } = await testCommand(LinkAliasCommand, [
160
- 'staging',
161
- 'production',
162
- '--force'
163
- ], {
164
- mocks: defaultMocks
165
- });
166
- expect(stderr).toContain("'--force' used: skipping confirmation, linking alias to");
167
- expect(stdout).toContain('Dataset alias ~staging linked to production successfully');
168
- });
169
- test('links unlinked alias without requiring confirmation', async ()=>{
170
- mockListDatasets.mockResolvedValue([
171
- {
172
- name: 'production'
173
- }
174
- ]);
175
- mockApi({
176
- apiHost: `https://${testProjectId}.api.sanity.io`,
177
- apiVersion: DATASET_API_VERSION,
178
- method: 'get',
179
- uri: `/aliases`
180
- }).reply(200, [
181
- {
182
- datasetName: null,
183
- name: 'staging'
184
- }
185
- ]);
186
- mockApi({
187
- apiHost: `https://${testProjectId}.api.sanity.io`,
188
- apiVersion: DATASET_API_VERSION,
189
- method: 'patch',
190
- uri: `/aliases/staging`
191
- }).reply(200, {
192
- aliasName: 'staging',
193
- datasetName: 'production'
194
- });
195
- const { stdout } = await testCommand(LinkAliasCommand, [
196
- 'staging',
197
- 'production'
198
- ], {
199
- mocks: defaultMocks
200
- });
201
- expect(stdout).toContain('Dataset alias ~staging linked to production successfully');
202
- expect(stdout).not.toContain('confirmation');
203
- });
204
- test.each([
205
- [
206
- 'invalid-alias-name-that-is-way-too-long-and-exceeds-the-maximum-allowed-length',
207
- 'production',
208
- 'Alias name must be at most 64 characters'
209
- ],
210
- [
211
- 'staging',
212
- 'Invalid-Dataset',
213
- 'Dataset name must be all lowercase characters'
214
- ]
215
- ])('fails with invalid input: alias=%s, dataset=%s', async (alias, dataset, expectedError)=>{
216
- const { error } = await testCommand(LinkAliasCommand, [
217
- alias,
218
- dataset
219
- ], {
220
- mocks: defaultMocks
221
- });
222
- expect(error?.message).toContain(expectedError);
223
- expect(error?.oclif?.exit).toBe(1);
224
- });
225
- test('fails when no project ID', async ()=>{
226
- const { error } = await testCommand(LinkAliasCommand, [
227
- 'staging',
228
- 'production'
229
- ], {
230
- mocks: {
231
- ...defaultMocks,
232
- cliConfig: {
233
- api: {}
234
- }
235
- }
236
- });
237
- expect(error?.message).toContain(NO_PROJECT_ID);
238
- expect(error?.oclif?.exit).toBe(1);
239
- });
240
- test('fails when alias does not exist', async ()=>{
241
- mockListDatasets.mockResolvedValue([
242
- {
243
- name: 'production'
244
- }
245
- ]);
246
- mockApi({
247
- apiHost: `https://${testProjectId}.api.sanity.io`,
248
- apiVersion: DATASET_API_VERSION,
249
- method: 'get',
250
- uri: `/aliases`
251
- }).reply(200, [
252
- {
253
- datasetName: null,
254
- name: 'staging'
255
- }
256
- ]);
257
- const { error } = await testCommand(LinkAliasCommand, [
258
- 'nonexistent',
259
- 'production'
260
- ], {
261
- mocks: defaultMocks
262
- });
263
- expect(error?.message).toContain('Dataset alias "~nonexistent" does not exist');
264
- expect(error?.oclif?.exit).toBe(1);
265
- });
266
- test('fails when dataset does not exist', async ()=>{
267
- mockListDatasets.mockResolvedValue([
268
- {
269
- name: 'production'
270
- }
271
- ]);
272
- mockApi({
273
- apiHost: `https://${testProjectId}.api.sanity.io`,
274
- apiVersion: DATASET_API_VERSION,
275
- method: 'get',
276
- uri: `/aliases`
277
- }).reply(200, [
278
- {
279
- datasetName: null,
280
- name: 'staging'
281
- }
282
- ]);
283
- const { error } = await testCommand(LinkAliasCommand, [
284
- 'staging',
285
- 'nonexistent'
286
- ], {
287
- mocks: defaultMocks
288
- });
289
- expect(error?.message).toContain('Dataset "nonexistent" does not exist');
290
- expect(error?.oclif?.exit).toBe(1);
291
- });
292
- test('fails when alias already linked to same dataset', async ()=>{
293
- mockListDatasets.mockResolvedValue([
294
- {
295
- name: 'production'
296
- }
297
- ]);
298
- mockApi({
299
- apiHost: `https://${testProjectId}.api.sanity.io`,
300
- apiVersion: DATASET_API_VERSION,
301
- method: 'get',
302
- uri: `/aliases`
303
- }).reply(200, [
304
- {
305
- datasetName: 'production',
306
- name: 'staging'
307
- }
308
- ]);
309
- const { error } = await testCommand(LinkAliasCommand, [
310
- 'staging',
311
- 'production'
312
- ], {
313
- mocks: defaultMocks
314
- });
315
- expect(error?.message).toContain('Dataset alias ~staging already linked to production');
316
- expect(error?.oclif?.exit).toBe(1);
317
- });
318
- test('fails when no datasets available', async ()=>{
319
- mockListDatasets.mockResolvedValue([]);
320
- mockApi({
321
- apiHost: `https://${testProjectId}.api.sanity.io`,
322
- apiVersion: DATASET_API_VERSION,
323
- method: 'get',
324
- uri: `/aliases`
325
- }).reply(200, [
326
- {
327
- datasetName: null,
328
- name: 'staging'
329
- }
330
- ]);
331
- const { error } = await testCommand(LinkAliasCommand, [
332
- 'staging'
333
- ], {
334
- mocks: defaultMocks
335
- });
336
- expect(error?.message).toContain('No datasets available to link to');
337
- expect(error?.oclif?.exit).toBe(1);
338
- });
339
- test('handles API error gracefully', async ()=>{
340
- mockListDatasets.mockResolvedValue([
341
- {
342
- name: 'production'
343
- }
344
- ]);
345
- mockApi({
346
- apiHost: `https://${testProjectId}.api.sanity.io`,
347
- apiVersion: DATASET_API_VERSION,
348
- method: 'get',
349
- uri: `/aliases`
350
- }).reply(200, [
351
- {
352
- datasetName: null,
353
- name: 'staging'
354
- }
355
- ]);
356
- mockApi({
357
- apiHost: `https://${testProjectId}.api.sanity.io`,
358
- apiVersion: DATASET_API_VERSION,
359
- method: 'patch',
360
- uri: `/aliases/staging`
361
- }).reply(500, {
362
- error: 'API Error',
363
- message: 'API Error'
364
- });
365
- const { error } = await testCommand(LinkAliasCommand, [
366
- 'staging',
367
- 'production'
368
- ], {
369
- mocks: defaultMocks
370
- });
371
- expect(error?.message).toContain('Dataset alias linking failed: API Error');
372
- expect(error?.oclif?.exit).toBe(1);
373
- });
374
- });
375
-
376
- //# sourceMappingURL=link.test.js.map