@sanity/cli 5.9.0-next.8 → 6.0.0-alpha.11
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/LICENSE +1 -1
- package/README.md +3212 -2
- package/bin/run.cmd +3 -0
- package/bin/run.js +33 -0
- package/codemods/deskRename.js +115 -96
- package/codemods/partsTypeDirective.js +7 -7
- package/codemods/reactIconsV3.js +78 -51
- package/dist/SanityHelp.js +43 -0
- package/dist/SanityHelp.js.map +1 -0
- package/dist/actions/auth/authServer.js +153 -0
- package/dist/actions/auth/authServer.js.map +1 -0
- package/dist/actions/auth/getProviderName.js +15 -0
- package/dist/actions/auth/getProviderName.js.map +1 -0
- package/dist/actions/auth/login/getProvider.js +54 -0
- package/dist/actions/auth/login/getProvider.js.map +1 -0
- package/dist/actions/auth/login/getSSOProvider.js +30 -0
- package/dist/actions/auth/login/getSSOProvider.js.map +1 -0
- package/dist/actions/auth/login/login.js +101 -0
- package/dist/actions/auth/login/login.js.map +1 -0
- package/dist/actions/auth/login/promptProviders.js +23 -0
- package/dist/actions/auth/login/promptProviders.js.map +1 -0
- package/dist/actions/auth/login/samlProviderToLoginProvider.js +15 -0
- package/dist/actions/auth/login/samlProviderToLoginProvider.js.map +1 -0
- package/dist/actions/auth/types.js +7 -0
- package/dist/actions/auth/types.js.map +1 -0
- package/dist/actions/backup/archiveDir.js +43 -0
- package/dist/actions/backup/archiveDir.js.map +1 -0
- package/dist/actions/backup/assertDatasetExist.js +16 -0
- package/dist/actions/backup/assertDatasetExist.js.map +1 -0
- package/dist/actions/backup/backupDownloadDebug.js +4 -0
- package/dist/actions/backup/backupDownloadDebug.js.map +1 -0
- package/dist/actions/backup/cleanupTmpDir.js +19 -0
- package/dist/actions/backup/cleanupTmpDir.js.map +1 -0
- package/dist/actions/backup/constants.js +3 -0
- package/dist/actions/backup/constants.js.map +1 -0
- package/dist/actions/backup/downloadAsset.js +54 -0
- package/dist/actions/backup/downloadAsset.js.map +1 -0
- package/dist/actions/backup/downloadDocument.js +32 -0
- package/dist/actions/backup/downloadDocument.js.map +1 -0
- package/dist/actions/backup/fetchNextBackupPage.js +48 -0
- package/dist/actions/backup/fetchNextBackupPage.js.map +1 -0
- package/dist/actions/backup/progressSpinner.js +40 -0
- package/dist/actions/backup/progressSpinner.js.map +1 -0
- package/dist/actions/build/buildApp.js +159 -0
- package/dist/actions/build/buildApp.js.map +1 -0
- package/dist/actions/build/buildDebug.js +4 -0
- package/dist/actions/build/buildDebug.js.map +1 -0
- package/dist/actions/build/buildStaticFiles.js +82 -0
- package/dist/actions/build/buildStaticFiles.js.map +1 -0
- package/dist/actions/build/buildStudio.js +202 -0
- package/dist/actions/build/buildStudio.js.map +1 -0
- package/dist/actions/build/buildVendorDependencies.js +179 -0
- package/dist/actions/build/buildVendorDependencies.js.map +1 -0
- package/dist/actions/build/checkRequiredDependencies.js +122 -0
- package/dist/actions/build/checkRequiredDependencies.js.map +1 -0
- package/dist/actions/build/checkStudioDependencyVersions.js +154 -0
- package/dist/actions/build/checkStudioDependencyVersions.js.map +1 -0
- package/dist/actions/build/createExternalFromImportMap.js +11 -0
- package/dist/actions/build/createExternalFromImportMap.js.map +1 -0
- package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.js +13 -0
- package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.js.map +1 -0
- package/dist/actions/build/decorateIndexWithBridgeScript.js +17 -0
- package/dist/actions/build/decorateIndexWithBridgeScript.js.map +1 -0
- package/dist/actions/build/determineBasePath.js +20 -0
- package/dist/actions/build/determineBasePath.js.map +1 -0
- package/dist/actions/build/generateWebManifest.js +27 -0
- package/dist/actions/build/generateWebManifest.js.map +1 -0
- package/dist/actions/build/getAppEnvVars.js +9 -0
- package/dist/actions/build/getAppEnvVars.js.map +1 -0
- package/dist/actions/build/getAutoUpdatesImportMap.js +57 -0
- package/dist/actions/build/getAutoUpdatesImportMap.js.map +1 -0
- package/dist/actions/build/getEntryModule.js +46 -0
- package/dist/actions/build/getEntryModule.js.map +1 -0
- package/dist/actions/build/getPossibleDocumentComponentLocations.js +11 -0
- package/dist/actions/build/getPossibleDocumentComponentLocations.js.map +1 -0
- package/dist/actions/build/getStudioEnvVars.js +9 -0
- package/dist/actions/build/getStudioEnvVars.js.map +1 -0
- package/dist/actions/build/getStudioEnvironmentVariables.js +58 -0
- package/dist/actions/build/getStudioEnvironmentVariables.js.map +1 -0
- package/dist/actions/build/getViteConfig.js +180 -0
- package/dist/actions/build/getViteConfig.js.map +1 -0
- package/dist/actions/build/normalizeBasePath.js +9 -0
- package/dist/actions/build/normalizeBasePath.js.map +1 -0
- package/dist/actions/build/renderDocument.js +54 -0
- package/dist/actions/build/renderDocument.js.map +1 -0
- package/dist/actions/build/renderDocument.worker.js +9 -0
- package/dist/actions/build/renderDocument.worker.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.js +59 -0
- package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js +61 -0
- package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js +165 -0
- package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/Favicons.js +28 -0
- package/dist/actions/build/renderDocumentWorker/components/Favicons.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js +177 -0
- package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/NoJavascript.js +51 -0
- package/dist/actions/build/renderDocumentWorker/components/NoJavascript.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js +41 -0
- package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/getDocumentHtml.js +55 -0
- package/dist/actions/build/renderDocumentWorker/getDocumentHtml.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js +31 -0
- package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.js +30 -0
- package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/types.js +5 -0
- package/dist/actions/build/renderDocumentWorker/types.js.map +1 -0
- package/dist/actions/build/shouldAutoUpdate.js +35 -0
- package/dist/actions/build/shouldAutoUpdate.js.map +1 -0
- package/dist/actions/build/types.js +3 -0
- package/dist/actions/build/types.js.map +1 -0
- package/dist/actions/build/writeFavicons.js +26 -0
- package/dist/actions/build/writeFavicons.js.map +1 -0
- package/dist/actions/build/writeSanityRuntime.js +61 -0
- package/dist/actions/build/writeSanityRuntime.js.map +1 -0
- package/dist/actions/build/writeWebManifest.js +12 -0
- package/dist/actions/build/writeWebManifest.js.map +1 -0
- package/dist/actions/codemods/deskRename.js +18 -0
- package/dist/actions/codemods/deskRename.js.map +1 -0
- package/dist/actions/codemods/index.js +10 -0
- package/dist/actions/codemods/index.js.map +1 -0
- package/dist/actions/codemods/partsTypeDirective.js +27 -0
- package/dist/actions/codemods/partsTypeDirective.js.map +1 -0
- package/dist/actions/codemods/reactIconsV3.js +30 -0
- package/dist/actions/codemods/reactIconsV3.js.map +1 -0
- package/dist/actions/codemods/types.js +3 -0
- package/dist/actions/codemods/types.js.map +1 -0
- package/dist/actions/cors/filterAndValidateOrigin.js +38 -0
- package/dist/actions/cors/filterAndValidateOrigin.js.map +1 -0
- package/dist/actions/dataset/create.js +46 -0
- package/dist/actions/dataset/create.js.map +1 -0
- package/dist/actions/dataset/determineDatasetAclMode.js +36 -0
- package/dist/actions/dataset/determineDatasetAclMode.js.map +1 -0
- package/dist/actions/dataset/processAliasName.js +20 -0
- package/dist/actions/dataset/processAliasName.js.map +1 -0
- package/dist/actions/dataset/validateDatasetAliasName.js +28 -0
- package/dist/actions/dataset/validateDatasetAliasName.js.map +1 -0
- package/dist/actions/dataset/validateDatasetName.js +39 -0
- package/dist/actions/dataset/validateDatasetName.js.map +1 -0
- package/dist/actions/debug/gatherDebugInfo.js +104 -0
- package/dist/actions/debug/gatherDebugInfo.js.map +1 -0
- package/dist/actions/debug/getGlobalConfigLocation.js +7 -0
- package/dist/actions/debug/getGlobalConfigLocation.js.map +1 -0
- package/dist/actions/debug/types.js +3 -0
- package/dist/actions/debug/types.js.map +1 -0
- package/dist/actions/deploy/checkDir.js +31 -0
- package/dist/actions/deploy/checkDir.js.map +1 -0
- package/dist/actions/deploy/createStudioUserApplication.js +59 -0
- package/dist/actions/deploy/createStudioUserApplication.js.map +1 -0
- package/dist/actions/deploy/createUserApplicationForApp.js +56 -0
- package/dist/actions/deploy/createUserApplicationForApp.js.map +1 -0
- package/dist/actions/deploy/deployApp.js +162 -0
- package/dist/actions/deploy/deployApp.js.map +1 -0
- package/dist/actions/deploy/deployDebug.js +4 -0
- package/dist/actions/deploy/deployDebug.js.map +1 -0
- package/dist/actions/deploy/deployStudio.js +134 -0
- package/dist/actions/deploy/deployStudio.js.map +1 -0
- package/dist/actions/deploy/findUserApplicationForApp.js +110 -0
- package/dist/actions/deploy/findUserApplicationForApp.js.map +1 -0
- package/dist/actions/deploy/findUserApplicationForStudio.js +143 -0
- package/dist/actions/deploy/findUserApplicationForStudio.js.map +1 -0
- package/dist/actions/deploy/types.js +3 -0
- package/dist/actions/deploy/types.js.map +1 -0
- package/dist/actions/dev/devAction.js +7 -0
- package/dist/actions/dev/devAction.js.map +1 -0
- package/dist/actions/dev/devDebug.js +4 -0
- package/dist/actions/dev/devDebug.js.map +1 -0
- package/dist/actions/dev/getCoreAppUrl.js +10 -0
- package/dist/actions/dev/getCoreAppUrl.js.map +1 -0
- package/dist/actions/dev/getDevServerConfig.js +28 -0
- package/dist/actions/dev/getDevServerConfig.js.map +1 -0
- package/dist/actions/dev/startAppDevServer.js +57 -0
- package/dist/actions/dev/startAppDevServer.js.map +1 -0
- package/dist/actions/dev/startStudioDevServer.js +154 -0
- package/dist/actions/dev/startStudioDevServer.js.map +1 -0
- package/dist/actions/dev/types.js +3 -0
- package/dist/actions/dev/types.js.map +1 -0
- package/dist/actions/docs/normalizeDocsPath.js +15 -0
- package/dist/actions/docs/normalizeDocsPath.js.map +1 -0
- package/dist/actions/documents/constants.js +3 -0
- package/dist/actions/documents/constants.js.map +1 -0
- package/dist/actions/documents/editor.js +26 -0
- package/dist/actions/documents/editor.js.map +1 -0
- package/dist/actions/documents/types.js +3 -0
- package/dist/actions/documents/types.js.map +1 -0
- package/dist/actions/documents/validate.js +60 -0
- package/dist/actions/documents/validate.js.map +1 -0
- package/dist/actions/documents/validateDocuments.worker.js +251 -0
- package/dist/actions/documents/validateDocuments.worker.js.map +1 -0
- package/dist/actions/documents/validation/reporters/index.js +10 -0
- package/dist/actions/documents/validation/reporters/index.js.map +1 -0
- package/dist/actions/documents/validation/reporters/jsonReporter.js +25 -0
- package/dist/actions/documents/validation/reporters/jsonReporter.js.map +1 -0
- package/dist/actions/documents/validation/reporters/ndjsonReporter.js +18 -0
- package/dist/actions/documents/validation/reporters/ndjsonReporter.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js +62 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/index.js +3 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/index.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/prettyReporter.js +92 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/prettyReporter.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/util.js +45 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/util.js.map +1 -0
- package/dist/actions/exec/configClient.worker.js +9 -0
- package/dist/actions/exec/configClient.worker.js.map +1 -0
- package/dist/actions/exec/execScript.js +77 -0
- package/dist/actions/exec/execScript.js.map +1 -0
- package/dist/actions/exec/registerBrowserEnv.worker.js +17 -0
- package/dist/actions/exec/registerBrowserEnv.worker.js.map +1 -0
- package/dist/actions/graphql/SchemaError.js +37 -0
- package/dist/actions/graphql/SchemaError.js.map +1 -0
- package/dist/actions/graphql/extractFromSanitySchema.js +659 -0
- package/dist/actions/graphql/extractFromSanitySchema.js.map +1 -0
- package/dist/actions/graphql/gen1/generateTypeFilters.js +226 -0
- package/dist/actions/graphql/gen1/generateTypeFilters.js.map +1 -0
- package/dist/actions/graphql/gen1/generateTypeQueries.js +85 -0
- package/dist/actions/graphql/gen1/generateTypeQueries.js.map +1 -0
- package/dist/actions/graphql/gen1/index.js +19 -0
- package/dist/actions/graphql/gen1/index.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/booleanFilters.js +26 -0
- package/dist/actions/graphql/gen2/filters/booleanFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/dateFilters.js +46 -0
- package/dist/actions/graphql/gen2/filters/dateFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/dateTimeFilters.js +46 -0
- package/dist/actions/graphql/gen2/filters/dateTimeFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/documentFilters.js +21 -0
- package/dist/actions/graphql/gen2/filters/documentFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/floatFilters.js +46 -0
- package/dist/actions/graphql/gen2/filters/floatFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/idFilters.js +44 -0
- package/dist/actions/graphql/gen2/filters/idFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/integerFilters.js +46 -0
- package/dist/actions/graphql/gen2/filters/integerFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/stringFilters.js +49 -0
- package/dist/actions/graphql/gen2/filters/stringFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/generateTypeFilters.js +85 -0
- package/dist/actions/graphql/gen2/generateTypeFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/generateTypeQueries.js +107 -0
- package/dist/actions/graphql/gen2/generateTypeQueries.js.map +1 -0
- package/dist/actions/graphql/gen2/generateTypeSortings.js +70 -0
- package/dist/actions/graphql/gen2/generateTypeSortings.js.map +1 -0
- package/dist/actions/graphql/gen2/index.js +22 -0
- package/dist/actions/graphql/gen2/index.js.map +1 -0
- package/dist/actions/graphql/gen3/filters/documentFilters.js +21 -0
- package/dist/actions/graphql/gen3/filters/documentFilters.js.map +1 -0
- package/dist/actions/graphql/gen3/generateTypeFilters.js +101 -0
- package/dist/actions/graphql/gen3/generateTypeFilters.js.map +1 -0
- package/dist/actions/graphql/gen3/generateTypeQueries.js +104 -0
- package/dist/actions/graphql/gen3/generateTypeQueries.js.map +1 -0
- package/dist/actions/graphql/gen3/generateTypeSortings.js +70 -0
- package/dist/actions/graphql/gen3/generateTypeSortings.js.map +1 -0
- package/dist/actions/graphql/gen3/index.js +31 -0
- package/dist/actions/graphql/gen3/index.js.map +1 -0
- package/dist/actions/graphql/gen3/utils.js +12 -0
- package/dist/actions/graphql/gen3/utils.js.map +1 -0
- package/dist/actions/graphql/getGraphQLAPIs.js +65 -0
- package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -0
- package/dist/actions/graphql/getGraphQLAPIs.worker.js +126 -0
- package/dist/actions/graphql/getGraphQLAPIs.worker.js.map +1 -0
- package/dist/actions/graphql/graphqlDebug.js +4 -0
- package/dist/actions/graphql/graphqlDebug.js.map +1 -0
- package/dist/actions/graphql/helpUrls.js +3 -0
- package/dist/actions/graphql/helpUrls.js.map +1 -0
- package/dist/actions/graphql/helpers.js +11 -0
- package/dist/actions/graphql/helpers.js.map +1 -0
- package/dist/actions/graphql/resolveApiGeneration.js +43 -0
- package/dist/actions/graphql/resolveApiGeneration.js.map +1 -0
- package/dist/actions/graphql/types.js +3 -0
- package/dist/actions/graphql/types.js.map +1 -0
- package/dist/actions/hook/constants.js +3 -0
- package/dist/actions/hook/constants.js.map +1 -0
- package/dist/actions/hook/formatFailure.js +29 -0
- package/dist/actions/hook/formatFailure.js.map +1 -0
- package/dist/actions/hook/types.js +3 -0
- package/dist/actions/hook/types.js.map +1 -0
- package/dist/actions/init/bootstrapLocalTemplate.js +137 -0
- package/dist/actions/init/bootstrapLocalTemplate.js.map +1 -0
- package/dist/actions/init/bootstrapRemoteTemplate.js +109 -0
- package/dist/actions/init/bootstrapRemoteTemplate.js.map +1 -0
- package/dist/actions/init/bootstrapTemplate.js +32 -0
- package/dist/actions/init/bootstrapTemplate.js.map +1 -0
- package/dist/actions/init/checkNextJsReactCompatibility.js +21 -0
- package/dist/actions/init/checkNextJsReactCompatibility.js.map +1 -0
- package/dist/actions/init/constants.js +3 -0
- package/dist/actions/init/constants.js.map +1 -0
- package/dist/actions/init/countNestedFolders.js +6 -0
- package/dist/actions/init/countNestedFolders.js.map +1 -0
- package/dist/actions/init/createAppCliConfig.js +19 -0
- package/dist/actions/init/createAppCliConfig.js.map +1 -0
- package/dist/actions/init/createCliConfig.js +27 -0
- package/dist/actions/init/createCliConfig.js.map +1 -0
- package/dist/actions/init/createPackageManifest.js +86 -0
- package/dist/actions/init/createPackageManifest.js.map +1 -0
- package/dist/actions/init/createStudioConfig.js +41 -0
- package/dist/actions/init/createStudioConfig.js.map +1 -0
- package/dist/actions/init/determineAppTemplate.js +16 -0
- package/dist/actions/init/determineAppTemplate.js.map +1 -0
- package/dist/actions/init/env/createOrAppendEnvVars.js +25 -0
- package/dist/actions/init/env/createOrAppendEnvVars.js.map +1 -0
- package/dist/actions/init/env/parseAndUpdateEnvVars.js +42 -0
- package/dist/actions/init/env/parseAndUpdateEnvVars.js.map +1 -0
- package/dist/actions/init/env/writeEnvVarsToFile.js +49 -0
- package/dist/actions/init/env/writeEnvVarsToFile.js.map +1 -0
- package/dist/actions/init/fetchPostInitPrompt.js +30 -0
- package/dist/actions/init/fetchPostInitPrompt.js.map +1 -0
- package/dist/actions/init/git.js +65 -0
- package/dist/actions/init/git.js.map +1 -0
- package/dist/actions/init/processTemplate.js +56 -0
- package/dist/actions/init/processTemplate.js.map +1 -0
- package/dist/actions/init/remoteTemplate.js +211 -0
- package/dist/actions/init/remoteTemplate.js.map +1 -0
- package/dist/actions/init/resolvePackageManager.js +20 -0
- package/dist/actions/init/resolvePackageManager.js.map +1 -0
- package/dist/actions/init/templates/appQuickstart.js +28 -0
- package/dist/actions/init/templates/appQuickstart.js.map +1 -0
- package/dist/actions/init/templates/appSanityUi.js +30 -0
- package/dist/actions/init/templates/appSanityUi.js.map +1 -0
- package/dist/actions/init/templates/blog.js +4 -0
- package/dist/actions/init/templates/blog.js.map +1 -0
- package/dist/actions/init/templates/clean.js +4 -0
- package/dist/actions/init/templates/clean.js.map +1 -0
- package/dist/actions/init/templates/getStarted.js +35 -0
- package/dist/actions/init/templates/getStarted.js.map +1 -0
- package/dist/actions/init/templates/index.js +23 -0
- package/dist/actions/init/templates/index.js.map +1 -0
- package/dist/actions/init/templates/moviedb.js +34 -0
- package/dist/actions/init/templates/moviedb.js.map +1 -0
- package/dist/actions/init/templates/nextjs/index.js +213 -0
- package/dist/actions/init/templates/nextjs/index.js.map +1 -0
- package/dist/actions/init/templates/nextjs/schemaTypes/blog.js +247 -0
- package/dist/actions/init/templates/nextjs/schemaTypes/blog.js.map +1 -0
- package/dist/actions/init/templates/quickstart.js +4 -0
- package/dist/actions/init/templates/quickstart.js.map +1 -0
- package/dist/actions/init/templates/shopify.js +77 -0
- package/dist/actions/init/templates/shopify.js.map +1 -0
- package/dist/actions/init/templates/shopifyOnline.js +49 -0
- package/dist/actions/init/templates/shopifyOnline.js.map +1 -0
- package/dist/actions/init/types.js +3 -0
- package/dist/actions/init/types.js.map +1 -0
- package/dist/actions/init/updateInitialTemplateMetadata.js +17 -0
- package/dist/actions/init/updateInitialTemplateMetadata.js.map +1 -0
- package/dist/actions/manifest/SchemaIcon.js +21 -0
- package/dist/actions/manifest/SchemaIcon.js.map +1 -0
- package/dist/actions/manifest/extractAppManifest.js +51 -0
- package/dist/actions/manifest/extractAppManifest.js.map +1 -0
- package/dist/actions/manifest/extractManifest.js +93 -0
- package/dist/actions/manifest/extractManifest.js.map +1 -0
- package/dist/actions/manifest/extractWorkspaceManifest.js +406 -0
- package/dist/actions/manifest/extractWorkspaceManifest.js.map +1 -0
- package/dist/actions/manifest/purifyConfig.js +307 -0
- package/dist/actions/manifest/purifyConfig.js.map +1 -0
- package/dist/actions/manifest/schemaTypeHelpers.js +110 -0
- package/dist/actions/manifest/schemaTypeHelpers.js.map +1 -0
- package/dist/actions/manifest/types.js +5 -0
- package/dist/actions/manifest/types.js.map +1 -0
- package/dist/actions/mcp/detectAvailableEditors.js +75 -0
- package/dist/actions/mcp/detectAvailableEditors.js.map +1 -0
- package/dist/actions/mcp/editorConfigs.js +147 -0
- package/dist/actions/mcp/editorConfigs.js.map +1 -0
- package/dist/actions/mcp/promptForMCPSetup.js +24 -0
- package/dist/actions/mcp/promptForMCPSetup.js.map +1 -0
- package/dist/actions/mcp/setupMCP.js +88 -0
- package/dist/actions/mcp/setupMCP.js.map +1 -0
- package/dist/actions/mcp/types.js +3 -0
- package/dist/actions/mcp/types.js.map +1 -0
- package/dist/actions/mcp/writeMCPConfig.js +41 -0
- package/dist/actions/mcp/writeMCPConfig.js.map +1 -0
- package/dist/actions/media/__tests__/createMockClient.js +32 -0
- package/dist/actions/media/__tests__/createMockClient.js.map +1 -0
- package/dist/actions/media/getMediaLibraryConfig.js +5 -0
- package/dist/actions/media/getMediaLibraryConfig.js.map +1 -0
- package/dist/actions/media/importAspects.js +112 -0
- package/dist/actions/media/importAspects.js.map +1 -0
- package/dist/actions/media/importMedia.js +213 -0
- package/dist/actions/media/importMedia.js.map +1 -0
- package/dist/actions/media/importMediaDebug.js +4 -0
- package/dist/actions/media/importMediaDebug.js.map +1 -0
- package/dist/actions/organizations/getOrganization.js +67 -0
- package/dist/actions/organizations/getOrganization.js.map +1 -0
- package/dist/actions/organizations/getOrganizationChoices.js +23 -0
- package/dist/actions/organizations/getOrganizationChoices.js.map +1 -0
- package/dist/actions/organizations/getOrganizationsWithAttachGrantInfo.js +9 -0
- package/dist/actions/organizations/getOrganizationsWithAttachGrantInfo.js.map +1 -0
- package/dist/actions/organizations/hasProjectAttachGrant.js +24 -0
- package/dist/actions/organizations/hasProjectAttachGrant.js.map +1 -0
- package/dist/actions/organizations/validateOrganizationName.js +10 -0
- package/dist/actions/organizations/validateOrganizationName.js.map +1 -0
- package/dist/actions/preview/getPreviewServerConfig.js +16 -0
- package/dist/actions/preview/getPreviewServerConfig.js.map +1 -0
- package/dist/actions/preview/previewAction.js +20 -0
- package/dist/actions/preview/previewAction.js.map +1 -0
- package/dist/actions/preview/types.js +3 -0
- package/dist/actions/preview/types.js.map +1 -0
- package/dist/actions/projects/getManageUrl.js +7 -0
- package/dist/actions/projects/getManageUrl.js.map +1 -0
- package/dist/actions/projects/validateProjectName.js +11 -0
- package/dist/actions/projects/validateProjectName.js.map +1 -0
- package/dist/actions/schema/deleteSchemaAction.js +101 -0
- package/dist/actions/schema/deleteSchemaAction.js.map +1 -0
- package/dist/actions/schema/deploySchemas.js +98 -0
- package/dist/actions/schema/deploySchemas.js.map +1 -0
- package/dist/actions/schema/extractSanitySchema.worker.js +38 -0
- package/dist/actions/schema/extractSanitySchema.worker.js.map +1 -0
- package/dist/actions/schema/extractSchema.js +77 -0
- package/dist/actions/schema/extractSchema.js.map +1 -0
- package/dist/actions/schema/formatSchemaValidation.js +74 -0
- package/dist/actions/schema/formatSchemaValidation.js.map +1 -0
- package/dist/actions/schema/listSchemas.js +119 -0
- package/dist/actions/schema/listSchemas.js.map +1 -0
- package/dist/actions/schema/metafile.js +51 -0
- package/dist/actions/schema/metafile.js.map +1 -0
- package/dist/actions/schema/schemaStoreTypes.js +19 -0
- package/dist/actions/schema/schemaStoreTypes.js.map +1 -0
- package/dist/actions/schema/types.js +9 -0
- package/dist/actions/schema/types.js.map +1 -0
- package/dist/actions/schema/utils/debug.js +6 -0
- package/dist/actions/schema/utils/debug.js.map +1 -0
- package/dist/actions/schema/utils/extractValidationFromSchemaError.js +12 -0
- package/dist/actions/schema/utils/extractValidationFromSchemaError.js.map +1 -0
- package/dist/actions/schema/utils/manifestExtractor.js +33 -0
- package/dist/actions/schema/utils/manifestExtractor.js.map +1 -0
- package/dist/actions/schema/utils/manifestReader.js +71 -0
- package/dist/actions/schema/utils/manifestReader.js.map +1 -0
- package/dist/actions/schema/utils/schemaStoreOutStrings.js +11 -0
- package/dist/actions/schema/utils/schemaStoreOutStrings.js.map +1 -0
- package/dist/actions/schema/utils/schemaStoreValidation.js +108 -0
- package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -0
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js +9 -0
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -0
- package/dist/actions/schema/utils/workspaceSchemaId.js +23 -0
- package/dist/actions/schema/utils/workspaceSchemaId.js.map +1 -0
- package/dist/actions/schema/validateAction.js +71 -0
- package/dist/actions/schema/validateAction.js.map +1 -0
- package/dist/actions/schema/validateSchema.worker.js +124 -0
- package/dist/actions/schema/validateSchema.worker.js.map +1 -0
- package/dist/actions/telemetry/getLearnMoreMessage.js +15 -0
- package/dist/actions/telemetry/getLearnMoreMessage.js.map +1 -0
- package/dist/actions/telemetry/getStatusDisplay.js +26 -0
- package/dist/actions/telemetry/getStatusDisplay.js.map +1 -0
- package/dist/actions/telemetry/getStatusMessage.js +36 -0
- package/dist/actions/telemetry/getStatusMessage.js.map +1 -0
- package/dist/actions/telemetry/resolveConsent.js +48 -0
- package/dist/actions/telemetry/resolveConsent.js.map +1 -0
- package/dist/actions/telemetry/setConsent.js +83 -0
- package/dist/actions/telemetry/setConsent.js.map +1 -0
- package/dist/actions/telemetry/telemetryDebug.js +4 -0
- package/dist/actions/telemetry/telemetryDebug.js.map +1 -0
- package/dist/actions/telemetry/telemetryDisclosure.js +33 -0
- package/dist/actions/telemetry/telemetryDisclosure.js.map +1 -0
- package/dist/actions/telemetry/telemetryLearnMoreMessage.js +15 -0
- package/dist/actions/telemetry/telemetryLearnMoreMessage.js.map +1 -0
- package/dist/actions/tokens/constants.js +5 -0
- package/dist/actions/tokens/constants.js.map +1 -0
- package/dist/actions/tokens/types.js +3 -0
- package/dist/actions/tokens/types.js.map +1 -0
- package/dist/actions/tokens/validateRole.js +23 -0
- package/dist/actions/tokens/validateRole.js.map +1 -0
- package/dist/actions/undeploy/getStudioOrAppUserApplication.js +36 -0
- package/dist/actions/undeploy/getStudioOrAppUserApplication.js.map +1 -0
- package/dist/actions/users/getMembersForProject.js +47 -0
- package/dist/actions/users/getMembersForProject.js.map +1 -0
- package/dist/actions/users/getPendingInvitations.js +15 -0
- package/dist/actions/users/getPendingInvitations.js.map +1 -0
- package/dist/actions/users/types.js +3 -0
- package/dist/actions/users/types.js.map +1 -0
- package/dist/actions/users/usersDebug.js +4 -0
- package/dist/actions/users/usersDebug.js.map +1 -0
- package/dist/actions/users/validateEmail.js +14 -0
- package/dist/actions/users/validateEmail.js.map +1 -0
- package/dist/actions/versions/buildPackageArray.js +44 -0
- package/dist/actions/versions/buildPackageArray.js.map +1 -0
- package/dist/actions/versions/filterSanityModules.js +20 -0
- package/dist/actions/versions/filterSanityModules.js.map +1 -0
- package/dist/actions/versions/findSanityModulesVersions.js +47 -0
- package/dist/actions/versions/findSanityModulesVersions.js.map +1 -0
- package/dist/actions/versions/getFormatters.js +30 -0
- package/dist/actions/versions/getFormatters.js.map +1 -0
- package/dist/actions/versions/tryFindLatestVersion.js +21 -0
- package/dist/actions/versions/tryFindLatestVersion.js.map +1 -0
- package/dist/actions/versions/types.js +5 -0
- package/dist/actions/versions/types.js.map +1 -0
- package/dist/actions/versions/versionsDebug.js +4 -0
- package/dist/actions/versions/versionsDebug.js.map +1 -0
- package/dist/commands/backup/disable.js +94 -0
- package/dist/commands/backup/disable.js.map +1 -0
- package/dist/commands/backup/download.js +291 -0
- package/dist/commands/backup/download.js.map +1 -0
- package/dist/commands/backup/enable.js +99 -0
- package/dist/commands/backup/enable.js.map +1 -0
- package/dist/commands/backup/list.js +187 -0
- package/dist/commands/backup/list.js.map +1 -0
- package/dist/commands/build.js +82 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/codemod.js +141 -0
- package/dist/commands/codemod.js.map +1 -0
- package/dist/commands/cors/add.js +154 -0
- package/dist/commands/cors/add.js.map +1 -0
- package/dist/commands/cors/delete.js +90 -0
- package/dist/commands/cors/delete.js.map +1 -0
- package/dist/commands/cors/list.js +40 -0
- package/dist/commands/cors/list.js.map +1 -0
- package/dist/commands/dataset/alias/create.js +118 -0
- package/dist/commands/dataset/alias/create.js.map +1 -0
- package/dist/commands/dataset/alias/delete.js +88 -0
- package/dist/commands/dataset/alias/delete.js.map +1 -0
- package/dist/commands/dataset/alias/link.js +137 -0
- package/dist/commands/dataset/alias/link.js.map +1 -0
- package/dist/commands/dataset/alias/unlink.js +98 -0
- package/dist/commands/dataset/alias/unlink.js.map +1 -0
- package/dist/commands/dataset/copy.js +369 -0
- package/dist/commands/dataset/copy.js.map +1 -0
- package/dist/commands/dataset/create.js +106 -0
- package/dist/commands/dataset/create.js.map +1 -0
- package/dist/commands/dataset/delete.js +104 -0
- package/dist/commands/dataset/delete.js.map +1 -0
- package/dist/commands/dataset/export.js +271 -0
- package/dist/commands/dataset/export.js.map +1 -0
- package/dist/commands/dataset/import.js +3 -0
- package/dist/commands/dataset/import.js.map +1 -0
- package/dist/commands/dataset/list.js +50 -0
- package/dist/commands/dataset/list.js.map +1 -0
- package/dist/commands/dataset/visibility/get.js +55 -0
- package/dist/commands/dataset/visibility/get.js.map +1 -0
- package/dist/commands/dataset/visibility/set.js +88 -0
- package/dist/commands/dataset/visibility/set.js.map +1 -0
- package/dist/commands/debug.js +93 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/deploy.js +115 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.js +65 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/docs/browse.js +15 -0
- package/dist/commands/docs/browse.js.map +1 -0
- package/dist/commands/docs/read.js +81 -0
- package/dist/commands/docs/read.js.map +1 -0
- package/dist/commands/docs/search.js +111 -0
- package/dist/commands/docs/search.js.map +1 -0
- package/dist/commands/documents/create.js +338 -0
- package/dist/commands/documents/create.js.map +1 -0
- package/dist/commands/documents/delete.js +104 -0
- package/dist/commands/documents/delete.js.map +1 -0
- package/dist/commands/documents/get.js +85 -0
- package/dist/commands/documents/get.js.map +1 -0
- package/dist/commands/documents/query.js +105 -0
- package/dist/commands/documents/query.js.map +1 -0
- package/dist/commands/documents/validate.js +142 -0
- package/dist/commands/documents/validate.js.map +1 -0
- package/dist/commands/exec.js +54 -0
- package/dist/commands/exec.js.map +1 -0
- package/dist/commands/graphql/deploy.js +429 -0
- package/dist/commands/graphql/deploy.js.map +1 -0
- package/dist/commands/graphql/list.js +53 -0
- package/dist/commands/graphql/list.js.map +1 -0
- package/dist/commands/graphql/undeploy.js +143 -0
- package/dist/commands/graphql/undeploy.js.map +1 -0
- package/dist/commands/hook/attempt.js +66 -0
- package/dist/commands/hook/attempt.js.map +1 -0
- package/dist/commands/hook/create.js +46 -0
- package/dist/commands/hook/create.js.map +1 -0
- package/dist/commands/hook/delete.js +86 -0
- package/dist/commands/hook/delete.js.map +1 -0
- package/dist/commands/hook/list.js +46 -0
- package/dist/commands/hook/list.js.map +1 -0
- package/dist/commands/hook/logs.js +184 -0
- package/dist/commands/hook/logs.js.map +1 -0
- package/dist/commands/init.js +1389 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install.js +43 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/learn.js +15 -0
- package/dist/commands/learn.js.map +1 -0
- package/dist/commands/login.js +50 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.js +37 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/manage.js +29 -0
- package/dist/commands/manage.js.map +1 -0
- package/dist/commands/manifest/extract.js +43 -0
- package/dist/commands/manifest/extract.js.map +1 -0
- package/dist/commands/mcp/configure.js +28 -0
- package/dist/commands/mcp/configure.js.map +1 -0
- package/dist/commands/media/create-aspect.js +88 -0
- package/dist/commands/media/create-aspect.js.map +1 -0
- package/dist/commands/media/delete-aspect.js +85 -0
- package/dist/commands/media/delete-aspect.js.map +1 -0
- package/dist/commands/media/deploy-aspect.js +151 -0
- package/dist/commands/media/deploy-aspect.js.map +1 -0
- package/dist/commands/media/export.js +210 -0
- package/dist/commands/media/export.js.map +1 -0
- package/dist/commands/media/import.js +160 -0
- package/dist/commands/media/import.js.map +1 -0
- package/dist/commands/openapi/get.js +83 -0
- package/dist/commands/openapi/get.js.map +1 -0
- package/dist/commands/openapi/list.js +80 -0
- package/dist/commands/openapi/list.js.map +1 -0
- package/dist/commands/preview.js +60 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/projects/create.js +181 -0
- package/dist/commands/projects/create.js.map +1 -0
- package/dist/commands/projects/list.js +76 -0
- package/dist/commands/projects/list.js.map +1 -0
- package/dist/commands/schema/delete.js +91 -0
- package/dist/commands/schema/delete.js.map +1 -0
- package/dist/commands/schema/deploy.js +98 -0
- package/dist/commands/schema/deploy.js.map +1 -0
- package/dist/commands/schema/extract.js +46 -0
- package/dist/commands/schema/extract.js.map +1 -0
- package/dist/commands/schema/list.js +104 -0
- package/dist/commands/schema/list.js.map +1 -0
- package/dist/commands/schema/validate.js +73 -0
- package/dist/commands/schema/validate.js.map +1 -0
- package/dist/commands/telemetry/disable.js +33 -0
- package/dist/commands/telemetry/disable.js.map +1 -0
- package/dist/commands/telemetry/enable.js +33 -0
- package/dist/commands/telemetry/enable.js.map +1 -0
- package/dist/commands/telemetry/status.js +25 -0
- package/dist/commands/telemetry/status.js.map +1 -0
- package/dist/commands/tokens/add.js +135 -0
- package/dist/commands/tokens/add.js.map +1 -0
- package/dist/commands/tokens/delete.js +107 -0
- package/dist/commands/tokens/delete.js.map +1 -0
- package/dist/commands/tokens/list.js +92 -0
- package/dist/commands/tokens/list.js.map +1 -0
- package/dist/commands/undeploy.js +93 -0
- package/dist/commands/undeploy.js.map +1 -0
- package/dist/commands/users/invite.js +100 -0
- package/dist/commands/users/invite.js.map +1 -0
- package/dist/commands/users/list.js +101 -0
- package/dist/commands/users/list.js.map +1 -0
- package/dist/commands/versions.js +27 -0
- package/dist/commands/versions.js.map +1 -0
- package/dist/config/createCliConfig.js +9 -0
- package/dist/config/createCliConfig.js.map +1 -0
- package/dist/config/defineCliConfig.js +5 -0
- package/dist/config/defineCliConfig.js.map +1 -0
- package/dist/hooks/prerun/flushTelemetry.worker.js +22 -0
- package/dist/hooks/prerun/flushTelemetry.worker.js.map +1 -0
- package/dist/hooks/prerun/injectEnvVariables.js +31 -0
- package/dist/hooks/prerun/injectEnvVariables.js.map +1 -0
- package/dist/hooks/prerun/setupTelemetry.js +72 -0
- package/dist/hooks/prerun/setupTelemetry.js.map +1 -0
- package/dist/hooks/prerun/warnings.js +6 -0
- package/dist/hooks/prerun/warnings.js.map +1 -0
- package/dist/index.d.ts +2326 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/init/nextjs.js +56 -0
- package/dist/prompts/init/nextjs.js.map +1 -0
- package/dist/prompts/init/promptForTypescript.js +9 -0
- package/dist/prompts/init/promptForTypescript.js.map +1 -0
- package/dist/prompts/promptForDataset.js +32 -0
- package/dist/prompts/promptForDataset.js.map +1 -0
- package/dist/prompts/promptForDatasetAclMode.js +27 -0
- package/dist/prompts/promptForDatasetAclMode.js.map +1 -0
- package/dist/prompts/promptForDatasetAliasName.js +17 -0
- package/dist/prompts/promptForDatasetAliasName.js.map +1 -0
- package/dist/prompts/promptForDatasetName.js +20 -0
- package/dist/prompts/promptForDatasetName.js.map +1 -0
- package/dist/prompts/promptForDefaultConfig.js +12 -0
- package/dist/prompts/promptForDefaultConfig.js.map +1 -0
- package/dist/prompts/promptForMediaLibrary.js +37 -0
- package/dist/prompts/promptForMediaLibrary.js.map +1 -0
- package/dist/prompts/promptForOrganizationName.js +11 -0
- package/dist/prompts/promptForOrganizationName.js.map +1 -0
- package/dist/prompts/promptForProjectName.js +11 -0
- package/dist/prompts/promptForProjectName.js.map +1 -0
- package/dist/prompts/selectDataset.js +12 -0
- package/dist/prompts/selectDataset.js.map +1 -0
- package/dist/prompts/selectMediaLibrary.js +34 -0
- package/dist/prompts/selectMediaLibrary.js.map +1 -0
- package/dist/server/devServer.js +53 -0
- package/dist/server/devServer.js.map +1 -0
- package/dist/server/gracefulServerDeath.js +12 -0
- package/dist/server/gracefulServerDeath.js.map +1 -0
- package/dist/server/previewServer.js +93 -0
- package/dist/server/previewServer.js.map +1 -0
- package/dist/server/serverDebug.js +4 -0
- package/dist/server/serverDebug.js.map +1 -0
- package/dist/server/vite/plugin-sanity-basepath-redirect.js +25 -0
- package/dist/server/vite/plugin-sanity-basepath-redirect.js.map +1 -0
- package/dist/server/vite/plugin-sanity-build-entries.js +65 -0
- package/dist/server/vite/plugin-sanity-build-entries.js.map +1 -0
- package/dist/server/vite/plugin-sanity-favicons.js +72 -0
- package/dist/server/vite/plugin-sanity-favicons.js.map +1 -0
- package/dist/server/vite/plugin-sanity-runtime-rewrite.js +18 -0
- package/dist/server/vite/plugin-sanity-runtime-rewrite.js.map +1 -0
- package/dist/services/auth.js +13 -0
- package/dist/services/auth.js.map +1 -0
- package/dist/services/backup.js +51 -0
- package/dist/services/backup.js.map +1 -0
- package/dist/services/cors.js +38 -0
- package/dist/services/cors.js.map +1 -0
- package/dist/services/datasetAliases.js +64 -0
- package/dist/services/datasetAliases.js.map +1 -0
- package/dist/services/datasets.js +153 -0
- package/dist/services/datasets.js.map +1 -0
- package/dist/services/docs.js +46 -0
- package/dist/services/docs.js.map +1 -0
- package/dist/services/documents.js +56 -0
- package/dist/services/documents.js.map +1 -0
- package/dist/services/getProjectFeatures.js +16 -0
- package/dist/services/getProjectFeatures.js.map +1 -0
- package/dist/services/getUrlHeaders.js +36 -0
- package/dist/services/getUrlHeaders.js.map +1 -0
- package/dist/services/graphql.js +96 -0
- package/dist/services/graphql.js.map +1 -0
- package/dist/services/hooks.js +59 -0
- package/dist/services/hooks.js.map +1 -0
- package/dist/services/mcp.js +50 -0
- package/dist/services/mcp.js.map +1 -0
- package/dist/services/mediaLibraries.js +74 -0
- package/dist/services/mediaLibraries.js.map +1 -0
- package/dist/services/organizations.js +42 -0
- package/dist/services/organizations.js.map +1 -0
- package/dist/services/plans.js +37 -0
- package/dist/services/plans.js.map +1 -0
- package/dist/services/projects.js +119 -0
- package/dist/services/projects.js.map +1 -0
- package/dist/services/schemas.js +40 -0
- package/dist/services/schemas.js.map +1 -0
- package/dist/services/telemetry.js +80 -0
- package/dist/services/telemetry.js.map +1 -0
- package/dist/services/tokens.js +72 -0
- package/dist/services/tokens.js.map +1 -0
- package/dist/services/user.js +35 -0
- package/dist/services/user.js.map +1 -0
- package/dist/services/userApplications.js +164 -0
- package/dist/services/userApplications.js.map +1 -0
- package/dist/studioDependencies.js +24 -0
- package/dist/studioDependencies.js.map +1 -0
- package/dist/telemetry/build.telemetry.js +13 -0
- package/dist/telemetry/build.telemetry.js.map +1 -0
- package/dist/telemetry/cli.telemetry.js +8 -0
- package/dist/telemetry/cli.telemetry.js.map +1 -0
- package/dist/telemetry/extractSchema.telemetry.js +8 -0
- package/dist/telemetry/extractSchema.telemetry.js.map +1 -0
- package/dist/telemetry/init.telemetry.js +8 -0
- package/dist/telemetry/init.telemetry.js.map +1 -0
- package/dist/telemetry/login.telemetry.js +8 -0
- package/dist/telemetry/login.telemetry.js.map +1 -0
- package/dist/telemetry/mcp.telemetry.js +8 -0
- package/dist/telemetry/mcp.telemetry.js.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/typings/deepSortObject.d.js +2 -0
- package/dist/typings/deepSortObject.d.js.map +1 -0
- package/dist/util/absolutify.js +26 -0
- package/dist/util/absolutify.js.map +1 -0
- package/dist/util/appId.js +58 -0
- package/dist/util/appId.js.map +1 -0
- package/dist/util/canLaunchBrowser.js +14 -0
- package/dist/util/canLaunchBrowser.js.map +1 -0
- package/dist/util/cliClient.js +41 -0
- package/dist/util/cliClient.js.map +1 -0
- package/dist/util/compareDependencyVersions.js +73 -0
- package/dist/util/compareDependencyVersions.js.map +1 -0
- package/dist/util/copy.js +37 -0
- package/dist/util/copy.js.map +1 -0
- package/dist/util/copyDir.js +63 -0
- package/dist/util/copyDir.js.map +1 -0
- package/dist/util/detectRuntime.js +20 -0
- package/dist/util/detectRuntime.js.map +1 -0
- package/dist/util/determineIsApp.js +9 -0
- package/dist/util/determineIsApp.js.map +1 -0
- package/dist/util/dirIsEmptyOrNonExistent.js +18 -0
- package/dist/util/dirIsEmptyOrNonExistent.js.map +1 -0
- package/dist/util/ensureTrailingSlash.js +12 -0
- package/dist/util/ensureTrailingSlash.js.map +1 -0
- package/dist/util/errorMessages.js +6 -0
- package/dist/util/errorMessages.js.map +1 -0
- package/dist/util/extractDocumentsFromNdjsonOrTarball.js +88 -0
- package/dist/util/extractDocumentsFromNdjsonOrTarball.js.map +1 -0
- package/dist/util/findNdjsonEntry.js +21 -0
- package/dist/util/findNdjsonEntry.js.map +1 -0
- package/dist/util/formatSize.js +10 -0
- package/dist/util/formatSize.js.map +1 -0
- package/dist/util/frameworkPort.js +61 -0
- package/dist/util/frameworkPort.js.map +1 -0
- package/dist/util/fsUtils.js +34 -0
- package/dist/util/fsUtils.js.map +1 -0
- package/dist/util/getCliVersion.js +28 -0
- package/dist/util/getCliVersion.js.map +1 -0
- package/dist/util/getErrorMessage.js +19 -0
- package/dist/util/getErrorMessage.js.map +1 -0
- package/dist/util/getLocalPackageVersion.js +32 -0
- package/dist/util/getLocalPackageVersion.js.map +1 -0
- package/dist/util/getProjectDefaults.js +77 -0
- package/dist/util/getProjectDefaults.js.map +1 -0
- package/dist/util/getSanityEnv.js +3 -0
- package/dist/util/getSanityEnv.js.map +1 -0
- package/dist/util/getSharedServerConfig.js +31 -0
- package/dist/util/getSharedServerConfig.js.map +1 -0
- package/dist/util/getWorkspace.js +18 -0
- package/dist/util/getWorkspace.js.map +1 -0
- package/dist/util/humanFileSize.js +12 -0
- package/dist/util/humanFileSize.js.map +1 -0
- package/dist/util/importStudioConfig.js +40 -0
- package/dist/util/importStudioConfig.js.map +1 -0
- package/dist/util/isPathDirName.js +6 -0
- package/dist/util/isPathDirName.js.map +1 -0
- package/dist/util/isSanityDocumentish.js +20 -0
- package/dist/util/isSanityDocumentish.js.map +1 -0
- package/dist/util/loadEnv.js +3 -0
- package/dist/util/loadEnv.js.map +1 -0
- package/dist/util/moduleFormatUtils.js +18 -0
- package/dist/util/moduleFormatUtils.js.map +1 -0
- package/dist/util/packageManager/installPackages.js +87 -0
- package/dist/util/packageManager/installPackages.js.map +1 -0
- package/dist/util/packageManager/packageManagerChoice.js +181 -0
- package/dist/util/packageManager/packageManagerChoice.js.map +1 -0
- package/dist/util/packageManager/upgradePackages.js +69 -0
- package/dist/util/packageManager/upgradePackages.js.map +1 -0
- package/dist/util/parseArguments.js +42 -0
- package/dist/util/parseArguments.js.map +1 -0
- package/dist/util/pluralize.js +11 -0
- package/dist/util/pluralize.js.map +1 -0
- package/dist/util/readModuleVersion.js +15 -0
- package/dist/util/readModuleVersion.js.map +1 -0
- package/dist/util/readPackageJson.js +44 -0
- package/dist/util/readPackageJson.js.map +1 -0
- package/dist/util/readPackageManifest.js +46 -0
- package/dist/util/readPackageManifest.js.map +1 -0
- package/dist/util/readdirRecursive.js +24 -0
- package/dist/util/readdirRecursive.js.map +1 -0
- package/dist/util/resolveLatestVersions.js +21 -0
- package/dist/util/resolveLatestVersions.js.map +1 -0
- package/dist/util/toInt.js +9 -0
- package/dist/util/toInt.js.map +1 -0
- package/dist/util/trimHashFromVersion.js +8 -0
- package/dist/util/trimHashFromVersion.js.map +1 -0
- package/dist/util/uniqBy.js +14 -0
- package/dist/util/uniqBy.js.map +1 -0
- package/dist/util/validation/validateDocumentsUtils.js +33 -0
- package/dist/util/validation/validateDocumentsUtils.js.map +1 -0
- package/dist/util/warnAboutMissingAppId.js +15 -0
- package/dist/util/warnAboutMissingAppId.js.map +1 -0
- package/dist/util/warnOnNonProductionEnvironment.js +18 -0
- package/dist/util/warnOnNonProductionEnvironment.js.map +1 -0
- package/dist/util/workerChannels.js +172 -0
- package/dist/util/workerChannels.js.map +1 -0
- package/oclif.config.js +21 -0
- package/oclif.manifest.json +4154 -0
- package/package.json +138 -98
- package/templates/app-quickstart/src/App.css +3 -1
- package/templates/app-quickstart/src/App.tsx +1 -1
- package/templates/app-sanity-ui/src/App.tsx +2 -2
- package/templates/app-sanity-ui/src/ExampleComponent.tsx +2 -1
- package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +3 -3
- package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +2 -2
- package/templates/shopify/components/hotspots/ProductTooltip.tsx +1 -1
- package/templates/shopify/components/icons/Shopify.tsx +0 -2
- package/templates/shopify/components/inputs/CollectionHidden.tsx +0 -1
- package/templates/shopify/components/media/ColorTheme.tsx +1 -1
- package/templates/shopify/constants.ts +4 -4
- package/templates/shopify/plugins/customDocumentActions/index.ts +2 -2
- package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +1 -1
- package/templates/shopify/schemaTypes/documents/collection.tsx +1 -2
- package/templates/shopify/schemaTypes/documents/page.ts +1 -1
- package/templates/shopify/schemaTypes/documents/product.tsx +1 -1
- package/templates/shopify/schemaTypes/documents/productVariant.tsx +2 -3
- package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +0 -1
- package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +1 -3
- package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +0 -1
- package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +2 -3
- package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +1 -1
- package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +1 -2
- package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +1 -2
- package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +7 -7
- package/templates/shopify/schemaTypes/singletons/homeType.ts +8 -8
- package/templates/shopify/structure/collectionStructure.ts +4 -1
- package/templates/shopify/structure/colorThemeStructure.ts +1 -1
- package/templates/shopify/structure/homeStructure.ts +2 -2
- package/templates/shopify/structure/index.ts +1 -1
- package/templates/shopify/structure/pageStructure.ts +2 -2
- package/templates/shopify/structure/productStructure.ts +7 -7
- package/templates/shopify/structure/settingStructure.ts +1 -1
- package/templates/shopify/utils/defineStructure.ts +1 -1
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +1 -1
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +1 -1
- package/templates/shopify-online-storefront/structure/collectionStructure.ts +4 -1
- package/templates/shopify-online-storefront/structure/productStructure.ts +4 -4
- package/templates/shopify-online-storefront/utils/defineStructure.ts +1 -1
- package/bin/dev.js +0 -30
- package/bin/sanity +0 -14
- package/lib/_chunks-cjs/cli.js +0 -70870
- package/lib/_chunks-cjs/cli.js.map +0 -1
- package/lib/_chunks-cjs/cliWorker.js +0 -19
- package/lib/_chunks-cjs/cliWorker.js.map +0 -1
- package/lib/_chunks-cjs/generateAction.js +0 -128
- package/lib/_chunks-cjs/generateAction.js.map +0 -1
- package/lib/_chunks-cjs/getCliConfig.js +0 -89
- package/lib/_chunks-cjs/getCliConfig.js.map +0 -1
- package/lib/_chunks-cjs/index.js +0 -31
- package/lib/_chunks-cjs/index.js.map +0 -1
- package/lib/_chunks-cjs/journeyConfig.js +0 -113
- package/lib/_chunks-cjs/journeyConfig.js.map +0 -1
- package/lib/_chunks-cjs/loadEnv.js +0 -347
- package/lib/_chunks-cjs/loadEnv.js.map +0 -1
- package/lib/_chunks-dts/types.d.ts +0 -432
- package/lib/cli.d.ts +0 -7
- package/lib/cli.js +0 -10
- package/lib/cli.js.map +0 -1
- package/lib/index.d.ts +0 -44
- package/lib/index.js +0 -46
- package/lib/index.js.map +0 -1
- package/lib/run.d.ts +0 -1
- package/lib/run.js +0 -8
- package/lib/run.js.map +0 -1
- package/lib/workers/getAndWriteJourneySchema.d.ts +0 -1
- package/lib/workers/getAndWriteJourneySchema.js +0 -4
- package/lib/workers/getAndWriteJourneySchema.js.map +0 -1
- package/lib/workers/getCliConfig.d.ts +0 -1
- package/lib/workers/getCliConfig.js +0 -10
- package/lib/workers/getCliConfig.js.map +0 -1
- package/lib/workers/typegenGenerate.d.ts +0 -18
- package/lib/workers/typegenGenerate.js +0 -47
- package/lib/workers/typegenGenerate.js.map +0 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { subdebug } from '@sanity/cli-core';
|
|
2
|
+
export const schemasDeployDebug = subdebug('schemas:deploy');
|
|
3
|
+
export const schemasListDebug = subdebug('schemas:list');
|
|
4
|
+
export const schemasExtractDebug = subdebug('schemas:extract');
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/schema/utils/debug.ts"],"sourcesContent":["import {subdebug} from '@sanity/cli-core'\n\nexport const schemasDeployDebug = subdebug('schemas:deploy')\nexport const schemasListDebug = subdebug('schemas:list')\nexport const schemasExtractDebug = subdebug('schemas:extract')\n"],"names":["subdebug","schemasDeployDebug","schemasListDebug","schemasExtractDebug"],"mappings":"AAAA,SAAQA,QAAQ,QAAO,mBAAkB;AAEzC,OAAO,MAAMC,qBAAqBD,SAAS,kBAAiB;AAC5D,OAAO,MAAME,mBAAmBF,SAAS,gBAAe;AACxD,OAAO,MAAMG,sBAAsBH,SAAS,mBAAkB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { resolveLocalPackage } from '@sanity/cli-core';
|
|
2
|
+
/**
|
|
3
|
+
* Extracts validation problem groups from a SchemaError.
|
|
4
|
+
*/ export async function extractValidationFromSchemaError(error, workDir) {
|
|
5
|
+
const { SchemaError } = await resolveLocalPackage('sanity', workDir);
|
|
6
|
+
if (error instanceof SchemaError) {
|
|
7
|
+
return error.schema._validation;
|
|
8
|
+
}
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=extractValidationFromSchemaError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/schema/utils/extractValidationFromSchemaError.ts"],"sourcesContent":["import {resolveLocalPackage} from '@sanity/cli-core'\nimport {type SchemaValidationProblemGroup} from '@sanity/types'\n\n/**\n * Extracts validation problem groups from a SchemaError.\n */\nexport async function extractValidationFromSchemaError(\n error: unknown,\n workDir: string,\n): Promise<SchemaValidationProblemGroup[] | undefined> {\n const {SchemaError} = await resolveLocalPackage<typeof import('sanity')>('sanity', workDir)\n\n if (error instanceof SchemaError) {\n return error.schema._validation\n }\n\n return undefined\n}\n"],"names":["resolveLocalPackage","extractValidationFromSchemaError","error","workDir","SchemaError","schema","_validation","undefined"],"mappings":"AAAA,SAAQA,mBAAmB,QAAO,mBAAkB;AAGpD;;CAEC,GACD,OAAO,eAAeC,iCACpBC,KAAc,EACdC,OAAe;IAEf,MAAM,EAACC,WAAW,EAAC,GAAG,MAAMJ,oBAA6C,UAAUG;IAEnF,IAAID,iBAAiBE,aAAa;QAChC,OAAOF,MAAMG,MAAM,CAACC,WAAW;IACjC;IAEA,OAAOC;AACT"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { styleText } from 'node:util';
|
|
2
|
+
import { extractManifestSafe } from '../../manifest/extractManifest.js';
|
|
3
|
+
import { FlagValidationError } from './schemaStoreValidation.js';
|
|
4
|
+
export async function ensureManifestExtractSatisfied(args) {
|
|
5
|
+
const { extractManifest, manifestDir, manifestSafe, output, schemaRequired, workDir } = args;
|
|
6
|
+
if (!extractManifest) {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
// a successful manifest extract will write a new manifest file, which manifestReader will then read from disk
|
|
11
|
+
const error = await extractManifestSafe({
|
|
12
|
+
flags: {
|
|
13
|
+
json: false,
|
|
14
|
+
path: manifestDir
|
|
15
|
+
},
|
|
16
|
+
output,
|
|
17
|
+
workDir
|
|
18
|
+
});
|
|
19
|
+
if (!manifestSafe && error) {
|
|
20
|
+
throw error;
|
|
21
|
+
}
|
|
22
|
+
return true;
|
|
23
|
+
} catch (err) {
|
|
24
|
+
if (schemaRequired || err instanceof FlagValidationError) {
|
|
25
|
+
throw err;
|
|
26
|
+
} else {
|
|
27
|
+
output.log(styleText('gray', `↳ Failed to extract manifest:\n ${err.message}`));
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=manifestExtractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/schema/utils/manifestExtractor.ts"],"sourcesContent":["import {styleText} from 'node:util'\n\nimport {type Output} from '@sanity/cli-core'\n\nimport {extractManifestSafe} from '../../manifest/extractManifest.js'\nimport {FlagValidationError} from './schemaStoreValidation.js'\n\nexport async function ensureManifestExtractSatisfied(args: {\n extractManifest: boolean\n manifestDir: string\n manifestSafe?: boolean\n output: Output\n schemaRequired?: boolean\n workDir: string\n}) {\n const {extractManifest, manifestDir, manifestSafe, output, schemaRequired, workDir} = args\n if (!extractManifest) {\n return true\n }\n try {\n // a successful manifest extract will write a new manifest file, which manifestReader will then read from disk\n const error = await extractManifestSafe({\n flags: {json: false, path: manifestDir},\n output,\n workDir,\n })\n\n if (!manifestSafe && error) {\n throw error\n }\n\n return true\n } catch (err) {\n if (schemaRequired || err instanceof FlagValidationError) {\n throw err\n } else {\n output.log(styleText('gray', `↳ Failed to extract manifest:\\n ${err.message}`))\n return false\n }\n }\n}\n"],"names":["styleText","extractManifestSafe","FlagValidationError","ensureManifestExtractSatisfied","args","extractManifest","manifestDir","manifestSafe","output","schemaRequired","workDir","error","flags","json","path","err","log","message"],"mappings":"AAAA,SAAQA,SAAS,QAAO,YAAW;AAInC,SAAQC,mBAAmB,QAAO,oCAAmC;AACrE,SAAQC,mBAAmB,QAAO,6BAA4B;AAE9D,OAAO,eAAeC,+BAA+BC,IAOpD;IACC,MAAM,EAACC,eAAe,EAAEC,WAAW,EAAEC,YAAY,EAAEC,MAAM,EAAEC,cAAc,EAAEC,OAAO,EAAC,GAAGN;IACtF,IAAI,CAACC,iBAAiB;QACpB,OAAO;IACT;IACA,IAAI;QACF,8GAA8G;QAC9G,MAAMM,QAAQ,MAAMV,oBAAoB;YACtCW,OAAO;gBAACC,MAAM;gBAAOC,MAAMR;YAAW;YACtCE;YACAE;QACF;QAEA,IAAI,CAACH,gBAAgBI,OAAO;YAC1B,MAAMA;QACR;QAEA,OAAO;IACT,EAAE,OAAOI,KAAK;QACZ,IAAIN,kBAAkBM,eAAeb,qBAAqB;YACxD,MAAMa;QACR,OAAO;YACLP,OAAOQ,GAAG,CAAChB,UAAU,QAAQ,CAAC,iCAAiC,EAAEe,IAAIE,OAAO,EAAE;YAC9E,OAAO;QACT;IACF;AACF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { readFile, stat } from 'node:fs/promises';
|
|
2
|
+
import path, { join, resolve } from 'node:path';
|
|
3
|
+
import { styleText } from 'node:util';
|
|
4
|
+
import { MANIFEST_FILENAME } from '../../manifest/extractManifest.js';
|
|
5
|
+
/**
|
|
6
|
+
* The manifest reader will try to read manifest and workspace schema files _once_ and cache a successful result.
|
|
7
|
+
* If you need to re-read the manifest from disk, create a new instance.
|
|
8
|
+
*/ export const createManifestReader = ({ manifestDir, output, workDir })=>{
|
|
9
|
+
let parsedManifest;
|
|
10
|
+
const parsedWorkspaces = {};
|
|
11
|
+
const getManifest = async ()=>{
|
|
12
|
+
if (parsedManifest) {
|
|
13
|
+
return parsedManifest?.parsedJson;
|
|
14
|
+
}
|
|
15
|
+
const staticPath = resolve(join(workDir, manifestDir));
|
|
16
|
+
const manifestFile = path.join(staticPath, MANIFEST_FILENAME);
|
|
17
|
+
const result = await parseJsonFile(manifestFile);
|
|
18
|
+
if (!result) {
|
|
19
|
+
throw new Error(`Manifest does not exist at ${manifestFile}. To create the manifest file, omit --no-extract-manifest or run "sanity manifest extract" first.`);
|
|
20
|
+
}
|
|
21
|
+
output.log(styleText('gray', `↳ Read manifest from ${manifestFile} (last modified: ${result.lastModified})`));
|
|
22
|
+
parsedManifest = result;
|
|
23
|
+
return result.parsedJson;
|
|
24
|
+
};
|
|
25
|
+
const getWorkspaceSchema = async (workspaceName)=>{
|
|
26
|
+
if (parsedWorkspaces[workspaceName]) {
|
|
27
|
+
return parsedWorkspaces[workspaceName]?.parsedJson;
|
|
28
|
+
}
|
|
29
|
+
const manifest = await getManifest();
|
|
30
|
+
if (!manifest) {
|
|
31
|
+
throw new Error('Manifest is required to read workspace schema.');
|
|
32
|
+
}
|
|
33
|
+
const workspaceManifest = manifest.workspaces.find((workspace)=>workspace.name === workspaceName);
|
|
34
|
+
if (!workspaceManifest) {
|
|
35
|
+
throw new Error(`No workspace named "${workspaceName}" found in manifest.`);
|
|
36
|
+
}
|
|
37
|
+
const workspaceSchemaFile = path.join(manifestDir, workspaceManifest.schema);
|
|
38
|
+
const result = await parseJsonFile(workspaceSchemaFile);
|
|
39
|
+
if (!result) {
|
|
40
|
+
throw new Error(`Workspace schema file at "${workspaceSchemaFile}" does not exist.`);
|
|
41
|
+
}
|
|
42
|
+
parsedWorkspaces[workspaceName] = result;
|
|
43
|
+
return result.parsedJson;
|
|
44
|
+
};
|
|
45
|
+
return {
|
|
46
|
+
getManifest,
|
|
47
|
+
getWorkspaceSchema
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
async function parseJsonFile(filePath) {
|
|
51
|
+
let stats;
|
|
52
|
+
try {
|
|
53
|
+
stats = await stat(filePath);
|
|
54
|
+
} catch {
|
|
55
|
+
// file does not exist
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
const content = await readFile(filePath, 'utf8');
|
|
59
|
+
const lastModified = stats.mtime.toISOString();
|
|
60
|
+
const json = JSON.parse(content);
|
|
61
|
+
if (!json) {
|
|
62
|
+
throw new Error(`JSON file "${filePath}" was empty.`);
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
lastModified,
|
|
66
|
+
parsedJson: json,
|
|
67
|
+
path: filePath
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=manifestReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/schema/utils/manifestReader.ts"],"sourcesContent":["import {type Stats} from 'node:fs'\nimport {readFile, stat} from 'node:fs/promises'\nimport path, {join, resolve} from 'node:path'\nimport {styleText} from 'node:util'\n\nimport {type Output} from '@sanity/cli-core'\n\nimport {MANIFEST_FILENAME} from '../../manifest/extractManifest.js'\nimport {type CreateManifest, type ManifestSchemaType} from '../../manifest/types.js'\n\ntype CreateManifestReaderFactory = (args: {\n manifestDir: string\n output: Output\n workDir: string\n}) => CreateManifestReader\n\nexport interface CreateManifestReader {\n getManifest: () => Promise<CreateManifest>\n getWorkspaceSchema: (workspaceName: string) => Promise<ManifestSchemaType[]>\n}\n\ninterface JsonFileParseSuccess<T> {\n lastModified: string\n parsedJson: T\n path: string\n}\n\n/**\n * The manifest reader will try to read manifest and workspace schema files _once_ and cache a successful result.\n * If you need to re-read the manifest from disk, create a new instance.\n */\nexport const createManifestReader: CreateManifestReaderFactory = ({\n manifestDir,\n output,\n workDir,\n}) => {\n let parsedManifest: JsonFileParseSuccess<CreateManifest>\n const parsedWorkspaces: Record<string, JsonFileParseSuccess<ManifestSchemaType[]> | undefined> =\n {}\n\n const getManifest: CreateManifestReader['getManifest'] = async () => {\n if (parsedManifest) {\n return parsedManifest?.parsedJson\n }\n\n const staticPath = resolve(join(workDir, manifestDir))\n const manifestFile = path.join(staticPath, MANIFEST_FILENAME)\n\n const result = await parseJsonFile<CreateManifest>(manifestFile)\n if (!result) {\n throw new Error(\n `Manifest does not exist at ${manifestFile}. To create the manifest file, omit --no-extract-manifest or run \"sanity manifest extract\" first.`,\n )\n }\n\n output.log(\n styleText(\n 'gray',\n `↳ Read manifest from ${manifestFile} (last modified: ${result.lastModified})`,\n ),\n )\n\n parsedManifest = result\n return result.parsedJson\n }\n\n const getWorkspaceSchema: CreateManifestReader['getWorkspaceSchema'] = async (workspaceName) => {\n if (parsedWorkspaces[workspaceName]) {\n return parsedWorkspaces[workspaceName]?.parsedJson\n }\n const manifest = await getManifest()\n if (!manifest) {\n throw new Error('Manifest is required to read workspace schema.')\n }\n\n const workspaceManifest = manifest.workspaces.find(\n (workspace) => workspace.name === workspaceName,\n )\n\n if (!workspaceManifest) {\n throw new Error(`No workspace named \"${workspaceName}\" found in manifest.`)\n }\n\n const workspaceSchemaFile = path.join(manifestDir, workspaceManifest.schema)\n const result = await parseJsonFile<ManifestSchemaType[]>(workspaceSchemaFile)\n if (!result) {\n throw new Error(`Workspace schema file at \"${workspaceSchemaFile}\" does not exist.`)\n }\n parsedWorkspaces[workspaceName] = result\n return result.parsedJson\n }\n return {\n getManifest,\n getWorkspaceSchema,\n }\n}\n\nasync function parseJsonFile<T>(filePath: string): Promise<JsonFileParseSuccess<T> | undefined> {\n let stats: Stats\n try {\n stats = await stat(filePath)\n } catch {\n // file does not exist\n return undefined\n }\n const content = await readFile(filePath, 'utf8')\n const lastModified = stats.mtime.toISOString()\n const json = JSON.parse(content) as T\n if (!json) {\n throw new Error(`JSON file \"${filePath}\" was empty.`)\n }\n return {\n lastModified,\n parsedJson: json,\n path: filePath,\n }\n}\n"],"names":["readFile","stat","path","join","resolve","styleText","MANIFEST_FILENAME","createManifestReader","manifestDir","output","workDir","parsedManifest","parsedWorkspaces","getManifest","parsedJson","staticPath","manifestFile","result","parseJsonFile","Error","log","lastModified","getWorkspaceSchema","workspaceName","manifest","workspaceManifest","workspaces","find","workspace","name","workspaceSchemaFile","schema","filePath","stats","undefined","content","mtime","toISOString","json","JSON","parse"],"mappings":"AACA,SAAQA,QAAQ,EAAEC,IAAI,QAAO,mBAAkB;AAC/C,OAAOC,QAAOC,IAAI,EAAEC,OAAO,QAAO,YAAW;AAC7C,SAAQC,SAAS,QAAO,YAAW;AAInC,SAAQC,iBAAiB,QAAO,oCAAmC;AAoBnE;;;CAGC,GACD,OAAO,MAAMC,uBAAoD,CAAC,EAChEC,WAAW,EACXC,MAAM,EACNC,OAAO,EACR;IACC,IAAIC;IACJ,MAAMC,mBACJ,CAAC;IAEH,MAAMC,cAAmD;QACvD,IAAIF,gBAAgB;YAClB,OAAOA,gBAAgBG;QACzB;QAEA,MAAMC,aAAaX,QAAQD,KAAKO,SAASF;QACzC,MAAMQ,eAAed,KAAKC,IAAI,CAACY,YAAYT;QAE3C,MAAMW,SAAS,MAAMC,cAA8BF;QACnD,IAAI,CAACC,QAAQ;YACX,MAAM,IAAIE,MACR,CAAC,2BAA2B,EAAEH,aAAa,iGAAiG,CAAC;QAEjJ;QAEAP,OAAOW,GAAG,CACRf,UACE,QACA,CAAC,qBAAqB,EAAEW,aAAa,iBAAiB,EAAEC,OAAOI,YAAY,CAAC,CAAC,CAAC;QAIlFV,iBAAiBM;QACjB,OAAOA,OAAOH,UAAU;IAC1B;IAEA,MAAMQ,qBAAiE,OAAOC;QAC5E,IAAIX,gBAAgB,CAACW,cAAc,EAAE;YACnC,OAAOX,gBAAgB,CAACW,cAAc,EAAET;QAC1C;QACA,MAAMU,WAAW,MAAMX;QACvB,IAAI,CAACW,UAAU;YACb,MAAM,IAAIL,MAAM;QAClB;QAEA,MAAMM,oBAAoBD,SAASE,UAAU,CAACC,IAAI,CAChD,CAACC,YAAcA,UAAUC,IAAI,KAAKN;QAGpC,IAAI,CAACE,mBAAmB;YACtB,MAAM,IAAIN,MAAM,CAAC,oBAAoB,EAAEI,cAAc,oBAAoB,CAAC;QAC5E;QAEA,MAAMO,sBAAsB5B,KAAKC,IAAI,CAACK,aAAaiB,kBAAkBM,MAAM;QAC3E,MAAMd,SAAS,MAAMC,cAAoCY;QACzD,IAAI,CAACb,QAAQ;YACX,MAAM,IAAIE,MAAM,CAAC,0BAA0B,EAAEW,oBAAoB,iBAAiB,CAAC;QACrF;QACAlB,gBAAgB,CAACW,cAAc,GAAGN;QAClC,OAAOA,OAAOH,UAAU;IAC1B;IACA,OAAO;QACLD;QACAS;IACF;AACF,EAAC;AAED,eAAeJ,cAAiBc,QAAgB;IAC9C,IAAIC;IACJ,IAAI;QACFA,QAAQ,MAAMhC,KAAK+B;IACrB,EAAE,OAAM;QACN,sBAAsB;QACtB,OAAOE;IACT;IACA,MAAMC,UAAU,MAAMnC,SAASgC,UAAU;IACzC,MAAMX,eAAeY,MAAMG,KAAK,CAACC,WAAW;IAC5C,MAAMC,OAAOC,KAAKC,KAAK,CAACL;IACxB,IAAI,CAACG,MAAM;QACT,MAAM,IAAInB,MAAM,CAAC,WAAW,EAAEa,SAAS,YAAY,CAAC;IACtD;IACA,OAAO;QACLX;QACAP,YAAYwB;QACZpC,MAAM8B;IACR;AACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function getDatasetsOutString(datasets) {
|
|
2
|
+
return datasets.length === 1 ? `dataset "${datasets[0]}"` : `datasets ${getStringArrayOutString(datasets)}`;
|
|
3
|
+
}
|
|
4
|
+
function getStringArrayOutString(array) {
|
|
5
|
+
return `[${array.map((d)=>`"${d}"`).join(',')}]`;
|
|
6
|
+
}
|
|
7
|
+
export function getStringList(array) {
|
|
8
|
+
return array.map((s)=>`- "${s}"`).join('\n');
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=schemaStoreOutStrings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/schema/utils/schemaStoreOutStrings.ts"],"sourcesContent":["export function getDatasetsOutString(datasets: string[]) {\n return datasets.length === 1\n ? `dataset \"${datasets[0]}\"`\n : `datasets ${getStringArrayOutString(datasets)}`\n}\n\nfunction getStringArrayOutString(array: string[]) {\n return `[${array.map((d) => `\"${d}\"`).join(',')}]`\n}\n\nexport function getStringList(array: string[]) {\n return array.map((s) => `- \"${s}\"`).join('\\n')\n}\n"],"names":["getDatasetsOutString","datasets","length","getStringArrayOutString","array","map","d","join","getStringList","s"],"mappings":"AAAA,OAAO,SAASA,qBAAqBC,QAAkB;IACrD,OAAOA,SAASC,MAAM,KAAK,IACvB,CAAC,SAAS,EAAED,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAC1B,CAAC,SAAS,EAAEE,wBAAwBF,WAAW;AACrD;AAEA,SAASE,wBAAwBC,KAAe;IAC9C,OAAO,CAAC,CAAC,EAAEA,MAAMC,GAAG,CAAC,CAACC,IAAM,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAEC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD;AAEA,OAAO,SAASC,cAAcJ,KAAe;IAC3C,OAAOA,MAAMC,GAAG,CAAC,CAACI,IAAM,CAAC,GAAG,EAAEA,EAAE,CAAC,CAAC,EAAEF,IAAI,CAAC;AAC3C"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { CLIError } from '@oclif/core/errors';
|
|
2
|
+
import { uniqBy } from '../../../util/uniqBy.js';
|
|
3
|
+
import { isDefined } from '../../manifest/schemaTypeHelpers.js';
|
|
4
|
+
import { SANITY_WORKSPACE_SCHEMA_ID_PREFIX } from '../../manifest/types.js';
|
|
5
|
+
const validForIdChars = 'a-zA-Z0-9._-';
|
|
6
|
+
const validForIdPattern = new RegExp(`^[${validForIdChars}]+$`);
|
|
7
|
+
//no periods allowed in workspaceName or tag in ids
|
|
8
|
+
export const validForNamesChars = 'a-zA-Z0-9_-';
|
|
9
|
+
export const validForNamesPattern = new RegExp(`^[${validForNamesChars}]+$`);
|
|
10
|
+
const requiredInId = SANITY_WORKSPACE_SCHEMA_ID_PREFIX.replaceAll(/[.]/g, String.raw`\.`);
|
|
11
|
+
const idIdPatternString = String.raw`^${requiredInId}\.([${validForNamesChars}]+)`;
|
|
12
|
+
const baseIdPattern = new RegExp(`${idIdPatternString}$`);
|
|
13
|
+
const taggedIdIdPattern = new RegExp(String.raw`${idIdPatternString}\.tag\.([${validForNamesChars}]+)$`);
|
|
14
|
+
export class FlagValidationError extends Error {
|
|
15
|
+
constructor(message){
|
|
16
|
+
super(message);
|
|
17
|
+
this.name = 'FlagValidationError';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function parseIds(ids) {
|
|
21
|
+
if (!ids) {
|
|
22
|
+
throw new CLIError('ids argument is empty');
|
|
23
|
+
}
|
|
24
|
+
const errors = [];
|
|
25
|
+
const parsedIds = ids.split(',').map((id)=>id.trim()).filter((id)=>!!id).map((id)=>parseWorkspaceSchemaId(errors, id)).filter((item)=>isDefined(item));
|
|
26
|
+
if (errors.length > 0) {
|
|
27
|
+
throw new CLIError(`Invalid arguments:\n${errors.map((error)=>` - ${error}`).join('\n')}`);
|
|
28
|
+
}
|
|
29
|
+
if (parsedIds.length === 0) {
|
|
30
|
+
throw new CLIError(`ids contains no valid id strings`);
|
|
31
|
+
}
|
|
32
|
+
const uniqueIds = uniqBy(parsedIds, 'schemaId');
|
|
33
|
+
if (uniqueIds.length < parsedIds.length) {
|
|
34
|
+
throw new CLIError(`ids contains duplicates`);
|
|
35
|
+
}
|
|
36
|
+
return uniqueIds;
|
|
37
|
+
}
|
|
38
|
+
export function parseWorkspaceSchemaId(errors, id) {
|
|
39
|
+
if (id === undefined) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (!id) {
|
|
43
|
+
errors.push('id argument is empty');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const trimmedId = id.trim();
|
|
47
|
+
if (!validForIdPattern.test(trimmedId)) {
|
|
48
|
+
errors.push(`id can only contain characters in [${validForIdChars}] but found: "${trimmedId}"`);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (trimmedId.startsWith('-')) {
|
|
52
|
+
errors.push(`id cannot start with - (dash) but found: "${trimmedId}"`);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (/\.\./g.test(trimmedId)) {
|
|
56
|
+
errors.push(`id cannot have consecutive . (period) characters, but found: "${trimmedId}"`);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const [, workspace] = trimmedId.match(taggedIdIdPattern) ?? trimmedId.match(baseIdPattern) ?? [];
|
|
60
|
+
if (!workspace) {
|
|
61
|
+
errors.push([
|
|
62
|
+
`id must either match ${SANITY_WORKSPACE_SCHEMA_ID_PREFIX}.<workspaceName> `,
|
|
63
|
+
`or ${SANITY_WORKSPACE_SCHEMA_ID_PREFIX}.<workspaceName>.tag.<tag> but found: "${trimmedId}". `,
|
|
64
|
+
`Note that workspace name characters not in [${validForNamesChars}] has to be replaced with _ for schema id.`
|
|
65
|
+
].join(''));
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
schemaId: trimmedId,
|
|
70
|
+
workspace
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
*
|
|
75
|
+
* @param tag - The tag to parse
|
|
76
|
+
* Throws an error if the tag is empty
|
|
77
|
+
* Throws an error if the tag contains a period
|
|
78
|
+
* Throws an error if the tag starts with a dash
|
|
79
|
+
* Returns the parsed tag
|
|
80
|
+
*/ export async function parseTag(tag) {
|
|
81
|
+
if (tag === undefined) {
|
|
82
|
+
return tag;
|
|
83
|
+
}
|
|
84
|
+
if (!tag) {
|
|
85
|
+
throw new CLIError('tag argument is empty');
|
|
86
|
+
}
|
|
87
|
+
if (tag.includes('.')) {
|
|
88
|
+
throw new CLIError(`tag cannot contain . (period), but was: "${tag}"`);
|
|
89
|
+
}
|
|
90
|
+
if (!validForNamesPattern.test(tag)) {
|
|
91
|
+
throw new CLIError(`tag can only contain characters in [${validForNamesChars}], but was: "${tag}"`);
|
|
92
|
+
}
|
|
93
|
+
if (tag.startsWith('-')) {
|
|
94
|
+
throw new CLIError(`tag cannot start with - (dash) but was: "${tag}"`);
|
|
95
|
+
}
|
|
96
|
+
return tag;
|
|
97
|
+
}
|
|
98
|
+
function getProjectIdMismatchMessage(workspace, operation) {
|
|
99
|
+
return `No permissions to ${operation} schema for workspace "${workspace.name}" with projectId "${workspace.projectId}"`;
|
|
100
|
+
}
|
|
101
|
+
export function filterLogReadProjectIdMismatch(workspace, projectId, output) {
|
|
102
|
+
const canRead = workspace.projectId === projectId;
|
|
103
|
+
if (!canRead) output.warn(`${getProjectIdMismatchMessage(workspace, 'read')} – ignoring it.`);
|
|
104
|
+
return canRead;
|
|
105
|
+
}
|
|
106
|
+
export const SCHEMA_PERMISSION_HELP_TEXT = 'For multi-project workspaces, set SANITY_AUTH_TOKEN environment variable to a token with access to the workspace projects.';
|
|
107
|
+
|
|
108
|
+
//# sourceMappingURL=schemaStoreValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/schema/utils/schemaStoreValidation.ts"],"sourcesContent":["import {CLIError} from '@oclif/core/errors'\nimport {type Output} from '@sanity/cli-core'\n\nimport {uniqBy} from '../../../util/uniqBy.js'\nimport {isDefined} from '../../manifest/schemaTypeHelpers.js'\nimport {SANITY_WORKSPACE_SCHEMA_ID_PREFIX} from '../../manifest/types.js'\n\nconst validForIdChars = 'a-zA-Z0-9._-'\nconst validForIdPattern = new RegExp(`^[${validForIdChars}]+$`)\n\n//no periods allowed in workspaceName or tag in ids\nexport const validForNamesChars = 'a-zA-Z0-9_-'\nexport const validForNamesPattern = new RegExp(`^[${validForNamesChars}]+$`)\n\nconst requiredInId = SANITY_WORKSPACE_SCHEMA_ID_PREFIX.replaceAll(/[.]/g, String.raw`\\.`)\n\nconst idIdPatternString = String.raw`^${requiredInId}\\.([${validForNamesChars}]+)`\nconst baseIdPattern = new RegExp(`${idIdPatternString}$`)\nconst taggedIdIdPattern = new RegExp(\n String.raw`${idIdPatternString}\\.tag\\.([${validForNamesChars}]+)$`,\n)\n\nexport class FlagValidationError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'FlagValidationError'\n }\n}\n\nexport interface WorkspaceSchemaId {\n schemaId: string\n workspace: string\n}\n\nexport function parseIds(ids?: string): WorkspaceSchemaId[] {\n if (!ids) {\n throw new CLIError('ids argument is empty')\n }\n\n const errors: string[] = []\n\n const parsedIds = ids\n .split(',')\n .map((id) => id.trim())\n .filter((id) => !!id)\n .map((id) => parseWorkspaceSchemaId(errors, id))\n .filter((item) => isDefined(item))\n\n if (errors.length > 0) {\n throw new CLIError(`Invalid arguments:\\n${errors.map((error) => ` - ${error}`).join('\\n')}`)\n }\n\n if (parsedIds.length === 0) {\n throw new CLIError(`ids contains no valid id strings`)\n }\n\n const uniqueIds = uniqBy(parsedIds, 'schemaId' satisfies keyof (typeof parsedIds)[number])\n if (uniqueIds.length < parsedIds.length) {\n throw new CLIError(`ids contains duplicates`)\n }\n\n return uniqueIds\n}\n\nexport function parseWorkspaceSchemaId(errors: string[], id?: string) {\n if (id === undefined) {\n return\n }\n\n if (!id) {\n errors.push('id argument is empty')\n return\n }\n\n const trimmedId = id.trim()\n\n if (!validForIdPattern.test(trimmedId)) {\n errors.push(`id can only contain characters in [${validForIdChars}] but found: \"${trimmedId}\"`)\n return\n }\n\n if (trimmedId.startsWith('-')) {\n errors.push(`id cannot start with - (dash) but found: \"${trimmedId}\"`)\n return\n }\n\n if (/\\.\\./g.test(trimmedId)) {\n errors.push(`id cannot have consecutive . (period) characters, but found: \"${trimmedId}\"`)\n return\n }\n\n const [, workspace] = trimmedId.match(taggedIdIdPattern) ?? trimmedId.match(baseIdPattern) ?? []\n if (!workspace) {\n errors.push(\n [\n `id must either match ${SANITY_WORKSPACE_SCHEMA_ID_PREFIX}.<workspaceName> `,\n `or ${SANITY_WORKSPACE_SCHEMA_ID_PREFIX}.<workspaceName>.tag.<tag> but found: \"${trimmedId}\". `,\n `Note that workspace name characters not in [${validForNamesChars}] has to be replaced with _ for schema id.`,\n ].join(''),\n )\n return\n }\n return {\n schemaId: trimmedId,\n workspace,\n }\n}\n\n/**\n *\n * @param tag - The tag to parse\n * Throws an error if the tag is empty\n * Throws an error if the tag contains a period\n * Throws an error if the tag starts with a dash\n * Returns the parsed tag\n */\nexport async function parseTag(tag?: string) {\n if (tag === undefined) {\n return tag\n }\n\n if (!tag) {\n throw new CLIError('tag argument is empty')\n }\n\n if (tag.includes('.')) {\n throw new CLIError(`tag cannot contain . (period), but was: \"${tag}\"`)\n }\n\n if (!validForNamesPattern.test(tag)) {\n throw new CLIError(\n `tag can only contain characters in [${validForNamesChars}], but was: \"${tag}\"`,\n )\n }\n\n if (tag.startsWith('-')) {\n throw new CLIError(`tag cannot start with - (dash) but was: \"${tag}\"`)\n }\n\n return tag\n}\n\nfunction getProjectIdMismatchMessage(\n workspace: {name: string; projectId: string},\n operation: 'read' | 'write',\n) {\n return `No permissions to ${operation} schema for workspace \"${workspace.name}\" with projectId \"${workspace.projectId}\"`\n}\n\nexport function filterLogReadProjectIdMismatch(\n workspace: {name: string; projectId: string},\n projectId: string,\n output: Output,\n) {\n const canRead = workspace.projectId === projectId\n if (!canRead) output.warn(`${getProjectIdMismatchMessage(workspace, 'read')} – ignoring it.`)\n return canRead\n}\n\nexport const SCHEMA_PERMISSION_HELP_TEXT =\n 'For multi-project workspaces, set SANITY_AUTH_TOKEN environment variable to a token with access to the workspace projects.'\n"],"names":["CLIError","uniqBy","isDefined","SANITY_WORKSPACE_SCHEMA_ID_PREFIX","validForIdChars","validForIdPattern","RegExp","validForNamesChars","validForNamesPattern","requiredInId","replaceAll","String","raw","idIdPatternString","baseIdPattern","taggedIdIdPattern","FlagValidationError","Error","message","name","parseIds","ids","errors","parsedIds","split","map","id","trim","filter","parseWorkspaceSchemaId","item","length","error","join","uniqueIds","undefined","push","trimmedId","test","startsWith","workspace","match","schemaId","parseTag","tag","includes","getProjectIdMismatchMessage","operation","projectId","filterLogReadProjectIdMismatch","output","canRead","warn","SCHEMA_PERMISSION_HELP_TEXT"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/schema/utils/uniqByProjectIdDataset.ts"],"sourcesContent":["import {uniqBy} from '../../../util/uniqBy.js'\nimport {type ManifestWorkspaceFile} from '../../manifest/types'\n\nexport function uniqByProjectIdDataset(workspaces: ManifestWorkspaceFile[]) {\n return uniqBy(\n workspaces.map((w) => ({\n ...w,\n key: `${w.projectId}-${w.dataset}`,\n })),\n 'key',\n )\n}\n"],"names":["uniqBy","uniqByProjectIdDataset","workspaces","map","w","key","projectId","dataset"],"mappings":"AAAA,SAAQA,MAAM,QAAO,0BAAyB;AAG9C,OAAO,SAASC,uBAAuBC,UAAmC;IACxE,OAAOF,OACLE,WAAWC,GAAG,CAAC,CAACC,IAAO,CAAA;YACrB,GAAGA,CAAC;YACJC,KAAK,GAAGD,EAAEE,SAAS,CAAC,CAAC,EAAEF,EAAEG,OAAO,EAAE;QACpC,CAAA,IACA;AAEJ"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SANITY_WORKSPACE_SCHEMA_ID_PREFIX } from '../../manifest/types.js';
|
|
2
|
+
import { validForNamesChars, validForNamesPattern } from './schemaStoreValidation.js';
|
|
3
|
+
export function getWorkspaceSchemaId(args) {
|
|
4
|
+
const { tag, workspaceName: rawWorkspaceName } = args;
|
|
5
|
+
let workspaceName = rawWorkspaceName;
|
|
6
|
+
let idWarning;
|
|
7
|
+
// The HTTP API replaces periods with _ in the workspace name, so the CLI should too
|
|
8
|
+
if (!validForNamesPattern.test(workspaceName)) {
|
|
9
|
+
workspaceName = workspaceName.replaceAll(new RegExp(`[^${validForNamesChars}]`, 'g'), '_');
|
|
10
|
+
idWarning = [
|
|
11
|
+
`Workspace "${rawWorkspaceName}" contains characters unsupported by schema _id [${validForNamesChars}], they will be replaced with _.`,
|
|
12
|
+
'This could lead duplicate schema ids: consider renaming your workspace.'
|
|
13
|
+
].join('\n');
|
|
14
|
+
}
|
|
15
|
+
const safeBaseId = `${SANITY_WORKSPACE_SCHEMA_ID_PREFIX}.${workspaceName}`;
|
|
16
|
+
return {
|
|
17
|
+
idWarning,
|
|
18
|
+
safeBaseId,
|
|
19
|
+
safeTaggedId: `${safeBaseId}${tag ? `.${tag}` : ''}`
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=workspaceSchemaId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/schema/utils/workspaceSchemaId.ts"],"sourcesContent":["import {\n type DefaultWorkspaceSchemaId,\n SANITY_WORKSPACE_SCHEMA_ID_PREFIX,\n type WorkspaceSchemaId,\n} from '../../manifest/types.js'\nimport {validForNamesChars, validForNamesPattern} from './schemaStoreValidation.js'\n\nexport function getWorkspaceSchemaId(args: {tag?: string; workspaceName: string}) {\n const {tag, workspaceName: rawWorkspaceName} = args\n\n let workspaceName = rawWorkspaceName\n let idWarning: string | undefined\n\n // The HTTP API replaces periods with _ in the workspace name, so the CLI should too\n if (!validForNamesPattern.test(workspaceName)) {\n workspaceName = workspaceName.replaceAll(new RegExp(`[^${validForNamesChars}]`, 'g'), '_')\n idWarning = [\n `Workspace \"${rawWorkspaceName}\" contains characters unsupported by schema _id [${validForNamesChars}], they will be replaced with _.`,\n 'This could lead duplicate schema ids: consider renaming your workspace.',\n ].join('\\n')\n }\n\n const safeBaseId: DefaultWorkspaceSchemaId = `${SANITY_WORKSPACE_SCHEMA_ID_PREFIX}.${workspaceName}`\n return {\n idWarning,\n safeBaseId,\n safeTaggedId: `${safeBaseId}${tag ? `.${tag}` : ''}` satisfies WorkspaceSchemaId,\n }\n}\n"],"names":["SANITY_WORKSPACE_SCHEMA_ID_PREFIX","validForNamesChars","validForNamesPattern","getWorkspaceSchemaId","args","tag","workspaceName","rawWorkspaceName","idWarning","test","replaceAll","RegExp","join","safeBaseId","safeTaggedId"],"mappings":"AAAA,SAEEA,iCAAiC,QAE5B,0BAAyB;AAChC,SAAQC,kBAAkB,EAAEC,oBAAoB,QAAO,6BAA4B;AAEnF,OAAO,SAASC,qBAAqBC,IAA2C;IAC9E,MAAM,EAACC,GAAG,EAAEC,eAAeC,gBAAgB,EAAC,GAAGH;IAE/C,IAAIE,gBAAgBC;IACpB,IAAIC;IAEJ,oFAAoF;IACpF,IAAI,CAACN,qBAAqBO,IAAI,CAACH,gBAAgB;QAC7CA,gBAAgBA,cAAcI,UAAU,CAAC,IAAIC,OAAO,CAAC,EAAE,EAAEV,mBAAmB,CAAC,CAAC,EAAE,MAAM;QACtFO,YAAY;YACV,CAAC,WAAW,EAAED,iBAAiB,iDAAiD,EAAEN,mBAAmB,gCAAgC,CAAC;YACtI;SACD,CAACW,IAAI,CAAC;IACT;IAEA,MAAMC,aAAuC,GAAGb,kCAAkC,CAAC,EAAEM,eAAe;IACpG,OAAO;QACLE;QACAK;QACAC,cAAc,GAAGD,aAAaR,MAAM,CAAC,CAAC,EAAEA,KAAK,GAAG,IAAI;IACtD;AACF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { writeFileSync } from 'node:fs';
|
|
2
|
+
import { studioWorkerTask } from '@sanity/cli-core';
|
|
3
|
+
import { logSymbols, spinner } from '@sanity/cli-core/ux';
|
|
4
|
+
import { formatSchemaValidation, getAggregatedSeverity } from './formatSchemaValidation.js';
|
|
5
|
+
import { generateMetafile } from './metafile.js';
|
|
6
|
+
export async function validateAction(options) {
|
|
7
|
+
const { debugMetafilePath, format, level, output, workDir, workspace } = options;
|
|
8
|
+
let spin;
|
|
9
|
+
if (format === 'pretty') {
|
|
10
|
+
spin = spinner(workspace ? `Validating schema from workspace '${workspace}'…` : 'Validating schema…').start();
|
|
11
|
+
}
|
|
12
|
+
const { serializedDebug, validation } = await studioWorkerTask(new URL('validateSchema.worker.js', import.meta.url), {
|
|
13
|
+
name: 'validateSchema',
|
|
14
|
+
studioRootPath: workDir,
|
|
15
|
+
workerData: {
|
|
16
|
+
debugSerialize: Boolean(debugMetafilePath),
|
|
17
|
+
level,
|
|
18
|
+
workDir,
|
|
19
|
+
workspace: workspace
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const problems = validation.flatMap((group)=>group.problems);
|
|
23
|
+
const errorCount = problems.filter((problem)=>problem.severity === 'error').length;
|
|
24
|
+
const warningCount = problems.filter((problem)=>problem.severity === 'warning').length;
|
|
25
|
+
const overallSeverity = getAggregatedSeverity(validation);
|
|
26
|
+
const didFail = overallSeverity === 'error';
|
|
27
|
+
if (debugMetafilePath && !didFail) {
|
|
28
|
+
if (!serializedDebug) throw new Error('serializedDebug should always be produced');
|
|
29
|
+
const metafile = generateMetafile(serializedDebug);
|
|
30
|
+
writeFileSync(debugMetafilePath, JSON.stringify(metafile), 'utf8');
|
|
31
|
+
}
|
|
32
|
+
switch(format){
|
|
33
|
+
case 'json':
|
|
34
|
+
{
|
|
35
|
+
output.log(JSON.stringify(validation));
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
case 'ndjson':
|
|
39
|
+
{
|
|
40
|
+
for (const group of validation){
|
|
41
|
+
output.log(JSON.stringify(group));
|
|
42
|
+
}
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
default:
|
|
46
|
+
{
|
|
47
|
+
spin?.succeed('Validated schema');
|
|
48
|
+
output.log(`\nValidation results:`);
|
|
49
|
+
output.log(`${logSymbols.error} Errors: ${errorCount.toLocaleString('en-US')} error${errorCount === 1 ? '' : 's'}`);
|
|
50
|
+
if (level !== 'error') {
|
|
51
|
+
output.log(`${logSymbols.warning} Warnings: ${warningCount.toLocaleString('en-US')} warning${warningCount === 1 ? '' : 's'}`);
|
|
52
|
+
}
|
|
53
|
+
output.log();
|
|
54
|
+
output.log(formatSchemaValidation(validation));
|
|
55
|
+
if (debugMetafilePath) {
|
|
56
|
+
output.log();
|
|
57
|
+
if (didFail) {
|
|
58
|
+
output.log(`${logSymbols.info} Metafile not written due to validation errors`);
|
|
59
|
+
} else {
|
|
60
|
+
output.log(`${logSymbols.info} Metafile written to: ${debugMetafilePath}`);
|
|
61
|
+
output.log(` This can be analyzed at https://esbuild.github.io/analyze/`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (didFail) {
|
|
67
|
+
throw new Error('Schema validation failed');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=validateAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/schema/validateAction.ts"],"sourcesContent":["import {writeFileSync} from 'node:fs'\n\nimport {Output, studioWorkerTask} from '@sanity/cli-core'\nimport {logSymbols, spinner} from '@sanity/cli-core/ux'\n\nimport {formatSchemaValidation, getAggregatedSeverity} from './formatSchemaValidation.js'\nimport {generateMetafile} from './metafile.js'\nimport {\n type ValidateSchemaWorkerData,\n type ValidateSchemaWorkerResult,\n} from './validateSchema.worker.js'\n\ninterface Options {\n output: Output\n workDir: string\n\n debugMetafilePath?: string\n format?: string\n level?: 'error' | 'warning'\n workspace?: string\n}\n\nexport async function validateAction(options: Options): Promise<void> {\n const {debugMetafilePath, format, level, output, workDir, workspace} = options\n\n let spin\n\n if (format === 'pretty') {\n spin = spinner(\n workspace ? `Validating schema from workspace '${workspace}'…` : 'Validating schema…',\n ).start()\n }\n\n const {serializedDebug, validation} = await studioWorkerTask<ValidateSchemaWorkerResult>(\n new URL('validateSchema.worker.js', import.meta.url),\n {\n name: 'validateSchema',\n studioRootPath: workDir,\n workerData: {\n debugSerialize: Boolean(debugMetafilePath),\n level,\n workDir,\n workspace: workspace,\n } satisfies ValidateSchemaWorkerData,\n },\n )\n\n const problems = validation.flatMap((group) => group.problems)\n const errorCount = problems.filter((problem) => problem.severity === 'error').length\n const warningCount = problems.filter((problem) => problem.severity === 'warning').length\n\n const overallSeverity = getAggregatedSeverity(validation)\n const didFail = overallSeverity === 'error'\n\n if (debugMetafilePath && !didFail) {\n if (!serializedDebug) throw new Error('serializedDebug should always be produced')\n const metafile = generateMetafile(serializedDebug)\n writeFileSync(debugMetafilePath, JSON.stringify(metafile), 'utf8')\n }\n\n switch (format) {\n case 'json': {\n output.log(JSON.stringify(validation))\n break\n }\n case 'ndjson': {\n for (const group of validation) {\n output.log(JSON.stringify(group))\n }\n break\n }\n default: {\n spin?.succeed('Validated schema')\n output.log(`\\nValidation results:`)\n output.log(\n `${logSymbols.error} Errors: ${errorCount.toLocaleString('en-US')} error${\n errorCount === 1 ? '' : 's'\n }`,\n )\n if (level !== 'error') {\n output.log(\n `${logSymbols.warning} Warnings: ${warningCount.toLocaleString('en-US')} warning${\n warningCount === 1 ? '' : 's'\n }`,\n )\n }\n output.log()\n\n output.log(formatSchemaValidation(validation))\n\n if (debugMetafilePath) {\n output.log()\n if (didFail) {\n output.log(`${logSymbols.info} Metafile not written due to validation errors`)\n } else {\n output.log(`${logSymbols.info} Metafile written to: ${debugMetafilePath}`)\n output.log(` This can be analyzed at https://esbuild.github.io/analyze/`)\n }\n }\n }\n }\n\n if (didFail) {\n throw new Error('Schema validation failed')\n }\n}\n"],"names":["writeFileSync","studioWorkerTask","logSymbols","spinner","formatSchemaValidation","getAggregatedSeverity","generateMetafile","validateAction","options","debugMetafilePath","format","level","output","workDir","workspace","spin","start","serializedDebug","validation","URL","url","name","studioRootPath","workerData","debugSerialize","Boolean","problems","flatMap","group","errorCount","filter","problem","severity","length","warningCount","overallSeverity","didFail","Error","metafile","JSON","stringify","log","succeed","error","toLocaleString","warning","info"],"mappings":"AAAA,SAAQA,aAAa,QAAO,UAAS;AAErC,SAAgBC,gBAAgB,QAAO,mBAAkB;AACzD,SAAQC,UAAU,EAAEC,OAAO,QAAO,sBAAqB;AAEvD,SAAQC,sBAAsB,EAAEC,qBAAqB,QAAO,8BAA6B;AACzF,SAAQC,gBAAgB,QAAO,gBAAe;AAgB9C,OAAO,eAAeC,eAAeC,OAAgB;IACnD,MAAM,EAACC,iBAAiB,EAAEC,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAC,GAAGN;IAEvE,IAAIO;IAEJ,IAAIL,WAAW,UAAU;QACvBK,OAAOZ,QACLW,YAAY,CAAC,kCAAkC,EAAEA,UAAU,EAAE,CAAC,GAAG,sBACjEE,KAAK;IACT;IAEA,MAAM,EAACC,eAAe,EAAEC,UAAU,EAAC,GAAG,MAAMjB,iBAC1C,IAAIkB,IAAI,4BAA4B,YAAYC,GAAG,GACnD;QACEC,MAAM;QACNC,gBAAgBT;QAChBU,YAAY;YACVC,gBAAgBC,QAAQhB;YACxBE;YACAE;YACAC,WAAWA;QACb;IACF;IAGF,MAAMY,WAAWR,WAAWS,OAAO,CAAC,CAACC,QAAUA,MAAMF,QAAQ;IAC7D,MAAMG,aAAaH,SAASI,MAAM,CAAC,CAACC,UAAYA,QAAQC,QAAQ,KAAK,SAASC,MAAM;IACpF,MAAMC,eAAeR,SAASI,MAAM,CAAC,CAACC,UAAYA,QAAQC,QAAQ,KAAK,WAAWC,MAAM;IAExF,MAAME,kBAAkB9B,sBAAsBa;IAC9C,MAAMkB,UAAUD,oBAAoB;IAEpC,IAAI1B,qBAAqB,CAAC2B,SAAS;QACjC,IAAI,CAACnB,iBAAiB,MAAM,IAAIoB,MAAM;QACtC,MAAMC,WAAWhC,iBAAiBW;QAClCjB,cAAcS,mBAAmB8B,KAAKC,SAAS,CAACF,WAAW;IAC7D;IAEA,OAAQ5B;QACN,KAAK;YAAQ;gBACXE,OAAO6B,GAAG,CAACF,KAAKC,SAAS,CAACtB;gBAC1B;YACF;QACA,KAAK;YAAU;gBACb,KAAK,MAAMU,SAASV,WAAY;oBAC9BN,OAAO6B,GAAG,CAACF,KAAKC,SAAS,CAACZ;gBAC5B;gBACA;YACF;QACA;YAAS;gBACPb,MAAM2B,QAAQ;gBACd9B,OAAO6B,GAAG,CAAC,CAAC,qBAAqB,CAAC;gBAClC7B,OAAO6B,GAAG,CACR,GAAGvC,WAAWyC,KAAK,CAAC,WAAW,EAAEd,WAAWe,cAAc,CAAC,SAAS,MAAM,EACxEf,eAAe,IAAI,KAAK,KACxB;gBAEJ,IAAIlB,UAAU,SAAS;oBACrBC,OAAO6B,GAAG,CACR,GAAGvC,WAAW2C,OAAO,CAAC,WAAW,EAAEX,aAAaU,cAAc,CAAC,SAAS,QAAQ,EAC9EV,iBAAiB,IAAI,KAAK,KAC1B;gBAEN;gBACAtB,OAAO6B,GAAG;gBAEV7B,OAAO6B,GAAG,CAACrC,uBAAuBc;gBAElC,IAAIT,mBAAmB;oBACrBG,OAAO6B,GAAG;oBACV,IAAIL,SAAS;wBACXxB,OAAO6B,GAAG,CAAC,GAAGvC,WAAW4C,IAAI,CAAC,8CAA8C,CAAC;oBAC/E,OAAO;wBACLlC,OAAO6B,GAAG,CAAC,GAAGvC,WAAW4C,IAAI,CAAC,sBAAsB,EAAErC,mBAAmB;wBACzEG,OAAO6B,GAAG,CAAC,CAAC,4DAA4D,CAAC;oBAC3E;gBACF;YACF;IACF;IAEA,IAAIL,SAAS;QACX,MAAM,IAAIC,MAAM;IAClB;AACF"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { isMainThread, parentPort, workerData } from 'node:worker_threads';
|
|
2
|
+
import { findStudioConfigPath, getStudioWorkspaces } from '@sanity/cli-core';
|
|
3
|
+
import { DescriptorConverter } from '@sanity/schema/_internal';
|
|
4
|
+
import { getWorkspace } from '../../util/getWorkspace.js';
|
|
5
|
+
const { debugSerialize, level = 'warning', workDir, workspace: workspaceName } = workerData;
|
|
6
|
+
async function main() {
|
|
7
|
+
if (isMainThread || !parentPort) {
|
|
8
|
+
throw new Error('This module must be run as a worker thread');
|
|
9
|
+
}
|
|
10
|
+
try {
|
|
11
|
+
const configPath = await findStudioConfigPath(workDir);
|
|
12
|
+
const workspaces = await getStudioWorkspaces(configPath);
|
|
13
|
+
const workspace = getWorkspace(workspaces, workspaceName);
|
|
14
|
+
const schema = workspace.schema;
|
|
15
|
+
parentPort?.postMessage(await resultFromSchema(schema));
|
|
16
|
+
} catch (err) {
|
|
17
|
+
if (isSchemaError(err)) {
|
|
18
|
+
parentPort?.postMessage(await resultFromSchema(err.schema));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
throw err;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async function resultFromSchema(schema) {
|
|
25
|
+
let serializedDebug;
|
|
26
|
+
if (debugSerialize) {
|
|
27
|
+
const conv = new DescriptorConverter();
|
|
28
|
+
const set = await conv.get(schema);
|
|
29
|
+
serializedDebug = getSerializedSchemaDebug(set);
|
|
30
|
+
}
|
|
31
|
+
const validation = schema._validation ?? [];
|
|
32
|
+
const result = {
|
|
33
|
+
serializedDebug,
|
|
34
|
+
validation: validation.map((group)=>({
|
|
35
|
+
...group,
|
|
36
|
+
problems: group.problems.filter((problem)=>level === 'error' ? problem.severity === 'error' : true)
|
|
37
|
+
})).filter((group)=>group.problems.length)
|
|
38
|
+
};
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
function getSerializedSchemaDebug(set) {
|
|
42
|
+
let size = 0;
|
|
43
|
+
const types = {};
|
|
44
|
+
const hoisted = {};
|
|
45
|
+
for (const [id, value] of Object.entries(set.objectValues)){
|
|
46
|
+
const descType = typeof value.type === 'string' ? value.type : '<unknown>';
|
|
47
|
+
switch(descType){
|
|
48
|
+
case 'sanity.schema.hoisted':
|
|
49
|
+
{
|
|
50
|
+
const key = typeof value.key === 'string' ? value.key : id;
|
|
51
|
+
// The `hoisted` can technically hoist _anything_,
|
|
52
|
+
// but we detect the common case of field + array element.
|
|
53
|
+
if (isEncodableObject(value.value) && isEncodableObject(value.value.typeDef)) {
|
|
54
|
+
const debug = getSerializedTypeDebug(value.value.typeDef);
|
|
55
|
+
hoisted[key] = debug;
|
|
56
|
+
size += debug.size;
|
|
57
|
+
}
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
case 'sanity.schema.namedType':
|
|
61
|
+
{
|
|
62
|
+
const typeName = typeof value.name === 'string' ? value.name : id;
|
|
63
|
+
if (isEncodableObject(value.typeDef)) {
|
|
64
|
+
const debug = getSerializedTypeDebug(value.typeDef);
|
|
65
|
+
types[typeName] = debug;
|
|
66
|
+
size += debug.size;
|
|
67
|
+
}
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
default:
|
|
71
|
+
}
|
|
72
|
+
size += JSON.stringify(value).length;
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
hoisted,
|
|
76
|
+
size,
|
|
77
|
+
types
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function isEncodableObject(val) {
|
|
81
|
+
return typeof val === 'object' && val !== null && !Array.isArray(val);
|
|
82
|
+
}
|
|
83
|
+
function isSchemaError(err) {
|
|
84
|
+
return err !== null && typeof err === 'object' && 'schema' in err && err.schema !== null && typeof err.schema === 'object' && '_validation' in err.schema;
|
|
85
|
+
}
|
|
86
|
+
function getSerializedTypeDebug(typeDef) {
|
|
87
|
+
const ext = typeof typeDef.extends === 'string' ? typeDef.extends : '<unknown>';
|
|
88
|
+
let fields;
|
|
89
|
+
let of;
|
|
90
|
+
if (Array.isArray(typeDef.fields)) {
|
|
91
|
+
fields = {};
|
|
92
|
+
for (const field of typeDef.fields){
|
|
93
|
+
if (!isEncodableObject(field)) continue;
|
|
94
|
+
const name = field.name;
|
|
95
|
+
const fieldTypeDef = field.typeDef;
|
|
96
|
+
if (typeof name !== 'string' || !isEncodableObject(fieldTypeDef)) continue;
|
|
97
|
+
fields[name] = getSerializedTypeDebug(fieldTypeDef);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (Array.isArray(typeDef.of)) {
|
|
101
|
+
of = {};
|
|
102
|
+
for (const field of typeDef.of){
|
|
103
|
+
if (!isEncodableObject(field)) continue;
|
|
104
|
+
const name = field.name;
|
|
105
|
+
const arrayTypeDef = field.typeDef;
|
|
106
|
+
if (typeof name !== 'string' || !isEncodableObject(arrayTypeDef)) continue;
|
|
107
|
+
of[name] = getSerializedTypeDebug(arrayTypeDef);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
extends: ext,
|
|
112
|
+
fields,
|
|
113
|
+
of,
|
|
114
|
+
size: JSON.stringify(typeDef).length
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
await main();
|
|
118
|
+
// Explicitly exit the process to avoid any dangling references from keeping
|
|
119
|
+
// the process alive after resolving it's main task
|
|
120
|
+
setImmediate(()=>{
|
|
121
|
+
process.exit(1);
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
//# sourceMappingURL=validateSchema.worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/schema/validateSchema.worker.ts"],"sourcesContent":["import {isMainThread, parentPort, workerData} from 'node:worker_threads'\n\nimport {findStudioConfigPath, getStudioWorkspaces} from '@sanity/cli-core'\nimport {\n type EncodableObject,\n type EncodableValue,\n type SetSynchronization,\n} from '@sanity/descriptors'\nimport {DescriptorConverter} from '@sanity/schema/_internal'\nimport {\n type Schema,\n type SchemaValidationProblem,\n type SchemaValidationProblemGroup,\n} from '@sanity/types'\n\nimport {getWorkspace} from '../../util/getWorkspace.js'\nimport {type SerializedSchemaDebug, type SerializedTypeDebug} from './types.js'\n\n/** @internal */\nexport interface ValidateSchemaWorkerData {\n workDir: string\n\n debugSerialize?: boolean\n level?: SchemaValidationProblem['severity']\n workspace?: string\n}\n\n/** @internal */\nexport interface ValidateSchemaWorkerResult {\n validation: SchemaValidationProblemGroup[]\n\n serializedDebug?: SerializedSchemaDebug\n}\n\nconst {\n debugSerialize,\n level = 'warning',\n workDir,\n workspace: workspaceName,\n} = workerData as ValidateSchemaWorkerData\n\nasync function main() {\n if (isMainThread || !parentPort) {\n throw new Error('This module must be run as a worker thread')\n }\n\n try {\n const configPath = await findStudioConfigPath(workDir)\n const workspaces = await getStudioWorkspaces(configPath)\n const workspace = getWorkspace(workspaces, workspaceName)\n const schema = workspace.schema\n parentPort?.postMessage(await resultFromSchema(schema))\n } catch (err: unknown) {\n if (isSchemaError(err)) {\n parentPort?.postMessage(await resultFromSchema(err.schema))\n return\n }\n\n throw err\n }\n}\n\nasync function resultFromSchema(schema: Schema): Promise<ValidateSchemaWorkerResult> {\n let serializedDebug: ValidateSchemaWorkerResult['serializedDebug']\n\n if (debugSerialize) {\n const conv = new DescriptorConverter()\n const set = await conv.get(schema)\n serializedDebug = getSerializedSchemaDebug(set)\n }\n\n const validation = schema._validation ?? []\n\n const result: ValidateSchemaWorkerResult = {\n serializedDebug,\n validation: validation\n .map((group) => ({\n ...group,\n problems: group.problems.filter((problem) =>\n level === 'error' ? problem.severity === 'error' : true,\n ),\n }))\n .filter((group) => group.problems.length),\n }\n\n return result\n}\n\nfunction getSerializedSchemaDebug(set: SetSynchronization<string>): SerializedSchemaDebug {\n let size = 0\n const types: Record<string, SerializedTypeDebug> = {}\n const hoisted: Record<string, SerializedTypeDebug> = {}\n\n for (const [id, value] of Object.entries(set.objectValues)) {\n const descType = typeof value.type === 'string' ? value.type : '<unknown>'\n switch (descType) {\n case 'sanity.schema.hoisted': {\n const key = typeof value.key === 'string' ? value.key : id\n // The `hoisted` can technically hoist _anything_,\n // but we detect the common case of field + array element.\n if (isEncodableObject(value.value) && isEncodableObject(value.value.typeDef)) {\n const debug = getSerializedTypeDebug(value.value.typeDef)\n hoisted[key] = debug\n size += debug.size\n }\n break\n }\n case 'sanity.schema.namedType': {\n const typeName = typeof value.name === 'string' ? value.name : id\n if (isEncodableObject(value.typeDef)) {\n const debug = getSerializedTypeDebug(value.typeDef)\n types[typeName] = debug\n size += debug.size\n }\n break\n }\n default:\n }\n size += JSON.stringify(value).length\n }\n\n return {\n hoisted,\n size,\n types,\n }\n}\n\nfunction isEncodableObject(val: EncodableValue | undefined): val is EncodableObject {\n return typeof val === 'object' && val !== null && !Array.isArray(val)\n}\n\nfunction isSchemaError(err: unknown): err is {schema: Schema} {\n return (\n err !== null &&\n typeof err === 'object' &&\n 'schema' in err &&\n err.schema !== null &&\n typeof err.schema === 'object' &&\n '_validation' in err.schema\n )\n}\n\nfunction getSerializedTypeDebug(typeDef: EncodableObject): SerializedTypeDebug {\n const ext = typeof typeDef.extends === 'string' ? typeDef.extends : '<unknown>'\n let fields: SerializedTypeDebug['fields']\n let of: SerializedTypeDebug['of']\n\n if (Array.isArray(typeDef.fields)) {\n fields = {}\n\n for (const field of typeDef.fields) {\n if (!isEncodableObject(field)) continue\n const name = field.name\n const fieldTypeDef = field.typeDef\n if (typeof name !== 'string' || !isEncodableObject(fieldTypeDef)) continue\n\n fields[name] = getSerializedTypeDebug(fieldTypeDef)\n }\n }\n\n if (Array.isArray(typeDef.of)) {\n of = {}\n\n for (const field of typeDef.of) {\n if (!isEncodableObject(field)) continue\n const name = field.name\n const arrayTypeDef = field.typeDef\n if (typeof name !== 'string' || !isEncodableObject(arrayTypeDef)) continue\n\n of[name] = getSerializedTypeDebug(arrayTypeDef)\n }\n }\n\n return {\n extends: ext,\n fields,\n of,\n size: JSON.stringify(typeDef).length,\n }\n}\n\nawait main()\n\n// Explicitly exit the process to avoid any dangling references from keeping\n// the process alive after resolving it's main task\nsetImmediate(() => {\n process.exit(1)\n})\n"],"names":["isMainThread","parentPort","workerData","findStudioConfigPath","getStudioWorkspaces","DescriptorConverter","getWorkspace","debugSerialize","level","workDir","workspace","workspaceName","main","Error","configPath","workspaces","schema","postMessage","resultFromSchema","err","isSchemaError","serializedDebug","conv","set","get","getSerializedSchemaDebug","validation","_validation","result","map","group","problems","filter","problem","severity","length","size","types","hoisted","id","value","Object","entries","objectValues","descType","type","key","isEncodableObject","typeDef","debug","getSerializedTypeDebug","typeName","name","JSON","stringify","val","Array","isArray","ext","extends","fields","of","field","fieldTypeDef","arrayTypeDef","setImmediate","process","exit"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function getLearnMoreMessage(status) {
|
|
2
|
+
const url = 'https://www.sanity.io/telemetry';
|
|
3
|
+
switch(status){
|
|
4
|
+
case 'granted':
|
|
5
|
+
{
|
|
6
|
+
return `Learn more about the data being collected here:\n${url}`;
|
|
7
|
+
}
|
|
8
|
+
default:
|
|
9
|
+
{
|
|
10
|
+
return `Learn more here:\n${url}`;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=getLearnMoreMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/telemetry/getLearnMoreMessage.ts"],"sourcesContent":["import {type ConsentInformation} from '@sanity/cli-core'\n\nexport function getLearnMoreMessage(status: ConsentInformation['status']): string {\n const url = 'https://www.sanity.io/telemetry'\n\n switch (status) {\n case 'granted': {\n return `Learn more about the data being collected here:\\n${url}`\n }\n default: {\n return `Learn more here:\\n${url}`\n }\n }\n}\n"],"names":["getLearnMoreMessage","status","url"],"mappings":"AAEA,OAAO,SAASA,oBAAoBC,MAAoC;IACtE,MAAMC,MAAM;IAEZ,OAAQD;QACN,KAAK;YAAW;gBACd,OAAO,CAAC,iDAAiD,EAAEC,KAAK;YAClE;QACA;YAAS;gBACP,OAAO,CAAC,kBAAkB,EAAEA,KAAK;YACnC;IACF;AACF"}
|