@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.
- package/dist/actions/dataset/create.d.ts +49 -0
- package/dist/actions/dataset/create.js +48 -0
- package/dist/actions/dataset/create.js.map +1 -0
- package/dist/actions/dataset/determineDatasetAclMode.d.ts +37 -0
- package/dist/actions/dataset/determineDatasetAclMode.js +36 -0
- package/dist/actions/dataset/determineDatasetAclMode.js.map +1 -0
- package/dist/actions/debug/gatherDebugInfo.js +15 -21
- package/dist/actions/debug/gatherDebugInfo.js.map +1 -1
- package/dist/actions/debug/types.d.ts +0 -2
- package/dist/actions/debug/types.js.map +1 -1
- package/dist/actions/deploy/deployApp.js +13 -0
- package/dist/actions/deploy/deployApp.js.map +1 -1
- package/dist/actions/dev/startStudioDevServer.js +3 -8
- package/dist/actions/dev/startStudioDevServer.js.map +1 -1
- package/dist/actions/dev/types.d.ts +1 -3
- package/dist/actions/dev/types.js.map +1 -1
- package/dist/actions/documents/validate.d.ts +0 -2
- package/dist/actions/documents/validate.js +21 -1
- package/dist/actions/documents/validate.js.map +1 -1
- package/dist/actions/exec/execScript.js +1 -1
- package/dist/actions/exec/execScript.js.map +1 -1
- package/dist/actions/graphql/getGraphQLAPIs.js +1 -1
- package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -1
- package/dist/actions/init/remoteTemplate.js +1 -1
- package/dist/actions/init/remoteTemplate.js.map +1 -1
- package/dist/actions/manifest/extractAppManifest.d.ts +20 -0
- package/dist/actions/manifest/extractAppManifest.js +51 -0
- package/dist/actions/manifest/extractAppManifest.js.map +1 -0
- package/dist/actions/manifest/extractManifest.js +2 -5
- package/dist/actions/manifest/extractManifest.js.map +1 -1
- package/dist/actions/manifest/types.d.ts +6 -1
- package/dist/actions/manifest/types.js.map +1 -1
- package/dist/actions/media/importAspects.js +2 -1
- package/dist/actions/media/importAspects.js.map +1 -1
- package/dist/actions/schema/deleteSchemaAction.d.ts +13 -5
- package/dist/actions/schema/deleteSchemaAction.js +12 -17
- package/dist/actions/schema/deleteSchemaAction.js.map +1 -1
- package/dist/actions/schema/deploySchemas.d.ts +15 -0
- package/dist/actions/schema/deploySchemas.js +98 -0
- package/dist/actions/schema/deploySchemas.js.map +1 -0
- package/dist/actions/schema/listSchemas.d.ts +12 -0
- package/dist/actions/schema/listSchemas.js +119 -0
- package/dist/actions/schema/listSchemas.js.map +1 -0
- package/dist/actions/schema/schemaStoreTypes.d.ts +0 -11
- package/dist/actions/schema/schemaStoreTypes.js.map +1 -1
- package/dist/actions/schema/utils/debug.d.ts +2 -0
- package/dist/actions/schema/utils/debug.js +5 -0
- package/dist/actions/schema/utils/debug.js.map +1 -0
- package/dist/actions/schema/utils/manifestExtractor.d.ts +3 -8
- package/dist/actions/schema/utils/manifestExtractor.js +12 -17
- package/dist/actions/schema/utils/manifestExtractor.js.map +1 -1
- package/dist/actions/schema/utils/manifestReader.d.ts +2 -9
- package/dist/actions/schema/utils/manifestReader.js +6 -12
- package/dist/actions/schema/utils/manifestReader.js.map +1 -1
- package/dist/actions/schema/utils/schemaStoreOutStrings.d.ts +0 -1
- package/dist/actions/schema/utils/schemaStoreOutStrings.js +1 -1
- package/dist/actions/schema/utils/schemaStoreOutStrings.js.map +1 -1
- package/dist/actions/schema/utils/schemaStoreValidation.d.ts +10 -62
- package/dist/actions/schema/utils/schemaStoreValidation.js +38 -125
- package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -1
- package/dist/actions/schema/utils/uniqByProjectIdDataset.d.ts +14 -0
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js +9 -0
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -0
- package/dist/actions/users/getMembersForProject.d.ts +1 -3
- package/dist/actions/users/getMembersForProject.js +6 -17
- package/dist/actions/users/getMembersForProject.js.map +1 -1
- package/dist/actions/users/types.d.ts +0 -11
- package/dist/actions/users/types.js.map +1 -1
- package/dist/commands/backup/disable.js +5 -11
- package/dist/commands/backup/disable.js.map +1 -1
- package/dist/commands/backup/enable.js +5 -11
- package/dist/commands/backup/enable.js.map +1 -1
- package/dist/commands/backup/list.js +7 -8
- package/dist/commands/backup/list.js.map +1 -1
- package/dist/commands/cors/add.js +5 -13
- package/dist/commands/cors/add.js.map +1 -1
- package/dist/commands/cors/delete.js +7 -15
- package/dist/commands/cors/delete.js.map +1 -1
- package/dist/commands/cors/list.js +2 -10
- package/dist/commands/cors/list.js.map +1 -1
- package/dist/commands/dataset/create.d.ts +0 -2
- package/dist/commands/dataset/create.js +8 -54
- package/dist/commands/dataset/create.js.map +1 -1
- package/dist/commands/dataset/export.js +4 -4
- package/dist/commands/dataset/export.js.map +1 -1
- package/dist/commands/debug.js +5 -9
- package/dist/commands/debug.js.map +1 -1
- package/dist/commands/dev.js +0 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/documents/create.d.ts +1 -0
- package/dist/commands/documents/create.js +10 -9
- package/dist/commands/documents/create.js.map +1 -1
- package/dist/commands/documents/delete.js +2 -3
- package/dist/commands/documents/delete.js.map +1 -1
- package/dist/commands/documents/get.js +2 -3
- package/dist/commands/documents/get.js.map +1 -1
- package/dist/commands/documents/query.js +2 -3
- package/dist/commands/documents/query.js.map +1 -1
- package/dist/commands/documents/validate.js +0 -20
- package/dist/commands/documents/validate.js.map +1 -1
- package/dist/commands/graphql/list.js +2 -2
- package/dist/commands/graphql/list.js.map +1 -1
- package/dist/commands/graphql/undeploy.js +4 -9
- package/dist/commands/graphql/undeploy.js.map +1 -1
- package/dist/commands/hook/create.js +2 -6
- package/dist/commands/hook/create.js.map +1 -1
- package/dist/commands/hook/delete.js +5 -17
- package/dist/commands/hook/delete.js.map +1 -1
- package/dist/commands/hook/list.js +2 -8
- package/dist/commands/hook/list.js.map +1 -1
- package/dist/commands/init.d.ts +6 -1
- package/dist/commands/init.js +358 -20
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/manifest/extract.js +7 -8
- package/dist/commands/manifest/extract.js.map +1 -1
- package/dist/commands/media/export.js +2 -2
- package/dist/commands/media/export.js.map +1 -1
- package/dist/commands/media/import.js +2 -2
- package/dist/commands/media/import.js.map +1 -1
- package/dist/commands/projects/list.js +2 -6
- package/dist/commands/projects/list.js.map +1 -1
- package/dist/commands/schema/delete.d.ts +1 -1
- package/dist/commands/schema/delete.js +20 -23
- package/dist/commands/schema/delete.js.map +1 -1
- package/dist/commands/schema/deploy.d.ts +16 -0
- package/dist/commands/schema/deploy.js +98 -0
- package/dist/commands/schema/deploy.js.map +1 -0
- package/dist/commands/schema/list.d.ts +15 -0
- package/dist/commands/schema/list.js +104 -0
- package/dist/commands/schema/list.js.map +1 -0
- package/dist/commands/tokens/add.js +3 -5
- package/dist/commands/tokens/add.js.map +1 -1
- package/dist/commands/users/invite.js +6 -17
- package/dist/commands/users/invite.js.map +1 -1
- package/dist/commands/users/list.js +4 -7
- package/dist/commands/users/list.js.map +1 -1
- package/dist/config/createCliConfig.d.ts +13 -4
- package/dist/prompts/init/promptForTypescript.d.ts +2 -0
- package/dist/prompts/init/promptForTypescript.js +15 -0
- package/dist/prompts/init/promptForTypescript.js.map +1 -0
- package/dist/prompts/promptForDatasetAclMode.d.ts +9 -0
- package/dist/prompts/promptForDatasetAclMode.js +27 -0
- package/dist/prompts/promptForDatasetAclMode.js.map +1 -0
- package/dist/prompts/promptForDatasetName.d.ts +1 -1
- package/dist/prompts/promptForDatasetName.js +4 -1
- package/dist/prompts/promptForDatasetName.js.map +1 -1
- package/dist/services/backup.d.ts +8 -0
- package/dist/services/backup.js +19 -0
- package/dist/services/backup.js.map +1 -1
- package/dist/services/cors.d.ts +23 -0
- package/dist/services/cors.js +38 -0
- package/dist/services/cors.js.map +1 -0
- package/dist/services/graphql.d.ts +7 -0
- package/dist/services/graphql.js +11 -0
- package/dist/services/graphql.js.map +1 -1
- package/dist/services/hooks.d.ts +2 -0
- package/dist/services/hooks.js +19 -0
- package/dist/services/hooks.js.map +1 -1
- package/dist/services/organizations.d.ts +4 -2
- package/dist/services/organizations.js +3 -2
- package/dist/services/organizations.js.map +1 -1
- package/dist/services/projects.d.ts +11 -0
- package/dist/services/projects.js +41 -0
- package/dist/services/projects.js.map +1 -1
- package/dist/services/schemas.d.ts +4 -0
- package/dist/services/schemas.js +40 -0
- package/dist/services/schemas.js.map +1 -0
- package/dist/services/user.d.ts +13 -0
- package/dist/services/user.js +27 -3
- package/dist/services/user.js.map +1 -1
- package/dist/services/userApplications.d.ts +3 -1
- package/dist/services/userApplications.js +5 -1
- package/dist/services/userApplications.js.map +1 -1
- package/dist/util/errorMessages.d.ts +1 -0
- package/dist/util/errorMessages.js +1 -0
- package/dist/util/errorMessages.js.map +1 -1
- package/dist/util/getCliVersion.js +1 -1
- package/dist/util/getCliVersion.js.map +1 -1
- package/dist/util/readPackageJson.d.ts +1 -15
- package/dist/util/readPackageJson.js +1 -1
- package/dist/util/readPackageJson.js.map +1 -1
- package/dist/util/uniqBy.d.ts +1 -0
- package/dist/util/uniqBy.js +14 -0
- package/dist/util/uniqBy.js.map +1 -0
- package/oclif.manifest.json +284 -139
- package/package.json +36 -33
- package/templates/app-quickstart/src/App.css +20 -0
- package/templates/app-quickstart/src/App.tsx +25 -0
- package/templates/app-quickstart/src/ExampleComponent.css +90 -0
- package/templates/app-quickstart/src/ExampleComponent.tsx +37 -0
- package/templates/app-sanity-ui/src/App.tsx +34 -0
- package/templates/app-sanity-ui/src/ExampleComponent.tsx +34 -0
- package/templates/app-sanity-ui/src/SanityUI.tsx +23 -0
- package/templates/blog/README.md +11 -0
- package/templates/blog/schemaTypes/author.js +50 -0
- package/templates/blog/schemaTypes/blockContent.js +67 -0
- package/templates/blog/schemaTypes/category.js +19 -0
- package/templates/blog/schemaTypes/index.js +6 -0
- package/templates/blog/schemaTypes/post.js +65 -0
- package/templates/blog/static/.gitkeep +1 -0
- package/templates/clean/README.md +9 -0
- package/templates/clean/schemaTypes/index.js +1 -0
- package/templates/clean/static/.gitkeep +1 -0
- package/templates/ecommerce/README.md +11 -0
- package/templates/ecommerce/plugins/.gitkeep +1 -0
- package/templates/ecommerce/plugins/barcode-input/BarcodeInput.js +62 -0
- package/templates/ecommerce/plugins/barcode-input/index.js +9 -0
- package/templates/ecommerce/plugins/barcode-input/schemaType.js +60 -0
- package/templates/ecommerce/schemaTypes/blockContent.js +67 -0
- package/templates/ecommerce/schemaTypes/category.js +39 -0
- package/templates/ecommerce/schemaTypes/index.js +23 -0
- package/templates/ecommerce/schemaTypes/locale/localeBlockContent.js +19 -0
- package/templates/ecommerce/schemaTypes/locale/localeString.js +19 -0
- package/templates/ecommerce/schemaTypes/locale/localeText.js +19 -0
- package/templates/ecommerce/schemaTypes/locale/supportedLanguages.js +5 -0
- package/templates/ecommerce/schemaTypes/product.js +83 -0
- package/templates/ecommerce/schemaTypes/productVariant.js +52 -0
- package/templates/ecommerce/schemaTypes/vendor.js +39 -0
- package/templates/ecommerce/static/.gitkeep +1 -0
- package/templates/get-started/README.md +9 -0
- package/templates/get-started/plugins/.gitkeep +1 -0
- package/templates/get-started/plugins/sanity-plugin-tutorial/CustomDefaultLayout.tsx +16 -0
- package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +104 -0
- package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +11 -0
- package/templates/get-started/schemaTypes/index.ts +1 -0
- package/templates/get-started/static/.gitkeep +1 -0
- package/templates/moviedb/README.md +10 -0
- package/templates/moviedb/schemaTypes/blockContent.js +67 -0
- package/templates/moviedb/schemaTypes/castMember.js +37 -0
- package/templates/moviedb/schemaTypes/crewMember.js +52 -0
- package/templates/moviedb/schemaTypes/index.js +22 -0
- package/templates/moviedb/schemaTypes/movie.js +85 -0
- package/templates/moviedb/schemaTypes/person.js +37 -0
- package/templates/moviedb/schemaTypes/plotSummaries.js +20 -0
- package/templates/moviedb/schemaTypes/plotSummary.js +24 -0
- package/templates/moviedb/schemaTypes/screening.js +81 -0
- package/templates/moviedb/static/.gitkeep +1 -0
- package/templates/quickstart/README.md +9 -0
- package/templates/quickstart/schemaTypes/index.js +1 -0
- package/templates/quickstart/static/.gitkeep +1 -0
- package/templates/shared/gitignore.txt +29 -0
- package/templates/shared/tsconfig.json +17 -0
- package/templates/shopify/README.md +85 -0
- package/templates/shopify/components/hotspots/ProductTooltip.tsx +38 -0
- package/templates/shopify/components/icons/Shopify.tsx +20 -0
- package/templates/shopify/components/inputs/CollectionHidden.tsx +23 -0
- package/templates/shopify/components/inputs/PlaceholderString.tsx +20 -0
- package/templates/shopify/components/inputs/ProductHidden.tsx +64 -0
- package/templates/shopify/components/inputs/ProductVariantHidden.tsx +24 -0
- package/templates/shopify/components/inputs/ProxyString.tsx +32 -0
- package/templates/shopify/components/media/ColorTheme.tsx +38 -0
- package/templates/shopify/components/media/ShopifyDocumentStatus.tsx +82 -0
- package/templates/shopify/components/studio/Navbar.tsx +29 -0
- package/templates/shopify/constants.ts +61 -0
- package/templates/shopify/docs/features.md +158 -0
- package/templates/shopify/plugins/customDocumentActions/index.ts +55 -0
- package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +144 -0
- package/templates/shopify/plugins/customDocumentActions/shopifyLink.ts +39 -0
- package/templates/shopify/plugins/customDocumentActions/types.ts +14 -0
- package/templates/shopify/schemaTypes/documents/collection.tsx +142 -0
- package/templates/shopify/schemaTypes/documents/colorTheme.tsx +44 -0
- package/templates/shopify/schemaTypes/documents/page.ts +70 -0
- package/templates/shopify/schemaTypes/documents/product.tsx +132 -0
- package/templates/shopify/schemaTypes/documents/productVariant.tsx +67 -0
- package/templates/shopify/schemaTypes/index.ts +108 -0
- package/templates/shopify/schemaTypes/objects/collection/collectionGroupType.ts +27 -0
- package/templates/shopify/schemaTypes/objects/collection/collectionLinksType.ts +16 -0
- package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +48 -0
- package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorType.tsx +50 -0
- package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeObjectType.ts +40 -0
- package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeType.ts +49 -0
- package/templates/shopify/schemaTypes/objects/global/footerType.ts +22 -0
- package/templates/shopify/schemaTypes/objects/global/menuLinksType.ts +21 -0
- package/templates/shopify/schemaTypes/objects/global/menuType.ts +17 -0
- package/templates/shopify/schemaTypes/objects/global/notFoundPageType.ts +37 -0
- package/templates/shopify/schemaTypes/objects/hotspot/imageWithProductHotspotsType.ts +48 -0
- package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +17 -0
- package/templates/shopify/schemaTypes/objects/hotspot/spotType.tsx +60 -0
- package/templates/shopify/schemaTypes/objects/link/linkEmailType.tsx +34 -0
- package/templates/shopify/schemaTypes/objects/link/linkExternalType.tsx +37 -0
- package/templates/shopify/schemaTypes/objects/link/linkInternalType.tsx +33 -0
- package/templates/shopify/schemaTypes/objects/link/linkProductType.tsx +60 -0
- package/templates/shopify/schemaTypes/objects/module/accordionGroupType.ts +33 -0
- package/templates/shopify/schemaTypes/objects/module/accordionType.ts +28 -0
- package/templates/shopify/schemaTypes/objects/module/callToActionType.tsx +85 -0
- package/templates/shopify/schemaTypes/objects/module/calloutType.ts +38 -0
- package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +47 -0
- package/templates/shopify/schemaTypes/objects/module/gridItemType.ts +41 -0
- package/templates/shopify/schemaTypes/objects/module/gridType.ts +28 -0
- package/templates/shopify/schemaTypes/objects/module/heroType.tsx +40 -0
- package/templates/shopify/schemaTypes/objects/module/imageCallToActionType.tsx +19 -0
- package/templates/shopify/schemaTypes/objects/module/imageFeatureType.ts +80 -0
- package/templates/shopify/schemaTypes/objects/module/imageFeaturesType.tsx +51 -0
- package/templates/shopify/schemaTypes/objects/module/instagramType.ts +35 -0
- package/templates/shopify/schemaTypes/objects/module/productFeaturesType.tsx +50 -0
- package/templates/shopify/schemaTypes/objects/module/productReferenceType.tsx +42 -0
- package/templates/shopify/schemaTypes/objects/seoType.ts +31 -0
- package/templates/shopify/schemaTypes/objects/shopify/collectionRuleType.tsx +37 -0
- package/templates/shopify/schemaTypes/objects/shopify/inventoryType.ts +25 -0
- package/templates/shopify/schemaTypes/objects/shopify/optionType.tsx +31 -0
- package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +11 -0
- package/templates/shopify/schemaTypes/objects/shopify/priceRangeType.ts +20 -0
- package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +142 -0
- package/templates/shopify/schemaTypes/objects/shopify/proxyStringType.ts +12 -0
- package/templates/shopify/schemaTypes/objects/shopify/shopType.ts +15 -0
- package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +84 -0
- package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +131 -0
- package/templates/shopify/schemaTypes/objects/shopify/shopifyProductVariantType.ts +121 -0
- package/templates/shopify/schemaTypes/portableText/portableTextSimpleType.tsx +45 -0
- package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +52 -0
- package/templates/shopify/schemaTypes/singletons/homeType.ts +49 -0
- package/templates/shopify/schemaTypes/singletons/settingsType.ts +96 -0
- package/templates/shopify/static/.gitkeep +1 -0
- package/templates/shopify/structure/collectionStructure.ts +9 -0
- package/templates/shopify/structure/colorThemeStructure.ts +9 -0
- package/templates/shopify/structure/homeStructure.ts +9 -0
- package/templates/shopify/structure/index.ts +57 -0
- package/templates/shopify/structure/pageStructure.ts +11 -0
- package/templates/shopify/structure/productStructure.ts +51 -0
- package/templates/shopify/structure/settingStructure.ts +9 -0
- package/templates/shopify/utils/blocksToText.ts +20 -0
- package/templates/shopify/utils/defineStructure.ts +11 -0
- package/templates/shopify/utils/getPriceRange.ts +24 -0
- package/templates/shopify/utils/shopifyUrls.ts +22 -0
- package/templates/shopify/utils/validateSlug.ts +18 -0
- package/templates/shopify-online-storefront/README.md +54 -0
- package/templates/shopify-online-storefront/components/icons/Shopify.tsx +22 -0
- package/templates/shopify-online-storefront/components/inputs/CollectionHidden.tsx +23 -0
- package/templates/shopify-online-storefront/components/inputs/PlaceholderString.tsx +25 -0
- package/templates/shopify-online-storefront/components/inputs/ProductHidden.tsx +66 -0
- package/templates/shopify-online-storefront/components/inputs/ProductVariantHidden.tsx +25 -0
- package/templates/shopify-online-storefront/components/inputs/ProxyString.tsx +38 -0
- package/templates/shopify-online-storefront/components/media/ShopifyDocumentStatus.tsx +83 -0
- package/templates/shopify-online-storefront/constants.ts +18 -0
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +45 -0
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +144 -0
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyLink.ts +39 -0
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/types.ts +14 -0
- package/templates/shopify-online-storefront/schemaTypes/blocks/blockContent.ts +32 -0
- package/templates/shopify-online-storefront/schemaTypes/documents/collection.tsx +83 -0
- package/templates/shopify-online-storefront/schemaTypes/documents/product.tsx +102 -0
- package/templates/shopify-online-storefront/schemaTypes/documents/productVariant.tsx +82 -0
- package/templates/shopify-online-storefront/schemaTypes/index.ts +43 -0
- package/templates/shopify-online-storefront/schemaTypes/objects/accordion.ts +31 -0
- package/templates/shopify-online-storefront/schemaTypes/objects/accordionGroup.ts +35 -0
- package/templates/shopify-online-storefront/schemaTypes/objects/callout.ts +40 -0
- package/templates/shopify-online-storefront/schemaTypes/objects/inventory.ts +30 -0
- package/templates/shopify-online-storefront/schemaTypes/objects/option.ts +30 -0
- package/templates/shopify-online-storefront/schemaTypes/objects/priceRange.ts +22 -0
- package/templates/shopify-online-storefront/schemaTypes/objects/proxyString.ts +11 -0
- package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollection.ts +109 -0
- package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollectionRule.tsx +45 -0
- package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProduct.ts +165 -0
- package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProductVariant.ts +151 -0
- package/templates/shopify-online-storefront/structure/collectionStructure.ts +9 -0
- package/templates/shopify-online-storefront/structure/index.ts +37 -0
- package/templates/shopify-online-storefront/structure/productStructure.ts +35 -0
- package/templates/shopify-online-storefront/utils/defineStructure.ts +11 -0
- package/templates/shopify-online-storefront/utils/getPriceRange.ts +24 -0
- package/templates/shopify-online-storefront/utils/shopifyUrls.ts +22 -0
- package/dist/actions/build/__tests__/buildApp.test.js +0 -367
- package/dist/actions/build/__tests__/buildApp.test.js.map +0 -1
- package/dist/actions/build/__tests__/buildStudio.test.js +0 -561
- package/dist/actions/build/__tests__/buildStudio.test.js.map +0 -1
- package/dist/actions/build/__tests__/checkRequiredDependencies.test.js +0 -233
- package/dist/actions/build/__tests__/checkRequiredDependencies.test.js.map +0 -1
- package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js +0 -414
- package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js.map +0 -1
- package/dist/actions/build/__tests__/determineBasePath.test.js +0 -24
- package/dist/actions/build/__tests__/determineBasePath.test.js.map +0 -1
- package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js +0 -109
- package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js.map +0 -1
- package/dist/actions/build/__tests__/getViteConfig.test.js +0 -493
- package/dist/actions/build/__tests__/getViteConfig.test.js.map +0 -1
- package/dist/actions/build/__tests__/renderDocument.test.js +0 -278
- package/dist/actions/build/__tests__/renderDocument.test.js.map +0 -1
- package/dist/actions/build/__tests__/shouldAutoUpdate.test.js +0 -153
- package/dist/actions/build/__tests__/shouldAutoUpdate.test.js.map +0 -1
- package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js +0 -657
- package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js.map +0 -1
- package/dist/actions/cors/constants.d.ts +0 -1
- package/dist/actions/cors/constants.js +0 -3
- package/dist/actions/cors/constants.js.map +0 -1
- package/dist/actions/cors/types.d.ts +0 -9
- package/dist/actions/cors/types.js +0 -3
- package/dist/actions/cors/types.js.map +0 -1
- package/dist/actions/dataset/__tests__/validateDatasetName.test.js +0 -182
- package/dist/actions/dataset/__tests__/validateDatasetName.test.js.map +0 -1
- package/dist/actions/deploy/__tests__/checkDir.test.js +0 -120
- package/dist/actions/deploy/__tests__/checkDir.test.js.map +0 -1
- package/dist/actions/docs/__tests__/normalizeDocsPath.test.js +0 -16
- package/dist/actions/docs/__tests__/normalizeDocsPath.test.js.map +0 -1
- package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js +0 -124
- package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js.map +0 -1
- package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js +0 -274
- package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js.map +0 -1
- package/dist/actions/media/__tests__/importMedia.test.js +0 -182
- package/dist/actions/media/__tests__/importMedia.test.js.map +0 -1
- package/dist/actions/schema/__tests__/deleteSchemaAction.test.js +0 -294
- package/dist/actions/schema/__tests__/deleteSchemaAction.test.js.map +0 -1
- package/dist/actions/schema/__tests__/formatSchemaValidation.test.js +0 -174
- package/dist/actions/schema/__tests__/formatSchemaValidation.test.js.map +0 -1
- package/dist/actions/schema/__tests__/validateAction.test.js +0 -281
- package/dist/actions/schema/__tests__/validateAction.test.js.map +0 -1
- package/dist/actions/schema/schemaStoreConstants.d.ts +0 -1
- package/dist/actions/schema/schemaStoreConstants.js +0 -4
- package/dist/actions/schema/schemaStoreConstants.js.map +0 -1
- package/dist/actions/schema/utils/schemaActionHelpers.d.ts +0 -1
- package/dist/actions/schema/utils/schemaActionHelpers.js +0 -5
- package/dist/actions/schema/utils/schemaActionHelpers.js.map +0 -1
- package/dist/actions/schema/utils/schemaApiClient.d.ts +0 -6
- package/dist/actions/schema/utils/schemaApiClient.js +0 -17
- package/dist/actions/schema/utils/schemaApiClient.js.map +0 -1
- package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js +0 -27
- package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js.map +0 -1
- package/dist/actions/users/__tests__/validateEmail.test.js +0 -16
- package/dist/actions/users/__tests__/validateEmail.test.js.map +0 -1
- package/dist/actions/users/apiVersion.d.ts +0 -6
- package/dist/actions/users/apiVersion.js +0 -7
- package/dist/actions/users/apiVersion.js.map +0 -1
- package/dist/commands/__tests__/blueprints.test.js +0 -54
- package/dist/commands/__tests__/blueprints.test.js.map +0 -1
- package/dist/commands/__tests__/build.test.js +0 -132
- package/dist/commands/__tests__/build.test.js.map +0 -1
- package/dist/commands/__tests__/codemod.test.js +0 -271
- package/dist/commands/__tests__/codemod.test.js.map +0 -1
- package/dist/commands/__tests__/debug.test.js +0 -697
- package/dist/commands/__tests__/debug.test.js.map +0 -1
- package/dist/commands/__tests__/deploy.test.js +0 -1913
- package/dist/commands/__tests__/deploy.test.js.map +0 -1
- package/dist/commands/__tests__/dev.test.js +0 -410
- package/dist/commands/__tests__/dev.test.js.map +0 -1
- package/dist/commands/__tests__/exec.test.js +0 -207
- package/dist/commands/__tests__/exec.test.js.map +0 -1
- package/dist/commands/__tests__/init/init.authentication.test.js +0 -60
- package/dist/commands/__tests__/init/init.authentication.test.js.map +0 -1
- package/dist/commands/__tests__/init/init.create-new-project.test.js +0 -196
- package/dist/commands/__tests__/init/init.create-new-project.test.js.map +0 -1
- package/dist/commands/__tests__/init/init.plan.test.js +0 -220
- package/dist/commands/__tests__/init/init.plan.test.js.map +0 -1
- package/dist/commands/__tests__/init/init.setup.test.js +0 -279
- package/dist/commands/__tests__/init/init.setup.test.js.map +0 -1
- package/dist/commands/__tests__/install.test.js +0 -258
- package/dist/commands/__tests__/install.test.js.map +0 -1
- package/dist/commands/__tests__/learn.test.js +0 -29
- package/dist/commands/__tests__/learn.test.js.map +0 -1
- package/dist/commands/__tests__/logout.test.js +0 -88
- package/dist/commands/__tests__/logout.test.js.map +0 -1
- package/dist/commands/__tests__/manage.test.js +0 -105
- package/dist/commands/__tests__/manage.test.js.map +0 -1
- package/dist/commands/__tests__/migration.test.js +0 -119
- package/dist/commands/__tests__/migration.test.js.map +0 -1
- package/dist/commands/__tests__/preview.test.js +0 -261
- package/dist/commands/__tests__/preview.test.js.map +0 -1
- package/dist/commands/__tests__/start.test.js +0 -253
- package/dist/commands/__tests__/start.test.js.map +0 -1
- package/dist/commands/__tests__/undeploy.test.js +0 -382
- package/dist/commands/__tests__/undeploy.test.js.map +0 -1
- package/dist/commands/__tests__/versions.test.js +0 -134
- package/dist/commands/__tests__/versions.test.js.map +0 -1
- package/dist/commands/backup/__tests__/disable.test.js +0 -207
- package/dist/commands/backup/__tests__/disable.test.js.map +0 -1
- package/dist/commands/backup/__tests__/download.test.js +0 -679
- package/dist/commands/backup/__tests__/download.test.js.map +0 -1
- package/dist/commands/backup/__tests__/enable.test.js +0 -317
- package/dist/commands/backup/__tests__/enable.test.js.map +0 -1
- package/dist/commands/backup/__tests__/list.test.js +0 -321
- package/dist/commands/backup/__tests__/list.test.js.map +0 -1
- package/dist/commands/cors/__tests__/add.test.js +0 -346
- package/dist/commands/cors/__tests__/add.test.js.map +0 -1
- package/dist/commands/cors/__tests__/delete.test.js +0 -293
- package/dist/commands/cors/__tests__/delete.test.js.map +0 -1
- package/dist/commands/cors/__tests__/list.test.js +0 -218
- package/dist/commands/cors/__tests__/list.test.js.map +0 -1
- package/dist/commands/dataset/__tests__/copy.test.js +0 -520
- package/dist/commands/dataset/__tests__/copy.test.js.map +0 -1
- package/dist/commands/dataset/__tests__/create.test.js +0 -312
- package/dist/commands/dataset/__tests__/create.test.js.map +0 -1
- package/dist/commands/dataset/__tests__/delete.test.js +0 -224
- package/dist/commands/dataset/__tests__/delete.test.js.map +0 -1
- package/dist/commands/dataset/__tests__/export.test.js +0 -561
- package/dist/commands/dataset/__tests__/export.test.js.map +0 -1
- package/dist/commands/dataset/__tests__/import.test.js +0 -53
- package/dist/commands/dataset/__tests__/import.test.js.map +0 -1
- package/dist/commands/dataset/__tests__/list.test.js +0 -174
- package/dist/commands/dataset/__tests__/list.test.js.map +0 -1
- package/dist/commands/dataset/alias/__tests__/create.test.js +0 -299
- package/dist/commands/dataset/alias/__tests__/create.test.js.map +0 -1
- package/dist/commands/dataset/alias/__tests__/delete.test.js +0 -236
- package/dist/commands/dataset/alias/__tests__/delete.test.js.map +0 -1
- package/dist/commands/dataset/alias/__tests__/link.test.js +0 -336
- package/dist/commands/dataset/alias/__tests__/link.test.js.map +0 -1
- package/dist/commands/dataset/alias/__tests__/unlink.test.js +0 -298
- package/dist/commands/dataset/alias/__tests__/unlink.test.js.map +0 -1
- package/dist/commands/dataset/visibility/__tests__/get.test.js +0 -147
- package/dist/commands/dataset/visibility/__tests__/get.test.js.map +0 -1
- package/dist/commands/dataset/visibility/__tests__/set.test.js +0 -245
- package/dist/commands/dataset/visibility/__tests__/set.test.js.map +0 -1
- package/dist/commands/docs/__tests__/browse.test.js +0 -29
- package/dist/commands/docs/__tests__/browse.test.js.map +0 -1
- package/dist/commands/docs/__tests__/read.test.js +0 -78
- package/dist/commands/docs/__tests__/read.test.js.map +0 -1
- package/dist/commands/docs/__tests__/search.test.js +0 -254
- package/dist/commands/docs/__tests__/search.test.js.map +0 -1
- package/dist/commands/documents/__tests__/create.test.js +0 -967
- package/dist/commands/documents/__tests__/create.test.js.map +0 -1
- package/dist/commands/documents/__tests__/delete.test.js +0 -268
- package/dist/commands/documents/__tests__/delete.test.js.map +0 -1
- package/dist/commands/documents/__tests__/get.test.js +0 -209
- package/dist/commands/documents/__tests__/get.test.js.map +0 -1
- package/dist/commands/documents/__tests__/query.test.js +0 -405
- package/dist/commands/documents/__tests__/query.test.js.map +0 -1
- package/dist/commands/documents/__tests__/validate.test.js +0 -226
- package/dist/commands/documents/__tests__/validate.test.js.map +0 -1
- package/dist/commands/graphql/__tests__/list.test.js +0 -228
- package/dist/commands/graphql/__tests__/list.test.js.map +0 -1
- package/dist/commands/graphql/__tests__/undeploy.test.js +0 -384
- package/dist/commands/graphql/__tests__/undeploy.test.js.map +0 -1
- package/dist/commands/hook/__tests__/attempt.test.js +0 -260
- package/dist/commands/hook/__tests__/attempt.test.js.map +0 -1
- package/dist/commands/hook/__tests__/create.test.js +0 -121
- package/dist/commands/hook/__tests__/create.test.js.map +0 -1
- package/dist/commands/hook/__tests__/delete.test.js +0 -220
- package/dist/commands/hook/__tests__/delete.test.js.map +0 -1
- package/dist/commands/hook/__tests__/list.test.js +0 -138
- package/dist/commands/hook/__tests__/list.test.js.map +0 -1
- package/dist/commands/hook/__tests__/logs.test.js +0 -770
- package/dist/commands/hook/__tests__/logs.test.js.map +0 -1
- package/dist/commands/manifest/__tests__/extract.test.js +0 -123
- package/dist/commands/manifest/__tests__/extract.test.js.map +0 -1
- package/dist/commands/mcp/__tests__/configure.test.js +0 -397
- package/dist/commands/mcp/__tests__/configure.test.js.map +0 -1
- package/dist/commands/media/__tests__/create-aspect.test.js +0 -160
- package/dist/commands/media/__tests__/create-aspect.test.js.map +0 -1
- package/dist/commands/media/__tests__/delete-aspect.test.js +0 -333
- package/dist/commands/media/__tests__/delete-aspect.test.js.map +0 -1
- package/dist/commands/media/__tests__/deploy-aspect.test.js +0 -632
- package/dist/commands/media/__tests__/deploy-aspect.test.js.map +0 -1
- package/dist/commands/media/__tests__/export.test.js +0 -398
- package/dist/commands/media/__tests__/export.test.js.map +0 -1
- package/dist/commands/media/__tests__/import.test.js +0 -281
- package/dist/commands/media/__tests__/import.test.js.map +0 -1
- package/dist/commands/openapi/__tests__/get.test.js +0 -149
- package/dist/commands/openapi/__tests__/get.test.js.map +0 -1
- package/dist/commands/openapi/__tests__/list.test.js +0 -113
- package/dist/commands/openapi/__tests__/list.test.js.map +0 -1
- package/dist/commands/projects/__tests__/list.test.js +0 -153
- package/dist/commands/projects/__tests__/list.test.js.map +0 -1
- package/dist/commands/schema/__tests__/delete.test.js +0 -209
- package/dist/commands/schema/__tests__/delete.test.js.map +0 -1
- package/dist/commands/schema/__tests__/extract.test.js +0 -113
- package/dist/commands/schema/__tests__/extract.test.js.map +0 -1
- package/dist/commands/schema/__tests__/validate.test.js +0 -104
- package/dist/commands/schema/__tests__/validate.test.js.map +0 -1
- package/dist/commands/telemetry/__tests__/disable.test.js +0 -145
- package/dist/commands/telemetry/__tests__/disable.test.js.map +0 -1
- package/dist/commands/telemetry/__tests__/enable.test.js +0 -131
- package/dist/commands/telemetry/__tests__/enable.test.js.map +0 -1
- package/dist/commands/telemetry/__tests__/status.test.js +0 -153
- package/dist/commands/telemetry/__tests__/status.test.js.map +0 -1
- package/dist/commands/tokens/__tests__/add.test.js +0 -420
- package/dist/commands/tokens/__tests__/add.test.js.map +0 -1
- package/dist/commands/tokens/__tests__/delete.test.js +0 -375
- package/dist/commands/tokens/__tests__/delete.test.js.map +0 -1
- package/dist/commands/tokens/__tests__/list.test.js +0 -368
- package/dist/commands/tokens/__tests__/list.test.js.map +0 -1
- package/dist/commands/users/__tests__/invite.test.js +0 -341
- package/dist/commands/users/__tests__/invite.test.js.map +0 -1
- package/dist/commands/users/__tests__/list.test.js +0 -401
- package/dist/commands/users/__tests__/list.test.js.map +0 -1
- package/dist/hooks/prerun/__tests__/setupTelemetry.test.js +0 -77
- package/dist/hooks/prerun/__tests__/setupTelemetry.test.js.map +0 -1
- package/dist/services/__tests__/datasetAliases.test.js +0 -131
- package/dist/services/__tests__/datasetAliases.test.js.map +0 -1
- package/dist/services/__tests__/datasets.test.js +0 -436
- package/dist/services/__tests__/datasets.test.js.map +0 -1
- package/dist/services/__tests__/graphql.test.js +0 -43
- package/dist/services/__tests__/graphql.test.js.map +0 -1
- package/dist/services/__tests__/mediaLibraries.test.js +0 -88
- package/dist/services/__tests__/mediaLibraries.test.js.map +0 -1
- package/dist/services/__tests__/projects.test.js +0 -41
- package/dist/services/__tests__/projects.test.js.map +0 -1
- package/dist/services/__tests__/userApplications.test.js +0 -113
- package/dist/services/__tests__/userApplications.test.js.map +0 -1
- package/dist/util/__tests__/appId.test.js +0 -31
- package/dist/util/__tests__/appId.test.js.map +0 -1
- package/dist/util/__tests__/cliClient.test.js +0 -184
- package/dist/util/__tests__/cliClient.test.js.map +0 -1
- package/dist/util/__tests__/compareDependencyVersions.test.js +0 -426
- package/dist/util/__tests__/compareDependencyVersions.test.js.map +0 -1
- package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js +0 -74
- package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js.map +0 -1
- package/dist/util/__tests__/findNdjsonEntry.test.js +0 -54
- package/dist/util/__tests__/findNdjsonEntry.test.js.map +0 -1
- package/dist/util/__tests__/getCliVersion.test.js +0 -28
- package/dist/util/__tests__/getCliVersion.test.js.map +0 -1
- package/dist/util/__tests__/getLocalPackageVersion.test.js +0 -84
- package/dist/util/__tests__/getLocalPackageVersion.test.js.map +0 -1
- package/dist/util/__tests__/getWorkspace.test.js +0 -37
- package/dist/util/__tests__/getWorkspace.test.js.map +0 -1
- package/dist/util/__tests__/readPackageJson.test.js +0 -69
- package/dist/util/__tests__/readPackageJson.test.js.map +0 -1
- package/dist/util/__tests__/warnAboutMissingAppId.test.js +0 -28
- package/dist/util/__tests__/warnAboutMissingAppId.test.js.map +0 -1
- package/dist/util/packageManager/__tests__/installPackages.test.js +0 -388
- package/dist/util/packageManager/__tests__/installPackages.test.js.map +0 -1
- package/dist/util/validation/ __tests__/validateDocuments.test.js +0 -274
- package/dist/util/validation/ __tests__/validateDocuments.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/commands/schema/delete.ts"],"sourcesContent":["import {Flags} from '@oclif/core'\nimport {SanityCommand, subdebug} from '@sanity/cli-core'\n\nimport {deleteSchemaAction} from '../../actions/schema/deleteSchemaAction.js'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/commands/schema/delete.ts"],"sourcesContent":["import {Flags} from '@oclif/core'\nimport {parseStringFlag, SanityCommand, subdebug} from '@sanity/cli-core'\n\nimport {deleteSchemaAction} from '../../actions/schema/deleteSchemaAction.js'\nimport {parseIds} from '../../actions/schema/utils/schemaStoreValidation.js'\nimport {NO_DATASET_ID, NO_PROJECT_ID} from '../../util/errorMessages.js'\n\nconst deleteSchemaDebug = subdebug('schema:delete')\n\nexport class DeleteSchemaCommand extends SanityCommand<typeof DeleteSchemaCommand> {\n static override description = 'Delete schema documents by id'\n\n static override examples = [\n {\n command: '<%= config.bin %> <%= command.id %> --ids sanity.workspace.schema.workspaceName',\n description: 'Delete a single schema',\n },\n {\n command:\n '<%= config.bin %> <%= command.id %> --ids sanity.workspace.schema.workspaceName,prefix.sanity.workspace.schema.otherWorkspace',\n description: 'Delete multiple schemas',\n },\n {\n command:\n '<%= config.bin %> <%= command.id %> --no-extract-manifest --ids sanity.workspace.schema.workspaceName',\n description:\n 'Delete using a pre-existing manifest file (config changes in sanity.config will not be picked up)',\n },\n ]\n\n static override flags = {\n dataset: Flags.string({\n description: 'Delete schemas from a specific dataset',\n parse: async (input) => parseStringFlag('dataset', input),\n }),\n 'extract-manifest': Flags.boolean({\n allowNo: true,\n default: true,\n description: 'Generate manifest file (disable with --no-extract-manifest)',\n }),\n ids: Flags.string({\n description: 'Comma-separated list of schema ids to delete',\n required: true,\n }),\n 'manifest-dir': Flags.directory({\n default: './dist/static',\n description: 'Directory containing manifest file',\n }),\n verbose: Flags.boolean({\n default: false,\n description: 'Enable verbose logging',\n }),\n }\n\n public async run(): Promise<void> {\n const {flags} = await this.parse(DeleteSchemaCommand)\n const {dataset} = flags\n\n deleteSchemaDebug('Running schema delete with flags: %O', flags)\n\n const ids = parseIds(flags.ids)\n\n try {\n const workDir = (await this.getProjectRoot()).directory\n const cliConfig = await this.getCliConfig()\n const projectId = await this.getProjectId()\n const cliDataset = cliConfig.api?.dataset\n\n if (!projectId) {\n this.error(NO_PROJECT_ID, {exit: 1})\n }\n\n if (!cliDataset) {\n this.error(NO_DATASET_ID, {exit: 1})\n }\n\n const result = await deleteSchemaAction({\n dataset,\n extractManifest: flags['extract-manifest'],\n ids,\n manifestDir: flags['manifest-dir'],\n output: this.output,\n projectId,\n verbose: flags['verbose'],\n workDir,\n })\n\n if (result === 'failure') {\n this.error('Failed to delete schemas', {exit: 1})\n }\n } catch (error) {\n const err = error as Error\n deleteSchemaDebug('Error deleting schemas', err)\n this.error(`Failed to delete schemas: ${err.message}`, {exit: 1})\n }\n }\n}\n"],"names":["Flags","parseStringFlag","SanityCommand","subdebug","deleteSchemaAction","parseIds","NO_DATASET_ID","NO_PROJECT_ID","deleteSchemaDebug","DeleteSchemaCommand","description","examples","command","flags","dataset","string","parse","input","boolean","allowNo","default","ids","required","directory","verbose","run","workDir","getProjectRoot","cliConfig","getCliConfig","projectId","getProjectId","cliDataset","api","error","exit","result","extractManifest","manifestDir","output","err","message"],"mappings":"AAAA,SAAQA,KAAK,QAAO,cAAa;AACjC,SAAQC,eAAe,EAAEC,aAAa,EAAEC,QAAQ,QAAO,mBAAkB;AAEzE,SAAQC,kBAAkB,QAAO,6CAA4C;AAC7E,SAAQC,QAAQ,QAAO,sDAAqD;AAC5E,SAAQC,aAAa,EAAEC,aAAa,QAAO,8BAA6B;AAExE,MAAMC,oBAAoBL,SAAS;AAEnC,OAAO,MAAMM,4BAA4BP;IACvC,OAAgBQ,cAAc,gCAA+B;IAE7D,OAAgBC,WAAW;QACzB;YACEC,SAAS;YACTF,aAAa;QACf;QACA;YACEE,SACE;YACFF,aAAa;QACf;QACA;YACEE,SACE;YACFF,aACE;QACJ;KACD,CAAA;IAED,OAAgBG,QAAQ;QACtBC,SAASd,MAAMe,MAAM,CAAC;YACpBL,aAAa;YACbM,OAAO,OAAOC,QAAUhB,gBAAgB,WAAWgB;QACrD;QACA,oBAAoBjB,MAAMkB,OAAO,CAAC;YAChCC,SAAS;YACTC,SAAS;YACTV,aAAa;QACf;QACAW,KAAKrB,MAAMe,MAAM,CAAC;YAChBL,aAAa;YACbY,UAAU;QACZ;QACA,gBAAgBtB,MAAMuB,SAAS,CAAC;YAC9BH,SAAS;YACTV,aAAa;QACf;QACAc,SAASxB,MAAMkB,OAAO,CAAC;YACrBE,SAAS;YACTV,aAAa;QACf;IACF,EAAC;IAED,MAAae,MAAqB;QAChC,MAAM,EAACZ,KAAK,EAAC,GAAG,MAAM,IAAI,CAACG,KAAK,CAACP;QACjC,MAAM,EAACK,OAAO,EAAC,GAAGD;QAElBL,kBAAkB,wCAAwCK;QAE1D,MAAMQ,MAAMhB,SAASQ,MAAMQ,GAAG;QAE9B,IAAI;YACF,MAAMK,UAAU,AAAC,CAAA,MAAM,IAAI,CAACC,cAAc,EAAC,EAAGJ,SAAS;YACvD,MAAMK,YAAY,MAAM,IAAI,CAACC,YAAY;YACzC,MAAMC,YAAY,MAAM,IAAI,CAACC,YAAY;YACzC,MAAMC,aAAaJ,UAAUK,GAAG,EAAEnB;YAElC,IAAI,CAACgB,WAAW;gBACd,IAAI,CAACI,KAAK,CAAC3B,eAAe;oBAAC4B,MAAM;gBAAC;YACpC;YAEA,IAAI,CAACH,YAAY;gBACf,IAAI,CAACE,KAAK,CAAC5B,eAAe;oBAAC6B,MAAM;gBAAC;YACpC;YAEA,MAAMC,SAAS,MAAMhC,mBAAmB;gBACtCU;gBACAuB,iBAAiBxB,KAAK,CAAC,mBAAmB;gBAC1CQ;gBACAiB,aAAazB,KAAK,CAAC,eAAe;gBAClC0B,QAAQ,IAAI,CAACA,MAAM;gBACnBT;gBACAN,SAASX,KAAK,CAAC,UAAU;gBACzBa;YACF;YAEA,IAAIU,WAAW,WAAW;gBACxB,IAAI,CAACF,KAAK,CAAC,4BAA4B;oBAACC,MAAM;gBAAC;YACjD;QACF,EAAE,OAAOD,OAAO;YACd,MAAMM,MAAMN;YACZ1B,kBAAkB,0BAA0BgC;YAC5C,IAAI,CAACN,KAAK,CAAC,CAAC,0BAA0B,EAAEM,IAAIC,OAAO,EAAE,EAAE;gBAACN,MAAM;YAAC;QACjE;IACF;AACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SanityCommand } from '@sanity/cli-core';
|
|
2
|
+
export declare class DeploySchemaCommand extends SanityCommand<typeof DeploySchemaCommand> {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: {
|
|
5
|
+
command: string;
|
|
6
|
+
description: string;
|
|
7
|
+
}[];
|
|
8
|
+
static flags: {
|
|
9
|
+
'extract-manifest': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
'manifest-dir': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
tag: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { parseStringFlag, SanityCommand } from '@sanity/cli-core';
|
|
3
|
+
import { deploySchemas } from '../../actions/schema/deploySchemas.js';
|
|
4
|
+
import { schemasDeployDebug } from '../../actions/schema/utils/debug.js';
|
|
5
|
+
import { parseTag } from '../../actions/schema/utils/schemaStoreValidation.js';
|
|
6
|
+
import { NO_DATASET_ID, NO_PROJECT_ID } from '../../util/errorMessages.js';
|
|
7
|
+
const description = `
|
|
8
|
+
Deploy schema documents into workspace datasets.
|
|
9
|
+
|
|
10
|
+
**Note**: This command is experimental and subject to change.
|
|
11
|
+
|
|
12
|
+
This operation (re-)generates a manifest file describing the sanity config workspace by default.
|
|
13
|
+
To re-use an existing manifest file, use --no-extract-manifest.
|
|
14
|
+
`.trim();
|
|
15
|
+
export class DeploySchemaCommand extends SanityCommand {
|
|
16
|
+
static description = description;
|
|
17
|
+
static examples = [
|
|
18
|
+
{
|
|
19
|
+
command: '<%= config.bin %> <%= command.id %>',
|
|
20
|
+
description: 'Deploy all workspace schemas'
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
command: '<%= config.bin %> <%= command.id %> --workspace default',
|
|
24
|
+
description: 'Deploy the schema for only the workspace "default"'
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
command: '<%= config.bin %> <%= command.id %> --no-extract-manifest',
|
|
28
|
+
description: 'Runs using a pre-existing manifest file. Config changes in sanity.config will not be picked up in this case.'
|
|
29
|
+
}
|
|
30
|
+
];
|
|
31
|
+
static flags = {
|
|
32
|
+
'extract-manifest': Flags.boolean({
|
|
33
|
+
allowNo: true,
|
|
34
|
+
default: true,
|
|
35
|
+
description: 'Disables manifest generation - the command will fail if no manifest exists'
|
|
36
|
+
}),
|
|
37
|
+
'manifest-dir': Flags.directory({
|
|
38
|
+
default: './dist/static',
|
|
39
|
+
description: 'Directory containing manifest file',
|
|
40
|
+
helpValue: '<directory>'
|
|
41
|
+
}),
|
|
42
|
+
tag: Flags.string({
|
|
43
|
+
description: 'Add a tag suffix to the schema id',
|
|
44
|
+
helpValue: '<tag>',
|
|
45
|
+
parse: parseTag
|
|
46
|
+
}),
|
|
47
|
+
verbose: Flags.boolean({
|
|
48
|
+
default: false,
|
|
49
|
+
description: 'Print detailed information during deployment'
|
|
50
|
+
}),
|
|
51
|
+
workspace: Flags.string({
|
|
52
|
+
description: 'The name of the workspace to deploy a schema for',
|
|
53
|
+
helpValue: '<name>',
|
|
54
|
+
parse: async (input)=>parseStringFlag('workspace', input)
|
|
55
|
+
})
|
|
56
|
+
};
|
|
57
|
+
async run() {
|
|
58
|
+
const { flags } = await this.parse(DeploySchemaCommand);
|
|
59
|
+
const { tag, workspace } = flags;
|
|
60
|
+
try {
|
|
61
|
+
const workDir = (await this.getProjectRoot()).directory;
|
|
62
|
+
const cliConfig = await this.getCliConfig();
|
|
63
|
+
const projectId = await this.getProjectId();
|
|
64
|
+
const dataset = cliConfig.api?.dataset;
|
|
65
|
+
if (!projectId) {
|
|
66
|
+
this.error(NO_PROJECT_ID, {
|
|
67
|
+
exit: 1
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (!dataset) {
|
|
71
|
+
this.error(NO_DATASET_ID, {
|
|
72
|
+
exit: 1
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
const result = await deploySchemas({
|
|
76
|
+
extractManifest: flags['extract-manifest'],
|
|
77
|
+
manifestDir: flags['manifest-dir'],
|
|
78
|
+
output: this.output,
|
|
79
|
+
tag,
|
|
80
|
+
verbose: flags['verbose'],
|
|
81
|
+
workDir,
|
|
82
|
+
workspaceName: workspace
|
|
83
|
+
});
|
|
84
|
+
if (result === 'failure') {
|
|
85
|
+
this.error('Failed to deploy schemas', {
|
|
86
|
+
exit: 1
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
} catch (error) {
|
|
90
|
+
schemasDeployDebug('Failed to deploy schemas', error);
|
|
91
|
+
this.error(`Failed to deploy schemas:\n${error}`, {
|
|
92
|
+
exit: 1
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/commands/schema/deploy.ts"],"sourcesContent":["import {Flags} from '@oclif/core'\nimport {parseStringFlag, SanityCommand} from '@sanity/cli-core'\n\nimport {deploySchemas} from '../../actions/schema/deploySchemas.js'\nimport {schemasDeployDebug} from '../../actions/schema/utils/debug.js'\nimport {parseTag} from '../../actions/schema/utils/schemaStoreValidation.js'\nimport {NO_DATASET_ID, NO_PROJECT_ID} from '../../util/errorMessages.js'\n\nconst description = `\nDeploy schema documents into workspace datasets.\n\n**Note**: This command is experimental and subject to change.\n\nThis operation (re-)generates a manifest file describing the sanity config workspace by default.\nTo re-use an existing manifest file, use --no-extract-manifest.\n`.trim()\n\nexport class DeploySchemaCommand extends SanityCommand<typeof DeploySchemaCommand> {\n static override description = description\n\n static override examples = [\n {\n command: '<%= config.bin %> <%= command.id %>',\n description: 'Deploy all workspace schemas',\n },\n {\n command: '<%= config.bin %> <%= command.id %> --workspace default',\n description: 'Deploy the schema for only the workspace \"default\"',\n },\n {\n command: '<%= config.bin %> <%= command.id %> --no-extract-manifest',\n description:\n 'Runs using a pre-existing manifest file. Config changes in sanity.config will not be picked up in this case.',\n },\n ]\n\n static override flags = {\n 'extract-manifest': Flags.boolean({\n allowNo: true,\n default: true,\n description: 'Disables manifest generation - the command will fail if no manifest exists',\n }),\n 'manifest-dir': Flags.directory({\n default: './dist/static',\n description: 'Directory containing manifest file',\n helpValue: '<directory>',\n }),\n tag: Flags.string({\n description: 'Add a tag suffix to the schema id',\n helpValue: '<tag>',\n parse: parseTag,\n }),\n verbose: Flags.boolean({\n default: false,\n description: 'Print detailed information during deployment',\n }),\n workspace: Flags.string({\n description: 'The name of the workspace to deploy a schema for',\n helpValue: '<name>',\n parse: async (input) => parseStringFlag('workspace', input),\n }),\n }\n\n public async run(): Promise<void> {\n const {flags} = await this.parse(DeploySchemaCommand)\n const {tag, workspace} = flags\n\n try {\n const workDir = (await this.getProjectRoot()).directory\n const cliConfig = await this.getCliConfig()\n const projectId = await this.getProjectId()\n const dataset = cliConfig.api?.dataset\n\n if (!projectId) {\n this.error(NO_PROJECT_ID, {exit: 1})\n }\n\n if (!dataset) {\n this.error(NO_DATASET_ID, {exit: 1})\n }\n\n const result = await deploySchemas({\n extractManifest: flags['extract-manifest'],\n manifestDir: flags['manifest-dir'],\n output: this.output,\n tag,\n verbose: flags['verbose'],\n workDir,\n workspaceName: workspace,\n })\n\n if (result === 'failure') {\n this.error('Failed to deploy schemas', {exit: 1})\n }\n } catch (error) {\n schemasDeployDebug('Failed to deploy schemas', error)\n this.error(`Failed to deploy schemas:\\n${error}`, {exit: 1})\n }\n }\n}\n"],"names":["Flags","parseStringFlag","SanityCommand","deploySchemas","schemasDeployDebug","parseTag","NO_DATASET_ID","NO_PROJECT_ID","description","trim","DeploySchemaCommand","examples","command","flags","boolean","allowNo","default","directory","helpValue","tag","string","parse","verbose","workspace","input","run","workDir","getProjectRoot","cliConfig","getCliConfig","projectId","getProjectId","dataset","api","error","exit","result","extractManifest","manifestDir","output","workspaceName"],"mappings":"AAAA,SAAQA,KAAK,QAAO,cAAa;AACjC,SAAQC,eAAe,EAAEC,aAAa,QAAO,mBAAkB;AAE/D,SAAQC,aAAa,QAAO,wCAAuC;AACnE,SAAQC,kBAAkB,QAAO,sCAAqC;AACtE,SAAQC,QAAQ,QAAO,sDAAqD;AAC5E,SAAQC,aAAa,EAAEC,aAAa,QAAO,8BAA6B;AAExE,MAAMC,cAAc,CAAC;;;;;;;AAOrB,CAAC,CAACC,IAAI;AAEN,OAAO,MAAMC,4BAA4BR;IACvC,OAAgBM,cAAcA,YAAW;IAEzC,OAAgBG,WAAW;QACzB;YACEC,SAAS;YACTJ,aAAa;QACf;QACA;YACEI,SAAS;YACTJ,aAAa;QACf;QACA;YACEI,SAAS;YACTJ,aACE;QACJ;KACD,CAAA;IAED,OAAgBK,QAAQ;QACtB,oBAAoBb,MAAMc,OAAO,CAAC;YAChCC,SAAS;YACTC,SAAS;YACTR,aAAa;QACf;QACA,gBAAgBR,MAAMiB,SAAS,CAAC;YAC9BD,SAAS;YACTR,aAAa;YACbU,WAAW;QACb;QACAC,KAAKnB,MAAMoB,MAAM,CAAC;YAChBZ,aAAa;YACbU,WAAW;YACXG,OAAOhB;QACT;QACAiB,SAAStB,MAAMc,OAAO,CAAC;YACrBE,SAAS;YACTR,aAAa;QACf;QACAe,WAAWvB,MAAMoB,MAAM,CAAC;YACtBZ,aAAa;YACbU,WAAW;YACXG,OAAO,OAAOG,QAAUvB,gBAAgB,aAAauB;QACvD;IACF,EAAC;IAED,MAAaC,MAAqB;QAChC,MAAM,EAACZ,KAAK,EAAC,GAAG,MAAM,IAAI,CAACQ,KAAK,CAACX;QACjC,MAAM,EAACS,GAAG,EAAEI,SAAS,EAAC,GAAGV;QAEzB,IAAI;YACF,MAAMa,UAAU,AAAC,CAAA,MAAM,IAAI,CAACC,cAAc,EAAC,EAAGV,SAAS;YACvD,MAAMW,YAAY,MAAM,IAAI,CAACC,YAAY;YACzC,MAAMC,YAAY,MAAM,IAAI,CAACC,YAAY;YACzC,MAAMC,UAAUJ,UAAUK,GAAG,EAAED;YAE/B,IAAI,CAACF,WAAW;gBACd,IAAI,CAACI,KAAK,CAAC3B,eAAe;oBAAC4B,MAAM;gBAAC;YACpC;YAEA,IAAI,CAACH,SAAS;gBACZ,IAAI,CAACE,KAAK,CAAC5B,eAAe;oBAAC6B,MAAM;gBAAC;YACpC;YAEA,MAAMC,SAAS,MAAMjC,cAAc;gBACjCkC,iBAAiBxB,KAAK,CAAC,mBAAmB;gBAC1CyB,aAAazB,KAAK,CAAC,eAAe;gBAClC0B,QAAQ,IAAI,CAACA,MAAM;gBACnBpB;gBACAG,SAAST,KAAK,CAAC,UAAU;gBACzBa;gBACAc,eAAejB;YACjB;YAEA,IAAIa,WAAW,WAAW;gBACxB,IAAI,CAACF,KAAK,CAAC,4BAA4B;oBAACC,MAAM;gBAAC;YACjD;QACF,EAAE,OAAOD,OAAO;YACd9B,mBAAmB,4BAA4B8B;YAC/C,IAAI,CAACA,KAAK,CAAC,CAAC,2BAA2B,EAAEA,OAAO,EAAE;gBAACC,MAAM;YAAC;QAC5D;IACF;AACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SanityCommand } from '@sanity/cli-core';
|
|
2
|
+
export declare class ListSchemaCommand extends SanityCommand<typeof ListSchemaCommand> {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: {
|
|
5
|
+
command: string;
|
|
6
|
+
description: string;
|
|
7
|
+
}[];
|
|
8
|
+
static flags: {
|
|
9
|
+
'extract-manifest': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
id: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
'manifest-dir': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { SanityCommand } from '@sanity/cli-core';
|
|
3
|
+
import { listSchemas } from '../../actions/schema/listSchemas.js';
|
|
4
|
+
import { schemasListDebug } from '../../actions/schema/utils/debug.js';
|
|
5
|
+
import { parseWorkspaceSchemaId } from '../../actions/schema/utils/schemaStoreValidation.js';
|
|
6
|
+
import { NO_DATASET_ID, NO_PROJECT_ID } from '../../util/errorMessages.js';
|
|
7
|
+
const description = `
|
|
8
|
+
Lists all schemas in the current dataset.
|
|
9
|
+
|
|
10
|
+
**Note**: This command is experimental and subject to change.
|
|
11
|
+
|
|
12
|
+
This operation (re-)generates a manifest file describing the sanity config workspace by default.
|
|
13
|
+
To re-use an existing manifest file, use --no-extract-manifest.
|
|
14
|
+
`.trim();
|
|
15
|
+
export class ListSchemaCommand extends SanityCommand {
|
|
16
|
+
static description = description;
|
|
17
|
+
static examples = [
|
|
18
|
+
{
|
|
19
|
+
command: '<%= config.bin %> <%= command.id %>',
|
|
20
|
+
description: 'List all schemas found in any workspace dataset in a table'
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
command: '<%= config.bin %> <%= command.id %> --id _.schemas.workspaceName',
|
|
24
|
+
description: 'Get a schema for a given id'
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
command: '<%= config.bin %> <%= command.id %> --json',
|
|
28
|
+
description: 'Get stored schemas as pretty-printed json-array'
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
command: '<%= config.bin %> <%= command.id %> --json --id _.schemas.workspaceName',
|
|
32
|
+
description: 'Get singular stored schema as pretty-printed json-object'
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
command: '<%= config.bin %> <%= command.id %> --no-extract-manifest',
|
|
36
|
+
description: 'Runs using a pre-existing manifest file. Config changes in sanity.config will not be picked up in this case.'
|
|
37
|
+
}
|
|
38
|
+
];
|
|
39
|
+
static flags = {
|
|
40
|
+
'extract-manifest': Flags.boolean({
|
|
41
|
+
allowNo: true,
|
|
42
|
+
default: true,
|
|
43
|
+
description: 'Disables manifest generation - the command will fail if no manifest exists'
|
|
44
|
+
}),
|
|
45
|
+
id: Flags.string({
|
|
46
|
+
description: 'Fetch a single schema by id',
|
|
47
|
+
helpValue: '<schema_id>'
|
|
48
|
+
}),
|
|
49
|
+
json: Flags.boolean({
|
|
50
|
+
description: 'Get schema as json'
|
|
51
|
+
}),
|
|
52
|
+
'manifest-dir': Flags.directory({
|
|
53
|
+
default: './dist/static',
|
|
54
|
+
description: 'Directory containing manifest file',
|
|
55
|
+
helpValue: '<directory>'
|
|
56
|
+
})
|
|
57
|
+
};
|
|
58
|
+
async run() {
|
|
59
|
+
const { flags } = await this.parse(ListSchemaCommand);
|
|
60
|
+
try {
|
|
61
|
+
const workDir = (await this.getProjectRoot()).directory;
|
|
62
|
+
const cliConfig = await this.getCliConfig();
|
|
63
|
+
const projectId = await this.getProjectId();
|
|
64
|
+
const dataset = cliConfig.api?.dataset;
|
|
65
|
+
if (!projectId) {
|
|
66
|
+
this.error(NO_PROJECT_ID, {
|
|
67
|
+
exit: 1
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (!dataset) {
|
|
71
|
+
this.error(NO_DATASET_ID, {
|
|
72
|
+
exit: 1
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
const errors = [];
|
|
76
|
+
const id = parseWorkspaceSchemaId(errors, flags.id)?.schemaId;
|
|
77
|
+
if (errors.length > 0) {
|
|
78
|
+
this.error(`Invalid arguments:\n${errors.map((error)=>` - ${error}`).join('\n')}`, {
|
|
79
|
+
exit: 1
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
const result = await listSchemas({
|
|
83
|
+
extractManifest: flags['extract-manifest'],
|
|
84
|
+
id,
|
|
85
|
+
json: !!flags.json,
|
|
86
|
+
manifestDir: flags['manifest-dir'],
|
|
87
|
+
output: this.output,
|
|
88
|
+
workDir
|
|
89
|
+
});
|
|
90
|
+
if (result === 'failure') {
|
|
91
|
+
this.error('Failed to list schemas', {
|
|
92
|
+
exit: 1
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
} catch (error) {
|
|
96
|
+
schemasListDebug('Failed to list schemas', error);
|
|
97
|
+
this.error(`Failed to list schemas:\n${error}`, {
|
|
98
|
+
exit: 1
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/commands/schema/list.ts"],"sourcesContent":["import {Flags} from '@oclif/core'\nimport {SanityCommand} from '@sanity/cli-core'\n\nimport {listSchemas} from '../../actions/schema/listSchemas.js'\nimport {schemasListDebug} from '../../actions/schema/utils/debug.js'\nimport {parseWorkspaceSchemaId} from '../../actions/schema/utils/schemaStoreValidation.js'\nimport {NO_DATASET_ID, NO_PROJECT_ID} from '../../util/errorMessages.js'\n\nconst description = `\nLists all schemas in the current dataset.\n\n**Note**: This command is experimental and subject to change.\n\nThis operation (re-)generates a manifest file describing the sanity config workspace by default.\nTo re-use an existing manifest file, use --no-extract-manifest.\n`.trim()\n\nexport class ListSchemaCommand extends SanityCommand<typeof ListSchemaCommand> {\n static override description = description\n\n static override examples = [\n {\n command: '<%= config.bin %> <%= command.id %>',\n description: 'List all schemas found in any workspace dataset in a table',\n },\n {\n command: '<%= config.bin %> <%= command.id %> --id _.schemas.workspaceName',\n description: 'Get a schema for a given id',\n },\n {\n command: '<%= config.bin %> <%= command.id %> --json',\n description: 'Get stored schemas as pretty-printed json-array',\n },\n {\n command: '<%= config.bin %> <%= command.id %> --json --id _.schemas.workspaceName',\n description: 'Get singular stored schema as pretty-printed json-object',\n },\n {\n command: '<%= config.bin %> <%= command.id %> --no-extract-manifest',\n description:\n 'Runs using a pre-existing manifest file. Config changes in sanity.config will not be picked up in this case.',\n },\n ]\n\n static override flags = {\n 'extract-manifest': Flags.boolean({\n allowNo: true,\n default: true,\n description: 'Disables manifest generation - the command will fail if no manifest exists',\n }),\n id: Flags.string({\n description: 'Fetch a single schema by id',\n helpValue: '<schema_id>',\n }),\n json: Flags.boolean({\n description: 'Get schema as json',\n }),\n 'manifest-dir': Flags.directory({\n default: './dist/static',\n description: 'Directory containing manifest file',\n helpValue: '<directory>',\n }),\n }\n\n public async run(): Promise<void> {\n const {flags} = await this.parse(ListSchemaCommand)\n\n try {\n const workDir = (await this.getProjectRoot()).directory\n const cliConfig = await this.getCliConfig()\n const projectId = await this.getProjectId()\n const dataset = cliConfig.api?.dataset\n\n if (!projectId) {\n this.error(NO_PROJECT_ID, {exit: 1})\n }\n\n if (!dataset) {\n this.error(NO_DATASET_ID, {exit: 1})\n }\n\n const errors: string[] = []\n const id = parseWorkspaceSchemaId(errors, flags.id)?.schemaId\n if (errors.length > 0) {\n this.error(`Invalid arguments:\\n${errors.map((error) => ` - ${error}`).join('\\n')}`, {\n exit: 1,\n })\n }\n\n const result = await listSchemas({\n extractManifest: flags['extract-manifest'],\n id,\n json: !!flags.json,\n manifestDir: flags['manifest-dir'],\n output: this.output,\n workDir,\n })\n\n if (result === 'failure') {\n this.error('Failed to list schemas', {exit: 1})\n }\n } catch (error) {\n schemasListDebug('Failed to list schemas', error)\n this.error(`Failed to list schemas:\\n${error}`, {exit: 1})\n }\n }\n}\n"],"names":["Flags","SanityCommand","listSchemas","schemasListDebug","parseWorkspaceSchemaId","NO_DATASET_ID","NO_PROJECT_ID","description","trim","ListSchemaCommand","examples","command","flags","boolean","allowNo","default","id","string","helpValue","json","directory","run","parse","workDir","getProjectRoot","cliConfig","getCliConfig","projectId","getProjectId","dataset","api","error","exit","errors","schemaId","length","map","join","result","extractManifest","manifestDir","output"],"mappings":"AAAA,SAAQA,KAAK,QAAO,cAAa;AACjC,SAAQC,aAAa,QAAO,mBAAkB;AAE9C,SAAQC,WAAW,QAAO,sCAAqC;AAC/D,SAAQC,gBAAgB,QAAO,sCAAqC;AACpE,SAAQC,sBAAsB,QAAO,sDAAqD;AAC1F,SAAQC,aAAa,EAAEC,aAAa,QAAO,8BAA6B;AAExE,MAAMC,cAAc,CAAC;;;;;;;AAOrB,CAAC,CAACC,IAAI;AAEN,OAAO,MAAMC,0BAA0BR;IACrC,OAAgBM,cAAcA,YAAW;IAEzC,OAAgBG,WAAW;QACzB;YACEC,SAAS;YACTJ,aAAa;QACf;QACA;YACEI,SAAS;YACTJ,aAAa;QACf;QACA;YACEI,SAAS;YACTJ,aAAa;QACf;QACA;YACEI,SAAS;YACTJ,aAAa;QACf;QACA;YACEI,SAAS;YACTJ,aACE;QACJ;KACD,CAAA;IAED,OAAgBK,QAAQ;QACtB,oBAAoBZ,MAAMa,OAAO,CAAC;YAChCC,SAAS;YACTC,SAAS;YACTR,aAAa;QACf;QACAS,IAAIhB,MAAMiB,MAAM,CAAC;YACfV,aAAa;YACbW,WAAW;QACb;QACAC,MAAMnB,MAAMa,OAAO,CAAC;YAClBN,aAAa;QACf;QACA,gBAAgBP,MAAMoB,SAAS,CAAC;YAC9BL,SAAS;YACTR,aAAa;YACbW,WAAW;QACb;IACF,EAAC;IAED,MAAaG,MAAqB;QAChC,MAAM,EAACT,KAAK,EAAC,GAAG,MAAM,IAAI,CAACU,KAAK,CAACb;QAEjC,IAAI;YACF,MAAMc,UAAU,AAAC,CAAA,MAAM,IAAI,CAACC,cAAc,EAAC,EAAGJ,SAAS;YACvD,MAAMK,YAAY,MAAM,IAAI,CAACC,YAAY;YACzC,MAAMC,YAAY,MAAM,IAAI,CAACC,YAAY;YACzC,MAAMC,UAAUJ,UAAUK,GAAG,EAAED;YAE/B,IAAI,CAACF,WAAW;gBACd,IAAI,CAACI,KAAK,CAACzB,eAAe;oBAAC0B,MAAM;gBAAC;YACpC;YAEA,IAAI,CAACH,SAAS;gBACZ,IAAI,CAACE,KAAK,CAAC1B,eAAe;oBAAC2B,MAAM;gBAAC;YACpC;YAEA,MAAMC,SAAmB,EAAE;YAC3B,MAAMjB,KAAKZ,uBAAuB6B,QAAQrB,MAAMI,EAAE,GAAGkB;YACrD,IAAID,OAAOE,MAAM,GAAG,GAAG;gBACrB,IAAI,CAACJ,KAAK,CAAC,CAAC,oBAAoB,EAAEE,OAAOG,GAAG,CAAC,CAACL,QAAU,CAAC,IAAI,EAAEA,OAAO,EAAEM,IAAI,CAAC,OAAO,EAAE;oBACpFL,MAAM;gBACR;YACF;YAEA,MAAMM,SAAS,MAAMpC,YAAY;gBAC/BqC,iBAAiB3B,KAAK,CAAC,mBAAmB;gBAC1CI;gBACAG,MAAM,CAAC,CAACP,MAAMO,IAAI;gBAClBqB,aAAa5B,KAAK,CAAC,eAAe;gBAClC6B,QAAQ,IAAI,CAACA,MAAM;gBACnBlB;YACF;YAEA,IAAIe,WAAW,WAAW;gBACxB,IAAI,CAACP,KAAK,CAAC,0BAA0B;oBAACC,MAAM;gBAAC;YAC/C;QACF,EAAE,OAAOD,OAAO;YACd5B,iBAAiB,0BAA0B4B;YAC3C,IAAI,CAACA,KAAK,CAAC,CAAC,yBAAyB,EAAEA,OAAO,EAAE;gBAACC,MAAM;YAAC;QAC1D;IACF;AACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { SanityCommand, subdebug } from '@sanity/cli-core';
|
|
3
3
|
import { input, select } from '@sanity/cli-core/ux';
|
|
4
4
|
import { validateRole } from '../../actions/tokens/validateRole.js';
|
|
5
5
|
import { createToken, getTokenRoles } from '../../services/tokens.js';
|
|
@@ -88,8 +88,7 @@ export class AddTokenCommand extends SanityCommand {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
async promptForLabel() {
|
|
91
|
-
|
|
92
|
-
if (unattended || !isInteractive()) {
|
|
91
|
+
if (this.isUnattended()) {
|
|
93
92
|
this.error('Token label is required in non-interactive mode. Provide a label as an argument.', {
|
|
94
93
|
exit: 1
|
|
95
94
|
});
|
|
@@ -106,8 +105,7 @@ export class AddTokenCommand extends SanityCommand {
|
|
|
106
105
|
return label;
|
|
107
106
|
}
|
|
108
107
|
async promptForRole(projectId) {
|
|
109
|
-
|
|
110
|
-
if (unattended || !isInteractive()) {
|
|
108
|
+
if (this.isUnattended()) {
|
|
111
109
|
return 'viewer' // Default role for unattended mode
|
|
112
110
|
;
|
|
113
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/commands/tokens/add.ts"],"sourcesContent":["import {Args, Flags} from '@oclif/core'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/commands/tokens/add.ts"],"sourcesContent":["import {Args, Flags} from '@oclif/core'\nimport {SanityCommand, subdebug} from '@sanity/cli-core'\nimport {input, select} from '@sanity/cli-core/ux'\n\nimport {validateRole} from '../../actions/tokens/validateRole.js'\nimport {createToken, getTokenRoles} from '../../services/tokens.js'\nimport {NO_PROJECT_ID} from '../../util/errorMessages.js'\n\nconst tokensAddDebug = subdebug('tokens:add')\n\nexport class AddTokenCommand extends SanityCommand<typeof AddTokenCommand> {\n static override args = {\n label: Args.string({\n description: 'Label for the new token',\n required: false,\n }),\n }\n\n static override description = 'Create a new API token for this project'\n\n static override examples = [\n {\n command: '<%= config.bin %> <%= command.id %> \"My API Token\"',\n description: 'Create a token with a label',\n },\n {\n command: '<%= config.bin %> <%= command.id %> \"My API Token\" --role=editor',\n description: 'Create a token with editor role',\n },\n {\n command: '<%= config.bin %> <%= command.id %> \"CI Token\" --role=editor --yes',\n description: 'Create a token in unattended mode',\n },\n {\n command: '<%= config.bin %> <%= command.id %> \"API Token\" --json',\n description: 'Output token information as JSON',\n },\n ]\n\n static override flags = {\n json: Flags.boolean({\n default: false,\n description: 'Output as JSON',\n }),\n role: Flags.string({\n description: 'Role to assign to the token',\n helpValue: 'viewer',\n }),\n yes: Flags.boolean({\n char: 'y',\n default: false,\n description: 'Skip prompts and use defaults (unattended mode)',\n }),\n }\n\n public async run(): Promise<void> {\n const {args, flags} = await this.parse(AddTokenCommand)\n const {label: givenLabel} = args\n const {json, role} = flags\n\n const projectId = await this.getProjectId()\n if (!projectId) {\n this.error(NO_PROJECT_ID, {exit: 1})\n }\n\n try {\n const label = givenLabel || (await this.promptForLabel())\n const roleName = await (role ? validateRole(role, projectId) : this.promptForRole(projectId))\n\n tokensAddDebug(`Creating token for project ${projectId}`, {label, roleName})\n const token = await createToken({\n label,\n projectId,\n roleName,\n })\n\n if (json) {\n this.log(JSON.stringify(token, null, 2))\n return\n }\n\n this.log('Token created successfully!')\n this.log(`Label: ${token.label}`)\n this.log(`ID: ${token.id}`)\n this.log(`Role: ${token.roles.map((r) => r.title).join(', ')}`)\n this.log(`Token: ${token.key}`)\n this.log('')\n this.log('Copy the token above – this is your only chance to do so!')\n } catch (error) {\n const err = error as Error\n\n tokensAddDebug(`Error creating token for project ${projectId}`, err)\n this.error(`Token creation failed:\\n${err.message}`, {exit: 1})\n }\n }\n\n private async promptForLabel(): Promise<string> {\n if (this.isUnattended()) {\n this.error(\n 'Token label is required in non-interactive mode. Provide a label as an argument.',\n {\n exit: 1,\n },\n )\n }\n\n const label = await input({\n message: 'Token label:',\n validate: (value) => {\n if (!value || !value.trim()) {\n return 'Label cannot be empty'\n }\n return true\n },\n })\n\n return label\n }\n\n private async promptForRole(projectId: string): Promise<string> {\n if (this.isUnattended()) {\n return 'viewer' // Default role for unattended mode\n }\n\n const roles = await getTokenRoles(projectId)\n const robotRoles = roles.filter((role) => role.appliesToRobots)\n\n tokensAddDebug('Robot roles', {robotRoles})\n\n if (robotRoles.length === 0) {\n this.error('No roles available for tokens', {exit: 1})\n }\n\n const selectedRoleName = await select({\n choices: robotRoles.map((role) => ({\n name: `${role.title} (${role.name})`,\n short: role.title,\n value: role.name,\n })),\n default: 'viewer',\n message: 'Select role for the token:',\n })\n\n return selectedRoleName\n }\n}\n"],"names":["Args","Flags","SanityCommand","subdebug","input","select","validateRole","createToken","getTokenRoles","NO_PROJECT_ID","tokensAddDebug","AddTokenCommand","args","label","string","description","required","examples","command","flags","json","boolean","default","role","helpValue","yes","char","run","parse","givenLabel","projectId","getProjectId","error","exit","promptForLabel","roleName","promptForRole","token","log","JSON","stringify","id","roles","map","r","title","join","key","err","message","isUnattended","validate","value","trim","robotRoles","filter","appliesToRobots","length","selectedRoleName","choices","name","short"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
2
|
import { SanityCommand, subdebug } from '@sanity/cli-core';
|
|
3
3
|
import { input, select } from '@sanity/cli-core/ux';
|
|
4
|
-
import { USERS_API_VERSION } from '../../actions/users/apiVersion.js';
|
|
5
4
|
import { validateEmail } from '../../actions/users/validateEmail.js';
|
|
5
|
+
import { getProjectRoles, inviteUser } from '../../services/projects.js';
|
|
6
6
|
import { NO_PROJECT_ID } from '../../util/errorMessages.js';
|
|
7
7
|
const QUOTA_ERROR_MESSAGE = 'Project is already at user quota, add billing details to the project in order to allow overage charges.';
|
|
8
8
|
const usersInviteDebug = subdebug('users:invite');
|
|
@@ -37,10 +37,6 @@ export class UsersInviteCommand extends SanityCommand {
|
|
|
37
37
|
async run() {
|
|
38
38
|
const { email: selectedEmail } = this.args;
|
|
39
39
|
const { role: selectedRole } = this.flags;
|
|
40
|
-
const client = await this.getGlobalApiClient({
|
|
41
|
-
apiVersion: USERS_API_VERSION,
|
|
42
|
-
requireUser: true
|
|
43
|
-
});
|
|
44
40
|
const projectId = await this.getProjectId();
|
|
45
41
|
if (!projectId) {
|
|
46
42
|
this.error(NO_PROJECT_ID, {
|
|
@@ -49,9 +45,7 @@ export class UsersInviteCommand extends SanityCommand {
|
|
|
49
45
|
}
|
|
50
46
|
let roles;
|
|
51
47
|
try {
|
|
52
|
-
roles = (await
|
|
53
|
-
uri: `/projects/${projectId}/roles`
|
|
54
|
-
})).filter((role)=>role.appliesToUsers);
|
|
48
|
+
roles = (await getProjectRoles(projectId)).filter((role)=>role.appliesToUsers);
|
|
55
49
|
} catch (error) {
|
|
56
50
|
usersInviteDebug('Error fetching roles', error);
|
|
57
51
|
this.error('Error fetching roles', {
|
|
@@ -67,15 +61,10 @@ export class UsersInviteCommand extends SanityCommand {
|
|
|
67
61
|
});
|
|
68
62
|
}
|
|
69
63
|
try {
|
|
70
|
-
await
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
},
|
|
75
|
-
maxRedirects: 0,
|
|
76
|
-
method: 'POST',
|
|
77
|
-
uri: `/invitations/project/${projectId}`,
|
|
78
|
-
useGlobalApi: true
|
|
64
|
+
await inviteUser({
|
|
65
|
+
email,
|
|
66
|
+
projectId,
|
|
67
|
+
role: role.name
|
|
79
68
|
});
|
|
80
69
|
this.log(`Invitation sent to ${email}`);
|
|
81
70
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/commands/users/invite.ts"],"sourcesContent":["import {Args, Flags} from '@oclif/core'\nimport {SanityCommand, subdebug} from '@sanity/cli-core'\nimport {input, select} from '@sanity/cli-core/ux'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/commands/users/invite.ts"],"sourcesContent":["import {Args, Flags} from '@oclif/core'\nimport {SanityCommand, subdebug} from '@sanity/cli-core'\nimport {input, select} from '@sanity/cli-core/ux'\n\nimport {type Role} from '../../actions/users/types.js'\nimport {validateEmail} from '../../actions/users/validateEmail.js'\nimport {getProjectRoles, inviteUser} from '../../services/projects.js'\nimport {NO_PROJECT_ID} from '../../util/errorMessages.js'\n\nconst QUOTA_ERROR_MESSAGE =\n 'Project is already at user quota, add billing details to the project in order to allow overage charges.'\n\nconst usersInviteDebug = subdebug('users:invite')\n\nexport class UsersInviteCommand extends SanityCommand<typeof UsersInviteCommand> {\n static override args = {\n email: Args.string({\n description: 'Email address to invite',\n required: false,\n }),\n }\n\n static override description = 'Invite a new user to the project'\n\n static override examples = [\n {\n command: '<%= config.bin %> <%= command.id %>',\n description: 'Invite a new user to the project (prompt for details)',\n },\n {\n command: '<%= config.bin %> <%= command.id %> pippi@sanity.io',\n description: 'Send a new user invite to the email \"pippi@sanity.io\", prompt for role',\n },\n {\n command: '<%= config.bin %> <%= command.id %> pippi@sanity.io --role administrator',\n description: 'Send a new user invite to the email \"pippi@sanity.io\", as administrator',\n },\n ]\n\n static override flags = {\n role: Flags.string({\n description: 'Role to invite the user as',\n required: false,\n }),\n }\n\n public async run(): Promise<void> {\n const {email: selectedEmail} = this.args\n const {role: selectedRole} = this.flags\n\n const projectId = await this.getProjectId()\n\n if (!projectId) {\n this.error(NO_PROJECT_ID, {exit: 1})\n }\n\n let roles: Role[]\n try {\n roles = (await getProjectRoles(projectId)).filter((role) => role.appliesToUsers)\n } catch (error) {\n usersInviteDebug('Error fetching roles', error)\n this.error('Error fetching roles', {exit: 1})\n }\n\n const email = selectedEmail || (await this.promptForEmail())\n const roleSelection = selectedRole || (await this.promptForRole(roles))\n const role = roles.find(({name}) => name.toLowerCase() === roleSelection.toLowerCase())\n\n if (!role) {\n this.error(\n `Role name \"${roleSelection}\" not found. Available roles: ${roles.map((r) => r.name).join(', ')}`,\n {exit: 1},\n )\n }\n\n try {\n await inviteUser({email, projectId, role: role.name})\n\n this.log(`Invitation sent to ${email}`)\n } catch (error) {\n usersInviteDebug(`Error inviting user`, error)\n if ((error as Error & {statusCode: number}).statusCode === 402) {\n this.error(QUOTA_ERROR_MESSAGE, {exit: 1})\n }\n\n this.error(`Error inviting user`, {exit: 1})\n }\n }\n\n private async promptForEmail(): Promise<string> {\n return input({\n message: 'Email to invite:',\n transformer: (val: string) => val.trim(),\n validate: validateEmail,\n })\n }\n\n private async promptForRole(roles: Role[]): Promise<string> {\n return select({\n choices: roles.map((role) => ({\n name: `${role.title} (${role.description || 'No description'})`,\n value: role.name,\n })),\n message: 'Which role should the user have?',\n })\n }\n}\n"],"names":["Args","Flags","SanityCommand","subdebug","input","select","validateEmail","getProjectRoles","inviteUser","NO_PROJECT_ID","QUOTA_ERROR_MESSAGE","usersInviteDebug","UsersInviteCommand","args","email","string","description","required","examples","command","flags","role","run","selectedEmail","selectedRole","projectId","getProjectId","error","exit","roles","filter","appliesToUsers","promptForEmail","roleSelection","promptForRole","find","name","toLowerCase","map","r","join","log","statusCode","message","transformer","val","trim","validate","choices","title","value"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { Flags } from '@oclif/core';
|
|
|
2
2
|
import { SanityCommand } from '@sanity/cli-core';
|
|
3
3
|
import { chalk } from '@sanity/cli-core/ux';
|
|
4
4
|
import { size, sortBy } from 'lodash-es';
|
|
5
|
-
import { USERS_API_VERSION } from '../../actions/users/apiVersion.js';
|
|
6
5
|
import { getMembersForProject } from '../../actions/users/getMembersForProject.js';
|
|
6
|
+
import { NO_PROJECT_ID } from '../../util/errorMessages.js';
|
|
7
7
|
export class List extends SanityCommand {
|
|
8
8
|
static description = 'List all users of the project';
|
|
9
9
|
static examples = [
|
|
@@ -58,16 +58,13 @@ export class List extends SanityCommand {
|
|
|
58
58
|
];
|
|
59
59
|
async run() {
|
|
60
60
|
const { invitations, order, robots, sort } = this.flags;
|
|
61
|
-
const client = await this.getGlobalApiClient({
|
|
62
|
-
apiVersion: USERS_API_VERSION,
|
|
63
|
-
requireUser: true
|
|
64
|
-
});
|
|
65
61
|
const projectId = await this.getProjectId();
|
|
66
62
|
if (!projectId) {
|
|
67
|
-
|
|
63
|
+
this.error(NO_PROJECT_ID, {
|
|
64
|
+
exit: 1
|
|
65
|
+
});
|
|
68
66
|
}
|
|
69
67
|
const members = await getMembersForProject({
|
|
70
|
-
client,
|
|
71
68
|
includeInvitations: invitations,
|
|
72
69
|
includeRobots: robots,
|
|
73
70
|
projectId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/commands/users/list.ts"],"sourcesContent":["import {Flags} from '@oclif/core'\nimport {SanityCommand} from '@sanity/cli-core'\nimport {chalk} from '@sanity/cli-core/ux'\nimport {size, sortBy} from 'lodash-es'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/commands/users/list.ts"],"sourcesContent":["import {Flags} from '@oclif/core'\nimport {SanityCommand} from '@sanity/cli-core'\nimport {chalk} from '@sanity/cli-core/ux'\nimport {size, sortBy} from 'lodash-es'\n\nimport {getMembersForProject} from '../../actions/users/getMembersForProject.js'\nimport {NO_PROJECT_ID} from '../../util/errorMessages.js'\n\nexport class List extends SanityCommand<typeof List> {\n static override description = 'List all users of the project'\n static override examples = [\n {\n command: '<%= config.bin %> <%= command.id %>',\n description: 'List all users of the project',\n },\n {\n command: '<%= config.bin %> <%= command.id %> --no-invitations --no-robots',\n description: 'List all users of the project, but exclude pending invitations and robots',\n },\n {\n command: '<%= config.bin %> <%= command.id %> --sort role',\n description: 'List all users, sorted by role',\n },\n ]\n static override flags = {\n invitations: Flags.boolean({\n allowNo: true,\n default: true,\n description: 'Includes or excludes pending invitations',\n }),\n order: Flags.string({\n default: 'asc',\n description: 'Sort output ascending/descending',\n options: ['asc', 'desc'],\n }),\n robots: Flags.boolean({\n allowNo: true,\n default: true,\n description: 'Includes or excludes robots (token users)',\n }),\n sort: Flags.string({\n default: 'date',\n description: 'Sort users by specified column',\n options: ['id', 'name', 'role', 'date'],\n }),\n }\n\n private readonly sortFields = ['id', 'name', 'role', 'date']\n\n public async run(): Promise<void> {\n const {invitations, order, robots, sort} = this.flags\n\n const projectId = await this.getProjectId()\n\n if (!projectId) {\n this.error(NO_PROJECT_ID, {exit: 1})\n }\n\n const members = await getMembersForProject({\n includeInvitations: invitations,\n includeRobots: robots,\n projectId,\n })\n\n const ordered = sortBy(\n members.map(({date, id, name, role}) => [id, name, role, date]),\n [this.sortFields.indexOf(sort)],\n )\n\n const rows = order === 'asc' ? ordered : ordered.toReversed()\n\n // Initialize maxWidths with the width of each header\n const maxWidths = this.sortFields.map((str) => size(str))\n\n // Calculate maximum width for each column\n for (const row of rows) {\n for (const [i, element] of row.entries()) {\n maxWidths[i] = Math.max(size(element), maxWidths[i])\n }\n }\n\n const printRow = (row: string[]) => {\n const isInvite = row[0] === '<pending>'\n const textRow = row.map((col, i) => `${col}`.padEnd(maxWidths[i])).join(' ')\n return isInvite ? chalk.dim(textRow) : textRow\n }\n\n this.log(chalk.cyan(printRow(this.sortFields)))\n for (const row of rows) {\n this.log(printRow(row))\n }\n }\n}\n"],"names":["Flags","SanityCommand","chalk","size","sortBy","getMembersForProject","NO_PROJECT_ID","List","description","examples","command","flags","invitations","boolean","allowNo","default","order","string","options","robots","sort","sortFields","run","projectId","getProjectId","error","exit","members","includeInvitations","includeRobots","ordered","map","date","id","name","role","indexOf","rows","toReversed","maxWidths","str","row","i","element","entries","Math","max","printRow","isInvite","textRow","col","padEnd","join","dim","log","cyan"],"mappings":"AAAA,SAAQA,KAAK,QAAO,cAAa;AACjC,SAAQC,aAAa,QAAO,mBAAkB;AAC9C,SAAQC,KAAK,QAAO,sBAAqB;AACzC,SAAQC,IAAI,EAAEC,MAAM,QAAO,YAAW;AAEtC,SAAQC,oBAAoB,QAAO,8CAA6C;AAChF,SAAQC,aAAa,QAAO,8BAA6B;AAEzD,OAAO,MAAMC,aAAaN;IACxB,OAAgBO,cAAc,gCAA+B;IAC7D,OAAgBC,WAAW;QACzB;YACEC,SAAS;YACTF,aAAa;QACf;QACA;YACEE,SAAS;YACTF,aAAa;QACf;QACA;YACEE,SAAS;YACTF,aAAa;QACf;KACD,CAAA;IACD,OAAgBG,QAAQ;QACtBC,aAAaZ,MAAMa,OAAO,CAAC;YACzBC,SAAS;YACTC,SAAS;YACTP,aAAa;QACf;QACAQ,OAAOhB,MAAMiB,MAAM,CAAC;YAClBF,SAAS;YACTP,aAAa;YACbU,SAAS;gBAAC;gBAAO;aAAO;QAC1B;QACAC,QAAQnB,MAAMa,OAAO,CAAC;YACpBC,SAAS;YACTC,SAAS;YACTP,aAAa;QACf;QACAY,MAAMpB,MAAMiB,MAAM,CAAC;YACjBF,SAAS;YACTP,aAAa;YACbU,SAAS;gBAAC;gBAAM;gBAAQ;gBAAQ;aAAO;QACzC;IACF,EAAC;IAEgBG,aAAa;QAAC;QAAM;QAAQ;QAAQ;KAAO,CAAA;IAE5D,MAAaC,MAAqB;QAChC,MAAM,EAACV,WAAW,EAAEI,KAAK,EAAEG,MAAM,EAAEC,IAAI,EAAC,GAAG,IAAI,CAACT,KAAK;QAErD,MAAMY,YAAY,MAAM,IAAI,CAACC,YAAY;QAEzC,IAAI,CAACD,WAAW;YACd,IAAI,CAACE,KAAK,CAACnB,eAAe;gBAACoB,MAAM;YAAC;QACpC;QAEA,MAAMC,UAAU,MAAMtB,qBAAqB;YACzCuB,oBAAoBhB;YACpBiB,eAAeV;YACfI;QACF;QAEA,MAAMO,UAAU1B,OACduB,QAAQI,GAAG,CAAC,CAAC,EAACC,IAAI,EAAEC,EAAE,EAAEC,IAAI,EAAEC,IAAI,EAAC,GAAK;gBAACF;gBAAIC;gBAAMC;gBAAMH;aAAK,GAC9D;YAAC,IAAI,CAACX,UAAU,CAACe,OAAO,CAAChB;SAAM;QAGjC,MAAMiB,OAAOrB,UAAU,QAAQc,UAAUA,QAAQQ,UAAU;QAE3D,qDAAqD;QACrD,MAAMC,YAAY,IAAI,CAAClB,UAAU,CAACU,GAAG,CAAC,CAACS,MAAQrC,KAAKqC;QAEpD,0CAA0C;QAC1C,KAAK,MAAMC,OAAOJ,KAAM;YACtB,KAAK,MAAM,CAACK,GAAGC,QAAQ,IAAIF,IAAIG,OAAO,GAAI;gBACxCL,SAAS,CAACG,EAAE,GAAGG,KAAKC,GAAG,CAAC3C,KAAKwC,UAAUJ,SAAS,CAACG,EAAE;YACrD;QACF;QAEA,MAAMK,WAAW,CAACN;YAChB,MAAMO,WAAWP,GAAG,CAAC,EAAE,KAAK;YAC5B,MAAMQ,UAAUR,IAAIV,GAAG,CAAC,CAACmB,KAAKR,IAAM,GAAGQ,KAAK,CAACC,MAAM,CAACZ,SAAS,CAACG,EAAE,GAAGU,IAAI,CAAC;YACxE,OAAOJ,WAAW9C,MAAMmD,GAAG,CAACJ,WAAWA;QACzC;QAEA,IAAI,CAACK,GAAG,CAACpD,MAAMqD,IAAI,CAACR,SAAS,IAAI,CAAC1B,UAAU;QAC5C,KAAK,MAAMoB,OAAOJ,KAAM;YACtB,IAAI,CAACiB,GAAG,CAACP,SAASN;QACpB;IACF;AACF"}
|
|
@@ -9,18 +9,20 @@ export declare function createCliConfig(config: CliConfig): {
|
|
|
9
9
|
} | undefined;
|
|
10
10
|
app?: {
|
|
11
11
|
entry?: string | undefined;
|
|
12
|
+
icon?: string | undefined;
|
|
12
13
|
id?: string | undefined;
|
|
13
14
|
organizationId?: string | undefined;
|
|
15
|
+
title?: string | undefined;
|
|
14
16
|
} | undefined;
|
|
15
17
|
autoUpdates?: boolean | undefined;
|
|
16
18
|
deployment?: {
|
|
17
|
-
autoUpdates?: boolean | undefined;
|
|
18
19
|
appId?: string | undefined;
|
|
20
|
+
autoUpdates?: boolean | undefined;
|
|
19
21
|
} | undefined;
|
|
20
22
|
graphql?: {
|
|
21
|
-
id?: string | undefined;
|
|
22
23
|
filterSuffix?: string | undefined;
|
|
23
24
|
generation?: "gen1" | "gen2" | "gen3" | undefined;
|
|
25
|
+
id?: string | undefined;
|
|
24
26
|
nonNullDocumentFields?: boolean | undefined;
|
|
25
27
|
playground?: boolean | undefined;
|
|
26
28
|
source?: string | undefined;
|
|
@@ -40,9 +42,9 @@ export declare function createCliConfig(config: CliConfig): {
|
|
|
40
42
|
dynamicGating: {
|
|
41
43
|
source: string;
|
|
42
44
|
} | null;
|
|
43
|
-
panicThreshold:
|
|
45
|
+
panicThreshold: "none" | "all_errors" | "critical_errors";
|
|
44
46
|
noEmit: boolean;
|
|
45
|
-
compilationMode:
|
|
47
|
+
compilationMode: "all" | "syntax" | "infer" | "annotation";
|
|
46
48
|
eslintSuppressionRules: Array<string> | null | undefined;
|
|
47
49
|
flowSuppressions: boolean;
|
|
48
50
|
ignoreUseNoForget: boolean;
|
|
@@ -61,4 +63,11 @@ export declare function createCliConfig(config: CliConfig): {
|
|
|
61
63
|
} | undefined;
|
|
62
64
|
studioHost?: string | undefined;
|
|
63
65
|
vite?: import("@sanity/cli-core").UserViteConfig | undefined;
|
|
66
|
+
typegen?: {
|
|
67
|
+
path: string | string[];
|
|
68
|
+
schema: string;
|
|
69
|
+
generates: string;
|
|
70
|
+
formatGeneratedCode: boolean;
|
|
71
|
+
overloadClientMethods: boolean;
|
|
72
|
+
} | undefined;
|
|
64
73
|
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { confirm } from '@sanity/cli-core/ux';
|
|
2
|
+
export function promptForTypeScript() {
|
|
3
|
+
return confirm({
|
|
4
|
+
default: true,
|
|
5
|
+
message: 'Do you want to use TypeScript?'
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
export function promptImplicitReconfigure() {
|
|
9
|
+
return confirm({
|
|
10
|
+
default: true,
|
|
11
|
+
message: 'The current folder contains a configured Sanity studio. Would you like to reconfigure it?'
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=promptForTypescript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/prompts/init/promptForTypescript.ts"],"sourcesContent":["import {confirm} from '@sanity/cli-core/ux'\n\nexport function promptForTypeScript(): Promise<boolean> {\n return confirm({\n default: true,\n message: 'Do you want to use TypeScript?',\n })\n}\n\nexport function promptImplicitReconfigure(): Promise<boolean> {\n return confirm({\n default: true,\n message:\n 'The current folder contains a configured Sanity studio. Would you like to reconfigure it?',\n })\n}\n"],"names":["confirm","promptForTypeScript","default","message","promptImplicitReconfigure"],"mappings":"AAAA,SAAQA,OAAO,QAAO,sBAAqB;AAE3C,OAAO,SAASC;IACd,OAAOD,QAAQ;QACbE,SAAS;QACTC,SAAS;IACX;AACF;AAEA,OAAO,SAASC;IACd,OAAOJ,QAAQ;QACbE,SAAS;QACTC,SACE;IACJ;AACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Output } from '@sanity/cli-core';
|
|
2
|
+
import { type DatasetAclMode } from '@sanity/client';
|
|
3
|
+
/**
|
|
4
|
+
* Prompts the user to select a dataset ACL mode (visibility)
|
|
5
|
+
*
|
|
6
|
+
* @param output - Optional output instance for logging additional information
|
|
7
|
+
* @returns Promise resolving to the selected ACL mode
|
|
8
|
+
*/
|
|
9
|
+
export declare function promptForDatasetAclMode(output?: Output): Promise<DatasetAclMode>;
|