@sanity/cli 5.9.0-next.8 â 6.0.0-alpha.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +3212 -2
- package/bin/run.cmd +3 -0
- package/bin/run.js +33 -0
- package/codemods/deskRename.js +115 -96
- package/codemods/partsTypeDirective.js +7 -7
- package/codemods/reactIconsV3.js +78 -51
- package/dist/SanityHelp.js +43 -0
- package/dist/SanityHelp.js.map +1 -0
- package/dist/actions/auth/authServer.js +153 -0
- package/dist/actions/auth/authServer.js.map +1 -0
- package/dist/actions/auth/getProviderName.js +15 -0
- package/dist/actions/auth/getProviderName.js.map +1 -0
- package/dist/actions/auth/login/getProvider.js +54 -0
- package/dist/actions/auth/login/getProvider.js.map +1 -0
- package/dist/actions/auth/login/getSSOProvider.js +30 -0
- package/dist/actions/auth/login/getSSOProvider.js.map +1 -0
- package/dist/actions/auth/login/login.js +101 -0
- package/dist/actions/auth/login/login.js.map +1 -0
- package/dist/actions/auth/login/promptProviders.js +23 -0
- package/dist/actions/auth/login/promptProviders.js.map +1 -0
- package/dist/actions/auth/login/samlProviderToLoginProvider.js +15 -0
- package/dist/actions/auth/login/samlProviderToLoginProvider.js.map +1 -0
- package/dist/actions/auth/types.js +7 -0
- package/dist/actions/auth/types.js.map +1 -0
- package/dist/actions/backup/archiveDir.js +43 -0
- package/dist/actions/backup/archiveDir.js.map +1 -0
- package/dist/actions/backup/assertDatasetExist.js +16 -0
- package/dist/actions/backup/assertDatasetExist.js.map +1 -0
- package/dist/actions/backup/backupDownloadDebug.js +4 -0
- package/dist/actions/backup/backupDownloadDebug.js.map +1 -0
- package/dist/actions/backup/cleanupTmpDir.js +19 -0
- package/dist/actions/backup/cleanupTmpDir.js.map +1 -0
- package/dist/actions/backup/constants.js +3 -0
- package/dist/actions/backup/constants.js.map +1 -0
- package/dist/actions/backup/downloadAsset.js +54 -0
- package/dist/actions/backup/downloadAsset.js.map +1 -0
- package/dist/actions/backup/downloadDocument.js +32 -0
- package/dist/actions/backup/downloadDocument.js.map +1 -0
- package/dist/actions/backup/fetchNextBackupPage.js +48 -0
- package/dist/actions/backup/fetchNextBackupPage.js.map +1 -0
- package/dist/actions/backup/progressSpinner.js +40 -0
- package/dist/actions/backup/progressSpinner.js.map +1 -0
- package/dist/actions/build/buildApp.js +159 -0
- package/dist/actions/build/buildApp.js.map +1 -0
- package/dist/actions/build/buildDebug.js +4 -0
- package/dist/actions/build/buildDebug.js.map +1 -0
- package/dist/actions/build/buildStaticFiles.js +82 -0
- package/dist/actions/build/buildStaticFiles.js.map +1 -0
- package/dist/actions/build/buildStudio.js +202 -0
- package/dist/actions/build/buildStudio.js.map +1 -0
- package/dist/actions/build/buildVendorDependencies.js +179 -0
- package/dist/actions/build/buildVendorDependencies.js.map +1 -0
- package/dist/actions/build/checkRequiredDependencies.js +122 -0
- package/dist/actions/build/checkRequiredDependencies.js.map +1 -0
- package/dist/actions/build/checkStudioDependencyVersions.js +154 -0
- package/dist/actions/build/checkStudioDependencyVersions.js.map +1 -0
- package/dist/actions/build/createExternalFromImportMap.js +11 -0
- package/dist/actions/build/createExternalFromImportMap.js.map +1 -0
- package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.js +13 -0
- package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.js.map +1 -0
- package/dist/actions/build/decorateIndexWithBridgeScript.js +17 -0
- package/dist/actions/build/decorateIndexWithBridgeScript.js.map +1 -0
- package/dist/actions/build/determineBasePath.js +20 -0
- package/dist/actions/build/determineBasePath.js.map +1 -0
- package/dist/actions/build/generateWebManifest.js +27 -0
- package/dist/actions/build/generateWebManifest.js.map +1 -0
- package/dist/actions/build/getAppEnvVars.js +9 -0
- package/dist/actions/build/getAppEnvVars.js.map +1 -0
- package/dist/actions/build/getAutoUpdatesImportMap.js +57 -0
- package/dist/actions/build/getAutoUpdatesImportMap.js.map +1 -0
- package/dist/actions/build/getEntryModule.js +46 -0
- package/dist/actions/build/getEntryModule.js.map +1 -0
- package/dist/actions/build/getPossibleDocumentComponentLocations.js +11 -0
- package/dist/actions/build/getPossibleDocumentComponentLocations.js.map +1 -0
- package/dist/actions/build/getStudioEnvVars.js +9 -0
- package/dist/actions/build/getStudioEnvVars.js.map +1 -0
- package/dist/actions/build/getStudioEnvironmentVariables.js +58 -0
- package/dist/actions/build/getStudioEnvironmentVariables.js.map +1 -0
- package/dist/actions/build/getViteConfig.js +180 -0
- package/dist/actions/build/getViteConfig.js.map +1 -0
- package/dist/actions/build/normalizeBasePath.js +9 -0
- package/dist/actions/build/normalizeBasePath.js.map +1 -0
- package/dist/actions/build/renderDocument.js +54 -0
- package/dist/actions/build/renderDocument.js.map +1 -0
- package/dist/actions/build/renderDocument.worker.js +9 -0
- package/dist/actions/build/renderDocument.worker.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.js +59 -0
- package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js +61 -0
- package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js +165 -0
- package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/Favicons.js +28 -0
- package/dist/actions/build/renderDocumentWorker/components/Favicons.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js +177 -0
- package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/NoJavascript.js +51 -0
- package/dist/actions/build/renderDocumentWorker/components/NoJavascript.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js +41 -0
- package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/getDocumentHtml.js +55 -0
- package/dist/actions/build/renderDocumentWorker/getDocumentHtml.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js +31 -0
- package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.js +30 -0
- package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/types.js +5 -0
- package/dist/actions/build/renderDocumentWorker/types.js.map +1 -0
- package/dist/actions/build/shouldAutoUpdate.js +35 -0
- package/dist/actions/build/shouldAutoUpdate.js.map +1 -0
- package/dist/actions/build/types.js +3 -0
- package/dist/actions/build/types.js.map +1 -0
- package/dist/actions/build/writeFavicons.js +26 -0
- package/dist/actions/build/writeFavicons.js.map +1 -0
- package/dist/actions/build/writeSanityRuntime.js +61 -0
- package/dist/actions/build/writeSanityRuntime.js.map +1 -0
- package/dist/actions/build/writeWebManifest.js +12 -0
- package/dist/actions/build/writeWebManifest.js.map +1 -0
- package/dist/actions/codemods/deskRename.js +18 -0
- package/dist/actions/codemods/deskRename.js.map +1 -0
- package/dist/actions/codemods/index.js +10 -0
- package/dist/actions/codemods/index.js.map +1 -0
- package/dist/actions/codemods/partsTypeDirective.js +27 -0
- package/dist/actions/codemods/partsTypeDirective.js.map +1 -0
- package/dist/actions/codemods/reactIconsV3.js +30 -0
- package/dist/actions/codemods/reactIconsV3.js.map +1 -0
- package/dist/actions/codemods/types.js +3 -0
- package/dist/actions/codemods/types.js.map +1 -0
- package/dist/actions/cors/filterAndValidateOrigin.js +38 -0
- package/dist/actions/cors/filterAndValidateOrigin.js.map +1 -0
- package/dist/actions/dataset/create.js +46 -0
- package/dist/actions/dataset/create.js.map +1 -0
- package/dist/actions/dataset/determineDatasetAclMode.js +36 -0
- package/dist/actions/dataset/determineDatasetAclMode.js.map +1 -0
- package/dist/actions/dataset/processAliasName.js +20 -0
- package/dist/actions/dataset/processAliasName.js.map +1 -0
- package/dist/actions/dataset/validateDatasetAliasName.js +28 -0
- package/dist/actions/dataset/validateDatasetAliasName.js.map +1 -0
- package/dist/actions/dataset/validateDatasetName.js +39 -0
- package/dist/actions/dataset/validateDatasetName.js.map +1 -0
- package/dist/actions/debug/gatherDebugInfo.js +104 -0
- package/dist/actions/debug/gatherDebugInfo.js.map +1 -0
- package/dist/actions/debug/getGlobalConfigLocation.js +7 -0
- package/dist/actions/debug/getGlobalConfigLocation.js.map +1 -0
- package/dist/actions/debug/types.js +3 -0
- package/dist/actions/debug/types.js.map +1 -0
- package/dist/actions/deploy/checkDir.js +31 -0
- package/dist/actions/deploy/checkDir.js.map +1 -0
- package/dist/actions/deploy/createStudioUserApplication.js +59 -0
- package/dist/actions/deploy/createStudioUserApplication.js.map +1 -0
- package/dist/actions/deploy/createUserApplicationForApp.js +56 -0
- package/dist/actions/deploy/createUserApplicationForApp.js.map +1 -0
- package/dist/actions/deploy/deployApp.js +162 -0
- package/dist/actions/deploy/deployApp.js.map +1 -0
- package/dist/actions/deploy/deployDebug.js +4 -0
- package/dist/actions/deploy/deployDebug.js.map +1 -0
- package/dist/actions/deploy/deployStudio.js +134 -0
- package/dist/actions/deploy/deployStudio.js.map +1 -0
- package/dist/actions/deploy/findUserApplicationForApp.js +110 -0
- package/dist/actions/deploy/findUserApplicationForApp.js.map +1 -0
- package/dist/actions/deploy/findUserApplicationForStudio.js +143 -0
- package/dist/actions/deploy/findUserApplicationForStudio.js.map +1 -0
- package/dist/actions/deploy/types.js +3 -0
- package/dist/actions/deploy/types.js.map +1 -0
- package/dist/actions/dev/devAction.js +7 -0
- package/dist/actions/dev/devAction.js.map +1 -0
- package/dist/actions/dev/devDebug.js +4 -0
- package/dist/actions/dev/devDebug.js.map +1 -0
- package/dist/actions/dev/getCoreAppUrl.js +10 -0
- package/dist/actions/dev/getCoreAppUrl.js.map +1 -0
- package/dist/actions/dev/getDevServerConfig.js +28 -0
- package/dist/actions/dev/getDevServerConfig.js.map +1 -0
- package/dist/actions/dev/startAppDevServer.js +57 -0
- package/dist/actions/dev/startAppDevServer.js.map +1 -0
- package/dist/actions/dev/startStudioDevServer.js +154 -0
- package/dist/actions/dev/startStudioDevServer.js.map +1 -0
- package/dist/actions/dev/types.js +3 -0
- package/dist/actions/dev/types.js.map +1 -0
- package/dist/actions/docs/normalizeDocsPath.js +15 -0
- package/dist/actions/docs/normalizeDocsPath.js.map +1 -0
- package/dist/actions/documents/constants.js +3 -0
- package/dist/actions/documents/constants.js.map +1 -0
- package/dist/actions/documents/editor.js +26 -0
- package/dist/actions/documents/editor.js.map +1 -0
- package/dist/actions/documents/types.js +3 -0
- package/dist/actions/documents/types.js.map +1 -0
- package/dist/actions/documents/validate.js +60 -0
- package/dist/actions/documents/validate.js.map +1 -0
- package/dist/actions/documents/validateDocuments.worker.js +251 -0
- package/dist/actions/documents/validateDocuments.worker.js.map +1 -0
- package/dist/actions/documents/validation/reporters/index.js +10 -0
- package/dist/actions/documents/validation/reporters/index.js.map +1 -0
- package/dist/actions/documents/validation/reporters/jsonReporter.js +25 -0
- package/dist/actions/documents/validation/reporters/jsonReporter.js.map +1 -0
- package/dist/actions/documents/validation/reporters/ndjsonReporter.js +18 -0
- package/dist/actions/documents/validation/reporters/ndjsonReporter.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js +62 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/index.js +3 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/index.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/prettyReporter.js +92 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/prettyReporter.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/util.js +45 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/util.js.map +1 -0
- package/dist/actions/exec/configClient.worker.js +9 -0
- package/dist/actions/exec/configClient.worker.js.map +1 -0
- package/dist/actions/exec/execScript.js +77 -0
- package/dist/actions/exec/execScript.js.map +1 -0
- package/dist/actions/exec/registerBrowserEnv.worker.js +17 -0
- package/dist/actions/exec/registerBrowserEnv.worker.js.map +1 -0
- package/dist/actions/graphql/SchemaError.js +37 -0
- package/dist/actions/graphql/SchemaError.js.map +1 -0
- package/dist/actions/graphql/extractFromSanitySchema.js +659 -0
- package/dist/actions/graphql/extractFromSanitySchema.js.map +1 -0
- package/dist/actions/graphql/gen1/generateTypeFilters.js +226 -0
- package/dist/actions/graphql/gen1/generateTypeFilters.js.map +1 -0
- package/dist/actions/graphql/gen1/generateTypeQueries.js +85 -0
- package/dist/actions/graphql/gen1/generateTypeQueries.js.map +1 -0
- package/dist/actions/graphql/gen1/index.js +19 -0
- package/dist/actions/graphql/gen1/index.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/booleanFilters.js +26 -0
- package/dist/actions/graphql/gen2/filters/booleanFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/dateFilters.js +46 -0
- package/dist/actions/graphql/gen2/filters/dateFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/dateTimeFilters.js +46 -0
- package/dist/actions/graphql/gen2/filters/dateTimeFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/documentFilters.js +21 -0
- package/dist/actions/graphql/gen2/filters/documentFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/floatFilters.js +46 -0
- package/dist/actions/graphql/gen2/filters/floatFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/idFilters.js +44 -0
- package/dist/actions/graphql/gen2/filters/idFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/integerFilters.js +46 -0
- package/dist/actions/graphql/gen2/filters/integerFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/stringFilters.js +49 -0
- package/dist/actions/graphql/gen2/filters/stringFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/generateTypeFilters.js +85 -0
- package/dist/actions/graphql/gen2/generateTypeFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/generateTypeQueries.js +107 -0
- package/dist/actions/graphql/gen2/generateTypeQueries.js.map +1 -0
- package/dist/actions/graphql/gen2/generateTypeSortings.js +70 -0
- package/dist/actions/graphql/gen2/generateTypeSortings.js.map +1 -0
- package/dist/actions/graphql/gen2/index.js +22 -0
- package/dist/actions/graphql/gen2/index.js.map +1 -0
- package/dist/actions/graphql/gen3/filters/documentFilters.js +21 -0
- package/dist/actions/graphql/gen3/filters/documentFilters.js.map +1 -0
- package/dist/actions/graphql/gen3/generateTypeFilters.js +101 -0
- package/dist/actions/graphql/gen3/generateTypeFilters.js.map +1 -0
- package/dist/actions/graphql/gen3/generateTypeQueries.js +104 -0
- package/dist/actions/graphql/gen3/generateTypeQueries.js.map +1 -0
- package/dist/actions/graphql/gen3/generateTypeSortings.js +70 -0
- package/dist/actions/graphql/gen3/generateTypeSortings.js.map +1 -0
- package/dist/actions/graphql/gen3/index.js +31 -0
- package/dist/actions/graphql/gen3/index.js.map +1 -0
- package/dist/actions/graphql/gen3/utils.js +12 -0
- package/dist/actions/graphql/gen3/utils.js.map +1 -0
- package/dist/actions/graphql/getGraphQLAPIs.js +65 -0
- package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -0
- package/dist/actions/graphql/getGraphQLAPIs.worker.js +126 -0
- package/dist/actions/graphql/getGraphQLAPIs.worker.js.map +1 -0
- package/dist/actions/graphql/graphqlDebug.js +4 -0
- package/dist/actions/graphql/graphqlDebug.js.map +1 -0
- package/dist/actions/graphql/helpUrls.js +3 -0
- package/dist/actions/graphql/helpUrls.js.map +1 -0
- package/dist/actions/graphql/helpers.js +11 -0
- package/dist/actions/graphql/helpers.js.map +1 -0
- package/dist/actions/graphql/resolveApiGeneration.js +43 -0
- package/dist/actions/graphql/resolveApiGeneration.js.map +1 -0
- package/dist/actions/graphql/types.js +3 -0
- package/dist/actions/graphql/types.js.map +1 -0
- package/dist/actions/hook/constants.js +3 -0
- package/dist/actions/hook/constants.js.map +1 -0
- package/dist/actions/hook/formatFailure.js +29 -0
- package/dist/actions/hook/formatFailure.js.map +1 -0
- package/dist/actions/hook/types.js +3 -0
- package/dist/actions/hook/types.js.map +1 -0
- package/dist/actions/init/bootstrapLocalTemplate.js +137 -0
- package/dist/actions/init/bootstrapLocalTemplate.js.map +1 -0
- package/dist/actions/init/bootstrapRemoteTemplate.js +109 -0
- package/dist/actions/init/bootstrapRemoteTemplate.js.map +1 -0
- package/dist/actions/init/bootstrapTemplate.js +32 -0
- package/dist/actions/init/bootstrapTemplate.js.map +1 -0
- package/dist/actions/init/checkNextJsReactCompatibility.js +21 -0
- package/dist/actions/init/checkNextJsReactCompatibility.js.map +1 -0
- package/dist/actions/init/constants.js +3 -0
- package/dist/actions/init/constants.js.map +1 -0
- package/dist/actions/init/countNestedFolders.js +6 -0
- package/dist/actions/init/countNestedFolders.js.map +1 -0
- package/dist/actions/init/createAppCliConfig.js +19 -0
- package/dist/actions/init/createAppCliConfig.js.map +1 -0
- package/dist/actions/init/createCliConfig.js +27 -0
- package/dist/actions/init/createCliConfig.js.map +1 -0
- package/dist/actions/init/createPackageManifest.js +86 -0
- package/dist/actions/init/createPackageManifest.js.map +1 -0
- package/dist/actions/init/createStudioConfig.js +41 -0
- package/dist/actions/init/createStudioConfig.js.map +1 -0
- package/dist/actions/init/determineAppTemplate.js +16 -0
- package/dist/actions/init/determineAppTemplate.js.map +1 -0
- package/dist/actions/init/env/createOrAppendEnvVars.js +25 -0
- package/dist/actions/init/env/createOrAppendEnvVars.js.map +1 -0
- package/dist/actions/init/env/parseAndUpdateEnvVars.js +42 -0
- package/dist/actions/init/env/parseAndUpdateEnvVars.js.map +1 -0
- package/dist/actions/init/env/writeEnvVarsToFile.js +49 -0
- package/dist/actions/init/env/writeEnvVarsToFile.js.map +1 -0
- package/dist/actions/init/fetchPostInitPrompt.js +30 -0
- package/dist/actions/init/fetchPostInitPrompt.js.map +1 -0
- package/dist/actions/init/git.js +65 -0
- package/dist/actions/init/git.js.map +1 -0
- package/dist/actions/init/processTemplate.js +56 -0
- package/dist/actions/init/processTemplate.js.map +1 -0
- package/dist/actions/init/remoteTemplate.js +211 -0
- package/dist/actions/init/remoteTemplate.js.map +1 -0
- package/dist/actions/init/resolvePackageManager.js +20 -0
- package/dist/actions/init/resolvePackageManager.js.map +1 -0
- package/dist/actions/init/templates/appQuickstart.js +28 -0
- package/dist/actions/init/templates/appQuickstart.js.map +1 -0
- package/dist/actions/init/templates/appSanityUi.js +30 -0
- package/dist/actions/init/templates/appSanityUi.js.map +1 -0
- package/dist/actions/init/templates/blog.js +4 -0
- package/dist/actions/init/templates/blog.js.map +1 -0
- package/dist/actions/init/templates/clean.js +4 -0
- package/dist/actions/init/templates/clean.js.map +1 -0
- package/dist/actions/init/templates/getStarted.js +35 -0
- package/dist/actions/init/templates/getStarted.js.map +1 -0
- package/dist/actions/init/templates/index.js +23 -0
- package/dist/actions/init/templates/index.js.map +1 -0
- package/dist/actions/init/templates/moviedb.js +34 -0
- package/dist/actions/init/templates/moviedb.js.map +1 -0
- package/dist/actions/init/templates/nextjs/index.js +213 -0
- package/dist/actions/init/templates/nextjs/index.js.map +1 -0
- package/dist/actions/init/templates/nextjs/schemaTypes/blog.js +247 -0
- package/dist/actions/init/templates/nextjs/schemaTypes/blog.js.map +1 -0
- package/dist/actions/init/templates/quickstart.js +4 -0
- package/dist/actions/init/templates/quickstart.js.map +1 -0
- package/dist/actions/init/templates/shopify.js +77 -0
- package/dist/actions/init/templates/shopify.js.map +1 -0
- package/dist/actions/init/templates/shopifyOnline.js +49 -0
- package/dist/actions/init/templates/shopifyOnline.js.map +1 -0
- package/dist/actions/init/types.js +3 -0
- package/dist/actions/init/types.js.map +1 -0
- package/dist/actions/init/updateInitialTemplateMetadata.js +17 -0
- package/dist/actions/init/updateInitialTemplateMetadata.js.map +1 -0
- package/dist/actions/manifest/SchemaIcon.js +21 -0
- package/dist/actions/manifest/SchemaIcon.js.map +1 -0
- package/dist/actions/manifest/extractAppManifest.js +51 -0
- package/dist/actions/manifest/extractAppManifest.js.map +1 -0
- package/dist/actions/manifest/extractManifest.js +93 -0
- package/dist/actions/manifest/extractManifest.js.map +1 -0
- package/dist/actions/manifest/extractWorkspaceManifest.js +406 -0
- package/dist/actions/manifest/extractWorkspaceManifest.js.map +1 -0
- package/dist/actions/manifest/purifyConfig.js +307 -0
- package/dist/actions/manifest/purifyConfig.js.map +1 -0
- package/dist/actions/manifest/schemaTypeHelpers.js +110 -0
- package/dist/actions/manifest/schemaTypeHelpers.js.map +1 -0
- package/dist/actions/manifest/types.js +5 -0
- package/dist/actions/manifest/types.js.map +1 -0
- package/dist/actions/mcp/detectAvailableEditors.js +75 -0
- package/dist/actions/mcp/detectAvailableEditors.js.map +1 -0
- package/dist/actions/mcp/editorConfigs.js +147 -0
- package/dist/actions/mcp/editorConfigs.js.map +1 -0
- package/dist/actions/mcp/promptForMCPSetup.js +24 -0
- package/dist/actions/mcp/promptForMCPSetup.js.map +1 -0
- package/dist/actions/mcp/setupMCP.js +88 -0
- package/dist/actions/mcp/setupMCP.js.map +1 -0
- package/dist/actions/mcp/types.js +3 -0
- package/dist/actions/mcp/types.js.map +1 -0
- package/dist/actions/mcp/writeMCPConfig.js +41 -0
- package/dist/actions/mcp/writeMCPConfig.js.map +1 -0
- package/dist/actions/media/__tests__/createMockClient.js +32 -0
- package/dist/actions/media/__tests__/createMockClient.js.map +1 -0
- package/dist/actions/media/getMediaLibraryConfig.js +5 -0
- package/dist/actions/media/getMediaLibraryConfig.js.map +1 -0
- package/dist/actions/media/importAspects.js +112 -0
- package/dist/actions/media/importAspects.js.map +1 -0
- package/dist/actions/media/importMedia.js +213 -0
- package/dist/actions/media/importMedia.js.map +1 -0
- package/dist/actions/media/importMediaDebug.js +4 -0
- package/dist/actions/media/importMediaDebug.js.map +1 -0
- package/dist/actions/organizations/getOrganization.js +67 -0
- package/dist/actions/organizations/getOrganization.js.map +1 -0
- package/dist/actions/organizations/getOrganizationChoices.js +23 -0
- package/dist/actions/organizations/getOrganizationChoices.js.map +1 -0
- package/dist/actions/organizations/getOrganizationsWithAttachGrantInfo.js +9 -0
- package/dist/actions/organizations/getOrganizationsWithAttachGrantInfo.js.map +1 -0
- package/dist/actions/organizations/hasProjectAttachGrant.js +24 -0
- package/dist/actions/organizations/hasProjectAttachGrant.js.map +1 -0
- package/dist/actions/organizations/validateOrganizationName.js +10 -0
- package/dist/actions/organizations/validateOrganizationName.js.map +1 -0
- package/dist/actions/preview/getPreviewServerConfig.js +16 -0
- package/dist/actions/preview/getPreviewServerConfig.js.map +1 -0
- package/dist/actions/preview/previewAction.js +20 -0
- package/dist/actions/preview/previewAction.js.map +1 -0
- package/dist/actions/preview/types.js +3 -0
- package/dist/actions/preview/types.js.map +1 -0
- package/dist/actions/projects/getManageUrl.js +7 -0
- package/dist/actions/projects/getManageUrl.js.map +1 -0
- package/dist/actions/projects/validateProjectName.js +11 -0
- package/dist/actions/projects/validateProjectName.js.map +1 -0
- package/dist/actions/schema/deleteSchemaAction.js +101 -0
- package/dist/actions/schema/deleteSchemaAction.js.map +1 -0
- package/dist/actions/schema/deploySchemas.js +98 -0
- package/dist/actions/schema/deploySchemas.js.map +1 -0
- package/dist/actions/schema/extractSanitySchema.worker.js +38 -0
- package/dist/actions/schema/extractSanitySchema.worker.js.map +1 -0
- package/dist/actions/schema/extractSchema.js +77 -0
- package/dist/actions/schema/extractSchema.js.map +1 -0
- package/dist/actions/schema/formatSchemaValidation.js +74 -0
- package/dist/actions/schema/formatSchemaValidation.js.map +1 -0
- package/dist/actions/schema/listSchemas.js +119 -0
- package/dist/actions/schema/listSchemas.js.map +1 -0
- package/dist/actions/schema/metafile.js +51 -0
- package/dist/actions/schema/metafile.js.map +1 -0
- package/dist/actions/schema/schemaStoreTypes.js +19 -0
- package/dist/actions/schema/schemaStoreTypes.js.map +1 -0
- package/dist/actions/schema/types.js +9 -0
- package/dist/actions/schema/types.js.map +1 -0
- package/dist/actions/schema/utils/debug.js +6 -0
- package/dist/actions/schema/utils/debug.js.map +1 -0
- package/dist/actions/schema/utils/extractValidationFromSchemaError.js +12 -0
- package/dist/actions/schema/utils/extractValidationFromSchemaError.js.map +1 -0
- package/dist/actions/schema/utils/manifestExtractor.js +33 -0
- package/dist/actions/schema/utils/manifestExtractor.js.map +1 -0
- package/dist/actions/schema/utils/manifestReader.js +71 -0
- package/dist/actions/schema/utils/manifestReader.js.map +1 -0
- package/dist/actions/schema/utils/schemaStoreOutStrings.js +11 -0
- package/dist/actions/schema/utils/schemaStoreOutStrings.js.map +1 -0
- package/dist/actions/schema/utils/schemaStoreValidation.js +108 -0
- package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -0
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js +9 -0
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -0
- package/dist/actions/schema/utils/workspaceSchemaId.js +23 -0
- package/dist/actions/schema/utils/workspaceSchemaId.js.map +1 -0
- package/dist/actions/schema/validateAction.js +71 -0
- package/dist/actions/schema/validateAction.js.map +1 -0
- package/dist/actions/schema/validateSchema.worker.js +124 -0
- package/dist/actions/schema/validateSchema.worker.js.map +1 -0
- package/dist/actions/telemetry/getLearnMoreMessage.js +15 -0
- package/dist/actions/telemetry/getLearnMoreMessage.js.map +1 -0
- package/dist/actions/telemetry/getStatusDisplay.js +26 -0
- package/dist/actions/telemetry/getStatusDisplay.js.map +1 -0
- package/dist/actions/telemetry/getStatusMessage.js +36 -0
- package/dist/actions/telemetry/getStatusMessage.js.map +1 -0
- package/dist/actions/telemetry/resolveConsent.js +48 -0
- package/dist/actions/telemetry/resolveConsent.js.map +1 -0
- package/dist/actions/telemetry/setConsent.js +83 -0
- package/dist/actions/telemetry/setConsent.js.map +1 -0
- package/dist/actions/telemetry/telemetryDebug.js +4 -0
- package/dist/actions/telemetry/telemetryDebug.js.map +1 -0
- package/dist/actions/telemetry/telemetryDisclosure.js +33 -0
- package/dist/actions/telemetry/telemetryDisclosure.js.map +1 -0
- package/dist/actions/telemetry/telemetryLearnMoreMessage.js +15 -0
- package/dist/actions/telemetry/telemetryLearnMoreMessage.js.map +1 -0
- package/dist/actions/tokens/constants.js +5 -0
- package/dist/actions/tokens/constants.js.map +1 -0
- package/dist/actions/tokens/types.js +3 -0
- package/dist/actions/tokens/types.js.map +1 -0
- package/dist/actions/tokens/validateRole.js +23 -0
- package/dist/actions/tokens/validateRole.js.map +1 -0
- package/dist/actions/undeploy/getStudioOrAppUserApplication.js +36 -0
- package/dist/actions/undeploy/getStudioOrAppUserApplication.js.map +1 -0
- package/dist/actions/users/getMembersForProject.js +47 -0
- package/dist/actions/users/getMembersForProject.js.map +1 -0
- package/dist/actions/users/getPendingInvitations.js +15 -0
- package/dist/actions/users/getPendingInvitations.js.map +1 -0
- package/dist/actions/users/types.js +3 -0
- package/dist/actions/users/types.js.map +1 -0
- package/dist/actions/users/usersDebug.js +4 -0
- package/dist/actions/users/usersDebug.js.map +1 -0
- package/dist/actions/users/validateEmail.js +14 -0
- package/dist/actions/users/validateEmail.js.map +1 -0
- package/dist/actions/versions/buildPackageArray.js +44 -0
- package/dist/actions/versions/buildPackageArray.js.map +1 -0
- package/dist/actions/versions/filterSanityModules.js +20 -0
- package/dist/actions/versions/filterSanityModules.js.map +1 -0
- package/dist/actions/versions/findSanityModulesVersions.js +47 -0
- package/dist/actions/versions/findSanityModulesVersions.js.map +1 -0
- package/dist/actions/versions/getFormatters.js +30 -0
- package/dist/actions/versions/getFormatters.js.map +1 -0
- package/dist/actions/versions/tryFindLatestVersion.js +21 -0
- package/dist/actions/versions/tryFindLatestVersion.js.map +1 -0
- package/dist/actions/versions/types.js +5 -0
- package/dist/actions/versions/types.js.map +1 -0
- package/dist/actions/versions/versionsDebug.js +4 -0
- package/dist/actions/versions/versionsDebug.js.map +1 -0
- package/dist/commands/backup/disable.js +94 -0
- package/dist/commands/backup/disable.js.map +1 -0
- package/dist/commands/backup/download.js +291 -0
- package/dist/commands/backup/download.js.map +1 -0
- package/dist/commands/backup/enable.js +99 -0
- package/dist/commands/backup/enable.js.map +1 -0
- package/dist/commands/backup/list.js +187 -0
- package/dist/commands/backup/list.js.map +1 -0
- package/dist/commands/build.js +82 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/codemod.js +141 -0
- package/dist/commands/codemod.js.map +1 -0
- package/dist/commands/cors/add.js +154 -0
- package/dist/commands/cors/add.js.map +1 -0
- package/dist/commands/cors/delete.js +90 -0
- package/dist/commands/cors/delete.js.map +1 -0
- package/dist/commands/cors/list.js +40 -0
- package/dist/commands/cors/list.js.map +1 -0
- package/dist/commands/dataset/alias/create.js +118 -0
- package/dist/commands/dataset/alias/create.js.map +1 -0
- package/dist/commands/dataset/alias/delete.js +88 -0
- package/dist/commands/dataset/alias/delete.js.map +1 -0
- package/dist/commands/dataset/alias/link.js +137 -0
- package/dist/commands/dataset/alias/link.js.map +1 -0
- package/dist/commands/dataset/alias/unlink.js +98 -0
- package/dist/commands/dataset/alias/unlink.js.map +1 -0
- package/dist/commands/dataset/copy.js +369 -0
- package/dist/commands/dataset/copy.js.map +1 -0
- package/dist/commands/dataset/create.js +106 -0
- package/dist/commands/dataset/create.js.map +1 -0
- package/dist/commands/dataset/delete.js +104 -0
- package/dist/commands/dataset/delete.js.map +1 -0
- package/dist/commands/dataset/export.js +271 -0
- package/dist/commands/dataset/export.js.map +1 -0
- package/dist/commands/dataset/import.js +3 -0
- package/dist/commands/dataset/import.js.map +1 -0
- package/dist/commands/dataset/list.js +50 -0
- package/dist/commands/dataset/list.js.map +1 -0
- package/dist/commands/dataset/visibility/get.js +55 -0
- package/dist/commands/dataset/visibility/get.js.map +1 -0
- package/dist/commands/dataset/visibility/set.js +88 -0
- package/dist/commands/dataset/visibility/set.js.map +1 -0
- package/dist/commands/debug.js +93 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/deploy.js +115 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.js +65 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/docs/browse.js +15 -0
- package/dist/commands/docs/browse.js.map +1 -0
- package/dist/commands/docs/read.js +81 -0
- package/dist/commands/docs/read.js.map +1 -0
- package/dist/commands/docs/search.js +111 -0
- package/dist/commands/docs/search.js.map +1 -0
- package/dist/commands/documents/create.js +338 -0
- package/dist/commands/documents/create.js.map +1 -0
- package/dist/commands/documents/delete.js +104 -0
- package/dist/commands/documents/delete.js.map +1 -0
- package/dist/commands/documents/get.js +85 -0
- package/dist/commands/documents/get.js.map +1 -0
- package/dist/commands/documents/query.js +105 -0
- package/dist/commands/documents/query.js.map +1 -0
- package/dist/commands/documents/validate.js +142 -0
- package/dist/commands/documents/validate.js.map +1 -0
- package/dist/commands/exec.js +54 -0
- package/dist/commands/exec.js.map +1 -0
- package/dist/commands/graphql/deploy.js +429 -0
- package/dist/commands/graphql/deploy.js.map +1 -0
- package/dist/commands/graphql/list.js +53 -0
- package/dist/commands/graphql/list.js.map +1 -0
- package/dist/commands/graphql/undeploy.js +143 -0
- package/dist/commands/graphql/undeploy.js.map +1 -0
- package/dist/commands/hook/attempt.js +66 -0
- package/dist/commands/hook/attempt.js.map +1 -0
- package/dist/commands/hook/create.js +46 -0
- package/dist/commands/hook/create.js.map +1 -0
- package/dist/commands/hook/delete.js +86 -0
- package/dist/commands/hook/delete.js.map +1 -0
- package/dist/commands/hook/list.js +46 -0
- package/dist/commands/hook/list.js.map +1 -0
- package/dist/commands/hook/logs.js +184 -0
- package/dist/commands/hook/logs.js.map +1 -0
- package/dist/commands/init.js +1389 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install.js +43 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/learn.js +15 -0
- package/dist/commands/learn.js.map +1 -0
- package/dist/commands/login.js +50 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.js +37 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/manage.js +29 -0
- package/dist/commands/manage.js.map +1 -0
- package/dist/commands/manifest/extract.js +43 -0
- package/dist/commands/manifest/extract.js.map +1 -0
- package/dist/commands/mcp/configure.js +28 -0
- package/dist/commands/mcp/configure.js.map +1 -0
- package/dist/commands/media/create-aspect.js +88 -0
- package/dist/commands/media/create-aspect.js.map +1 -0
- package/dist/commands/media/delete-aspect.js +85 -0
- package/dist/commands/media/delete-aspect.js.map +1 -0
- package/dist/commands/media/deploy-aspect.js +151 -0
- package/dist/commands/media/deploy-aspect.js.map +1 -0
- package/dist/commands/media/export.js +210 -0
- package/dist/commands/media/export.js.map +1 -0
- package/dist/commands/media/import.js +160 -0
- package/dist/commands/media/import.js.map +1 -0
- package/dist/commands/openapi/get.js +83 -0
- package/dist/commands/openapi/get.js.map +1 -0
- package/dist/commands/openapi/list.js +80 -0
- package/dist/commands/openapi/list.js.map +1 -0
- package/dist/commands/preview.js +60 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/projects/create.js +181 -0
- package/dist/commands/projects/create.js.map +1 -0
- package/dist/commands/projects/list.js +76 -0
- package/dist/commands/projects/list.js.map +1 -0
- package/dist/commands/schema/delete.js +91 -0
- package/dist/commands/schema/delete.js.map +1 -0
- package/dist/commands/schema/deploy.js +98 -0
- package/dist/commands/schema/deploy.js.map +1 -0
- package/dist/commands/schema/extract.js +46 -0
- package/dist/commands/schema/extract.js.map +1 -0
- package/dist/commands/schema/list.js +104 -0
- package/dist/commands/schema/list.js.map +1 -0
- package/dist/commands/schema/validate.js +73 -0
- package/dist/commands/schema/validate.js.map +1 -0
- package/dist/commands/telemetry/disable.js +33 -0
- package/dist/commands/telemetry/disable.js.map +1 -0
- package/dist/commands/telemetry/enable.js +33 -0
- package/dist/commands/telemetry/enable.js.map +1 -0
- package/dist/commands/telemetry/status.js +25 -0
- package/dist/commands/telemetry/status.js.map +1 -0
- package/dist/commands/tokens/add.js +135 -0
- package/dist/commands/tokens/add.js.map +1 -0
- package/dist/commands/tokens/delete.js +107 -0
- package/dist/commands/tokens/delete.js.map +1 -0
- package/dist/commands/tokens/list.js +92 -0
- package/dist/commands/tokens/list.js.map +1 -0
- package/dist/commands/undeploy.js +93 -0
- package/dist/commands/undeploy.js.map +1 -0
- package/dist/commands/users/invite.js +100 -0
- package/dist/commands/users/invite.js.map +1 -0
- package/dist/commands/users/list.js +101 -0
- package/dist/commands/users/list.js.map +1 -0
- package/dist/commands/versions.js +27 -0
- package/dist/commands/versions.js.map +1 -0
- package/dist/config/createCliConfig.js +9 -0
- package/dist/config/createCliConfig.js.map +1 -0
- package/dist/config/defineCliConfig.js +5 -0
- package/dist/config/defineCliConfig.js.map +1 -0
- package/dist/hooks/prerun/flushTelemetry.worker.js +22 -0
- package/dist/hooks/prerun/flushTelemetry.worker.js.map +1 -0
- package/dist/hooks/prerun/injectEnvVariables.js +31 -0
- package/dist/hooks/prerun/injectEnvVariables.js.map +1 -0
- package/dist/hooks/prerun/setupTelemetry.js +72 -0
- package/dist/hooks/prerun/setupTelemetry.js.map +1 -0
- package/dist/hooks/prerun/warnings.js +6 -0
- package/dist/hooks/prerun/warnings.js.map +1 -0
- package/dist/index.d.ts +2326 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/init/nextjs.js +56 -0
- package/dist/prompts/init/nextjs.js.map +1 -0
- package/dist/prompts/init/promptForTypescript.js +9 -0
- package/dist/prompts/init/promptForTypescript.js.map +1 -0
- package/dist/prompts/promptForDataset.js +32 -0
- package/dist/prompts/promptForDataset.js.map +1 -0
- package/dist/prompts/promptForDatasetAclMode.js +27 -0
- package/dist/prompts/promptForDatasetAclMode.js.map +1 -0
- package/dist/prompts/promptForDatasetAliasName.js +17 -0
- package/dist/prompts/promptForDatasetAliasName.js.map +1 -0
- package/dist/prompts/promptForDatasetName.js +20 -0
- package/dist/prompts/promptForDatasetName.js.map +1 -0
- package/dist/prompts/promptForDefaultConfig.js +12 -0
- package/dist/prompts/promptForDefaultConfig.js.map +1 -0
- package/dist/prompts/promptForMediaLibrary.js +37 -0
- package/dist/prompts/promptForMediaLibrary.js.map +1 -0
- package/dist/prompts/promptForOrganizationName.js +11 -0
- package/dist/prompts/promptForOrganizationName.js.map +1 -0
- package/dist/prompts/promptForProjectName.js +11 -0
- package/dist/prompts/promptForProjectName.js.map +1 -0
- package/dist/prompts/selectDataset.js +12 -0
- package/dist/prompts/selectDataset.js.map +1 -0
- package/dist/prompts/selectMediaLibrary.js +34 -0
- package/dist/prompts/selectMediaLibrary.js.map +1 -0
- package/dist/server/devServer.js +53 -0
- package/dist/server/devServer.js.map +1 -0
- package/dist/server/gracefulServerDeath.js +12 -0
- package/dist/server/gracefulServerDeath.js.map +1 -0
- package/dist/server/previewServer.js +93 -0
- package/dist/server/previewServer.js.map +1 -0
- package/dist/server/serverDebug.js +4 -0
- package/dist/server/serverDebug.js.map +1 -0
- package/dist/server/vite/plugin-sanity-basepath-redirect.js +25 -0
- package/dist/server/vite/plugin-sanity-basepath-redirect.js.map +1 -0
- package/dist/server/vite/plugin-sanity-build-entries.js +65 -0
- package/dist/server/vite/plugin-sanity-build-entries.js.map +1 -0
- package/dist/server/vite/plugin-sanity-favicons.js +72 -0
- package/dist/server/vite/plugin-sanity-favicons.js.map +1 -0
- package/dist/server/vite/plugin-sanity-runtime-rewrite.js +18 -0
- package/dist/server/vite/plugin-sanity-runtime-rewrite.js.map +1 -0
- package/dist/services/auth.js +13 -0
- package/dist/services/auth.js.map +1 -0
- package/dist/services/backup.js +51 -0
- package/dist/services/backup.js.map +1 -0
- package/dist/services/cors.js +38 -0
- package/dist/services/cors.js.map +1 -0
- package/dist/services/datasetAliases.js +64 -0
- package/dist/services/datasetAliases.js.map +1 -0
- package/dist/services/datasets.js +153 -0
- package/dist/services/datasets.js.map +1 -0
- package/dist/services/docs.js +46 -0
- package/dist/services/docs.js.map +1 -0
- package/dist/services/documents.js +56 -0
- package/dist/services/documents.js.map +1 -0
- package/dist/services/getProjectFeatures.js +16 -0
- package/dist/services/getProjectFeatures.js.map +1 -0
- package/dist/services/getUrlHeaders.js +36 -0
- package/dist/services/getUrlHeaders.js.map +1 -0
- package/dist/services/graphql.js +96 -0
- package/dist/services/graphql.js.map +1 -0
- package/dist/services/hooks.js +59 -0
- package/dist/services/hooks.js.map +1 -0
- package/dist/services/mcp.js +50 -0
- package/dist/services/mcp.js.map +1 -0
- package/dist/services/mediaLibraries.js +74 -0
- package/dist/services/mediaLibraries.js.map +1 -0
- package/dist/services/organizations.js +42 -0
- package/dist/services/organizations.js.map +1 -0
- package/dist/services/plans.js +37 -0
- package/dist/services/plans.js.map +1 -0
- package/dist/services/projects.js +119 -0
- package/dist/services/projects.js.map +1 -0
- package/dist/services/schemas.js +40 -0
- package/dist/services/schemas.js.map +1 -0
- package/dist/services/telemetry.js +80 -0
- package/dist/services/telemetry.js.map +1 -0
- package/dist/services/tokens.js +72 -0
- package/dist/services/tokens.js.map +1 -0
- package/dist/services/user.js +35 -0
- package/dist/services/user.js.map +1 -0
- package/dist/services/userApplications.js +164 -0
- package/dist/services/userApplications.js.map +1 -0
- package/dist/studioDependencies.js +24 -0
- package/dist/studioDependencies.js.map +1 -0
- package/dist/telemetry/build.telemetry.js +13 -0
- package/dist/telemetry/build.telemetry.js.map +1 -0
- package/dist/telemetry/cli.telemetry.js +8 -0
- package/dist/telemetry/cli.telemetry.js.map +1 -0
- package/dist/telemetry/extractSchema.telemetry.js +8 -0
- package/dist/telemetry/extractSchema.telemetry.js.map +1 -0
- package/dist/telemetry/init.telemetry.js +8 -0
- package/dist/telemetry/init.telemetry.js.map +1 -0
- package/dist/telemetry/login.telemetry.js +8 -0
- package/dist/telemetry/login.telemetry.js.map +1 -0
- package/dist/telemetry/mcp.telemetry.js +8 -0
- package/dist/telemetry/mcp.telemetry.js.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/typings/deepSortObject.d.js +2 -0
- package/dist/typings/deepSortObject.d.js.map +1 -0
- package/dist/util/absolutify.js +26 -0
- package/dist/util/absolutify.js.map +1 -0
- package/dist/util/appId.js +58 -0
- package/dist/util/appId.js.map +1 -0
- package/dist/util/canLaunchBrowser.js +14 -0
- package/dist/util/canLaunchBrowser.js.map +1 -0
- package/dist/util/cliClient.js +41 -0
- package/dist/util/cliClient.js.map +1 -0
- package/dist/util/compareDependencyVersions.js +73 -0
- package/dist/util/compareDependencyVersions.js.map +1 -0
- package/dist/util/copy.js +37 -0
- package/dist/util/copy.js.map +1 -0
- package/dist/util/copyDir.js +63 -0
- package/dist/util/copyDir.js.map +1 -0
- package/dist/util/detectRuntime.js +20 -0
- package/dist/util/detectRuntime.js.map +1 -0
- package/dist/util/determineIsApp.js +9 -0
- package/dist/util/determineIsApp.js.map +1 -0
- package/dist/util/dirIsEmptyOrNonExistent.js +18 -0
- package/dist/util/dirIsEmptyOrNonExistent.js.map +1 -0
- package/dist/util/ensureTrailingSlash.js +12 -0
- package/dist/util/ensureTrailingSlash.js.map +1 -0
- package/dist/util/errorMessages.js +6 -0
- package/dist/util/errorMessages.js.map +1 -0
- package/dist/util/extractDocumentsFromNdjsonOrTarball.js +88 -0
- package/dist/util/extractDocumentsFromNdjsonOrTarball.js.map +1 -0
- package/dist/util/findNdjsonEntry.js +21 -0
- package/dist/util/findNdjsonEntry.js.map +1 -0
- package/dist/util/formatSize.js +10 -0
- package/dist/util/formatSize.js.map +1 -0
- package/dist/util/frameworkPort.js +61 -0
- package/dist/util/frameworkPort.js.map +1 -0
- package/dist/util/fsUtils.js +34 -0
- package/dist/util/fsUtils.js.map +1 -0
- package/dist/util/getCliVersion.js +28 -0
- package/dist/util/getCliVersion.js.map +1 -0
- package/dist/util/getErrorMessage.js +19 -0
- package/dist/util/getErrorMessage.js.map +1 -0
- package/dist/util/getLocalPackageVersion.js +32 -0
- package/dist/util/getLocalPackageVersion.js.map +1 -0
- package/dist/util/getProjectDefaults.js +77 -0
- package/dist/util/getProjectDefaults.js.map +1 -0
- package/dist/util/getSanityEnv.js +3 -0
- package/dist/util/getSanityEnv.js.map +1 -0
- package/dist/util/getSharedServerConfig.js +31 -0
- package/dist/util/getSharedServerConfig.js.map +1 -0
- package/dist/util/getWorkspace.js +18 -0
- package/dist/util/getWorkspace.js.map +1 -0
- package/dist/util/humanFileSize.js +12 -0
- package/dist/util/humanFileSize.js.map +1 -0
- package/dist/util/importStudioConfig.js +40 -0
- package/dist/util/importStudioConfig.js.map +1 -0
- package/dist/util/isPathDirName.js +6 -0
- package/dist/util/isPathDirName.js.map +1 -0
- package/dist/util/isSanityDocumentish.js +20 -0
- package/dist/util/isSanityDocumentish.js.map +1 -0
- package/dist/util/loadEnv.js +3 -0
- package/dist/util/loadEnv.js.map +1 -0
- package/dist/util/moduleFormatUtils.js +18 -0
- package/dist/util/moduleFormatUtils.js.map +1 -0
- package/dist/util/packageManager/installPackages.js +87 -0
- package/dist/util/packageManager/installPackages.js.map +1 -0
- package/dist/util/packageManager/packageManagerChoice.js +181 -0
- package/dist/util/packageManager/packageManagerChoice.js.map +1 -0
- package/dist/util/packageManager/upgradePackages.js +69 -0
- package/dist/util/packageManager/upgradePackages.js.map +1 -0
- package/dist/util/parseArguments.js +42 -0
- package/dist/util/parseArguments.js.map +1 -0
- package/dist/util/pluralize.js +11 -0
- package/dist/util/pluralize.js.map +1 -0
- package/dist/util/readModuleVersion.js +15 -0
- package/dist/util/readModuleVersion.js.map +1 -0
- package/dist/util/readPackageJson.js +44 -0
- package/dist/util/readPackageJson.js.map +1 -0
- package/dist/util/readPackageManifest.js +46 -0
- package/dist/util/readPackageManifest.js.map +1 -0
- package/dist/util/readdirRecursive.js +24 -0
- package/dist/util/readdirRecursive.js.map +1 -0
- package/dist/util/resolveLatestVersions.js +21 -0
- package/dist/util/resolveLatestVersions.js.map +1 -0
- package/dist/util/toInt.js +9 -0
- package/dist/util/toInt.js.map +1 -0
- package/dist/util/trimHashFromVersion.js +8 -0
- package/dist/util/trimHashFromVersion.js.map +1 -0
- package/dist/util/uniqBy.js +14 -0
- package/dist/util/uniqBy.js.map +1 -0
- package/dist/util/validation/validateDocumentsUtils.js +33 -0
- package/dist/util/validation/validateDocumentsUtils.js.map +1 -0
- package/dist/util/warnAboutMissingAppId.js +15 -0
- package/dist/util/warnAboutMissingAppId.js.map +1 -0
- package/dist/util/warnOnNonProductionEnvironment.js +18 -0
- package/dist/util/warnOnNonProductionEnvironment.js.map +1 -0
- package/dist/util/workerChannels.js +172 -0
- package/dist/util/workerChannels.js.map +1 -0
- package/oclif.config.js +21 -0
- package/oclif.manifest.json +4154 -0
- package/package.json +138 -98
- package/templates/app-quickstart/src/App.css +3 -1
- package/templates/app-quickstart/src/App.tsx +1 -1
- package/templates/app-sanity-ui/src/App.tsx +2 -2
- package/templates/app-sanity-ui/src/ExampleComponent.tsx +2 -1
- package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +3 -3
- package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +2 -2
- package/templates/shopify/components/hotspots/ProductTooltip.tsx +1 -1
- package/templates/shopify/components/icons/Shopify.tsx +0 -2
- package/templates/shopify/components/inputs/CollectionHidden.tsx +0 -1
- package/templates/shopify/components/media/ColorTheme.tsx +1 -1
- package/templates/shopify/constants.ts +4 -4
- package/templates/shopify/plugins/customDocumentActions/index.ts +2 -2
- package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +1 -1
- package/templates/shopify/schemaTypes/documents/collection.tsx +1 -2
- package/templates/shopify/schemaTypes/documents/page.ts +1 -1
- package/templates/shopify/schemaTypes/documents/product.tsx +1 -1
- package/templates/shopify/schemaTypes/documents/productVariant.tsx +2 -3
- package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +0 -1
- package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +1 -3
- package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +0 -1
- package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +2 -3
- package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +1 -1
- package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +1 -2
- package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +1 -2
- package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +7 -7
- package/templates/shopify/schemaTypes/singletons/homeType.ts +8 -8
- package/templates/shopify/structure/collectionStructure.ts +4 -1
- package/templates/shopify/structure/colorThemeStructure.ts +1 -1
- package/templates/shopify/structure/homeStructure.ts +2 -2
- package/templates/shopify/structure/index.ts +1 -1
- package/templates/shopify/structure/pageStructure.ts +2 -2
- package/templates/shopify/structure/productStructure.ts +7 -7
- package/templates/shopify/structure/settingStructure.ts +1 -1
- package/templates/shopify/utils/defineStructure.ts +1 -1
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +1 -1
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +1 -1
- package/templates/shopify-online-storefront/structure/collectionStructure.ts +4 -1
- package/templates/shopify-online-storefront/structure/productStructure.ts +4 -4
- package/templates/shopify-online-storefront/utils/defineStructure.ts +1 -1
- package/bin/dev.js +0 -30
- package/bin/sanity +0 -14
- package/lib/_chunks-cjs/cli.js +0 -70870
- package/lib/_chunks-cjs/cli.js.map +0 -1
- package/lib/_chunks-cjs/cliWorker.js +0 -19
- package/lib/_chunks-cjs/cliWorker.js.map +0 -1
- package/lib/_chunks-cjs/generateAction.js +0 -128
- package/lib/_chunks-cjs/generateAction.js.map +0 -1
- package/lib/_chunks-cjs/getCliConfig.js +0 -89
- package/lib/_chunks-cjs/getCliConfig.js.map +0 -1
- package/lib/_chunks-cjs/index.js +0 -31
- package/lib/_chunks-cjs/index.js.map +0 -1
- package/lib/_chunks-cjs/journeyConfig.js +0 -113
- package/lib/_chunks-cjs/journeyConfig.js.map +0 -1
- package/lib/_chunks-cjs/loadEnv.js +0 -347
- package/lib/_chunks-cjs/loadEnv.js.map +0 -1
- package/lib/_chunks-dts/types.d.ts +0 -432
- package/lib/cli.d.ts +0 -7
- package/lib/cli.js +0 -10
- package/lib/cli.js.map +0 -1
- package/lib/index.d.ts +0 -44
- package/lib/index.js +0 -46
- package/lib/index.js.map +0 -1
- package/lib/run.d.ts +0 -1
- package/lib/run.js +0 -8
- package/lib/run.js.map +0 -1
- package/lib/workers/getAndWriteJourneySchema.d.ts +0 -1
- package/lib/workers/getAndWriteJourneySchema.js +0 -4
- package/lib/workers/getAndWriteJourneySchema.js.map +0 -1
- package/lib/workers/getCliConfig.d.ts +0 -1
- package/lib/workers/getCliConfig.js +0 -10
- package/lib/workers/getCliConfig.js.map +0 -1
- package/lib/workers/typegenGenerate.d.ts +0 -18
- package/lib/workers/typegenGenerate.js +0 -47
- package/lib/workers/typegenGenerate.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/isSanityDocumentish.ts"],"sourcesContent":["import {type IdentifiedSanityDocumentStub} from '@sanity/client'\n\n/**\n * Checks if a document is a Sanity document\n * @param doc - The document to check\n * @returns True if the document is a Sanity document, false otherwise\n *\n * @internal\n */\nexport function isSanityDocumentish(doc: unknown): doc is {_type: string} {\n return (\n doc !== null &&\n typeof doc === 'object' &&\n '_type' in doc &&\n typeof (doc as Record<string, unknown>)._type === 'string'\n )\n}\n\n/**\n * Checks if a document is a Sanity document with an _id\n * @param doc - The document to check\n * @returns True if the document is a Sanity document with an _id, false otherwise\n *\n * @internal\n */\nexport function isIdentifiedSanityDocument(doc: unknown): doc is IdentifiedSanityDocumentStub {\n return isSanityDocumentish(doc) && '_id' in doc\n}\n"],"names":["isSanityDocumentish","doc","_type","isIdentifiedSanityDocument"],"mappings":"AAEA;;;;;;CAMC,GACD,OAAO,SAASA,oBAAoBC,GAAY;IAC9C,OACEA,QAAQ,QACR,OAAOA,QAAQ,YACf,WAAWA,OACX,OAAO,AAACA,IAAgCC,KAAK,KAAK;AAEtD;AAEA;;;;;;CAMC,GACD,OAAO,SAASC,2BAA2BF,GAAY;IACrD,OAAOD,oBAAoBC,QAAQ,SAASA;AAC9C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/loadEnv.ts"],"sourcesContent":["export {loadEnv} from 'vite'\n"],"names":["loadEnv"],"mappings":"AAAA,SAAQA,OAAO,QAAO,OAAM"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { formatSize } from './formatSize.js';
|
|
2
|
+
export function formatModuleSizes(modules) {
|
|
3
|
+
const lines = [];
|
|
4
|
+
for (const mod of modules){
|
|
5
|
+
lines.push(` - ${formatModuleName(mod.name)} (${formatSize(mod.renderedLength)})`);
|
|
6
|
+
}
|
|
7
|
+
return lines.join('\n');
|
|
8
|
+
}
|
|
9
|
+
function formatModuleName(modName) {
|
|
10
|
+
const delimiter = '/node_modules/';
|
|
11
|
+
const nodeIndex = modName.lastIndexOf(delimiter);
|
|
12
|
+
return nodeIndex === -1 ? modName : modName.slice(nodeIndex + delimiter.length);
|
|
13
|
+
}
|
|
14
|
+
export function sortModulesBySize(chunks) {
|
|
15
|
+
return chunks.flatMap((chunk)=>chunk.modules).toSorted((modA, modB)=>modB.renderedLength - modA.renderedLength);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=moduleFormatUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/moduleFormatUtils.ts"],"sourcesContent":["import {type ChunkModule, type ChunkStats} from '../actions/build/buildStaticFiles.js'\nimport {formatSize} from './formatSize.js'\n\nexport function formatModuleSizes(modules: ChunkModule[]): string {\n const lines: string[] = []\n for (const mod of modules) {\n lines.push(` - ${formatModuleName(mod.name)} (${formatSize(mod.renderedLength)})`)\n }\n\n return lines.join('\\n')\n}\n\nfunction formatModuleName(modName: string): string {\n const delimiter = '/node_modules/'\n const nodeIndex = modName.lastIndexOf(delimiter)\n return nodeIndex === -1 ? modName : modName.slice(nodeIndex + delimiter.length)\n}\n\nexport function sortModulesBySize(chunks: ChunkStats[]): ChunkModule[] {\n return chunks\n .flatMap((chunk) => chunk.modules)\n .toSorted((modA, modB) => modB.renderedLength - modA.renderedLength)\n}\n"],"names":["formatSize","formatModuleSizes","modules","lines","mod","push","formatModuleName","name","renderedLength","join","modName","delimiter","nodeIndex","lastIndexOf","slice","length","sortModulesBySize","chunks","flatMap","chunk","toSorted","modA","modB"],"mappings":"AACA,SAAQA,UAAU,QAAO,kBAAiB;AAE1C,OAAO,SAASC,kBAAkBC,OAAsB;IACtD,MAAMC,QAAkB,EAAE;IAC1B,KAAK,MAAMC,OAAOF,QAAS;QACzBC,MAAME,IAAI,CAAC,CAAC,GAAG,EAAEC,iBAAiBF,IAAIG,IAAI,EAAE,EAAE,EAAEP,WAAWI,IAAII,cAAc,EAAE,CAAC,CAAC;IACnF;IAEA,OAAOL,MAAMM,IAAI,CAAC;AACpB;AAEA,SAASH,iBAAiBI,OAAe;IACvC,MAAMC,YAAY;IAClB,MAAMC,YAAYF,QAAQG,WAAW,CAACF;IACtC,OAAOC,cAAc,CAAC,IAAIF,UAAUA,QAAQI,KAAK,CAACF,YAAYD,UAAUI,MAAM;AAChF;AAEA,OAAO,SAASC,kBAAkBC,MAAoB;IACpD,OAAOA,OACJC,OAAO,CAAC,CAACC,QAAUA,MAAMjB,OAAO,EAChCkB,QAAQ,CAAC,CAACC,MAAMC,OAASA,KAAKd,cAAc,GAAGa,KAAKb,cAAc;AACvE"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { spinner } from '@sanity/cli-core/ux';
|
|
2
|
+
import { execa } from 'execa';
|
|
3
|
+
import { getPartialEnvWithNpmPath } from './packageManagerChoice.js';
|
|
4
|
+
const PACKAGE_MANAGER_COMMANDS = {
|
|
5
|
+
add: {
|
|
6
|
+
bun: (packages)=>[
|
|
7
|
+
'add',
|
|
8
|
+
...packages
|
|
9
|
+
],
|
|
10
|
+
npm: (packages)=>[
|
|
11
|
+
'install',
|
|
12
|
+
'--save',
|
|
13
|
+
...packages
|
|
14
|
+
],
|
|
15
|
+
pnpm: (packages)=>[
|
|
16
|
+
'add',
|
|
17
|
+
'--save-prod',
|
|
18
|
+
...packages
|
|
19
|
+
],
|
|
20
|
+
yarn: (packages)=>[
|
|
21
|
+
'add',
|
|
22
|
+
...packages
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
install: {
|
|
26
|
+
bun: [
|
|
27
|
+
'install'
|
|
28
|
+
],
|
|
29
|
+
npm: [
|
|
30
|
+
'install'
|
|
31
|
+
],
|
|
32
|
+
pnpm: [
|
|
33
|
+
'install'
|
|
34
|
+
],
|
|
35
|
+
yarn: [
|
|
36
|
+
'install'
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
async function executePackageManagerCommand(packageManager, args, execOptions, output, errorMessage) {
|
|
41
|
+
const progress = spinner(`Running ${packageManager} ${args.join(' ')}\n`).start();
|
|
42
|
+
const result = await execa(packageManager, args, execOptions);
|
|
43
|
+
if (result?.exitCode || result?.failed) {
|
|
44
|
+
progress.fail();
|
|
45
|
+
output.log(String(result.stdout));
|
|
46
|
+
output.error(errorMessage, {
|
|
47
|
+
exit: 1
|
|
48
|
+
});
|
|
49
|
+
} else {
|
|
50
|
+
progress.succeed();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export async function installDeclaredPackages(cwd, packageManager, context) {
|
|
54
|
+
const { output } = context;
|
|
55
|
+
const execOptions = {
|
|
56
|
+
cwd,
|
|
57
|
+
encoding: 'utf8',
|
|
58
|
+
env: getPartialEnvWithNpmPath(cwd),
|
|
59
|
+
stdio: 'pipe'
|
|
60
|
+
};
|
|
61
|
+
if (packageManager === 'manual') {
|
|
62
|
+
const npmCommand = PACKAGE_MANAGER_COMMANDS.install.npm;
|
|
63
|
+
output.log(`Manual installation selected â run 'npm ${npmCommand.join(' ')}' or equivalent`);
|
|
64
|
+
} else {
|
|
65
|
+
const args = PACKAGE_MANAGER_COMMANDS.install[packageManager];
|
|
66
|
+
await executePackageManagerCommand(packageManager, args, execOptions, output, 'Dependency installation failed');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export async function installNewPackages(options, context) {
|
|
70
|
+
const { packageManager, packages } = options;
|
|
71
|
+
const { output, workDir } = context;
|
|
72
|
+
const execOptions = {
|
|
73
|
+
cwd: workDir,
|
|
74
|
+
encoding: 'utf8',
|
|
75
|
+
env: getPartialEnvWithNpmPath(workDir),
|
|
76
|
+
stdio: 'pipe'
|
|
77
|
+
};
|
|
78
|
+
if (packageManager === 'manual') {
|
|
79
|
+
const npmCommand = PACKAGE_MANAGER_COMMANDS.add.npm(packages);
|
|
80
|
+
output.log(`Manual installation selected - run 'npm ${npmCommand.join(' ')}' or equivalent`);
|
|
81
|
+
} else {
|
|
82
|
+
const args = PACKAGE_MANAGER_COMMANDS.add[packageManager](packages);
|
|
83
|
+
await executePackageManagerCommand(packageManager, args, execOptions, output, 'Package installation failed');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
//# sourceMappingURL=installPackages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/util/packageManager/installPackages.ts"],"sourcesContent":["import {type Output} from '@sanity/cli-core'\nimport {spinner} from '@sanity/cli-core/ux'\nimport {execa, type Options} from 'execa'\n\nimport {getPartialEnvWithNpmPath, type PackageManager} from './packageManagerChoice.js'\n\ntype PackageManagerLibs = Exclude<PackageManager, 'manual'>\n\n/**\n * @internal\n */\ninterface InstallOptions {\n packageManager: PackageManager\n packages: string[]\n}\n\ninterface PackageManagerCommands {\n add: {[key in PackageManagerLibs]: (packages: string[]) => string[]}\n install: {[key in PackageManagerLibs]: string[]}\n}\n\nconst PACKAGE_MANAGER_COMMANDS: PackageManagerCommands = {\n add: {\n bun: (packages) => ['add', ...packages],\n npm: (packages) => ['install', '--save', ...packages],\n pnpm: (packages) => ['add', '--save-prod', ...packages],\n yarn: (packages) => ['add', ...packages],\n },\n install: {\n bun: ['install'],\n npm: ['install'],\n pnpm: ['install'],\n yarn: ['install'],\n },\n}\n\nasync function executePackageManagerCommand(\n packageManager: PackageManagerLibs,\n args: string[],\n execOptions: Options,\n output: Output,\n errorMessage: string,\n): Promise<void> {\n const progress = spinner(`Running ${packageManager} ${args.join(' ')}\\n`).start()\n\n const result = await execa(packageManager, args, execOptions)\n\n if (result?.exitCode || result?.failed) {\n progress.fail()\n output.log(String(result.stdout))\n output.error(errorMessage, {exit: 1})\n } else {\n progress.succeed()\n }\n}\n\nexport async function installDeclaredPackages(\n cwd: string,\n packageManager: PackageManager,\n context: {output: Output; workDir: string},\n): Promise<void> {\n const {output} = context\n const execOptions: Options = {\n cwd,\n encoding: 'utf8',\n env: getPartialEnvWithNpmPath(cwd),\n stdio: 'pipe',\n }\n\n if (packageManager === 'manual') {\n const npmCommand = PACKAGE_MANAGER_COMMANDS.install.npm\n output.log(`Manual installation selected â run 'npm ${npmCommand.join(' ')}' or equivalent`)\n } else {\n const args = PACKAGE_MANAGER_COMMANDS.install[packageManager]\n await executePackageManagerCommand(\n packageManager,\n args,\n execOptions,\n output,\n 'Dependency installation failed',\n )\n }\n}\n\nexport async function installNewPackages(\n options: InstallOptions,\n context: {output: Output; workDir: string},\n): Promise<void> {\n const {packageManager, packages} = options\n const {output, workDir} = context\n const execOptions: Options = {\n cwd: workDir,\n encoding: 'utf8',\n env: getPartialEnvWithNpmPath(workDir),\n stdio: 'pipe',\n }\n\n if (packageManager === 'manual') {\n const npmCommand = PACKAGE_MANAGER_COMMANDS.add.npm(packages)\n output.log(`Manual installation selected - run 'npm ${npmCommand.join(' ')}' or equivalent`)\n } else {\n const args = PACKAGE_MANAGER_COMMANDS.add[packageManager](packages)\n await executePackageManagerCommand(\n packageManager,\n args,\n execOptions,\n output,\n 'Package installation failed',\n )\n }\n}\n"],"names":["spinner","execa","getPartialEnvWithNpmPath","PACKAGE_MANAGER_COMMANDS","add","bun","packages","npm","pnpm","yarn","install","executePackageManagerCommand","packageManager","args","execOptions","output","errorMessage","progress","join","start","result","exitCode","failed","fail","log","String","stdout","error","exit","succeed","installDeclaredPackages","cwd","context","encoding","env","stdio","npmCommand","installNewPackages","options","workDir"],"mappings":"AACA,SAAQA,OAAO,QAAO,sBAAqB;AAC3C,SAAQC,KAAK,QAAqB,QAAO;AAEzC,SAAQC,wBAAwB,QAA4B,4BAA2B;AAiBvF,MAAMC,2BAAmD;IACvDC,KAAK;QACHC,KAAK,CAACC,WAAa;gBAAC;mBAAUA;aAAS;QACvCC,KAAK,CAACD,WAAa;gBAAC;gBAAW;mBAAaA;aAAS;QACrDE,MAAM,CAACF,WAAa;gBAAC;gBAAO;mBAAkBA;aAAS;QACvDG,MAAM,CAACH,WAAa;gBAAC;mBAAUA;aAAS;IAC1C;IACAI,SAAS;QACPL,KAAK;YAAC;SAAU;QAChBE,KAAK;YAAC;SAAU;QAChBC,MAAM;YAAC;SAAU;QACjBC,MAAM;YAAC;SAAU;IACnB;AACF;AAEA,eAAeE,6BACbC,cAAkC,EAClCC,IAAc,EACdC,WAAoB,EACpBC,MAAc,EACdC,YAAoB;IAEpB,MAAMC,WAAWjB,QAAQ,CAAC,QAAQ,EAAEY,eAAe,CAAC,EAAEC,KAAKK,IAAI,CAAC,KAAK,EAAE,CAAC,EAAEC,KAAK;IAE/E,MAAMC,SAAS,MAAMnB,MAAMW,gBAAgBC,MAAMC;IAEjD,IAAIM,QAAQC,YAAYD,QAAQE,QAAQ;QACtCL,SAASM,IAAI;QACbR,OAAOS,GAAG,CAACC,OAAOL,OAAOM,MAAM;QAC/BX,OAAOY,KAAK,CAACX,cAAc;YAACY,MAAM;QAAC;IACrC,OAAO;QACLX,SAASY,OAAO;IAClB;AACF;AAEA,OAAO,eAAeC,wBACpBC,GAAW,EACXnB,cAA8B,EAC9BoB,OAA0C;IAE1C,MAAM,EAACjB,MAAM,EAAC,GAAGiB;IACjB,MAAMlB,cAAuB;QAC3BiB;QACAE,UAAU;QACVC,KAAKhC,yBAAyB6B;QAC9BI,OAAO;IACT;IAEA,IAAIvB,mBAAmB,UAAU;QAC/B,MAAMwB,aAAajC,yBAAyBO,OAAO,CAACH,GAAG;QACvDQ,OAAOS,GAAG,CAAC,CAAC,wCAAwC,EAAEY,WAAWlB,IAAI,CAAC,KAAK,eAAe,CAAC;IAC7F,OAAO;QACL,MAAML,OAAOV,yBAAyBO,OAAO,CAACE,eAAe;QAC7D,MAAMD,6BACJC,gBACAC,MACAC,aACAC,QACA;IAEJ;AACF;AAEA,OAAO,eAAesB,mBACpBC,OAAuB,EACvBN,OAA0C;IAE1C,MAAM,EAACpB,cAAc,EAAEN,QAAQ,EAAC,GAAGgC;IACnC,MAAM,EAACvB,MAAM,EAAEwB,OAAO,EAAC,GAAGP;IAC1B,MAAMlB,cAAuB;QAC3BiB,KAAKQ;QACLN,UAAU;QACVC,KAAKhC,yBAAyBqC;QAC9BJ,OAAO;IACT;IAEA,IAAIvB,mBAAmB,UAAU;QAC/B,MAAMwB,aAAajC,yBAAyBC,GAAG,CAACG,GAAG,CAACD;QACpDS,OAAOS,GAAG,CAAC,CAAC,wCAAwC,EAAEY,WAAWlB,IAAI,CAAC,KAAK,eAAe,CAAC;IAC7F,OAAO;QACL,MAAML,OAAOV,yBAAyBC,GAAG,CAACQ,eAAe,CAACN;QAC1D,MAAMK,6BACJC,gBACAC,MACAC,aACAC,QACA;IAEJ;AACF"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { isInteractive } from '@sanity/cli-core';
|
|
3
|
+
import { select } from '@sanity/cli-core/ux';
|
|
4
|
+
// eslint-disable-next-line unicorn/no-named-default
|
|
5
|
+
import { default as preferredPM } from 'preferred-pm';
|
|
6
|
+
import which from 'which';
|
|
7
|
+
const EXPERIMENTAL = new Set([
|
|
8
|
+
'bun'
|
|
9
|
+
]);
|
|
10
|
+
export const ALLOWED_PACKAGE_MANAGERS = [
|
|
11
|
+
'npm',
|
|
12
|
+
'yarn',
|
|
13
|
+
'pnpm',
|
|
14
|
+
'bun',
|
|
15
|
+
'manual'
|
|
16
|
+
];
|
|
17
|
+
export const allowedPackageManagersString = ALLOWED_PACKAGE_MANAGERS.join(' | ');
|
|
18
|
+
/**
|
|
19
|
+
* Attempts to resolve the most optimal package manager to use to install/upgrade
|
|
20
|
+
* packages/dependencies at a given path. It does so by looking for package manager
|
|
21
|
+
* specific lockfiles. If it finds a lockfile belonging to a certain package manager,
|
|
22
|
+
* it prioritizes this one. However, if that package manager is not installed, it will
|
|
23
|
+
* prompt the user for which one they want to use and hint at the most optimal one
|
|
24
|
+
* not being installed.
|
|
25
|
+
*
|
|
26
|
+
* Note that this function also takes local npm binary paths into account - for instance,
|
|
27
|
+
* `yarn` can be installed as a dependency of the project instead of globally, and it
|
|
28
|
+
* will use that is available.
|
|
29
|
+
*
|
|
30
|
+
* The user can also select 'manual' to skip the process and run their preferred package
|
|
31
|
+
* manager manually. Commands using this function must take this `manual` choice into
|
|
32
|
+
* account and act accordingly if chosen.
|
|
33
|
+
*
|
|
34
|
+
* @param workDir - The working directory where a lockfile is most likely to be present
|
|
35
|
+
* @param options - Pass `interactive: false` to fall back to npm if most optimal is
|
|
36
|
+
* not available, instead of prompting
|
|
37
|
+
* @returns Object of `chosen` and, if a lockfile is found, the `mostOptimal` choice
|
|
38
|
+
*/ export async function getPackageManagerChoice(workDir, options) {
|
|
39
|
+
const rootDir = workDir || process.cwd();
|
|
40
|
+
const preferred = (await preferredPM(rootDir))?.name;
|
|
41
|
+
if (preferred && await hasCommand(preferred, rootDir)) {
|
|
42
|
+
// There is an optimal/preferred package manager, and the user has it installed!
|
|
43
|
+
return {
|
|
44
|
+
chosen: preferred,
|
|
45
|
+
mostOptimal: preferred
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const mostLikelyPM = await getMostLikelyInstalledPackageManager(rootDir);
|
|
49
|
+
const interactive = typeof options.interactive === 'boolean' ? options.interactive : isInteractive();
|
|
50
|
+
if (!interactive) {
|
|
51
|
+
// We can't ask the user for their preference, so fall back to either the one that is being run
|
|
52
|
+
// or whatever is installed on the system (npm being the preferred choice).
|
|
53
|
+
// Note that the most optimal choice is already picked above if available.
|
|
54
|
+
return {
|
|
55
|
+
chosen: mostLikelyPM || await getFallback(rootDir),
|
|
56
|
+
mostOptimal: preferred
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// We can ask the user for their preference, hurray!
|
|
60
|
+
const messageSuffix = preferred ? ` (preferred is ${preferred}, but is not installed)` : '';
|
|
61
|
+
const installed = await getAvailablePackageManagers(rootDir);
|
|
62
|
+
const chosen = await select({
|
|
63
|
+
choices: installed.map((pm)=>({
|
|
64
|
+
name: EXPERIMENTAL.has(pm) ? `${pm} (experimental)` : pm,
|
|
65
|
+
value: pm
|
|
66
|
+
})),
|
|
67
|
+
default: preferred || mostLikelyPM,
|
|
68
|
+
message: `Package manager to use for installing dependencies?${messageSuffix}`
|
|
69
|
+
});
|
|
70
|
+
return {
|
|
71
|
+
chosen,
|
|
72
|
+
mostOptimal: preferred
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
async function getFallback(cwd) {
|
|
76
|
+
if (await hasNpmInstalled(cwd)) {
|
|
77
|
+
return 'npm';
|
|
78
|
+
}
|
|
79
|
+
if (await hasYarnInstalled(cwd)) {
|
|
80
|
+
return 'yarn';
|
|
81
|
+
}
|
|
82
|
+
if (await hasPnpmInstalled(cwd)) {
|
|
83
|
+
return 'pnpm';
|
|
84
|
+
}
|
|
85
|
+
if (await hasBunInstalled(cwd)) {
|
|
86
|
+
return 'bun';
|
|
87
|
+
}
|
|
88
|
+
return 'manual';
|
|
89
|
+
}
|
|
90
|
+
async function getAvailablePackageManagers(cwd) {
|
|
91
|
+
const [npm, yarn, pnpm, bun] = await Promise.all([
|
|
92
|
+
hasNpmInstalled(cwd),
|
|
93
|
+
hasYarnInstalled(cwd),
|
|
94
|
+
hasPnpmInstalled(cwd),
|
|
95
|
+
hasBunInstalled(cwd)
|
|
96
|
+
]);
|
|
97
|
+
const choices = [
|
|
98
|
+
npm && 'npm',
|
|
99
|
+
yarn && 'yarn',
|
|
100
|
+
pnpm && 'pnpm',
|
|
101
|
+
bun && 'bun',
|
|
102
|
+
'manual'
|
|
103
|
+
];
|
|
104
|
+
return choices.filter((pm)=>pm !== false);
|
|
105
|
+
}
|
|
106
|
+
function hasNpmInstalled(cwd) {
|
|
107
|
+
return hasCommand('npm', cwd);
|
|
108
|
+
}
|
|
109
|
+
function hasYarnInstalled(cwd) {
|
|
110
|
+
return hasCommand('yarn', cwd);
|
|
111
|
+
}
|
|
112
|
+
function hasPnpmInstalled(cwd) {
|
|
113
|
+
return hasCommand('pnpm', cwd);
|
|
114
|
+
}
|
|
115
|
+
function hasBunInstalled(cwd) {
|
|
116
|
+
return hasCommand('bun', cwd);
|
|
117
|
+
}
|
|
118
|
+
function getNpmRunPath(cwd) {
|
|
119
|
+
let previous;
|
|
120
|
+
let cwdPath = path.resolve(cwd);
|
|
121
|
+
const result = [];
|
|
122
|
+
while(previous !== cwdPath){
|
|
123
|
+
result.push(path.join(cwdPath, 'node_modules', '.bin'));
|
|
124
|
+
previous = cwdPath;
|
|
125
|
+
cwdPath = path.resolve(cwdPath, '..');
|
|
126
|
+
}
|
|
127
|
+
result.push(path.resolve(cwd, process.execPath, '..'));
|
|
128
|
+
const pathEnv = process.env[getPathEnvVarKey()];
|
|
129
|
+
return [
|
|
130
|
+
...result,
|
|
131
|
+
pathEnv
|
|
132
|
+
].join(path.delimiter);
|
|
133
|
+
}
|
|
134
|
+
export function getPartialEnvWithNpmPath(cwd) {
|
|
135
|
+
const key = getPathEnvVarKey();
|
|
136
|
+
return {
|
|
137
|
+
[key]: getNpmRunPath(cwd)
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
function getPathEnvVarKey() {
|
|
141
|
+
if (process.platform !== 'win32') {
|
|
142
|
+
return 'PATH';
|
|
143
|
+
}
|
|
144
|
+
return Object.keys(process.env).toReversed().find((key)=>key.toUpperCase() === 'PATH') || 'Path';
|
|
145
|
+
}
|
|
146
|
+
function getCommandPath(cmd, cwd) {
|
|
147
|
+
const options = cwd ? {
|
|
148
|
+
path: getNpmRunPath(cwd)
|
|
149
|
+
} : undefined;
|
|
150
|
+
return which(cmd, options).catch(()=>null);
|
|
151
|
+
}
|
|
152
|
+
function hasCommand(cmd, cwd) {
|
|
153
|
+
return getCommandPath(cmd, cwd).then((cmdPath)=>cmdPath !== null);
|
|
154
|
+
}
|
|
155
|
+
async function getMostLikelyInstalledPackageManager(rootDir) {
|
|
156
|
+
const installed = await getAvailablePackageManagers(rootDir);
|
|
157
|
+
const running = getRunningPackageManager();
|
|
158
|
+
return running && installed.includes(running) ? running : undefined;
|
|
159
|
+
}
|
|
160
|
+
function getRunningPackageManager() {
|
|
161
|
+
// Yes, the env var is lowercase - it is set by the package managers themselves
|
|
162
|
+
const agent = process.env.npm_config_user_agent || '';
|
|
163
|
+
if (agent.includes('yarn')) {
|
|
164
|
+
return 'yarn';
|
|
165
|
+
}
|
|
166
|
+
if (agent.includes('pnpm')) {
|
|
167
|
+
return 'pnpm';
|
|
168
|
+
}
|
|
169
|
+
if (agent.includes('bun')) {
|
|
170
|
+
return 'bun';
|
|
171
|
+
}
|
|
172
|
+
// Both yarn and pnpm does a `npm/?` thing, thus the slightly different match here
|
|
173
|
+
// Theoretically not needed since we check for yarn/pnpm above, but in case other
|
|
174
|
+
// package managers do the same thing, we'll (hopefully) catch them here.
|
|
175
|
+
if (/^npm\/\d/.test(agent)) {
|
|
176
|
+
return 'npm';
|
|
177
|
+
}
|
|
178
|
+
return undefined;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
//# sourceMappingURL=packageManagerChoice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/util/packageManager/packageManagerChoice.ts"],"sourcesContent":["import path from 'node:path'\n\nimport {isInteractive} from '@sanity/cli-core'\nimport {select} from '@sanity/cli-core/ux'\n// eslint-disable-next-line unicorn/no-named-default\nimport {default as preferredPM} from 'preferred-pm'\nimport which from 'which'\n\nexport type PackageManager = 'bun' | 'manual' | 'npm' | 'pnpm' | 'yarn'\n\nconst EXPERIMENTAL = new Set(['bun'])\n\nexport const ALLOWED_PACKAGE_MANAGERS: readonly PackageManager[] = [\n 'npm',\n 'yarn',\n 'pnpm',\n 'bun',\n 'manual',\n] as const\n\nexport const allowedPackageManagersString = ALLOWED_PACKAGE_MANAGERS.join(' | ')\n\n/**\n * Attempts to resolve the most optimal package manager to use to install/upgrade\n * packages/dependencies at a given path. It does so by looking for package manager\n * specific lockfiles. If it finds a lockfile belonging to a certain package manager,\n * it prioritizes this one. However, if that package manager is not installed, it will\n * prompt the user for which one they want to use and hint at the most optimal one\n * not being installed.\n *\n * Note that this function also takes local npm binary paths into account - for instance,\n * `yarn` can be installed as a dependency of the project instead of globally, and it\n * will use that is available.\n *\n * The user can also select 'manual' to skip the process and run their preferred package\n * manager manually. Commands using this function must take this `manual` choice into\n * account and act accordingly if chosen.\n *\n * @param workDir - The working directory where a lockfile is most likely to be present\n * @param options - Pass `interactive: false` to fall back to npm if most optimal is\n * not available, instead of prompting\n * @returns Object of `chosen` and, if a lockfile is found, the `mostOptimal` choice\n */\nexport async function getPackageManagerChoice(\n workDir: string,\n options: {interactive: boolean},\n): Promise<{chosen: PackageManager; mostOptimal?: PackageManager}> {\n const rootDir = workDir || process.cwd()\n const preferred = (await preferredPM(rootDir))?.name\n\n if (preferred && (await hasCommand(preferred, rootDir))) {\n // There is an optimal/preferred package manager, and the user has it installed!\n return {chosen: preferred, mostOptimal: preferred}\n }\n\n const mostLikelyPM = await getMostLikelyInstalledPackageManager(rootDir)\n const interactive =\n typeof options.interactive === 'boolean' ? options.interactive : isInteractive()\n if (!interactive) {\n // We can't ask the user for their preference, so fall back to either the one that is being run\n // or whatever is installed on the system (npm being the preferred choice).\n // Note that the most optimal choice is already picked above if available.\n return {chosen: mostLikelyPM || (await getFallback(rootDir)), mostOptimal: preferred}\n }\n\n // We can ask the user for their preference, hurray!\n const messageSuffix = preferred ? ` (preferred is ${preferred}, but is not installed)` : ''\n const installed = await getAvailablePackageManagers(rootDir)\n const chosen = await select<PackageManager>({\n choices: installed.map((pm) => ({\n name: EXPERIMENTAL.has(pm) ? `${pm} (experimental)` : pm,\n value: pm,\n })),\n default: preferred || mostLikelyPM,\n message: `Package manager to use for installing dependencies?${messageSuffix}`,\n })\n\n return {chosen, mostOptimal: preferred}\n}\n\nasync function getFallback(cwd: string): Promise<PackageManager> {\n if (await hasNpmInstalled(cwd)) {\n return 'npm'\n }\n\n if (await hasYarnInstalled(cwd)) {\n return 'yarn'\n }\n\n if (await hasPnpmInstalled(cwd)) {\n return 'pnpm'\n }\n\n if (await hasBunInstalled(cwd)) {\n return 'bun'\n }\n\n return 'manual'\n}\n\nasync function getAvailablePackageManagers(cwd: string): Promise<PackageManager[]> {\n const [npm, yarn, pnpm, bun] = await Promise.all([\n hasNpmInstalled(cwd),\n hasYarnInstalled(cwd),\n hasPnpmInstalled(cwd),\n hasBunInstalled(cwd),\n ])\n\n const choices = [npm && 'npm', yarn && 'yarn', pnpm && 'pnpm', bun && 'bun', 'manual']\n return choices.filter((pm): pm is PackageManager => pm !== false)\n}\n\nfunction hasNpmInstalled(cwd?: string): Promise<boolean> {\n return hasCommand('npm', cwd)\n}\n\nfunction hasYarnInstalled(cwd?: string): Promise<boolean> {\n return hasCommand('yarn', cwd)\n}\n\nfunction hasPnpmInstalled(cwd?: string): Promise<boolean> {\n return hasCommand('pnpm', cwd)\n}\n\nfunction hasBunInstalled(cwd?: string): Promise<boolean> {\n return hasCommand('bun', cwd)\n}\n\nfunction getNpmRunPath(cwd: string): string {\n let previous\n let cwdPath = path.resolve(cwd)\n const result: string[] = []\n\n while (previous !== cwdPath) {\n result.push(path.join(cwdPath, 'node_modules', '.bin'))\n previous = cwdPath\n cwdPath = path.resolve(cwdPath, '..')\n }\n\n result.push(path.resolve(cwd, process.execPath, '..'))\n\n const pathEnv = process.env[getPathEnvVarKey()]\n return [...result, pathEnv].join(path.delimiter)\n}\n\nexport function getPartialEnvWithNpmPath(cwd: string): NodeJS.ProcessEnv {\n const key = getPathEnvVarKey()\n return {[key]: getNpmRunPath(cwd)}\n}\n\nfunction getPathEnvVarKey(): string {\n if (process.platform !== 'win32') {\n return 'PATH'\n }\n\n return (\n Object.keys(process.env)\n .toReversed()\n .find((key) => key.toUpperCase() === 'PATH') || 'Path'\n )\n}\n\nfunction getCommandPath(cmd: string, cwd?: string): Promise<string | null> {\n const options = cwd ? {path: getNpmRunPath(cwd)} : undefined\n return which(cmd, options).catch(() => null)\n}\n\nfunction hasCommand(cmd: string, cwd?: string): Promise<boolean> {\n return getCommandPath(cmd, cwd).then((cmdPath) => cmdPath !== null)\n}\n\nasync function getMostLikelyInstalledPackageManager(\n rootDir: string,\n): Promise<PackageManager | undefined> {\n const installed = await getAvailablePackageManagers(rootDir)\n const running = getRunningPackageManager()\n return running && installed.includes(running) ? running : undefined\n}\n\nfunction getRunningPackageManager(): PackageManager | undefined {\n // Yes, the env var is lowercase - it is set by the package managers themselves\n const agent = process.env.npm_config_user_agent || ''\n\n if (agent.includes('yarn')) {\n return 'yarn'\n }\n\n if (agent.includes('pnpm')) {\n return 'pnpm'\n }\n\n if (agent.includes('bun')) {\n return 'bun'\n }\n\n // Both yarn and pnpm does a `npm/?` thing, thus the slightly different match here\n // Theoretically not needed since we check for yarn/pnpm above, but in case other\n // package managers do the same thing, we'll (hopefully) catch them here.\n if (/^npm\\/\\d/.test(agent)) {\n return 'npm'\n }\n\n return undefined\n}\n"],"names":["path","isInteractive","select","default","preferredPM","which","EXPERIMENTAL","Set","ALLOWED_PACKAGE_MANAGERS","allowedPackageManagersString","join","getPackageManagerChoice","workDir","options","rootDir","process","cwd","preferred","name","hasCommand","chosen","mostOptimal","mostLikelyPM","getMostLikelyInstalledPackageManager","interactive","getFallback","messageSuffix","installed","getAvailablePackageManagers","choices","map","pm","has","value","message","hasNpmInstalled","hasYarnInstalled","hasPnpmInstalled","hasBunInstalled","npm","yarn","pnpm","bun","Promise","all","filter","getNpmRunPath","previous","cwdPath","resolve","result","push","execPath","pathEnv","env","getPathEnvVarKey","delimiter","getPartialEnvWithNpmPath","key","platform","Object","keys","toReversed","find","toUpperCase","getCommandPath","cmd","undefined","catch","then","cmdPath","running","getRunningPackageManager","includes","agent","npm_config_user_agent","test"],"mappings":"AAAA,OAAOA,UAAU,YAAW;AAE5B,SAAQC,aAAa,QAAO,mBAAkB;AAC9C,SAAQC,MAAM,QAAO,sBAAqB;AAC1C,oDAAoD;AACpD,SAAQC,WAAWC,WAAW,QAAO,eAAc;AACnD,OAAOC,WAAW,QAAO;AAIzB,MAAMC,eAAe,IAAIC,IAAI;IAAC;CAAM;AAEpC,OAAO,MAAMC,2BAAsD;IACjE;IACA;IACA;IACA;IACA;CACD,CAAS;AAEV,OAAO,MAAMC,+BAA+BD,yBAAyBE,IAAI,CAAC,OAAM;AAEhF;;;;;;;;;;;;;;;;;;;;CAoBC,GACD,OAAO,eAAeC,wBACpBC,OAAe,EACfC,OAA+B;IAE/B,MAAMC,UAAUF,WAAWG,QAAQC,GAAG;IACtC,MAAMC,YAAa,CAAA,MAAMb,YAAYU,QAAO,GAAII;IAEhD,IAAID,aAAc,MAAME,WAAWF,WAAWH,UAAW;QACvD,gFAAgF;QAChF,OAAO;YAACM,QAAQH;YAAWI,aAAaJ;QAAS;IACnD;IAEA,MAAMK,eAAe,MAAMC,qCAAqCT;IAChE,MAAMU,cACJ,OAAOX,QAAQW,WAAW,KAAK,YAAYX,QAAQW,WAAW,GAAGvB;IACnE,IAAI,CAACuB,aAAa;QAChB,+FAA+F;QAC/F,2EAA2E;QAC3E,0EAA0E;QAC1E,OAAO;YAACJ,QAAQE,gBAAiB,MAAMG,YAAYX;YAAWO,aAAaJ;QAAS;IACtF;IAEA,oDAAoD;IACpD,MAAMS,gBAAgBT,YAAY,CAAC,eAAe,EAAEA,UAAU,uBAAuB,CAAC,GAAG;IACzF,MAAMU,YAAY,MAAMC,4BAA4Bd;IACpD,MAAMM,SAAS,MAAMlB,OAAuB;QAC1C2B,SAASF,UAAUG,GAAG,CAAC,CAACC,KAAQ,CAAA;gBAC9Bb,MAAMZ,aAAa0B,GAAG,CAACD,MAAM,GAAGA,GAAG,eAAe,CAAC,GAAGA;gBACtDE,OAAOF;YACT,CAAA;QACA5B,SAASc,aAAaK;QACtBY,SAAS,CAAC,mDAAmD,EAAER,eAAe;IAChF;IAEA,OAAO;QAACN;QAAQC,aAAaJ;IAAS;AACxC;AAEA,eAAeQ,YAAYT,GAAW;IACpC,IAAI,MAAMmB,gBAAgBnB,MAAM;QAC9B,OAAO;IACT;IAEA,IAAI,MAAMoB,iBAAiBpB,MAAM;QAC/B,OAAO;IACT;IAEA,IAAI,MAAMqB,iBAAiBrB,MAAM;QAC/B,OAAO;IACT;IAEA,IAAI,MAAMsB,gBAAgBtB,MAAM;QAC9B,OAAO;IACT;IAEA,OAAO;AACT;AAEA,eAAeY,4BAA4BZ,GAAW;IACpD,MAAM,CAACuB,KAAKC,MAAMC,MAAMC,IAAI,GAAG,MAAMC,QAAQC,GAAG,CAAC;QAC/CT,gBAAgBnB;QAChBoB,iBAAiBpB;QACjBqB,iBAAiBrB;QACjBsB,gBAAgBtB;KACjB;IAED,MAAMa,UAAU;QAACU,OAAO;QAAOC,QAAQ;QAAQC,QAAQ;QAAQC,OAAO;QAAO;KAAS;IACtF,OAAOb,QAAQgB,MAAM,CAAC,CAACd,KAA6BA,OAAO;AAC7D;AAEA,SAASI,gBAAgBnB,GAAY;IACnC,OAAOG,WAAW,OAAOH;AAC3B;AAEA,SAASoB,iBAAiBpB,GAAY;IACpC,OAAOG,WAAW,QAAQH;AAC5B;AAEA,SAASqB,iBAAiBrB,GAAY;IACpC,OAAOG,WAAW,QAAQH;AAC5B;AAEA,SAASsB,gBAAgBtB,GAAY;IACnC,OAAOG,WAAW,OAAOH;AAC3B;AAEA,SAAS8B,cAAc9B,GAAW;IAChC,IAAI+B;IACJ,IAAIC,UAAUhD,KAAKiD,OAAO,CAACjC;IAC3B,MAAMkC,SAAmB,EAAE;IAE3B,MAAOH,aAAaC,QAAS;QAC3BE,OAAOC,IAAI,CAACnD,KAAKU,IAAI,CAACsC,SAAS,gBAAgB;QAC/CD,WAAWC;QACXA,UAAUhD,KAAKiD,OAAO,CAACD,SAAS;IAClC;IAEAE,OAAOC,IAAI,CAACnD,KAAKiD,OAAO,CAACjC,KAAKD,QAAQqC,QAAQ,EAAE;IAEhD,MAAMC,UAAUtC,QAAQuC,GAAG,CAACC,mBAAmB;IAC/C,OAAO;WAAIL;QAAQG;KAAQ,CAAC3C,IAAI,CAACV,KAAKwD,SAAS;AACjD;AAEA,OAAO,SAASC,yBAAyBzC,GAAW;IAClD,MAAM0C,MAAMH;IACZ,OAAO;QAAC,CAACG,IAAI,EAAEZ,cAAc9B;IAAI;AACnC;AAEA,SAASuC;IACP,IAAIxC,QAAQ4C,QAAQ,KAAK,SAAS;QAChC,OAAO;IACT;IAEA,OACEC,OAAOC,IAAI,CAAC9C,QAAQuC,GAAG,EACpBQ,UAAU,GACVC,IAAI,CAAC,CAACL,MAAQA,IAAIM,WAAW,OAAO,WAAW;AAEtD;AAEA,SAASC,eAAeC,GAAW,EAAElD,GAAY;IAC/C,MAAMH,UAAUG,MAAM;QAAChB,MAAM8C,cAAc9B;IAAI,IAAImD;IACnD,OAAO9D,MAAM6D,KAAKrD,SAASuD,KAAK,CAAC,IAAM;AACzC;AAEA,SAASjD,WAAW+C,GAAW,EAAElD,GAAY;IAC3C,OAAOiD,eAAeC,KAAKlD,KAAKqD,IAAI,CAAC,CAACC,UAAYA,YAAY;AAChE;AAEA,eAAe/C,qCACbT,OAAe;IAEf,MAAMa,YAAY,MAAMC,4BAA4Bd;IACpD,MAAMyD,UAAUC;IAChB,OAAOD,WAAW5C,UAAU8C,QAAQ,CAACF,WAAWA,UAAUJ;AAC5D;AAEA,SAASK;IACP,+EAA+E;IAC/E,MAAME,QAAQ3D,QAAQuC,GAAG,CAACqB,qBAAqB,IAAI;IAEnD,IAAID,MAAMD,QAAQ,CAAC,SAAS;QAC1B,OAAO;IACT;IAEA,IAAIC,MAAMD,QAAQ,CAAC,SAAS;QAC1B,OAAO;IACT;IAEA,IAAIC,MAAMD,QAAQ,CAAC,QAAQ;QACzB,OAAO;IACT;IAEA,kFAAkF;IAClF,iFAAiF;IACjF,yEAAyE;IACzE,IAAI,WAAWG,IAAI,CAACF,QAAQ;QAC1B,OAAO;IACT;IAEA,OAAOP;AACT"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { execa } from 'execa';
|
|
2
|
+
import { getPartialEnvWithNpmPath } from './packageManagerChoice.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/ export async function upgradePackages(options, context) {
|
|
6
|
+
const { packageManager, packages } = options;
|
|
7
|
+
const { output, workDir } = context;
|
|
8
|
+
const execOptions = {
|
|
9
|
+
cwd: workDir,
|
|
10
|
+
encoding: 'utf8',
|
|
11
|
+
env: getPartialEnvWithNpmPath(workDir),
|
|
12
|
+
stdio: 'inherit'
|
|
13
|
+
};
|
|
14
|
+
const upgradePackageArgs = packages.map((pkg)=>pkg.join('@'));
|
|
15
|
+
let result;
|
|
16
|
+
switch(packageManager){
|
|
17
|
+
case 'bun':
|
|
18
|
+
{
|
|
19
|
+
const bunArgs = [
|
|
20
|
+
'update',
|
|
21
|
+
...upgradePackageArgs
|
|
22
|
+
];
|
|
23
|
+
output.log(`Running 'bun ${bunArgs.join(' ')}'`);
|
|
24
|
+
result = await execa('bun', bunArgs, execOptions);
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
case 'manual':
|
|
28
|
+
{
|
|
29
|
+
output.log(`Manual installation selected - run 'npm upgrade ${upgradePackageArgs.join(' ')}' or equivalent`);
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
case 'npm':
|
|
33
|
+
{
|
|
34
|
+
const npmArgs = [
|
|
35
|
+
'install',
|
|
36
|
+
'--legacy-peer-deps',
|
|
37
|
+
...upgradePackageArgs
|
|
38
|
+
];
|
|
39
|
+
output.log(`Running 'npm ${npmArgs.join(' ')}'`);
|
|
40
|
+
result = await execa('npm', npmArgs, execOptions);
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
case 'pnpm':
|
|
44
|
+
{
|
|
45
|
+
const pnpmArgs = [
|
|
46
|
+
'upgrade',
|
|
47
|
+
...upgradePackageArgs
|
|
48
|
+
];
|
|
49
|
+
output.log(`Running 'pnpm ${pnpmArgs.join(' ')}'`);
|
|
50
|
+
result = await execa('pnpm', pnpmArgs, execOptions);
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case 'yarn':
|
|
54
|
+
{
|
|
55
|
+
const yarnArgs = [
|
|
56
|
+
'upgrade ',
|
|
57
|
+
...upgradePackageArgs
|
|
58
|
+
];
|
|
59
|
+
output.log(`Running 'yarn ${yarnArgs.join(' ')}'`);
|
|
60
|
+
result = await execa('yarn', yarnArgs, execOptions);
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (result?.exitCode || result?.failed) {
|
|
65
|
+
throw new Error('Package upgrade failed');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
//# sourceMappingURL=upgradePackages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/util/packageManager/upgradePackages.ts"],"sourcesContent":["import {type Output} from '@sanity/cli-core'\nimport {execa, type Options, type Result} from 'execa'\n\nimport {getPartialEnvWithNpmPath, type PackageManager} from './packageManagerChoice.js'\n\n/**\n * @internal\n */\ninterface UpgradeOptions {\n packageManager: PackageManager\n packages: [name: string, version: string][]\n}\n\n/**\n * @internal\n */\nexport async function upgradePackages(\n options: UpgradeOptions,\n context: {output: Output; workDir: string},\n): Promise<void> {\n const {packageManager, packages} = options\n const {output, workDir} = context\n const execOptions: Options = {\n cwd: workDir,\n encoding: 'utf8',\n env: getPartialEnvWithNpmPath(workDir),\n stdio: 'inherit',\n }\n const upgradePackageArgs = packages.map((pkg) => pkg.join('@'))\n let result: Result | undefined\n switch (packageManager) {\n case 'bun': {\n const bunArgs = ['update', ...upgradePackageArgs]\n output.log(`Running 'bun ${bunArgs.join(' ')}'`)\n result = await execa('bun', bunArgs, execOptions)\n\n break\n }\n case 'manual': {\n output.log(\n `Manual installation selected - run 'npm upgrade ${upgradePackageArgs.join(' ')}' or equivalent`,\n )\n\n break\n }\n case 'npm': {\n const npmArgs = ['install', '--legacy-peer-deps', ...upgradePackageArgs]\n output.log(`Running 'npm ${npmArgs.join(' ')}'`)\n result = await execa('npm', npmArgs, execOptions)\n\n break\n }\n case 'pnpm': {\n const pnpmArgs = ['upgrade', ...upgradePackageArgs]\n output.log(`Running 'pnpm ${pnpmArgs.join(' ')}'`)\n result = await execa('pnpm', pnpmArgs, execOptions)\n\n break\n }\n case 'yarn': {\n const yarnArgs = ['upgrade ', ...upgradePackageArgs]\n output.log(`Running 'yarn ${yarnArgs.join(' ')}'`)\n result = await execa('yarn', yarnArgs, execOptions)\n\n break\n }\n // No default\n }\n\n if (result?.exitCode || result?.failed) {\n throw new Error('Package upgrade failed')\n }\n}\n"],"names":["execa","getPartialEnvWithNpmPath","upgradePackages","options","context","packageManager","packages","output","workDir","execOptions","cwd","encoding","env","stdio","upgradePackageArgs","map","pkg","join","result","bunArgs","log","npmArgs","pnpmArgs","yarnArgs","exitCode","failed","Error"],"mappings":"AACA,SAAQA,KAAK,QAAkC,QAAO;AAEtD,SAAQC,wBAAwB,QAA4B,4BAA2B;AAUvF;;CAEC,GACD,OAAO,eAAeC,gBACpBC,OAAuB,EACvBC,OAA0C;IAE1C,MAAM,EAACC,cAAc,EAAEC,QAAQ,EAAC,GAAGH;IACnC,MAAM,EAACI,MAAM,EAAEC,OAAO,EAAC,GAAGJ;IAC1B,MAAMK,cAAuB;QAC3BC,KAAKF;QACLG,UAAU;QACVC,KAAKX,yBAAyBO;QAC9BK,OAAO;IACT;IACA,MAAMC,qBAAqBR,SAASS,GAAG,CAAC,CAACC,MAAQA,IAAIC,IAAI,CAAC;IAC1D,IAAIC;IACJ,OAAQb;QACN,KAAK;YAAO;gBACV,MAAMc,UAAU;oBAAC;uBAAaL;iBAAmB;gBACjDP,OAAOa,GAAG,CAAC,CAAC,aAAa,EAAED,QAAQF,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/CC,SAAS,MAAMlB,MAAM,OAAOmB,SAASV;gBAErC;YACF;QACA,KAAK;YAAU;gBACbF,OAAOa,GAAG,CACR,CAAC,gDAAgD,EAAEN,mBAAmBG,IAAI,CAAC,KAAK,eAAe,CAAC;gBAGlG;YACF;QACA,KAAK;YAAO;gBACV,MAAMI,UAAU;oBAAC;oBAAW;uBAAyBP;iBAAmB;gBACxEP,OAAOa,GAAG,CAAC,CAAC,aAAa,EAAEC,QAAQJ,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/CC,SAAS,MAAMlB,MAAM,OAAOqB,SAASZ;gBAErC;YACF;QACA,KAAK;YAAQ;gBACX,MAAMa,WAAW;oBAAC;uBAAcR;iBAAmB;gBACnDP,OAAOa,GAAG,CAAC,CAAC,cAAc,EAAEE,SAASL,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjDC,SAAS,MAAMlB,MAAM,QAAQsB,UAAUb;gBAEvC;YACF;QACA,KAAK;YAAQ;gBACX,MAAMc,WAAW;oBAAC;uBAAeT;iBAAmB;gBACpDP,OAAOa,GAAG,CAAC,CAAC,cAAc,EAAEG,SAASN,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjDC,SAAS,MAAMlB,MAAM,QAAQuB,UAAUd;gBAEvC;YACF;IAEF;IAEA,IAAIS,QAAQM,YAAYN,QAAQO,QAAQ;QACtC,MAAM,IAAIC,MAAM;IAClB;AACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import minimist from 'minimist';
|
|
2
|
+
/**
|
|
3
|
+
* Parse the arguments from the command line
|
|
4
|
+
*
|
|
5
|
+
* @param argv - The arguments from the command line
|
|
6
|
+
* @returns The parsed arguments
|
|
7
|
+
*/ export function parseArguments(argv = process.argv) {
|
|
8
|
+
const args = argv.slice(2);
|
|
9
|
+
const { '--': extraArguments, _, version, ...extOptions } = minimist(args, {
|
|
10
|
+
'--': true,
|
|
11
|
+
boolean: [
|
|
12
|
+
'version'
|
|
13
|
+
],
|
|
14
|
+
string: [
|
|
15
|
+
'_'
|
|
16
|
+
]
|
|
17
|
+
});
|
|
18
|
+
const [groupOrCommand, ...argsWithoutOptions] = _;
|
|
19
|
+
const finalExtraArguments = [
|
|
20
|
+
...extraArguments || [],
|
|
21
|
+
...argv.filter((arg)=>arg.startsWith('-'))
|
|
22
|
+
];
|
|
23
|
+
// oclif allows to run `sanity help` or `sanity help <command>`
|
|
24
|
+
// It does not fire the hooks on `--help` so this is okay to track
|
|
25
|
+
const hasHelp = args.includes('help');
|
|
26
|
+
// We only have global debug via env var
|
|
27
|
+
const hasDebug = !!process.env.DEBUG;
|
|
28
|
+
return {
|
|
29
|
+
groupOrCommand,
|
|
30
|
+
argsWithoutOptions,
|
|
31
|
+
argv,
|
|
32
|
+
extOptions,
|
|
33
|
+
extraArguments: finalExtraArguments,
|
|
34
|
+
coreOptions: {
|
|
35
|
+
debug: hasDebug,
|
|
36
|
+
help: hasHelp,
|
|
37
|
+
version
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=parseArguments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/parseArguments.ts"],"sourcesContent":["import minimist from 'minimist'\n\ninterface ParsedArguments<F = Record<string, string>> {\n /**\n * Command arguments, eg any arguments after `sanity <command>` (no flags)\n */\n argsWithoutOptions: string[]\n\n // Raw, forwarded arguments, for commands that want to be more explicit about parsing\n argv: string[]\n\n /**\n * Options mostly relevant for the core CLI runner\n */\n coreOptions: {\n debug: boolean\n\n help: boolean\n\n version: boolean\n }\n\n /**\n * Command flags, without the core options (help, debug, version etc)\n */\n extOptions: F\n\n /**\n * Arguments after the ended argument list (--)\n */\n extraArguments: string[]\n\n /**\n * Group or command name, eg `dataset` (`sanity dataset`) or `import` (`sanity dataset import`)\n */\n groupOrCommand: string\n}\n\n/**\n * Parse the arguments from the command line\n *\n * @param argv - The arguments from the command line\n * @returns The parsed arguments\n */\nexport function parseArguments(argv = process.argv): ParsedArguments {\n const args = argv.slice(2)\n\n const {\n '--': extraArguments,\n _,\n version,\n ...extOptions\n } = minimist(args, {\n '--': true,\n boolean: ['version'],\n string: ['_'],\n })\n\n const [groupOrCommand, ...argsWithoutOptions] = _\n\n const finalExtraArguments = [\n ...(extraArguments || []),\n ...argv.filter((arg) => arg.startsWith('-')),\n ]\n\n // oclif allows to run `sanity help` or `sanity help <command>`\n // It does not fire the hooks on `--help` so this is okay to track\n const hasHelp = args.includes('help')\n\n // We only have global debug via env var\n const hasDebug = !!process.env.DEBUG\n\n return {\n groupOrCommand,\n\n argsWithoutOptions,\n argv,\n extOptions,\n extraArguments: finalExtraArguments,\n\n coreOptions: {\n debug: hasDebug,\n help: hasHelp,\n version,\n },\n }\n}\n"],"names":["minimist","parseArguments","argv","process","args","slice","extraArguments","_","version","extOptions","boolean","string","groupOrCommand","argsWithoutOptions","finalExtraArguments","filter","arg","startsWith","hasHelp","includes","hasDebug","env","DEBUG","coreOptions","debug","help"],"mappings":"AAAA,OAAOA,cAAc,WAAU;AAsC/B;;;;;CAKC,GACD,OAAO,SAASC,eAAeC,OAAOC,QAAQD,IAAI;IAChD,MAAME,OAAOF,KAAKG,KAAK,CAAC;IAExB,MAAM,EACJ,MAAMC,cAAc,EACpBC,CAAC,EACDC,OAAO,EACP,GAAGC,YACJ,GAAGT,SAASI,MAAM;QACjB,MAAM;QACNM,SAAS;YAAC;SAAU;QACpBC,QAAQ;YAAC;SAAI;IACf;IAEA,MAAM,CAACC,gBAAgB,GAAGC,mBAAmB,GAAGN;IAEhD,MAAMO,sBAAsB;WACtBR,kBAAkB,EAAE;WACrBJ,KAAKa,MAAM,CAAC,CAACC,MAAQA,IAAIC,UAAU,CAAC;KACxC;IAED,+DAA+D;IAC/D,kEAAkE;IAClE,MAAMC,UAAUd,KAAKe,QAAQ,CAAC;IAE9B,wCAAwC;IACxC,MAAMC,WAAW,CAAC,CAACjB,QAAQkB,GAAG,CAACC,KAAK;IAEpC,OAAO;QACLV;QAEAC;QACAX;QACAO;QACAH,gBAAgBQ;QAEhBS,aAAa;YACXC,OAAOJ;YACPK,MAAMP;YACNV;QACF;IACF;AACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pluralizes a word based on a count
|
|
3
|
+
* @param word - The word to pluralize
|
|
4
|
+
* @param count - The count to determine singular or plural
|
|
5
|
+
* @returns The word in singular or plural form
|
|
6
|
+
* @internal
|
|
7
|
+
*/ export function pluralize(word, count) {
|
|
8
|
+
return count === 1 ? word : `${word}s`;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=pluralize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/pluralize.ts"],"sourcesContent":["/**\n * Pluralizes a word based on a count\n * @param word - The word to pluralize\n * @param count - The count to determine singular or plural\n * @returns The word in singular or plural form\n * @internal\n */\nexport function pluralize(word: string, count: number): string {\n return count === 1 ? word : `${word}s`\n}\n"],"names":["pluralize","word","count"],"mappings":"AAAA;;;;;;CAMC,GACD,OAAO,SAASA,UAAUC,IAAY,EAAEC,KAAa;IACnD,OAAOA,UAAU,IAAID,OAAO,GAAGA,KAAK,CAAC,CAAC;AACxC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import resolveFrom from 'resolve-from';
|
|
3
|
+
import { readPackageJson } from './readPackageJson.js';
|
|
4
|
+
/**
|
|
5
|
+
* Reads the version number of the _installed_ module, or returns `null` if not found
|
|
6
|
+
*
|
|
7
|
+
* @param dir - Path of the directory to read the module from
|
|
8
|
+
* @param moduleName - Name of module to get installed version for
|
|
9
|
+
* @returns Version number, of null
|
|
10
|
+
*/ export async function readModuleVersion(dir, moduleName) {
|
|
11
|
+
const manifestPath = resolveFrom.silent(dir, path.join(moduleName, 'package.json'));
|
|
12
|
+
return manifestPath ? (await readPackageJson(manifestPath)).version : null;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=readModuleVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/readModuleVersion.ts"],"sourcesContent":["import path from 'node:path'\n\nimport resolveFrom from 'resolve-from'\n\nimport {readPackageJson} from './readPackageJson.js'\n\n/**\n * Reads the version number of the _installed_ module, or returns `null` if not found\n *\n * @param dir - Path of the directory to read the module from\n * @param moduleName - Name of module to get installed version for\n * @returns Version number, of null\n */\nexport async function readModuleVersion(dir: string, moduleName: string): Promise<string | null> {\n const manifestPath = resolveFrom.silent(dir, path.join(moduleName, 'package.json'))\n return manifestPath ? (await readPackageJson(manifestPath)).version : null\n}\n"],"names":["path","resolveFrom","readPackageJson","readModuleVersion","dir","moduleName","manifestPath","silent","join","version"],"mappings":"AAAA,OAAOA,UAAU,YAAW;AAE5B,OAAOC,iBAAiB,eAAc;AAEtC,SAAQC,eAAe,QAAO,uBAAsB;AAEpD;;;;;;CAMC,GACD,OAAO,eAAeC,kBAAkBC,GAAW,EAAEC,UAAkB;IACrE,MAAMC,eAAeL,YAAYM,MAAM,CAACH,KAAKJ,KAAKQ,IAAI,CAACH,YAAY;IACnE,OAAOC,eAAe,AAAC,CAAA,MAAMJ,gBAAgBI,aAAY,EAAGG,OAAO,GAAG;AACxE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* Feel free to add properties to this,
|
|
5
|
+
* đ âšī¸ BUT ENSURE OPTIONAL STUFF IS ACTUALLY OPTIONAL âšī¸đ
|
|
6
|
+
* đ âšī¸ SINCE THIS IS USED IN A NUMBER OF LOCATIONS WHERE âšī¸đ
|
|
7
|
+
* đ âšī¸ WE CANNOT ENFORCE/GUARANTEE ANY PARTICULAR PROPS âšī¸đ
|
|
8
|
+
*/ const packageJsonSchema = z.object({
|
|
9
|
+
name: z.string(),
|
|
10
|
+
version: z.string(),
|
|
11
|
+
dependencies: z.record(z.string(), z.string()).optional(),
|
|
12
|
+
devDependencies: z.record(z.string(), z.string()).optional(),
|
|
13
|
+
exports: z.record(z.string(), z.any()).optional(),
|
|
14
|
+
main: z.string().optional(),
|
|
15
|
+
peerDependencies: z.record(z.string(), z.string()).optional(),
|
|
16
|
+
types: z.string().optional()
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* Read the `package.json` file at the given path
|
|
20
|
+
*
|
|
21
|
+
* @param filePath - Path to package.json to read
|
|
22
|
+
* @param skipSchemaValidation - Skip schema validation if true
|
|
23
|
+
* @returns The parsed package.json
|
|
24
|
+
* @internal
|
|
25
|
+
*/ export async function readPackageJson(filePath, skipSchemaValidation = false) {
|
|
26
|
+
let pkg;
|
|
27
|
+
try {
|
|
28
|
+
pkg = JSON.parse(await readFile(filePath, 'utf8'));
|
|
29
|
+
} catch (err) {
|
|
30
|
+
throw new Error(`Failed to read "${filePath}"`, {
|
|
31
|
+
cause: err
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
if (skipSchemaValidation) {
|
|
35
|
+
return pkg;
|
|
36
|
+
}
|
|
37
|
+
const { data, error, success } = packageJsonSchema.safeParse(pkg);
|
|
38
|
+
if (success) {
|
|
39
|
+
return data;
|
|
40
|
+
}
|
|
41
|
+
throw new Error(`Invalid package.json at "${filePath}": ${error.issues.map((err)=>err.message).join('\n')}`);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=readPackageJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/readPackageJson.ts"],"sourcesContent":["import {readFile} from 'node:fs/promises'\n\nimport {z} from 'zod'\n\n/**\n * Feel free to add properties to this,\n * đ âšī¸ BUT ENSURE OPTIONAL STUFF IS ACTUALLY OPTIONAL âšī¸đ \n * đ âšī¸ SINCE THIS IS USED IN A NUMBER OF LOCATIONS WHERE âšī¸đ \n * đ âšī¸ WE CANNOT ENFORCE/GUARANTEE ANY PARTICULAR PROPS âšī¸đ \n */\nconst packageJsonSchema = z.object({\n name: z.string(),\n version: z.string(),\n\n dependencies: z.record(z.string(), z.string()).optional(),\n devDependencies: z.record(z.string(), z.string()).optional(),\n exports: z.record(z.string(), z.any()).optional(),\n main: z.string().optional(),\n peerDependencies: z.record(z.string(), z.string()).optional(),\n types: z.string().optional(),\n})\n\n/**\n * Minimal representation of a package.json.\n *\n * @internal\n */\nexport type PackageJson = z.infer<typeof packageJsonSchema>\n\n/**\n * Read the `package.json` file at the given path\n *\n * @param filePath - Path to package.json to read\n * @param skipSchemaValidation - Skip schema validation if true\n * @returns The parsed package.json\n * @internal\n */\nexport async function readPackageJson(\n filePath: string,\n skipSchemaValidation = false,\n): Promise<PackageJson> {\n let pkg: unknown\n try {\n pkg = JSON.parse(await readFile(filePath, 'utf8'))\n } catch (err: unknown) {\n throw new Error(`Failed to read \"${filePath}\"`, {cause: err})\n }\n\n if (skipSchemaValidation) {\n return pkg as PackageJson\n }\n\n const {data, error, success} = packageJsonSchema.safeParse(pkg)\n if (success) {\n return data\n }\n\n throw new Error(\n `Invalid package.json at \"${filePath}\": ${error.issues.map((err) => err.message).join('\\n')}`,\n )\n}\n"],"names":["readFile","z","packageJsonSchema","object","name","string","version","dependencies","record","optional","devDependencies","exports","any","main","peerDependencies","types","readPackageJson","filePath","skipSchemaValidation","pkg","JSON","parse","err","Error","cause","data","error","success","safeParse","issues","map","message","join"],"mappings":"AAAA,SAAQA,QAAQ,QAAO,mBAAkB;AAEzC,SAAQC,CAAC,QAAO,MAAK;AAErB;;;;;CAKC,GACD,MAAMC,oBAAoBD,EAAEE,MAAM,CAAC;IACjCC,MAAMH,EAAEI,MAAM;IACdC,SAASL,EAAEI,MAAM;IAEjBE,cAAcN,EAAEO,MAAM,CAACP,EAAEI,MAAM,IAAIJ,EAAEI,MAAM,IAAII,QAAQ;IACvDC,iBAAiBT,EAAEO,MAAM,CAACP,EAAEI,MAAM,IAAIJ,EAAEI,MAAM,IAAII,QAAQ;IAC1DE,SAASV,EAAEO,MAAM,CAACP,EAAEI,MAAM,IAAIJ,EAAEW,GAAG,IAAIH,QAAQ;IAC/CI,MAAMZ,EAAEI,MAAM,GAAGI,QAAQ;IACzBK,kBAAkBb,EAAEO,MAAM,CAACP,EAAEI,MAAM,IAAIJ,EAAEI,MAAM,IAAII,QAAQ;IAC3DM,OAAOd,EAAEI,MAAM,GAAGI,QAAQ;AAC5B;AASA;;;;;;;CAOC,GACD,OAAO,eAAeO,gBACpBC,QAAgB,EAChBC,uBAAuB,KAAK;IAE5B,IAAIC;IACJ,IAAI;QACFA,MAAMC,KAAKC,KAAK,CAAC,MAAMrB,SAASiB,UAAU;IAC5C,EAAE,OAAOK,KAAc;QACrB,MAAM,IAAIC,MAAM,CAAC,gBAAgB,EAAEN,SAAS,CAAC,CAAC,EAAE;YAACO,OAAOF;QAAG;IAC7D;IAEA,IAAIJ,sBAAsB;QACxB,OAAOC;IACT;IAEA,MAAM,EAACM,IAAI,EAAEC,KAAK,EAAEC,OAAO,EAAC,GAAGzB,kBAAkB0B,SAAS,CAACT;IAC3D,IAAIQ,SAAS;QACX,OAAOF;IACT;IAEA,MAAM,IAAIF,MACR,CAAC,yBAAyB,EAAEN,SAAS,GAAG,EAAES,MAAMG,MAAM,CAACC,GAAG,CAAC,CAACR,MAAQA,IAAIS,OAAO,EAAEC,IAAI,CAAC,OAAO;AAEjG"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// TODO: Consolidate with readPackageJson.ts
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
function isPackageManifest(item) {
|
|
4
|
+
return typeof item === 'object' && item !== null && 'name' in item && 'version' in item;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Read the `package.json` file at the given path
|
|
8
|
+
*
|
|
9
|
+
* @param filePath - Path to package.json to read
|
|
10
|
+
* @returns The parsed package.json
|
|
11
|
+
*/ async function readPackageJson(filePath) {
|
|
12
|
+
try {
|
|
13
|
+
return JSON.parse(await readFile(filePath, 'utf8'));
|
|
14
|
+
} catch (err) {
|
|
15
|
+
throw new Error(`Failed to read "${filePath}": ${err.message}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Read the `package.json` file at the given path and return an object that guarantees
|
|
20
|
+
* the presence of name, version, dependencies, dev dependencies and peer dependencies
|
|
21
|
+
*
|
|
22
|
+
* @param packageJsonPath - Path to package.json to read
|
|
23
|
+
* @returns Reduced package.json with guarantees for name, version and dependency fields
|
|
24
|
+
*/ export async function readPackageManifest(packageJsonPath, defaults = {}) {
|
|
25
|
+
let manifest;
|
|
26
|
+
try {
|
|
27
|
+
manifest = {
|
|
28
|
+
...defaults,
|
|
29
|
+
...await readPackageJson(packageJsonPath)
|
|
30
|
+
};
|
|
31
|
+
} catch (err) {
|
|
32
|
+
throw new Error(`Failed to read "${packageJsonPath}": ${err.message}`);
|
|
33
|
+
}
|
|
34
|
+
if (!isPackageManifest(manifest)) {
|
|
35
|
+
throw new Error(`Failed to read "${packageJsonPath}": Invalid package manifest`);
|
|
36
|
+
}
|
|
37
|
+
const { dependencies = {}, devDependencies = {}, name, version } = manifest;
|
|
38
|
+
return {
|
|
39
|
+
dependencies,
|
|
40
|
+
devDependencies,
|
|
41
|
+
name,
|
|
42
|
+
version
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=readPackageManifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/readPackageManifest.ts"],"sourcesContent":["// TODO: Consolidate with readPackageJson.ts\nimport {readFile} from 'node:fs/promises'\n\nimport {type PackageJson} from '../types.js'\n\ninterface DependencyDeclarations {\n dependencies: Record<string, string | undefined>\n devDependencies: Record<string, string | undefined>\n}\n\ninterface PackageManifest extends DependencyDeclarations {\n name: string\n version: string\n}\n\nexport interface PartialPackageManifest extends Partial<DependencyDeclarations> {\n name: string\n version: string\n}\n\nfunction isPackageManifest(item: unknown): item is PartialPackageManifest {\n return typeof item === 'object' && item !== null && 'name' in item && 'version' in item\n}\n\n/**\n * Read the `package.json` file at the given path\n *\n * @param filePath - Path to package.json to read\n * @returns The parsed package.json\n */\nasync function readPackageJson(filePath: string): Promise<PackageJson> {\n try {\n return JSON.parse(await readFile(filePath, 'utf8'))\n } catch (err) {\n throw new Error(`Failed to read \"${filePath}\": ${err.message}`)\n }\n}\n/**\n * Read the `package.json` file at the given path and return an object that guarantees\n * the presence of name, version, dependencies, dev dependencies and peer dependencies\n *\n * @param packageJsonPath - Path to package.json to read\n * @returns Reduced package.json with guarantees for name, version and dependency fields\n */\nexport async function readPackageManifest(\n packageJsonPath: string,\n defaults: Partial<PartialPackageManifest> = {},\n): Promise<PackageManifest> {\n let manifest: unknown\n try {\n manifest = {...defaults, ...(await readPackageJson(packageJsonPath))}\n } catch (err) {\n throw new Error(`Failed to read \"${packageJsonPath}\": ${err.message}`)\n }\n\n if (!isPackageManifest(manifest)) {\n throw new Error(`Failed to read \"${packageJsonPath}\": Invalid package manifest`)\n }\n\n const {dependencies = {}, devDependencies = {}, name, version} = manifest\n return {dependencies, devDependencies, name, version}\n}\n"],"names":["readFile","isPackageManifest","item","readPackageJson","filePath","JSON","parse","err","Error","message","readPackageManifest","packageJsonPath","defaults","manifest","dependencies","devDependencies","name","version"],"mappings":"AAAA,4CAA4C;AAC5C,SAAQA,QAAQ,QAAO,mBAAkB;AAmBzC,SAASC,kBAAkBC,IAAa;IACtC,OAAO,OAAOA,SAAS,YAAYA,SAAS,QAAQ,UAAUA,QAAQ,aAAaA;AACrF;AAEA;;;;;CAKC,GACD,eAAeC,gBAAgBC,QAAgB;IAC7C,IAAI;QACF,OAAOC,KAAKC,KAAK,CAAC,MAAMN,SAASI,UAAU;IAC7C,EAAE,OAAOG,KAAK;QACZ,MAAM,IAAIC,MAAM,CAAC,gBAAgB,EAAEJ,SAAS,GAAG,EAAEG,IAAIE,OAAO,EAAE;IAChE;AACF;AACA;;;;;;CAMC,GACD,OAAO,eAAeC,oBACpBC,eAAuB,EACvBC,WAA4C,CAAC,CAAC;IAE9C,IAAIC;IACJ,IAAI;QACFA,WAAW;YAAC,GAAGD,QAAQ;YAAE,GAAI,MAAMT,gBAAgBQ,gBAAgB;QAAC;IACtE,EAAE,OAAOJ,KAAK;QACZ,MAAM,IAAIC,MAAM,CAAC,gBAAgB,EAAEG,gBAAgB,GAAG,EAAEJ,IAAIE,OAAO,EAAE;IACvE;IAEA,IAAI,CAACR,kBAAkBY,WAAW;QAChC,MAAM,IAAIL,MAAM,CAAC,gBAAgB,EAAEG,gBAAgB,2BAA2B,CAAC;IACjF;IAEA,MAAM,EAACG,eAAe,CAAC,CAAC,EAAEC,kBAAkB,CAAC,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAC,GAAGJ;IACjE,OAAO;QAACC;QAAcC;QAAiBC;QAAMC;IAAO;AACtD"}
|