@sanity/cli 5.1.1-next.6 → 6.0.0-alpha.3
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 +288 -2
- package/bin/run.cmd +3 -0
- package/bin/run.js +31 -0
- package/codemods/deskRename.js +115 -96
- package/codemods/partsTypeDirective.js +7 -7
- package/codemods/reactIconsV3.js +78 -51
- package/dist/SanityHelp.d.ts +4 -0
- package/dist/SanityHelp.js +43 -0
- package/dist/SanityHelp.js.map +1 -0
- package/dist/actions/auth/authServer.d.ts +33 -0
- package/dist/actions/auth/authServer.js +153 -0
- package/dist/actions/auth/authServer.js.map +1 -0
- package/dist/actions/auth/getProviderName.d.ts +8 -0
- package/dist/actions/auth/getProviderName.js +15 -0
- package/dist/actions/auth/getProviderName.js.map +1 -0
- package/dist/actions/auth/login/getProvider.d.ts +15 -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.d.ts +13 -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/index.d.ts +20 -0
- package/dist/actions/auth/login/index.js +93 -0
- package/dist/actions/auth/login/index.js.map +1 -0
- package/dist/actions/auth/login/promptProviders.d.ts +10 -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.d.ts +9 -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.d.ts +26 -0
- package/dist/actions/auth/types.js +7 -0
- package/dist/actions/auth/types.js.map +1 -0
- package/dist/actions/backup/archiveDir.d.ts +10 -0
- package/dist/actions/backup/archiveDir.js +43 -0
- package/dist/actions/backup/archiveDir.js.map +1 -0
- package/dist/actions/backup/assertDatasetExist.d.ts +8 -0
- package/dist/actions/backup/assertDatasetExist.js +16 -0
- package/dist/actions/backup/assertDatasetExist.js.map +1 -0
- package/dist/actions/backup/backupDownloadDebug.d.ts +1 -0
- package/dist/actions/backup/backupDownloadDebug.js +4 -0
- package/dist/actions/backup/backupDownloadDebug.js.map +1 -0
- package/dist/actions/backup/cleanupTmpDir.d.ts +6 -0
- package/dist/actions/backup/cleanupTmpDir.js +19 -0
- package/dist/actions/backup/cleanupTmpDir.js.map +1 -0
- package/dist/actions/backup/constants.d.ts +1 -0
- package/dist/actions/backup/constants.js +3 -0
- package/dist/actions/backup/constants.js.map +1 -0
- package/dist/actions/backup/downloadAsset.d.ts +9 -0
- package/dist/actions/backup/downloadAsset.js +54 -0
- package/dist/actions/backup/downloadAsset.js.map +1 -0
- package/dist/actions/backup/downloadDocument.d.ts +7 -0
- package/dist/actions/backup/downloadDocument.js +32 -0
- package/dist/actions/backup/downloadDocument.js.map +1 -0
- package/dist/actions/backup/fetchNextBackupPage.d.ts +23 -0
- package/dist/actions/backup/fetchNextBackupPage.js +48 -0
- package/dist/actions/backup/fetchNextBackupPage.js.map +1 -0
- package/dist/actions/backup/progressSpinner.d.ts +14 -0
- package/dist/actions/backup/progressSpinner.js +40 -0
- package/dist/actions/backup/progressSpinner.js.map +1 -0
- package/dist/actions/build/__tests__/buildApp.test.js +367 -0
- package/dist/actions/build/__tests__/buildApp.test.js.map +1 -0
- package/dist/actions/build/__tests__/buildStudio.test.js +561 -0
- package/dist/actions/build/__tests__/buildStudio.test.js.map +1 -0
- package/dist/actions/build/__tests__/checkRequiredDependencies.test.js +233 -0
- package/dist/actions/build/__tests__/checkRequiredDependencies.test.js.map +1 -0
- package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js +414 -0
- package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js.map +1 -0
- package/dist/actions/build/__tests__/determineBasePath.test.js +24 -0
- package/dist/actions/build/__tests__/determineBasePath.test.js.map +1 -0
- package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js +109 -0
- package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js.map +1 -0
- package/dist/actions/build/__tests__/getViteConfig.test.js +493 -0
- package/dist/actions/build/__tests__/getViteConfig.test.js.map +1 -0
- package/dist/actions/build/__tests__/renderDocument.test.js +278 -0
- package/dist/actions/build/__tests__/renderDocument.test.js.map +1 -0
- package/dist/actions/build/__tests__/shouldAutoUpdate.test.js +153 -0
- package/dist/actions/build/__tests__/shouldAutoUpdate.test.js.map +1 -0
- package/dist/actions/build/buildApp.d.ts +7 -0
- package/dist/actions/build/buildApp.js +159 -0
- package/dist/actions/build/buildApp.js.map +1 -0
- package/dist/actions/build/buildDebug.d.ts +1 -0
- package/dist/actions/build/buildDebug.js +4 -0
- package/dist/actions/build/buildDebug.js.map +1 -0
- package/dist/actions/build/buildStaticFiles.d.ts +35 -0
- package/dist/actions/build/buildStaticFiles.js +82 -0
- package/dist/actions/build/buildStaticFiles.js.map +1 -0
- package/dist/actions/build/buildStudio.d.ts +7 -0
- package/dist/actions/build/buildStudio.js +202 -0
- package/dist/actions/build/buildStudio.js.map +1 -0
- package/dist/actions/build/buildVendorDependencies.d.ts +11 -0
- package/dist/actions/build/buildVendorDependencies.js +179 -0
- package/dist/actions/build/buildVendorDependencies.js.map +1 -0
- package/dist/actions/build/checkRequiredDependencies.d.ts +22 -0
- package/dist/actions/build/checkRequiredDependencies.js +122 -0
- package/dist/actions/build/checkRequiredDependencies.js.map +1 -0
- package/dist/actions/build/checkStudioDependencyVersions.d.ts +2 -0
- package/dist/actions/build/checkStudioDependencyVersions.js +154 -0
- package/dist/actions/build/checkStudioDependencyVersions.js.map +1 -0
- package/dist/actions/build/createExternalFromImportMap.d.ts +11 -0
- package/dist/actions/build/createExternalFromImportMap.js +11 -0
- package/dist/actions/build/createExternalFromImportMap.js.map +1 -0
- package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.d.ts +6 -0
- package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.js +13 -0
- package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.js.map +1 -0
- package/dist/actions/build/decorateIndexWithBridgeScript.d.ts +8 -0
- package/dist/actions/build/decorateIndexWithBridgeScript.js +17 -0
- package/dist/actions/build/decorateIndexWithBridgeScript.js.map +1 -0
- package/dist/actions/build/determineBasePath.d.ts +7 -0
- package/dist/actions/build/determineBasePath.js +20 -0
- package/dist/actions/build/determineBasePath.js.map +1 -0
- package/dist/actions/build/generateWebManifest.d.ts +15 -0
- package/dist/actions/build/generateWebManifest.js +27 -0
- package/dist/actions/build/generateWebManifest.js.map +1 -0
- package/dist/actions/build/getAppEnvVars.d.ts +6 -0
- package/dist/actions/build/getAppEnvVars.js +9 -0
- package/dist/actions/build/getAppEnvVars.js.map +1 -0
- package/dist/actions/build/getAutoUpdatesImportMap.d.ts +21 -0
- package/dist/actions/build/getAutoUpdatesImportMap.js +57 -0
- package/dist/actions/build/getAutoUpdatesImportMap.js.map +1 -0
- package/dist/actions/build/getEntryModule.d.ts +7 -0
- package/dist/actions/build/getEntryModule.js +46 -0
- package/dist/actions/build/getEntryModule.js.map +1 -0
- package/dist/actions/build/getPossibleDocumentComponentLocations.d.ts +4 -0
- package/dist/actions/build/getPossibleDocumentComponentLocations.js +11 -0
- package/dist/actions/build/getPossibleDocumentComponentLocations.js.map +1 -0
- package/dist/actions/build/getStudioEnvVars.d.ts +6 -0
- package/dist/actions/build/getStudioEnvVars.js +9 -0
- package/dist/actions/build/getStudioEnvVars.js.map +1 -0
- package/dist/actions/build/getStudioEnvironmentVariables.d.ts +52 -0
- package/dist/actions/build/getStudioEnvironmentVariables.js +58 -0
- package/dist/actions/build/getStudioEnvironmentVariables.js.map +1 -0
- package/dist/actions/build/getViteConfig.d.ts +66 -0
- package/dist/actions/build/getViteConfig.js +180 -0
- package/dist/actions/build/getViteConfig.js.map +1 -0
- package/dist/actions/build/normalizeBasePath.d.ts +6 -0
- package/dist/actions/build/normalizeBasePath.js +9 -0
- package/dist/actions/build/normalizeBasePath.js.map +1 -0
- package/dist/actions/build/renderDocument.d.ts +15 -0
- package/dist/actions/build/renderDocument.js +54 -0
- package/dist/actions/build/renderDocument.js.map +1 -0
- package/dist/actions/build/renderDocument.worker.d.ts +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/__tests__/renderDocumentWorker.test.js +657 -0
- package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.d.ts +6 -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.d.ts +19 -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.d.ts +13 -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.d.ts +2 -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.d.ts +3 -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.d.ts +3 -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.d.ts +5 -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.d.ts +8 -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.d.ts +21 -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.d.ts +8 -0
- package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.js +29 -0
- package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/types.d.ts +8 -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.d.ts +16 -0
- package/dist/actions/build/shouldAutoUpdate.js +35 -0
- package/dist/actions/build/shouldAutoUpdate.js.map +1 -0
- package/dist/actions/build/types.d.ts +13 -0
- package/dist/actions/build/types.js +3 -0
- package/dist/actions/build/types.js.map +1 -0
- package/dist/actions/build/writeFavicons.d.ts +1 -0
- package/dist/actions/build/writeFavicons.js +26 -0
- package/dist/actions/build/writeFavicons.js.map +1 -0
- package/dist/actions/build/writeSanityRuntime.d.ts +19 -0
- package/dist/actions/build/writeSanityRuntime.js +61 -0
- package/dist/actions/build/writeSanityRuntime.js.map +1 -0
- package/dist/actions/build/writeWebManifest.d.ts +4 -0
- package/dist/actions/build/writeWebManifest.js +12 -0
- package/dist/actions/build/writeWebManifest.js.map +1 -0
- package/dist/actions/codemods/deskRename.d.ts +2 -0
- package/dist/actions/codemods/deskRename.js +18 -0
- package/dist/actions/codemods/deskRename.js.map +1 -0
- package/dist/actions/codemods/index.d.ts +5 -0
- package/dist/actions/codemods/index.js +10 -0
- package/dist/actions/codemods/index.js.map +1 -0
- package/dist/actions/codemods/partsTypeDirective.d.ts +2 -0
- package/dist/actions/codemods/partsTypeDirective.js +27 -0
- package/dist/actions/codemods/partsTypeDirective.js.map +1 -0
- package/dist/actions/codemods/reactIconsV3.d.ts +2 -0
- package/dist/actions/codemods/reactIconsV3.js +30 -0
- package/dist/actions/codemods/reactIconsV3.js.map +1 -0
- package/dist/actions/codemods/types.d.ts +8 -0
- package/dist/actions/codemods/types.js +3 -0
- package/dist/actions/codemods/types.js.map +1 -0
- package/dist/actions/cors/constants.d.ts +1 -0
- package/dist/actions/cors/constants.js +3 -0
- package/dist/actions/cors/constants.js.map +1 -0
- package/dist/actions/cors/filterAndValidateOrigin.d.ts +7 -0
- package/dist/actions/cors/filterAndValidateOrigin.js +38 -0
- package/dist/actions/cors/filterAndValidateOrigin.js.map +1 -0
- package/dist/actions/cors/types.d.ts +9 -0
- package/dist/actions/cors/types.js +3 -0
- package/dist/actions/cors/types.js.map +1 -0
- package/dist/actions/dataset/__tests__/validateDatasetName.test.js +182 -0
- package/dist/actions/dataset/__tests__/validateDatasetName.test.js.map +1 -0
- package/dist/actions/dataset/processAliasName.d.ts +9 -0
- package/dist/actions/dataset/processAliasName.js +20 -0
- package/dist/actions/dataset/processAliasName.js.map +1 -0
- package/dist/actions/dataset/validateDatasetAliasName.d.ts +1 -0
- package/dist/actions/dataset/validateDatasetAliasName.js +28 -0
- package/dist/actions/dataset/validateDatasetAliasName.js.map +1 -0
- package/dist/actions/dataset/validateDatasetName.d.ts +13 -0
- package/dist/actions/dataset/validateDatasetName.js +39 -0
- package/dist/actions/dataset/validateDatasetName.js.map +1 -0
- package/dist/actions/debug/gatherDebugInfo.d.ts +2 -0
- package/dist/actions/debug/gatherDebugInfo.js +110 -0
- package/dist/actions/debug/gatherDebugInfo.js.map +1 -0
- package/dist/actions/debug/getGlobalConfigLocation.d.ts +1 -0
- package/dist/actions/debug/getGlobalConfigLocation.js +7 -0
- package/dist/actions/debug/getGlobalConfigLocation.js.map +1 -0
- package/dist/actions/debug/types.d.ts +32 -0
- package/dist/actions/debug/types.js +3 -0
- package/dist/actions/debug/types.js.map +1 -0
- package/dist/actions/deploy/__tests__/checkDir.test.js +120 -0
- package/dist/actions/deploy/__tests__/checkDir.test.js.map +1 -0
- package/dist/actions/deploy/checkDir.d.ts +8 -0
- package/dist/actions/deploy/checkDir.js +31 -0
- package/dist/actions/deploy/checkDir.js.map +1 -0
- package/dist/actions/deploy/createStudioUserApplication.d.ts +2 -0
- package/dist/actions/deploy/createStudioUserApplication.js +59 -0
- package/dist/actions/deploy/createStudioUserApplication.js.map +1 -0
- package/dist/actions/deploy/createUserApplicationForApp.d.ts +2 -0
- package/dist/actions/deploy/createUserApplicationForApp.js +56 -0
- package/dist/actions/deploy/createUserApplicationForApp.js.map +1 -0
- package/dist/actions/deploy/deployApp.d.ts +7 -0
- package/dist/actions/deploy/deployApp.js +145 -0
- package/dist/actions/deploy/deployApp.js.map +1 -0
- package/dist/actions/deploy/deployDebug.d.ts +1 -0
- package/dist/actions/deploy/deployDebug.js +4 -0
- package/dist/actions/deploy/deployDebug.js.map +1 -0
- package/dist/actions/deploy/deployStudio.d.ts +2 -0
- package/dist/actions/deploy/deployStudio.js +133 -0
- package/dist/actions/deploy/deployStudio.js.map +1 -0
- package/dist/actions/deploy/findUserApplicationForApp.d.ts +15 -0
- package/dist/actions/deploy/findUserApplicationForApp.js +110 -0
- package/dist/actions/deploy/findUserApplicationForApp.js.map +1 -0
- package/dist/actions/deploy/findUserApplicationForStudio.d.ts +13 -0
- package/dist/actions/deploy/findUserApplicationForStudio.js +143 -0
- package/dist/actions/deploy/findUserApplicationForStudio.js.map +1 -0
- package/dist/actions/deploy/types.d.ts +11 -0
- package/dist/actions/deploy/types.js +3 -0
- package/dist/actions/deploy/types.js.map +1 -0
- package/dist/actions/dev/devAction.d.ts +4 -0
- package/dist/actions/dev/devAction.js +7 -0
- package/dist/actions/dev/devAction.js.map +1 -0
- package/dist/actions/dev/devDebug.d.ts +1 -0
- package/dist/actions/dev/devDebug.js +4 -0
- package/dist/actions/dev/devDebug.js.map +1 -0
- package/dist/actions/dev/getCoreAppUrl.d.ts +5 -0
- package/dist/actions/dev/getCoreAppUrl.js +10 -0
- package/dist/actions/dev/getCoreAppUrl.js.map +1 -0
- package/dist/actions/dev/getDevServerConfig.d.ts +9 -0
- package/dist/actions/dev/getDevServerConfig.js +28 -0
- package/dist/actions/dev/getDevServerConfig.js.map +1 -0
- package/dist/actions/dev/startAppDevServer.d.ts +4 -0
- package/dist/actions/dev/startAppDevServer.js +54 -0
- package/dist/actions/dev/startAppDevServer.js.map +1 -0
- package/dist/actions/dev/startStudioDevServer.d.ts +4 -0
- package/dist/actions/dev/startStudioDevServer.js +155 -0
- package/dist/actions/dev/startStudioDevServer.js.map +1 -0
- package/dist/actions/dev/types.d.ts +12 -0
- package/dist/actions/dev/types.js +3 -0
- package/dist/actions/dev/types.js.map +1 -0
- package/dist/actions/docs/__tests__/normalizeDocsPath.test.js +16 -0
- package/dist/actions/docs/__tests__/normalizeDocsPath.test.js.map +1 -0
- package/dist/actions/docs/normalizeDocsPath.d.ts +8 -0
- package/dist/actions/docs/normalizeDocsPath.js +15 -0
- package/dist/actions/docs/normalizeDocsPath.js.map +1 -0
- package/dist/actions/documents/constants.d.ts +1 -0
- package/dist/actions/documents/constants.js +3 -0
- package/dist/actions/documents/constants.js.map +1 -0
- package/dist/actions/documents/editor.d.ts +11 -0
- package/dist/actions/documents/editor.js +26 -0
- package/dist/actions/documents/editor.js.map +1 -0
- package/dist/actions/documents/types.d.ts +2 -0
- package/dist/actions/documents/types.js +3 -0
- package/dist/actions/documents/types.js.map +1 -0
- package/dist/actions/documents/validate.d.ts +28 -0
- package/dist/actions/documents/validate.js +51 -0
- package/dist/actions/documents/validate.js.map +1 -0
- package/dist/actions/documents/validation/reporters/index.d.ts +5 -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.d.ts +2 -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.d.ts +2 -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/__tests__/formatDocumentValidation.test.js +124 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.d.ts +10 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js +61 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/index.d.ts +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.d.ts +5 -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.d.ts +53 -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/execScript.d.ts +11 -0
- package/dist/actions/exec/execScript.js +73 -0
- package/dist/actions/exec/execScript.js.map +1 -0
- package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js +274 -0
- package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js.map +1 -0
- package/dist/actions/graphql/getGraphQLAPIs.d.ts +2 -0
- package/dist/actions/graphql/getGraphQLAPIs.js +65 -0
- package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -0
- package/dist/actions/graphql/getGraphQLAPIs.worker.d.ts +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/types.d.ts +68 -0
- package/dist/actions/graphql/types.js +3 -0
- package/dist/actions/graphql/types.js.map +1 -0
- package/dist/actions/hook/constants.d.ts +1 -0
- package/dist/actions/hook/constants.js +3 -0
- package/dist/actions/hook/constants.js.map +1 -0
- package/dist/actions/hook/formatFailure.d.ts +4 -0
- package/dist/actions/hook/formatFailure.js +29 -0
- package/dist/actions/hook/formatFailure.js.map +1 -0
- package/dist/actions/hook/types.d.ts +78 -0
- package/dist/actions/hook/types.js +3 -0
- package/dist/actions/hook/types.js.map +1 -0
- package/dist/actions/init/constants.d.ts +1 -0
- package/dist/actions/init/constants.js +3 -0
- package/dist/actions/init/constants.js.map +1 -0
- package/dist/actions/init/determineAppTemplate.d.ts +9 -0
- package/dist/actions/init/determineAppTemplate.js +16 -0
- package/dist/actions/init/determineAppTemplate.js.map +1 -0
- package/dist/actions/init/remoteTemplate.d.ts +23 -0
- package/dist/actions/init/remoteTemplate.js +249 -0
- package/dist/actions/init/remoteTemplate.js.map +1 -0
- package/dist/actions/manifest/SchemaIcon.d.ts +9 -0
- package/dist/actions/manifest/SchemaIcon.js +21 -0
- package/dist/actions/manifest/SchemaIcon.js.map +1 -0
- package/dist/actions/manifest/extractManifest.d.ts +14 -0
- package/dist/actions/manifest/extractManifest.js +96 -0
- package/dist/actions/manifest/extractManifest.js.map +1 -0
- package/dist/actions/manifest/extractWorkspaceManifest.d.ts +3 -0
- package/dist/actions/manifest/extractWorkspaceManifest.js +406 -0
- package/dist/actions/manifest/extractWorkspaceManifest.js.map +1 -0
- package/dist/actions/manifest/purifyConfig.d.ts +10 -0
- package/dist/actions/manifest/purifyConfig.js +307 -0
- package/dist/actions/manifest/purifyConfig.js.map +1 -0
- package/dist/actions/manifest/schemaTypeHelpers.d.ts +17 -0
- package/dist/actions/manifest/schemaTypeHelpers.js +110 -0
- package/dist/actions/manifest/schemaTypeHelpers.js.map +1 -0
- package/dist/actions/manifest/types.d.ts +114 -0
- package/dist/actions/manifest/types.js +5 -0
- package/dist/actions/manifest/types.js.map +1 -0
- package/dist/actions/mcp/detectAvailableEditors.d.ts +8 -0
- package/dist/actions/mcp/detectAvailableEditors.js +70 -0
- package/dist/actions/mcp/detectAvailableEditors.js.map +1 -0
- package/dist/actions/mcp/getEditorsWithExistingConfig.d.ts +8 -0
- package/dist/actions/mcp/getEditorsWithExistingConfig.js +29 -0
- package/dist/actions/mcp/getEditorsWithExistingConfig.js.map +1 -0
- package/dist/actions/mcp/writeMCPConfig.d.ts +9 -0
- package/dist/actions/mcp/writeMCPConfig.js +46 -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/__tests__/importMedia.test.js +182 -0
- package/dist/actions/media/__tests__/importMedia.test.js.map +1 -0
- package/dist/actions/media/getMediaLibraryConfig.d.ts +2 -0
- package/dist/actions/media/getMediaLibraryConfig.js +5 -0
- package/dist/actions/media/getMediaLibraryConfig.js.map +1 -0
- package/dist/actions/media/importAspects.d.ts +52 -0
- package/dist/actions/media/importAspects.js +111 -0
- package/dist/actions/media/importAspects.js.map +1 -0
- package/dist/actions/media/importMedia.d.ts +55 -0
- package/dist/actions/media/importMedia.js +213 -0
- package/dist/actions/media/importMedia.js.map +1 -0
- package/dist/actions/media/importMediaDebug.d.ts +1 -0
- package/dist/actions/media/importMediaDebug.js +4 -0
- package/dist/actions/media/importMediaDebug.js.map +1 -0
- package/dist/actions/migration/getMigrationRootDirectory.d.ts +2 -0
- package/dist/actions/migration/getMigrationRootDirectory.js +14 -0
- package/dist/actions/migration/getMigrationRootDirectory.js.map +1 -0
- package/dist/actions/migration/resolveMigrations.d.ts +19 -0
- package/dist/actions/migration/resolveMigrations.js +43 -0
- package/dist/actions/migration/resolveMigrations.js.map +1 -0
- package/dist/actions/migration/templates/__tests__/minimalAdvanced.test.js +65 -0
- package/dist/actions/migration/templates/__tests__/minimalAdvanced.test.js.map +1 -0
- package/dist/actions/migration/templates/__tests__/minimalSimple.test.js +145 -0
- package/dist/actions/migration/templates/__tests__/minimalSimple.test.js.map +1 -0
- package/dist/actions/migration/templates/__tests__/renameField.test.js +63 -0
- package/dist/actions/migration/templates/__tests__/renameField.test.js.map +1 -0
- package/dist/actions/migration/templates/__tests__/renameType.test.js +61 -0
- package/dist/actions/migration/templates/__tests__/renameType.test.js.map +1 -0
- package/dist/actions/migration/templates/__tests__/stringToPTE.test.js +87 -0
- package/dist/actions/migration/templates/__tests__/stringToPTE.test.js.map +1 -0
- package/dist/actions/migration/templates/index.d.ts +5 -0
- package/dist/actions/migration/templates/index.js +7 -0
- package/dist/actions/migration/templates/index.js.map +1 -0
- package/dist/actions/migration/templates/minimalAdvanced.d.ts +4 -0
- package/dist/actions/migration/templates/minimalAdvanced.js +21 -0
- package/dist/actions/migration/templates/minimalAdvanced.js.map +1 -0
- package/dist/actions/migration/templates/minimalSimple.d.ts +4 -0
- package/dist/actions/migration/templates/minimalSimple.js +61 -0
- package/dist/actions/migration/templates/minimalSimple.js.map +1 -0
- package/dist/actions/migration/templates/renameField.d.ts +4 -0
- package/dist/actions/migration/templates/renameField.js +20 -0
- package/dist/actions/migration/templates/renameField.js.map +1 -0
- package/dist/actions/migration/templates/renameType.d.ts +4 -0
- package/dist/actions/migration/templates/renameType.js +19 -0
- package/dist/actions/migration/templates/renameType.js.map +1 -0
- package/dist/actions/migration/templates/stringToPTE.d.ts +4 -0
- package/dist/actions/migration/templates/stringToPTE.js +32 -0
- package/dist/actions/migration/templates/stringToPTE.js.map +1 -0
- package/dist/actions/preview/getPreviewServerConfig.d.ts +15 -0
- package/dist/actions/preview/getPreviewServerConfig.js +16 -0
- package/dist/actions/preview/getPreviewServerConfig.js.map +1 -0
- package/dist/actions/preview/previewAction.d.ts +10 -0
- package/dist/actions/preview/previewAction.js +19 -0
- package/dist/actions/preview/previewAction.js.map +1 -0
- package/dist/actions/preview/types.d.ts +2 -0
- package/dist/actions/preview/types.js +3 -0
- package/dist/actions/preview/types.js.map +1 -0
- package/dist/actions/schema/__tests__/deleteSchemaAction.test.js +294 -0
- package/dist/actions/schema/__tests__/deleteSchemaAction.test.js.map +1 -0
- package/dist/actions/schema/__tests__/formatSchemaValidation.test.js +174 -0
- package/dist/actions/schema/__tests__/formatSchemaValidation.test.js.map +1 -0
- package/dist/actions/schema/__tests__/validateAction.test.js +281 -0
- package/dist/actions/schema/__tests__/validateAction.test.js.map +1 -0
- package/dist/actions/schema/deleteSchemaAction.d.ts +15 -0
- package/dist/actions/schema/deleteSchemaAction.js +106 -0
- package/dist/actions/schema/deleteSchemaAction.js.map +1 -0
- package/dist/actions/schema/extract.d.ts +7 -0
- package/dist/actions/schema/extract.js +38 -0
- package/dist/actions/schema/extract.js.map +1 -0
- package/dist/actions/schema/formatSchemaValidation.d.ts +3 -0
- package/dist/actions/schema/formatSchemaValidation.js +62 -0
- package/dist/actions/schema/formatSchemaValidation.js.map +1 -0
- package/dist/actions/schema/metafile.d.ts +21 -0
- package/dist/actions/schema/metafile.js +51 -0
- package/dist/actions/schema/metafile.js.map +1 -0
- package/dist/actions/schema/schemaStoreConstants.d.ts +1 -0
- package/dist/actions/schema/schemaStoreConstants.js +4 -0
- package/dist/actions/schema/schemaStoreConstants.js.map +1 -0
- package/dist/actions/schema/schemaStoreTypes.d.ts +29 -0
- package/dist/actions/schema/schemaStoreTypes.js +19 -0
- package/dist/actions/schema/schemaStoreTypes.js.map +1 -0
- package/dist/actions/schema/utils/manifestExtractor.d.ts +14 -0
- package/dist/actions/schema/utils/manifestExtractor.js +38 -0
- package/dist/actions/schema/utils/manifestExtractor.js.map +1 -0
- package/dist/actions/schema/utils/manifestReader.d.ts +24 -0
- package/dist/actions/schema/utils/manifestReader.js +77 -0
- package/dist/actions/schema/utils/manifestReader.js.map +1 -0
- package/dist/actions/schema/utils/schemaActionHelpers.d.ts +1 -0
- package/dist/actions/schema/utils/schemaActionHelpers.js +5 -0
- package/dist/actions/schema/utils/schemaActionHelpers.js.map +1 -0
- package/dist/actions/schema/utils/schemaApiClient.d.ts +6 -0
- package/dist/actions/schema/utils/schemaApiClient.js +17 -0
- package/dist/actions/schema/utils/schemaApiClient.js.map +1 -0
- package/dist/actions/schema/utils/schemaStoreOutStrings.d.ts +3 -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.d.ts +81 -0
- package/dist/actions/schema/utils/schemaStoreValidation.js +195 -0
- package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -0
- package/dist/actions/schema/utils/workspaceSchemaId.d.ts +8 -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.d.ts +11 -0
- package/dist/actions/schema/validateAction.js +81 -0
- package/dist/actions/schema/validateAction.js.map +1 -0
- package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js +27 -0
- package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js.map +1 -0
- package/dist/actions/telemetry/fetchTelemetryConsent.d.ts +11 -0
- package/dist/actions/telemetry/fetchTelemetryConsent.js +38 -0
- package/dist/actions/telemetry/fetchTelemetryConsent.js.map +1 -0
- package/dist/actions/telemetry/getLearnMoreMessage.d.ts +2 -0
- package/dist/actions/telemetry/getLearnMoreMessage.js +15 -0
- package/dist/actions/telemetry/getLearnMoreMessage.js.map +1 -0
- package/dist/actions/telemetry/getStatusDisplay.d.ts +2 -0
- package/dist/actions/telemetry/getStatusDisplay.js +26 -0
- package/dist/actions/telemetry/getStatusDisplay.js.map +1 -0
- package/dist/actions/telemetry/getStatusMessage.d.ts +2 -0
- package/dist/actions/telemetry/getStatusMessage.js +36 -0
- package/dist/actions/telemetry/getStatusMessage.js.map +1 -0
- package/dist/actions/telemetry/isValidApiConsentStatus.d.ts +20 -0
- package/dist/actions/telemetry/isValidApiConsentStatus.js +25 -0
- package/dist/actions/telemetry/isValidApiConsentStatus.js.map +1 -0
- package/dist/actions/telemetry/resolveConsent.d.ts +10 -0
- package/dist/actions/telemetry/resolveConsent.js +49 -0
- package/dist/actions/telemetry/resolveConsent.js.map +1 -0
- package/dist/actions/telemetry/setConsent.d.ts +16 -0
- package/dist/actions/telemetry/setConsent.js +87 -0
- package/dist/actions/telemetry/setConsent.js.map +1 -0
- package/dist/actions/telemetry/telemetryDebug.d.ts +1 -0
- package/dist/actions/telemetry/telemetryDebug.js +4 -0
- package/dist/actions/telemetry/telemetryDebug.js.map +1 -0
- package/dist/actions/telemetry/telemetryDisclosure.d.ts +1 -0
- package/dist/actions/telemetry/telemetryDisclosure.js +33 -0
- package/dist/actions/telemetry/telemetryDisclosure.js.map +1 -0
- package/dist/actions/telemetry/telemetryLearnMoreMessage.d.ts +2 -0
- package/dist/actions/telemetry/telemetryLearnMoreMessage.js +15 -0
- package/dist/actions/telemetry/telemetryLearnMoreMessage.js.map +1 -0
- package/dist/actions/telemetry/types.d.ts +14 -0
- package/dist/actions/telemetry/types.js +3 -0
- package/dist/actions/telemetry/types.js.map +1 -0
- package/dist/actions/tokens/constants.d.ts +4 -0
- package/dist/actions/tokens/constants.js +5 -0
- package/dist/actions/tokens/constants.js.map +1 -0
- package/dist/actions/tokens/types.d.ts +32 -0
- package/dist/actions/tokens/types.js +3 -0
- package/dist/actions/tokens/types.js.map +1 -0
- package/dist/actions/tokens/validateRole.d.ts +9 -0
- package/dist/actions/tokens/validateRole.js +23 -0
- package/dist/actions/tokens/validateRole.js.map +1 -0
- package/dist/actions/undeploy/getStudioOrAppUserApplication.d.ts +9 -0
- package/dist/actions/undeploy/getStudioOrAppUserApplication.js +36 -0
- package/dist/actions/undeploy/getStudioOrAppUserApplication.js.map +1 -0
- package/dist/actions/users/__tests__/validateEmail.test.js +16 -0
- package/dist/actions/users/__tests__/validateEmail.test.js.map +1 -0
- package/dist/actions/users/apiVersion.d.ts +6 -0
- package/dist/actions/users/apiVersion.js +7 -0
- package/dist/actions/users/apiVersion.js.map +1 -0
- package/dist/actions/users/getMembersForProject.d.ts +26 -0
- package/dist/actions/users/getMembersForProject.js +58 -0
- package/dist/actions/users/getMembersForProject.js.map +1 -0
- package/dist/actions/users/getPendingInvitations.d.ts +13 -0
- package/dist/actions/users/getPendingInvitations.js +15 -0
- package/dist/actions/users/getPendingInvitations.js.map +1 -0
- package/dist/actions/users/types.d.ts +50 -0
- package/dist/actions/users/types.js +3 -0
- package/dist/actions/users/types.js.map +1 -0
- package/dist/actions/users/usersDebug.d.ts +1 -0
- package/dist/actions/users/usersDebug.js +4 -0
- package/dist/actions/users/usersDebug.js.map +1 -0
- package/dist/actions/users/validateEmail.d.ts +1 -0
- package/dist/actions/users/validateEmail.js +14 -0
- package/dist/actions/users/validateEmail.js.map +1 -0
- package/dist/actions/versions/buildPackageArray.d.ts +18 -0
- package/dist/actions/versions/buildPackageArray.js +44 -0
- package/dist/actions/versions/buildPackageArray.js.map +1 -0
- package/dist/actions/versions/filterSanityModules.d.ts +8 -0
- package/dist/actions/versions/filterSanityModules.js +20 -0
- package/dist/actions/versions/filterSanityModules.js.map +1 -0
- package/dist/actions/versions/findSanityModulesVersions.d.ts +14 -0
- package/dist/actions/versions/findSanityModulesVersions.js +47 -0
- package/dist/actions/versions/findSanityModulesVersions.js.map +1 -0
- package/dist/actions/versions/getFormatters.d.ts +17 -0
- package/dist/actions/versions/getFormatters.js +30 -0
- package/dist/actions/versions/getFormatters.js.map +1 -0
- package/dist/actions/versions/tryFindLatestVersion.d.ts +8 -0
- package/dist/actions/versions/tryFindLatestVersion.js +21 -0
- package/dist/actions/versions/tryFindLatestVersion.js.map +1 -0
- package/dist/actions/versions/types.d.ts +14 -0
- package/dist/actions/versions/types.js +5 -0
- package/dist/actions/versions/types.js.map +1 -0
- package/dist/actions/versions/versionsDebug.d.ts +1 -0
- package/dist/actions/versions/versionsDebug.js +4 -0
- package/dist/actions/versions/versionsDebug.js.map +1 -0
- package/dist/commands/__tests__/blueprints.test.js +54 -0
- package/dist/commands/__tests__/blueprints.test.js.map +1 -0
- package/dist/commands/__tests__/build.test.js +132 -0
- package/dist/commands/__tests__/build.test.js.map +1 -0
- package/dist/commands/__tests__/codemod.test.js +271 -0
- package/dist/commands/__tests__/codemod.test.js.map +1 -0
- package/dist/commands/__tests__/debug.test.js +697 -0
- package/dist/commands/__tests__/debug.test.js.map +1 -0
- package/dist/commands/__tests__/deploy.test.js +1913 -0
- package/dist/commands/__tests__/deploy.test.js.map +1 -0
- package/dist/commands/__tests__/dev.test.js +410 -0
- package/dist/commands/__tests__/dev.test.js.map +1 -0
- package/dist/commands/__tests__/exec.test.js +207 -0
- package/dist/commands/__tests__/exec.test.js.map +1 -0
- package/dist/commands/__tests__/init.test.js +411 -0
- package/dist/commands/__tests__/init.test.js.map +1 -0
- package/dist/commands/__tests__/install.test.js +258 -0
- package/dist/commands/__tests__/install.test.js.map +1 -0
- package/dist/commands/__tests__/learn.test.js +29 -0
- package/dist/commands/__tests__/learn.test.js.map +1 -0
- package/dist/commands/__tests__/logout.test.js +88 -0
- package/dist/commands/__tests__/logout.test.js.map +1 -0
- package/dist/commands/__tests__/manage.test.js +105 -0
- package/dist/commands/__tests__/manage.test.js.map +1 -0
- package/dist/commands/__tests__/preview.test.js +261 -0
- package/dist/commands/__tests__/preview.test.js.map +1 -0
- package/dist/commands/__tests__/start.test.js +253 -0
- package/dist/commands/__tests__/start.test.js.map +1 -0
- package/dist/commands/__tests__/undeploy.test.js +382 -0
- package/dist/commands/__tests__/undeploy.test.js.map +1 -0
- package/dist/commands/__tests__/versions.test.js +134 -0
- package/dist/commands/__tests__/versions.test.js.map +1 -0
- package/dist/commands/backup/__tests__/disable.test.js +207 -0
- package/dist/commands/backup/__tests__/disable.test.js.map +1 -0
- package/dist/commands/backup/__tests__/download.test.js +679 -0
- package/dist/commands/backup/__tests__/download.test.js.map +1 -0
- package/dist/commands/backup/__tests__/enable.test.js +317 -0
- package/dist/commands/backup/__tests__/enable.test.js.map +1 -0
- package/dist/commands/backup/__tests__/list.test.js +321 -0
- package/dist/commands/backup/__tests__/list.test.js.map +1 -0
- package/dist/commands/backup/disable.d.ts +13 -0
- package/dist/commands/backup/disable.js +99 -0
- package/dist/commands/backup/disable.js.map +1 -0
- package/dist/commands/backup/download.d.ts +21 -0
- package/dist/commands/backup/download.js +291 -0
- package/dist/commands/backup/download.js.map +1 -0
- package/dist/commands/backup/enable.d.ts +12 -0
- package/dist/commands/backup/enable.js +105 -0
- package/dist/commands/backup/enable.js.map +1 -0
- package/dist/commands/backup/list.d.ts +19 -0
- package/dist/commands/backup/list.js +188 -0
- package/dist/commands/backup/list.js.map +1 -0
- package/dist/commands/build.d.ts +18 -0
- package/dist/commands/build.js +82 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/codemod.d.ts +19 -0
- package/dist/commands/codemod.js +141 -0
- package/dist/commands/codemod.js.map +1 -0
- package/dist/commands/cors/__tests__/add.test.js +346 -0
- package/dist/commands/cors/__tests__/add.test.js.map +1 -0
- package/dist/commands/cors/__tests__/delete.test.js +293 -0
- package/dist/commands/cors/__tests__/delete.test.js.map +1 -0
- package/dist/commands/cors/__tests__/list.test.js +218 -0
- package/dist/commands/cors/__tests__/list.test.js.map +1 -0
- package/dist/commands/cors/add.d.ts +29 -0
- package/dist/commands/cors/add.js +158 -0
- package/dist/commands/cors/add.js.map +1 -0
- package/dist/commands/cors/delete.d.ts +13 -0
- package/dist/commands/cors/delete.js +98 -0
- package/dist/commands/cors/delete.js.map +1 -0
- package/dist/commands/cors/list.d.ts +9 -0
- package/dist/commands/cors/list.js +48 -0
- package/dist/commands/cors/list.js.map +1 -0
- package/dist/commands/dataset/__tests__/copy.test.js +520 -0
- package/dist/commands/dataset/__tests__/copy.test.js.map +1 -0
- package/dist/commands/dataset/__tests__/create.test.js +312 -0
- package/dist/commands/dataset/__tests__/create.test.js.map +1 -0
- package/dist/commands/dataset/__tests__/delete.test.js +224 -0
- package/dist/commands/dataset/__tests__/delete.test.js.map +1 -0
- package/dist/commands/dataset/__tests__/export.test.js +561 -0
- package/dist/commands/dataset/__tests__/export.test.js.map +1 -0
- package/dist/commands/dataset/__tests__/import.test.js +53 -0
- package/dist/commands/dataset/__tests__/import.test.js.map +1 -0
- package/dist/commands/dataset/__tests__/list.test.js +174 -0
- package/dist/commands/dataset/__tests__/list.test.js.map +1 -0
- package/dist/commands/dataset/alias/__tests__/create.test.js +299 -0
- package/dist/commands/dataset/alias/__tests__/create.test.js.map +1 -0
- package/dist/commands/dataset/alias/__tests__/delete.test.js +236 -0
- package/dist/commands/dataset/alias/__tests__/delete.test.js.map +1 -0
- package/dist/commands/dataset/alias/__tests__/link.test.js +336 -0
- package/dist/commands/dataset/alias/__tests__/link.test.js.map +1 -0
- package/dist/commands/dataset/alias/__tests__/unlink.test.js +298 -0
- package/dist/commands/dataset/alias/__tests__/unlink.test.js.map +1 -0
- package/dist/commands/dataset/alias/create.d.ts +13 -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.d.ts +16 -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.d.ts +17 -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.d.ts +16 -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.d.ts +27 -0
- package/dist/commands/dataset/copy.js +368 -0
- package/dist/commands/dataset/copy.js.map +1 -0
- package/dist/commands/dataset/create.d.ts +17 -0
- package/dist/commands/dataset/create.js +145 -0
- package/dist/commands/dataset/create.js.map +1 -0
- package/dist/commands/dataset/delete.d.ts +15 -0
- package/dist/commands/dataset/delete.js +94 -0
- package/dist/commands/dataset/delete.js.map +1 -0
- package/dist/commands/dataset/export.d.ts +26 -0
- package/dist/commands/dataset/export.js +272 -0
- package/dist/commands/dataset/export.js.map +1 -0
- package/dist/commands/dataset/import.d.ts +1 -0
- package/dist/commands/dataset/import.js +3 -0
- package/dist/commands/dataset/import.js.map +1 -0
- package/dist/commands/dataset/list.d.ts +9 -0
- package/dist/commands/dataset/list.js +50 -0
- package/dist/commands/dataset/list.js.map +1 -0
- package/dist/commands/dataset/visibility/__tests__/get.test.js +147 -0
- package/dist/commands/dataset/visibility/__tests__/get.test.js.map +1 -0
- package/dist/commands/dataset/visibility/__tests__/set.test.js +245 -0
- package/dist/commands/dataset/visibility/__tests__/set.test.js.map +1 -0
- package/dist/commands/dataset/visibility/get.d.ts +12 -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.d.ts +13 -0
- package/dist/commands/dataset/visibility/set.js +88 -0
- package/dist/commands/dataset/visibility/set.js.map +1 -0
- package/dist/commands/debug.d.ts +9 -0
- package/dist/commands/debug.js +97 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/deploy.d.ts +23 -0
- package/dist/commands/deploy.js +115 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.d.ts +14 -0
- package/dist/commands/dev.js +63 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/docs/__tests__/browse.test.js +29 -0
- package/dist/commands/docs/__tests__/browse.test.js.map +1 -0
- package/dist/commands/docs/__tests__/read.test.js +78 -0
- package/dist/commands/docs/__tests__/read.test.js.map +1 -0
- package/dist/commands/docs/__tests__/search.test.js +254 -0
- package/dist/commands/docs/__tests__/search.test.js.map +1 -0
- package/dist/commands/docs/browse.d.ts +6 -0
- package/dist/commands/docs/browse.js +15 -0
- package/dist/commands/docs/browse.js.map +1 -0
- package/dist/commands/docs/read.d.ts +15 -0
- package/dist/commands/docs/read.js +81 -0
- package/dist/commands/docs/read.js.map +1 -0
- package/dist/commands/docs/search.d.ts +15 -0
- package/dist/commands/docs/search.js +110 -0
- package/dist/commands/docs/search.js.map +1 -0
- package/dist/commands/documents/__tests__/create.test.js +967 -0
- package/dist/commands/documents/__tests__/create.test.js.map +1 -0
- package/dist/commands/documents/__tests__/delete.test.js +268 -0
- package/dist/commands/documents/__tests__/delete.test.js.map +1 -0
- package/dist/commands/documents/__tests__/get.test.js +209 -0
- package/dist/commands/documents/__tests__/get.test.js.map +1 -0
- package/dist/commands/documents/__tests__/query.test.js +405 -0
- package/dist/commands/documents/__tests__/query.test.js.map +1 -0
- package/dist/commands/documents/__tests__/validate.test.js +226 -0
- package/dist/commands/documents/__tests__/validate.test.js.map +1 -0
- package/dist/commands/documents/create.d.ts +38 -0
- package/dist/commands/documents/create.js +337 -0
- package/dist/commands/documents/create.js.map +1 -0
- package/dist/commands/documents/delete.d.ts +17 -0
- package/dist/commands/documents/delete.js +105 -0
- package/dist/commands/documents/delete.js.map +1 -0
- package/dist/commands/documents/get.d.ts +16 -0
- package/dist/commands/documents/get.js +86 -0
- package/dist/commands/documents/get.js.map +1 -0
- package/dist/commands/documents/query.d.ts +19 -0
- package/dist/commands/documents/query.js +106 -0
- package/dist/commands/documents/query.js.map +1 -0
- package/dist/commands/documents/validate.d.ts +29 -0
- package/dist/commands/documents/validate.js +158 -0
- package/dist/commands/documents/validate.js.map +1 -0
- package/dist/commands/exec.d.ts +19 -0
- package/dist/commands/exec.js +54 -0
- package/dist/commands/exec.js.map +1 -0
- package/dist/commands/graphql/__tests__/list.test.js +228 -0
- package/dist/commands/graphql/__tests__/list.test.js.map +1 -0
- package/dist/commands/graphql/__tests__/undeploy.test.js +384 -0
- package/dist/commands/graphql/__tests__/undeploy.test.js.map +1 -0
- package/dist/commands/graphql/list.d.ts +9 -0
- package/dist/commands/graphql/list.js +53 -0
- package/dist/commands/graphql/list.js.map +1 -0
- package/dist/commands/graphql/undeploy.d.ts +16 -0
- package/dist/commands/graphql/undeploy.js +148 -0
- package/dist/commands/graphql/undeploy.js.map +1 -0
- package/dist/commands/hook/__tests__/attempt.test.js +260 -0
- package/dist/commands/hook/__tests__/attempt.test.js.map +1 -0
- package/dist/commands/hook/__tests__/create.test.js +121 -0
- package/dist/commands/hook/__tests__/create.test.js.map +1 -0
- package/dist/commands/hook/__tests__/delete.test.js +220 -0
- package/dist/commands/hook/__tests__/delete.test.js.map +1 -0
- package/dist/commands/hook/__tests__/list.test.js +138 -0
- package/dist/commands/hook/__tests__/list.test.js.map +1 -0
- package/dist/commands/hook/__tests__/logs.test.js +770 -0
- package/dist/commands/hook/__tests__/logs.test.js.map +1 -0
- package/dist/commands/hook/attempt.d.ts +13 -0
- package/dist/commands/hook/attempt.js +66 -0
- package/dist/commands/hook/attempt.js.map +1 -0
- package/dist/commands/hook/create.d.ts +9 -0
- package/dist/commands/hook/create.js +50 -0
- package/dist/commands/hook/create.js.map +1 -0
- package/dist/commands/hook/delete.d.ts +13 -0
- package/dist/commands/hook/delete.js +98 -0
- package/dist/commands/hook/delete.js.map +1 -0
- package/dist/commands/hook/list.d.ts +9 -0
- package/dist/commands/hook/list.js +52 -0
- package/dist/commands/hook/list.js.map +1 -0
- package/dist/commands/hook/logs.d.ts +19 -0
- package/dist/commands/hook/logs.js +184 -0
- package/dist/commands/hook/logs.js.map +1 -0
- package/dist/commands/init.d.ts +46 -0
- package/dist/commands/init.js +397 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install.d.ts +10 -0
- package/dist/commands/install.js +43 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/learn.d.ts +6 -0
- package/dist/commands/learn.js +15 -0
- package/dist/commands/learn.js.map +1 -0
- package/dist/commands/login.d.ts +13 -0
- package/dist/commands/login.js +50 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +6 -0
- package/dist/commands/logout.js +37 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/manage.d.ts +6 -0
- package/dist/commands/manage.js +28 -0
- package/dist/commands/manage.js.map +1 -0
- package/dist/commands/manifest/__tests__/extract.test.js +123 -0
- package/dist/commands/manifest/__tests__/extract.test.js.map +1 -0
- package/dist/commands/manifest/extract.d.ts +12 -0
- package/dist/commands/manifest/extract.js +44 -0
- package/dist/commands/manifest/extract.js.map +1 -0
- package/dist/commands/mcp/__tests__/configure.test.js +397 -0
- package/dist/commands/mcp/__tests__/configure.test.js.map +1 -0
- package/dist/commands/mcp/configure.d.ts +9 -0
- package/dist/commands/mcp/configure.js +89 -0
- package/dist/commands/mcp/configure.js.map +1 -0
- package/dist/commands/media/__tests__/create-aspect.test.js +160 -0
- package/dist/commands/media/__tests__/create-aspect.test.js.map +1 -0
- package/dist/commands/media/__tests__/delete-aspect.test.js +333 -0
- package/dist/commands/media/__tests__/delete-aspect.test.js.map +1 -0
- package/dist/commands/media/__tests__/deploy-aspect.test.js +632 -0
- package/dist/commands/media/__tests__/deploy-aspect.test.js.map +1 -0
- package/dist/commands/media/__tests__/export.test.js +398 -0
- package/dist/commands/media/__tests__/export.test.js.map +1 -0
- package/dist/commands/media/__tests__/import.test.js +281 -0
- package/dist/commands/media/__tests__/import.test.js.map +1 -0
- package/dist/commands/media/create-aspect.d.ts +9 -0
- package/dist/commands/media/create-aspect.js +87 -0
- package/dist/commands/media/create-aspect.js.map +1 -0
- package/dist/commands/media/delete-aspect.d.ts +16 -0
- package/dist/commands/media/delete-aspect.js +84 -0
- package/dist/commands/media/delete-aspect.js.map +1 -0
- package/dist/commands/media/deploy-aspect.d.ts +20 -0
- package/dist/commands/media/deploy-aspect.js +150 -0
- package/dist/commands/media/deploy-aspect.js.map +1 -0
- package/dist/commands/media/export.d.ts +21 -0
- package/dist/commands/media/export.js +211 -0
- package/dist/commands/media/export.js.map +1 -0
- package/dist/commands/media/import.d.ts +18 -0
- package/dist/commands/media/import.js +160 -0
- package/dist/commands/media/import.js.map +1 -0
- package/dist/commands/migration/__tests__/create.test.js +296 -0
- package/dist/commands/migration/__tests__/create.test.js.map +1 -0
- package/dist/commands/migration/__tests__/list.test.js +166 -0
- package/dist/commands/migration/__tests__/list.test.js.map +1 -0
- package/dist/commands/migration/__tests__/run.test.js +481 -0
- package/dist/commands/migration/__tests__/run.test.js.map +1 -0
- package/dist/commands/migration/create.d.ts +17 -0
- package/dist/commands/migration/create.js +143 -0
- package/dist/commands/migration/create.js.map +1 -0
- package/dist/commands/migration/list.d.ts +9 -0
- package/dist/commands/migration/list.js +61 -0
- package/dist/commands/migration/list.js.map +1 -0
- package/dist/commands/migration/run.d.ts +26 -0
- package/dist/commands/migration/run.js +271 -0
- package/dist/commands/migration/run.js.map +1 -0
- package/dist/commands/openapi/__tests__/get.test.js +149 -0
- package/dist/commands/openapi/__tests__/get.test.js.map +1 -0
- package/dist/commands/openapi/__tests__/list.test.js +113 -0
- package/dist/commands/openapi/__tests__/list.test.js.map +1 -0
- package/dist/commands/openapi/get.d.ts +17 -0
- package/dist/commands/openapi/get.js +83 -0
- package/dist/commands/openapi/get.js.map +1 -0
- package/dist/commands/openapi/list.d.ts +14 -0
- package/dist/commands/openapi/list.js +80 -0
- package/dist/commands/openapi/list.js.map +1 -0
- package/dist/commands/preview.d.ts +17 -0
- package/dist/commands/preview.js +74 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/projects/__tests__/list.test.js +153 -0
- package/dist/commands/projects/__tests__/list.test.js.map +1 -0
- package/dist/commands/projects/list.d.ts +13 -0
- package/dist/commands/projects/list.js +80 -0
- package/dist/commands/projects/list.js.map +1 -0
- package/dist/commands/schema/__tests__/delete.test.js +209 -0
- package/dist/commands/schema/__tests__/delete.test.js.map +1 -0
- package/dist/commands/schema/__tests__/extract.test.js +113 -0
- package/dist/commands/schema/__tests__/extract.test.js.map +1 -0
- package/dist/commands/schema/__tests__/validate.test.js +104 -0
- package/dist/commands/schema/__tests__/validate.test.js.map +1 -0
- package/dist/commands/schema/delete.d.ts +16 -0
- package/dist/commands/schema/delete.js +94 -0
- package/dist/commands/schema/delete.js.map +1 -0
- package/dist/commands/schema/extract.d.ts +15 -0
- package/dist/commands/schema/extract.js +51 -0
- package/dist/commands/schema/extract.js.map +1 -0
- package/dist/commands/schema/validate.d.ts +15 -0
- package/dist/commands/schema/validate.js +65 -0
- package/dist/commands/schema/validate.js.map +1 -0
- package/dist/commands/telemetry/__tests__/disable.test.js +145 -0
- package/dist/commands/telemetry/__tests__/disable.test.js.map +1 -0
- package/dist/commands/telemetry/__tests__/enable.test.js +131 -0
- package/dist/commands/telemetry/__tests__/enable.test.js.map +1 -0
- package/dist/commands/telemetry/__tests__/status.test.js +153 -0
- package/dist/commands/telemetry/__tests__/status.test.js.map +1 -0
- package/dist/commands/telemetry/disable.d.ts +8 -0
- package/dist/commands/telemetry/disable.js +34 -0
- package/dist/commands/telemetry/disable.js.map +1 -0
- package/dist/commands/telemetry/enable.d.ts +8 -0
- package/dist/commands/telemetry/enable.js +34 -0
- package/dist/commands/telemetry/enable.js.map +1 -0
- package/dist/commands/telemetry/status.d.ts +8 -0
- package/dist/commands/telemetry/status.js +27 -0
- package/dist/commands/telemetry/status.js.map +1 -0
- package/dist/commands/tokens/__tests__/add.test.js +420 -0
- package/dist/commands/tokens/__tests__/add.test.js.map +1 -0
- package/dist/commands/tokens/__tests__/delete.test.js +375 -0
- package/dist/commands/tokens/__tests__/delete.test.js.map +1 -0
- package/dist/commands/tokens/__tests__/list.test.js +368 -0
- package/dist/commands/tokens/__tests__/list.test.js.map +1 -0
- package/dist/commands/tokens/add.d.ts +19 -0
- package/dist/commands/tokens/add.js +137 -0
- package/dist/commands/tokens/add.js.map +1 -0
- package/dist/commands/tokens/delete.d.ts +17 -0
- package/dist/commands/tokens/delete.js +107 -0
- package/dist/commands/tokens/delete.js.map +1 -0
- package/dist/commands/tokens/list.d.ts +12 -0
- package/dist/commands/tokens/list.js +92 -0
- package/dist/commands/tokens/list.js.map +1 -0
- package/dist/commands/undeploy.d.ts +8 -0
- package/dist/commands/undeploy.js +92 -0
- package/dist/commands/undeploy.js.map +1 -0
- package/dist/commands/users/__tests__/invite.test.js +341 -0
- package/dist/commands/users/__tests__/invite.test.js.map +1 -0
- package/dist/commands/users/__tests__/list.test.js +401 -0
- package/dist/commands/users/__tests__/list.test.js.map +1 -0
- package/dist/commands/users/invite.d.ts +17 -0
- package/dist/commands/users/invite.js +111 -0
- package/dist/commands/users/invite.js.map +1 -0
- package/dist/commands/users/list.d.ts +16 -0
- package/dist/commands/users/list.js +104 -0
- package/dist/commands/users/list.js.map +1 -0
- package/dist/commands/versions.d.ts +6 -0
- package/dist/commands/versions.js +27 -0
- package/dist/commands/versions.js.map +1 -0
- package/dist/config/createCliConfig.d.ts +64 -0
- package/dist/config/createCliConfig.js +8 -0
- package/dist/config/createCliConfig.js.map +1 -0
- package/dist/config/defineCliConfig.d.ts +3 -0
- package/dist/config/defineCliConfig.js +5 -0
- package/dist/config/defineCliConfig.js.map +1 -0
- package/dist/hooks/prerun/__tests__/setupTelemetry.test.js +77 -0
- package/dist/hooks/prerun/__tests__/setupTelemetry.test.js.map +1 -0
- package/dist/hooks/prerun/setupTelemetry.d.ts +2 -0
- package/dist/hooks/prerun/setupTelemetry.js +7 -0
- package/dist/hooks/prerun/setupTelemetry.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/promptForDataset.d.ts +17 -0
- package/dist/prompts/promptForDataset.js +32 -0
- package/dist/prompts/promptForDataset.js.map +1 -0
- package/dist/prompts/promptForDatasetAliasName.d.ts +4 -0
- package/dist/prompts/promptForDatasetAliasName.js +17 -0
- package/dist/prompts/promptForDatasetAliasName.js.map +1 -0
- package/dist/prompts/promptForDatasetName.d.ts +4 -0
- package/dist/prompts/promptForDatasetName.js +17 -0
- package/dist/prompts/promptForDatasetName.js.map +1 -0
- package/dist/prompts/promptForMediaLibrary.d.ts +15 -0
- package/dist/prompts/promptForMediaLibrary.js +37 -0
- package/dist/prompts/promptForMediaLibrary.js.map +1 -0
- package/dist/prompts/selectDataset.d.ts +3 -0
- package/dist/prompts/selectDataset.js +12 -0
- package/dist/prompts/selectDataset.js.map +1 -0
- package/dist/prompts/selectMediaLibrary.d.ts +5 -0
- package/dist/prompts/selectMediaLibrary.js +34 -0
- package/dist/prompts/selectMediaLibrary.js.map +1 -0
- package/dist/server/devServer.d.ts +24 -0
- package/dist/server/devServer.js +53 -0
- package/dist/server/devServer.js.map +1 -0
- package/dist/server/gracefulServerDeath.d.ts +3 -0
- package/dist/server/gracefulServerDeath.js +12 -0
- package/dist/server/gracefulServerDeath.js.map +1 -0
- package/dist/server/previewServer.d.ts +19 -0
- package/dist/server/previewServer.js +87 -0
- package/dist/server/previewServer.js.map +1 -0
- package/dist/server/serverDebug.d.ts +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.d.ts +2 -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.d.ts +9 -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.d.ts +17 -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.d.ts +2 -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/__tests__/datasetAliases.test.js +131 -0
- package/dist/services/__tests__/datasetAliases.test.js.map +1 -0
- package/dist/services/__tests__/datasets.test.js +436 -0
- package/dist/services/__tests__/datasets.test.js.map +1 -0
- package/dist/services/__tests__/graphql.test.js +43 -0
- package/dist/services/__tests__/graphql.test.js.map +1 -0
- package/dist/services/__tests__/mediaLibraries.test.js +88 -0
- package/dist/services/__tests__/mediaLibraries.test.js.map +1 -0
- package/dist/services/__tests__/projects.test.js +41 -0
- package/dist/services/__tests__/projects.test.js.map +1 -0
- package/dist/services/__tests__/userApplications.test.js +113 -0
- package/dist/services/__tests__/userApplications.test.js.map +1 -0
- package/dist/services/auth.d.ts +2 -0
- package/dist/services/auth.js +13 -0
- package/dist/services/auth.js.map +1 -0
- package/dist/services/backup.d.ts +29 -0
- package/dist/services/backup.js +32 -0
- package/dist/services/backup.js.map +1 -0
- package/dist/services/datasetAliases.d.ts +31 -0
- package/dist/services/datasetAliases.js +64 -0
- package/dist/services/datasetAliases.js.map +1 -0
- package/dist/services/datasets.d.ts +64 -0
- package/dist/services/datasets.js +153 -0
- package/dist/services/datasets.js.map +1 -0
- package/dist/services/docs.d.ts +15 -0
- package/dist/services/docs.js +46 -0
- package/dist/services/docs.js.map +1 -0
- package/dist/services/getProjectFeatures.d.ts +5 -0
- package/dist/services/getProjectFeatures.js +16 -0
- package/dist/services/getProjectFeatures.js.map +1 -0
- package/dist/services/graphql.d.ts +16 -0
- package/dist/services/graphql.js +21 -0
- package/dist/services/graphql.js.map +1 -0
- package/dist/services/hooks.d.ts +14 -0
- package/dist/services/hooks.js +40 -0
- package/dist/services/hooks.js.map +1 -0
- package/dist/services/mcp.d.ts +29 -0
- package/dist/services/mcp.js +34 -0
- package/dist/services/mcp.js.map +1 -0
- package/dist/services/mediaLibraries.d.ts +52 -0
- package/dist/services/mediaLibraries.js +74 -0
- package/dist/services/mediaLibraries.js.map +1 -0
- package/dist/services/plans.d.ts +2 -0
- package/dist/services/plans.js +37 -0
- package/dist/services/plans.js.map +1 -0
- package/dist/services/projects.d.ts +2 -0
- package/dist/services/projects.js +12 -0
- package/dist/services/projects.js.map +1 -0
- package/dist/services/tokens.d.ts +43 -0
- package/dist/services/tokens.js +72 -0
- package/dist/services/tokens.js.map +1 -0
- package/dist/services/userApplications.d.ts +75 -0
- package/dist/services/userApplications.js +160 -0
- package/dist/services/userApplications.js.map +1 -0
- package/dist/threads/configClient.d.ts +1 -0
- package/dist/threads/configClient.js +9 -0
- package/dist/threads/configClient.js.map +1 -0
- package/dist/threads/registerBrowserEnv.d.ts +1 -0
- package/dist/threads/registerBrowserEnv.js +17 -0
- package/dist/threads/registerBrowserEnv.js.map +1 -0
- package/dist/threads/validateDocuments.d.ts +45 -0
- package/dist/threads/validateDocuments.js +251 -0
- package/dist/threads/validateDocuments.js.map +1 -0
- package/dist/threads/validateSchema.d.ts +35 -0
- package/dist/threads/validateSchema.js +115 -0
- package/dist/threads/validateSchema.js.map +1 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/util/__tests__/appId.test.js +31 -0
- package/dist/util/__tests__/appId.test.js.map +1 -0
- package/dist/util/__tests__/cliClient.test.js +184 -0
- package/dist/util/__tests__/cliClient.test.js.map +1 -0
- package/dist/util/__tests__/compareDependencyVersions.test.js +426 -0
- package/dist/util/__tests__/compareDependencyVersions.test.js.map +1 -0
- package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js +74 -0
- package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js.map +1 -0
- package/dist/util/__tests__/findNdjsonEntry.test.js +54 -0
- package/dist/util/__tests__/findNdjsonEntry.test.js.map +1 -0
- package/dist/util/__tests__/getCliVersion.test.js +28 -0
- package/dist/util/__tests__/getCliVersion.test.js.map +1 -0
- package/dist/util/__tests__/getLocalPackageVersion.test.js +84 -0
- package/dist/util/__tests__/getLocalPackageVersion.test.js.map +1 -0
- package/dist/util/__tests__/getWorkspace.test.js +37 -0
- package/dist/util/__tests__/getWorkspace.test.js.map +1 -0
- package/dist/util/__tests__/readPackageJson.test.js +69 -0
- package/dist/util/__tests__/readPackageJson.test.js.map +1 -0
- package/dist/util/__tests__/warnAboutMissingAppId.test.js +28 -0
- package/dist/util/__tests__/warnAboutMissingAppId.test.js.map +1 -0
- package/dist/util/absolutify.d.ts +6 -0
- package/dist/util/absolutify.js +26 -0
- package/dist/util/absolutify.js.map +1 -0
- package/dist/util/appId.d.ts +18 -0
- package/dist/util/appId.js +58 -0
- package/dist/util/appId.js.map +1 -0
- package/dist/util/canLaunchBrowser.d.ts +1 -0
- package/dist/util/canLaunchBrowser.js +14 -0
- package/dist/util/canLaunchBrowser.js.map +1 -0
- package/dist/util/cliClient.d.ts +13 -0
- package/dist/util/cliClient.js +40 -0
- package/dist/util/cliClient.js.map +1 -0
- package/dist/util/compareDependencyVersions.d.ts +35 -0
- package/dist/util/compareDependencyVersions.js +73 -0
- package/dist/util/compareDependencyVersions.js.map +1 -0
- package/dist/util/copyDir.d.ts +20 -0
- package/dist/util/copyDir.js +63 -0
- package/dist/util/copyDir.js.map +1 -0
- package/dist/util/determineIsApp.d.ts +7 -0
- package/dist/util/determineIsApp.js +9 -0
- package/dist/util/determineIsApp.js.map +1 -0
- package/dist/util/dirIsEmptyOrNonExistent.d.ts +1 -0
- package/dist/util/dirIsEmptyOrNonExistent.js +18 -0
- package/dist/util/dirIsEmptyOrNonExistent.js.map +1 -0
- package/dist/util/ensureTrailingSlash.d.ts +9 -0
- package/dist/util/ensureTrailingSlash.js +12 -0
- package/dist/util/ensureTrailingSlash.js.map +1 -0
- package/dist/util/errorMessages.d.ts +3 -0
- package/dist/util/errorMessages.js +5 -0
- package/dist/util/errorMessages.js.map +1 -0
- package/dist/util/extractDocumentsFromNdjsonOrTarball.d.ts +6 -0
- package/dist/util/extractDocumentsFromNdjsonOrTarball.js +88 -0
- package/dist/util/extractDocumentsFromNdjsonOrTarball.js.map +1 -0
- package/dist/util/findNdjsonEntry.d.ts +7 -0
- package/dist/util/findNdjsonEntry.js +21 -0
- package/dist/util/findNdjsonEntry.js.map +1 -0
- package/dist/util/formatSize.d.ts +6 -0
- package/dist/util/formatSize.js +10 -0
- package/dist/util/formatSize.js.map +1 -0
- package/dist/util/getCliVersion.d.ts +7 -0
- package/dist/util/getCliVersion.js +28 -0
- package/dist/util/getCliVersion.js.map +1 -0
- package/dist/util/getErrorMessage.d.ts +8 -0
- package/dist/util/getErrorMessage.js +19 -0
- package/dist/util/getErrorMessage.js.map +1 -0
- package/dist/util/getLocalPackageVersion.d.ts +9 -0
- package/dist/util/getLocalPackageVersion.js +32 -0
- package/dist/util/getLocalPackageVersion.js.map +1 -0
- package/dist/util/getSharedServerConfig.d.ts +30 -0
- package/dist/util/getSharedServerConfig.js +31 -0
- package/dist/util/getSharedServerConfig.js.map +1 -0
- package/dist/util/getWorkspace.d.ts +3 -0
- package/dist/util/getWorkspace.js +18 -0
- package/dist/util/getWorkspace.js.map +1 -0
- package/dist/util/humanFileSize.d.ts +1 -0
- package/dist/util/humanFileSize.js +12 -0
- package/dist/util/humanFileSize.js.map +1 -0
- package/dist/util/importStudioConfig.d.ts +1 -0
- package/dist/util/importStudioConfig.js +43 -0
- package/dist/util/importStudioConfig.js.map +1 -0
- package/dist/util/isPathDirName.d.ts +1 -0
- package/dist/util/isPathDirName.js +6 -0
- package/dist/util/isPathDirName.js.map +1 -0
- package/dist/util/isSanityDocumentish.d.ts +19 -0
- package/dist/util/isSanityDocumentish.js +20 -0
- package/dist/util/isSanityDocumentish.js.map +1 -0
- package/dist/util/loadEnv.d.ts +1 -0
- package/dist/util/loadEnv.js +8 -0
- package/dist/util/loadEnv.js.map +1 -0
- package/dist/util/migration/constants.d.ts +3 -0
- package/dist/util/migration/constants.js +10 -0
- package/dist/util/migration/constants.js.map +1 -0
- package/dist/util/migration/ensureApiVersionFormat.d.ts +9 -0
- package/dist/util/migration/ensureApiVersionFormat.js +16 -0
- package/dist/util/migration/ensureApiVersionFormat.js.map +1 -0
- package/dist/util/migration/prettyMutationFormatter.d.ts +8 -0
- package/dist/util/migration/prettyMutationFormatter.js +141 -0
- package/dist/util/migration/prettyMutationFormatter.js.map +1 -0
- package/dist/util/moduleFormatUtils.d.ts +3 -0
- package/dist/util/moduleFormatUtils.js +18 -0
- package/dist/util/moduleFormatUtils.js.map +1 -0
- package/dist/util/packageManager/__tests__/installPackages.test.js +388 -0
- package/dist/util/packageManager/__tests__/installPackages.test.js.map +1 -0
- package/dist/util/packageManager/installPackages.d.ts +18 -0
- package/dist/util/packageManager/installPackages.js +87 -0
- package/dist/util/packageManager/installPackages.js.map +1 -0
- package/dist/util/packageManager/packageManagerChoice.d.ts +29 -0
- package/dist/util/packageManager/packageManagerChoice.js +173 -0
- package/dist/util/packageManager/packageManagerChoice.js.map +1 -0
- package/dist/util/packageManager/upgradePackages.d.ts +17 -0
- package/dist/util/packageManager/upgradePackages.js +69 -0
- package/dist/util/packageManager/upgradePackages.js.map +1 -0
- package/dist/util/pluralize.d.ts +8 -0
- package/dist/util/pluralize.js +11 -0
- package/dist/util/pluralize.js.map +1 -0
- package/dist/util/readModuleVersion.d.ts +8 -0
- package/dist/util/readModuleVersion.js +15 -0
- package/dist/util/readModuleVersion.js.map +1 -0
- package/dist/util/readPackageJson.d.ts +45 -0
- package/dist/util/readPackageJson.js +42 -0
- package/dist/util/readPackageJson.js.map +1 -0
- package/dist/util/readPackageManifest.d.ts +21 -0
- package/dist/util/readPackageManifest.js +46 -0
- package/dist/util/readPackageManifest.js.map +1 -0
- package/dist/util/toInt.d.ts +1 -0
- package/dist/util/toInt.js +9 -0
- package/dist/util/toInt.js.map +1 -0
- package/dist/util/trimHashFromVersion.d.ts +5 -0
- package/dist/util/trimHashFromVersion.js +8 -0
- package/dist/util/trimHashFromVersion.js.map +1 -0
- package/dist/util/validation/ __tests__/validateDocuments.test.js +274 -0
- package/dist/util/validation/ __tests__/validateDocuments.test.js.map +1 -0
- package/dist/util/validation/validateDocumentsUtils.d.ts +12 -0
- package/dist/util/validation/validateDocumentsUtils.js +33 -0
- package/dist/util/validation/validateDocumentsUtils.js.map +1 -0
- package/dist/util/warnAboutMissingAppId.d.ts +7 -0
- package/dist/util/warnAboutMissingAppId.js +11 -0
- package/dist/util/warnAboutMissingAppId.js.map +1 -0
- package/dist/util/workerChannels.d.ts +59 -0
- package/dist/util/workerChannels.js +172 -0
- package/dist/util/workerChannels.js.map +1 -0
- package/dist/utils/migration/resolveMigrationScript.d.ts +44 -0
- package/dist/utils/migration/resolveMigrationScript.js +74 -0
- package/dist/utils/migration/resolveMigrationScript.js.map +1 -0
- package/oclif.config.js +11 -0
- package/oclif.manifest.json +3957 -0
- package/package.json +120 -100
- package/bin/dev.js +0 -30
- package/bin/sanity +0 -14
- package/lib/_chunks-cjs/cli.js +0 -70981
- 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 -162
- 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/cli.d.ts +0 -28
- package/lib/cli.js +0 -10
- package/lib/cli.js.map +0 -1
- package/lib/index.d.ts +0 -512
- package/lib/index.js +0 -44
- 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 -23
- package/lib/workers/typegenGenerate.js +0 -47
- package/lib/workers/typegenGenerate.js.map +0 -1
- package/templates/app-quickstart/src/App.css +0 -18
- package/templates/app-quickstart/src/App.tsx +0 -25
- package/templates/app-quickstart/src/ExampleComponent.css +0 -90
- package/templates/app-quickstart/src/ExampleComponent.tsx +0 -37
- package/templates/app-sanity-ui/src/App.tsx +0 -34
- package/templates/app-sanity-ui/src/ExampleComponent.tsx +0 -33
- package/templates/app-sanity-ui/src/SanityUI.tsx +0 -23
- package/templates/blog/README.md +0 -11
- package/templates/blog/schemaTypes/author.js +0 -50
- package/templates/blog/schemaTypes/blockContent.js +0 -67
- package/templates/blog/schemaTypes/category.js +0 -19
- package/templates/blog/schemaTypes/index.js +0 -6
- package/templates/blog/schemaTypes/post.js +0 -65
- package/templates/blog/static/.gitkeep +0 -1
- package/templates/clean/README.md +0 -9
- package/templates/clean/schemaTypes/index.js +0 -1
- package/templates/clean/static/.gitkeep +0 -1
- package/templates/ecommerce/README.md +0 -11
- package/templates/ecommerce/plugins/.gitkeep +0 -1
- package/templates/ecommerce/plugins/barcode-input/BarcodeInput.js +0 -62
- package/templates/ecommerce/plugins/barcode-input/index.js +0 -9
- package/templates/ecommerce/plugins/barcode-input/schemaType.js +0 -60
- package/templates/ecommerce/schemaTypes/blockContent.js +0 -67
- package/templates/ecommerce/schemaTypes/category.js +0 -39
- package/templates/ecommerce/schemaTypes/index.js +0 -23
- package/templates/ecommerce/schemaTypes/locale/localeBlockContent.js +0 -19
- package/templates/ecommerce/schemaTypes/locale/localeString.js +0 -19
- package/templates/ecommerce/schemaTypes/locale/localeText.js +0 -19
- package/templates/ecommerce/schemaTypes/locale/supportedLanguages.js +0 -5
- package/templates/ecommerce/schemaTypes/product.js +0 -83
- package/templates/ecommerce/schemaTypes/productVariant.js +0 -52
- package/templates/ecommerce/schemaTypes/vendor.js +0 -39
- package/templates/ecommerce/static/.gitkeep +0 -1
- package/templates/get-started/README.md +0 -9
- package/templates/get-started/plugins/.gitkeep +0 -1
- package/templates/get-started/plugins/sanity-plugin-tutorial/CustomDefaultLayout.tsx +0 -16
- package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +0 -104
- package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +0 -11
- package/templates/get-started/schemaTypes/index.ts +0 -1
- package/templates/get-started/static/.gitkeep +0 -1
- package/templates/moviedb/README.md +0 -10
- package/templates/moviedb/schemaTypes/blockContent.js +0 -67
- package/templates/moviedb/schemaTypes/castMember.js +0 -37
- package/templates/moviedb/schemaTypes/crewMember.js +0 -52
- package/templates/moviedb/schemaTypes/index.js +0 -22
- package/templates/moviedb/schemaTypes/movie.js +0 -85
- package/templates/moviedb/schemaTypes/person.js +0 -37
- package/templates/moviedb/schemaTypes/plotSummaries.js +0 -20
- package/templates/moviedb/schemaTypes/plotSummary.js +0 -24
- package/templates/moviedb/schemaTypes/screening.js +0 -81
- package/templates/moviedb/static/.gitkeep +0 -1
- package/templates/quickstart/README.md +0 -9
- package/templates/quickstart/schemaTypes/index.js +0 -1
- package/templates/quickstart/static/.gitkeep +0 -1
- package/templates/shared/gitignore.txt +0 -29
- package/templates/shared/tsconfig.json +0 -17
- package/templates/shopify/LICENSE +0 -21
- package/templates/shopify/README.md +0 -85
- package/templates/shopify/components/hotspots/ProductTooltip.tsx +0 -38
- package/templates/shopify/components/icons/Shopify.tsx +0 -22
- package/templates/shopify/components/inputs/CollectionHidden.tsx +0 -24
- package/templates/shopify/components/inputs/PlaceholderString.tsx +0 -20
- package/templates/shopify/components/inputs/ProductHidden.tsx +0 -64
- package/templates/shopify/components/inputs/ProductVariantHidden.tsx +0 -24
- package/templates/shopify/components/inputs/ProxyString.tsx +0 -32
- package/templates/shopify/components/media/ColorTheme.tsx +0 -38
- package/templates/shopify/components/media/ShopifyDocumentStatus.tsx +0 -82
- package/templates/shopify/components/studio/Navbar.tsx +0 -29
- package/templates/shopify/constants.ts +0 -61
- package/templates/shopify/docs/features.md +0 -158
- package/templates/shopify/plugins/customDocumentActions/index.ts +0 -55
- package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +0 -144
- package/templates/shopify/plugins/customDocumentActions/shopifyLink.ts +0 -39
- package/templates/shopify/plugins/customDocumentActions/types.ts +0 -14
- package/templates/shopify/schemaTypes/documents/collection.tsx +0 -143
- package/templates/shopify/schemaTypes/documents/colorTheme.tsx +0 -44
- package/templates/shopify/schemaTypes/documents/page.ts +0 -70
- package/templates/shopify/schemaTypes/documents/product.tsx +0 -132
- package/templates/shopify/schemaTypes/documents/productVariant.tsx +0 -68
- package/templates/shopify/schemaTypes/index.ts +0 -108
- package/templates/shopify/schemaTypes/objects/collection/collectionGroupType.ts +0 -27
- package/templates/shopify/schemaTypes/objects/collection/collectionLinksType.ts +0 -16
- package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +0 -49
- package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorType.tsx +0 -50
- package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeObjectType.ts +0 -40
- package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeType.ts +0 -49
- package/templates/shopify/schemaTypes/objects/global/footerType.ts +0 -22
- package/templates/shopify/schemaTypes/objects/global/menuLinksType.ts +0 -21
- package/templates/shopify/schemaTypes/objects/global/menuType.ts +0 -17
- package/templates/shopify/schemaTypes/objects/global/notFoundPageType.ts +0 -37
- package/templates/shopify/schemaTypes/objects/hotspot/imageWithProductHotspotsType.ts +0 -48
- package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +0 -19
- package/templates/shopify/schemaTypes/objects/hotspot/spotType.tsx +0 -60
- package/templates/shopify/schemaTypes/objects/link/linkEmailType.tsx +0 -34
- package/templates/shopify/schemaTypes/objects/link/linkExternalType.tsx +0 -37
- package/templates/shopify/schemaTypes/objects/link/linkInternalType.tsx +0 -33
- package/templates/shopify/schemaTypes/objects/link/linkProductType.tsx +0 -60
- package/templates/shopify/schemaTypes/objects/module/accordionGroupType.ts +0 -33
- package/templates/shopify/schemaTypes/objects/module/accordionType.ts +0 -28
- package/templates/shopify/schemaTypes/objects/module/callToActionType.tsx +0 -85
- package/templates/shopify/schemaTypes/objects/module/calloutType.ts +0 -38
- package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +0 -48
- package/templates/shopify/schemaTypes/objects/module/gridItemType.ts +0 -41
- package/templates/shopify/schemaTypes/objects/module/gridType.ts +0 -28
- package/templates/shopify/schemaTypes/objects/module/heroType.tsx +0 -40
- package/templates/shopify/schemaTypes/objects/module/imageCallToActionType.tsx +0 -19
- package/templates/shopify/schemaTypes/objects/module/imageFeatureType.ts +0 -80
- package/templates/shopify/schemaTypes/objects/module/imageFeaturesType.tsx +0 -51
- package/templates/shopify/schemaTypes/objects/module/instagramType.ts +0 -35
- package/templates/shopify/schemaTypes/objects/module/productFeaturesType.tsx +0 -50
- package/templates/shopify/schemaTypes/objects/module/productReferenceType.tsx +0 -42
- package/templates/shopify/schemaTypes/objects/seoType.ts +0 -31
- package/templates/shopify/schemaTypes/objects/shopify/collectionRuleType.tsx +0 -37
- package/templates/shopify/schemaTypes/objects/shopify/inventoryType.ts +0 -25
- package/templates/shopify/schemaTypes/objects/shopify/optionType.tsx +0 -31
- package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +0 -12
- package/templates/shopify/schemaTypes/objects/shopify/priceRangeType.ts +0 -20
- package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +0 -142
- package/templates/shopify/schemaTypes/objects/shopify/proxyStringType.ts +0 -12
- package/templates/shopify/schemaTypes/objects/shopify/shopType.ts +0 -15
- package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +0 -85
- package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +0 -132
- package/templates/shopify/schemaTypes/objects/shopify/shopifyProductVariantType.ts +0 -121
- package/templates/shopify/schemaTypes/portableText/portableTextSimpleType.tsx +0 -45
- package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +0 -52
- package/templates/shopify/schemaTypes/singletons/homeType.ts +0 -49
- package/templates/shopify/schemaTypes/singletons/settingsType.ts +0 -96
- package/templates/shopify/static/.gitkeep +0 -1
- package/templates/shopify/structure/collectionStructure.ts +0 -6
- package/templates/shopify/structure/colorThemeStructure.ts +0 -9
- package/templates/shopify/structure/homeStructure.ts +0 -9
- package/templates/shopify/structure/index.ts +0 -57
- package/templates/shopify/structure/pageStructure.ts +0 -11
- package/templates/shopify/structure/productStructure.ts +0 -51
- package/templates/shopify/structure/settingStructure.ts +0 -9
- package/templates/shopify/utils/blocksToText.ts +0 -20
- package/templates/shopify/utils/defineStructure.ts +0 -11
- package/templates/shopify/utils/getPriceRange.ts +0 -24
- package/templates/shopify/utils/shopifyUrls.ts +0 -22
- package/templates/shopify/utils/validateSlug.ts +0 -18
- package/templates/shopify-online-storefront/README.md +0 -54
- package/templates/shopify-online-storefront/components/icons/Shopify.tsx +0 -22
- package/templates/shopify-online-storefront/components/inputs/CollectionHidden.tsx +0 -23
- package/templates/shopify-online-storefront/components/inputs/PlaceholderString.tsx +0 -25
- package/templates/shopify-online-storefront/components/inputs/ProductHidden.tsx +0 -66
- package/templates/shopify-online-storefront/components/inputs/ProductVariantHidden.tsx +0 -25
- package/templates/shopify-online-storefront/components/inputs/ProxyString.tsx +0 -38
- package/templates/shopify-online-storefront/components/media/ShopifyDocumentStatus.tsx +0 -83
- package/templates/shopify-online-storefront/constants.ts +0 -18
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +0 -45
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +0 -144
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyLink.ts +0 -39
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/types.ts +0 -14
- package/templates/shopify-online-storefront/schemaTypes/blocks/blockContent.ts +0 -32
- package/templates/shopify-online-storefront/schemaTypes/documents/collection.tsx +0 -83
- package/templates/shopify-online-storefront/schemaTypes/documents/product.tsx +0 -102
- package/templates/shopify-online-storefront/schemaTypes/documents/productVariant.tsx +0 -82
- package/templates/shopify-online-storefront/schemaTypes/index.ts +0 -43
- package/templates/shopify-online-storefront/schemaTypes/objects/accordion.ts +0 -31
- package/templates/shopify-online-storefront/schemaTypes/objects/accordionGroup.ts +0 -35
- package/templates/shopify-online-storefront/schemaTypes/objects/callout.ts +0 -40
- package/templates/shopify-online-storefront/schemaTypes/objects/inventory.ts +0 -30
- package/templates/shopify-online-storefront/schemaTypes/objects/option.ts +0 -30
- package/templates/shopify-online-storefront/schemaTypes/objects/priceRange.ts +0 -22
- package/templates/shopify-online-storefront/schemaTypes/objects/proxyString.ts +0 -11
- package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollection.ts +0 -109
- package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollectionRule.tsx +0 -45
- package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProduct.ts +0 -165
- package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProductVariant.ts +0 -151
- package/templates/shopify-online-storefront/structure/collectionStructure.ts +0 -6
- package/templates/shopify-online-storefront/structure/index.ts +0 -37
- package/templates/shopify-online-storefront/structure/productStructure.ts +0 -35
- package/templates/shopify-online-storefront/utils/defineStructure.ts +0 -11
- package/templates/shopify-online-storefront/utils/getPriceRange.ts +0 -24
- package/templates/shopify-online-storefront/utils/shopifyUrls.ts +0 -22
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/commands/__tests__/deploy.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {getCliConfig} from '@sanity/cli-core'\nimport {confirm, input, select} from '@sanity/cli-core/ux'\nimport {mockApi, testCommand} from '@sanity/cli-test'\nimport nock from 'nock'\nimport {afterEach, beforeEach, describe, expect, test, vi} from 'vitest'\nimport {testExample} from '~test/helpers/testExample.js'\n\nimport {buildApp} from '../../actions/build/buildApp.js'\nimport {buildStudio} from '../../actions/build/buildStudio.js'\nimport {checkDir} from '../../actions/deploy/checkDir.js'\nimport {USER_APPLICATIONS_API_VERSION} from '../../services/userApplications.js'\nimport {dirIsEmptyOrNonExistent} from '../../util/dirIsEmptyOrNonExistent.js'\nimport {readModuleVersion} from '../../util/readModuleVersion.js'\nimport {DeployCommand} from '../deploy.js'\n\nvi.mock('../../../../cli-core/src/config/cli/getCliConfig.js', () => ({\n getCliConfig: vi.fn(),\n}))\n\nvi.mock('../../util/readModuleVersion.js', () => ({\n readModuleVersion: vi.fn(),\n}))\n\nvi.mock('../../actions/build/buildApp.js', () => ({\n buildApp: vi.fn(),\n}))\n\nvi.mock('../../actions/build/buildStudio.js', () => ({\n buildStudio: vi.fn(),\n}))\n\nvi.mock('../../actions/deploy/checkDir.js', () => ({\n checkDir: vi.fn(),\n}))\n\nvi.mock('@sanity/cli-core/ux', async () => {\n const actual = await vi.importActual<typeof import('@sanity/cli-core/ux')>('@sanity/cli-core/ux')\n return {\n ...actual,\n confirm: vi.fn(),\n input: vi.fn(),\n select: vi.fn(),\n }\n})\n\nvi.mock('../../util/dirIsEmptyOrNonExistent.js', () => ({\n dirIsEmptyOrNonExistent: vi.fn(() => true),\n}))\n\nvi.mock('tar-fs', () => ({\n pack: vi.fn(() => {\n return {\n pipe: vi.fn(),\n }\n }),\n}))\n\nconst mockGetCliConfig = vi.mocked(getCliConfig)\nconst mockSelect = vi.mocked(select)\nconst mockConfirm = vi.mocked(confirm)\nconst mockInput = vi.mocked(input)\nconst mockCheckDir = vi.mocked(checkDir)\nconst mockDirIsEmptyOrNonExistent = vi.mocked(dirIsEmptyOrNonExistent)\nconst mockReadModuleVersion = vi.mocked(readModuleVersion)\nconst mockBuildStudio = vi.mocked(buildStudio)\nconst mockBuildApp = vi.mocked(buildApp)\n\ndescribe('#deploy', () => {\n beforeEach(async () => {\n // Set up default mocks\n mockReadModuleVersion.mockImplementation(async (sourceDir, moduleName) => {\n if (moduleName === 'sanity') return '3.0.0' // for studio deployments\n if (moduleName === '@sanity/sdk-react') return '1.0.0' // for app deployments\n return '1.0.0'\n })\n mockCheckDir.mockResolvedValue()\n })\n\n afterEach(() => {\n vi.clearAllMocks()\n const pending = nock.pendingMocks()\n nock.cleanAll()\n expect(pending, 'pending mocks').toEqual([])\n })\n\n test('help text is correct', async () => {\n const {stdout} = await runCommand('deploy --help')\n expect(stdout).toMatchInlineSnapshot(`\n \"Builds and deploys Sanity Studio or application to Sanity hosting\n\n USAGE\n $ sanity deploy [SOURCEDIR] [--auto-updates] [--build] [--minify]\n [--schema-required] [--source-maps] [--verbose] [-y]\n\n ARGUMENTS\n [SOURCEDIR] Source directory\n\n FLAGS\n -y, --yes Unattended mode, answers \"yes\" to any \"yes/no\" prompt\n and otherwise uses defaults\n --[no-]auto-updates Automatically update the studio to the latest version\n --[no-]build Don't build the studio prior to deploy, instead\n deploying the version currently in \\`dist/\\`\n --[no-]minify Skip minifying built JavaScript (speeds up build,\n increases size of bundle)\n --schema-required Fail-fast deployment if schema store fails\n --source-maps Enable source maps for built bundles (increases size\n of bundle)\n --verbose Enable verbose logging\n\n DESCRIPTION\n Builds and deploys Sanity Studio or application to Sanity hosting\n\n EXAMPLES\n Build the studio\n\n $ sanity deploy\n\n Deploys non-minified build with source maps\n\n $ sanity deploy --no-minify --source-maps\n\n Fail fast on schema store fails - for when other services rely on the stored\n schema\n\n $ sanity deploy --schema-required\n\n \"\n `)\n })\n test('shows an error for invalid flags', async () => {\n const {error} = await testCommand(DeployCommand, ['--invalid'])\n\n expect(error?.message).toContain('Nonexistent flag: --invalid')\n })\n\n test(\"should prompt to confirm deleting source directory if it's not empty\", async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n mockConfirm.mockResolvedValue(true)\n mockDirIsEmptyOrNonExistent.mockResolvedValue(false)\n\n const appId = 'app-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId: 'org-id',\n },\n deployment: {\n appId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${appId}`,\n }).reply(200, {\n appHost: 'existing-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: appId,\n organizationId: 'org-id',\n projectId: null,\n title: 'Existing App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${appId}/deployments`,\n }).reply(200, {\n id: 'deployment-id',\n })\n\n const {error} = await testCommand(DeployCommand, ['build'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(mockConfirm).toHaveBeenCalledWith({\n default: false,\n message: '\"./build\" is not empty, do you want to proceed?',\n })\n })\n\n test(\"should cancel the deployment if the user doesn't want to proceed\", async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n mockConfirm.mockResolvedValue(false)\n\n const appId = 'app-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId: 'org-id',\n },\n deployment: {\n appId,\n },\n })\n\n const {error} = await testCommand(DeployCommand, ['build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Cancelled.')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n describe('app', () => {\n test('should re-deploy app if it already exists', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const appId = 'app-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId: 'org-id',\n },\n deployment: {\n appId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${appId}`,\n }).reply(200, {\n appHost: 'existing-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: appId,\n organizationId: 'org-id',\n projectId: null,\n title: 'Existing App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${appId}/deployments`,\n }).reply(200, {\n id: 'deployment-id',\n })\n\n const {error, stderr, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n\n expect(stderr).toContain('Checking application info')\n expect(stderr).toContain('Verifying local content')\n expect(stderr).toContain('Deploying...')\n\n expect(stdout).toContain('Success! Application deployed')\n })\n\n test('should handle missing @sanity/sdk-react version', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const appId = 'app-id'\n const organizationId = 'org-id'\n\n mockReadModuleVersion.mockResolvedValue(null)\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId,\n },\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Failed to find installed @sanity/sdk-react version')\n })\n\n test('should create new user application if none exists', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const organizationId = 'org-id'\n const newAppId = 'new-app-id'\n const deploymentId = 'deployment-id'\n\n mockInput.mockResolvedValue('Test App')\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, [])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, {\n appHost: 'generated-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: newAppId,\n organizationId,\n projectId: null,\n title: 'Test App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${newAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Application deployed')\n expect(stdout).toContain(\n `Add the deployment.appId to your sanity.cli.js or sanity.cli.ts file:`,\n )\n expect(stdout).toContain(`deployment: {\n appId: '${newAppId}',`)\n expect(mockInput).toHaveBeenCalledWith({\n message: 'Enter a title for your application:',\n validate: expect.any(Function),\n })\n })\n\n test('should skip build when --no-build flag is used', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const existingAppId = 'existing-app-id'\n const organizationId = 'org-id'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId: existingAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}`,\n }).reply(200, {\n appHost: 'existing-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId,\n organizationId,\n projectId: null,\n title: 'Existing App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Application deployed')\n expect(mockBuildApp).not.toHaveBeenCalled()\n })\n\n test('should handle directory check errors', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const existingAppId = 'existing-app-id'\n const organizationId = 'org-id'\n\n mockCheckDir.mockRejectedValue(new Error('Directory check failed'))\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId: existingAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}`,\n }).reply(200, {\n appHost: 'existing-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId,\n organizationId,\n projectId: null,\n title: 'Existing App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error checking directory')\n })\n\n test('should error when fetching user applications if user doesn’t have org access', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const appId = 'some-app-id'\n const organizationId = 'org-without-access'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId,\n },\n })\n\n // Simulate API returning 403 Forbidden for the given org\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${appId}`,\n }).reply(403, {\n error: 'Forbidden',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain(\n `You don’t have permission to view applications for the configured organization ID (\"${organizationId}\")`,\n )\n })\n\n test('should handle user-applications endpoint errors', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const existingAppId = 'existing-app-id'\n const organizationId = 'org-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId: existingAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}`,\n }).reply(500, {\n error: 'Internal server error',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error deploying application')\n })\n\n test('should handle deployment API errors', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const existingAppId = 'existing-app-id'\n const organizationId = 'org-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId: existingAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}`,\n }).reply(200, {\n appHost: 'existing-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId,\n organizationId,\n projectId: null,\n title: 'Existing App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}/deployments`,\n }).reply(500, {\n error: 'Internal server error',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error deploying application')\n })\n\n test('should show an error if deployment.appId is configured but the application does not exist', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const nonExistentAppId = 'non-existent-app-id'\n const organizationId = 'org-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId: nonExistentAppId,\n },\n })\n\n // Simulate API returning no user application for the given app.id\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${nonExistentAppId}`,\n }).reply(404, {\n error: 'Not found',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain(\n 'The `appId` provided in your configuration’s `deployment` object cannot be found in your organization',\n )\n })\n\n test('should show an error if deployment.appId and app.id (deprecated) are both in use', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const appId = 'app-id'\n const organizationId = 'org-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n id: appId,\n organizationId,\n },\n deployment: {\n appId: appId,\n },\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain(\n 'Found both app.id (deprecated) and deployment.appId in your application configuration.\\n\\nPlease remove app.id from your sanity.cli.js or sanity.cli.ts file.',\n )\n })\n\n test('should show a warning if app.id (deprecated) is used', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const appId = 'app-id'\n const organizationId = 'org-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n id: appId,\n organizationId,\n },\n })\n\n const {stderr} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(stderr).toContain('The `app.id` config has moved to `deployment.appId`.')\n })\n\n test('should handle app creation with retry when host is taken', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const organizationId = 'org-id'\n const newAppId = 'new-app-id'\n const deploymentId = 'deployment-id'\n\n mockInput.mockResolvedValue('Test App')\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, [])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n })\n .once()\n .reply(409, {\n message: 'App host already taken',\n statusCode: 409,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n })\n .once()\n .reply(200, {\n appHost: 'generated-host-2',\n createdAt: '2024-01-01T00:00:00Z',\n id: newAppId,\n organizationId,\n projectId: null,\n title: 'Test App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${newAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Application deployed')\n })\n\n test('should handle app creation failure with non-retryable error', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const organizationId = 'org-id'\n\n mockInput.mockResolvedValue('Test App')\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, [])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(500, {\n message: 'Internal server error',\n statusCode: 500,\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error deploying application')\n })\n\n test('should handle findUserApplicationForApp API errors', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const existingAppId = 'existing-app-id'\n const organizationId = 'org-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n deployment: {\n appId: existingAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId}`,\n }).reply(500, {\n error: 'Internal server error',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error deploying application')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should test input validation for app title', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const organizationId = 'org-id'\n const newAppId = 'new-app-id'\n const deploymentId = 'deployment-id'\n\n mockInput.mockResolvedValue('Valid App Title')\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, [])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, {\n appHost: 'generated-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: newAppId,\n organizationId,\n projectId: null,\n title: 'Valid App Title',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${newAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n\n expect(mockInput).toHaveBeenCalledWith({\n message: 'Enter a title for your application:',\n validate: expect.any(Function),\n })\n })\n\n test('should allow selecting from list of apps', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const organizationId = 'org-id'\n const existingAppId1 = 'existing-app-id-1'\n const existingAppId2 = 'existing-app-id-2'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, [\n {\n appHost: 'existing-host-1',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId1,\n organizationId,\n projectId: null,\n title: 'Existing App 1',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n {\n appHost: 'existing-host-2',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId2,\n organizationId,\n projectId: null,\n title: 'Existing App 2',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n ])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${existingAppId2}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n mockSelect.mockResolvedValue('existing-host-2')\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Application deployed')\n expect(stdout).toContain(\n `Add the deployment.appId to your sanity.cli.js or sanity.cli.ts file:`,\n )\n expect(stdout).toContain(`deployment: {\n appId: '${existingAppId2}',`)\n })\n\n test('should allow creating a new app by selecting from list of apps', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const organizationId = 'org-id'\n const existingAppId1 = 'existing-app-id-1'\n const existingAppId2 = 'existing-app-id-2'\n const newAppId = 'new-app-id'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, [\n {\n appHost: 'existing-host-1',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId1,\n organizationId,\n projectId: null,\n title: 'Existing App 1',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n {\n appHost: 'existing-host-2',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingAppId2,\n organizationId,\n projectId: null,\n title: 'Existing App 2',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n ])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n organizationId,\n },\n uri: `/user-applications`,\n }).reply(200, {\n appHost: 'generated-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: newAppId,\n organizationId,\n projectId: null,\n title: 'Test App',\n type: 'coreApp',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'coreApp',\n },\n uri: `/user-applications/${newAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n mockSelect.mockResolvedValue('NEW_APP')\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Application deployed')\n expect(stdout).toContain(\n `Add the deployment.appId to your sanity.cli.js or sanity.cli.ts file:`,\n )\n expect(stdout).toContain(`deployment: {\n appId: '${newAppId}',`)\n })\n\n test('should throw an error if organizationId is not set', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n mockGetCliConfig.mockResolvedValue({\n app: {\n organizationId: undefined,\n },\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain(\n 'sanity.cli.ts does not contain an organization identifier (\"app.organizationId\"), which is required for the Sanity CLI to communicate with the Sanity API',\n )\n expect(error?.oclif?.exit).toBe(1)\n })\n })\n\n describe('studio', () => {\n test('should handle missing sanity version', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n mockReadModuleVersion.mockResolvedValue(null)\n\n mockGetCliConfig.mockResolvedValue({\n studioHost: 'existing-studio',\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Failed to find installed sanity version')\n })\n\n test('should handle directory check errors', async () => {\n const cwd = await testExample('basic-app')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'existing-studio'\n const studioAppId = 'studio-app-id'\n\n mockCheckDir.mockRejectedValue(new Error('Directory check failed'))\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, {\n appHost: studioHost,\n createdAt: '2024-01-01T00:00:00Z',\n id: studioAppId,\n projectId,\n title: 'Existing Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n const {error} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error checking directory')\n })\n\n test('should re-deploy studio if it already exists', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'existing-studio'\n const studioAppId = 'studio-app-id'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, {\n appHost: studioHost,\n createdAt: '2024-01-01T00:00:00Z',\n id: studioAppId,\n projectId,\n title: 'Existing Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stderr, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stderr).toContain('Checking project info')\n expect(stderr).toContain('Verifying local content')\n expect(stderr).toContain('Deploying to sanity.studio')\n expect(stdout).toContain('Success! Studio deployed')\n })\n\n test('should create new studio hostname when studioHost is provided but does not exist', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId: 'test-project-id',\n },\n studioHost: 'new-studio-host',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: 'new-studio-host',\n appType: 'studio',\n },\n uri: `/projects/test-project-id/user-applications`,\n }).reply(404, {\n message: 'Not found',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/test-project-id/user-applications`,\n }).reply(200, {\n appHost: 'new-studio-host',\n createdAt: '2024-01-01T00:00:00Z',\n id: 'new-studio-app-id',\n projectId: 'test-project-id',\n title: 'New Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/test-project-id/user-applications/new-studio-app-id/deployments`,\n }).reply(200, {\n id: 'deployment-id',\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Studio deployed')\n expect(stdout).toContain('Your project has not been assigned a studio hostname')\n expect(stdout).toContain('Creating https://new-studio-host.sanity.studio')\n })\n\n test('should handle studio hostname creation failure when name is taken', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'taken-studio-host'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(404, {\n message: 'Not found',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(409, {\n message: 'Studio hostname already taken',\n statusCode: 409,\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Studio hostname already taken')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should allow selecting from existing studio hostnames', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n })\n\n const studioOneId = 'studio-one-id'\n const studioTwoId = 'studio-two-id'\n const deploymentId = 'deployment-id'\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, [\n {\n appHost: 'studio-one',\n createdAt: '2024-01-01T00:00:00Z',\n id: studioOneId,\n projectId,\n title: 'Studio One',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n {\n appHost: 'studio-two',\n createdAt: '2024-01-01T00:00:00Z',\n id: studioTwoId,\n projectId,\n title: 'Studio Two',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n ])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${studioTwoId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n location: 'https://studio-two.sanity.studio',\n })\n\n mockSelect.mockResolvedValue('studio-two')\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Studio deployed to https://studio-two.sanity.studio')\n expect(mockSelect).toHaveBeenCalledWith({\n choices: [\n {name: 'Create new studio hostname', value: 'NEW_STUDIO'},\n expect.any(Object), // Separator\n {name: 'Studio One', value: 'studio-one'},\n {name: 'Studio Two', value: 'studio-two'},\n ],\n message: 'Select existing studio hostname, or create a new one',\n })\n })\n\n test('should allow creating new studio hostname from selection menu', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const existingStudioId = 'existing-studio-id'\n const newStudioFromMenuId = 'new-studio-from-menu-id'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n })\n .once()\n .reply(200, [\n {\n appHost: 'existing-studio',\n createdAt: '2024-01-01T00:00:00Z',\n id: existingStudioId,\n projectId,\n title: 'Existing Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n },\n ])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, {\n appHost: 'new-studio-from-menu',\n createdAt: '2024-01-01T00:00:00Z',\n id: newStudioFromMenuId,\n projectId,\n title: 'New Studio From Menu',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${newStudioFromMenuId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n mockSelect.mockResolvedValue('NEW_STUDIO')\n mockInput.mockImplementation(({validate}) => {\n const promise = (async () => {\n if (validate) {\n await validate('new-studio-from-menu')\n }\n return 'new-studio-from-menu'\n })() as Promise<string> & {cancel: () => void}\n\n promise.cancel = () => {}\n return promise\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Studio deployed')\n expect(mockInput).toHaveBeenCalledWith({\n message: 'Studio hostname (<value>.sanity.studio):',\n validate: expect.any(Function),\n })\n })\n\n test('should handle input validation with retry for studio hostname creation', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const validStudioId = 'valid-studio-id'\n const deploymentId = 'deployment-id'\n\n mockInput.mockImplementation(({validate}) => {\n const promise = (async () => {\n if (validate) {\n // First attempt with a name that will be taken (triggers 409)\n let result = await validate('taken-name')\n if (result !== true) {\n // Name was taken, try again with a valid name (triggers 200)\n result = await validate('valid-name')\n }\n }\n return 'valid-name'\n })() as Promise<string> & {cancel: () => void}\n\n promise.cancel = () => {}\n return promise\n })\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, [])\n\n // First API call fails (hostname taken)\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n })\n .once()\n .reply(409, {\n message: 'Studio hostname already taken',\n statusCode: 409,\n })\n\n // Second API call succeeds\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n })\n .once()\n .reply(200, {\n appHost: 'valid-name',\n createdAt: '2024-01-01T00:00:00Z',\n id: validStudioId,\n projectId,\n title: 'Valid Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${validStudioId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Studio deployed')\n })\n\n test('should handle input validation fails with unknown error', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n\n mockInput.mockImplementation(({validate}) => {\n const promise = (async () => {\n if (validate) {\n // First attempt with a name that will be taken (triggers 409)\n let result = await validate('taken-name')\n if (result !== true) {\n // Name was taken, try again with a valid name (triggers 200)\n result = await validate('valid-name')\n }\n }\n return 'valid-name'\n })() as Promise<string> & {cancel: () => void}\n\n promise.cancel = () => {}\n return promise\n })\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, [])\n\n // First API call fails (hostname taken)\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n })\n .once()\n .reply(500, {\n message: 'Internal server error',\n statusCode: 500,\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error creating user application')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should throw error when no projectId is configured', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n mockGetCliConfig.mockResolvedValue({\n api: {},\n studioHost: 'some-studio',\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain(\n 'sanity.cli.ts does not contain a project identifier (\"api.projectId\"), which is required for the Sanity CLI to communicate with the Sanity API',\n )\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should log a warning if the deprecated auto-updates flag is used', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const {stderr} = await testCommand(DeployCommand, ['--auto-updates'], {\n config: {root: cwd},\n })\n\n expect(stderr).toContain('Warning: The --auto-updates flag is deprecated')\n })\n\n test('should throw an error when both the current and deprecated autoUpdates config are used', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n mockGetCliConfig.mockResolvedValue({\n autoUpdates: true,\n deployment: {\n autoUpdates: true,\n },\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain(\n 'Found both `autoUpdates` (deprecated) and `deployment.autoUpdates` in sanity.cli.',\n )\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should handle general API errors when finding user application', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'existing-studio'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(500, {\n error: 'Internal server error',\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error finding user application')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should handle deployment API errors for studio', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'existing-studio'\n const studioAppId = 'studio-app-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, {\n appHost: studioHost,\n createdAt: '2024-01-01T00:00:00Z',\n id: studioAppId,\n projectId,\n title: 'Existing Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`,\n }).reply(500, {\n error: 'Internal server error',\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error deploying studio')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should handle fatal errors during studio hostname creation', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'new-studio-host'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(404, {\n message: 'Not found',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(500, {\n message: 'Internal server error',\n statusCode: 500,\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error creating user application from config')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should handle no existing studio applications scenario', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const newStudioId = 'new-studio-id'\n const deploymentId = 'deployment-id'\n\n mockInput.mockImplementation(({validate}) => {\n const promise = (async () => {\n if (validate) {\n await validate('new-studio-name')\n }\n return 'new-studio-name'\n })() as Promise<string> & {cancel: () => void}\n\n promise.cancel = () => {}\n return promise\n })\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, [])\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, {\n appHost: 'new-studio-name',\n createdAt: '2024-01-01T00:00:00Z',\n id: newStudioId,\n projectId,\n title: 'New Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${newStudioId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Studio deployed')\n expect(mockInput).toHaveBeenCalledWith({\n message: 'Studio hostname (<value>.sanity.studio):',\n validate: expect.any(Function),\n })\n })\n\n test('should skip build when --no-build flag is used for studio', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioHost = 'existing-studio'\n const studioAppId = 'studio-app-id'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n studioHost,\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n query: {\n appHost: studioHost,\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications`,\n }).reply(200, {\n appHost: studioHost,\n createdAt: '2024-01-01T00:00:00Z',\n id: studioAppId,\n projectId,\n title: 'Existing Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, ['--no-build'], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain('Success! Studio deployed')\n expect(mockBuildStudio).not.toHaveBeenCalled()\n })\n\n test('should deploy studio using deployment.appId', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioAppId = 'studio-app-id'\n const appHost = 'my-studio'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n deployment: {\n appId: studioAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n uri: `/projects/${projectId}/user-applications/${studioAppId}`,\n }).reply(200, {\n appHost,\n createdAt: '2024-01-01T00:00:00Z',\n id: studioAppId,\n projectId,\n title: 'My Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n location: `https://${appHost}.sanity.studio`,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain(`Success! Studio deployed to https://${appHost}.sanity.studio`)\n })\n\n test('should prioritize deployment.appId over studioHost when both are configured', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioAppId = 'studio-app-id'\n const studioHost = 'my-studio-host'\n const deploymentId = 'deployment-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n deployment: {\n appId: studioAppId,\n },\n studioHost,\n })\n\n // Should call by appId, NOT by appHost\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n uri: `/projects/${projectId}/user-applications/${studioAppId}`,\n }).reply(200, {\n appHost: studioHost,\n createdAt: '2024-01-01T00:00:00Z',\n id: studioAppId,\n projectId,\n title: 'My Studio',\n type: 'studio',\n updatedAt: '2024-01-01T00:00:00Z',\n urlType: 'internal',\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n method: 'post',\n query: {\n appType: 'studio',\n },\n uri: `/projects/${projectId}/user-applications/${studioAppId}/deployments`,\n }).reply(200, {\n id: deploymentId,\n location: `https://${studioHost}.sanity.studio`,\n })\n\n const {error, stdout} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error).toBeUndefined()\n expect(stdout).toContain(`Success! Studio deployed to https://${studioHost}.sanity.studio`)\n })\n\n test('should handle error when deployment.appId does not exist for the org', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioAppId = 'non-existent-app-id'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n deployment: {\n appId: studioAppId,\n },\n })\n\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n uri: `/projects/${projectId}/user-applications/${studioAppId}`,\n }).reply(404, {\n message: 'Application not found',\n })\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error finding user application')\n expect(error?.message).toContain(`Cannot find app with app ID ${studioAppId}`)\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('should not fall back to studioHost when deployment.appId is configured but does not exist', async () => {\n const cwd = await testExample('basic-studio')\n process.cwd = () => cwd\n\n const projectId = 'test-project-id'\n const studioAppId = 'non-existent-app-id'\n const studioHost = 'valid-studio-host'\n\n mockGetCliConfig.mockResolvedValue({\n api: {\n projectId,\n },\n deployment: {\n appId: studioAppId,\n },\n studioHost, // This should NOT be used as fallback\n })\n\n // appId lookup fails\n mockApi({\n apiVersion: USER_APPLICATIONS_API_VERSION,\n uri: `/projects/${projectId}/user-applications/${studioAppId}`,\n }).reply(404, {\n message: 'Application not found',\n })\n\n // Should NOT make a call to studioHost - if it does, this mock will remain unused\n // and cause the test to fail due to pending mocks check\n\n const {error} = await testCommand(DeployCommand, [], {\n config: {root: cwd},\n })\n\n expect(error?.message).toContain('Error finding user application')\n expect(error?.message).toContain(`Cannot find app with app ID ${studioAppId}`)\n expect(error?.oclif?.exit).toBe(1)\n })\n })\n})\n"],"names":["runCommand","getCliConfig","confirm","input","select","mockApi","testCommand","nock","afterEach","beforeEach","describe","expect","test","vi","testExample","buildApp","buildStudio","checkDir","USER_APPLICATIONS_API_VERSION","dirIsEmptyOrNonExistent","readModuleVersion","DeployCommand","mock","fn","actual","importActual","pack","pipe","mockGetCliConfig","mocked","mockSelect","mockConfirm","mockInput","mockCheckDir","mockDirIsEmptyOrNonExistent","mockReadModuleVersion","mockBuildStudio","mockBuildApp","mockImplementation","sourceDir","moduleName","mockResolvedValue","clearAllMocks","pending","pendingMocks","cleanAll","toEqual","stdout","toMatchInlineSnapshot","error","message","toContain","cwd","process","appId","app","organizationId","deployment","apiVersion","query","appType","uri","reply","appHost","createdAt","id","projectId","title","type","updatedAt","urlType","method","config","root","toBeUndefined","toHaveBeenCalledWith","default","oclif","exit","toBe","stderr","newAppId","deploymentId","validate","any","Function","existingAppId","not","toHaveBeenCalled","mockRejectedValue","Error","nonExistentAppId","once","statusCode","existingAppId1","existingAppId2","undefined","studioHost","studioAppId","api","studioOneId","studioTwoId","location","choices","name","value","Object","existingStudioId","newStudioFromMenuId","promise","cancel","validStudioId","result","autoUpdates","newStudioId"],"mappings":"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"}
|
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { createServer } from 'node:http';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { runCommand } from '@oclif/test';
|
|
5
|
+
import { confirm } from '@sanity/cli-core/ux';
|
|
6
|
+
import { mockApi, testCommand } from '@sanity/cli-test';
|
|
7
|
+
import nock from 'nock';
|
|
8
|
+
import { afterEach, describe, expect, test, vi } from 'vitest';
|
|
9
|
+
import { testExample } from '~test/helpers/testExample.js';
|
|
10
|
+
import { checkRequiredDependencies } from '../../actions/build/checkRequiredDependencies.js';
|
|
11
|
+
import { compareDependencyVersions } from '../../util/compareDependencyVersions.js';
|
|
12
|
+
import { getPackageManagerChoice } from '../../util/packageManager/packageManagerChoice.js';
|
|
13
|
+
import { upgradePackages } from '../../util/packageManager/upgradePackages.js';
|
|
14
|
+
import { DevCommand } from '../dev.js';
|
|
15
|
+
vi.mock('../../actions/build/checkRequiredDependencies.js', ()=>({
|
|
16
|
+
checkRequiredDependencies: vi.fn().mockResolvedValue({
|
|
17
|
+
installedSanityVersion: '3.0.0'
|
|
18
|
+
})
|
|
19
|
+
}));
|
|
20
|
+
vi.mock('../../util/compareDependencyVersions.js', ()=>({
|
|
21
|
+
compareDependencyVersions: vi.fn().mockResolvedValue([])
|
|
22
|
+
}));
|
|
23
|
+
vi.mock('@sanity/cli-core/ux', async ()=>{
|
|
24
|
+
const actual = await vi.importActual('@sanity/cli-core/ux');
|
|
25
|
+
return {
|
|
26
|
+
...actual,
|
|
27
|
+
confirm: vi.fn()
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
vi.mock('../../../../cli-core/src/util/isInteractive.js', ()=>({
|
|
31
|
+
isInteractive: vi.fn().mockReturnValue(true)
|
|
32
|
+
}));
|
|
33
|
+
vi.mock('../../util/packageManager/upgradePackages.js');
|
|
34
|
+
vi.mock('../../util/packageManager/packageManagerChoice.js');
|
|
35
|
+
const mockCheckRequiredDependencies = vi.mocked(checkRequiredDependencies);
|
|
36
|
+
const mockCompareDependencyVersions = vi.mocked(compareDependencyVersions);
|
|
37
|
+
const mockConfirm = vi.mocked(confirm);
|
|
38
|
+
const mockUpgradePackages = vi.mocked(upgradePackages);
|
|
39
|
+
const mockGetPackageManagerChoice = vi.mocked(getPackageManagerChoice);
|
|
40
|
+
describe('#dev', ()=>{
|
|
41
|
+
afterEach(()=>{
|
|
42
|
+
const pending = nock.pendingMocks();
|
|
43
|
+
nock.cleanAll();
|
|
44
|
+
expect(pending, 'pending mocks').toEqual([]);
|
|
45
|
+
vi.clearAllMocks();
|
|
46
|
+
});
|
|
47
|
+
test('help text is correct', async ()=>{
|
|
48
|
+
const { stdout } = await runCommand([
|
|
49
|
+
'dev',
|
|
50
|
+
'--help'
|
|
51
|
+
]);
|
|
52
|
+
expect(stdout).toMatchInlineSnapshot(`
|
|
53
|
+
"Starts a local development server for Sanity Studio with live reloading
|
|
54
|
+
|
|
55
|
+
USAGE
|
|
56
|
+
$ sanity dev [--auto-updates] [--host <value>]
|
|
57
|
+
[--load-in-dashboard] [--port <value>]
|
|
58
|
+
|
|
59
|
+
FLAGS
|
|
60
|
+
--[no-]auto-updates Automatically update Sanity Studio dependencies.
|
|
61
|
+
--host=<value> [default: localhost] The local network interface at
|
|
62
|
+
which to listen.
|
|
63
|
+
--[no-]load-in-dashboard Load the app/studio in the Sanity dashboard.
|
|
64
|
+
--port=<value> [default: 3333] TCP port to start server on.
|
|
65
|
+
|
|
66
|
+
DESCRIPTION
|
|
67
|
+
Starts a local development server for Sanity Studio with live reloading
|
|
68
|
+
|
|
69
|
+
EXAMPLES
|
|
70
|
+
$ sanity dev --host=0.0.0.0
|
|
71
|
+
|
|
72
|
+
$ sanity dev --port=1942
|
|
73
|
+
|
|
74
|
+
$ sanity dev --load-in-dashboard
|
|
75
|
+
|
|
76
|
+
"
|
|
77
|
+
`);
|
|
78
|
+
});
|
|
79
|
+
test('shows an error for invalid flags', async ()=>{
|
|
80
|
+
const { error } = await testCommand(DevCommand, [
|
|
81
|
+
'--invalid'
|
|
82
|
+
]);
|
|
83
|
+
expect(error?.message).toContain('Nonexistent flag: --invalid');
|
|
84
|
+
});
|
|
85
|
+
describe('basic-app', ()=>{
|
|
86
|
+
test('should start the dev server for app', async ()=>{
|
|
87
|
+
const cwd = await testExample('basic-app');
|
|
88
|
+
process.cwd = ()=>cwd;
|
|
89
|
+
const { error, result, stderr, stdout } = await testCommand(DevCommand, [
|
|
90
|
+
'--port',
|
|
91
|
+
'5333'
|
|
92
|
+
], {
|
|
93
|
+
config: {
|
|
94
|
+
root: cwd
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
expect(error).toBeUndefined();
|
|
98
|
+
expect(stdout).toContain('Dev server started on port 5333');
|
|
99
|
+
expect(stdout).toContain('View your app in the Sanity dashboard here:');
|
|
100
|
+
expect(stderr).toContain('Checking configuration files');
|
|
101
|
+
await result.close?.();
|
|
102
|
+
});
|
|
103
|
+
test('should warn when --no-load-in-dashboard is used with app', async ()=>{
|
|
104
|
+
const cwd = await testExample('basic-app');
|
|
105
|
+
process.cwd = ()=>cwd;
|
|
106
|
+
const { error, result, stderr, stdout } = await testCommand(DevCommand, [
|
|
107
|
+
'--no-load-in-dashboard',
|
|
108
|
+
'--port',
|
|
109
|
+
'5334'
|
|
110
|
+
], {
|
|
111
|
+
config: {
|
|
112
|
+
root: cwd
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
expect(error).toBeUndefined();
|
|
116
|
+
expect(stderr).toContain('Apps cannot run without the Sanity dashboard');
|
|
117
|
+
expect(stderr).toContain('Starting dev server with the --load-in-dashboard flag set to true');
|
|
118
|
+
expect(stdout).toContain('Dev server started on port 5334');
|
|
119
|
+
await result.close?.();
|
|
120
|
+
});
|
|
121
|
+
test('should automatically change port if conflicted', async ()=>{
|
|
122
|
+
const cwd = await testExample('basic-app');
|
|
123
|
+
process.cwd = ()=>cwd;
|
|
124
|
+
// Create a server on port 5338 to block it
|
|
125
|
+
const server = createServer();
|
|
126
|
+
await new Promise((resolve)=>{
|
|
127
|
+
server.listen(5338, 'localhost', resolve);
|
|
128
|
+
});
|
|
129
|
+
try {
|
|
130
|
+
const { error, result, stdout } = await testCommand(DevCommand, [
|
|
131
|
+
'--port',
|
|
132
|
+
'5338'
|
|
133
|
+
], {
|
|
134
|
+
config: {
|
|
135
|
+
root: cwd
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
expect(error).toBeUndefined();
|
|
139
|
+
// Should automatically pick a different port
|
|
140
|
+
expect(stdout).toMatch(/Dev server started on port \d{4}/);
|
|
141
|
+
expect(stdout).not.toContain('Dev server started on port 5338');
|
|
142
|
+
expect(stdout).toContain('View your app in the Sanity dashboard here:');
|
|
143
|
+
await result.close?.();
|
|
144
|
+
} finally{
|
|
145
|
+
// Clean up the server
|
|
146
|
+
await new Promise((resolve, reject)=>{
|
|
147
|
+
server.close((err)=>{
|
|
148
|
+
if (err) reject(err);
|
|
149
|
+
else resolve();
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
test('should error when organizationId is missing from config', async ()=>{
|
|
155
|
+
const cwd = await testExample('basic-app');
|
|
156
|
+
process.cwd = ()=>cwd;
|
|
157
|
+
// Modify the config to remove organizationId
|
|
158
|
+
const configPath = join(cwd, 'sanity.cli.ts');
|
|
159
|
+
const existingConfig = await readFile(configPath, 'utf8');
|
|
160
|
+
const modifiedConfig = existingConfig.replace(/organizationId: '[^']*',?/, '');
|
|
161
|
+
await writeFile(configPath, modifiedConfig);
|
|
162
|
+
const { error } = await testCommand(DevCommand, [
|
|
163
|
+
'--port',
|
|
164
|
+
'5341'
|
|
165
|
+
], {
|
|
166
|
+
config: {
|
|
167
|
+
root: cwd
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
expect(error).toBeDefined();
|
|
171
|
+
expect(error?.message).toContain('Apps require an organization ID (orgId)');
|
|
172
|
+
expect(error?.oclif?.exit).toBe(1);
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
describe('basic-studio', ()=>{
|
|
176
|
+
test('should start the dev server for studio', async ()=>{
|
|
177
|
+
const cwd = await testExample('basic-studio');
|
|
178
|
+
process.cwd = ()=>cwd;
|
|
179
|
+
const { error, result, stderr, stdout } = await testCommand(DevCommand, [
|
|
180
|
+
'--port',
|
|
181
|
+
'5335'
|
|
182
|
+
], {
|
|
183
|
+
config: {
|
|
184
|
+
root: cwd
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
expect(error).toBeUndefined();
|
|
188
|
+
expect(stdout).toContain('Sanity Studio using vite@');
|
|
189
|
+
expect(stdout).toContain('ready in');
|
|
190
|
+
expect(stdout).toContain('ms and running at http://localhost:5335');
|
|
191
|
+
expect(stderr).toContain('Checking configuration files');
|
|
192
|
+
await result.close?.();
|
|
193
|
+
});
|
|
194
|
+
test('should start with custom host configuration', async ()=>{
|
|
195
|
+
const cwd = await testExample('basic-studio');
|
|
196
|
+
process.cwd = ()=>cwd;
|
|
197
|
+
const { error, result, stdout } = await testCommand(DevCommand, [
|
|
198
|
+
'--host',
|
|
199
|
+
'127.0.0.1',
|
|
200
|
+
'--port',
|
|
201
|
+
'5336'
|
|
202
|
+
], {
|
|
203
|
+
config: {
|
|
204
|
+
root: cwd
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
expect(error).toBeUndefined();
|
|
208
|
+
expect(stdout).toContain('http://127.0.0.1:5336');
|
|
209
|
+
await result.close?.();
|
|
210
|
+
});
|
|
211
|
+
test('should start with load-in-dashboard', async ()=>{
|
|
212
|
+
const cwd = await testExample('basic-studio');
|
|
213
|
+
process.cwd = ()=>cwd;
|
|
214
|
+
const projectId = 'test-project';
|
|
215
|
+
// Need to modify the sanity config to include projectId for this test
|
|
216
|
+
const configPath = join(cwd, 'sanity.cli.ts');
|
|
217
|
+
const existingConfig = await readFile(configPath, 'utf8');
|
|
218
|
+
// Add projectId to the config
|
|
219
|
+
const modifiedConfig = existingConfig.replace(/projectId: '.*',/, `projectId: '${projectId}',`);
|
|
220
|
+
await writeFile(configPath, modifiedConfig);
|
|
221
|
+
mockApi({
|
|
222
|
+
apiVersion: 'v2025-08-25',
|
|
223
|
+
uri: `/projects/${projectId}`
|
|
224
|
+
}).reply(200, {
|
|
225
|
+
organizationId: 'test-org'
|
|
226
|
+
});
|
|
227
|
+
const { error, result, stderr, stdout } = await testCommand(DevCommand, [
|
|
228
|
+
'--load-in-dashboard',
|
|
229
|
+
'--port',
|
|
230
|
+
'5340'
|
|
231
|
+
], {
|
|
232
|
+
config: {
|
|
233
|
+
root: cwd
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
expect(error).toBeUndefined();
|
|
237
|
+
expect(stdout).toContain('Dev server started on port 5340');
|
|
238
|
+
expect(stdout).toContain('View your studio in the Sanity dashboard here:');
|
|
239
|
+
expect(stdout).toContain('https://www.sanity.io/@test-org?dev=http%3A%2F%2Flocalhost%3A5340');
|
|
240
|
+
expect(stderr).toContain('Checking configuration files');
|
|
241
|
+
await result.close?.();
|
|
242
|
+
});
|
|
243
|
+
test('should error when projectId is missing with --load-in-dashboard', async ()=>{
|
|
244
|
+
const cwd = await testExample('basic-studio');
|
|
245
|
+
process.cwd = ()=>cwd;
|
|
246
|
+
// Modify config to remove projectId
|
|
247
|
+
const configPath = join(cwd, 'sanity.cli.ts');
|
|
248
|
+
const existingConfig = await readFile(configPath, 'utf8');
|
|
249
|
+
const modifiedConfig = existingConfig.replace(/projectId: '[^']*',/, '');
|
|
250
|
+
await writeFile(configPath, modifiedConfig);
|
|
251
|
+
const { error } = await testCommand(DevCommand, [
|
|
252
|
+
'--load-in-dashboard',
|
|
253
|
+
'--port',
|
|
254
|
+
'5343'
|
|
255
|
+
], {
|
|
256
|
+
config: {
|
|
257
|
+
root: cwd
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
expect(error).toBeDefined();
|
|
261
|
+
expect(error?.message).toContain('Project Id is required to load in dashboard');
|
|
262
|
+
expect(error?.oclif?.exit).toBe(1);
|
|
263
|
+
});
|
|
264
|
+
test('should error when API fails to fetch organizationId', async ()=>{
|
|
265
|
+
const cwd = await testExample('basic-studio');
|
|
266
|
+
process.cwd = ()=>cwd;
|
|
267
|
+
const projectId = 'test-project';
|
|
268
|
+
const configPath = join(cwd, 'sanity.cli.ts');
|
|
269
|
+
const existingConfig = await readFile(configPath, 'utf8');
|
|
270
|
+
const modifiedConfig = existingConfig.replace(/projectId: '.*',/, `projectId: '${projectId}',`);
|
|
271
|
+
await writeFile(configPath, modifiedConfig);
|
|
272
|
+
mockApi({
|
|
273
|
+
apiVersion: 'v2025-08-25',
|
|
274
|
+
uri: `/projects/${projectId}`
|
|
275
|
+
}).reply(404, {
|
|
276
|
+
error: 'Project not found'
|
|
277
|
+
});
|
|
278
|
+
const { error } = await testCommand(DevCommand, [
|
|
279
|
+
'--load-in-dashboard',
|
|
280
|
+
'--port',
|
|
281
|
+
'5344'
|
|
282
|
+
], {
|
|
283
|
+
config: {
|
|
284
|
+
root: cwd
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
expect(error).toBeDefined();
|
|
288
|
+
expect(error?.message).toContain('Failed to get organization id from project id');
|
|
289
|
+
expect(error?.oclif?.exit).toBe(1);
|
|
290
|
+
});
|
|
291
|
+
test('should start dev server successfully when user declines auto-updates', async ()=>{
|
|
292
|
+
const cwd = await testExample('basic-studio');
|
|
293
|
+
process.cwd = ()=>cwd;
|
|
294
|
+
mockCompareDependencyVersions.mockResolvedValueOnce([
|
|
295
|
+
{
|
|
296
|
+
installed: '3.0.0',
|
|
297
|
+
pkg: 'sanity',
|
|
298
|
+
remote: '3.1.0'
|
|
299
|
+
}
|
|
300
|
+
]);
|
|
301
|
+
mockConfirm.mockResolvedValueOnce(false); // User declines upgrade
|
|
302
|
+
const { error, result, stderr, stdout } = await testCommand(DevCommand, [
|
|
303
|
+
'--auto-updates',
|
|
304
|
+
'--port',
|
|
305
|
+
'5346'
|
|
306
|
+
], {
|
|
307
|
+
config: {
|
|
308
|
+
root: cwd
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
expect(error).toBeUndefined();
|
|
312
|
+
// Check that the server started successfully with auto-updates flag
|
|
313
|
+
expect(stdout).toMatch(/running at http:\/\/localhost:5346/);
|
|
314
|
+
expect(stderr).toContain('Checking configuration files');
|
|
315
|
+
await result.close?.();
|
|
316
|
+
});
|
|
317
|
+
test('should handle auto-updates with version mismatch and user accepts upgrade', async ()=>{
|
|
318
|
+
const cwd = await testExample('basic-studio');
|
|
319
|
+
process.cwd = ()=>cwd;
|
|
320
|
+
mockCompareDependencyVersions.mockResolvedValueOnce([
|
|
321
|
+
{
|
|
322
|
+
installed: '3.0.0',
|
|
323
|
+
pkg: 'sanity',
|
|
324
|
+
remote: '3.1.0'
|
|
325
|
+
}
|
|
326
|
+
]);
|
|
327
|
+
mockConfirm.mockResolvedValueOnce(true); // User accepts upgrade
|
|
328
|
+
mockUpgradePackages.mockResolvedValueOnce(undefined);
|
|
329
|
+
mockGetPackageManagerChoice.mockResolvedValueOnce({
|
|
330
|
+
chosen: 'npm',
|
|
331
|
+
mostOptimal: 'npm'
|
|
332
|
+
});
|
|
333
|
+
const { error, result, stderr, stdout } = await testCommand(DevCommand, [
|
|
334
|
+
'--auto-updates',
|
|
335
|
+
'--port',
|
|
336
|
+
'5348'
|
|
337
|
+
], {
|
|
338
|
+
config: {
|
|
339
|
+
root: cwd
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
expect(error).toBeUndefined();
|
|
343
|
+
expect(stdout).toMatch(/running at http:\/\/localhost:5348/);
|
|
344
|
+
expect(stderr).toContain('Checking configuration files');
|
|
345
|
+
expect(mockUpgradePackages).toHaveBeenCalledWith({
|
|
346
|
+
packageManager: 'npm',
|
|
347
|
+
packages: [
|
|
348
|
+
[
|
|
349
|
+
'sanity',
|
|
350
|
+
'3.1.0'
|
|
351
|
+
]
|
|
352
|
+
]
|
|
353
|
+
}, {
|
|
354
|
+
output: expect.any(Object),
|
|
355
|
+
workDir: cwd
|
|
356
|
+
});
|
|
357
|
+
await result.close?.();
|
|
358
|
+
});
|
|
359
|
+
test('should handle invalid Sanity version during auto-updates', async ()=>{
|
|
360
|
+
const cwd = await testExample('basic-studio');
|
|
361
|
+
process.cwd = ()=>cwd;
|
|
362
|
+
mockCheckRequiredDependencies.mockResolvedValueOnce({
|
|
363
|
+
installedSanityVersion: 'invalid-version'
|
|
364
|
+
});
|
|
365
|
+
const { error } = await testCommand(DevCommand, [
|
|
366
|
+
'--auto-updates',
|
|
367
|
+
'--port',
|
|
368
|
+
'5347'
|
|
369
|
+
], {
|
|
370
|
+
config: {
|
|
371
|
+
root: cwd
|
|
372
|
+
}
|
|
373
|
+
});
|
|
374
|
+
expect(error).toBeDefined();
|
|
375
|
+
expect(error?.message).toContain('Failed to parse installed Sanity version');
|
|
376
|
+
});
|
|
377
|
+
});
|
|
378
|
+
test('should throw an error if port is already in use', async ()=>{
|
|
379
|
+
const cwd = await testExample('basic-studio');
|
|
380
|
+
process.cwd = ()=>cwd;
|
|
381
|
+
// Create a server on port 5337 to block it
|
|
382
|
+
const server = createServer();
|
|
383
|
+
await new Promise((resolve)=>{
|
|
384
|
+
server.listen(5337, 'localhost', resolve);
|
|
385
|
+
});
|
|
386
|
+
try {
|
|
387
|
+
const { error } = await testCommand(DevCommand, [
|
|
388
|
+
'--port',
|
|
389
|
+
'5337'
|
|
390
|
+
], {
|
|
391
|
+
config: {
|
|
392
|
+
root: cwd
|
|
393
|
+
}
|
|
394
|
+
});
|
|
395
|
+
expect(error).toBeDefined();
|
|
396
|
+
expect(error?.message).toContain('Port 5337 is already in use');
|
|
397
|
+
expect(error?.oclif?.exit).toBe(1);
|
|
398
|
+
} finally{
|
|
399
|
+
// Clean up the server
|
|
400
|
+
await new Promise((resolve, reject)=>{
|
|
401
|
+
server.close((err)=>{
|
|
402
|
+
if (err) reject(err);
|
|
403
|
+
else resolve();
|
|
404
|
+
});
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
});
|
|
408
|
+
});
|
|
409
|
+
|
|
410
|
+
//# sourceMappingURL=dev.test.js.map
|