@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 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/graphql/helpers.ts"],"sourcesContent":["import {\n type ConvertedDocumentType,\n type ConvertedInterface,\n type ConvertedType,\n type ConvertedUnion,\n} from './types.js'\n\nexport function isUnion(\n type: ConvertedInterface | ConvertedType | ConvertedUnion,\n): type is ConvertedUnion {\n return type.kind === 'Union'\n}\n\nexport function isNonUnion(\n type: ConvertedInterface | ConvertedType | ConvertedUnion,\n): type is ConvertedType {\n return !isUnion(type) && 'type' in type\n}\n\nexport function isDocumentType(\n type: ConvertedInterface | ConvertedType | ConvertedUnion,\n): type is ConvertedDocumentType {\n return (\n isNonUnion(type) &&\n type.type === 'Object' &&\n Array.isArray(type.interfaces) &&\n type.interfaces.includes('Document')\n )\n}\n"],"names":["isUnion","type","kind","isNonUnion","isDocumentType","Array","isArray","interfaces","includes"],"mappings":"AAOA,OAAO,SAASA,QACdC,IAAyD;IAEzD,OAAOA,KAAKC,IAAI,KAAK;AACvB;AAEA,OAAO,SAASC,WACdF,IAAyD;IAEzD,OAAO,CAACD,QAAQC,SAAS,UAAUA;AACrC;AAEA,OAAO,SAASG,eACdH,IAAyD;IAEzD,OACEE,WAAWF,SACXA,KAAKA,IAAI,KAAK,YACdI,MAAMC,OAAO,CAACL,KAAKM,UAAU,KAC7BN,KAAKM,UAAU,CAACC,QAAQ,CAAC;AAE7B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { CLIError } from '@oclif/core/errors';
|
|
2
|
+
import { isInteractive } from '@sanity/cli-core';
|
|
3
|
+
import { confirm } from '@sanity/cli-core/ux';
|
|
4
|
+
import { oneline } from 'oneline';
|
|
5
|
+
import { graphqlDebug } from './graphqlDebug.js';
|
|
6
|
+
const LATEST_GENERATION = 'gen3';
|
|
7
|
+
export async function resolveApiGeneration({ currentGeneration, force, index, output, specifiedGeneration }) {
|
|
8
|
+
// a) If no API is currently deployed:
|
|
9
|
+
// use the specificed one from config, or use whichever generation is the latest
|
|
10
|
+
// b) If an API generation is specified explicitly:
|
|
11
|
+
// use the given one, but _prompt_ if it differs from the current one
|
|
12
|
+
// c) If no API generation is specified explicitly:
|
|
13
|
+
// use whichever is already deployed, but warn if differs from latest
|
|
14
|
+
if (!currentGeneration) {
|
|
15
|
+
const generation = specifiedGeneration || LATEST_GENERATION;
|
|
16
|
+
graphqlDebug('There is no current generation deployed, using %s (%s)', generation, specifiedGeneration ? 'specified' : 'default');
|
|
17
|
+
return generation;
|
|
18
|
+
}
|
|
19
|
+
if (specifiedGeneration && specifiedGeneration !== currentGeneration) {
|
|
20
|
+
if (!force && !isInteractive()) {
|
|
21
|
+
throw new CLIError(oneline`
|
|
22
|
+
Specified generation (${specifiedGeneration}) for API at index ${index} differs from the one currently deployed (${currentGeneration}).
|
|
23
|
+
Re-run the command with \`--force\` to force deployment.
|
|
24
|
+
`, {
|
|
25
|
+
exit: 1
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
output.warn(`Specified generation (${specifiedGeneration}) for API at index ${index} differs from the one currently deployed (${currentGeneration}).`);
|
|
29
|
+
const confirmDeploy = force || await confirm({
|
|
30
|
+
default: false,
|
|
31
|
+
message: 'Are you sure you want to deploy?'
|
|
32
|
+
});
|
|
33
|
+
return confirmDeploy ? specifiedGeneration : undefined;
|
|
34
|
+
}
|
|
35
|
+
if (specifiedGeneration) {
|
|
36
|
+
graphqlDebug('Using specified (%s) generation', specifiedGeneration);
|
|
37
|
+
return specifiedGeneration;
|
|
38
|
+
}
|
|
39
|
+
graphqlDebug('Using the currently deployed version (%s)', currentGeneration);
|
|
40
|
+
return currentGeneration;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=resolveApiGeneration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/graphql/resolveApiGeneration.ts"],"sourcesContent":["import {CLIError} from '@oclif/core/errors'\nimport {isInteractive, type Output} from '@sanity/cli-core'\nimport {confirm} from '@sanity/cli-core/ux'\nimport {oneline} from 'oneline'\n\nimport {graphqlDebug} from './graphqlDebug.js'\n\nconst LATEST_GENERATION = 'gen3'\n\nexport async function resolveApiGeneration({\n currentGeneration,\n force,\n index,\n output,\n specifiedGeneration,\n}: {\n currentGeneration?: string\n force?: boolean\n index: number\n output: Output\n specifiedGeneration?: string\n}): Promise<string | undefined> {\n // a) If no API is currently deployed:\n // use the specificed one from config, or use whichever generation is the latest\n // b) If an API generation is specified explicitly:\n // use the given one, but _prompt_ if it differs from the current one\n // c) If no API generation is specified explicitly:\n // use whichever is already deployed, but warn if differs from latest\n if (!currentGeneration) {\n const generation = specifiedGeneration || LATEST_GENERATION\n graphqlDebug(\n 'There is no current generation deployed, using %s (%s)',\n generation,\n specifiedGeneration ? 'specified' : 'default',\n )\n return generation\n }\n\n if (specifiedGeneration && specifiedGeneration !== currentGeneration) {\n if (!force && !isInteractive()) {\n throw new CLIError(\n oneline`\n Specified generation (${specifiedGeneration}) for API at index ${index} differs from the one currently deployed (${currentGeneration}).\n Re-run the command with \\`--force\\` to force deployment.\n `,\n {exit: 1},\n )\n }\n\n output.warn(\n `Specified generation (${specifiedGeneration}) for API at index ${index} differs from the one currently deployed (${currentGeneration}).`,\n )\n\n const confirmDeploy =\n force ||\n (await confirm({\n default: false,\n message: 'Are you sure you want to deploy?',\n }))\n\n return confirmDeploy ? specifiedGeneration : undefined\n }\n\n if (specifiedGeneration) {\n graphqlDebug('Using specified (%s) generation', specifiedGeneration)\n return specifiedGeneration\n }\n\n graphqlDebug('Using the currently deployed version (%s)', currentGeneration)\n return currentGeneration\n}\n"],"names":["CLIError","isInteractive","confirm","oneline","graphqlDebug","LATEST_GENERATION","resolveApiGeneration","currentGeneration","force","index","output","specifiedGeneration","generation","exit","warn","confirmDeploy","default","message","undefined"],"mappings":"AAAA,SAAQA,QAAQ,QAAO,qBAAoB;AAC3C,SAAQC,aAAa,QAAoB,mBAAkB;AAC3D,SAAQC,OAAO,QAAO,sBAAqB;AAC3C,SAAQC,OAAO,QAAO,UAAS;AAE/B,SAAQC,YAAY,QAAO,oBAAmB;AAE9C,MAAMC,oBAAoB;AAE1B,OAAO,eAAeC,qBAAqB,EACzCC,iBAAiB,EACjBC,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,mBAAmB,EAOpB;IACC,sCAAsC;IACtC,mFAAmF;IACnF,mDAAmD;IACnD,wEAAwE;IACxE,mDAAmD;IACnD,wEAAwE;IACxE,IAAI,CAACJ,mBAAmB;QACtB,MAAMK,aAAaD,uBAAuBN;QAC1CD,aACE,0DACAQ,YACAD,sBAAsB,cAAc;QAEtC,OAAOC;IACT;IAEA,IAAID,uBAAuBA,wBAAwBJ,mBAAmB;QACpE,IAAI,CAACC,SAAS,CAACP,iBAAiB;YAC9B,MAAM,IAAID,SACRG,OAAO,CAAC;8BACc,EAAEQ,oBAAoB,mBAAmB,EAAEF,MAAM,0CAA0C,EAAEF,kBAAkB;;MAEvI,CAAC,EACC;gBAACM,MAAM;YAAC;QAEZ;QAEAH,OAAOI,IAAI,CACT,CAAC,sBAAsB,EAAEH,oBAAoB,mBAAmB,EAAEF,MAAM,0CAA0C,EAAEF,kBAAkB,EAAE,CAAC;QAG3I,MAAMQ,gBACJP,SACC,MAAMN,QAAQ;YACbc,SAAS;YACTC,SAAS;QACX;QAEF,OAAOF,gBAAgBJ,sBAAsBO;IAC/C;IAEA,IAAIP,qBAAqB;QACvBP,aAAa,mCAAmCO;QAChD,OAAOA;IACT;IAEAP,aAAa,6CAA6CG;IAC1D,OAAOA;AACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/graphql/types.ts"],"sourcesContent":["import {type Schema} from '@sanity/types'\n\nexport const internal = Symbol('internal')\n\nexport interface Deprecation {\n deprecationReason: string\n}\n\nexport interface ApiSpecification {\n interfaces: ConvertedInterface[]\n types: (ConvertedType | ConvertedUnion)[]\n}\n\nexport interface GraphQLAPIConfig {\n /**\n * Dataset name for this API\n */\n dataset?: string\n\n /**\n * Suffix to use for generated filter types.\n *\n * Optional, Defaults to `Filter`.\n *\n */\n filterSuffix?: string\n\n /**\n * Generation of API to deploy\n *\n * Optional, defaults to `gen3` (which is the only option, currently)\n */\n generation?: 'gen1' | 'gen2' | 'gen3'\n\n /**\n * ID of GraphQL API. Only (currently) required when using the `--api` flag\n * for `sanity graphql deploy`, in order to only deploy a specific API.\n */\n id?: string\n\n /**\n * Whether or not to enable the GraphQL v2021-10-21 query semantics\n */\n nonNullDocumentFields?: boolean\n\n /**\n * Whether or not to enable the GraphQL Playground for this API\n *\n * Optional, defaults to `true` in development mode, `false` otherwise\n */\n playground?: boolean\n\n /**\n * Project ID for this API\n */\n projectId?: string\n\n /**\n * Name of source containing the schema to deploy, within the configured workspace\n *\n * Optional, defaults to `default` (eg the one used if no `name` is defined)\n */\n source?: string\n\n /**\n * API tag for this API - allows deploying multiple different APIs to a single dataset\n *\n * Optional, defaults to `default`\n */\n tag?: string\n\n /**\n * Name of workspace containing the schema to deploy\n *\n * Optional, defaults to `default` (eg the one used if no `name` is defined)\n */\n workspace?: string\n}\n\nexport interface DeployResponse {\n location: string\n}\n\ninterface ApiChange {\n description: string\n type: string\n}\n\nexport interface ValidationResponse {\n breakingChanges: ApiChange[]\n dangerousChanges: ApiChange[]\n validationError: string\n}\n\nexport interface SchemaDefinitionish {\n name: string\n type: string\n\n fields?: SchemaDefinitionish[]\n}\n\ninterface ResolvedSerializableProperties {\n dataset: string\n projectId: string\n schemaTypes: SchemaDefinitionish[]\n}\n\nexport interface ResolvedSourceProperties {\n dataset: string\n projectId: string\n schema: Schema\n}\n\nexport type TypeResolvedGraphQLAPI = Omit<GraphQLAPIConfig, 'source' | 'workspace'> &\n ResolvedSerializableProperties\n\nexport type ResolvedGraphQLAPI = Omit<GraphQLAPIConfig, 'source' | 'workspace'> &\n ResolvedSourceProperties\n\ninterface ConvertedNode {\n description: string\n fields: ConvertedFieldDefinition[]\n kind: 'Interface' | 'List' | 'Type' | 'Union'\n name: string\n type: string\n}\n\ntype FieldArg =\n | {isFieldFilter?: boolean; name: string; type: string}\n | {name: string; type: ConvertedNode}\n\nexport interface ConvertedField extends Partial<Deprecation> {\n fieldName: string\n type: string\n\n args?: FieldArg[]\n description?: string\n filter?: string\n isNullable?: boolean\n isRawAlias?: boolean\n isReference?: boolean\n kind?: 'List'\n originalName?: string\n}\n\ninterface ConvertedListField extends ConvertedField {\n children: {\n inlineObjects?: string[]\n type: string\n }\n kind: 'List'\n}\n\nexport interface ApiCustomizationOptions {\n filterSuffix?: string\n}\n\nexport type InputFilterField =\n | ListDefinition\n | {\n constraint: {\n comparator: string\n field?: string\n }\n description?: string\n fieldName: string\n type: string\n }\n\nexport type ConvertedFieldDefinition = ConvertedField | ConvertedListField\n\ninterface ListDefinition {\n children: {isNullable?: boolean; type: string}\n kind: 'List'\n\n isNullable?: boolean\n}\n\nexport interface ConvertedEnum {\n kind: 'Enum'\n name: string\n values: {\n description?: string\n name: string\n value: unknown\n }[]\n}\n\nexport interface ConvertedInterface {\n fields: ConvertedFieldDefinition[]\n kind: 'Interface'\n name: string\n\n description?: string\n}\n\nexport interface ConvertedUnion {\n kind: 'Union'\n name: string\n types: string[]\n\n interfaces?: string[]\n}\n\nexport interface ConvertedDocumentType extends ConvertedType {\n interfaces: ['Document', ...string[]]\n}\n\nexport interface ConvertedType extends Partial<Deprecation> {\n fields: ConvertedFieldDefinition[]\n kind: 'Interface' | 'Type'\n name: string\n type: string\n\n crossDatasetReferenceMetadata?: {\n dataset: string\n typeNames: string[]\n }\n description?: string\n interfaces?: string[]\n [internal]?: Partial<Deprecation>\n isReference?: boolean\n originalName?: string\n}\n\nexport interface InputObjectType {\n fields: unknown[] // @todo\n kind: 'InputObject'\n name: string\n\n isConstraintFilter?: boolean\n}\n\nexport interface QueryDefinition extends Partial<Deprecation> {\n args: {\n description?: string\n isFieldFilter?: boolean\n isNullable?: boolean\n name: string\n type: ListDefinition | string\n }[]\n fieldName: string\n\n type: ListDefinition | string\n\n constraints?: {\n comparator: string\n field?: string\n value?: {argName: string; kind: 'argumentValue'}\n }[]\n\n filter?: string\n}\n\nexport interface GeneratedApiSpecification {\n generation: string\n interfaces: ConvertedInterface[]\n queries: QueryDefinition[]\n types: (ConvertedEnum | ConvertedType | ConvertedUnion | InputObjectType)[]\n}\n"],"names":["internal","Symbol"],"mappings":"AAEA,OAAO,MAAMA,WAAWC,OAAO,YAAW"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/hook/constants.ts"],"sourcesContent":["export const HOOK_API_VERSION = 'v2025-08-04'\n"],"names":["HOOK_API_VERSION"],"mappings":"AAAA,OAAO,MAAMA,mBAAmB,cAAa"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export function formatFailure(attempt, options = {}) {
|
|
2
|
+
const { includeHelp } = options;
|
|
3
|
+
const { failureReason, id, resultCode } = attempt;
|
|
4
|
+
const help = includeHelp ? `(run \`sanity hook attempt ${id}\` for details)` : '';
|
|
5
|
+
switch(failureReason){
|
|
6
|
+
case 'http':
|
|
7
|
+
{
|
|
8
|
+
return `HTTP ${resultCode} ${help}`;
|
|
9
|
+
}
|
|
10
|
+
case 'network':
|
|
11
|
+
{
|
|
12
|
+
return 'Network error';
|
|
13
|
+
}
|
|
14
|
+
case 'other':
|
|
15
|
+
{
|
|
16
|
+
return 'Unknown error';
|
|
17
|
+
}
|
|
18
|
+
case 'timeout':
|
|
19
|
+
{
|
|
20
|
+
return 'Request timed out';
|
|
21
|
+
}
|
|
22
|
+
default:
|
|
23
|
+
{
|
|
24
|
+
return `Unknown error (${failureReason})`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=formatFailure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/hook/formatFailure.ts"],"sourcesContent":["import {type DeliveryAttempt} from './types.js'\n\nexport function formatFailure(\n attempt: DeliveryAttempt,\n options: {includeHelp?: boolean} = {},\n): string {\n const {includeHelp} = options\n const {failureReason, id, resultCode} = attempt\n const help = includeHelp ? `(run \\`sanity hook attempt ${id}\\` for details)` : ''\n switch (failureReason) {\n case 'http': {\n return `HTTP ${resultCode} ${help}`\n }\n case 'network': {\n return 'Network error'\n }\n case 'other': {\n return 'Unknown error'\n }\n case 'timeout': {\n return 'Request timed out'\n }\n default: {\n return `Unknown error (${failureReason})`\n }\n }\n}\n"],"names":["formatFailure","attempt","options","includeHelp","failureReason","id","resultCode","help"],"mappings":"AAEA,OAAO,SAASA,cACdC,OAAwB,EACxBC,UAAmC,CAAC,CAAC;IAErC,MAAM,EAACC,WAAW,EAAC,GAAGD;IACtB,MAAM,EAACE,aAAa,EAAEC,EAAE,EAAEC,UAAU,EAAC,GAAGL;IACxC,MAAMM,OAAOJ,cAAc,CAAC,2BAA2B,EAAEE,GAAG,eAAe,CAAC,GAAG;IAC/E,OAAQD;QACN,KAAK;YAAQ;gBACX,OAAO,CAAC,KAAK,EAAEE,WAAW,CAAC,EAAEC,MAAM;YACrC;QACA,KAAK;YAAW;gBACd,OAAO;YACT;QACA,KAAK;YAAS;gBACZ,OAAO;YACT;QACA,KAAK;YAAW;gBACd,OAAO;YACT;QACA;YAAS;gBACP,OAAO,CAAC,eAAe,EAAEH,cAAc,CAAC,CAAC;YAC3C;IACF;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/hook/types.ts"],"sourcesContent":["export type Hook = GroqHook | LegacyHook\nexport type HookMessage = GroqHookMessage | LegacyHookMessage\n\ninterface GroqHookMessage {\n createdAt: string\n dataset: string\n failureCount: number\n id: string\n payload: string\n projectId: string\n resultCode: number | null\n status: 'failure' | 'queued' | 'sending' | 'success'\n}\n\ninterface LegacyHookMessage {\n createdAt: string\n dataset: string\n deletedAt: string | null\n failureCount: number\n hookId: string\n id: string\n payload: string\n projectId: string\n resultCode: number | null\n status: 'failure' | 'queued' | 'sending' | 'success'\n updatedAt: string | null\n}\n\ninterface GroqHook {\n apiVersion: string\n createdAt: string\n createdByUserId: string\n dataset: string\n deletedAt: string | null\n description: string | null\n headers: Record<string, string | undefined>\n httpMethod: string\n id: string\n includeDrafts: boolean\n isDisabled: boolean\n isDisabledByUser: boolean\n name: string\n projectId: string\n rule: {\n filter: string | null\n on: ('create' | 'delete' | 'update')[]\n projection: string | null\n }\n secret: string | null\n type: 'document'\n url: string\n}\n\ninterface LegacyHook {\n createdAt: string\n createdByUserId: string\n dataset: string\n deletedAt: string | null\n description: string | null\n id: string\n isDisabled: boolean\n isDisabledByUser: boolean\n name: string\n projectId: string\n type: 'transaction'\n url: string\n}\n\nexport interface DeliveryAttempt {\n createdAt: string\n duration: number | null\n failureReason: string\n hookId: string\n id: string\n inProgress: boolean\n isFailure: boolean\n messageId: string\n projectId: string\n resultBody: string\n resultCode: number\n updatedAt: string | null\n}\n"],"names":[],"mappings":"AAoEA,WAaC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { styleText } from 'node:util';
|
|
4
|
+
import { subdebug } from '@sanity/cli-core';
|
|
5
|
+
import { spinner } from '@sanity/cli-core/ux';
|
|
6
|
+
import { deburr } from 'lodash-es';
|
|
7
|
+
import { studioDependencies } from '../../studioDependencies.js';
|
|
8
|
+
import { copy } from '../../util/copy.js';
|
|
9
|
+
import { resolveLatestVersions } from '../../util/resolveLatestVersions.js';
|
|
10
|
+
import { createAppCliConfig } from './createAppCliConfig.js';
|
|
11
|
+
import { createCliConfig } from './createCliConfig.js';
|
|
12
|
+
import { createPackageManifest } from './createPackageManifest.js';
|
|
13
|
+
import { createStudioConfig } from './createStudioConfig.js';
|
|
14
|
+
import { determineAppTemplate } from './determineAppTemplate.js';
|
|
15
|
+
import templates from './templates/index.js';
|
|
16
|
+
import { updateInitialTemplateMetadata } from './updateInitialTemplateMetadata.js';
|
|
17
|
+
const debug = subdebug('init:bootstrapRemoteTemplate');
|
|
18
|
+
export async function bootstrapLocalTemplate(opts) {
|
|
19
|
+
const { output, outputPath, packageName, templateName, useTypeScript, variables } = opts;
|
|
20
|
+
// packages/@sanity/cli/src/actions/init/ -> packages/@sanity/cli/src/action -> packages/@sanity/cli/src/
|
|
21
|
+
const cliRoot = path.resolve(import.meta.dirname, '../../..');
|
|
22
|
+
const templatesDir = path.join(cliRoot, 'templates');
|
|
23
|
+
const sourceDir = path.join(templatesDir, templateName);
|
|
24
|
+
const sharedDir = path.join(templatesDir, 'shared');
|
|
25
|
+
const isAppTemplate = determineAppTemplate(templateName);
|
|
26
|
+
// Check that we have a template info file (dependencies, plugins etc)
|
|
27
|
+
const template = templates[templateName];
|
|
28
|
+
if (!template) {
|
|
29
|
+
throw new Error(`Template "${templateName}" not defined`);
|
|
30
|
+
}
|
|
31
|
+
// Copy template files
|
|
32
|
+
debug('Copying files from template "%s" to "%s"', templateName, outputPath);
|
|
33
|
+
let spin = spinner('Bootstrapping files from template').start();
|
|
34
|
+
debug(`Copying template from : ${sourceDir}`);
|
|
35
|
+
await copy(sourceDir, outputPath, {
|
|
36
|
+
rename: useTypeScript ? toTypeScriptPath : undefined
|
|
37
|
+
});
|
|
38
|
+
debug(`Copying shared template code from : ${sharedDir}`);
|
|
39
|
+
await copy(path.join(sharedDir, 'gitignore.txt'), outputPath, {
|
|
40
|
+
rename: ()=>'.gitignore'
|
|
41
|
+
});
|
|
42
|
+
if (useTypeScript) {
|
|
43
|
+
await fs.copyFile(path.join(sharedDir, 'tsconfig.json'), path.join(outputPath, 'tsconfig.json'));
|
|
44
|
+
}
|
|
45
|
+
spin.succeed();
|
|
46
|
+
// Merge global and template-specific plugins and dependencies
|
|
47
|
+
// Resolve latest versions of Sanity-dependencies
|
|
48
|
+
spin = spinner('Resolving latest module versions').start();
|
|
49
|
+
const dependencyVersions = await resolveLatestVersions({
|
|
50
|
+
...isAppTemplate ? {} : studioDependencies.dependencies,
|
|
51
|
+
...isAppTemplate ? {} : studioDependencies.devDependencies,
|
|
52
|
+
...template.dependencies,
|
|
53
|
+
...template.devDependencies
|
|
54
|
+
});
|
|
55
|
+
spin.succeed();
|
|
56
|
+
// Use the resolved version for the given dependency
|
|
57
|
+
const dependencies = {};
|
|
58
|
+
for (const dependency of Object.keys({
|
|
59
|
+
...isAppTemplate ? {} : studioDependencies.dependencies,
|
|
60
|
+
...template.dependencies
|
|
61
|
+
})){
|
|
62
|
+
dependencies[dependency] = dependencyVersions[dependency];
|
|
63
|
+
}
|
|
64
|
+
const devDependencies = {};
|
|
65
|
+
for (const dependency of Object.keys({
|
|
66
|
+
...isAppTemplate ? {} : studioDependencies.devDependencies,
|
|
67
|
+
...template.devDependencies
|
|
68
|
+
})){
|
|
69
|
+
devDependencies[dependency] = dependencyVersions[dependency];
|
|
70
|
+
}
|
|
71
|
+
let packageJsonName = packageName;
|
|
72
|
+
/**
|
|
73
|
+
* Currently app init doesn't ask for a name, so we use the last part of the path
|
|
74
|
+
*/ if (isAppTemplate) {
|
|
75
|
+
packageJsonName = deburr(path.basename(outputPath).toLowerCase()).replaceAll(/\s+/g, '-').replaceAll(/[^a-z0-9-]/g, '');
|
|
76
|
+
}
|
|
77
|
+
// Now create a package manifest (`package.json`) with the merged dependencies
|
|
78
|
+
spin = spinner('Creating default project files').start();
|
|
79
|
+
const packageManifest = createPackageManifest({
|
|
80
|
+
dependencies,
|
|
81
|
+
devDependencies,
|
|
82
|
+
isAppTemplate,
|
|
83
|
+
name: packageJsonName,
|
|
84
|
+
scripts: template.scripts
|
|
85
|
+
});
|
|
86
|
+
// ...and a studio config (`sanity.config.[ts|js]`)
|
|
87
|
+
const studioConfig = createStudioConfig({
|
|
88
|
+
template: template.configTemplate,
|
|
89
|
+
variables
|
|
90
|
+
});
|
|
91
|
+
// ...and a CLI config (`sanity.cli.[ts|js]`)
|
|
92
|
+
const cliConfig = isAppTemplate ? createAppCliConfig({
|
|
93
|
+
entry: template.entry,
|
|
94
|
+
organizationId: variables.organizationId
|
|
95
|
+
}) : createCliConfig({
|
|
96
|
+
autoUpdates: variables.autoUpdates,
|
|
97
|
+
dataset: variables.dataset,
|
|
98
|
+
projectId: variables.projectId
|
|
99
|
+
});
|
|
100
|
+
// Write non-template files to disc
|
|
101
|
+
const codeExt = useTypeScript ? 'ts' : 'js';
|
|
102
|
+
await Promise.all([
|
|
103
|
+
isAppTemplate ? Promise.resolve(null) : writeFileIfNotExists(`sanity.config.${codeExt}`, studioConfig),
|
|
104
|
+
writeFileIfNotExists(`sanity.cli.${codeExt}`, cliConfig),
|
|
105
|
+
writeFileIfNotExists('package.json', packageManifest),
|
|
106
|
+
isAppTemplate ? Promise.resolve(null) : writeFileIfNotExists('eslint.config.mjs', `import studio from '@sanity/eslint-config-studio'\n\nexport default [...studio]\n`)
|
|
107
|
+
].filter(Boolean));
|
|
108
|
+
debug('Updating initial template metadata');
|
|
109
|
+
await updateInitialTemplateMetadata(variables.projectId, `cli-${templateName}`);
|
|
110
|
+
// Finish up by providing init process with template-specific info
|
|
111
|
+
spin.succeed();
|
|
112
|
+
return template;
|
|
113
|
+
async function writeFileIfNotExists(fileName, content) {
|
|
114
|
+
const filePath = path.join(outputPath, fileName);
|
|
115
|
+
if (opts.overwriteFiles) {
|
|
116
|
+
// If overwrite is enabled, just write the file
|
|
117
|
+
await fs.writeFile(filePath, content);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
try {
|
|
121
|
+
await fs.writeFile(filePath, content, {
|
|
122
|
+
flag: 'wx'
|
|
123
|
+
});
|
|
124
|
+
} catch (err) {
|
|
125
|
+
if (err.code === 'EEXIST') {
|
|
126
|
+
output.warn(`\n${styleText('yellow', '⚠')} File "${filePath}" already exists, skipping`);
|
|
127
|
+
} else {
|
|
128
|
+
throw err;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function toTypeScriptPath(originalPath) {
|
|
134
|
+
return originalPath.replace(/\.js$/, '.ts');
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
//# sourceMappingURL=bootstrapLocalTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/init/bootstrapLocalTemplate.ts"],"sourcesContent":["import fs from 'node:fs/promises'\nimport path from 'node:path'\nimport {styleText} from 'node:util'\n\nimport {Output, subdebug} from '@sanity/cli-core'\nimport {spinner} from '@sanity/cli-core/ux'\nimport {deburr} from 'lodash-es'\n\nimport {studioDependencies} from '../../studioDependencies.js'\nimport {copy} from '../../util/copy.js'\nimport {resolveLatestVersions} from '../../util/resolveLatestVersions.js'\nimport {createAppCliConfig} from './createAppCliConfig.js'\nimport {createCliConfig} from './createCliConfig.js'\nimport {createPackageManifest} from './createPackageManifest.js'\nimport {createStudioConfig, type GenerateConfigOptions} from './createStudioConfig.js'\nimport {determineAppTemplate} from './determineAppTemplate.js'\nimport templates from './templates/index.js'\nimport {type ProjectTemplate} from './types.js'\nimport {updateInitialTemplateMetadata} from './updateInitialTemplateMetadata.js'\n\nconst debug = subdebug('init:bootstrapRemoteTemplate')\n\nexport interface BootstrapLocalOptions {\n output: Output\n outputPath: string\n packageName: string\n templateName: string\n useTypeScript: boolean\n variables: GenerateConfigOptions['variables']\n\n overwriteFiles?: boolean\n}\n\nexport async function bootstrapLocalTemplate(\n opts: BootstrapLocalOptions,\n): Promise<ProjectTemplate> {\n const {output, outputPath, packageName, templateName, useTypeScript, variables} = opts\n // packages/@sanity/cli/src/actions/init/ -> packages/@sanity/cli/src/action -> packages/@sanity/cli/src/\n const cliRoot = path.resolve(import.meta.dirname, '../../..')\n const templatesDir = path.join(cliRoot, 'templates')\n const sourceDir = path.join(templatesDir, templateName)\n const sharedDir = path.join(templatesDir, 'shared')\n const isAppTemplate = determineAppTemplate(templateName)\n\n // Check that we have a template info file (dependencies, plugins etc)\n const template = templates[templateName]\n if (!template) {\n throw new Error(`Template \"${templateName}\" not defined`)\n }\n\n // Copy template files\n debug('Copying files from template \"%s\" to \"%s\"', templateName, outputPath)\n let spin = spinner('Bootstrapping files from template').start()\n\n debug(`Copying template from : ${sourceDir}`)\n await copy(sourceDir, outputPath, {\n rename: useTypeScript ? toTypeScriptPath : undefined,\n })\n debug(`Copying shared template code from : ${sharedDir}`)\n await copy(path.join(sharedDir, 'gitignore.txt'), outputPath, {rename: () => '.gitignore'})\n\n if (useTypeScript) {\n await fs.copyFile(path.join(sharedDir, 'tsconfig.json'), path.join(outputPath, 'tsconfig.json'))\n }\n\n spin.succeed()\n\n // Merge global and template-specific plugins and dependencies\n\n // Resolve latest versions of Sanity-dependencies\n spin = spinner('Resolving latest module versions').start()\n const dependencyVersions = await resolveLatestVersions({\n ...(isAppTemplate ? {} : studioDependencies.dependencies),\n ...(isAppTemplate ? {} : studioDependencies.devDependencies),\n ...template.dependencies,\n ...template.devDependencies,\n })\n spin.succeed()\n\n // Use the resolved version for the given dependency\n const dependencies: Record<string, string> = {}\n for (const dependency of Object.keys({\n ...(isAppTemplate ? {} : studioDependencies.dependencies),\n ...template.dependencies,\n })) {\n dependencies[dependency] = dependencyVersions[dependency]\n }\n\n const devDependencies: Record<string, string> = {}\n for (const dependency of Object.keys({\n ...(isAppTemplate ? {} : studioDependencies.devDependencies),\n ...template.devDependencies,\n })) {\n devDependencies[dependency] = dependencyVersions[dependency]\n }\n\n let packageJsonName: string = packageName\n\n /**\n * Currently app init doesn't ask for a name, so we use the last part of the path\n */\n if (isAppTemplate) {\n packageJsonName = deburr(path.basename(outputPath).toLowerCase())\n .replaceAll(/\\s+/g, '-')\n .replaceAll(/[^a-z0-9-]/g, '')\n }\n\n // Now create a package manifest (`package.json`) with the merged dependencies\n spin = spinner('Creating default project files').start()\n const packageManifest = createPackageManifest({\n dependencies,\n devDependencies,\n isAppTemplate,\n name: packageJsonName,\n scripts: template.scripts,\n })\n\n // ...and a studio config (`sanity.config.[ts|js]`)\n const studioConfig = createStudioConfig({\n template: template.configTemplate,\n variables,\n })\n\n // ...and a CLI config (`sanity.cli.[ts|js]`)\n const cliConfig = isAppTemplate\n ? createAppCliConfig({\n entry: template.entry!,\n organizationId: variables.organizationId,\n })\n : createCliConfig({\n autoUpdates: variables.autoUpdates,\n dataset: variables.dataset,\n projectId: variables.projectId,\n })\n\n // Write non-template files to disc\n const codeExt = useTypeScript ? 'ts' : 'js'\n await Promise.all(\n [\n isAppTemplate\n ? Promise.resolve(null)\n : writeFileIfNotExists(`sanity.config.${codeExt}`, studioConfig),\n writeFileIfNotExists(`sanity.cli.${codeExt}`, cliConfig),\n writeFileIfNotExists('package.json', packageManifest),\n\n isAppTemplate\n ? Promise.resolve(null)\n : writeFileIfNotExists(\n 'eslint.config.mjs',\n `import studio from '@sanity/eslint-config-studio'\\n\\nexport default [...studio]\\n`,\n ),\n ].filter(Boolean),\n )\n\n debug('Updating initial template metadata')\n await updateInitialTemplateMetadata(variables.projectId, `cli-${templateName}`)\n\n // Finish up by providing init process with template-specific info\n spin.succeed()\n return template\n\n async function writeFileIfNotExists(fileName: string, content: string): Promise<void> {\n const filePath = path.join(outputPath, fileName)\n\n if (opts.overwriteFiles) {\n // If overwrite is enabled, just write the file\n await fs.writeFile(filePath, content)\n return\n }\n\n try {\n await fs.writeFile(filePath, content, {flag: 'wx'})\n } catch (err) {\n if (err.code === 'EEXIST') {\n output.warn(`\\n${styleText('yellow', '⚠')} File \"${filePath}\" already exists, skipping`)\n } else {\n throw err\n }\n }\n }\n}\n\nfunction toTypeScriptPath(originalPath: string): string {\n return originalPath.replace(/\\.js$/, '.ts')\n}\n"],"names":["fs","path","styleText","subdebug","spinner","deburr","studioDependencies","copy","resolveLatestVersions","createAppCliConfig","createCliConfig","createPackageManifest","createStudioConfig","determineAppTemplate","templates","updateInitialTemplateMetadata","debug","bootstrapLocalTemplate","opts","output","outputPath","packageName","templateName","useTypeScript","variables","cliRoot","resolve","dirname","templatesDir","join","sourceDir","sharedDir","isAppTemplate","template","Error","spin","start","rename","toTypeScriptPath","undefined","copyFile","succeed","dependencyVersions","dependencies","devDependencies","dependency","Object","keys","packageJsonName","basename","toLowerCase","replaceAll","packageManifest","name","scripts","studioConfig","configTemplate","cliConfig","entry","organizationId","autoUpdates","dataset","projectId","codeExt","Promise","all","writeFileIfNotExists","filter","Boolean","fileName","content","filePath","overwriteFiles","writeFile","flag","err","code","warn","originalPath","replace"],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { mkdir } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { subdebug } from '@sanity/cli-core';
|
|
4
|
+
import { logSymbols, spinner } from '@sanity/cli-core/ux';
|
|
5
|
+
import { getMonoRepo, GitHubFileReader, validateTemplate } from '@sanity/template-validator';
|
|
6
|
+
import { frameworks } from '@vercel/frameworks';
|
|
7
|
+
import { detectFrameworkRecord, LocalFileSystemDetector } from '@vercel/fs-detectors';
|
|
8
|
+
import { createCorsOrigin } from '../../services/cors.js';
|
|
9
|
+
import { createToken } from '../../services/tokens.js';
|
|
10
|
+
import { getDefaultPortForFramework } from '../../util/frameworkPort.js';
|
|
11
|
+
import { tryGitInit } from './git.js';
|
|
12
|
+
import { applyEnvVariables, checkIfNeedsApiToken, downloadAndExtractRepo, getGitHubRawContentUrl, tryApplyPackageName } from './remoteTemplate.js';
|
|
13
|
+
import { updateInitialTemplateMetadata } from './updateInitialTemplateMetadata.js';
|
|
14
|
+
const debug = subdebug('init:bootstrapRemoteTemplate');
|
|
15
|
+
const SANITY_DEFAULT_PORT = 3333;
|
|
16
|
+
const READ_TOKEN_LABEL = 'Live Preview API';
|
|
17
|
+
const WRITE_TOKEN_LABEL = 'App Write Token';
|
|
18
|
+
const INITIAL_COMMIT_MESSAGE = 'Initial commit from Sanity CLI';
|
|
19
|
+
const API_READ_TOKEN_ROLE = 'viewer';
|
|
20
|
+
const API_WRITE_TOKEN_ROLE = 'editor';
|
|
21
|
+
export async function bootstrapRemoteTemplate(opts) {
|
|
22
|
+
const { bearerToken, output, outputPath, packageName, repoInfo, variables } = opts;
|
|
23
|
+
const name = [
|
|
24
|
+
repoInfo.username,
|
|
25
|
+
repoInfo.name,
|
|
26
|
+
repoInfo.filePath
|
|
27
|
+
].filter(Boolean).join('/');
|
|
28
|
+
const contentsUrl = getGitHubRawContentUrl(repoInfo);
|
|
29
|
+
const headers = {};
|
|
30
|
+
if (bearerToken) {
|
|
31
|
+
headers.Authorization = `Bearer ${bearerToken}`;
|
|
32
|
+
}
|
|
33
|
+
const spin = spinner(`Bootstrapping files from template "${name}"`).start();
|
|
34
|
+
const corsAdded = [
|
|
35
|
+
SANITY_DEFAULT_PORT
|
|
36
|
+
];
|
|
37
|
+
debug('Validating remote template');
|
|
38
|
+
const fileReader = new GitHubFileReader(contentsUrl, headers);
|
|
39
|
+
const packages = await getMonoRepo(fileReader);
|
|
40
|
+
const validation = await validateTemplate(fileReader, packages);
|
|
41
|
+
if (!validation.isValid) {
|
|
42
|
+
throw new Error(validation.errors.join('\n'));
|
|
43
|
+
}
|
|
44
|
+
debug('Create new directory "%s"', outputPath);
|
|
45
|
+
await mkdir(outputPath, {
|
|
46
|
+
recursive: true
|
|
47
|
+
});
|
|
48
|
+
debug('Downloading and extracting repo to %s', outputPath);
|
|
49
|
+
await downloadAndExtractRepo(outputPath, repoInfo, bearerToken);
|
|
50
|
+
debug('Checking if template needs read token');
|
|
51
|
+
const needsReadToken = await Promise.all((packages ?? [
|
|
52
|
+
''
|
|
53
|
+
]).map((pkg)=>checkIfNeedsApiToken(join(outputPath, pkg), 'read'))).then((results)=>results.some(Boolean));
|
|
54
|
+
const needsWriteToken = await Promise.all((packages ?? [
|
|
55
|
+
''
|
|
56
|
+
]).map((pkg)=>checkIfNeedsApiToken(join(outputPath, pkg), 'write'))).then((results)=>results.some(Boolean));
|
|
57
|
+
debug('Applying environment variables');
|
|
58
|
+
const readToken = needsReadToken ? (await createToken({
|
|
59
|
+
label: READ_TOKEN_LABEL,
|
|
60
|
+
projectId: variables.projectId,
|
|
61
|
+
roleName: API_READ_TOKEN_ROLE
|
|
62
|
+
})).key : undefined;
|
|
63
|
+
const writeToken = needsWriteToken ? (await createToken({
|
|
64
|
+
label: WRITE_TOKEN_LABEL,
|
|
65
|
+
projectId: variables.projectId,
|
|
66
|
+
roleName: API_WRITE_TOKEN_ROLE
|
|
67
|
+
})).key : undefined;
|
|
68
|
+
for (const pkg of packages ?? [
|
|
69
|
+
''
|
|
70
|
+
]){
|
|
71
|
+
const packagePath = join(outputPath, pkg);
|
|
72
|
+
const packageFramework = await detectFrameworkRecord({
|
|
73
|
+
frameworkList: frameworks,
|
|
74
|
+
fs: new LocalFileSystemDetector(packagePath)
|
|
75
|
+
});
|
|
76
|
+
const port = getDefaultPortForFramework(packageFramework?.slug);
|
|
77
|
+
if (corsAdded.includes(port)) {
|
|
78
|
+
debug('Setting CORS origin to http://localhost:%d', port);
|
|
79
|
+
await createCorsOrigin({
|
|
80
|
+
allowCredentials: true,
|
|
81
|
+
origin: `http://localhost:${port}`,
|
|
82
|
+
projectId: variables.projectId
|
|
83
|
+
});
|
|
84
|
+
corsAdded.push(port);
|
|
85
|
+
}
|
|
86
|
+
debug('Applying environment variables to %s', pkg);
|
|
87
|
+
// Next.js uses `.env.local` for local environment variables
|
|
88
|
+
const envName = packageFramework?.slug === 'nextjs' ? '.env.local' : '.env';
|
|
89
|
+
await applyEnvVariables(packagePath, {
|
|
90
|
+
...variables,
|
|
91
|
+
readToken,
|
|
92
|
+
writeToken
|
|
93
|
+
}, envName);
|
|
94
|
+
}
|
|
95
|
+
debug('Setting package name to %s', packageName);
|
|
96
|
+
await tryApplyPackageName(outputPath, packageName);
|
|
97
|
+
debug('Initializing git repository');
|
|
98
|
+
tryGitInit(outputPath, INITIAL_COMMIT_MESSAGE);
|
|
99
|
+
debug('Updating initial template metadata');
|
|
100
|
+
await updateInitialTemplateMetadata(variables.projectId, `external-${name}`);
|
|
101
|
+
spin.succeed();
|
|
102
|
+
if (corsAdded.length > 0) {
|
|
103
|
+
output.log(`${logSymbols.success} CORS origins added (${corsAdded.map((p)=>`localhost:${p}`).join(', ')})`);
|
|
104
|
+
}
|
|
105
|
+
if (readToken) output.log(`${logSymbols.success} API token generated (${READ_TOKEN_LABEL})`);
|
|
106
|
+
if (writeToken) output.log(`${logSymbols.success} API token generated (${WRITE_TOKEN_LABEL})`);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
//# sourceMappingURL=bootstrapRemoteTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/init/bootstrapRemoteTemplate.ts"],"sourcesContent":["import {mkdir} from 'node:fs/promises'\nimport {join} from 'node:path'\n\nimport {Output, subdebug} from '@sanity/cli-core'\nimport {logSymbols, spinner} from '@sanity/cli-core/ux'\nimport {getMonoRepo, GitHubFileReader, validateTemplate} from '@sanity/template-validator'\nimport {type Framework, frameworks} from '@vercel/frameworks'\nimport {detectFrameworkRecord, LocalFileSystemDetector} from '@vercel/fs-detectors'\n\nimport {createCorsOrigin} from '../../services/cors.js'\nimport {createToken} from '../../services/tokens.js'\nimport {getDefaultPortForFramework} from '../../util/frameworkPort.js'\nimport {type GenerateConfigOptions} from './createStudioConfig.js'\nimport {tryGitInit} from './git.js'\nimport {\n applyEnvVariables,\n checkIfNeedsApiToken,\n downloadAndExtractRepo,\n getGitHubRawContentUrl,\n type RepoInfo,\n tryApplyPackageName,\n} from './remoteTemplate.js'\nimport {updateInitialTemplateMetadata} from './updateInitialTemplateMetadata.js'\n\nconst debug = subdebug('init:bootstrapRemoteTemplate')\n\nexport interface BootstrapRemoteOptions {\n output: Output\n outputPath: string\n packageName: string\n repoInfo: RepoInfo\n variables: GenerateConfigOptions['variables']\n\n bearerToken?: string\n}\n\nconst SANITY_DEFAULT_PORT = 3333\nconst READ_TOKEN_LABEL = 'Live Preview API'\nconst WRITE_TOKEN_LABEL = 'App Write Token'\nconst INITIAL_COMMIT_MESSAGE = 'Initial commit from Sanity CLI'\nconst API_READ_TOKEN_ROLE = 'viewer'\nconst API_WRITE_TOKEN_ROLE = 'editor'\n\nexport async function bootstrapRemoteTemplate(opts: BootstrapRemoteOptions): Promise<void> {\n const {bearerToken, output, outputPath, packageName, repoInfo, variables} = opts\n const name = [repoInfo.username, repoInfo.name, repoInfo.filePath].filter(Boolean).join('/')\n const contentsUrl = getGitHubRawContentUrl(repoInfo)\n const headers: Record<string, string> = {}\n if (bearerToken) {\n headers.Authorization = `Bearer ${bearerToken}`\n }\n const spin = spinner(`Bootstrapping files from template \"${name}\"`).start()\n const corsAdded: number[] = [SANITY_DEFAULT_PORT]\n\n debug('Validating remote template')\n const fileReader = new GitHubFileReader(contentsUrl, headers)\n const packages = await getMonoRepo(fileReader)\n const validation = await validateTemplate(fileReader, packages)\n if (!validation.isValid) {\n throw new Error(validation.errors.join('\\n'))\n }\n\n debug('Create new directory \"%s\"', outputPath)\n await mkdir(outputPath, {recursive: true})\n\n debug('Downloading and extracting repo to %s', outputPath)\n await downloadAndExtractRepo(outputPath, repoInfo, bearerToken)\n\n debug('Checking if template needs read token')\n const needsReadToken = await Promise.all(\n (packages ?? ['']).map((pkg) => checkIfNeedsApiToken(join(outputPath, pkg), 'read')),\n ).then((results) => results.some(Boolean))\n const needsWriteToken = await Promise.all(\n (packages ?? ['']).map((pkg) => checkIfNeedsApiToken(join(outputPath, pkg), 'write')),\n ).then((results) => results.some(Boolean))\n\n debug('Applying environment variables')\n const readToken = needsReadToken\n ? (\n await createToken({\n label: READ_TOKEN_LABEL,\n projectId: variables.projectId,\n roleName: API_READ_TOKEN_ROLE,\n })\n ).key\n : undefined\n const writeToken = needsWriteToken\n ? (\n await createToken({\n label: WRITE_TOKEN_LABEL,\n projectId: variables.projectId,\n roleName: API_WRITE_TOKEN_ROLE,\n })\n ).key\n : undefined\n\n for (const pkg of packages ?? ['']) {\n const packagePath = join(outputPath, pkg)\n const packageFramework: Framework | null = await detectFrameworkRecord({\n frameworkList: frameworks as readonly Framework[],\n fs: new LocalFileSystemDetector(packagePath),\n })\n\n const port = getDefaultPortForFramework(packageFramework?.slug)\n if (corsAdded.includes(port)) {\n debug('Setting CORS origin to http://localhost:%d', port)\n await createCorsOrigin({\n allowCredentials: true,\n origin: `http://localhost:${port}`,\n projectId: variables.projectId,\n })\n corsAdded.push(port)\n }\n\n debug('Applying environment variables to %s', pkg)\n // Next.js uses `.env.local` for local environment variables\n const envName = packageFramework?.slug === 'nextjs' ? '.env.local' : '.env'\n await applyEnvVariables(packagePath, {...variables, readToken, writeToken}, envName)\n }\n\n debug('Setting package name to %s', packageName)\n await tryApplyPackageName(outputPath, packageName)\n\n debug('Initializing git repository')\n tryGitInit(outputPath, INITIAL_COMMIT_MESSAGE)\n\n debug('Updating initial template metadata')\n await updateInitialTemplateMetadata(variables.projectId, `external-${name}`)\n\n spin.succeed()\n if (corsAdded.length > 0) {\n output.log(\n `${logSymbols.success} CORS origins added (${corsAdded.map((p) => `localhost:${p}`).join(', ')})`,\n )\n }\n if (readToken) output.log(`${logSymbols.success} API token generated (${READ_TOKEN_LABEL})`)\n if (writeToken) output.log(`${logSymbols.success} API token generated (${WRITE_TOKEN_LABEL})`)\n}\n"],"names":["mkdir","join","subdebug","logSymbols","spinner","getMonoRepo","GitHubFileReader","validateTemplate","frameworks","detectFrameworkRecord","LocalFileSystemDetector","createCorsOrigin","createToken","getDefaultPortForFramework","tryGitInit","applyEnvVariables","checkIfNeedsApiToken","downloadAndExtractRepo","getGitHubRawContentUrl","tryApplyPackageName","updateInitialTemplateMetadata","debug","SANITY_DEFAULT_PORT","READ_TOKEN_LABEL","WRITE_TOKEN_LABEL","INITIAL_COMMIT_MESSAGE","API_READ_TOKEN_ROLE","API_WRITE_TOKEN_ROLE","bootstrapRemoteTemplate","opts","bearerToken","output","outputPath","packageName","repoInfo","variables","name","username","filePath","filter","Boolean","contentsUrl","headers","Authorization","spin","start","corsAdded","fileReader","packages","validation","isValid","Error","errors","recursive","needsReadToken","Promise","all","map","pkg","then","results","some","needsWriteToken","readToken","label","projectId","roleName","key","undefined","writeToken","packagePath","packageFramework","frameworkList","fs","port","slug","includes","allowCredentials","origin","push","envName","succeed","length","log","success","p"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { bootstrapLocalTemplate } from './bootstrapLocalTemplate.js';
|
|
2
|
+
import { bootstrapRemoteTemplate } from './bootstrapRemoteTemplate.js';
|
|
3
|
+
export async function bootstrapTemplate({ autoUpdates, bearerToken, dataset, organizationId, output, outputPath, overwriteFiles, packageName, projectId, projectName, remoteTemplateInfo, templateName, useTypeScript }) {
|
|
4
|
+
const bootstrapVariables = {
|
|
5
|
+
autoUpdates,
|
|
6
|
+
dataset,
|
|
7
|
+
organizationId,
|
|
8
|
+
projectId,
|
|
9
|
+
projectName
|
|
10
|
+
};
|
|
11
|
+
if (remoteTemplateInfo) {
|
|
12
|
+
return bootstrapRemoteTemplate({
|
|
13
|
+
bearerToken,
|
|
14
|
+
output,
|
|
15
|
+
outputPath,
|
|
16
|
+
packageName,
|
|
17
|
+
repoInfo: remoteTemplateInfo,
|
|
18
|
+
variables: bootstrapVariables
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return bootstrapLocalTemplate({
|
|
22
|
+
output,
|
|
23
|
+
outputPath,
|
|
24
|
+
overwriteFiles,
|
|
25
|
+
packageName,
|
|
26
|
+
templateName,
|
|
27
|
+
useTypeScript,
|
|
28
|
+
variables: bootstrapVariables
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=bootstrapTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/init/bootstrapTemplate.ts"],"sourcesContent":["import {Output} from '@sanity/cli-core'\n\nimport {bootstrapLocalTemplate} from './bootstrapLocalTemplate.js'\nimport {bootstrapRemoteTemplate} from './bootstrapRemoteTemplate.js'\nimport {type GenerateConfigOptions} from './createStudioConfig.js'\nimport {type RepoInfo} from './remoteTemplate.js'\n\nexport interface BootstrapTemplateOptions {\n autoUpdates: boolean\n bearerToken: string | undefined\n dataset: string\n organizationId: string | undefined\n output: Output\n outputPath: string\n overwriteFiles: boolean\n packageName: string\n projectId: string\n projectName: string\n remoteTemplateInfo: RepoInfo | undefined\n templateName: string\n useTypeScript: boolean\n}\n\nexport async function bootstrapTemplate({\n autoUpdates,\n bearerToken,\n dataset,\n organizationId,\n output,\n outputPath,\n overwriteFiles,\n packageName,\n projectId,\n projectName,\n remoteTemplateInfo,\n templateName,\n useTypeScript,\n}: BootstrapTemplateOptions) {\n const bootstrapVariables: GenerateConfigOptions['variables'] = {\n autoUpdates,\n dataset,\n organizationId,\n projectId,\n projectName,\n }\n\n if (remoteTemplateInfo) {\n return bootstrapRemoteTemplate({\n bearerToken,\n output,\n outputPath,\n packageName,\n repoInfo: remoteTemplateInfo,\n variables: bootstrapVariables,\n })\n }\n\n return bootstrapLocalTemplate({\n output,\n outputPath,\n overwriteFiles,\n packageName,\n templateName,\n useTypeScript,\n variables: bootstrapVariables,\n })\n}\n"],"names":["bootstrapLocalTemplate","bootstrapRemoteTemplate","bootstrapTemplate","autoUpdates","bearerToken","dataset","organizationId","output","outputPath","overwriteFiles","packageName","projectId","projectName","remoteTemplateInfo","templateName","useTypeScript","bootstrapVariables","repoInfo","variables"],"mappings":"AAEA,SAAQA,sBAAsB,QAAO,8BAA6B;AAClE,SAAQC,uBAAuB,QAAO,+BAA8B;AAoBpE,OAAO,eAAeC,kBAAkB,EACtCC,WAAW,EACXC,WAAW,EACXC,OAAO,EACPC,cAAc,EACdC,MAAM,EACNC,UAAU,EACVC,cAAc,EACdC,WAAW,EACXC,SAAS,EACTC,WAAW,EACXC,kBAAkB,EAClBC,YAAY,EACZC,aAAa,EACY;IACzB,MAAMC,qBAAyD;QAC7Db;QACAE;QACAC;QACAK;QACAC;IACF;IAEA,IAAIC,oBAAoB;QACtB,OAAOZ,wBAAwB;YAC7BG;YACAG;YACAC;YACAE;YACAO,UAAUJ;YACVK,WAAWF;QACb;IACF;IAEA,OAAOhB,uBAAuB;QAC5BO;QACAC;QACAC;QACAC;QACAI;QACAC;QACAG,WAAWF;IACb;AACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import semver from 'semver';
|
|
2
|
+
import { readPackageJson } from '../../util/readPackageJson.js';
|
|
3
|
+
export async function checkNextJsReactCompatibility({ detectedFramework, output, outputPath }) {
|
|
4
|
+
const packageJson = await readPackageJson(`${outputPath}/package.json`);
|
|
5
|
+
const reactVersion = packageJson?.dependencies?.react;
|
|
6
|
+
if (reactVersion) {
|
|
7
|
+
const isUsingReact19 = semver.coerce(reactVersion)?.major === 19;
|
|
8
|
+
const isUsingNextJs15 = semver.coerce(detectedFramework?.detectedVersion)?.major === 15;
|
|
9
|
+
if (isUsingNextJs15 && isUsingReact19) {
|
|
10
|
+
output.warn('╭────────────────────────────────────────────────────────────╮');
|
|
11
|
+
output.warn('│ │');
|
|
12
|
+
output.warn('│ It looks like you are using Next.js 15 and React 19 │');
|
|
13
|
+
output.warn('│ Please read our compatibility guide. │');
|
|
14
|
+
output.warn('│ https://www.sanity.io/help/react-19 │');
|
|
15
|
+
output.warn('│ │');
|
|
16
|
+
output.warn('╰────────────────────────────────────────────────────────────╯');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=checkNextJsReactCompatibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/init/checkNextJsReactCompatibility.ts"],"sourcesContent":["import {Output} from '@sanity/cli-core'\nimport semver from 'semver'\n\nimport {readPackageJson} from '../../util/readPackageJson.js'\nimport {VersionedFramework} from './types.js'\n\ninterface CheckCompatibilityOptions {\n detectedFramework: VersionedFramework\n output: Output\n outputPath: string\n}\n\nexport async function checkNextJsReactCompatibility({\n detectedFramework,\n output,\n outputPath,\n}: CheckCompatibilityOptions) {\n const packageJson = await readPackageJson(`${outputPath}/package.json`)\n const reactVersion = packageJson?.dependencies?.react\n\n if (reactVersion) {\n const isUsingReact19 = semver.coerce(reactVersion)?.major === 19\n const isUsingNextJs15 = semver.coerce(detectedFramework?.detectedVersion)?.major === 15\n\n if (isUsingNextJs15 && isUsingReact19) {\n output.warn('╭────────────────────────────────────────────────────────────╮')\n output.warn('│ │')\n output.warn('│ It looks like you are using Next.js 15 and React 19 │')\n output.warn('│ Please read our compatibility guide. │')\n output.warn('│ https://www.sanity.io/help/react-19 │')\n output.warn('│ │')\n output.warn('╰────────────────────────────────────────────────────────────╯')\n }\n }\n}\n"],"names":["semver","readPackageJson","checkNextJsReactCompatibility","detectedFramework","output","outputPath","packageJson","reactVersion","dependencies","react","isUsingReact19","coerce","major","isUsingNextJs15","detectedVersion","warn"],"mappings":"AACA,OAAOA,YAAY,SAAQ;AAE3B,SAAQC,eAAe,QAAO,gCAA+B;AAS7D,OAAO,eAAeC,8BAA8B,EAClDC,iBAAiB,EACjBC,MAAM,EACNC,UAAU,EACgB;IAC1B,MAAMC,cAAc,MAAML,gBAAgB,GAAGI,WAAW,aAAa,CAAC;IACtE,MAAME,eAAeD,aAAaE,cAAcC;IAEhD,IAAIF,cAAc;QAChB,MAAMG,iBAAiBV,OAAOW,MAAM,CAACJ,eAAeK,UAAU;QAC9D,MAAMC,kBAAkBb,OAAOW,MAAM,CAACR,mBAAmBW,kBAAkBF,UAAU;QAErF,IAAIC,mBAAmBH,gBAAgB;YACrCN,OAAOW,IAAI,CAAC;YACZX,OAAOW,IAAI,CAAC;YACZX,OAAOW,IAAI,CAAC;YACZX,OAAOW,IAAI,CAAC;YACZX,OAAOW,IAAI,CAAC;YACZX,OAAOW,IAAI,CAAC;YACZX,OAAOW,IAAI,CAAC;QACd;IACF;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/init/constants.ts"],"sourcesContent":["export const INIT_API_VERSION = 'v2025-06-01'\n"],"names":["INIT_API_VERSION"],"mappings":"AAAA,OAAO,MAAMA,mBAAmB,cAAa"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/init/countNestedFolders.ts"],"sourcesContent":["export function countNestedFolders(path: string): number {\n const separator = path.includes('\\\\') ? '\\\\' : '/'\n return path.split(separator).filter(Boolean).length\n}\n"],"names":["countNestedFolders","path","separator","includes","split","filter","Boolean","length"],"mappings":"AAAA,OAAO,SAASA,mBAAmBC,IAAY;IAC7C,MAAMC,YAAYD,KAAKE,QAAQ,CAAC,QAAQ,OAAO;IAC/C,OAAOF,KAAKG,KAAK,CAACF,WAAWG,MAAM,CAACC,SAASC,MAAM;AACrD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { processTemplate } from './processTemplate.js';
|
|
2
|
+
const defaultAppTemplate = `
|
|
3
|
+
import {defineCliConfig} from 'sanity/cli'
|
|
4
|
+
|
|
5
|
+
export default defineCliConfig({
|
|
6
|
+
app: {
|
|
7
|
+
organizationId: '%organizationId%',
|
|
8
|
+
entry: '%entry%',
|
|
9
|
+
},
|
|
10
|
+
})
|
|
11
|
+
`;
|
|
12
|
+
export function createAppCliConfig(options) {
|
|
13
|
+
return processTemplate({
|
|
14
|
+
template: defaultAppTemplate,
|
|
15
|
+
variables: options
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=createAppCliConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/init/createAppCliConfig.ts"],"sourcesContent":["import {processTemplate} from './processTemplate.js'\n\nconst defaultAppTemplate = `\nimport {defineCliConfig} from 'sanity/cli'\n\nexport default defineCliConfig({\n app: {\n organizationId: '%organizationId%',\n entry: '%entry%',\n },\n})\n`\n\nexport interface GenerateCliConfigOptions {\n entry: string\n\n organizationId?: string\n}\n\nexport function createAppCliConfig(options: GenerateCliConfigOptions): string {\n return processTemplate({\n template: defaultAppTemplate,\n variables: options,\n })\n}\n"],"names":["processTemplate","defaultAppTemplate","createAppCliConfig","options","template","variables"],"mappings":"AAAA,SAAQA,eAAe,QAAO,uBAAsB;AAEpD,MAAMC,qBAAqB,CAAC;;;;;;;;;AAS5B,CAAC;AAQD,OAAO,SAASC,mBAAmBC,OAAiC;IAClE,OAAOH,gBAAgB;QACrBI,UAAUH;QACVI,WAAWF;IACb;AACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { processTemplate } from './processTemplate.js';
|
|
2
|
+
const defaultTemplate = `
|
|
3
|
+
import {defineCliConfig} from 'sanity/cli'
|
|
4
|
+
|
|
5
|
+
export default defineCliConfig({
|
|
6
|
+
api: {
|
|
7
|
+
projectId: '%projectId%',
|
|
8
|
+
dataset: '%dataset%'
|
|
9
|
+
},
|
|
10
|
+
deployment: {
|
|
11
|
+
/**
|
|
12
|
+
* Enable auto-updates for studios.
|
|
13
|
+
* Learn more at https://www.sanity.io/docs/studio/latest-version-of-sanity#k47faf43faf56
|
|
14
|
+
*/
|
|
15
|
+
autoUpdates: __BOOL__autoUpdates__,
|
|
16
|
+
}
|
|
17
|
+
})
|
|
18
|
+
`;
|
|
19
|
+
export function createCliConfig(options) {
|
|
20
|
+
return processTemplate({
|
|
21
|
+
includeBooleanTransform: true,
|
|
22
|
+
template: defaultTemplate,
|
|
23
|
+
variables: options
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=createCliConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/init/createCliConfig.ts"],"sourcesContent":["import {processTemplate} from './processTemplate.js'\n\nconst defaultTemplate = `\nimport {defineCliConfig} from 'sanity/cli'\n\nexport default defineCliConfig({\n api: {\n projectId: '%projectId%',\n dataset: '%dataset%'\n },\n deployment: {\n /**\n * Enable auto-updates for studios.\n * Learn more at https://www.sanity.io/docs/studio/latest-version-of-sanity#k47faf43faf56\n */\n autoUpdates: __BOOL__autoUpdates__,\n }\n})\n`\n\nexport interface GenerateCliConfigOptions {\n autoUpdates: boolean\n dataset: string\n projectId: string\n}\n\nexport function createCliConfig(options: GenerateCliConfigOptions): string {\n return processTemplate({\n includeBooleanTransform: true,\n template: defaultTemplate,\n variables: options,\n })\n}\n"],"names":["processTemplate","defaultTemplate","createCliConfig","options","includeBooleanTransform","template","variables"],"mappings":"AAAA,SAAQA,eAAe,QAAO,uBAAsB;AAEpD,MAAMC,kBAAkB,CAAC;;;;;;;;;;;;;;;;AAgBzB,CAAC;AAQD,OAAO,SAASC,gBAAgBC,OAAiC;IAC/D,OAAOH,gBAAgB;QACrBI,yBAAyB;QACzBC,UAAUJ;QACVK,WAAWH;IACb;AACF"}
|