@sanity/cli 6.0.0-alpha.9 → 6.1.0
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/README.md +602 -291
- package/bin/run.js +2 -0
- package/dist/SanityHelp.js +51 -23
- package/dist/SanityHelp.js.map +1 -1
- package/dist/actions/auth/authServer.js +28 -22
- package/dist/actions/auth/authServer.js.map +1 -1
- package/dist/actions/auth/login/getProvider.js +49 -38
- package/dist/actions/auth/login/getProvider.js.map +1 -1
- package/dist/actions/auth/login/getSSOProvider.js +25 -19
- package/dist/actions/auth/login/getSSOProvider.js.map +1 -1
- package/dist/actions/auth/login/login.js +12 -33
- package/dist/actions/auth/login/login.js.map +1 -1
- package/dist/actions/auth/types.js.map +1 -1
- package/dist/actions/backup/downloadAsset.js +9 -9
- package/dist/actions/backup/downloadAsset.js.map +1 -1
- package/dist/actions/backup/downloadDocument.js +8 -8
- package/dist/actions/backup/downloadDocument.js.map +1 -1
- package/dist/actions/build/buildApp.js +55 -18
- package/dist/actions/build/buildApp.js.map +1 -1
- package/dist/actions/build/buildStaticFiles.js +3 -2
- package/dist/actions/build/buildStaticFiles.js.map +1 -1
- package/dist/actions/build/buildStudio.js +72 -44
- package/dist/actions/build/buildStudio.js.map +1 -1
- package/dist/actions/build/buildVendorDependencies.js +18 -52
- package/dist/actions/build/buildVendorDependencies.js.map +1 -1
- package/dist/actions/build/checkRequiredDependencies.js +13 -8
- package/dist/actions/build/checkRequiredDependencies.js.map +1 -1
- package/dist/actions/build/checkStudioDependencyVersions.js +19 -17
- package/dist/actions/build/checkStudioDependencyVersions.js.map +1 -1
- package/dist/actions/build/createExternalFromImportMap.js +1 -1
- package/dist/actions/build/createExternalFromImportMap.js.map +1 -1
- package/dist/actions/build/determineBasePath.js +5 -2
- package/dist/actions/build/determineBasePath.js.map +1 -1
- package/dist/actions/build/getViteConfig.js +47 -4
- package/dist/actions/build/getViteConfig.js.map +1 -1
- package/dist/actions/build/handlePrereleaseVersions.js +44 -0
- package/dist/actions/build/handlePrereleaseVersions.js.map +1 -0
- package/dist/actions/build/renderDocument.js +6 -10
- package/dist/actions/build/renderDocument.js.map +1 -1
- package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js +4 -4
- package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js.map +1 -1
- package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js +3 -3
- package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js.map +1 -1
- package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js +1 -0
- package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js.map +1 -1
- package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js +2 -2
- package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js.map +1 -1
- package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js +1 -1
- package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js.map +1 -1
- package/dist/actions/build/shouldAutoUpdate.js +2 -0
- package/dist/actions/build/shouldAutoUpdate.js.map +1 -1
- package/dist/actions/build/types.js.map +1 -1
- package/dist/actions/build/writeFavicons.js +3 -5
- package/dist/actions/build/writeFavicons.js.map +1 -1
- package/dist/actions/build/writeSanityRuntime.js +4 -3
- package/dist/actions/build/writeSanityRuntime.js.map +1 -1
- package/dist/actions/codemods/reactIconsV3.js +2 -2
- package/dist/actions/codemods/reactIconsV3.js.map +1 -1
- package/dist/actions/dataset/create.js +7 -1
- package/dist/actions/dataset/create.js.map +1 -1
- package/dist/actions/dataset/determineDatasetAclMode.js.map +1 -1
- package/dist/actions/dataset/resolveDataset.js +26 -0
- package/dist/actions/dataset/resolveDataset.js.map +1 -0
- package/dist/actions/debug/formatters.js +22 -0
- package/dist/actions/debug/formatters.js.map +1 -0
- package/dist/actions/deploy/createStudioUserApplication.js +17 -4
- package/dist/actions/deploy/createStudioUserApplication.js.map +1 -1
- package/dist/actions/deploy/deployApp.js +41 -15
- package/dist/actions/deploy/deployApp.js.map +1 -1
- package/dist/actions/deploy/deployStudio.js +92 -44
- package/dist/actions/deploy/deployStudio.js.map +1 -1
- package/dist/actions/deploy/deployStudioSchemasAndManifests.js +55 -0
- package/dist/actions/deploy/deployStudioSchemasAndManifests.js.map +1 -0
- package/dist/actions/deploy/deployStudioSchemasAndManifests.worker.js +120 -0
- package/dist/actions/deploy/deployStudioSchemasAndManifests.worker.js.map +1 -0
- package/dist/actions/deploy/findUserApplicationForStudio.js +35 -12
- package/dist/actions/deploy/findUserApplicationForStudio.js.map +1 -1
- package/dist/actions/deploy/types.js +10 -1
- package/dist/actions/deploy/types.js.map +1 -1
- package/dist/actions/deploy/urlUtils.js +21 -0
- package/dist/actions/deploy/urlUtils.js.map +1 -0
- package/dist/actions/dev/getDashboardAppUrl.js +48 -0
- package/dist/actions/dev/getDashboardAppUrl.js.map +1 -0
- package/dist/actions/dev/getDevServerConfig.js +7 -3
- package/dist/actions/dev/getDevServerConfig.js.map +1 -1
- package/dist/actions/dev/startAppDevServer.js +3 -3
- package/dist/actions/dev/startAppDevServer.js.map +1 -1
- package/dist/actions/dev/startStudioDevServer.js +14 -14
- package/dist/actions/dev/startStudioDevServer.js.map +1 -1
- package/dist/actions/doctor/checks/cliInstallation.js +56 -0
- package/dist/actions/doctor/checks/cliInstallation.js.map +1 -0
- package/dist/actions/doctor/checks/index.js +16 -0
- package/dist/actions/doctor/checks/index.js.map +1 -0
- package/dist/actions/doctor/runDoctorChecks.js +56 -0
- package/dist/actions/doctor/runDoctorChecks.js.map +1 -0
- package/dist/actions/doctor/types.js +3 -0
- package/dist/actions/doctor/types.js.map +1 -0
- package/dist/actions/documents/types.js.map +1 -1
- package/dist/actions/documents/validate.js +11 -2
- package/dist/actions/documents/validate.js.map +1 -1
- package/dist/actions/documents/validateDocuments.worker.js +4 -4
- package/dist/actions/documents/validateDocuments.worker.js.map +1 -1
- package/dist/actions/documents/validation/reporters/jsonReporter.js +1 -1
- package/dist/actions/documents/validation/reporters/jsonReporter.js.map +1 -1
- package/dist/actions/documents/validation/reporters/ndjsonReporter.js +1 -1
- package/dist/actions/documents/validation/reporters/ndjsonReporter.js.map +1 -1
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js +1 -1
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js.map +1 -1
- package/dist/actions/documents/validation/reporters/prettyReporter/tree.js +108 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/tree.js.map +1 -0
- package/dist/actions/graphql/SchemaError.js +4 -26
- package/dist/actions/graphql/SchemaError.js.map +1 -1
- package/dist/actions/graphql/__tests__/fixtures/many-self-refs.js +540 -0
- package/dist/actions/graphql/__tests__/fixtures/many-self-refs.js.map +1 -0
- package/dist/actions/graphql/__tests__/fixtures/test-studio.js +1143 -0
- package/dist/actions/graphql/__tests__/fixtures/test-studio.js.map +1 -0
- package/dist/actions/graphql/__tests__/fixtures/union-refs.js +591 -0
- package/dist/actions/graphql/__tests__/fixtures/union-refs.js.map +1 -0
- package/dist/actions/graphql/__tests__/helpers.js +23 -0
- package/dist/actions/graphql/__tests__/helpers.js.map +1 -0
- package/dist/actions/graphql/extractFromSanitySchema.js +5 -5
- package/dist/actions/graphql/extractFromSanitySchema.js.map +1 -1
- package/dist/actions/graphql/extractGraphQLAPIs.js +150 -0
- package/dist/actions/graphql/extractGraphQLAPIs.js.map +1 -0
- package/dist/actions/graphql/extractGraphQLAPIs.worker.js +12 -0
- package/dist/actions/graphql/extractGraphQLAPIs.worker.js.map +1 -0
- package/dist/actions/graphql/gen1/generateTypeFilters.js +1 -1
- package/dist/actions/graphql/gen1/generateTypeFilters.js.map +1 -1
- package/dist/actions/graphql/gen1/generateTypeQueries.js +2 -1
- package/dist/actions/graphql/gen1/generateTypeQueries.js.map +1 -1
- package/dist/actions/graphql/gen1/index.js +5 -5
- package/dist/actions/graphql/gen1/index.js.map +1 -1
- package/dist/actions/graphql/gen2/generateTypeQueries.js +1 -1
- package/dist/actions/graphql/gen2/generateTypeQueries.js.map +1 -1
- package/dist/actions/graphql/gen2/index.js +6 -6
- package/dist/actions/graphql/gen2/index.js.map +1 -1
- package/dist/actions/graphql/gen3/generateTypeQueries.js +3 -4
- package/dist/actions/graphql/gen3/generateTypeQueries.js.map +1 -1
- package/dist/actions/graphql/gen3/index.js +6 -7
- package/dist/actions/graphql/gen3/index.js.map +1 -1
- package/dist/actions/graphql/getGraphQLAPIs.js +15 -57
- package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -1
- package/dist/actions/graphql/getGraphQLAPIs.worker.js +75 -106
- package/dist/actions/graphql/getGraphQLAPIs.worker.js.map +1 -1
- package/dist/actions/graphql/helpers.js +13 -0
- package/dist/actions/graphql/helpers.js.map +1 -1
- package/dist/actions/graphql/resolveGraphQLApisFromWorkspaces.js +187 -0
- package/dist/actions/graphql/resolveGraphQLApisFromWorkspaces.js.map +1 -0
- package/dist/actions/graphql/types.js +1 -1
- package/dist/actions/graphql/types.js.map +1 -1
- package/dist/actions/init/bootstrapLocalTemplate.js +10 -8
- package/dist/actions/init/bootstrapLocalTemplate.js.map +1 -1
- package/dist/actions/init/bootstrapRemoteTemplate.js +6 -5
- package/dist/actions/init/bootstrapRemoteTemplate.js.map +1 -1
- package/dist/actions/init/bootstrapTemplate.js.map +1 -1
- package/dist/actions/init/checkNextJsReactCompatibility.js +1 -1
- package/dist/actions/init/checkNextJsReactCompatibility.js.map +1 -1
- package/dist/actions/init/createAppCliConfig.js.map +1 -1
- package/dist/actions/init/createCliConfig.js.map +1 -1
- package/dist/actions/init/createPackageManifest.js +21 -9
- package/dist/actions/init/createPackageManifest.js.map +1 -1
- package/dist/actions/init/remoteTemplate.js +1 -2
- package/dist/actions/init/remoteTemplate.js.map +1 -1
- package/dist/actions/init/sdkAppDependencies.js +19 -0
- package/dist/actions/init/sdkAppDependencies.js.map +1 -0
- package/dist/actions/init/studioDependencies.js.map +1 -0
- package/dist/actions/init/templates/appQuickstart.js +1 -22
- package/dist/actions/init/templates/appQuickstart.js.map +1 -1
- package/dist/actions/init/templates/appSanityUi.js +3 -22
- package/dist/actions/init/templates/appSanityUi.js.map +1 -1
- package/dist/actions/init/types.js.map +1 -1
- package/dist/actions/manifest/SchemaIcon.js +6 -4
- package/dist/actions/manifest/SchemaIcon.js.map +1 -1
- package/dist/actions/manifest/blockTypeTransformer.js +67 -0
- package/dist/actions/manifest/blockTypeTransformer.js.map +1 -0
- package/dist/actions/manifest/debug.js +4 -0
- package/dist/actions/manifest/debug.js.map +1 -0
- package/dist/actions/manifest/extractAppManifest.js +39 -22
- package/dist/actions/manifest/extractAppManifest.js.map +1 -1
- package/dist/actions/manifest/extractManifest.js +27 -78
- package/dist/actions/manifest/extractManifest.js.map +1 -1
- package/dist/actions/manifest/extractManifest.worker.js +30 -0
- package/dist/actions/manifest/extractManifest.worker.js.map +1 -0
- package/dist/actions/manifest/extractWorkspaceManifest.js +31 -372
- package/dist/actions/manifest/extractWorkspaceManifest.js.map +1 -1
- package/dist/actions/manifest/iconResolver.js +30 -0
- package/dist/actions/manifest/iconResolver.js.map +1 -0
- package/dist/actions/manifest/referenceTransformer.js +51 -0
- package/dist/actions/manifest/referenceTransformer.js.map +1 -0
- package/dist/actions/manifest/schemaTypeHelpers.js +2 -2
- package/dist/actions/manifest/schemaTypeHelpers.js.map +1 -1
- package/dist/actions/manifest/schemaTypeTransformer.js +168 -0
- package/dist/actions/manifest/schemaTypeTransformer.js.map +1 -0
- package/dist/actions/manifest/transformerUtils.js +40 -0
- package/dist/actions/manifest/transformerUtils.js.map +1 -0
- package/dist/actions/manifest/types.js +5 -0
- package/dist/actions/manifest/types.js.map +1 -1
- package/dist/actions/manifest/validationTransformer.js +84 -0
- package/dist/actions/manifest/validationTransformer.js.map +1 -0
- package/dist/actions/manifest/writeManifestFile.js +30 -0
- package/dist/actions/manifest/writeManifestFile.js.map +1 -0
- package/dist/actions/manifest/writeWorkspaceFiles.js +30 -0
- package/dist/actions/manifest/writeWorkspaceFiles.js.map +1 -0
- package/dist/actions/mcp/detectAvailableEditors.js +34 -13
- package/dist/actions/mcp/detectAvailableEditors.js.map +1 -1
- package/dist/actions/mcp/editorConfigs.js +231 -109
- package/dist/actions/mcp/editorConfigs.js.map +1 -1
- package/dist/actions/mcp/promptForMCPSetup.js +16 -7
- package/dist/actions/mcp/promptForMCPSetup.js.map +1 -1
- package/dist/actions/mcp/setupMCP.js +62 -23
- package/dist/actions/mcp/setupMCP.js.map +1 -1
- package/dist/actions/mcp/types.js.map +1 -1
- package/dist/actions/mcp/validateEditorTokens.js +56 -0
- package/dist/actions/mcp/validateEditorTokens.js.map +1 -0
- package/dist/actions/mcp/writeMCPConfig.js +27 -15
- package/dist/actions/mcp/writeMCPConfig.js.map +1 -1
- package/dist/actions/media/buildNdjsonIndex.js +32 -0
- package/dist/actions/media/buildNdjsonIndex.js.map +1 -0
- package/dist/actions/media/importAspects.js +2 -11
- package/dist/actions/media/importAspects.js.map +1 -1
- package/dist/actions/media/importMedia.js +22 -18
- package/dist/actions/media/importMedia.js.map +1 -1
- package/dist/actions/organizations/findOrganizationByUserName.js +5 -0
- package/dist/actions/organizations/findOrganizationByUserName.js.map +1 -0
- package/dist/actions/organizations/getOrganization.js +3 -2
- package/dist/actions/organizations/getOrganization.js.map +1 -1
- package/dist/actions/organizations/getOrganizationChoices.js +27 -19
- package/dist/actions/organizations/getOrganizationChoices.js.map +1 -1
- package/dist/actions/organizations/types.js +3 -0
- package/dist/actions/organizations/types.js.map +1 -0
- package/dist/actions/projects/getManageUrl.js +1 -2
- package/dist/actions/projects/getManageUrl.js.map +1 -1
- package/dist/actions/schema/deleteSchemaAction.js +14 -30
- package/dist/actions/schema/deleteSchemaAction.js.map +1 -1
- package/dist/actions/schema/deploySchemas.js +22 -91
- package/dist/actions/schema/deploySchemas.js.map +1 -1
- package/dist/actions/schema/extractSanitySchema.worker.js +0 -5
- package/dist/actions/schema/extractSanitySchema.worker.js.map +1 -1
- package/dist/actions/schema/extractSanityWorkspace.worker.js +24 -0
- package/dist/actions/schema/extractSanityWorkspace.worker.js.map +1 -0
- package/dist/actions/schema/extractSchema.js +8 -40
- package/dist/actions/schema/extractSchema.js.map +1 -1
- package/dist/actions/schema/extractSchemaWatcher.js +128 -0
- package/dist/actions/schema/extractSchemaWatcher.js.map +1 -0
- package/dist/actions/schema/formatSchemaValidation.js +5 -1
- package/dist/actions/schema/formatSchemaValidation.js.map +1 -1
- package/dist/actions/schema/getExtractOptions.js +16 -0
- package/dist/actions/schema/getExtractOptions.js.map +1 -0
- package/dist/actions/schema/listSchemas.js +53 -56
- package/dist/actions/schema/listSchemas.js.map +1 -1
- package/dist/actions/schema/matchSchemaPattern.js +22 -0
- package/dist/actions/schema/matchSchemaPattern.js.map +1 -0
- package/dist/actions/schema/runSchemaExtraction.js +39 -0
- package/dist/actions/schema/runSchemaExtraction.js.map +1 -0
- package/dist/actions/schema/types.js +8 -0
- package/dist/actions/schema/types.js.map +1 -1
- package/dist/actions/schema/uniqueWorkspaces.worker.js +24 -0
- package/dist/actions/schema/uniqueWorkspaces.worker.js.map +1 -0
- package/dist/actions/schema/updateWorkspaceSchema.js +63 -0
- package/dist/actions/schema/updateWorkspaceSchema.js.map +1 -0
- package/dist/actions/schema/uploadSchemaToLexicon.js +87 -0
- package/dist/actions/schema/uploadSchemaToLexicon.js.map +1 -0
- package/dist/actions/schema/utils/SchemaExtractionError.js +10 -0
- package/dist/actions/schema/utils/SchemaExtractionError.js.map +1 -0
- package/dist/actions/schema/utils/schemaStoreValidation.js +1 -15
- package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -1
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js +1 -1
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -1
- package/dist/actions/schema/validateSchema.worker.js +1 -8
- package/dist/actions/schema/validateSchema.worker.js.map +1 -1
- package/dist/actions/schema/watchExtractSchema.js +72 -0
- package/dist/actions/schema/watchExtractSchema.js.map +1 -0
- package/dist/actions/telemetry/isTrueish.js +10 -0
- package/dist/actions/telemetry/isTrueish.js.map +1 -0
- package/dist/actions/telemetry/resolveConsent.js +2 -1
- package/dist/actions/telemetry/resolveConsent.js.map +1 -1
- package/dist/actions/telemetry/setConsent.js +2 -1
- package/dist/actions/telemetry/setConsent.js.map +1 -1
- package/dist/actions/telemetry/telemetryDebug.js +2 -2
- package/dist/actions/telemetry/telemetryDebug.js.map +1 -1
- package/dist/actions/users/getMembersForProject.js.map +1 -1
- package/dist/actions/users/getPendingInvitations.js +1 -1
- package/dist/actions/users/getPendingInvitations.js.map +1 -1
- package/dist/actions/users/types.js.map +1 -1
- package/dist/actions/versions/filterSanityModules.js.map +1 -1
- package/dist/actions/versions/findSanityModulesVersions.js +2 -3
- package/dist/actions/versions/findSanityModulesVersions.js.map +1 -1
- package/dist/actions/versions/getFormatters.js +1 -1
- package/dist/actions/versions/getFormatters.js.map +1 -1
- package/dist/actions/versions/tryFindLatestVersion.js +1 -1
- package/dist/actions/versions/tryFindLatestVersion.js.map +1 -1
- package/dist/commands/backup/disable.js +22 -7
- package/dist/commands/backup/disable.js.map +1 -1
- package/dist/commands/backup/download.js +19 -10
- package/dist/commands/backup/download.js.map +1 -1
- package/dist/commands/backup/enable.js +22 -7
- package/dist/commands/backup/enable.js.map +1 -1
- package/dist/commands/backup/list.js +20 -8
- package/dist/commands/backup/list.js.map +1 -1
- package/dist/commands/build.js +2 -5
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/cors/add.js +20 -7
- package/dist/commands/cors/add.js.map +1 -1
- package/dist/commands/cors/delete.js +22 -7
- package/dist/commands/cors/delete.js.map +1 -1
- package/dist/commands/cors/list.js +22 -7
- package/dist/commands/cors/list.js.map +1 -1
- package/dist/commands/dataset/alias/create.js +26 -7
- package/dist/commands/dataset/alias/create.js.map +1 -1
- package/dist/commands/dataset/alias/delete.js +20 -7
- package/dist/commands/dataset/alias/delete.js.map +1 -1
- package/dist/commands/dataset/alias/link.js +20 -7
- package/dist/commands/dataset/alias/link.js.map +1 -1
- package/dist/commands/dataset/alias/unlink.js +20 -7
- package/dist/commands/dataset/alias/unlink.js.map +1 -1
- package/dist/commands/dataset/copy.js +45 -30
- package/dist/commands/dataset/copy.js.map +1 -1
- package/dist/commands/dataset/create.js +32 -7
- package/dist/commands/dataset/create.js.map +1 -1
- package/dist/commands/dataset/delete.js +16 -7
- package/dist/commands/dataset/delete.js.map +1 -1
- package/dist/commands/dataset/embeddings/disable.js +77 -0
- package/dist/commands/dataset/embeddings/disable.js.map +1 -0
- package/dist/commands/dataset/embeddings/enable.js +141 -0
- package/dist/commands/dataset/embeddings/enable.js.map +1 -0
- package/dist/commands/dataset/embeddings/status.js +72 -0
- package/dist/commands/dataset/embeddings/status.js.map +1 -0
- package/dist/commands/dataset/export.js +25 -16
- package/dist/commands/dataset/export.js.map +1 -1
- package/dist/commands/dataset/import.js +306 -1
- package/dist/commands/dataset/import.js.map +1 -1
- package/dist/commands/dataset/list.js +22 -7
- package/dist/commands/dataset/list.js.map +1 -1
- package/dist/commands/dataset/visibility/get.js +18 -7
- package/dist/commands/dataset/visibility/get.js.map +1 -1
- package/dist/commands/dataset/visibility/set.js +22 -7
- package/dist/commands/dataset/visibility/set.js.map +1 -1
- package/dist/commands/debug.js +4 -2
- package/dist/commands/debug.js.map +1 -1
- package/dist/commands/deploy.js +22 -11
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.js +2 -4
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.js +125 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/documents/create.js +19 -12
- package/dist/commands/documents/create.js.map +1 -1
- package/dist/commands/documents/delete.js +19 -12
- package/dist/commands/documents/delete.js.map +1 -1
- package/dist/commands/documents/get.js +17 -12
- package/dist/commands/documents/get.js.map +1 -1
- package/dist/commands/documents/query.js +26 -18
- package/dist/commands/documents/query.js.map +1 -1
- package/dist/commands/documents/validate.js +32 -10
- package/dist/commands/documents/validate.js.map +1 -1
- package/dist/commands/graphql/deploy.js +58 -30
- package/dist/commands/graphql/deploy.js.map +1 -1
- package/dist/commands/graphql/list.js +15 -7
- package/dist/commands/graphql/list.js.map +1 -1
- package/dist/commands/graphql/undeploy.js +37 -19
- package/dist/commands/graphql/undeploy.js.map +1 -1
- package/dist/commands/hook/attempt.js +22 -7
- package/dist/commands/hook/attempt.js.map +1 -1
- package/dist/commands/hook/create.js +23 -8
- package/dist/commands/hook/create.js.map +1 -1
- package/dist/commands/hook/delete.js +22 -7
- package/dist/commands/hook/delete.js.map +1 -1
- package/dist/commands/hook/list.js +22 -7
- package/dist/commands/hook/list.js.map +1 -1
- package/dist/commands/hook/logs.js +21 -8
- package/dist/commands/hook/logs.js.map +1 -1
- package/dist/commands/init.js +55 -32
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.js +19 -6
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +8 -6
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/manage.js +0 -1
- package/dist/commands/manage.js.map +1 -1
- package/dist/commands/manifest/extract.js +14 -10
- package/dist/commands/manifest/extract.js.map +1 -1
- package/dist/commands/mcp/configure.js +4 -2
- package/dist/commands/mcp/configure.js.map +1 -1
- package/dist/commands/media/create-aspect.js +4 -4
- package/dist/commands/media/create-aspect.js.map +1 -1
- package/dist/commands/media/delete-aspect.js +9 -7
- package/dist/commands/media/delete-aspect.js.map +1 -1
- package/dist/commands/media/deploy-aspect.js +22 -9
- package/dist/commands/media/deploy-aspect.js.map +1 -1
- package/dist/commands/media/export.js +9 -7
- package/dist/commands/media/export.js.map +1 -1
- package/dist/commands/media/import.js +10 -8
- package/dist/commands/media/import.js.map +1 -1
- package/dist/commands/preview.js +5 -8
- package/dist/commands/preview.js.map +1 -1
- package/dist/commands/projects/list.js +2 -1
- package/dist/commands/projects/list.js.map +1 -1
- package/dist/commands/schema/delete.js +33 -34
- package/dist/commands/schema/delete.js.map +1 -1
- package/dist/commands/schema/deploy.js +19 -30
- package/dist/commands/schema/deploy.js.map +1 -1
- package/dist/commands/schema/extract.js +32 -4
- package/dist/commands/schema/extract.js.map +1 -1
- package/dist/commands/schema/list.js +10 -31
- package/dist/commands/schema/list.js.map +1 -1
- package/dist/commands/tokens/add.js +24 -7
- package/dist/commands/tokens/add.js.map +1 -1
- package/dist/commands/tokens/delete.js +20 -7
- package/dist/commands/tokens/delete.js.map +1 -1
- package/dist/commands/tokens/list.js +20 -7
- package/dist/commands/tokens/list.js.map +1 -1
- package/dist/commands/users/invite.js +24 -7
- package/dist/commands/users/invite.js.map +1 -1
- package/dist/commands/users/list.js +76 -33
- package/dist/commands/users/list.js.map +1 -1
- package/dist/commands/versions.js +1 -1
- package/dist/commands/versions.js.map +1 -1
- package/dist/config/createCliConfig.js +1 -2
- package/dist/config/createCliConfig.js.map +1 -1
- package/dist/exports/_internal.d.ts +132 -0
- package/dist/exports/_internal.js +4 -0
- package/dist/exports/_internal.js.map +1 -0
- package/dist/exports/index.d.ts +113 -0
- package/dist/exports/index.js +6 -0
- package/dist/exports/index.js.map +1 -0
- package/dist/hooks/init/checkForUpdates.js +14 -0
- package/dist/hooks/init/checkForUpdates.js.map +1 -0
- package/dist/hooks/prerun/flushTelemetry.worker.js +1 -1
- package/dist/hooks/prerun/flushTelemetry.worker.js.map +1 -1
- package/dist/hooks/prerun/injectEnvVariables.js +9 -1
- package/dist/hooks/prerun/injectEnvVariables.js.map +1 -1
- package/dist/hooks/prerun/setupTelemetry.js +16 -10
- package/dist/hooks/prerun/setupTelemetry.js.map +1 -1
- package/dist/prompts/promptForProject.js +64 -0
- package/dist/prompts/promptForProject.js.map +1 -0
- package/dist/{actions/auth/login/promptProviders.js → prompts/promptForProviders.js} +3 -3
- package/dist/prompts/promptForProviders.js.map +1 -0
- package/dist/prompts/selectMediaLibrary.js +1 -1
- package/dist/prompts/selectMediaLibrary.js.map +1 -1
- package/dist/server/devServer.js +4 -2
- package/dist/server/devServer.js.map +1 -1
- package/dist/server/previewServer.js +2 -2
- package/dist/server/previewServer.js.map +1 -1
- package/dist/server/vite/plugin-schema-extraction.js +201 -0
- package/dist/server/vite/plugin-schema-extraction.js.map +1 -0
- package/dist/server/vite/plugin-typegen.js +217 -0
- package/dist/server/vite/plugin-typegen.js.map +1 -0
- package/dist/services/auth.js +42 -3
- package/dist/services/auth.js.map +1 -1
- package/dist/services/datasets.js +7 -5
- package/dist/services/datasets.js.map +1 -1
- package/dist/services/docs.js +2 -2
- package/dist/services/docs.js.map +1 -1
- package/dist/services/embeddings.js +25 -0
- package/dist/services/embeddings.js.map +1 -0
- package/dist/services/getUrlHeaders.js +7 -18
- package/dist/services/getUrlHeaders.js.map +1 -1
- package/dist/services/grants.js +13 -0
- package/dist/services/grants.js.map +1 -0
- package/dist/services/graphql.js +1 -1
- package/dist/services/graphql.js.map +1 -1
- package/dist/services/mcp.js +55 -1
- package/dist/services/mcp.js.map +1 -1
- package/dist/services/projects.js +4 -2
- package/dist/services/projects.js.map +1 -1
- package/dist/services/schemas.js +1 -1
- package/dist/services/schemas.js.map +1 -1
- package/dist/services/telemetry.js +2 -1
- package/dist/services/telemetry.js.map +1 -1
- package/dist/services/userApplications.js +21 -6
- package/dist/services/userApplications.js.map +1 -1
- package/dist/telemetry/extractSchema.telemetry.js +10 -0
- package/dist/telemetry/extractSchema.telemetry.js.map +1 -1
- package/dist/types/grants.js +3 -0
- package/dist/types/grants.js.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/dist/util/checkProjectPermissions.js +21 -0
- package/dist/util/checkProjectPermissions.js.map +1 -0
- package/dist/util/cliClient.js +5 -3
- package/dist/util/cliClient.js.map +1 -1
- package/dist/util/compareDependencyVersions.js +74 -38
- package/dist/util/compareDependencyVersions.js.map +1 -1
- package/dist/util/createExpiringConfig.js +64 -0
- package/dist/util/createExpiringConfig.js.map +1 -0
- package/dist/util/detectFramework.js +135 -0
- package/dist/util/detectFramework.js.map +1 -0
- package/dist/util/errorMessages.js +0 -1
- package/dist/util/errorMessages.js.map +1 -1
- package/dist/util/extractDocumentsFromNdjsonOrTarball.js +1 -2
- package/dist/util/extractDocumentsFromNdjsonOrTarball.js.map +1 -1
- package/dist/util/getCliVersion.js +1 -1
- package/dist/util/getCliVersion.js.map +1 -1
- package/dist/util/getLocalPackageVersion.js +33 -23
- package/dist/util/getLocalPackageVersion.js.map +1 -1
- package/dist/util/getProjectDefaults.js +22 -28
- package/dist/util/getProjectDefaults.js.map +1 -1
- package/dist/util/getSharedServerConfig.js +1 -0
- package/dist/util/getSharedServerConfig.js.map +1 -1
- package/dist/util/getWorkspace.js +1 -1
- package/dist/util/getWorkspace.js.map +1 -1
- package/dist/util/gitConfig.js +45 -0
- package/dist/util/gitConfig.js.map +1 -0
- package/dist/util/isSchemaError.js +11 -0
- package/dist/util/isSchemaError.js.map +1 -0
- package/dist/util/isTar.js +8 -0
- package/dist/util/isTar.js.map +1 -0
- package/dist/util/packageManager/getPeerDependencies.js +44 -0
- package/dist/util/packageManager/getPeerDependencies.js.map +1 -0
- package/dist/util/packageManager/installationInfo/analyzeIssues.js +225 -0
- package/dist/util/packageManager/installationInfo/analyzeIssues.js.map +1 -0
- package/dist/util/packageManager/installationInfo/commands.js +73 -0
- package/dist/util/packageManager/installationInfo/commands.js.map +1 -0
- package/dist/util/packageManager/installationInfo/detectCliInstallation.js +66 -0
- package/dist/util/packageManager/installationInfo/detectCliInstallation.js.map +1 -0
- package/dist/util/packageManager/installationInfo/detectGlobals.js +295 -0
- package/dist/util/packageManager/installationInfo/detectGlobals.js.map +1 -0
- package/dist/util/packageManager/installationInfo/detectPackages.js +190 -0
- package/dist/util/packageManager/installationInfo/detectPackages.js.map +1 -0
- package/dist/util/packageManager/installationInfo/detectWorkspace.js +192 -0
- package/dist/util/packageManager/installationInfo/detectWorkspace.js.map +1 -0
- package/dist/util/packageManager/installationInfo/index.js +4 -0
- package/dist/util/packageManager/installationInfo/index.js.map +1 -0
- package/dist/util/packageManager/installationInfo/readJsonFile.js +14 -0
- package/dist/util/packageManager/installationInfo/readJsonFile.js.map +1 -0
- package/dist/util/packageManager/installationInfo/resolveVersionRange.js +42 -0
- package/dist/util/packageManager/installationInfo/resolveVersionRange.js.map +1 -0
- package/dist/util/packageManager/installationInfo/types.js +3 -0
- package/dist/util/packageManager/installationInfo/types.js.map +1 -0
- package/dist/util/packageManager/packageManagerChoice.js +1 -20
- package/dist/util/packageManager/packageManagerChoice.js.map +1 -1
- package/dist/util/packageManager/upgradePackages.js +4 -1
- package/dist/util/packageManager/upgradePackages.js.map +1 -1
- package/dist/util/promiseRaceWithTimeout.js +28 -0
- package/dist/util/promiseRaceWithTimeout.js.map +1 -0
- package/dist/util/readdirRecursive.js.map +1 -1
- package/dist/util/resolveLatestVersions.js +2 -2
- package/dist/util/resolveLatestVersions.js.map +1 -1
- package/dist/util/sharedFlags.js +54 -0
- package/dist/util/sharedFlags.js.map +1 -0
- package/dist/util/telemetry/cleanupOldTelemetryFiles.js +30 -0
- package/dist/util/telemetry/cleanupOldTelemetryFiles.js.map +1 -0
- package/dist/util/telemetry/createTelemetryStore.js +95 -0
- package/dist/util/telemetry/createTelemetryStore.js.map +1 -0
- package/dist/util/telemetry/createTraceId.js +10 -0
- package/dist/util/telemetry/createTraceId.js.map +1 -0
- package/dist/util/telemetry/findTelemetryFiles.js +35 -0
- package/dist/util/telemetry/findTelemetryFiles.js.map +1 -0
- package/dist/util/telemetry/flushTelemetryFiles.js +118 -0
- package/dist/util/telemetry/flushTelemetryFiles.js.map +1 -0
- package/dist/util/telemetry/generateTelemetryFilePath.js +30 -0
- package/dist/util/telemetry/generateTelemetryFilePath.js.map +1 -0
- package/dist/util/telemetry/logger.js +59 -0
- package/dist/util/telemetry/logger.js.map +1 -0
- package/dist/util/telemetry/readNDJSON.js +28 -0
- package/dist/util/telemetry/readNDJSON.js.map +1 -0
- package/dist/util/telemetry/telemetryStoreDebug.js +7 -0
- package/dist/util/telemetry/telemetryStoreDebug.js.map +1 -0
- package/dist/util/telemetry/trace.js +150 -0
- package/dist/util/telemetry/trace.js.map +1 -0
- package/dist/util/toForwardSlashes.js +8 -0
- package/dist/util/toForwardSlashes.js.map +1 -0
- package/dist/util/update/fetchLatestVersion.js +21 -0
- package/dist/util/update/fetchLatestVersion.js.map +1 -0
- package/dist/util/update/getUpdateCommand.js +20 -0
- package/dist/util/update/getUpdateCommand.js.map +1 -0
- package/dist/util/update/isInstalledUsingYarn.js +17 -0
- package/dist/util/update/isInstalledUsingYarn.js.map +1 -0
- package/dist/util/update/showNotificationUpdate.js +31 -0
- package/dist/util/update/showNotificationUpdate.js.map +1 -0
- package/dist/util/update/updateChecker.js +60 -0
- package/dist/util/update/updateChecker.js.map +1 -0
- package/dist/util/update/updateCheckerDebug.js +4 -0
- package/dist/util/update/updateCheckerDebug.js.map +1 -0
- package/oclif.config.js +1 -0
- package/oclif.manifest.json +1285 -492
- package/package.json +72 -73
- package/static/favicons/apple-touch-icon.png +0 -0
- package/static/favicons/favicon-192.png +0 -0
- package/static/favicons/favicon-512.png +0 -0
- package/static/favicons/favicon-96.png +0 -0
- package/static/favicons/favicon.ico +0 -0
- package/static/favicons/favicon.svg +12 -0
- package/dist/actions/auth/login/promptProviders.js.map +0 -1
- package/dist/actions/dev/getCoreAppUrl.js +0 -10
- package/dist/actions/dev/getCoreAppUrl.js.map +0 -1
- package/dist/actions/schema/schemaStoreTypes.js +0 -19
- package/dist/actions/schema/schemaStoreTypes.js.map +0 -1
- package/dist/actions/schema/utils/manifestExtractor.js +0 -33
- package/dist/actions/schema/utils/manifestExtractor.js.map +0 -1
- package/dist/actions/schema/utils/manifestReader.js +0 -71
- package/dist/actions/schema/utils/manifestReader.js.map +0 -1
- package/dist/index.d.ts +0 -2326
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/studioDependencies.js.map +0 -1
- package/dist/typings/deepSortObject.d.js +0 -2
- package/dist/typings/deepSortObject.d.js.map +0 -1
- package/dist/util/findNdjsonEntry.js +0 -21
- package/dist/util/findNdjsonEntry.js.map +0 -1
- package/dist/util/importStudioConfig.js +0 -40
- package/dist/util/importStudioConfig.js.map +0 -1
- package/dist/util/readModuleVersion.js +0 -15
- package/dist/util/readModuleVersion.js.map +0 -1
- package/dist/util/readPackageJson.js +0 -44
- package/dist/util/readPackageJson.js.map +0 -1
- package/dist/util/readPackageManifest.js +0 -46
- package/dist/util/readPackageManifest.js.map +0 -1
- package/dist/util/uniqBy.js +0 -14
- package/dist/util/uniqBy.js.map +0 -1
- package/dist/util/workerChannels.js +0 -172
- package/dist/util/workerChannels.js.map +0 -1
- /package/dist/{studioDependencies.js → actions/init/studioDependencies.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/commands/dataset/create.ts"],"sourcesContent":["import {Args, Flags} from '@oclif/core'\nimport {SanityCommand, subdebug} from '@sanity/cli-core'\n\nimport {createDataset} from '../../actions/dataset/create.js'\nimport {validateDatasetName} from '../../actions/dataset/validateDatasetName.js'\nimport {promptForDatasetName} from '../../prompts/promptForDatasetName.js'\nimport {listDatasets} from '../../services/datasets.js'\nimport {getProjectFeatures} from '../../services/getProjectFeatures.js'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/commands/dataset/create.ts"],"sourcesContent":["import {Args, Flags} from '@oclif/core'\nimport {SanityCommand, subdebug} from '@sanity/cli-core'\n\nimport {createDataset} from '../../actions/dataset/create.js'\nimport {validateDatasetName} from '../../actions/dataset/validateDatasetName.js'\nimport {promptForDatasetName} from '../../prompts/promptForDatasetName.js'\nimport {promptForProject} from '../../prompts/promptForProject.js'\nimport {listDatasets} from '../../services/datasets.js'\nimport {getProjectFeatures} from '../../services/getProjectFeatures.js'\nimport {getProjectIdFlag} from '../../util/sharedFlags.js'\n\nconst createDatasetDebug = subdebug('dataset:create')\n\nconst ALLOWED_ACL_MODES = ['custom', 'private', 'public']\n\nexport class CreateDatasetCommand extends SanityCommand<typeof CreateDatasetCommand> {\n static override args = {\n name: Args.string({\n description: 'Name of the dataset to create',\n required: false,\n }),\n }\n\n static override description = 'Create a new dataset within your project'\n\n static override examples = [\n {\n command: '<%= config.bin %> <%= command.id %>',\n description: 'Interactively create a dataset',\n },\n {\n command: '<%= config.bin %> <%= command.id %> my-dataset',\n description: 'Create a dataset named \"my-dataset\"',\n },\n {\n command: '<%= config.bin %> <%= command.id %> my-dataset --visibility private',\n description: 'Create a private dataset named \"my-dataset\"',\n },\n ]\n\n static override flags = {\n ...getProjectIdFlag({\n description: 'Project ID to create dataset in',\n semantics: 'override',\n }),\n embeddings: Flags.boolean({\n default: false,\n description: 'Enable embeddings for this dataset',\n }),\n 'embeddings-projection': Flags.string({\n dependsOn: ['embeddings'],\n description: 'GROQ projection for embeddings indexing (e.g. \"{ title, body }\")',\n }),\n visibility: Flags.string({\n description: 'Set visibility for this dataset (custom/private/public)',\n options: ALLOWED_ACL_MODES,\n required: false,\n }),\n }\n\n public async run(): Promise<void> {\n const {args, flags} = await this.parse(CreateDatasetCommand)\n const {visibility} = flags\n\n // Ensure we have project context\n const projectId = await this.getProjectId({\n fallback: () =>\n promptForProject({\n requiredPermissions: [\n {grant: 'read', permission: 'sanity.project.datasets'},\n {grant: 'create', permission: 'sanity.project.datasets'},\n ],\n }),\n })\n\n // Get dataset name from args or prompt\n let {name: datasetName} = args\n if (datasetName) {\n const nameError = validateDatasetName(datasetName)\n if (nameError) {\n this.error(nameError, {exit: 1})\n }\n } else {\n datasetName = await promptForDatasetName()\n }\n\n let datasets: string[]\n let projectFeatures: string[]\n\n try {\n const [datasetsResponse, featuresResponse] = await Promise.all([\n listDatasets(projectId),\n getProjectFeatures(projectId),\n ])\n datasets = datasetsResponse.map((ds) => ds.name)\n projectFeatures = featuresResponse\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n createDatasetDebug(`Failed to fetch project data: ${message}`, error)\n this.error(`Failed to fetch project data: ${message}`, {exit: 1})\n }\n\n if (datasets.includes(datasetName)) {\n this.error(`Dataset \"${datasetName}\" already exists`, {exit: 1})\n }\n\n const canCreatePrivate = projectFeatures.includes('privateDataset')\n createDatasetDebug('%s create private datasets', canCreatePrivate ? 'Can' : 'Cannot')\n\n try {\n await createDataset({\n datasetName,\n embeddings: flags.embeddings,\n embeddingsProjection: flags['embeddings-projection'],\n output: this.output,\n projectFeatures,\n projectId,\n visibility,\n })\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n this.error(`Failed to create dataset: ${message}`, {exit: 1})\n }\n }\n}\n"],"names":["Args","Flags","SanityCommand","subdebug","createDataset","validateDatasetName","promptForDatasetName","promptForProject","listDatasets","getProjectFeatures","getProjectIdFlag","createDatasetDebug","ALLOWED_ACL_MODES","CreateDatasetCommand","args","name","string","description","required","examples","command","flags","semantics","embeddings","boolean","default","dependsOn","visibility","options","run","parse","projectId","getProjectId","fallback","requiredPermissions","grant","permission","datasetName","nameError","error","exit","datasets","projectFeatures","datasetsResponse","featuresResponse","Promise","all","map","ds","message","Error","String","includes","canCreatePrivate","embeddingsProjection","output"],"mappings":"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"}
|
|
@@ -3,9 +3,10 @@ import { Args, Flags } from '@oclif/core';
|
|
|
3
3
|
import { SanityCommand, subdebug } from '@sanity/cli-core';
|
|
4
4
|
import { input, logSymbols } from '@sanity/cli-core/ux';
|
|
5
5
|
import { validateDatasetName } from '../../actions/dataset/validateDatasetName.js';
|
|
6
|
+
import { promptForProject } from '../../prompts/promptForProject.js';
|
|
6
7
|
import { deleteDataset } from '../../services/datasets.js';
|
|
7
8
|
import { getProjectById } from '../../services/projects.js';
|
|
8
|
-
import {
|
|
9
|
+
import { getProjectIdFlag } from '../../util/sharedFlags.js';
|
|
9
10
|
const deleteDatasetDebug = subdebug('dataset:delete');
|
|
10
11
|
export class DeleteDatasetCommand extends SanityCommand {
|
|
11
12
|
static args = {
|
|
@@ -26,6 +27,10 @@ export class DeleteDatasetCommand extends SanityCommand {
|
|
|
26
27
|
}
|
|
27
28
|
];
|
|
28
29
|
static flags = {
|
|
30
|
+
...getProjectIdFlag({
|
|
31
|
+
description: 'Project ID to delete dataset from',
|
|
32
|
+
semantics: 'override'
|
|
33
|
+
}),
|
|
29
34
|
force: Flags.boolean({
|
|
30
35
|
description: 'Do not prompt for delete confirmation - forcefully delete',
|
|
31
36
|
required: false
|
|
@@ -34,12 +39,16 @@ export class DeleteDatasetCommand extends SanityCommand {
|
|
|
34
39
|
async run() {
|
|
35
40
|
const { args, flags } = await this.parse(DeleteDatasetCommand);
|
|
36
41
|
const { force } = flags;
|
|
37
|
-
const projectId = await this.getProjectId(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
const projectId = await this.getProjectId({
|
|
43
|
+
fallback: ()=>promptForProject({
|
|
44
|
+
requiredPermissions: [
|
|
45
|
+
{
|
|
46
|
+
grant: 'delete',
|
|
47
|
+
permission: 'sanity.project.datasets'
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
})
|
|
51
|
+
});
|
|
43
52
|
const datasetName = args.datasetName;
|
|
44
53
|
const dsError = validateDatasetName(datasetName);
|
|
45
54
|
if (dsError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/commands/dataset/delete.ts"],"sourcesContent":["import {styleText} from 'node:util'\n\nimport {Args, Flags} from '@oclif/core'\nimport {SanityCommand, subdebug} from '@sanity/cli-core'\nimport {input, logSymbols} from '@sanity/cli-core/ux'\n\nimport {validateDatasetName} from '../../actions/dataset/validateDatasetName.js'\nimport {deleteDataset} from '../../services/datasets.js'\nimport {getProjectById} from '../../services/projects.js'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/commands/dataset/delete.ts"],"sourcesContent":["import {styleText} from 'node:util'\n\nimport {Args, Flags} from '@oclif/core'\nimport {SanityCommand, subdebug} from '@sanity/cli-core'\nimport {input, logSymbols} from '@sanity/cli-core/ux'\n\nimport {validateDatasetName} from '../../actions/dataset/validateDatasetName.js'\nimport {promptForProject} from '../../prompts/promptForProject.js'\nimport {deleteDataset} from '../../services/datasets.js'\nimport {getProjectById} from '../../services/projects.js'\nimport {getProjectIdFlag} from '../../util/sharedFlags.js'\n\nconst deleteDatasetDebug = subdebug('dataset:delete')\n\nexport class DeleteDatasetCommand extends SanityCommand<typeof DeleteDatasetCommand> {\n static override args = {\n datasetName: Args.string({\n description: 'Dataset name to delete',\n required: true,\n }),\n }\n\n static override description = 'Delete a dataset within your project'\n\n static override examples = [\n {\n command: '<%= config.bin %> <%= command.id %> my-dataset',\n description: 'Delete a specific dataset',\n },\n {\n command: '<%= config.bin %> <%= command.id %> my-dataset --force',\n description: 'Delete a specific dataset without confirmation',\n },\n ]\n\n static override flags = {\n ...getProjectIdFlag({\n description: 'Project ID to delete dataset from',\n semantics: 'override',\n }),\n force: Flags.boolean({\n description: 'Do not prompt for delete confirmation - forcefully delete',\n required: false,\n }),\n }\n\n public async run(): Promise<void> {\n const {args, flags} = await this.parse(DeleteDatasetCommand)\n const {force} = flags\n\n const projectId = await this.getProjectId({\n fallback: () =>\n promptForProject({\n requiredPermissions: [{grant: 'delete', permission: 'sanity.project.datasets'}],\n }),\n })\n\n const datasetName = args.datasetName\n\n const dsError = validateDatasetName(datasetName)\n if (dsError) {\n this.error(dsError, {exit: 1})\n }\n\n if (force) {\n this.warn(`'--force' used: skipping confirmation, deleting dataset \"${datasetName}\"`)\n } else {\n try {\n const project = await getProjectById(projectId)\n this.log(\n styleText(\n 'yellow',\n `${logSymbols.warning} Deleting dataset \"${styleText(['bold', 'underline'], datasetName)}\" from project \"${styleText(['bold', 'underline'], project.displayName)} (${styleText(['bold', 'underline'], project.id)})\"\\n`,\n ),\n )\n } catch (error) {\n const err = error instanceof Error ? error : new Error(`${error}`)\n deleteDatasetDebug(`Error getting project ${projectId}`, err)\n this.error(`Project retrieval failed: ${err.message}`, {exit: 1})\n }\n\n try {\n await input({\n message:\n 'Are you ABSOLUTELY sure you want to delete this dataset?\\n Type the name of the dataset to confirm delete:',\n validate: (input) => {\n const trimmed = input.trim()\n return trimmed === datasetName || 'Incorrect dataset name. Ctrl + C to cancel delete.'\n },\n })\n } catch (error) {\n const err = error instanceof Error ? error : new Error(`${error}`)\n deleteDatasetDebug(`User cancelled`, err)\n this.error(`User cancelled`, {exit: 1})\n }\n }\n\n try {\n await deleteDataset({datasetName, projectId})\n this.log('Dataset deleted successfully')\n } catch (error) {\n const err = error instanceof Error ? error : new Error(`${error}`)\n deleteDatasetDebug(`Error deleting dataset ${datasetName}`, err)\n this.error(`Dataset deletion failed: ${err.message}`, {exit: 1})\n }\n }\n}\n"],"names":["styleText","Args","Flags","SanityCommand","subdebug","input","logSymbols","validateDatasetName","promptForProject","deleteDataset","getProjectById","getProjectIdFlag","deleteDatasetDebug","DeleteDatasetCommand","args","datasetName","string","description","required","examples","command","flags","semantics","force","boolean","run","parse","projectId","getProjectId","fallback","requiredPermissions","grant","permission","dsError","error","exit","warn","project","log","warning","displayName","id","err","Error","message","validate","trimmed","trim"],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { styleText } from 'node:util';
|
|
2
|
+
import { Args } from '@oclif/core';
|
|
3
|
+
import { SanityCommand, subdebug } from '@sanity/cli-core';
|
|
4
|
+
import { resolveDataset } from '../../../actions/dataset/resolveDataset.js';
|
|
5
|
+
import { promptForProject } from '../../../prompts/promptForProject.js';
|
|
6
|
+
import { setEmbeddingsSettings } from '../../../services/embeddings.js';
|
|
7
|
+
import { getProjectIdFlag } from '../../../util/sharedFlags.js';
|
|
8
|
+
const debug = subdebug('dataset:embeddings:disable');
|
|
9
|
+
export class DatasetEmbeddingsDisableCommand extends SanityCommand {
|
|
10
|
+
static args = {
|
|
11
|
+
dataset: Args.string({
|
|
12
|
+
description: 'Dataset name to disable embeddings for',
|
|
13
|
+
required: false
|
|
14
|
+
})
|
|
15
|
+
};
|
|
16
|
+
static description = 'Disable embeddings for a dataset';
|
|
17
|
+
static examples = [
|
|
18
|
+
{
|
|
19
|
+
command: '<%= config.bin %> <%= command.id %> production',
|
|
20
|
+
description: 'Disable embeddings for the production dataset'
|
|
21
|
+
}
|
|
22
|
+
];
|
|
23
|
+
static flags = {
|
|
24
|
+
...getProjectIdFlag({
|
|
25
|
+
description: 'Project ID to disable embeddings for',
|
|
26
|
+
semantics: 'override'
|
|
27
|
+
})
|
|
28
|
+
};
|
|
29
|
+
async run() {
|
|
30
|
+
const { args } = await this.parse(DatasetEmbeddingsDisableCommand);
|
|
31
|
+
let { dataset } = args;
|
|
32
|
+
const projectId = await this.getProjectId({
|
|
33
|
+
fallback: ()=>promptForProject({
|
|
34
|
+
requiredPermissions: [
|
|
35
|
+
{
|
|
36
|
+
grant: 'read',
|
|
37
|
+
permission: 'sanity.project.datasets'
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
grant: 'update',
|
|
41
|
+
permission: 'sanity.project.datasets'
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
})
|
|
45
|
+
});
|
|
46
|
+
try {
|
|
47
|
+
;
|
|
48
|
+
({ dataset } = await resolveDataset({
|
|
49
|
+
dataset,
|
|
50
|
+
projectId
|
|
51
|
+
}));
|
|
52
|
+
} catch (error) {
|
|
53
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
54
|
+
debug(`Failed to resolve dataset: ${message}`, error);
|
|
55
|
+
this.error(message, {
|
|
56
|
+
exit: 1
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
await setEmbeddingsSettings({
|
|
61
|
+
dataset,
|
|
62
|
+
enabled: false,
|
|
63
|
+
projectId
|
|
64
|
+
});
|
|
65
|
+
} catch (error) {
|
|
66
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
67
|
+
debug(`Failed to disable embeddings: ${message}`, error);
|
|
68
|
+
this.error(`Failed to disable embeddings: ${message}`, {
|
|
69
|
+
exit: 1
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
this.log(styleText('green', `Disabled embeddings for dataset ${dataset}.`));
|
|
73
|
+
this.log(styleText('yellow', 'Note: Existing embedding data will be removed.'));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=disable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/dataset/embeddings/disable.ts"],"sourcesContent":["import {styleText} from 'node:util'\n\nimport {Args} from '@oclif/core'\nimport {SanityCommand, subdebug} from '@sanity/cli-core'\n\nimport {resolveDataset} from '../../../actions/dataset/resolveDataset.js'\nimport {promptForProject} from '../../../prompts/promptForProject.js'\nimport {setEmbeddingsSettings} from '../../../services/embeddings.js'\nimport {getProjectIdFlag} from '../../../util/sharedFlags.js'\n\nconst debug = subdebug('dataset:embeddings:disable')\n\nexport class DatasetEmbeddingsDisableCommand extends SanityCommand<\n typeof DatasetEmbeddingsDisableCommand\n> {\n static override args = {\n dataset: Args.string({\n description: 'Dataset name to disable embeddings for',\n required: false,\n }),\n }\n\n static override description = 'Disable embeddings for a dataset'\n\n static override examples = [\n {\n command: '<%= config.bin %> <%= command.id %> production',\n description: 'Disable embeddings for the production dataset',\n },\n ]\n\n static override flags = {\n ...getProjectIdFlag({\n description: 'Project ID to disable embeddings for',\n semantics: 'override',\n }),\n }\n\n public async run(): Promise<void> {\n const {args} = await this.parse(DatasetEmbeddingsDisableCommand)\n let {dataset} = args\n\n const projectId = await this.getProjectId({\n fallback: () =>\n promptForProject({\n requiredPermissions: [\n {grant: 'read', permission: 'sanity.project.datasets'},\n {grant: 'update', permission: 'sanity.project.datasets'},\n ],\n }),\n })\n\n try {\n ;({dataset} = await resolveDataset({dataset, projectId}))\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n debug(`Failed to resolve dataset: ${message}`, error)\n this.error(message, {exit: 1})\n }\n\n try {\n await setEmbeddingsSettings({dataset, enabled: false, projectId})\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n debug(`Failed to disable embeddings: ${message}`, error)\n this.error(`Failed to disable embeddings: ${message}`, {exit: 1})\n }\n\n this.log(styleText('green', `Disabled embeddings for dataset ${dataset}.`))\n this.log(styleText('yellow', 'Note: Existing embedding data will be removed.'))\n }\n}\n"],"names":["styleText","Args","SanityCommand","subdebug","resolveDataset","promptForProject","setEmbeddingsSettings","getProjectIdFlag","debug","DatasetEmbeddingsDisableCommand","args","dataset","string","description","required","examples","command","flags","semantics","run","parse","projectId","getProjectId","fallback","requiredPermissions","grant","permission","error","message","Error","String","exit","enabled","log"],"mappings":"AAAA,SAAQA,SAAS,QAAO,YAAW;AAEnC,SAAQC,IAAI,QAAO,cAAa;AAChC,SAAQC,aAAa,EAAEC,QAAQ,QAAO,mBAAkB;AAExD,SAAQC,cAAc,QAAO,6CAA4C;AACzE,SAAQC,gBAAgB,QAAO,uCAAsC;AACrE,SAAQC,qBAAqB,QAAO,kCAAiC;AACrE,SAAQC,gBAAgB,QAAO,+BAA8B;AAE7D,MAAMC,QAAQL,SAAS;AAEvB,OAAO,MAAMM,wCAAwCP;IAGnD,OAAgBQ,OAAO;QACrBC,SAASV,KAAKW,MAAM,CAAC;YACnBC,aAAa;YACbC,UAAU;QACZ;IACF,EAAC;IAED,OAAgBD,cAAc,mCAAkC;IAEhE,OAAgBE,WAAW;QACzB;YACEC,SAAS;YACTH,aAAa;QACf;KACD,CAAA;IAED,OAAgBI,QAAQ;QACtB,GAAGV,iBAAiB;YAClBM,aAAa;YACbK,WAAW;QACb,EAAE;IACJ,EAAC;IAED,MAAaC,MAAqB;QAChC,MAAM,EAACT,IAAI,EAAC,GAAG,MAAM,IAAI,CAACU,KAAK,CAACX;QAChC,IAAI,EAACE,OAAO,EAAC,GAAGD;QAEhB,MAAMW,YAAY,MAAM,IAAI,CAACC,YAAY,CAAC;YACxCC,UAAU,IACRlB,iBAAiB;oBACfmB,qBAAqB;wBACnB;4BAACC,OAAO;4BAAQC,YAAY;wBAAyB;wBACrD;4BAACD,OAAO;4BAAUC,YAAY;wBAAyB;qBACxD;gBACH;QACJ;QAEA,IAAI;;YACA,CAAA,EAACf,OAAO,EAAC,GAAG,MAAMP,eAAe;gBAACO;gBAASU;YAAS,EAAC;QACzD,EAAE,OAAOM,OAAO;YACd,MAAMC,UAAUD,iBAAiBE,QAAQF,MAAMC,OAAO,GAAGE,OAAOH;YAChEnB,MAAM,CAAC,2BAA2B,EAAEoB,SAAS,EAAED;YAC/C,IAAI,CAACA,KAAK,CAACC,SAAS;gBAACG,MAAM;YAAC;QAC9B;QAEA,IAAI;YACF,MAAMzB,sBAAsB;gBAACK;gBAASqB,SAAS;gBAAOX;YAAS;QACjE,EAAE,OAAOM,OAAO;YACd,MAAMC,UAAUD,iBAAiBE,QAAQF,MAAMC,OAAO,GAAGE,OAAOH;YAChEnB,MAAM,CAAC,8BAA8B,EAAEoB,SAAS,EAAED;YAClD,IAAI,CAACA,KAAK,CAAC,CAAC,8BAA8B,EAAEC,SAAS,EAAE;gBAACG,MAAM;YAAC;QACjE;QAEA,IAAI,CAACE,GAAG,CAACjC,UAAU,SAAS,CAAC,gCAAgC,EAAEW,QAAQ,CAAC,CAAC;QACzE,IAAI,CAACsB,GAAG,CAACjC,UAAU,UAAU;IAC/B;AACF"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { styleText } from 'node:util';
|
|
2
|
+
import { Args, Flags } from '@oclif/core';
|
|
3
|
+
import { SanityCommand, subdebug } from '@sanity/cli-core';
|
|
4
|
+
import { spinner } from '@sanity/cli-core/ux';
|
|
5
|
+
import { resolveDataset } from '../../../actions/dataset/resolveDataset.js';
|
|
6
|
+
import { promptForProject } from '../../../prompts/promptForProject.js';
|
|
7
|
+
import { getEmbeddingsSettings, setEmbeddingsSettings } from '../../../services/embeddings.js';
|
|
8
|
+
import { getProjectIdFlag } from '../../../util/sharedFlags.js';
|
|
9
|
+
const debug = subdebug('dataset:embeddings:enable');
|
|
10
|
+
const INITIAL_POLL_INTERVAL_MS = 10_000;
|
|
11
|
+
const MAX_POLL_INTERVAL_MS = 10 * 60 * 1000;
|
|
12
|
+
const POLL_TIMEOUT_MS = 24 * 60 * 60 * 1000;
|
|
13
|
+
export class DatasetEmbeddingsEnableCommand extends SanityCommand {
|
|
14
|
+
static args = {
|
|
15
|
+
dataset: Args.string({
|
|
16
|
+
description: 'Dataset name to enable embeddings for',
|
|
17
|
+
required: false
|
|
18
|
+
})
|
|
19
|
+
};
|
|
20
|
+
static description = 'Enable embeddings for a dataset';
|
|
21
|
+
static examples = [
|
|
22
|
+
{
|
|
23
|
+
command: '<%= config.bin %> <%= command.id %> production',
|
|
24
|
+
description: 'Enable embeddings for the production dataset'
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
command: '<%= config.bin %> <%= command.id %> production --projection "{ title, body }"',
|
|
28
|
+
description: 'Enable embeddings with a specific projection'
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
command: '<%= config.bin %> <%= command.id %> production --wait',
|
|
32
|
+
description: 'Enable embeddings and wait for processing to complete'
|
|
33
|
+
}
|
|
34
|
+
];
|
|
35
|
+
static flags = {
|
|
36
|
+
...getProjectIdFlag({
|
|
37
|
+
description: 'Project ID to enable embeddings for',
|
|
38
|
+
semantics: 'override'
|
|
39
|
+
}),
|
|
40
|
+
projection: Flags.string({
|
|
41
|
+
description: 'GROQ projection defining which fields to embed (e.g. "{ title, body }")',
|
|
42
|
+
required: false
|
|
43
|
+
}),
|
|
44
|
+
wait: Flags.boolean({
|
|
45
|
+
default: false,
|
|
46
|
+
description: 'Wait for embeddings processing to complete before returning'
|
|
47
|
+
})
|
|
48
|
+
};
|
|
49
|
+
async run() {
|
|
50
|
+
const { args, flags } = await this.parse(DatasetEmbeddingsEnableCommand);
|
|
51
|
+
let { dataset } = args;
|
|
52
|
+
const { projection, wait } = flags;
|
|
53
|
+
const projectId = await this.getProjectId({
|
|
54
|
+
fallback: ()=>promptForProject({
|
|
55
|
+
requiredPermissions: [
|
|
56
|
+
{
|
|
57
|
+
grant: 'read',
|
|
58
|
+
permission: 'sanity.project.datasets'
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
grant: 'update',
|
|
62
|
+
permission: 'sanity.project.datasets'
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
})
|
|
66
|
+
});
|
|
67
|
+
try {
|
|
68
|
+
;
|
|
69
|
+
({ dataset } = await resolveDataset({
|
|
70
|
+
dataset,
|
|
71
|
+
projectId
|
|
72
|
+
}));
|
|
73
|
+
} catch (error) {
|
|
74
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
75
|
+
debug(`Failed to resolve dataset: ${message}`, error);
|
|
76
|
+
this.error(message, {
|
|
77
|
+
exit: 1
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
await setEmbeddingsSettings({
|
|
82
|
+
dataset,
|
|
83
|
+
enabled: true,
|
|
84
|
+
projectId,
|
|
85
|
+
projection
|
|
86
|
+
});
|
|
87
|
+
} catch (error) {
|
|
88
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
89
|
+
debug(`Failed to enable embeddings: ${message}`, error);
|
|
90
|
+
this.error(`Failed to enable embeddings: ${message}`, {
|
|
91
|
+
exit: 1
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
this.log(styleText('green', `Embeddings enabled for dataset ${dataset}.`));
|
|
95
|
+
if (projection) {
|
|
96
|
+
this.log(`Projection: ${projection}`);
|
|
97
|
+
}
|
|
98
|
+
if (wait) {
|
|
99
|
+
await this.waitForReady(projectId, dataset);
|
|
100
|
+
} else {
|
|
101
|
+
this.log('Processing documents in the background. Use --wait to wait for completion.');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async waitForReady(projectId, dataset) {
|
|
105
|
+
const spin = spinner('Waiting for embeddings to be ready...').start();
|
|
106
|
+
const deadline = Date.now() + POLL_TIMEOUT_MS;
|
|
107
|
+
let interval = INITIAL_POLL_INTERVAL_MS;
|
|
108
|
+
while(Date.now() < deadline){
|
|
109
|
+
await new Promise((resolve)=>setTimeout(resolve, interval));
|
|
110
|
+
interval = Math.min(interval * 1.5, MAX_POLL_INTERVAL_MS);
|
|
111
|
+
let settings;
|
|
112
|
+
try {
|
|
113
|
+
settings = await getEmbeddingsSettings(projectId, dataset);
|
|
114
|
+
} catch (error) {
|
|
115
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
116
|
+
spin.fail('Failed while waiting for embeddings.');
|
|
117
|
+
this.error(`Failed while waiting for embeddings: ${message}`, {
|
|
118
|
+
exit: 1
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
debug(`Poll status: ${settings.status}, next interval: ${Math.round(interval)}ms`);
|
|
122
|
+
if (settings.status === 'ready') {
|
|
123
|
+
spin.succeed('Embeddings ready.');
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (settings.status !== 'updating') {
|
|
127
|
+
spin.fail(`Unexpected status: ${settings.status}`);
|
|
128
|
+
this.error(`Embeddings entered unexpected status: ${settings.status}`, {
|
|
129
|
+
exit: 1
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
spin.text = 'Still processing...';
|
|
133
|
+
}
|
|
134
|
+
spin.fail('Timed out waiting for embeddings.');
|
|
135
|
+
this.error('Timed out. Check status with: sanity dataset embeddings status', {
|
|
136
|
+
exit: 1
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
//# sourceMappingURL=enable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/dataset/embeddings/enable.ts"],"sourcesContent":["import {styleText} from 'node:util'\n\nimport {Args, Flags} from '@oclif/core'\nimport {SanityCommand, subdebug} from '@sanity/cli-core'\nimport {spinner} from '@sanity/cli-core/ux'\n\nimport {resolveDataset} from '../../../actions/dataset/resolveDataset.js'\nimport {promptForProject} from '../../../prompts/promptForProject.js'\nimport {getEmbeddingsSettings, setEmbeddingsSettings} from '../../../services/embeddings.js'\nimport {getProjectIdFlag} from '../../../util/sharedFlags.js'\n\nconst debug = subdebug('dataset:embeddings:enable')\n\nconst INITIAL_POLL_INTERVAL_MS = 10_000\nconst MAX_POLL_INTERVAL_MS = 10 * 60 * 1000\nconst POLL_TIMEOUT_MS = 24 * 60 * 60 * 1000\n\nexport class DatasetEmbeddingsEnableCommand extends SanityCommand<\n typeof DatasetEmbeddingsEnableCommand\n> {\n static override args = {\n dataset: Args.string({\n description: 'Dataset name to enable embeddings for',\n required: false,\n }),\n }\n\n static override description = 'Enable embeddings for a dataset'\n\n static override examples = [\n {\n command: '<%= config.bin %> <%= command.id %> production',\n description: 'Enable embeddings for the production dataset',\n },\n {\n command: '<%= config.bin %> <%= command.id %> production --projection \"{ title, body }\"',\n description: 'Enable embeddings with a specific projection',\n },\n {\n command: '<%= config.bin %> <%= command.id %> production --wait',\n description: 'Enable embeddings and wait for processing to complete',\n },\n ]\n\n static override flags = {\n ...getProjectIdFlag({\n description: 'Project ID to enable embeddings for',\n semantics: 'override',\n }),\n projection: Flags.string({\n description: 'GROQ projection defining which fields to embed (e.g. \"{ title, body }\")',\n required: false,\n }),\n wait: Flags.boolean({\n default: false,\n description: 'Wait for embeddings processing to complete before returning',\n }),\n }\n\n public async run(): Promise<void> {\n const {args, flags} = await this.parse(DatasetEmbeddingsEnableCommand)\n let {dataset} = args\n const {projection, wait} = flags\n\n const projectId = await this.getProjectId({\n fallback: () =>\n promptForProject({\n requiredPermissions: [\n {grant: 'read', permission: 'sanity.project.datasets'},\n {grant: 'update', permission: 'sanity.project.datasets'},\n ],\n }),\n })\n\n try {\n ;({dataset} = await resolveDataset({dataset, projectId}))\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n debug(`Failed to resolve dataset: ${message}`, error)\n this.error(message, {exit: 1})\n }\n\n try {\n await setEmbeddingsSettings({dataset, enabled: true, projectId, projection})\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n debug(`Failed to enable embeddings: ${message}`, error)\n this.error(`Failed to enable embeddings: ${message}`, {exit: 1})\n }\n\n this.log(styleText('green', `Embeddings enabled for dataset ${dataset}.`))\n if (projection) {\n this.log(`Projection: ${projection}`)\n }\n\n if (wait) {\n await this.waitForReady(projectId, dataset)\n } else {\n this.log('Processing documents in the background. Use --wait to wait for completion.')\n }\n }\n\n private async waitForReady(projectId: string, dataset: string): Promise<void> {\n const spin = spinner('Waiting for embeddings to be ready...').start()\n const deadline = Date.now() + POLL_TIMEOUT_MS\n let interval = INITIAL_POLL_INTERVAL_MS\n\n while (Date.now() < deadline) {\n await new Promise<void>((resolve) => setTimeout(resolve, interval))\n interval = Math.min(interval * 1.5, MAX_POLL_INTERVAL_MS)\n\n let settings\n try {\n settings = await getEmbeddingsSettings(projectId, dataset)\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n spin.fail('Failed while waiting for embeddings.')\n this.error(`Failed while waiting for embeddings: ${message}`, {exit: 1})\n }\n debug(`Poll status: ${settings.status}, next interval: ${Math.round(interval)}ms`)\n\n if (settings.status === 'ready') {\n spin.succeed('Embeddings ready.')\n return\n }\n\n if (settings.status !== 'updating') {\n spin.fail(`Unexpected status: ${settings.status}`)\n this.error(`Embeddings entered unexpected status: ${settings.status}`, {exit: 1})\n }\n\n spin.text = 'Still processing...'\n }\n\n spin.fail('Timed out waiting for embeddings.')\n this.error('Timed out. Check status with: sanity dataset embeddings status', {exit: 1})\n }\n}\n"],"names":["styleText","Args","Flags","SanityCommand","subdebug","spinner","resolveDataset","promptForProject","getEmbeddingsSettings","setEmbeddingsSettings","getProjectIdFlag","debug","INITIAL_POLL_INTERVAL_MS","MAX_POLL_INTERVAL_MS","POLL_TIMEOUT_MS","DatasetEmbeddingsEnableCommand","args","dataset","string","description","required","examples","command","flags","semantics","projection","wait","boolean","default","run","parse","projectId","getProjectId","fallback","requiredPermissions","grant","permission","error","message","Error","String","exit","enabled","log","waitForReady","spin","start","deadline","Date","now","interval","Promise","resolve","setTimeout","Math","min","settings","fail","status","round","succeed","text"],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { SanityCommand, subdebug } from '@sanity/cli-core';
|
|
3
|
+
import { resolveDataset } from '../../../actions/dataset/resolveDataset.js';
|
|
4
|
+
import { promptForProject } from '../../../prompts/promptForProject.js';
|
|
5
|
+
import { getEmbeddingsSettings } from '../../../services/embeddings.js';
|
|
6
|
+
import { getProjectIdFlag } from '../../../util/sharedFlags.js';
|
|
7
|
+
const debug = subdebug('dataset:embeddings:status');
|
|
8
|
+
export class DatasetEmbeddingsStatusCommand extends SanityCommand {
|
|
9
|
+
static args = {
|
|
10
|
+
dataset: Args.string({
|
|
11
|
+
description: 'The name of the dataset to check embeddings status for',
|
|
12
|
+
required: false
|
|
13
|
+
})
|
|
14
|
+
};
|
|
15
|
+
static description = 'Show embeddings settings and status for a dataset';
|
|
16
|
+
static examples = [
|
|
17
|
+
{
|
|
18
|
+
command: '<%= config.bin %> <%= command.id %> production',
|
|
19
|
+
description: 'Show embeddings status for the production dataset'
|
|
20
|
+
}
|
|
21
|
+
];
|
|
22
|
+
static flags = {
|
|
23
|
+
...getProjectIdFlag({
|
|
24
|
+
description: 'Project ID to check embeddings status for',
|
|
25
|
+
semantics: 'override'
|
|
26
|
+
})
|
|
27
|
+
};
|
|
28
|
+
async run() {
|
|
29
|
+
const { args } = await this.parse(DatasetEmbeddingsStatusCommand);
|
|
30
|
+
let { dataset } = args;
|
|
31
|
+
const projectId = await this.getProjectId({
|
|
32
|
+
fallback: ()=>promptForProject({
|
|
33
|
+
requiredPermissions: [
|
|
34
|
+
{
|
|
35
|
+
grant: 'read',
|
|
36
|
+
permission: 'sanity.project.datasets'
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
try {
|
|
42
|
+
;
|
|
43
|
+
({ dataset } = await resolveDataset({
|
|
44
|
+
dataset,
|
|
45
|
+
projectId
|
|
46
|
+
}));
|
|
47
|
+
} catch (error) {
|
|
48
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
49
|
+
debug(`Failed to resolve dataset: ${message}`, error);
|
|
50
|
+
this.error(message, {
|
|
51
|
+
exit: 1
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
const settings = await getEmbeddingsSettings(projectId, dataset);
|
|
56
|
+
this.log(`Dataset: ${dataset}`);
|
|
57
|
+
this.log(`Embeddings: ${settings.enabled ? 'enabled' : 'disabled'}`);
|
|
58
|
+
if (settings.projection) {
|
|
59
|
+
this.log(`Projection: ${settings.projection}`);
|
|
60
|
+
}
|
|
61
|
+
this.log(`Status: ${settings.status}`);
|
|
62
|
+
} catch (error) {
|
|
63
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
64
|
+
debug(`Failed to get embeddings settings: ${message}`, error);
|
|
65
|
+
this.error(`Failed to get embeddings settings: ${message}`, {
|
|
66
|
+
exit: 1
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/dataset/embeddings/status.ts"],"sourcesContent":["import {Args} from '@oclif/core'\nimport {SanityCommand, subdebug} from '@sanity/cli-core'\n\nimport {resolveDataset} from '../../../actions/dataset/resolveDataset.js'\nimport {promptForProject} from '../../../prompts/promptForProject.js'\nimport {getEmbeddingsSettings} from '../../../services/embeddings.js'\nimport {getProjectIdFlag} from '../../../util/sharedFlags.js'\n\nconst debug = subdebug('dataset:embeddings:status')\n\nexport class DatasetEmbeddingsStatusCommand extends SanityCommand<\n typeof DatasetEmbeddingsStatusCommand\n> {\n static override args = {\n dataset: Args.string({\n description: 'The name of the dataset to check embeddings status for',\n required: false,\n }),\n }\n\n static override description = 'Show embeddings settings and status for a dataset'\n\n static override examples = [\n {\n command: '<%= config.bin %> <%= command.id %> production',\n description: 'Show embeddings status for the production dataset',\n },\n ]\n\n static override flags = {\n ...getProjectIdFlag({\n description: 'Project ID to check embeddings status for',\n semantics: 'override',\n }),\n }\n\n public async run(): Promise<void> {\n const {args} = await this.parse(DatasetEmbeddingsStatusCommand)\n let {dataset} = args\n\n const projectId = await this.getProjectId({\n fallback: () =>\n promptForProject({\n requiredPermissions: [{grant: 'read', permission: 'sanity.project.datasets'}],\n }),\n })\n\n try {\n ;({dataset} = await resolveDataset({dataset, projectId}))\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n debug(`Failed to resolve dataset: ${message}`, error)\n this.error(message, {exit: 1})\n }\n\n try {\n const settings = await getEmbeddingsSettings(projectId, dataset)\n\n this.log(`Dataset: ${dataset}`)\n this.log(`Embeddings: ${settings.enabled ? 'enabled' : 'disabled'}`)\n if (settings.projection) {\n this.log(`Projection: ${settings.projection}`)\n }\n this.log(`Status: ${settings.status}`)\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n debug(`Failed to get embeddings settings: ${message}`, error)\n this.error(`Failed to get embeddings settings: ${message}`, {exit: 1})\n }\n }\n}\n"],"names":["Args","SanityCommand","subdebug","resolveDataset","promptForProject","getEmbeddingsSettings","getProjectIdFlag","debug","DatasetEmbeddingsStatusCommand","args","dataset","string","description","required","examples","command","flags","semantics","run","parse","projectId","getProjectId","fallback","requiredPermissions","grant","permission","error","message","Error","String","exit","settings","log","enabled","projection","status"],"mappings":"AAAA,SAAQA,IAAI,QAAO,cAAa;AAChC,SAAQC,aAAa,EAAEC,QAAQ,QAAO,mBAAkB;AAExD,SAAQC,cAAc,QAAO,6CAA4C;AACzE,SAAQC,gBAAgB,QAAO,uCAAsC;AACrE,SAAQC,qBAAqB,QAAO,kCAAiC;AACrE,SAAQC,gBAAgB,QAAO,+BAA8B;AAE7D,MAAMC,QAAQL,SAAS;AAEvB,OAAO,MAAMM,uCAAuCP;IAGlD,OAAgBQ,OAAO;QACrBC,SAASV,KAAKW,MAAM,CAAC;YACnBC,aAAa;YACbC,UAAU;QACZ;IACF,EAAC;IAED,OAAgBD,cAAc,oDAAmD;IAEjF,OAAgBE,WAAW;QACzB;YACEC,SAAS;YACTH,aAAa;QACf;KACD,CAAA;IAED,OAAgBI,QAAQ;QACtB,GAAGV,iBAAiB;YAClBM,aAAa;YACbK,WAAW;QACb,EAAE;IACJ,EAAC;IAED,MAAaC,MAAqB;QAChC,MAAM,EAACT,IAAI,EAAC,GAAG,MAAM,IAAI,CAACU,KAAK,CAACX;QAChC,IAAI,EAACE,OAAO,EAAC,GAAGD;QAEhB,MAAMW,YAAY,MAAM,IAAI,CAACC,YAAY,CAAC;YACxCC,UAAU,IACRlB,iBAAiB;oBACfmB,qBAAqB;wBAAC;4BAACC,OAAO;4BAAQC,YAAY;wBAAyB;qBAAE;gBAC/E;QACJ;QAEA,IAAI;;YACA,CAAA,EAACf,OAAO,EAAC,GAAG,MAAMP,eAAe;gBAACO;gBAASU;YAAS,EAAC;QACzD,EAAE,OAAOM,OAAO;YACd,MAAMC,UAAUD,iBAAiBE,QAAQF,MAAMC,OAAO,GAAGE,OAAOH;YAChEnB,MAAM,CAAC,2BAA2B,EAAEoB,SAAS,EAAED;YAC/C,IAAI,CAACA,KAAK,CAACC,SAAS;gBAACG,MAAM;YAAC;QAC9B;QAEA,IAAI;YACF,MAAMC,WAAW,MAAM1B,sBAAsBe,WAAWV;YAExD,IAAI,CAACsB,GAAG,CAAC,CAAC,YAAY,EAAEtB,SAAS;YACjC,IAAI,CAACsB,GAAG,CAAC,CAAC,YAAY,EAAED,SAASE,OAAO,GAAG,YAAY,YAAY;YACnE,IAAIF,SAASG,UAAU,EAAE;gBACvB,IAAI,CAACF,GAAG,CAAC,CAAC,YAAY,EAAED,SAASG,UAAU,EAAE;YAC/C;YACA,IAAI,CAACF,GAAG,CAAC,CAAC,YAAY,EAAED,SAASI,MAAM,EAAE;QAC3C,EAAE,OAAOT,OAAO;YACd,MAAMC,UAAUD,iBAAiBE,QAAQF,MAAMC,OAAO,GAAGE,OAAOH;YAChEnB,MAAM,CAAC,mCAAmC,EAAEoB,SAAS,EAAED;YACvD,IAAI,CAACA,KAAK,CAAC,CAAC,mCAAmC,EAAEC,SAAS,EAAE;gBAACG,MAAM;YAAC;QACtE;IACF;AACF"}
|
|
@@ -7,9 +7,10 @@ import { exportDataset } from '@sanity/export';
|
|
|
7
7
|
import prettyMs from 'pretty-ms';
|
|
8
8
|
import { validateDatasetName } from '../../actions/dataset/validateDatasetName.js';
|
|
9
9
|
import { promptForDataset } from '../../prompts/promptForDataset.js';
|
|
10
|
+
import { promptForProject } from '../../prompts/promptForProject.js';
|
|
10
11
|
import { listDatasets } from '../../services/datasets.js';
|
|
11
12
|
import { absolutify } from '../../util/absolutify.js';
|
|
12
|
-
import {
|
|
13
|
+
import { getProjectIdFlag } from '../../util/sharedFlags.js';
|
|
13
14
|
const noop = ()=>null;
|
|
14
15
|
const exportDebug = subdebug('dataset:export');
|
|
15
16
|
export class DatasetExportCommand extends SanityCommand {
|
|
@@ -43,6 +44,10 @@ export class DatasetExportCommand extends SanityCommand {
|
|
|
43
44
|
}
|
|
44
45
|
];
|
|
45
46
|
static flags = {
|
|
47
|
+
...getProjectIdFlag({
|
|
48
|
+
description: 'Project ID to export dataset from',
|
|
49
|
+
semantics: 'override'
|
|
50
|
+
}),
|
|
46
51
|
'asset-concurrency': Flags.integer({
|
|
47
52
|
default: 8,
|
|
48
53
|
description: 'Concurrent number of asset downloads'
|
|
@@ -83,13 +88,16 @@ export class DatasetExportCommand extends SanityCommand {
|
|
|
83
88
|
const { args, flags } = await this.parse(DatasetExportCommand);
|
|
84
89
|
const { destination: targetDestination, name: targetDataset } = args;
|
|
85
90
|
// Get project configuration
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
const projectId = await this.getProjectId({
|
|
92
|
+
fallback: ()=>promptForProject({
|
|
93
|
+
requiredPermissions: [
|
|
94
|
+
{
|
|
95
|
+
grant: 'read',
|
|
96
|
+
permission: 'sanity.project.datasets'
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
})
|
|
100
|
+
});
|
|
93
101
|
const projectClient = await getProjectCliClient({
|
|
94
102
|
apiVersion: '2023-05-26',
|
|
95
103
|
projectId,
|
|
@@ -106,9 +114,10 @@ export class DatasetExportCommand extends SanityCommand {
|
|
|
106
114
|
}
|
|
107
115
|
// Determine dataset name
|
|
108
116
|
let dataset = targetDataset;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
// Get default dataset from config
|
|
117
|
+
if (!dataset) {
|
|
118
|
+
try {
|
|
119
|
+
// Get default dataset from config (only available when running from a project directory)
|
|
120
|
+
const cliConfig = await this.tryGetCliConfig();
|
|
112
121
|
const defaultDataset = cliConfig.api?.dataset;
|
|
113
122
|
if (defaultDataset) {
|
|
114
123
|
dataset = defaultDataset;
|
|
@@ -119,12 +128,12 @@ export class DatasetExportCommand extends SanityCommand {
|
|
|
119
128
|
datasets
|
|
120
129
|
});
|
|
121
130
|
}
|
|
131
|
+
} catch (error) {
|
|
132
|
+
exportDebug('Error selecting dataset', error);
|
|
133
|
+
this.error(`Failed to select dataset:\n${error instanceof Error ? error.message : error}`, {
|
|
134
|
+
exit: 1
|
|
135
|
+
});
|
|
122
136
|
}
|
|
123
|
-
} catch (error) {
|
|
124
|
-
exportDebug('Error selecting dataset', error);
|
|
125
|
-
this.error(`Failed to select dataset:\n${error instanceof Error ? error.message : error}`, {
|
|
126
|
-
exit: 1
|
|
127
|
-
});
|
|
128
137
|
}
|
|
129
138
|
// Validate dataset name
|
|
130
139
|
const dsError = validateDatasetName(dataset);
|