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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (608) hide show
  1. package/dist/actions/dataset/create.d.ts +49 -0
  2. package/dist/actions/dataset/create.js +48 -0
  3. package/dist/actions/dataset/create.js.map +1 -0
  4. package/dist/actions/dataset/determineDatasetAclMode.d.ts +37 -0
  5. package/dist/actions/dataset/determineDatasetAclMode.js +36 -0
  6. package/dist/actions/dataset/determineDatasetAclMode.js.map +1 -0
  7. package/dist/actions/debug/gatherDebugInfo.js +15 -21
  8. package/dist/actions/debug/gatherDebugInfo.js.map +1 -1
  9. package/dist/actions/debug/types.d.ts +0 -2
  10. package/dist/actions/debug/types.js.map +1 -1
  11. package/dist/actions/deploy/deployApp.js +13 -0
  12. package/dist/actions/deploy/deployApp.js.map +1 -1
  13. package/dist/actions/dev/startStudioDevServer.js +3 -8
  14. package/dist/actions/dev/startStudioDevServer.js.map +1 -1
  15. package/dist/actions/dev/types.d.ts +1 -3
  16. package/dist/actions/dev/types.js.map +1 -1
  17. package/dist/actions/documents/validate.d.ts +0 -2
  18. package/dist/actions/documents/validate.js +21 -1
  19. package/dist/actions/documents/validate.js.map +1 -1
  20. package/dist/actions/exec/execScript.js +1 -1
  21. package/dist/actions/exec/execScript.js.map +1 -1
  22. package/dist/actions/graphql/getGraphQLAPIs.js +1 -1
  23. package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -1
  24. package/dist/actions/init/remoteTemplate.js +1 -1
  25. package/dist/actions/init/remoteTemplate.js.map +1 -1
  26. package/dist/actions/manifest/extractAppManifest.d.ts +20 -0
  27. package/dist/actions/manifest/extractAppManifest.js +51 -0
  28. package/dist/actions/manifest/extractAppManifest.js.map +1 -0
  29. package/dist/actions/manifest/extractManifest.js +2 -5
  30. package/dist/actions/manifest/extractManifest.js.map +1 -1
  31. package/dist/actions/manifest/types.d.ts +6 -1
  32. package/dist/actions/manifest/types.js.map +1 -1
  33. package/dist/actions/media/importAspects.js +2 -1
  34. package/dist/actions/media/importAspects.js.map +1 -1
  35. package/dist/actions/schema/deleteSchemaAction.d.ts +13 -5
  36. package/dist/actions/schema/deleteSchemaAction.js +12 -17
  37. package/dist/actions/schema/deleteSchemaAction.js.map +1 -1
  38. package/dist/actions/schema/deploySchemas.d.ts +15 -0
  39. package/dist/actions/schema/deploySchemas.js +98 -0
  40. package/dist/actions/schema/deploySchemas.js.map +1 -0
  41. package/dist/actions/schema/listSchemas.d.ts +12 -0
  42. package/dist/actions/schema/listSchemas.js +119 -0
  43. package/dist/actions/schema/listSchemas.js.map +1 -0
  44. package/dist/actions/schema/schemaStoreTypes.d.ts +0 -11
  45. package/dist/actions/schema/schemaStoreTypes.js.map +1 -1
  46. package/dist/actions/schema/utils/debug.d.ts +2 -0
  47. package/dist/actions/schema/utils/debug.js +5 -0
  48. package/dist/actions/schema/utils/debug.js.map +1 -0
  49. package/dist/actions/schema/utils/manifestExtractor.d.ts +3 -8
  50. package/dist/actions/schema/utils/manifestExtractor.js +12 -17
  51. package/dist/actions/schema/utils/manifestExtractor.js.map +1 -1
  52. package/dist/actions/schema/utils/manifestReader.d.ts +2 -9
  53. package/dist/actions/schema/utils/manifestReader.js +6 -12
  54. package/dist/actions/schema/utils/manifestReader.js.map +1 -1
  55. package/dist/actions/schema/utils/schemaStoreOutStrings.d.ts +0 -1
  56. package/dist/actions/schema/utils/schemaStoreOutStrings.js +1 -1
  57. package/dist/actions/schema/utils/schemaStoreOutStrings.js.map +1 -1
  58. package/dist/actions/schema/utils/schemaStoreValidation.d.ts +10 -62
  59. package/dist/actions/schema/utils/schemaStoreValidation.js +38 -125
  60. package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -1
  61. package/dist/actions/schema/utils/uniqByProjectIdDataset.d.ts +14 -0
  62. package/dist/actions/schema/utils/uniqByProjectIdDataset.js +9 -0
  63. package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -0
  64. package/dist/actions/users/getMembersForProject.d.ts +1 -3
  65. package/dist/actions/users/getMembersForProject.js +6 -17
  66. package/dist/actions/users/getMembersForProject.js.map +1 -1
  67. package/dist/actions/users/types.d.ts +0 -11
  68. package/dist/actions/users/types.js.map +1 -1
  69. package/dist/commands/backup/disable.js +5 -11
  70. package/dist/commands/backup/disable.js.map +1 -1
  71. package/dist/commands/backup/enable.js +5 -11
  72. package/dist/commands/backup/enable.js.map +1 -1
  73. package/dist/commands/backup/list.js +7 -8
  74. package/dist/commands/backup/list.js.map +1 -1
  75. package/dist/commands/cors/add.js +5 -13
  76. package/dist/commands/cors/add.js.map +1 -1
  77. package/dist/commands/cors/delete.js +7 -15
  78. package/dist/commands/cors/delete.js.map +1 -1
  79. package/dist/commands/cors/list.js +2 -10
  80. package/dist/commands/cors/list.js.map +1 -1
  81. package/dist/commands/dataset/create.d.ts +0 -2
  82. package/dist/commands/dataset/create.js +8 -54
  83. package/dist/commands/dataset/create.js.map +1 -1
  84. package/dist/commands/dataset/export.js +4 -4
  85. package/dist/commands/dataset/export.js.map +1 -1
  86. package/dist/commands/debug.js +5 -9
  87. package/dist/commands/debug.js.map +1 -1
  88. package/dist/commands/dev.js +0 -1
  89. package/dist/commands/dev.js.map +1 -1
  90. package/dist/commands/documents/create.d.ts +1 -0
  91. package/dist/commands/documents/create.js +10 -9
  92. package/dist/commands/documents/create.js.map +1 -1
  93. package/dist/commands/documents/delete.js +2 -3
  94. package/dist/commands/documents/delete.js.map +1 -1
  95. package/dist/commands/documents/get.js +2 -3
  96. package/dist/commands/documents/get.js.map +1 -1
  97. package/dist/commands/documents/query.js +2 -3
  98. package/dist/commands/documents/query.js.map +1 -1
  99. package/dist/commands/documents/validate.js +0 -20
  100. package/dist/commands/documents/validate.js.map +1 -1
  101. package/dist/commands/graphql/list.js +2 -2
  102. package/dist/commands/graphql/list.js.map +1 -1
  103. package/dist/commands/graphql/undeploy.js +4 -9
  104. package/dist/commands/graphql/undeploy.js.map +1 -1
  105. package/dist/commands/hook/create.js +2 -6
  106. package/dist/commands/hook/create.js.map +1 -1
  107. package/dist/commands/hook/delete.js +5 -17
  108. package/dist/commands/hook/delete.js.map +1 -1
  109. package/dist/commands/hook/list.js +2 -8
  110. package/dist/commands/hook/list.js.map +1 -1
  111. package/dist/commands/init.d.ts +6 -1
  112. package/dist/commands/init.js +358 -20
  113. package/dist/commands/init.js.map +1 -1
  114. package/dist/commands/manifest/extract.js +7 -8
  115. package/dist/commands/manifest/extract.js.map +1 -1
  116. package/dist/commands/media/export.js +2 -2
  117. package/dist/commands/media/export.js.map +1 -1
  118. package/dist/commands/media/import.js +2 -2
  119. package/dist/commands/media/import.js.map +1 -1
  120. package/dist/commands/projects/list.js +2 -6
  121. package/dist/commands/projects/list.js.map +1 -1
  122. package/dist/commands/schema/delete.d.ts +1 -1
  123. package/dist/commands/schema/delete.js +20 -23
  124. package/dist/commands/schema/delete.js.map +1 -1
  125. package/dist/commands/schema/deploy.d.ts +16 -0
  126. package/dist/commands/schema/deploy.js +98 -0
  127. package/dist/commands/schema/deploy.js.map +1 -0
  128. package/dist/commands/schema/list.d.ts +15 -0
  129. package/dist/commands/schema/list.js +104 -0
  130. package/dist/commands/schema/list.js.map +1 -0
  131. package/dist/commands/tokens/add.js +3 -5
  132. package/dist/commands/tokens/add.js.map +1 -1
  133. package/dist/commands/users/invite.js +6 -17
  134. package/dist/commands/users/invite.js.map +1 -1
  135. package/dist/commands/users/list.js +4 -7
  136. package/dist/commands/users/list.js.map +1 -1
  137. package/dist/config/createCliConfig.d.ts +13 -4
  138. package/dist/prompts/init/promptForTypescript.d.ts +2 -0
  139. package/dist/prompts/init/promptForTypescript.js +15 -0
  140. package/dist/prompts/init/promptForTypescript.js.map +1 -0
  141. package/dist/prompts/promptForDatasetAclMode.d.ts +9 -0
  142. package/dist/prompts/promptForDatasetAclMode.js +27 -0
  143. package/dist/prompts/promptForDatasetAclMode.js.map +1 -0
  144. package/dist/prompts/promptForDatasetName.d.ts +1 -1
  145. package/dist/prompts/promptForDatasetName.js +4 -1
  146. package/dist/prompts/promptForDatasetName.js.map +1 -1
  147. package/dist/services/backup.d.ts +8 -0
  148. package/dist/services/backup.js +19 -0
  149. package/dist/services/backup.js.map +1 -1
  150. package/dist/services/cors.d.ts +23 -0
  151. package/dist/services/cors.js +38 -0
  152. package/dist/services/cors.js.map +1 -0
  153. package/dist/services/graphql.d.ts +7 -0
  154. package/dist/services/graphql.js +11 -0
  155. package/dist/services/graphql.js.map +1 -1
  156. package/dist/services/hooks.d.ts +2 -0
  157. package/dist/services/hooks.js +19 -0
  158. package/dist/services/hooks.js.map +1 -1
  159. package/dist/services/organizations.d.ts +4 -2
  160. package/dist/services/organizations.js +3 -2
  161. package/dist/services/organizations.js.map +1 -1
  162. package/dist/services/projects.d.ts +11 -0
  163. package/dist/services/projects.js +41 -0
  164. package/dist/services/projects.js.map +1 -1
  165. package/dist/services/schemas.d.ts +4 -0
  166. package/dist/services/schemas.js +40 -0
  167. package/dist/services/schemas.js.map +1 -0
  168. package/dist/services/user.d.ts +13 -0
  169. package/dist/services/user.js +27 -3
  170. package/dist/services/user.js.map +1 -1
  171. package/dist/services/userApplications.d.ts +3 -1
  172. package/dist/services/userApplications.js +5 -1
  173. package/dist/services/userApplications.js.map +1 -1
  174. package/dist/util/errorMessages.d.ts +1 -0
  175. package/dist/util/errorMessages.js +1 -0
  176. package/dist/util/errorMessages.js.map +1 -1
  177. package/dist/util/getCliVersion.js +1 -1
  178. package/dist/util/getCliVersion.js.map +1 -1
  179. package/dist/util/readPackageJson.d.ts +1 -15
  180. package/dist/util/readPackageJson.js +1 -1
  181. package/dist/util/readPackageJson.js.map +1 -1
  182. package/dist/util/uniqBy.d.ts +1 -0
  183. package/dist/util/uniqBy.js +14 -0
  184. package/dist/util/uniqBy.js.map +1 -0
  185. package/oclif.manifest.json +284 -139
  186. package/package.json +36 -33
  187. package/templates/app-quickstart/src/App.css +20 -0
  188. package/templates/app-quickstart/src/App.tsx +25 -0
  189. package/templates/app-quickstart/src/ExampleComponent.css +90 -0
  190. package/templates/app-quickstart/src/ExampleComponent.tsx +37 -0
  191. package/templates/app-sanity-ui/src/App.tsx +34 -0
  192. package/templates/app-sanity-ui/src/ExampleComponent.tsx +34 -0
  193. package/templates/app-sanity-ui/src/SanityUI.tsx +23 -0
  194. package/templates/blog/README.md +11 -0
  195. package/templates/blog/schemaTypes/author.js +50 -0
  196. package/templates/blog/schemaTypes/blockContent.js +67 -0
  197. package/templates/blog/schemaTypes/category.js +19 -0
  198. package/templates/blog/schemaTypes/index.js +6 -0
  199. package/templates/blog/schemaTypes/post.js +65 -0
  200. package/templates/blog/static/.gitkeep +1 -0
  201. package/templates/clean/README.md +9 -0
  202. package/templates/clean/schemaTypes/index.js +1 -0
  203. package/templates/clean/static/.gitkeep +1 -0
  204. package/templates/ecommerce/README.md +11 -0
  205. package/templates/ecommerce/plugins/.gitkeep +1 -0
  206. package/templates/ecommerce/plugins/barcode-input/BarcodeInput.js +62 -0
  207. package/templates/ecommerce/plugins/barcode-input/index.js +9 -0
  208. package/templates/ecommerce/plugins/barcode-input/schemaType.js +60 -0
  209. package/templates/ecommerce/schemaTypes/blockContent.js +67 -0
  210. package/templates/ecommerce/schemaTypes/category.js +39 -0
  211. package/templates/ecommerce/schemaTypes/index.js +23 -0
  212. package/templates/ecommerce/schemaTypes/locale/localeBlockContent.js +19 -0
  213. package/templates/ecommerce/schemaTypes/locale/localeString.js +19 -0
  214. package/templates/ecommerce/schemaTypes/locale/localeText.js +19 -0
  215. package/templates/ecommerce/schemaTypes/locale/supportedLanguages.js +5 -0
  216. package/templates/ecommerce/schemaTypes/product.js +83 -0
  217. package/templates/ecommerce/schemaTypes/productVariant.js +52 -0
  218. package/templates/ecommerce/schemaTypes/vendor.js +39 -0
  219. package/templates/ecommerce/static/.gitkeep +1 -0
  220. package/templates/get-started/README.md +9 -0
  221. package/templates/get-started/plugins/.gitkeep +1 -0
  222. package/templates/get-started/plugins/sanity-plugin-tutorial/CustomDefaultLayout.tsx +16 -0
  223. package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +104 -0
  224. package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +11 -0
  225. package/templates/get-started/schemaTypes/index.ts +1 -0
  226. package/templates/get-started/static/.gitkeep +1 -0
  227. package/templates/moviedb/README.md +10 -0
  228. package/templates/moviedb/schemaTypes/blockContent.js +67 -0
  229. package/templates/moviedb/schemaTypes/castMember.js +37 -0
  230. package/templates/moviedb/schemaTypes/crewMember.js +52 -0
  231. package/templates/moviedb/schemaTypes/index.js +22 -0
  232. package/templates/moviedb/schemaTypes/movie.js +85 -0
  233. package/templates/moviedb/schemaTypes/person.js +37 -0
  234. package/templates/moviedb/schemaTypes/plotSummaries.js +20 -0
  235. package/templates/moviedb/schemaTypes/plotSummary.js +24 -0
  236. package/templates/moviedb/schemaTypes/screening.js +81 -0
  237. package/templates/moviedb/static/.gitkeep +1 -0
  238. package/templates/quickstart/README.md +9 -0
  239. package/templates/quickstart/schemaTypes/index.js +1 -0
  240. package/templates/quickstart/static/.gitkeep +1 -0
  241. package/templates/shared/gitignore.txt +29 -0
  242. package/templates/shared/tsconfig.json +17 -0
  243. package/templates/shopify/README.md +85 -0
  244. package/templates/shopify/components/hotspots/ProductTooltip.tsx +38 -0
  245. package/templates/shopify/components/icons/Shopify.tsx +20 -0
  246. package/templates/shopify/components/inputs/CollectionHidden.tsx +23 -0
  247. package/templates/shopify/components/inputs/PlaceholderString.tsx +20 -0
  248. package/templates/shopify/components/inputs/ProductHidden.tsx +64 -0
  249. package/templates/shopify/components/inputs/ProductVariantHidden.tsx +24 -0
  250. package/templates/shopify/components/inputs/ProxyString.tsx +32 -0
  251. package/templates/shopify/components/media/ColorTheme.tsx +38 -0
  252. package/templates/shopify/components/media/ShopifyDocumentStatus.tsx +82 -0
  253. package/templates/shopify/components/studio/Navbar.tsx +29 -0
  254. package/templates/shopify/constants.ts +61 -0
  255. package/templates/shopify/docs/features.md +158 -0
  256. package/templates/shopify/plugins/customDocumentActions/index.ts +55 -0
  257. package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +144 -0
  258. package/templates/shopify/plugins/customDocumentActions/shopifyLink.ts +39 -0
  259. package/templates/shopify/plugins/customDocumentActions/types.ts +14 -0
  260. package/templates/shopify/schemaTypes/documents/collection.tsx +142 -0
  261. package/templates/shopify/schemaTypes/documents/colorTheme.tsx +44 -0
  262. package/templates/shopify/schemaTypes/documents/page.ts +70 -0
  263. package/templates/shopify/schemaTypes/documents/product.tsx +132 -0
  264. package/templates/shopify/schemaTypes/documents/productVariant.tsx +67 -0
  265. package/templates/shopify/schemaTypes/index.ts +108 -0
  266. package/templates/shopify/schemaTypes/objects/collection/collectionGroupType.ts +27 -0
  267. package/templates/shopify/schemaTypes/objects/collection/collectionLinksType.ts +16 -0
  268. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +48 -0
  269. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorType.tsx +50 -0
  270. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeObjectType.ts +40 -0
  271. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeType.ts +49 -0
  272. package/templates/shopify/schemaTypes/objects/global/footerType.ts +22 -0
  273. package/templates/shopify/schemaTypes/objects/global/menuLinksType.ts +21 -0
  274. package/templates/shopify/schemaTypes/objects/global/menuType.ts +17 -0
  275. package/templates/shopify/schemaTypes/objects/global/notFoundPageType.ts +37 -0
  276. package/templates/shopify/schemaTypes/objects/hotspot/imageWithProductHotspotsType.ts +48 -0
  277. package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +17 -0
  278. package/templates/shopify/schemaTypes/objects/hotspot/spotType.tsx +60 -0
  279. package/templates/shopify/schemaTypes/objects/link/linkEmailType.tsx +34 -0
  280. package/templates/shopify/schemaTypes/objects/link/linkExternalType.tsx +37 -0
  281. package/templates/shopify/schemaTypes/objects/link/linkInternalType.tsx +33 -0
  282. package/templates/shopify/schemaTypes/objects/link/linkProductType.tsx +60 -0
  283. package/templates/shopify/schemaTypes/objects/module/accordionGroupType.ts +33 -0
  284. package/templates/shopify/schemaTypes/objects/module/accordionType.ts +28 -0
  285. package/templates/shopify/schemaTypes/objects/module/callToActionType.tsx +85 -0
  286. package/templates/shopify/schemaTypes/objects/module/calloutType.ts +38 -0
  287. package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +47 -0
  288. package/templates/shopify/schemaTypes/objects/module/gridItemType.ts +41 -0
  289. package/templates/shopify/schemaTypes/objects/module/gridType.ts +28 -0
  290. package/templates/shopify/schemaTypes/objects/module/heroType.tsx +40 -0
  291. package/templates/shopify/schemaTypes/objects/module/imageCallToActionType.tsx +19 -0
  292. package/templates/shopify/schemaTypes/objects/module/imageFeatureType.ts +80 -0
  293. package/templates/shopify/schemaTypes/objects/module/imageFeaturesType.tsx +51 -0
  294. package/templates/shopify/schemaTypes/objects/module/instagramType.ts +35 -0
  295. package/templates/shopify/schemaTypes/objects/module/productFeaturesType.tsx +50 -0
  296. package/templates/shopify/schemaTypes/objects/module/productReferenceType.tsx +42 -0
  297. package/templates/shopify/schemaTypes/objects/seoType.ts +31 -0
  298. package/templates/shopify/schemaTypes/objects/shopify/collectionRuleType.tsx +37 -0
  299. package/templates/shopify/schemaTypes/objects/shopify/inventoryType.ts +25 -0
  300. package/templates/shopify/schemaTypes/objects/shopify/optionType.tsx +31 -0
  301. package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +11 -0
  302. package/templates/shopify/schemaTypes/objects/shopify/priceRangeType.ts +20 -0
  303. package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +142 -0
  304. package/templates/shopify/schemaTypes/objects/shopify/proxyStringType.ts +12 -0
  305. package/templates/shopify/schemaTypes/objects/shopify/shopType.ts +15 -0
  306. package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +84 -0
  307. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +131 -0
  308. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductVariantType.ts +121 -0
  309. package/templates/shopify/schemaTypes/portableText/portableTextSimpleType.tsx +45 -0
  310. package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +52 -0
  311. package/templates/shopify/schemaTypes/singletons/homeType.ts +49 -0
  312. package/templates/shopify/schemaTypes/singletons/settingsType.ts +96 -0
  313. package/templates/shopify/static/.gitkeep +1 -0
  314. package/templates/shopify/structure/collectionStructure.ts +9 -0
  315. package/templates/shopify/structure/colorThemeStructure.ts +9 -0
  316. package/templates/shopify/structure/homeStructure.ts +9 -0
  317. package/templates/shopify/structure/index.ts +57 -0
  318. package/templates/shopify/structure/pageStructure.ts +11 -0
  319. package/templates/shopify/structure/productStructure.ts +51 -0
  320. package/templates/shopify/structure/settingStructure.ts +9 -0
  321. package/templates/shopify/utils/blocksToText.ts +20 -0
  322. package/templates/shopify/utils/defineStructure.ts +11 -0
  323. package/templates/shopify/utils/getPriceRange.ts +24 -0
  324. package/templates/shopify/utils/shopifyUrls.ts +22 -0
  325. package/templates/shopify/utils/validateSlug.ts +18 -0
  326. package/templates/shopify-online-storefront/README.md +54 -0
  327. package/templates/shopify-online-storefront/components/icons/Shopify.tsx +22 -0
  328. package/templates/shopify-online-storefront/components/inputs/CollectionHidden.tsx +23 -0
  329. package/templates/shopify-online-storefront/components/inputs/PlaceholderString.tsx +25 -0
  330. package/templates/shopify-online-storefront/components/inputs/ProductHidden.tsx +66 -0
  331. package/templates/shopify-online-storefront/components/inputs/ProductVariantHidden.tsx +25 -0
  332. package/templates/shopify-online-storefront/components/inputs/ProxyString.tsx +38 -0
  333. package/templates/shopify-online-storefront/components/media/ShopifyDocumentStatus.tsx +83 -0
  334. package/templates/shopify-online-storefront/constants.ts +18 -0
  335. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +45 -0
  336. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +144 -0
  337. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyLink.ts +39 -0
  338. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/types.ts +14 -0
  339. package/templates/shopify-online-storefront/schemaTypes/blocks/blockContent.ts +32 -0
  340. package/templates/shopify-online-storefront/schemaTypes/documents/collection.tsx +83 -0
  341. package/templates/shopify-online-storefront/schemaTypes/documents/product.tsx +102 -0
  342. package/templates/shopify-online-storefront/schemaTypes/documents/productVariant.tsx +82 -0
  343. package/templates/shopify-online-storefront/schemaTypes/index.ts +43 -0
  344. package/templates/shopify-online-storefront/schemaTypes/objects/accordion.ts +31 -0
  345. package/templates/shopify-online-storefront/schemaTypes/objects/accordionGroup.ts +35 -0
  346. package/templates/shopify-online-storefront/schemaTypes/objects/callout.ts +40 -0
  347. package/templates/shopify-online-storefront/schemaTypes/objects/inventory.ts +30 -0
  348. package/templates/shopify-online-storefront/schemaTypes/objects/option.ts +30 -0
  349. package/templates/shopify-online-storefront/schemaTypes/objects/priceRange.ts +22 -0
  350. package/templates/shopify-online-storefront/schemaTypes/objects/proxyString.ts +11 -0
  351. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollection.ts +109 -0
  352. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollectionRule.tsx +45 -0
  353. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProduct.ts +165 -0
  354. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProductVariant.ts +151 -0
  355. package/templates/shopify-online-storefront/structure/collectionStructure.ts +9 -0
  356. package/templates/shopify-online-storefront/structure/index.ts +37 -0
  357. package/templates/shopify-online-storefront/structure/productStructure.ts +35 -0
  358. package/templates/shopify-online-storefront/utils/defineStructure.ts +11 -0
  359. package/templates/shopify-online-storefront/utils/getPriceRange.ts +24 -0
  360. package/templates/shopify-online-storefront/utils/shopifyUrls.ts +22 -0
  361. package/dist/actions/build/__tests__/buildApp.test.js +0 -367
  362. package/dist/actions/build/__tests__/buildApp.test.js.map +0 -1
  363. package/dist/actions/build/__tests__/buildStudio.test.js +0 -561
  364. package/dist/actions/build/__tests__/buildStudio.test.js.map +0 -1
  365. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js +0 -233
  366. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js.map +0 -1
  367. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js +0 -414
  368. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js.map +0 -1
  369. package/dist/actions/build/__tests__/determineBasePath.test.js +0 -24
  370. package/dist/actions/build/__tests__/determineBasePath.test.js.map +0 -1
  371. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js +0 -109
  372. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js.map +0 -1
  373. package/dist/actions/build/__tests__/getViteConfig.test.js +0 -493
  374. package/dist/actions/build/__tests__/getViteConfig.test.js.map +0 -1
  375. package/dist/actions/build/__tests__/renderDocument.test.js +0 -278
  376. package/dist/actions/build/__tests__/renderDocument.test.js.map +0 -1
  377. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js +0 -153
  378. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js.map +0 -1
  379. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js +0 -657
  380. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js.map +0 -1
  381. package/dist/actions/cors/constants.d.ts +0 -1
  382. package/dist/actions/cors/constants.js +0 -3
  383. package/dist/actions/cors/constants.js.map +0 -1
  384. package/dist/actions/cors/types.d.ts +0 -9
  385. package/dist/actions/cors/types.js +0 -3
  386. package/dist/actions/cors/types.js.map +0 -1
  387. package/dist/actions/dataset/__tests__/validateDatasetName.test.js +0 -182
  388. package/dist/actions/dataset/__tests__/validateDatasetName.test.js.map +0 -1
  389. package/dist/actions/deploy/__tests__/checkDir.test.js +0 -120
  390. package/dist/actions/deploy/__tests__/checkDir.test.js.map +0 -1
  391. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js +0 -16
  392. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js.map +0 -1
  393. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js +0 -124
  394. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js.map +0 -1
  395. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js +0 -274
  396. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js.map +0 -1
  397. package/dist/actions/media/__tests__/importMedia.test.js +0 -182
  398. package/dist/actions/media/__tests__/importMedia.test.js.map +0 -1
  399. package/dist/actions/schema/__tests__/deleteSchemaAction.test.js +0 -294
  400. package/dist/actions/schema/__tests__/deleteSchemaAction.test.js.map +0 -1
  401. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js +0 -174
  402. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js.map +0 -1
  403. package/dist/actions/schema/__tests__/validateAction.test.js +0 -281
  404. package/dist/actions/schema/__tests__/validateAction.test.js.map +0 -1
  405. package/dist/actions/schema/schemaStoreConstants.d.ts +0 -1
  406. package/dist/actions/schema/schemaStoreConstants.js +0 -4
  407. package/dist/actions/schema/schemaStoreConstants.js.map +0 -1
  408. package/dist/actions/schema/utils/schemaActionHelpers.d.ts +0 -1
  409. package/dist/actions/schema/utils/schemaActionHelpers.js +0 -5
  410. package/dist/actions/schema/utils/schemaActionHelpers.js.map +0 -1
  411. package/dist/actions/schema/utils/schemaApiClient.d.ts +0 -6
  412. package/dist/actions/schema/utils/schemaApiClient.js +0 -17
  413. package/dist/actions/schema/utils/schemaApiClient.js.map +0 -1
  414. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js +0 -27
  415. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js.map +0 -1
  416. package/dist/actions/users/__tests__/validateEmail.test.js +0 -16
  417. package/dist/actions/users/__tests__/validateEmail.test.js.map +0 -1
  418. package/dist/actions/users/apiVersion.d.ts +0 -6
  419. package/dist/actions/users/apiVersion.js +0 -7
  420. package/dist/actions/users/apiVersion.js.map +0 -1
  421. package/dist/commands/__tests__/blueprints.test.js +0 -54
  422. package/dist/commands/__tests__/blueprints.test.js.map +0 -1
  423. package/dist/commands/__tests__/build.test.js +0 -132
  424. package/dist/commands/__tests__/build.test.js.map +0 -1
  425. package/dist/commands/__tests__/codemod.test.js +0 -271
  426. package/dist/commands/__tests__/codemod.test.js.map +0 -1
  427. package/dist/commands/__tests__/debug.test.js +0 -697
  428. package/dist/commands/__tests__/debug.test.js.map +0 -1
  429. package/dist/commands/__tests__/deploy.test.js +0 -1913
  430. package/dist/commands/__tests__/deploy.test.js.map +0 -1
  431. package/dist/commands/__tests__/dev.test.js +0 -410
  432. package/dist/commands/__tests__/dev.test.js.map +0 -1
  433. package/dist/commands/__tests__/exec.test.js +0 -207
  434. package/dist/commands/__tests__/exec.test.js.map +0 -1
  435. package/dist/commands/__tests__/init/init.authentication.test.js +0 -60
  436. package/dist/commands/__tests__/init/init.authentication.test.js.map +0 -1
  437. package/dist/commands/__tests__/init/init.create-new-project.test.js +0 -196
  438. package/dist/commands/__tests__/init/init.create-new-project.test.js.map +0 -1
  439. package/dist/commands/__tests__/init/init.plan.test.js +0 -220
  440. package/dist/commands/__tests__/init/init.plan.test.js.map +0 -1
  441. package/dist/commands/__tests__/init/init.setup.test.js +0 -279
  442. package/dist/commands/__tests__/init/init.setup.test.js.map +0 -1
  443. package/dist/commands/__tests__/install.test.js +0 -258
  444. package/dist/commands/__tests__/install.test.js.map +0 -1
  445. package/dist/commands/__tests__/learn.test.js +0 -29
  446. package/dist/commands/__tests__/learn.test.js.map +0 -1
  447. package/dist/commands/__tests__/logout.test.js +0 -88
  448. package/dist/commands/__tests__/logout.test.js.map +0 -1
  449. package/dist/commands/__tests__/manage.test.js +0 -105
  450. package/dist/commands/__tests__/manage.test.js.map +0 -1
  451. package/dist/commands/__tests__/migration.test.js +0 -119
  452. package/dist/commands/__tests__/migration.test.js.map +0 -1
  453. package/dist/commands/__tests__/preview.test.js +0 -261
  454. package/dist/commands/__tests__/preview.test.js.map +0 -1
  455. package/dist/commands/__tests__/start.test.js +0 -253
  456. package/dist/commands/__tests__/start.test.js.map +0 -1
  457. package/dist/commands/__tests__/undeploy.test.js +0 -382
  458. package/dist/commands/__tests__/undeploy.test.js.map +0 -1
  459. package/dist/commands/__tests__/versions.test.js +0 -134
  460. package/dist/commands/__tests__/versions.test.js.map +0 -1
  461. package/dist/commands/backup/__tests__/disable.test.js +0 -207
  462. package/dist/commands/backup/__tests__/disable.test.js.map +0 -1
  463. package/dist/commands/backup/__tests__/download.test.js +0 -679
  464. package/dist/commands/backup/__tests__/download.test.js.map +0 -1
  465. package/dist/commands/backup/__tests__/enable.test.js +0 -317
  466. package/dist/commands/backup/__tests__/enable.test.js.map +0 -1
  467. package/dist/commands/backup/__tests__/list.test.js +0 -321
  468. package/dist/commands/backup/__tests__/list.test.js.map +0 -1
  469. package/dist/commands/cors/__tests__/add.test.js +0 -346
  470. package/dist/commands/cors/__tests__/add.test.js.map +0 -1
  471. package/dist/commands/cors/__tests__/delete.test.js +0 -293
  472. package/dist/commands/cors/__tests__/delete.test.js.map +0 -1
  473. package/dist/commands/cors/__tests__/list.test.js +0 -218
  474. package/dist/commands/cors/__tests__/list.test.js.map +0 -1
  475. package/dist/commands/dataset/__tests__/copy.test.js +0 -520
  476. package/dist/commands/dataset/__tests__/copy.test.js.map +0 -1
  477. package/dist/commands/dataset/__tests__/create.test.js +0 -312
  478. package/dist/commands/dataset/__tests__/create.test.js.map +0 -1
  479. package/dist/commands/dataset/__tests__/delete.test.js +0 -224
  480. package/dist/commands/dataset/__tests__/delete.test.js.map +0 -1
  481. package/dist/commands/dataset/__tests__/export.test.js +0 -561
  482. package/dist/commands/dataset/__tests__/export.test.js.map +0 -1
  483. package/dist/commands/dataset/__tests__/import.test.js +0 -53
  484. package/dist/commands/dataset/__tests__/import.test.js.map +0 -1
  485. package/dist/commands/dataset/__tests__/list.test.js +0 -174
  486. package/dist/commands/dataset/__tests__/list.test.js.map +0 -1
  487. package/dist/commands/dataset/alias/__tests__/create.test.js +0 -299
  488. package/dist/commands/dataset/alias/__tests__/create.test.js.map +0 -1
  489. package/dist/commands/dataset/alias/__tests__/delete.test.js +0 -236
  490. package/dist/commands/dataset/alias/__tests__/delete.test.js.map +0 -1
  491. package/dist/commands/dataset/alias/__tests__/link.test.js +0 -336
  492. package/dist/commands/dataset/alias/__tests__/link.test.js.map +0 -1
  493. package/dist/commands/dataset/alias/__tests__/unlink.test.js +0 -298
  494. package/dist/commands/dataset/alias/__tests__/unlink.test.js.map +0 -1
  495. package/dist/commands/dataset/visibility/__tests__/get.test.js +0 -147
  496. package/dist/commands/dataset/visibility/__tests__/get.test.js.map +0 -1
  497. package/dist/commands/dataset/visibility/__tests__/set.test.js +0 -245
  498. package/dist/commands/dataset/visibility/__tests__/set.test.js.map +0 -1
  499. package/dist/commands/docs/__tests__/browse.test.js +0 -29
  500. package/dist/commands/docs/__tests__/browse.test.js.map +0 -1
  501. package/dist/commands/docs/__tests__/read.test.js +0 -78
  502. package/dist/commands/docs/__tests__/read.test.js.map +0 -1
  503. package/dist/commands/docs/__tests__/search.test.js +0 -254
  504. package/dist/commands/docs/__tests__/search.test.js.map +0 -1
  505. package/dist/commands/documents/__tests__/create.test.js +0 -967
  506. package/dist/commands/documents/__tests__/create.test.js.map +0 -1
  507. package/dist/commands/documents/__tests__/delete.test.js +0 -268
  508. package/dist/commands/documents/__tests__/delete.test.js.map +0 -1
  509. package/dist/commands/documents/__tests__/get.test.js +0 -209
  510. package/dist/commands/documents/__tests__/get.test.js.map +0 -1
  511. package/dist/commands/documents/__tests__/query.test.js +0 -405
  512. package/dist/commands/documents/__tests__/query.test.js.map +0 -1
  513. package/dist/commands/documents/__tests__/validate.test.js +0 -226
  514. package/dist/commands/documents/__tests__/validate.test.js.map +0 -1
  515. package/dist/commands/graphql/__tests__/list.test.js +0 -228
  516. package/dist/commands/graphql/__tests__/list.test.js.map +0 -1
  517. package/dist/commands/graphql/__tests__/undeploy.test.js +0 -384
  518. package/dist/commands/graphql/__tests__/undeploy.test.js.map +0 -1
  519. package/dist/commands/hook/__tests__/attempt.test.js +0 -260
  520. package/dist/commands/hook/__tests__/attempt.test.js.map +0 -1
  521. package/dist/commands/hook/__tests__/create.test.js +0 -121
  522. package/dist/commands/hook/__tests__/create.test.js.map +0 -1
  523. package/dist/commands/hook/__tests__/delete.test.js +0 -220
  524. package/dist/commands/hook/__tests__/delete.test.js.map +0 -1
  525. package/dist/commands/hook/__tests__/list.test.js +0 -138
  526. package/dist/commands/hook/__tests__/list.test.js.map +0 -1
  527. package/dist/commands/hook/__tests__/logs.test.js +0 -770
  528. package/dist/commands/hook/__tests__/logs.test.js.map +0 -1
  529. package/dist/commands/manifest/__tests__/extract.test.js +0 -123
  530. package/dist/commands/manifest/__tests__/extract.test.js.map +0 -1
  531. package/dist/commands/mcp/__tests__/configure.test.js +0 -397
  532. package/dist/commands/mcp/__tests__/configure.test.js.map +0 -1
  533. package/dist/commands/media/__tests__/create-aspect.test.js +0 -160
  534. package/dist/commands/media/__tests__/create-aspect.test.js.map +0 -1
  535. package/dist/commands/media/__tests__/delete-aspect.test.js +0 -333
  536. package/dist/commands/media/__tests__/delete-aspect.test.js.map +0 -1
  537. package/dist/commands/media/__tests__/deploy-aspect.test.js +0 -632
  538. package/dist/commands/media/__tests__/deploy-aspect.test.js.map +0 -1
  539. package/dist/commands/media/__tests__/export.test.js +0 -398
  540. package/dist/commands/media/__tests__/export.test.js.map +0 -1
  541. package/dist/commands/media/__tests__/import.test.js +0 -281
  542. package/dist/commands/media/__tests__/import.test.js.map +0 -1
  543. package/dist/commands/openapi/__tests__/get.test.js +0 -149
  544. package/dist/commands/openapi/__tests__/get.test.js.map +0 -1
  545. package/dist/commands/openapi/__tests__/list.test.js +0 -113
  546. package/dist/commands/openapi/__tests__/list.test.js.map +0 -1
  547. package/dist/commands/projects/__tests__/list.test.js +0 -153
  548. package/dist/commands/projects/__tests__/list.test.js.map +0 -1
  549. package/dist/commands/schema/__tests__/delete.test.js +0 -209
  550. package/dist/commands/schema/__tests__/delete.test.js.map +0 -1
  551. package/dist/commands/schema/__tests__/extract.test.js +0 -113
  552. package/dist/commands/schema/__tests__/extract.test.js.map +0 -1
  553. package/dist/commands/schema/__tests__/validate.test.js +0 -104
  554. package/dist/commands/schema/__tests__/validate.test.js.map +0 -1
  555. package/dist/commands/telemetry/__tests__/disable.test.js +0 -145
  556. package/dist/commands/telemetry/__tests__/disable.test.js.map +0 -1
  557. package/dist/commands/telemetry/__tests__/enable.test.js +0 -131
  558. package/dist/commands/telemetry/__tests__/enable.test.js.map +0 -1
  559. package/dist/commands/telemetry/__tests__/status.test.js +0 -153
  560. package/dist/commands/telemetry/__tests__/status.test.js.map +0 -1
  561. package/dist/commands/tokens/__tests__/add.test.js +0 -420
  562. package/dist/commands/tokens/__tests__/add.test.js.map +0 -1
  563. package/dist/commands/tokens/__tests__/delete.test.js +0 -375
  564. package/dist/commands/tokens/__tests__/delete.test.js.map +0 -1
  565. package/dist/commands/tokens/__tests__/list.test.js +0 -368
  566. package/dist/commands/tokens/__tests__/list.test.js.map +0 -1
  567. package/dist/commands/users/__tests__/invite.test.js +0 -341
  568. package/dist/commands/users/__tests__/invite.test.js.map +0 -1
  569. package/dist/commands/users/__tests__/list.test.js +0 -401
  570. package/dist/commands/users/__tests__/list.test.js.map +0 -1
  571. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js +0 -77
  572. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js.map +0 -1
  573. package/dist/services/__tests__/datasetAliases.test.js +0 -131
  574. package/dist/services/__tests__/datasetAliases.test.js.map +0 -1
  575. package/dist/services/__tests__/datasets.test.js +0 -436
  576. package/dist/services/__tests__/datasets.test.js.map +0 -1
  577. package/dist/services/__tests__/graphql.test.js +0 -43
  578. package/dist/services/__tests__/graphql.test.js.map +0 -1
  579. package/dist/services/__tests__/mediaLibraries.test.js +0 -88
  580. package/dist/services/__tests__/mediaLibraries.test.js.map +0 -1
  581. package/dist/services/__tests__/projects.test.js +0 -41
  582. package/dist/services/__tests__/projects.test.js.map +0 -1
  583. package/dist/services/__tests__/userApplications.test.js +0 -113
  584. package/dist/services/__tests__/userApplications.test.js.map +0 -1
  585. package/dist/util/__tests__/appId.test.js +0 -31
  586. package/dist/util/__tests__/appId.test.js.map +0 -1
  587. package/dist/util/__tests__/cliClient.test.js +0 -184
  588. package/dist/util/__tests__/cliClient.test.js.map +0 -1
  589. package/dist/util/__tests__/compareDependencyVersions.test.js +0 -426
  590. package/dist/util/__tests__/compareDependencyVersions.test.js.map +0 -1
  591. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js +0 -74
  592. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js.map +0 -1
  593. package/dist/util/__tests__/findNdjsonEntry.test.js +0 -54
  594. package/dist/util/__tests__/findNdjsonEntry.test.js.map +0 -1
  595. package/dist/util/__tests__/getCliVersion.test.js +0 -28
  596. package/dist/util/__tests__/getCliVersion.test.js.map +0 -1
  597. package/dist/util/__tests__/getLocalPackageVersion.test.js +0 -84
  598. package/dist/util/__tests__/getLocalPackageVersion.test.js.map +0 -1
  599. package/dist/util/__tests__/getWorkspace.test.js +0 -37
  600. package/dist/util/__tests__/getWorkspace.test.js.map +0 -1
  601. package/dist/util/__tests__/readPackageJson.test.js +0 -69
  602. package/dist/util/__tests__/readPackageJson.test.js.map +0 -1
  603. package/dist/util/__tests__/warnAboutMissingAppId.test.js +0 -28
  604. package/dist/util/__tests__/warnAboutMissingAppId.test.js.map +0 -1
  605. package/dist/util/packageManager/__tests__/installPackages.test.js +0 -388
  606. package/dist/util/packageManager/__tests__/installPackages.test.js.map +0 -1
  607. package/dist/util/validation/ __tests__/validateDocuments.test.js +0 -274
  608. package/dist/util/validation/ __tests__/validateDocuments.test.js.map +0 -1
@@ -1,697 +0,0 @@
1
- import { runCommand } from '@oclif/test';
2
- import { findProjectRoot, getCliConfig, getCliToken, getConfig } from '@sanity/cli-core';
3
- import { mockApi, testCommand } from '@sanity/cli-test';
4
- import nock from 'nock';
5
- import { afterEach, describe, expect, test, vi } from 'vitest';
6
- import { findSanityModulesVersions } from '../../actions/versions/findSanityModulesVersions.js';
7
- import { Debug } from '../debug.js';
8
- // Mock CLI core functions using relative paths
9
- vi.mock('../../../../cli-core/src/services/getCliToken.js', ()=>({
10
- getCliToken: vi.fn()
11
- }));
12
- vi.mock('../../../../cli-core/src/services/cliUserConfig.js', ()=>({
13
- getConfig: vi.fn()
14
- }));
15
- vi.mock('../../../../cli-core/src/config/findProjectRoot.js', ()=>({
16
- findProjectRoot: vi.fn()
17
- }));
18
- // Mock the CLI config function like in manage.test.ts
19
- vi.mock('../../../../cli-core/src/config/cli/getCliConfig.js', ()=>({
20
- getCliConfig: vi.fn()
21
- }));
22
- // Mock version-related functions
23
- vi.mock('../../actions/versions/findSanityModulesVersions.js', ()=>({
24
- findSanityModulesVersions: vi.fn()
25
- }));
26
- afterEach(()=>{
27
- vi.clearAllMocks();
28
- const pending = nock.pendingMocks();
29
- nock.cleanAll();
30
- expect(pending, 'pending mocks').toEqual([]);
31
- });
32
- describe('#debug', ()=>{
33
- test('help text is correct', async ()=>{
34
- const { stdout } = await runCommand('debug --help');
35
- expect(stdout).toMatchInlineSnapshot(`
36
- "Provides diagnostic info for Sanity Studio troubleshooting
37
-
38
- USAGE
39
- $ sanity debug [--secrets]
40
-
41
- FLAGS
42
- --secrets Include API keys in output
43
-
44
- DESCRIPTION
45
- Provides diagnostic info for Sanity Studio troubleshooting
46
-
47
- EXAMPLES
48
- $ sanity debug
49
-
50
- $ sanity debug --secrets
51
-
52
- "
53
- `);
54
- });
55
- test('shows debug information with authentication and config details', async ()=>{
56
- // Mock authentication
57
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
58
- vi.mocked(getConfig).mockImplementation(async (key)=>{
59
- if (key === 'authToken') return 'mock-auth-token';
60
- if (key === 'telemetryConsent') return {
61
- updatedAt: 1_234_567_890,
62
- value: {
63
- status: 'granted',
64
- type: 'explicit'
65
- }
66
- };
67
- return undefined;
68
- });
69
- // Mock project configuration
70
- vi.mocked(findProjectRoot).mockResolvedValue({
71
- directory: '/test/project',
72
- path: '/test/project/sanity.cli.ts',
73
- type: 'studio'
74
- });
75
- vi.mocked(getCliConfig).mockResolvedValue({
76
- api: {
77
- dataset: 'production',
78
- projectId: 'project123'
79
- }
80
- });
81
- // Mock version info with some packages
82
- vi.mocked(findSanityModulesVersions).mockResolvedValue([
83
- {
84
- declared: '^3.0.0',
85
- installed: '3.0.0',
86
- isGlobal: false,
87
- isPinned: false,
88
- latest: '3.0.0',
89
- name: 'sanity',
90
- needsUpdate: false
91
- },
92
- {
93
- declared: '^3.0.0',
94
- installed: '3.0.0',
95
- isGlobal: false,
96
- isPinned: false,
97
- latest: '3.1.0',
98
- name: '@sanity/cli',
99
- needsUpdate: true
100
- }
101
- ]);
102
- const { stdout } = await testCommand(Debug, []);
103
- // Check that basic debug output structure is present
104
- expect(stdout).toContain('User:');
105
- expect(stdout).toContain('Authentication:');
106
- expect(stdout).toContain('<redacted>');
107
- expect(stdout).toContain('Global config');
108
- expect(stdout).toContain('Package versions:');
109
- expect(stdout).toContain('sanity');
110
- expect(stdout).toContain('3.0.0');
111
- expect(stdout).toContain('(up to date)');
112
- expect(stdout).toContain('(latest: 3.1.0)');
113
- });
114
- test('shows redacted auth token by default', async ()=>{
115
- // Mock basic authentication
116
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
117
- vi.mocked(getConfig).mockImplementation(async (key)=>{
118
- if (key === 'authToken') return 'mock-auth-token';
119
- return undefined;
120
- });
121
- // Mock minimal project setup
122
- vi.mocked(findProjectRoot).mockResolvedValue({
123
- directory: '/test/project',
124
- path: '/test/project/sanity.cli.ts',
125
- type: 'studio'
126
- });
127
- vi.mocked(getCliConfig).mockResolvedValue({
128
- api: {
129
- projectId: 'project123'
130
- }
131
- });
132
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
133
- const { stdout } = await testCommand(Debug, []);
134
- expect(stdout).toContain('<redacted>');
135
- expect(stdout).toContain('(run with --secrets to reveal token)');
136
- expect(stdout).not.toContain('mock-auth-token');
137
- });
138
- test('shows actual auth token with --secrets flag', async ()=>{
139
- // Mock authentication with specific token
140
- vi.mocked(getCliToken).mockResolvedValue('secret-token-12345');
141
- vi.mocked(getConfig).mockImplementation(async (key)=>{
142
- if (key === 'authToken') return 'secret-token-12345';
143
- return undefined;
144
- });
145
- // Mock minimal project setup
146
- vi.mocked(findProjectRoot).mockResolvedValue({
147
- directory: '/test/project',
148
- path: '/test/project/sanity.cli.ts',
149
- type: 'studio'
150
- });
151
- vi.mocked(getCliConfig).mockResolvedValue({
152
- api: {
153
- projectId: 'project123'
154
- }
155
- });
156
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
157
- const { stdout } = await testCommand(Debug, [
158
- '--secrets'
159
- ]);
160
- expect(stdout).toContain('secret-token-12345');
161
- expect(stdout).not.toContain('<redacted>');
162
- expect(stdout).not.toContain('(run with --secrets to reveal token)');
163
- });
164
- test('handles unauthenticated user', async ()=>{
165
- // Mock no authentication
166
- vi.mocked(getCliToken).mockResolvedValue(undefined);
167
- vi.mocked(getConfig).mockImplementation(async ()=>undefined);
168
- const { error } = await testCommand(Debug, []);
169
- // When not authenticated, the command should error trying to get client
170
- expect(error?.message).toContain('Failed to gather debug information');
171
- });
172
- test('shows package versions with update information', async ()=>{
173
- // Mock basic authentication
174
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
175
- vi.mocked(getConfig).mockImplementation(async (key)=>{
176
- if (key === 'authToken') return 'mock-auth-token';
177
- return undefined;
178
- });
179
- // Mock project setup
180
- vi.mocked(findProjectRoot).mockResolvedValue({
181
- directory: '/test/project',
182
- path: '/test/project/sanity.cli.ts',
183
- type: 'studio'
184
- });
185
- vi.mocked(getCliConfig).mockResolvedValue({
186
- api: {
187
- projectId: 'project123'
188
- }
189
- });
190
- // Mock version info with mixed update statuses
191
- vi.mocked(findSanityModulesVersions).mockResolvedValue([
192
- {
193
- declared: '^3.0.0',
194
- installed: '3.0.0',
195
- isGlobal: false,
196
- isPinned: false,
197
- latest: '3.0.0',
198
- name: 'sanity',
199
- needsUpdate: false
200
- },
201
- {
202
- declared: '^2.9.0',
203
- installed: '2.9.0',
204
- isGlobal: false,
205
- isPinned: false,
206
- latest: '3.1.0',
207
- name: '@sanity/cli',
208
- needsUpdate: true
209
- },
210
- {
211
- declared: '^3.0.0',
212
- installed: undefined,
213
- isGlobal: false,
214
- isPinned: false,
215
- latest: '3.0.0',
216
- name: '@sanity/types',
217
- needsUpdate: true
218
- }
219
- ]);
220
- const { stdout } = await testCommand(Debug, []);
221
- expect(stdout).toContain('Package versions:');
222
- expect(stdout).toContain('sanity');
223
- expect(stdout).toContain('3.0.0');
224
- expect(stdout).toContain('(up to date)');
225
- expect(stdout).toContain('(latest: 3.1.0)');
226
- expect(stdout).toContain('<missing>');
227
- });
228
- test('handles errors gracefully', async ()=>{
229
- vi.mocked(getCliToken).mockRejectedValue(new Error('Auth system unavailable'));
230
- const { error } = await testCommand(Debug, []);
231
- expect(error?.message).toContain('Failed to gather debug information');
232
- expect(error?.message).toContain('Auth system unavailable');
233
- });
234
- test('displays user information when user is present', async ()=>{
235
- // Mock authentication
236
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
237
- vi.mocked(getConfig).mockImplementation(async (key)=>{
238
- if (key === 'authToken') return 'mock-auth-token';
239
- return undefined;
240
- });
241
- // Mock project configuration but no project info from API
242
- vi.mocked(findProjectRoot).mockResolvedValue({
243
- directory: '/test/project',
244
- path: '/test/project/sanity.cli.ts',
245
- type: 'studio'
246
- });
247
- vi.mocked(getCliConfig).mockResolvedValue({
248
- api: {
249
- projectId: 'project123'
250
- }
251
- });
252
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
253
- // Mock the /me API endpoint to return user info
254
- mockApi({
255
- apiVersion: 'v2025-08-06',
256
- uri: '/users/me'
257
- }).reply(200, {
258
- email: 'test@example.com',
259
- id: 'user123',
260
- name: 'Test User'
261
- });
262
- // Mock the project API endpoint to return no project (404)
263
- mockApi({
264
- apiVersion: 'v2025-08-06',
265
- uri: '/projects/project123'
266
- }).reply(404);
267
- const { stdout } = await testCommand(Debug, []);
268
- expect(stdout).toContain('User:');
269
- expect(stdout).toContain("Email: 'test@example.com'");
270
- expect(stdout).toContain("ID: 'user123'");
271
- expect(stdout).toContain("Name: 'Test User'");
272
- });
273
- test('displays project information when project is present', async ()=>{
274
- // Mock authentication
275
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
276
- vi.mocked(getConfig).mockImplementation(async (key)=>{
277
- if (key === 'authToken') return 'mock-auth-token';
278
- return undefined;
279
- });
280
- // Mock project configuration
281
- vi.mocked(findProjectRoot).mockResolvedValue({
282
- directory: '/test/project',
283
- path: '/test/project/sanity.cli.ts',
284
- type: 'studio'
285
- });
286
- vi.mocked(getCliConfig).mockResolvedValue({
287
- api: {
288
- projectId: 'project123'
289
- }
290
- });
291
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
292
- // Mock the /me API endpoint to return user info
293
- mockApi({
294
- apiVersion: 'v2025-08-06',
295
- uri: '/users/me'
296
- }).reply(200, {
297
- email: 'test@example.com',
298
- id: 'user123',
299
- name: 'Test User'
300
- });
301
- // Mock the project API endpoint to return project info
302
- mockApi({
303
- apiVersion: 'v2025-08-06',
304
- uri: '/projects/project123'
305
- }).reply(200, {
306
- displayName: 'Test Project',
307
- id: 'project123',
308
- members: [
309
- {
310
- id: 'user123',
311
- roles: [
312
- {
313
- name: 'administrator'
314
- }
315
- ]
316
- }
317
- ],
318
- studioHost: 'test-project'
319
- });
320
- const { stdout } = await testCommand(Debug, []);
321
- expect(stdout).toContain('Project:');
322
- expect(stdout).toContain("Display name: 'Test Project'");
323
- expect(stdout).toContain("ID: 'project123'");
324
- expect(stdout).toContain("Roles: [ 'administrator' ]");
325
- });
326
- test('handles case when no auth token is present', async ()=>{
327
- // Mock no authentication
328
- vi.mocked(getCliToken).mockResolvedValue(undefined);
329
- vi.mocked(getConfig).mockImplementation(async ()=>undefined);
330
- // Mock project configuration
331
- vi.mocked(findProjectRoot).mockResolvedValue({
332
- directory: '/test/project',
333
- path: '/test/project/sanity.cli.ts',
334
- type: 'studio'
335
- });
336
- vi.mocked(getCliConfig).mockResolvedValue({
337
- api: {
338
- projectId: 'project123'
339
- }
340
- });
341
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
342
- // Command should fail when no auth token is present since it requires authentication
343
- const { error } = await testCommand(Debug, []);
344
- expect(error?.message).toContain('Failed to gather debug information');
345
- });
346
- test('handles case when no project config is present', async ()=>{
347
- // Mock authentication
348
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
349
- vi.mocked(getConfig).mockImplementation(async (key)=>{
350
- if (key === 'authToken') return 'mock-auth-token';
351
- return undefined;
352
- });
353
- // Mock project configuration with no projectId (invalid config)
354
- vi.mocked(findProjectRoot).mockResolvedValue({
355
- directory: '/test/project',
356
- path: '/test/project/sanity.cli.ts',
357
- type: 'studio'
358
- });
359
- vi.mocked(getCliConfig).mockResolvedValue({
360
- api: {
361
- }
362
- });
363
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
364
- // Mock the /me API endpoint to return user info
365
- mockApi({
366
- apiVersion: 'v2025-08-06',
367
- uri: '/users/me'
368
- }).reply(200, {
369
- email: 'test@example.com',
370
- id: 'user123',
371
- name: 'Test User'
372
- });
373
- // No project API mock needed since no valid projectId
374
- const { stdout } = await testCommand(Debug, []);
375
- expect(stdout).toContain('Global config');
376
- expect(stdout).toContain('Project config');
377
- expect(stdout).toContain('Missing required "api.projectId" key');
378
- });
379
- test('handles case when no versions are present', async ()=>{
380
- // Mock authentication
381
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
382
- vi.mocked(getConfig).mockImplementation(async (key)=>{
383
- if (key === 'authToken') return 'mock-auth-token';
384
- return undefined;
385
- });
386
- // Mock project configuration
387
- vi.mocked(findProjectRoot).mockResolvedValue({
388
- directory: '/test/project',
389
- path: '/test/project/sanity.cli.ts',
390
- type: 'studio'
391
- });
392
- vi.mocked(getCliConfig).mockResolvedValue({
393
- api: {
394
- projectId: 'project123'
395
- }
396
- });
397
- // Mock findSanityModulesVersions to return empty array (no versions)
398
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
399
- // Mock the /me API endpoint to return user info
400
- mockApi({
401
- apiVersion: 'v2025-08-06',
402
- uri: '/users/me'
403
- }).reply(200, {
404
- email: 'test@example.com',
405
- id: 'user123',
406
- name: 'Test User'
407
- });
408
- // Mock the project API endpoint to return project info
409
- mockApi({
410
- apiVersion: 'v2025-08-06',
411
- uri: '/projects/project123'
412
- }).reply(200, {
413
- displayName: 'Test Project',
414
- id: 'project123',
415
- members: [
416
- {
417
- id: 'user123',
418
- roles: [
419
- {
420
- name: 'administrator'
421
- }
422
- ]
423
- }
424
- ],
425
- studioHost: 'test-project'
426
- });
427
- const { stdout } = await testCommand(Debug, []);
428
- expect(stdout).toContain('Global config');
429
- expect(stdout).toContain('Package versions:');
430
- // Should show the heading but no packages since the array is empty
431
- });
432
- test('handles error case with unknown error type', async ()=>{
433
- // Mock project configuration
434
- vi.mocked(findProjectRoot).mockResolvedValue({
435
- directory: '/test/project',
436
- path: '/test/project/sanity.cli.ts',
437
- type: 'studio'
438
- });
439
- vi.mocked(getCliConfig).mockResolvedValue({
440
- api: {
441
- projectId: 'project123'
442
- }
443
- });
444
- // Mock getCliToken to throw a non-Error object to trigger unknown error path
445
- vi.mocked(getCliToken).mockRejectedValue('string error');
446
- const { error } = await testCommand(Debug, []);
447
- expect(error).toBeTruthy();
448
- expect(error?.message).toContain('Failed to gather debug information');
449
- expect(error?.message).toContain('Unknown error');
450
- });
451
- test('handles global config error gracefully', async ()=>{
452
- // Mock authentication
453
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
454
- // Mock getConfig to throw an error
455
- vi.mocked(getConfig).mockRejectedValue(new Error('Config access error'));
456
- // Mock project configuration
457
- vi.mocked(findProjectRoot).mockResolvedValue({
458
- directory: '/test/project',
459
- path: '/test/project/sanity.cli.ts',
460
- type: 'studio'
461
- });
462
- vi.mocked(getCliConfig).mockResolvedValue({
463
- api: {
464
- projectId: 'project123'
465
- }
466
- });
467
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
468
- // Mock the /me API endpoint to return user info
469
- mockApi({
470
- apiVersion: 'v2025-08-06',
471
- uri: '/users/me'
472
- }).reply(200, {
473
- email: 'test@example.com',
474
- id: 'user123',
475
- name: 'Test User'
476
- });
477
- // Mock the project API endpoint to return project info
478
- mockApi({
479
- apiVersion: 'v2025-08-06',
480
- uri: '/projects/project123'
481
- }).reply(200, {
482
- displayName: 'Test Project',
483
- id: 'project123',
484
- members: [],
485
- studioHost: 'test-project'
486
- });
487
- const { stdout } = await testCommand(Debug, []);
488
- // Should continue to work despite global config error
489
- expect(stdout).toContain('Global config');
490
- expect(stdout).toContain('User:');
491
- expect(stdout).toContain('Project:');
492
- });
493
- test('handles user API error and shows error message', async ()=>{
494
- // Mock authentication
495
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
496
- vi.mocked(getConfig).mockImplementation(async (key)=>{
497
- if (key === 'authToken') return 'mock-auth-token';
498
- return undefined;
499
- });
500
- // Mock project configuration
501
- vi.mocked(findProjectRoot).mockResolvedValue({
502
- directory: '/test/project',
503
- path: '/test/project/sanity.cli.ts',
504
- type: 'studio'
505
- });
506
- vi.mocked(getCliConfig).mockResolvedValue({
507
- api: {
508
- projectId: 'project123'
509
- }
510
- });
511
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
512
- // Mock the /me API endpoint to return an error
513
- mockApi({
514
- apiVersion: 'v2025-08-06',
515
- uri: '/users/me'
516
- }).reply(500, {
517
- error: 'Internal server error'
518
- });
519
- const { stdout } = await testCommand(Debug, []);
520
- expect(stdout).toContain('User:');
521
- // Should show error message in red
522
- expect(stdout).toMatch(/Request failed with status code 500|Failed to fetch user info|Internal server error/);
523
- });
524
- test('handles project API error and continues gracefully', async ()=>{
525
- // Mock authentication
526
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
527
- vi.mocked(getConfig).mockImplementation(async (key)=>{
528
- if (key === 'authToken') return 'mock-auth-token';
529
- return undefined;
530
- });
531
- // Mock project configuration
532
- vi.mocked(findProjectRoot).mockResolvedValue({
533
- directory: '/test/project',
534
- path: '/test/project/sanity.cli.ts',
535
- type: 'studio'
536
- });
537
- vi.mocked(getCliConfig).mockResolvedValue({
538
- api: {
539
- projectId: 'project123'
540
- }
541
- });
542
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
543
- // Mock the /me API endpoint to return user info
544
- mockApi({
545
- apiVersion: 'v2025-08-06',
546
- uri: '/users/me'
547
- }).reply(200, {
548
- email: 'test@example.com',
549
- id: 'user123',
550
- name: 'Test User'
551
- });
552
- // Mock the project API endpoint to return an error
553
- mockApi({
554
- apiVersion: 'v2025-08-06',
555
- uri: '/projects/project123'
556
- }).reply(404, {
557
- error: 'Project not found'
558
- });
559
- const { stdout } = await testCommand(Debug, []);
560
- expect(stdout).toContain('User:');
561
- expect(stdout).toContain("Email: 'test@example.com'");
562
- // Should not contain Project section since it failed to load
563
- expect(stdout).not.toContain('Project:');
564
- });
565
- test('handles project with null response and shows error', async ()=>{
566
- // Mock authentication
567
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
568
- vi.mocked(getConfig).mockImplementation(async (key)=>{
569
- if (key === 'authToken') return 'mock-auth-token';
570
- return undefined;
571
- });
572
- // Mock project configuration
573
- vi.mocked(findProjectRoot).mockResolvedValue({
574
- directory: '/test/project',
575
- path: '/test/project/sanity.cli.ts',
576
- type: 'studio'
577
- });
578
- vi.mocked(getCliConfig).mockResolvedValue({
579
- api: {
580
- projectId: 'project123'
581
- }
582
- });
583
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
584
- // Mock the /me API endpoint to return user info
585
- mockApi({
586
- apiVersion: 'v2025-08-06',
587
- uri: '/users/me'
588
- }).reply(200, {
589
- email: 'test@example.com',
590
- id: 'user123',
591
- name: 'Test User'
592
- });
593
- // Mock the project API endpoint to return null
594
- mockApi({
595
- apiVersion: 'v2025-08-06',
596
- uri: '/projects/project123'
597
- }).reply(200, ()=>{
598
- return null;
599
- });
600
- const { stdout } = await testCommand(Debug, []);
601
- expect(stdout).toContain('User:');
602
- expect(stdout).toContain("Email: 'test@example.com'");
603
- // Project error is handled internally but not displayed to user
604
- expect(stdout).not.toContain('Project:');
605
- });
606
- test('handles project with no members array gracefully', async ()=>{
607
- // Mock authentication
608
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
609
- vi.mocked(getConfig).mockImplementation(async (key)=>{
610
- if (key === 'authToken') return 'mock-auth-token';
611
- return undefined;
612
- });
613
- // Mock project configuration
614
- vi.mocked(findProjectRoot).mockResolvedValue({
615
- directory: '/test/project',
616
- path: '/test/project/sanity.cli.ts',
617
- type: 'studio'
618
- });
619
- vi.mocked(getCliConfig).mockResolvedValue({
620
- api: {
621
- projectId: 'project123'
622
- }
623
- });
624
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
625
- // Mock the /me API endpoint to return user info
626
- mockApi({
627
- apiVersion: 'v2025-08-06',
628
- uri: '/users/me'
629
- }).reply(200, {
630
- email: 'test@example.com',
631
- id: 'user123',
632
- name: 'Test User'
633
- });
634
- // Mock the project API endpoint to return project with no members
635
- mockApi({
636
- apiVersion: 'v2025-08-06',
637
- uri: '/projects/project123'
638
- }).reply(200, {
639
- displayName: 'Test Project',
640
- id: 'project123',
641
- studioHost: 'test-project'
642
- });
643
- const { stdout } = await testCommand(Debug, []);
644
- expect(stdout).toContain('Project:');
645
- expect(stdout).toContain("Display name: 'Test Project'");
646
- expect(stdout).toContain("Roles: [ '<none>' ]");
647
- });
648
- test('handles project member with no roles gracefully', async ()=>{
649
- // Mock authentication
650
- vi.mocked(getCliToken).mockResolvedValue('mock-auth-token');
651
- vi.mocked(getConfig).mockImplementation(async (key)=>{
652
- if (key === 'authToken') return 'mock-auth-token';
653
- return undefined;
654
- });
655
- // Mock project configuration
656
- vi.mocked(findProjectRoot).mockResolvedValue({
657
- directory: '/test/project',
658
- path: '/test/project/sanity.cli.ts',
659
- type: 'studio'
660
- });
661
- vi.mocked(getCliConfig).mockResolvedValue({
662
- api: {
663
- projectId: 'project123'
664
- }
665
- });
666
- vi.mocked(findSanityModulesVersions).mockResolvedValue([]);
667
- // Mock the /me API endpoint to return user info
668
- mockApi({
669
- apiVersion: 'v2025-08-06',
670
- uri: '/users/me'
671
- }).reply(200, {
672
- email: 'test@example.com',
673
- id: 'user123',
674
- name: 'Test User'
675
- });
676
- // Mock the project API endpoint to return project with member but no roles
677
- mockApi({
678
- apiVersion: 'v2025-08-06',
679
- uri: '/projects/project123'
680
- }).reply(200, {
681
- displayName: 'Test Project',
682
- id: 'project123',
683
- members: [
684
- {
685
- id: 'user123'
686
- }
687
- ],
688
- studioHost: 'test-project'
689
- });
690
- const { stdout } = await testCommand(Debug, []);
691
- expect(stdout).toContain('Project:');
692
- expect(stdout).toContain("Display name: 'Test Project'");
693
- expect(stdout).toContain("Roles: [ '<none>' ]");
694
- });
695
- });
696
-
697
- //# sourceMappingURL=debug.test.js.map