@sanity/cli 6.0.0-alpha.9 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +602 -291
- package/bin/run.js +2 -0
- package/dist/SanityHelp.js +51 -23
- package/dist/SanityHelp.js.map +1 -1
- package/dist/actions/auth/authServer.js +28 -22
- package/dist/actions/auth/authServer.js.map +1 -1
- package/dist/actions/auth/login/getProvider.js +49 -38
- package/dist/actions/auth/login/getProvider.js.map +1 -1
- package/dist/actions/auth/login/getSSOProvider.js +25 -19
- package/dist/actions/auth/login/getSSOProvider.js.map +1 -1
- package/dist/actions/auth/login/login.js +12 -33
- package/dist/actions/auth/login/login.js.map +1 -1
- package/dist/actions/auth/types.js.map +1 -1
- package/dist/actions/backup/downloadAsset.js +9 -9
- package/dist/actions/backup/downloadAsset.js.map +1 -1
- package/dist/actions/backup/downloadDocument.js +8 -8
- package/dist/actions/backup/downloadDocument.js.map +1 -1
- package/dist/actions/build/buildApp.js +55 -18
- package/dist/actions/build/buildApp.js.map +1 -1
- package/dist/actions/build/buildStaticFiles.js +3 -2
- package/dist/actions/build/buildStaticFiles.js.map +1 -1
- package/dist/actions/build/buildStudio.js +72 -44
- package/dist/actions/build/buildStudio.js.map +1 -1
- package/dist/actions/build/buildVendorDependencies.js +18 -52
- package/dist/actions/build/buildVendorDependencies.js.map +1 -1
- package/dist/actions/build/checkRequiredDependencies.js +13 -8
- package/dist/actions/build/checkRequiredDependencies.js.map +1 -1
- package/dist/actions/build/checkStudioDependencyVersions.js +19 -17
- package/dist/actions/build/checkStudioDependencyVersions.js.map +1 -1
- package/dist/actions/build/createExternalFromImportMap.js +1 -1
- package/dist/actions/build/createExternalFromImportMap.js.map +1 -1
- package/dist/actions/build/determineBasePath.js +5 -2
- package/dist/actions/build/determineBasePath.js.map +1 -1
- package/dist/actions/build/getViteConfig.js +47 -4
- package/dist/actions/build/getViteConfig.js.map +1 -1
- package/dist/actions/build/handlePrereleaseVersions.js +44 -0
- package/dist/actions/build/handlePrereleaseVersions.js.map +1 -0
- package/dist/actions/build/renderDocument.js +6 -10
- package/dist/actions/build/renderDocument.js.map +1 -1
- package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js +4 -4
- package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js.map +1 -1
- package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js +3 -3
- package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js.map +1 -1
- package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js +1 -0
- package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js.map +1 -1
- package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js +2 -2
- package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js.map +1 -1
- package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js +1 -1
- package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js.map +1 -1
- package/dist/actions/build/shouldAutoUpdate.js +2 -0
- package/dist/actions/build/shouldAutoUpdate.js.map +1 -1
- package/dist/actions/build/types.js.map +1 -1
- package/dist/actions/build/writeFavicons.js +3 -5
- package/dist/actions/build/writeFavicons.js.map +1 -1
- package/dist/actions/build/writeSanityRuntime.js +4 -3
- package/dist/actions/build/writeSanityRuntime.js.map +1 -1
- package/dist/actions/codemods/reactIconsV3.js +2 -2
- package/dist/actions/codemods/reactIconsV3.js.map +1 -1
- package/dist/actions/dataset/create.js +7 -1
- package/dist/actions/dataset/create.js.map +1 -1
- package/dist/actions/dataset/determineDatasetAclMode.js.map +1 -1
- package/dist/actions/dataset/resolveDataset.js +26 -0
- package/dist/actions/dataset/resolveDataset.js.map +1 -0
- package/dist/actions/debug/formatters.js +22 -0
- package/dist/actions/debug/formatters.js.map +1 -0
- package/dist/actions/deploy/createStudioUserApplication.js +17 -4
- package/dist/actions/deploy/createStudioUserApplication.js.map +1 -1
- package/dist/actions/deploy/deployApp.js +41 -15
- package/dist/actions/deploy/deployApp.js.map +1 -1
- package/dist/actions/deploy/deployStudio.js +92 -44
- package/dist/actions/deploy/deployStudio.js.map +1 -1
- package/dist/actions/deploy/deployStudioSchemasAndManifests.js +55 -0
- package/dist/actions/deploy/deployStudioSchemasAndManifests.js.map +1 -0
- package/dist/actions/deploy/deployStudioSchemasAndManifests.worker.js +120 -0
- package/dist/actions/deploy/deployStudioSchemasAndManifests.worker.js.map +1 -0
- package/dist/actions/deploy/findUserApplicationForStudio.js +35 -12
- package/dist/actions/deploy/findUserApplicationForStudio.js.map +1 -1
- package/dist/actions/deploy/types.js +10 -1
- package/dist/actions/deploy/types.js.map +1 -1
- package/dist/actions/deploy/urlUtils.js +21 -0
- package/dist/actions/deploy/urlUtils.js.map +1 -0
- package/dist/actions/dev/getDashboardAppUrl.js +48 -0
- package/dist/actions/dev/getDashboardAppUrl.js.map +1 -0
- package/dist/actions/dev/getDevServerConfig.js +7 -3
- package/dist/actions/dev/getDevServerConfig.js.map +1 -1
- package/dist/actions/dev/startAppDevServer.js +3 -3
- package/dist/actions/dev/startAppDevServer.js.map +1 -1
- package/dist/actions/dev/startStudioDevServer.js +14 -14
- package/dist/actions/dev/startStudioDevServer.js.map +1 -1
- package/dist/actions/doctor/checks/cliInstallation.js +56 -0
- package/dist/actions/doctor/checks/cliInstallation.js.map +1 -0
- package/dist/actions/doctor/checks/index.js +16 -0
- package/dist/actions/doctor/checks/index.js.map +1 -0
- package/dist/actions/doctor/runDoctorChecks.js +56 -0
- package/dist/actions/doctor/runDoctorChecks.js.map +1 -0
- package/dist/actions/doctor/types.js +3 -0
- package/dist/actions/doctor/types.js.map +1 -0
- package/dist/actions/documents/types.js.map +1 -1
- package/dist/actions/documents/validate.js +11 -2
- package/dist/actions/documents/validate.js.map +1 -1
- package/dist/actions/documents/validateDocuments.worker.js +4 -4
- package/dist/actions/documents/validateDocuments.worker.js.map +1 -1
- package/dist/actions/documents/validation/reporters/jsonReporter.js +1 -1
- package/dist/actions/documents/validation/reporters/jsonReporter.js.map +1 -1
- package/dist/actions/documents/validation/reporters/ndjsonReporter.js +1 -1
- package/dist/actions/documents/validation/reporters/ndjsonReporter.js.map +1 -1
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js +1 -1
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js.map +1 -1
- package/dist/actions/documents/validation/reporters/prettyReporter/tree.js +108 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/tree.js.map +1 -0
- package/dist/actions/graphql/SchemaError.js +4 -26
- package/dist/actions/graphql/SchemaError.js.map +1 -1
- package/dist/actions/graphql/__tests__/fixtures/many-self-refs.js +540 -0
- package/dist/actions/graphql/__tests__/fixtures/many-self-refs.js.map +1 -0
- package/dist/actions/graphql/__tests__/fixtures/test-studio.js +1143 -0
- package/dist/actions/graphql/__tests__/fixtures/test-studio.js.map +1 -0
- package/dist/actions/graphql/__tests__/fixtures/union-refs.js +591 -0
- package/dist/actions/graphql/__tests__/fixtures/union-refs.js.map +1 -0
- package/dist/actions/graphql/__tests__/helpers.js +23 -0
- package/dist/actions/graphql/__tests__/helpers.js.map +1 -0
- package/dist/actions/graphql/extractFromSanitySchema.js +5 -5
- package/dist/actions/graphql/extractFromSanitySchema.js.map +1 -1
- package/dist/actions/graphql/extractGraphQLAPIs.js +150 -0
- package/dist/actions/graphql/extractGraphQLAPIs.js.map +1 -0
- package/dist/actions/graphql/extractGraphQLAPIs.worker.js +12 -0
- package/dist/actions/graphql/extractGraphQLAPIs.worker.js.map +1 -0
- package/dist/actions/graphql/gen1/generateTypeFilters.js +1 -1
- package/dist/actions/graphql/gen1/generateTypeFilters.js.map +1 -1
- package/dist/actions/graphql/gen1/generateTypeQueries.js +2 -1
- package/dist/actions/graphql/gen1/generateTypeQueries.js.map +1 -1
- package/dist/actions/graphql/gen1/index.js +5 -5
- package/dist/actions/graphql/gen1/index.js.map +1 -1
- package/dist/actions/graphql/gen2/generateTypeQueries.js +1 -1
- package/dist/actions/graphql/gen2/generateTypeQueries.js.map +1 -1
- package/dist/actions/graphql/gen2/index.js +6 -6
- package/dist/actions/graphql/gen2/index.js.map +1 -1
- package/dist/actions/graphql/gen3/generateTypeQueries.js +3 -4
- package/dist/actions/graphql/gen3/generateTypeQueries.js.map +1 -1
- package/dist/actions/graphql/gen3/index.js +6 -7
- package/dist/actions/graphql/gen3/index.js.map +1 -1
- package/dist/actions/graphql/getGraphQLAPIs.js +15 -57
- package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -1
- package/dist/actions/graphql/getGraphQLAPIs.worker.js +75 -106
- package/dist/actions/graphql/getGraphQLAPIs.worker.js.map +1 -1
- package/dist/actions/graphql/helpers.js +13 -0
- package/dist/actions/graphql/helpers.js.map +1 -1
- package/dist/actions/graphql/resolveGraphQLApisFromWorkspaces.js +187 -0
- package/dist/actions/graphql/resolveGraphQLApisFromWorkspaces.js.map +1 -0
- package/dist/actions/graphql/types.js +1 -1
- package/dist/actions/graphql/types.js.map +1 -1
- package/dist/actions/init/bootstrapLocalTemplate.js +10 -8
- package/dist/actions/init/bootstrapLocalTemplate.js.map +1 -1
- package/dist/actions/init/bootstrapRemoteTemplate.js +6 -5
- package/dist/actions/init/bootstrapRemoteTemplate.js.map +1 -1
- package/dist/actions/init/bootstrapTemplate.js.map +1 -1
- package/dist/actions/init/checkNextJsReactCompatibility.js +1 -1
- package/dist/actions/init/checkNextJsReactCompatibility.js.map +1 -1
- package/dist/actions/init/createAppCliConfig.js.map +1 -1
- package/dist/actions/init/createCliConfig.js.map +1 -1
- package/dist/actions/init/createPackageManifest.js +21 -9
- package/dist/actions/init/createPackageManifest.js.map +1 -1
- package/dist/actions/init/remoteTemplate.js +1 -2
- package/dist/actions/init/remoteTemplate.js.map +1 -1
- package/dist/actions/init/sdkAppDependencies.js +19 -0
- package/dist/actions/init/sdkAppDependencies.js.map +1 -0
- package/dist/actions/init/studioDependencies.js.map +1 -0
- package/dist/actions/init/templates/appQuickstart.js +1 -22
- package/dist/actions/init/templates/appQuickstart.js.map +1 -1
- package/dist/actions/init/templates/appSanityUi.js +3 -22
- package/dist/actions/init/templates/appSanityUi.js.map +1 -1
- package/dist/actions/init/types.js.map +1 -1
- package/dist/actions/manifest/SchemaIcon.js +6 -4
- package/dist/actions/manifest/SchemaIcon.js.map +1 -1
- package/dist/actions/manifest/blockTypeTransformer.js +67 -0
- package/dist/actions/manifest/blockTypeTransformer.js.map +1 -0
- package/dist/actions/manifest/debug.js +4 -0
- package/dist/actions/manifest/debug.js.map +1 -0
- package/dist/actions/manifest/extractAppManifest.js +39 -22
- package/dist/actions/manifest/extractAppManifest.js.map +1 -1
- package/dist/actions/manifest/extractManifest.js +27 -78
- package/dist/actions/manifest/extractManifest.js.map +1 -1
- package/dist/actions/manifest/extractManifest.worker.js +30 -0
- package/dist/actions/manifest/extractManifest.worker.js.map +1 -0
- package/dist/actions/manifest/extractWorkspaceManifest.js +31 -372
- package/dist/actions/manifest/extractWorkspaceManifest.js.map +1 -1
- package/dist/actions/manifest/iconResolver.js +30 -0
- package/dist/actions/manifest/iconResolver.js.map +1 -0
- package/dist/actions/manifest/referenceTransformer.js +51 -0
- package/dist/actions/manifest/referenceTransformer.js.map +1 -0
- package/dist/actions/manifest/schemaTypeHelpers.js +2 -2
- package/dist/actions/manifest/schemaTypeHelpers.js.map +1 -1
- package/dist/actions/manifest/schemaTypeTransformer.js +168 -0
- package/dist/actions/manifest/schemaTypeTransformer.js.map +1 -0
- package/dist/actions/manifest/transformerUtils.js +40 -0
- package/dist/actions/manifest/transformerUtils.js.map +1 -0
- package/dist/actions/manifest/types.js +5 -0
- package/dist/actions/manifest/types.js.map +1 -1
- package/dist/actions/manifest/validationTransformer.js +84 -0
- package/dist/actions/manifest/validationTransformer.js.map +1 -0
- package/dist/actions/manifest/writeManifestFile.js +30 -0
- package/dist/actions/manifest/writeManifestFile.js.map +1 -0
- package/dist/actions/manifest/writeWorkspaceFiles.js +30 -0
- package/dist/actions/manifest/writeWorkspaceFiles.js.map +1 -0
- package/dist/actions/mcp/detectAvailableEditors.js +34 -13
- package/dist/actions/mcp/detectAvailableEditors.js.map +1 -1
- package/dist/actions/mcp/editorConfigs.js +231 -109
- package/dist/actions/mcp/editorConfigs.js.map +1 -1
- package/dist/actions/mcp/promptForMCPSetup.js +16 -7
- package/dist/actions/mcp/promptForMCPSetup.js.map +1 -1
- package/dist/actions/mcp/setupMCP.js +62 -23
- package/dist/actions/mcp/setupMCP.js.map +1 -1
- package/dist/actions/mcp/types.js.map +1 -1
- package/dist/actions/mcp/validateEditorTokens.js +56 -0
- package/dist/actions/mcp/validateEditorTokens.js.map +1 -0
- package/dist/actions/mcp/writeMCPConfig.js +27 -15
- package/dist/actions/mcp/writeMCPConfig.js.map +1 -1
- package/dist/actions/media/buildNdjsonIndex.js +32 -0
- package/dist/actions/media/buildNdjsonIndex.js.map +1 -0
- package/dist/actions/media/importAspects.js +2 -11
- package/dist/actions/media/importAspects.js.map +1 -1
- package/dist/actions/media/importMedia.js +22 -18
- package/dist/actions/media/importMedia.js.map +1 -1
- package/dist/actions/organizations/findOrganizationByUserName.js +5 -0
- package/dist/actions/organizations/findOrganizationByUserName.js.map +1 -0
- package/dist/actions/organizations/getOrganization.js +3 -2
- package/dist/actions/organizations/getOrganization.js.map +1 -1
- package/dist/actions/organizations/getOrganizationChoices.js +27 -19
- package/dist/actions/organizations/getOrganizationChoices.js.map +1 -1
- package/dist/actions/organizations/types.js +3 -0
- package/dist/actions/organizations/types.js.map +1 -0
- package/dist/actions/projects/getManageUrl.js +1 -2
- package/dist/actions/projects/getManageUrl.js.map +1 -1
- package/dist/actions/schema/deleteSchemaAction.js +14 -30
- package/dist/actions/schema/deleteSchemaAction.js.map +1 -1
- package/dist/actions/schema/deploySchemas.js +22 -91
- package/dist/actions/schema/deploySchemas.js.map +1 -1
- package/dist/actions/schema/extractSanitySchema.worker.js +0 -5
- package/dist/actions/schema/extractSanitySchema.worker.js.map +1 -1
- package/dist/actions/schema/extractSanityWorkspace.worker.js +24 -0
- package/dist/actions/schema/extractSanityWorkspace.worker.js.map +1 -0
- package/dist/actions/schema/extractSchema.js +8 -40
- package/dist/actions/schema/extractSchema.js.map +1 -1
- package/dist/actions/schema/extractSchemaWatcher.js +128 -0
- package/dist/actions/schema/extractSchemaWatcher.js.map +1 -0
- package/dist/actions/schema/formatSchemaValidation.js +5 -1
- package/dist/actions/schema/formatSchemaValidation.js.map +1 -1
- package/dist/actions/schema/getExtractOptions.js +16 -0
- package/dist/actions/schema/getExtractOptions.js.map +1 -0
- package/dist/actions/schema/listSchemas.js +53 -56
- package/dist/actions/schema/listSchemas.js.map +1 -1
- package/dist/actions/schema/matchSchemaPattern.js +22 -0
- package/dist/actions/schema/matchSchemaPattern.js.map +1 -0
- package/dist/actions/schema/runSchemaExtraction.js +39 -0
- package/dist/actions/schema/runSchemaExtraction.js.map +1 -0
- package/dist/actions/schema/types.js +8 -0
- package/dist/actions/schema/types.js.map +1 -1
- package/dist/actions/schema/uniqueWorkspaces.worker.js +24 -0
- package/dist/actions/schema/uniqueWorkspaces.worker.js.map +1 -0
- package/dist/actions/schema/updateWorkspaceSchema.js +63 -0
- package/dist/actions/schema/updateWorkspaceSchema.js.map +1 -0
- package/dist/actions/schema/uploadSchemaToLexicon.js +87 -0
- package/dist/actions/schema/uploadSchemaToLexicon.js.map +1 -0
- package/dist/actions/schema/utils/SchemaExtractionError.js +10 -0
- package/dist/actions/schema/utils/SchemaExtractionError.js.map +1 -0
- package/dist/actions/schema/utils/schemaStoreValidation.js +1 -15
- package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -1
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js +1 -1
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -1
- package/dist/actions/schema/validateSchema.worker.js +1 -8
- package/dist/actions/schema/validateSchema.worker.js.map +1 -1
- package/dist/actions/schema/watchExtractSchema.js +72 -0
- package/dist/actions/schema/watchExtractSchema.js.map +1 -0
- package/dist/actions/telemetry/isTrueish.js +10 -0
- package/dist/actions/telemetry/isTrueish.js.map +1 -0
- package/dist/actions/telemetry/resolveConsent.js +2 -1
- package/dist/actions/telemetry/resolveConsent.js.map +1 -1
- package/dist/actions/telemetry/setConsent.js +2 -1
- package/dist/actions/telemetry/setConsent.js.map +1 -1
- package/dist/actions/telemetry/telemetryDebug.js +2 -2
- package/dist/actions/telemetry/telemetryDebug.js.map +1 -1
- package/dist/actions/users/getMembersForProject.js.map +1 -1
- package/dist/actions/users/getPendingInvitations.js +1 -1
- package/dist/actions/users/getPendingInvitations.js.map +1 -1
- package/dist/actions/users/types.js.map +1 -1
- package/dist/actions/versions/filterSanityModules.js.map +1 -1
- package/dist/actions/versions/findSanityModulesVersions.js +2 -3
- package/dist/actions/versions/findSanityModulesVersions.js.map +1 -1
- package/dist/actions/versions/getFormatters.js +1 -1
- package/dist/actions/versions/getFormatters.js.map +1 -1
- package/dist/actions/versions/tryFindLatestVersion.js +1 -1
- package/dist/actions/versions/tryFindLatestVersion.js.map +1 -1
- package/dist/commands/backup/disable.js +22 -7
- package/dist/commands/backup/disable.js.map +1 -1
- package/dist/commands/backup/download.js +19 -10
- package/dist/commands/backup/download.js.map +1 -1
- package/dist/commands/backup/enable.js +22 -7
- package/dist/commands/backup/enable.js.map +1 -1
- package/dist/commands/backup/list.js +20 -8
- package/dist/commands/backup/list.js.map +1 -1
- package/dist/commands/build.js +2 -5
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/cors/add.js +20 -7
- package/dist/commands/cors/add.js.map +1 -1
- package/dist/commands/cors/delete.js +22 -7
- package/dist/commands/cors/delete.js.map +1 -1
- package/dist/commands/cors/list.js +22 -7
- package/dist/commands/cors/list.js.map +1 -1
- package/dist/commands/dataset/alias/create.js +26 -7
- package/dist/commands/dataset/alias/create.js.map +1 -1
- package/dist/commands/dataset/alias/delete.js +20 -7
- package/dist/commands/dataset/alias/delete.js.map +1 -1
- package/dist/commands/dataset/alias/link.js +20 -7
- package/dist/commands/dataset/alias/link.js.map +1 -1
- package/dist/commands/dataset/alias/unlink.js +20 -7
- package/dist/commands/dataset/alias/unlink.js.map +1 -1
- package/dist/commands/dataset/copy.js +45 -30
- package/dist/commands/dataset/copy.js.map +1 -1
- package/dist/commands/dataset/create.js +32 -7
- package/dist/commands/dataset/create.js.map +1 -1
- package/dist/commands/dataset/delete.js +16 -7
- package/dist/commands/dataset/delete.js.map +1 -1
- package/dist/commands/dataset/embeddings/disable.js +77 -0
- package/dist/commands/dataset/embeddings/disable.js.map +1 -0
- package/dist/commands/dataset/embeddings/enable.js +141 -0
- package/dist/commands/dataset/embeddings/enable.js.map +1 -0
- package/dist/commands/dataset/embeddings/status.js +72 -0
- package/dist/commands/dataset/embeddings/status.js.map +1 -0
- package/dist/commands/dataset/export.js +25 -16
- package/dist/commands/dataset/export.js.map +1 -1
- package/dist/commands/dataset/import.js +306 -1
- package/dist/commands/dataset/import.js.map +1 -1
- package/dist/commands/dataset/list.js +22 -7
- package/dist/commands/dataset/list.js.map +1 -1
- package/dist/commands/dataset/visibility/get.js +18 -7
- package/dist/commands/dataset/visibility/get.js.map +1 -1
- package/dist/commands/dataset/visibility/set.js +22 -7
- package/dist/commands/dataset/visibility/set.js.map +1 -1
- package/dist/commands/debug.js +4 -2
- package/dist/commands/debug.js.map +1 -1
- package/dist/commands/deploy.js +22 -11
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.js +2 -4
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.js +125 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/documents/create.js +19 -12
- package/dist/commands/documents/create.js.map +1 -1
- package/dist/commands/documents/delete.js +19 -12
- package/dist/commands/documents/delete.js.map +1 -1
- package/dist/commands/documents/get.js +17 -12
- package/dist/commands/documents/get.js.map +1 -1
- package/dist/commands/documents/query.js +26 -18
- package/dist/commands/documents/query.js.map +1 -1
- package/dist/commands/documents/validate.js +32 -10
- package/dist/commands/documents/validate.js.map +1 -1
- package/dist/commands/graphql/deploy.js +58 -30
- package/dist/commands/graphql/deploy.js.map +1 -1
- package/dist/commands/graphql/list.js +15 -7
- package/dist/commands/graphql/list.js.map +1 -1
- package/dist/commands/graphql/undeploy.js +37 -19
- package/dist/commands/graphql/undeploy.js.map +1 -1
- package/dist/commands/hook/attempt.js +22 -7
- package/dist/commands/hook/attempt.js.map +1 -1
- package/dist/commands/hook/create.js +23 -8
- package/dist/commands/hook/create.js.map +1 -1
- package/dist/commands/hook/delete.js +22 -7
- package/dist/commands/hook/delete.js.map +1 -1
- package/dist/commands/hook/list.js +22 -7
- package/dist/commands/hook/list.js.map +1 -1
- package/dist/commands/hook/logs.js +21 -8
- package/dist/commands/hook/logs.js.map +1 -1
- package/dist/commands/init.js +55 -32
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.js +19 -6
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +8 -6
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/manage.js +0 -1
- package/dist/commands/manage.js.map +1 -1
- package/dist/commands/manifest/extract.js +14 -10
- package/dist/commands/manifest/extract.js.map +1 -1
- package/dist/commands/mcp/configure.js +4 -2
- package/dist/commands/mcp/configure.js.map +1 -1
- package/dist/commands/media/create-aspect.js +4 -4
- package/dist/commands/media/create-aspect.js.map +1 -1
- package/dist/commands/media/delete-aspect.js +9 -7
- package/dist/commands/media/delete-aspect.js.map +1 -1
- package/dist/commands/media/deploy-aspect.js +22 -9
- package/dist/commands/media/deploy-aspect.js.map +1 -1
- package/dist/commands/media/export.js +9 -7
- package/dist/commands/media/export.js.map +1 -1
- package/dist/commands/media/import.js +10 -8
- package/dist/commands/media/import.js.map +1 -1
- package/dist/commands/preview.js +5 -8
- package/dist/commands/preview.js.map +1 -1
- package/dist/commands/projects/list.js +2 -1
- package/dist/commands/projects/list.js.map +1 -1
- package/dist/commands/schema/delete.js +33 -34
- package/dist/commands/schema/delete.js.map +1 -1
- package/dist/commands/schema/deploy.js +19 -30
- package/dist/commands/schema/deploy.js.map +1 -1
- package/dist/commands/schema/extract.js +32 -4
- package/dist/commands/schema/extract.js.map +1 -1
- package/dist/commands/schema/list.js +10 -31
- package/dist/commands/schema/list.js.map +1 -1
- package/dist/commands/tokens/add.js +24 -7
- package/dist/commands/tokens/add.js.map +1 -1
- package/dist/commands/tokens/delete.js +20 -7
- package/dist/commands/tokens/delete.js.map +1 -1
- package/dist/commands/tokens/list.js +20 -7
- package/dist/commands/tokens/list.js.map +1 -1
- package/dist/commands/users/invite.js +24 -7
- package/dist/commands/users/invite.js.map +1 -1
- package/dist/commands/users/list.js +76 -33
- package/dist/commands/users/list.js.map +1 -1
- package/dist/commands/versions.js +1 -1
- package/dist/commands/versions.js.map +1 -1
- package/dist/config/createCliConfig.js +1 -2
- package/dist/config/createCliConfig.js.map +1 -1
- package/dist/exports/_internal.d.ts +132 -0
- package/dist/exports/_internal.js +4 -0
- package/dist/exports/_internal.js.map +1 -0
- package/dist/exports/index.d.ts +113 -0
- package/dist/exports/index.js +6 -0
- package/dist/exports/index.js.map +1 -0
- package/dist/hooks/init/checkForUpdates.js +14 -0
- package/dist/hooks/init/checkForUpdates.js.map +1 -0
- package/dist/hooks/prerun/flushTelemetry.worker.js +1 -1
- package/dist/hooks/prerun/flushTelemetry.worker.js.map +1 -1
- package/dist/hooks/prerun/injectEnvVariables.js +9 -1
- package/dist/hooks/prerun/injectEnvVariables.js.map +1 -1
- package/dist/hooks/prerun/setupTelemetry.js +16 -10
- package/dist/hooks/prerun/setupTelemetry.js.map +1 -1
- package/dist/prompts/promptForProject.js +64 -0
- package/dist/prompts/promptForProject.js.map +1 -0
- package/dist/{actions/auth/login/promptProviders.js → prompts/promptForProviders.js} +3 -3
- package/dist/prompts/promptForProviders.js.map +1 -0
- package/dist/prompts/selectMediaLibrary.js +1 -1
- package/dist/prompts/selectMediaLibrary.js.map +1 -1
- package/dist/server/devServer.js +4 -2
- package/dist/server/devServer.js.map +1 -1
- package/dist/server/previewServer.js +2 -2
- package/dist/server/previewServer.js.map +1 -1
- package/dist/server/vite/plugin-schema-extraction.js +201 -0
- package/dist/server/vite/plugin-schema-extraction.js.map +1 -0
- package/dist/server/vite/plugin-typegen.js +217 -0
- package/dist/server/vite/plugin-typegen.js.map +1 -0
- package/dist/services/auth.js +42 -3
- package/dist/services/auth.js.map +1 -1
- package/dist/services/datasets.js +7 -5
- package/dist/services/datasets.js.map +1 -1
- package/dist/services/docs.js +2 -2
- package/dist/services/docs.js.map +1 -1
- package/dist/services/embeddings.js +25 -0
- package/dist/services/embeddings.js.map +1 -0
- package/dist/services/getUrlHeaders.js +7 -18
- package/dist/services/getUrlHeaders.js.map +1 -1
- package/dist/services/grants.js +13 -0
- package/dist/services/grants.js.map +1 -0
- package/dist/services/graphql.js +1 -1
- package/dist/services/graphql.js.map +1 -1
- package/dist/services/mcp.js +55 -1
- package/dist/services/mcp.js.map +1 -1
- package/dist/services/projects.js +4 -2
- package/dist/services/projects.js.map +1 -1
- package/dist/services/schemas.js +1 -1
- package/dist/services/schemas.js.map +1 -1
- package/dist/services/telemetry.js +2 -1
- package/dist/services/telemetry.js.map +1 -1
- package/dist/services/userApplications.js +21 -6
- package/dist/services/userApplications.js.map +1 -1
- package/dist/telemetry/extractSchema.telemetry.js +10 -0
- package/dist/telemetry/extractSchema.telemetry.js.map +1 -1
- package/dist/types/grants.js +3 -0
- package/dist/types/grants.js.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/dist/util/checkProjectPermissions.js +21 -0
- package/dist/util/checkProjectPermissions.js.map +1 -0
- package/dist/util/cliClient.js +5 -3
- package/dist/util/cliClient.js.map +1 -1
- package/dist/util/compareDependencyVersions.js +74 -38
- package/dist/util/compareDependencyVersions.js.map +1 -1
- package/dist/util/createExpiringConfig.js +64 -0
- package/dist/util/createExpiringConfig.js.map +1 -0
- package/dist/util/detectFramework.js +135 -0
- package/dist/util/detectFramework.js.map +1 -0
- package/dist/util/errorMessages.js +0 -1
- package/dist/util/errorMessages.js.map +1 -1
- package/dist/util/extractDocumentsFromNdjsonOrTarball.js +1 -2
- package/dist/util/extractDocumentsFromNdjsonOrTarball.js.map +1 -1
- package/dist/util/getCliVersion.js +1 -1
- package/dist/util/getCliVersion.js.map +1 -1
- package/dist/util/getLocalPackageVersion.js +33 -23
- package/dist/util/getLocalPackageVersion.js.map +1 -1
- package/dist/util/getProjectDefaults.js +22 -28
- package/dist/util/getProjectDefaults.js.map +1 -1
- package/dist/util/getSharedServerConfig.js +1 -0
- package/dist/util/getSharedServerConfig.js.map +1 -1
- package/dist/util/getWorkspace.js +1 -1
- package/dist/util/getWorkspace.js.map +1 -1
- package/dist/util/gitConfig.js +45 -0
- package/dist/util/gitConfig.js.map +1 -0
- package/dist/util/isSchemaError.js +11 -0
- package/dist/util/isSchemaError.js.map +1 -0
- package/dist/util/isTar.js +8 -0
- package/dist/util/isTar.js.map +1 -0
- package/dist/util/packageManager/getPeerDependencies.js +44 -0
- package/dist/util/packageManager/getPeerDependencies.js.map +1 -0
- package/dist/util/packageManager/installationInfo/analyzeIssues.js +225 -0
- package/dist/util/packageManager/installationInfo/analyzeIssues.js.map +1 -0
- package/dist/util/packageManager/installationInfo/commands.js +73 -0
- package/dist/util/packageManager/installationInfo/commands.js.map +1 -0
- package/dist/util/packageManager/installationInfo/detectCliInstallation.js +66 -0
- package/dist/util/packageManager/installationInfo/detectCliInstallation.js.map +1 -0
- package/dist/util/packageManager/installationInfo/detectGlobals.js +295 -0
- package/dist/util/packageManager/installationInfo/detectGlobals.js.map +1 -0
- package/dist/util/packageManager/installationInfo/detectPackages.js +190 -0
- package/dist/util/packageManager/installationInfo/detectPackages.js.map +1 -0
- package/dist/util/packageManager/installationInfo/detectWorkspace.js +192 -0
- package/dist/util/packageManager/installationInfo/detectWorkspace.js.map +1 -0
- package/dist/util/packageManager/installationInfo/index.js +4 -0
- package/dist/util/packageManager/installationInfo/index.js.map +1 -0
- package/dist/util/packageManager/installationInfo/readJsonFile.js +14 -0
- package/dist/util/packageManager/installationInfo/readJsonFile.js.map +1 -0
- package/dist/util/packageManager/installationInfo/resolveVersionRange.js +42 -0
- package/dist/util/packageManager/installationInfo/resolveVersionRange.js.map +1 -0
- package/dist/util/packageManager/installationInfo/types.js +3 -0
- package/dist/util/packageManager/installationInfo/types.js.map +1 -0
- package/dist/util/packageManager/packageManagerChoice.js +1 -20
- package/dist/util/packageManager/packageManagerChoice.js.map +1 -1
- package/dist/util/packageManager/upgradePackages.js +4 -1
- package/dist/util/packageManager/upgradePackages.js.map +1 -1
- package/dist/util/promiseRaceWithTimeout.js +28 -0
- package/dist/util/promiseRaceWithTimeout.js.map +1 -0
- package/dist/util/readdirRecursive.js.map +1 -1
- package/dist/util/resolveLatestVersions.js +2 -2
- package/dist/util/resolveLatestVersions.js.map +1 -1
- package/dist/util/sharedFlags.js +54 -0
- package/dist/util/sharedFlags.js.map +1 -0
- package/dist/util/telemetry/cleanupOldTelemetryFiles.js +30 -0
- package/dist/util/telemetry/cleanupOldTelemetryFiles.js.map +1 -0
- package/dist/util/telemetry/createTelemetryStore.js +95 -0
- package/dist/util/telemetry/createTelemetryStore.js.map +1 -0
- package/dist/util/telemetry/createTraceId.js +10 -0
- package/dist/util/telemetry/createTraceId.js.map +1 -0
- package/dist/util/telemetry/findTelemetryFiles.js +35 -0
- package/dist/util/telemetry/findTelemetryFiles.js.map +1 -0
- package/dist/util/telemetry/flushTelemetryFiles.js +118 -0
- package/dist/util/telemetry/flushTelemetryFiles.js.map +1 -0
- package/dist/util/telemetry/generateTelemetryFilePath.js +30 -0
- package/dist/util/telemetry/generateTelemetryFilePath.js.map +1 -0
- package/dist/util/telemetry/logger.js +59 -0
- package/dist/util/telemetry/logger.js.map +1 -0
- package/dist/util/telemetry/readNDJSON.js +28 -0
- package/dist/util/telemetry/readNDJSON.js.map +1 -0
- package/dist/util/telemetry/telemetryStoreDebug.js +7 -0
- package/dist/util/telemetry/telemetryStoreDebug.js.map +1 -0
- package/dist/util/telemetry/trace.js +150 -0
- package/dist/util/telemetry/trace.js.map +1 -0
- package/dist/util/toForwardSlashes.js +8 -0
- package/dist/util/toForwardSlashes.js.map +1 -0
- package/dist/util/update/fetchLatestVersion.js +21 -0
- package/dist/util/update/fetchLatestVersion.js.map +1 -0
- package/dist/util/update/getUpdateCommand.js +20 -0
- package/dist/util/update/getUpdateCommand.js.map +1 -0
- package/dist/util/update/isInstalledUsingYarn.js +17 -0
- package/dist/util/update/isInstalledUsingYarn.js.map +1 -0
- package/dist/util/update/showNotificationUpdate.js +31 -0
- package/dist/util/update/showNotificationUpdate.js.map +1 -0
- package/dist/util/update/updateChecker.js +60 -0
- package/dist/util/update/updateChecker.js.map +1 -0
- package/dist/util/update/updateCheckerDebug.js +4 -0
- package/dist/util/update/updateCheckerDebug.js.map +1 -0
- package/oclif.config.js +1 -0
- package/oclif.manifest.json +1285 -492
- package/package.json +72 -73
- package/static/favicons/apple-touch-icon.png +0 -0
- package/static/favicons/favicon-192.png +0 -0
- package/static/favicons/favicon-512.png +0 -0
- package/static/favicons/favicon-96.png +0 -0
- package/static/favicons/favicon.ico +0 -0
- package/static/favicons/favicon.svg +12 -0
- package/dist/actions/auth/login/promptProviders.js.map +0 -1
- package/dist/actions/dev/getCoreAppUrl.js +0 -10
- package/dist/actions/dev/getCoreAppUrl.js.map +0 -1
- package/dist/actions/schema/schemaStoreTypes.js +0 -19
- package/dist/actions/schema/schemaStoreTypes.js.map +0 -1
- package/dist/actions/schema/utils/manifestExtractor.js +0 -33
- package/dist/actions/schema/utils/manifestExtractor.js.map +0 -1
- package/dist/actions/schema/utils/manifestReader.js +0 -71
- package/dist/actions/schema/utils/manifestReader.js.map +0 -1
- package/dist/index.d.ts +0 -2326
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/studioDependencies.js.map +0 -1
- package/dist/typings/deepSortObject.d.js +0 -2
- package/dist/typings/deepSortObject.d.js.map +0 -1
- package/dist/util/findNdjsonEntry.js +0 -21
- package/dist/util/findNdjsonEntry.js.map +0 -1
- package/dist/util/importStudioConfig.js +0 -40
- package/dist/util/importStudioConfig.js.map +0 -1
- package/dist/util/readModuleVersion.js +0 -15
- package/dist/util/readModuleVersion.js.map +0 -1
- package/dist/util/readPackageJson.js +0 -44
- package/dist/util/readPackageJson.js.map +0 -1
- package/dist/util/readPackageManifest.js +0 -46
- package/dist/util/readPackageManifest.js.map +0 -1
- package/dist/util/uniqBy.js +0 -14
- package/dist/util/uniqBy.js.map +0 -1
- package/dist/util/workerChannels.js +0 -172
- package/dist/util/workerChannels.js.map +0 -1
- /package/dist/{studioDependencies.js → actions/init/studioDependencies.js} +0 -0
package/dist/index.js
DELETED
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {createCliConfig} from './config/createCliConfig.js'\nexport {defineCliConfig} from './config/defineCliConfig.js'\nexport type {PackageJson} from './types.js'\nexport {type CliClientOptions, getCliClient} from './util/cliClient.js'\nexport {loadEnv} from './util/loadEnv.js'\n"],"names":["createCliConfig","defineCliConfig","getCliClient","loadEnv"],"mappings":"AAAA,SAAQA,eAAe,QAAO,8BAA6B;AAC3D,SAAQC,eAAe,QAAO,8BAA6B;AAE3D,SAA+BC,YAAY,QAAO,sBAAqB;AACvE,SAAQC,OAAO,QAAO,oBAAmB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/studioDependencies.ts"],"sourcesContent":["export const studioDependencies = {\n // Dependencies for a default Sanity installation\n dependencies: {\n // Official studio dependencies\n sanity: 'latest',\n\n // Official studio plugin dependencies\n '@sanity/vision': 'latest',\n\n // Non-Sanity dependencies\n react: '^19.1',\n 'react-dom': '^19.1',\n 'styled-components': '^6.1.18',\n },\n\n devDependencies: {\n // Linting/tooling\n '@sanity/eslint-config-studio': 'latest',\n // When using typescript, we'll want the these types too, so might as well install them\n '@types/react': '^19.1',\n eslint: '^9.28',\n prettier: '^3.5',\n typescript: '^5.8', // Peer dependency of eslint-config-studio (implicitly)\n },\n}\n"],"names":["studioDependencies","dependencies","sanity","react","devDependencies","eslint","prettier","typescript"],"mappings":"AAAA,OAAO,MAAMA,qBAAqB;IAChC,iDAAiD;IACjDC,cAAc;QACZ,+BAA+B;QAC/BC,QAAQ;QAER,sCAAsC;QACtC,kBAAkB;QAElB,0BAA0B;QAC1BC,OAAO;QACP,aAAa;QACb,qBAAqB;IACvB;IAEAC,iBAAiB;QACf,kBAAkB;QAClB,gCAAgC;QAChC,uFAAuF;QACvF,gBAAgB;QAChBC,QAAQ;QACRC,UAAU;QACVC,YAAY;IACd;AACF,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/typings/deepSortObject.d.ts"],"names":[],"mappings":""}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import readline from 'node:readline';
|
|
2
|
-
/**
|
|
3
|
-
* Find the first matching entry in the provided NDJSON stream.
|
|
4
|
-
*
|
|
5
|
-
* @internal
|
|
6
|
-
*/ export async function* findNdjsonEntry(ndjson, matcher) {
|
|
7
|
-
const lines = readline.createInterface({
|
|
8
|
-
input: ndjson
|
|
9
|
-
});
|
|
10
|
-
for await (const line of lines){
|
|
11
|
-
const parsed = JSON.parse(line.trim());
|
|
12
|
-
if (matcher(parsed)) {
|
|
13
|
-
yield parsed;
|
|
14
|
-
lines.close();
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
yield;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
//# sourceMappingURL=findNdjsonEntry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/findNdjsonEntry.ts"],"sourcesContent":["import readline from 'node:readline'\nimport {Readable} from 'node:stream'\n\n/**\n * Find the first matching entry in the provided NDJSON stream.\n *\n * @internal\n */\nexport async function* findNdjsonEntry<Type>(\n ndjson: Readable,\n matcher: (line: Type) => boolean,\n): AsyncGenerator<Type | undefined> {\n const lines = readline.createInterface({\n input: ndjson,\n })\n\n for await (const line of lines) {\n const parsed = JSON.parse(line.trim())\n if (matcher(parsed)) {\n yield parsed\n lines.close()\n return\n }\n }\n\n yield\n}\n"],"names":["readline","findNdjsonEntry","ndjson","matcher","lines","createInterface","input","line","parsed","JSON","parse","trim","close"],"mappings":"AAAA,OAAOA,cAAc,gBAAe;AAGpC;;;;CAIC,GACD,OAAO,gBAAgBC,gBACrBC,MAAgB,EAChBC,OAAgC;IAEhC,MAAMC,QAAQJ,SAASK,eAAe,CAAC;QACrCC,OAAOJ;IACT;IAEA,WAAW,MAAMK,QAAQH,MAAO;QAC9B,MAAMI,SAASC,KAAKC,KAAK,CAACH,KAAKI,IAAI;QACnC,IAAIR,QAAQK,SAAS;YACnB,MAAMA;YACNJ,MAAMQ,KAAK;YACX;QACF;IACF;IAEA;AACF"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { findStudioConfigPath, getEmptyAuth, mockBrowserEnvironment, tryGetDefaultExport } from '@sanity/cli-core';
|
|
2
|
-
import { getTsconfig } from 'get-tsconfig';
|
|
3
|
-
import { firstValueFrom, of } from 'rxjs';
|
|
4
|
-
import { resolveConfig } from 'sanity';
|
|
5
|
-
import { tsImport } from 'tsx/esm/api';
|
|
6
|
-
export async function importStudioConfig(rootPath) {
|
|
7
|
-
const mockBrowserCleanup = await mockBrowserEnvironment(rootPath);
|
|
8
|
-
try {
|
|
9
|
-
const tsconfig = getTsconfig(rootPath);
|
|
10
|
-
const configPath = await findStudioConfigPath(rootPath);
|
|
11
|
-
let config = await tsImport(configPath, {
|
|
12
|
-
parentURL: import.meta.url,
|
|
13
|
-
tsconfig: tsconfig?.path ?? undefined
|
|
14
|
-
});
|
|
15
|
-
config = tryGetDefaultExport(config);
|
|
16
|
-
if (!config) {
|
|
17
|
-
throw new Error('Invalid CLI config structure');
|
|
18
|
-
}
|
|
19
|
-
let workspaces = Array.isArray(config) ? config : [
|
|
20
|
-
{
|
|
21
|
-
...config,
|
|
22
|
-
basePath: config.basePath || '/',
|
|
23
|
-
name: config.name || 'default'
|
|
24
|
-
}
|
|
25
|
-
];
|
|
26
|
-
workspaces = workspaces.map((workspace)=>({
|
|
27
|
-
...workspace,
|
|
28
|
-
auth: {
|
|
29
|
-
state: of(getEmptyAuth())
|
|
30
|
-
}
|
|
31
|
-
}));
|
|
32
|
-
return await firstValueFrom(resolveConfig(workspaces));
|
|
33
|
-
} catch (err) {
|
|
34
|
-
throw new Error(`Failed to import config: ${err.message}`);
|
|
35
|
-
} finally{
|
|
36
|
-
mockBrowserCleanup();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
//# sourceMappingURL=importStudioConfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/importStudioConfig.ts"],"sourcesContent":["import {\n findStudioConfigPath,\n getEmptyAuth,\n mockBrowserEnvironment,\n tryGetDefaultExport,\n} from '@sanity/cli-core'\nimport {getTsconfig} from 'get-tsconfig'\nimport {firstValueFrom, of} from 'rxjs'\nimport {resolveConfig} from 'sanity'\nimport {tsImport} from 'tsx/esm/api'\n\nexport async function importStudioConfig(rootPath: string) {\n const mockBrowserCleanup = await mockBrowserEnvironment(rootPath)\n\n try {\n const tsconfig = getTsconfig(rootPath)\n const configPath = await findStudioConfigPath(rootPath)\n\n let config = await tsImport(configPath, {\n parentURL: import.meta.url,\n tsconfig: tsconfig?.path ?? undefined,\n })\n\n config = tryGetDefaultExport(config)\n\n if (!config) {\n throw new Error('Invalid CLI config structure')\n }\n\n let workspaces = Array.isArray(config)\n ? config\n : [{...config, basePath: config.basePath || '/', name: config.name || 'default'}]\n\n workspaces = workspaces.map((workspace) => ({\n ...workspace,\n auth: {state: of(getEmptyAuth())},\n }))\n\n return await firstValueFrom(resolveConfig(workspaces))\n } catch (err) {\n throw new Error(`Failed to import config: ${err.message}`)\n } finally {\n mockBrowserCleanup()\n }\n}\n"],"names":["findStudioConfigPath","getEmptyAuth","mockBrowserEnvironment","tryGetDefaultExport","getTsconfig","firstValueFrom","of","resolveConfig","tsImport","importStudioConfig","rootPath","mockBrowserCleanup","tsconfig","configPath","config","parentURL","url","path","undefined","Error","workspaces","Array","isArray","basePath","name","map","workspace","auth","state","err","message"],"mappings":"AAAA,SACEA,oBAAoB,EACpBC,YAAY,EACZC,sBAAsB,EACtBC,mBAAmB,QACd,mBAAkB;AACzB,SAAQC,WAAW,QAAO,eAAc;AACxC,SAAQC,cAAc,EAAEC,EAAE,QAAO,OAAM;AACvC,SAAQC,aAAa,QAAO,SAAQ;AACpC,SAAQC,QAAQ,QAAO,cAAa;AAEpC,OAAO,eAAeC,mBAAmBC,QAAgB;IACvD,MAAMC,qBAAqB,MAAMT,uBAAuBQ;IAExD,IAAI;QACF,MAAME,WAAWR,YAAYM;QAC7B,MAAMG,aAAa,MAAMb,qBAAqBU;QAE9C,IAAII,SAAS,MAAMN,SAASK,YAAY;YACtCE,WAAW,YAAYC,GAAG;YAC1BJ,UAAUA,UAAUK,QAAQC;QAC9B;QAEAJ,SAASX,oBAAoBW;QAE7B,IAAI,CAACA,QAAQ;YACX,MAAM,IAAIK,MAAM;QAClB;QAEA,IAAIC,aAAaC,MAAMC,OAAO,CAACR,UAC3BA,SACA;YAAC;gBAAC,GAAGA,MAAM;gBAAES,UAAUT,OAAOS,QAAQ,IAAI;gBAAKC,MAAMV,OAAOU,IAAI,IAAI;YAAS;SAAE;QAEnFJ,aAAaA,WAAWK,GAAG,CAAC,CAACC,YAAe,CAAA;gBAC1C,GAAGA,SAAS;gBACZC,MAAM;oBAACC,OAAOtB,GAAGL;gBAAe;YAClC,CAAA;QAEA,OAAO,MAAMI,eAAeE,cAAca;IAC5C,EAAE,OAAOS,KAAK;QACZ,MAAM,IAAIV,MAAM,CAAC,yBAAyB,EAAEU,IAAIC,OAAO,EAAE;IAC3D,SAAU;QACRnB;IACF;AACF"}
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/util/uniqBy.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// Native implementation instead of lodash/uniqBy
|
|
2
|
-
export function uniqBy(array, key) {
|
|
3
|
-
const seen = new Set();
|
|
4
|
-
return array.filter((item)=>{
|
|
5
|
-
const value = item[key];
|
|
6
|
-
if (seen.has(value)) {
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
seen.add(value);
|
|
10
|
-
return true;
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=uniqBy.js.map
|
package/dist/util/uniqBy.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/uniqBy.ts"],"sourcesContent":["// Native implementation instead of lodash/uniqBy\nexport function uniqBy<T>(array: T[], key: keyof T): T[] {\n const seen = new Set()\n return array.filter((item) => {\n const value = item[key]\n if (seen.has(value)) {\n return false\n }\n seen.add(value)\n return true\n })\n}\n"],"names":["uniqBy","array","key","seen","Set","filter","item","value","has","add"],"mappings":"AAAA,iDAAiD;AACjD,OAAO,SAASA,OAAUC,KAAU,EAAEC,GAAY;IAChD,MAAMC,OAAO,IAAIC;IACjB,OAAOH,MAAMI,MAAM,CAAC,CAACC;QACnB,MAAMC,QAAQD,IAAI,CAACJ,IAAI;QACvB,IAAIC,KAAKK,GAAG,CAACD,QAAQ;YACnB,OAAO;QACT;QACAJ,KAAKM,GAAG,CAACF;QACT,OAAO;IACT;AACF"}
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A simple queue that has two primary methods: `push(message)` and
|
|
3
|
-
* `await next()`. This message queue is used by the "receiver" of the worker
|
|
4
|
-
* channel and this class handles buffering incoming messages if the worker is
|
|
5
|
-
* producing faster than the parent as well as returning a promise if there is
|
|
6
|
-
* no message yet in the queue when the parent awaits `next()`.
|
|
7
|
-
*/ class MessageQueue {
|
|
8
|
-
queue = [];
|
|
9
|
-
resolver = null;
|
|
10
|
-
end() {
|
|
11
|
-
if (this.resolver) {
|
|
12
|
-
this.resolver({
|
|
13
|
-
done: true,
|
|
14
|
-
value: undefined
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
next() {
|
|
19
|
-
if (this.queue.length > 0) {
|
|
20
|
-
return Promise.resolve({
|
|
21
|
-
done: false,
|
|
22
|
-
value: this.queue.shift()
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
return new Promise((resolve)=>this.resolver = resolve);
|
|
26
|
-
}
|
|
27
|
-
push(message) {
|
|
28
|
-
if (this.resolver) {
|
|
29
|
-
this.resolver({
|
|
30
|
-
done: false,
|
|
31
|
-
value: message
|
|
32
|
-
});
|
|
33
|
-
this.resolver = null;
|
|
34
|
-
} else {
|
|
35
|
-
this.queue.push(message);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
function isWorkerChannelMessage(message) {
|
|
40
|
-
if (typeof message !== 'object') return false;
|
|
41
|
-
if (!message) return false;
|
|
42
|
-
if (!('type' in message)) return false;
|
|
43
|
-
if (typeof message.type !== 'string') return false;
|
|
44
|
-
const types = [
|
|
45
|
-
'event',
|
|
46
|
-
'emission',
|
|
47
|
-
'end'
|
|
48
|
-
];
|
|
49
|
-
return types.includes(message.type);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Creates a "worker channel receiver" that subscribes to incoming messages
|
|
53
|
-
* from the given worker and returns promises for worker channel events and
|
|
54
|
-
* async iterators for worker channel streams.
|
|
55
|
-
*/ export function createReceiver(worker) {
|
|
56
|
-
const _events = new Map();
|
|
57
|
-
const _streams = new Map();
|
|
58
|
-
const errors = new MessageQueue();
|
|
59
|
-
const eventQueue = (name)=>{
|
|
60
|
-
const queue = _events.get(name) ?? new MessageQueue();
|
|
61
|
-
if (!_events.has(name)) _events.set(name, queue);
|
|
62
|
-
return queue;
|
|
63
|
-
};
|
|
64
|
-
const streamQueue = (name)=>{
|
|
65
|
-
const queue = _streams.get(name) ?? new MessageQueue();
|
|
66
|
-
if (!_streams.has(name)) _streams.set(name, queue);
|
|
67
|
-
return queue;
|
|
68
|
-
};
|
|
69
|
-
const handleMessage = (message)=>{
|
|
70
|
-
if (!isWorkerChannelMessage(message)) return;
|
|
71
|
-
if (message.type === 'event') eventQueue(message.name).push(message);
|
|
72
|
-
if (message.type === 'emission') streamQueue(message.name).push(message);
|
|
73
|
-
if (message.type === 'end') streamQueue(message.name).end();
|
|
74
|
-
};
|
|
75
|
-
const handleError = (error)=>{
|
|
76
|
-
errors.push({
|
|
77
|
-
error,
|
|
78
|
-
type: 'error'
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
worker.addListener('message', handleMessage);
|
|
82
|
-
worker.addListener('error', handleError);
|
|
83
|
-
return {
|
|
84
|
-
dispose: ()=>{
|
|
85
|
-
worker.removeListener('message', handleMessage);
|
|
86
|
-
worker.removeListener('error', handleError);
|
|
87
|
-
return worker.terminate();
|
|
88
|
-
},
|
|
89
|
-
event: new Proxy({}, {
|
|
90
|
-
get: (target, name)=>{
|
|
91
|
-
if (typeof name !== 'string') return target[name];
|
|
92
|
-
const eventReceiver = async ()=>{
|
|
93
|
-
const { value } = await Promise.race([
|
|
94
|
-
eventQueue(name).next(),
|
|
95
|
-
errors.next()
|
|
96
|
-
]);
|
|
97
|
-
if (value.type === 'error') throw value.error;
|
|
98
|
-
return value.payload;
|
|
99
|
-
};
|
|
100
|
-
return eventReceiver;
|
|
101
|
-
}
|
|
102
|
-
}),
|
|
103
|
-
stream: new Proxy({}, {
|
|
104
|
-
get: (target, prop)=>{
|
|
105
|
-
if (typeof prop !== 'string') return target[prop];
|
|
106
|
-
const name = prop // alias for better typescript narrowing
|
|
107
|
-
;
|
|
108
|
-
async function* streamReceiver() {
|
|
109
|
-
while(true){
|
|
110
|
-
const { done, value } = await Promise.race([
|
|
111
|
-
streamQueue(name).next(),
|
|
112
|
-
errors.next()
|
|
113
|
-
]);
|
|
114
|
-
if (done) return;
|
|
115
|
-
if (value.type === 'error') throw value.error;
|
|
116
|
-
yield value.payload;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return streamReceiver;
|
|
120
|
-
}
|
|
121
|
-
})
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Creates a "worker channel reporter" that sends messages to the given
|
|
126
|
-
* `parentPort` to be received by a worker channel receiver.
|
|
127
|
-
*/ export function createReporter(parentPort) {
|
|
128
|
-
if (!parentPort) {
|
|
129
|
-
throw new Error('parentPart was falsy');
|
|
130
|
-
}
|
|
131
|
-
return {
|
|
132
|
-
event: new Proxy({}, {
|
|
133
|
-
get: (target, name)=>{
|
|
134
|
-
if (typeof name !== 'string') return target[name];
|
|
135
|
-
const eventReporter = (payload)=>{
|
|
136
|
-
const message = {
|
|
137
|
-
name,
|
|
138
|
-
payload,
|
|
139
|
-
type: 'event'
|
|
140
|
-
};
|
|
141
|
-
parentPort.postMessage(message);
|
|
142
|
-
};
|
|
143
|
-
return eventReporter;
|
|
144
|
-
}
|
|
145
|
-
}),
|
|
146
|
-
stream: new Proxy({}, {
|
|
147
|
-
get: (target, name)=>{
|
|
148
|
-
if (typeof name !== 'string') return target[name];
|
|
149
|
-
const streamReporter = {
|
|
150
|
-
emit: (payload)=>{
|
|
151
|
-
const message = {
|
|
152
|
-
name,
|
|
153
|
-
payload,
|
|
154
|
-
type: 'emission'
|
|
155
|
-
};
|
|
156
|
-
parentPort.postMessage(message);
|
|
157
|
-
},
|
|
158
|
-
end: ()=>{
|
|
159
|
-
const message = {
|
|
160
|
-
name,
|
|
161
|
-
type: 'end'
|
|
162
|
-
};
|
|
163
|
-
parentPort.postMessage(message);
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
return streamReporter;
|
|
167
|
-
}
|
|
168
|
-
})
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
//# sourceMappingURL=workerChannels.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/workerChannels.ts"],"sourcesContent":["import {type MessagePort, type Worker} from 'node:worker_threads'\n\ntype StreamReporter<TPayload = unknown> = {emit: (payload: TPayload) => void; end: () => void}\ntype EventReporter<TPayload = unknown> = (payload: TPayload) => void\ntype EventReceiver<TPayload = unknown> = () => Promise<TPayload>\ntype StreamReceiver<TPayload = unknown> = () => AsyncIterable<TPayload>\n\ntype EventKeys<TWorkerChannel extends WorkerChannel> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [K in keyof TWorkerChannel]: TWorkerChannel[K] extends WorkerChannelEvent<any> ? K : never\n}[keyof TWorkerChannel]\ntype StreamKeys<TWorkerChannel extends WorkerChannel> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [K in keyof TWorkerChannel]: TWorkerChannel[K] extends WorkerChannelStream<any> ? K : never\n}[keyof TWorkerChannel]\n\ntype EventMessage<TPayload = unknown> = {name: string; payload: TPayload; type: 'event'}\ntype StreamEmissionMessage<TPayload = unknown> = {name: string; payload: TPayload; type: 'emission'}\ntype StreamEndMessage = {name: string; type: 'end'}\ntype WorkerChannelMessage = EventMessage | StreamEmissionMessage | StreamEndMessage\n\n/**\n * Represents the definition of a \"worker channel\" to report progress from the\n * worker to the parent. Worker channels can define named events or streams and\n * the worker will report events and streams while the parent will await them.\n * This allows the control flow of the parent to follow the control flow of the\n * worker 1-to-1.\n */\nexport type WorkerChannel<\n TWorkerChannel extends Record<\n string,\n WorkerChannelEvent<unknown> | WorkerChannelStream<unknown>\n > = Record<string, WorkerChannelEvent<unknown> | WorkerChannelStream<unknown>>,\n> = TWorkerChannel\n\nexport type WorkerChannelEvent<TPayload = void> = {payload: TPayload; type: 'event'}\nexport type WorkerChannelStream<TPayload = void> = {\n payload: TPayload\n type: 'stream'\n}\n\ninterface WorkerChannelReporter<TWorkerChannel extends WorkerChannel> {\n event: {\n [K in EventKeys<TWorkerChannel>]: TWorkerChannel[K] extends WorkerChannelEvent<infer TPayload>\n ? EventReporter<TPayload>\n : void\n }\n stream: {\n [K in StreamKeys<TWorkerChannel>]: TWorkerChannel[K] extends WorkerChannelStream<infer TPayload>\n ? StreamReporter<TPayload>\n : void\n }\n}\n\nexport interface WorkerChannelReceiver<TWorkerChannel extends WorkerChannel> {\n // TODO: good candidate for [Symbol.asyncDispose] when our tooling better supports it\n dispose: () => Promise<number>\n event: {\n [K in EventKeys<TWorkerChannel>]: TWorkerChannel[K] extends WorkerChannelEvent<infer TPayload>\n ? EventReceiver<TPayload>\n : void\n }\n stream: {\n [K in StreamKeys<TWorkerChannel>]: TWorkerChannel[K] extends WorkerChannelStream<infer TPayload>\n ? StreamReceiver<TPayload>\n : void\n }\n}\n\n/**\n * A simple queue that has two primary methods: `push(message)` and\n * `await next()`. This message queue is used by the \"receiver\" of the worker\n * channel and this class handles buffering incoming messages if the worker is\n * producing faster than the parent as well as returning a promise if there is\n * no message yet in the queue when the parent awaits `next()`.\n */\nclass MessageQueue<T> {\n queue: T[] = []\n resolver: ((result: IteratorResult<T>) => void) | null = null\n\n end() {\n if (this.resolver) {\n this.resolver({done: true, value: undefined})\n }\n }\n\n next(): Promise<IteratorResult<T>> {\n if (this.queue.length > 0) {\n return Promise.resolve({done: false, value: this.queue.shift()!})\n }\n\n return new Promise((resolve) => (this.resolver = resolve))\n }\n\n push(message: T) {\n if (this.resolver) {\n this.resolver({done: false, value: message})\n this.resolver = null\n } else {\n this.queue.push(message)\n }\n }\n}\n\nfunction isWorkerChannelMessage(message: unknown): message is WorkerChannelMessage {\n if (typeof message !== 'object') return false\n if (!message) return false\n if (!('type' in message)) return false\n if (typeof message.type !== 'string') return false\n const types: string[] = ['event', 'emission', 'end'] satisfies WorkerChannelMessage['type'][]\n return types.includes(message.type)\n}\n\n/**\n * Creates a \"worker channel receiver\" that subscribes to incoming messages\n * from the given worker and returns promises for worker channel events and\n * async iterators for worker channel streams.\n */\nexport function createReceiver<TWorkerChannel extends WorkerChannel>(\n worker: Worker,\n): WorkerChannelReceiver<TWorkerChannel> {\n const _events = new Map<string, MessageQueue<EventMessage>>()\n const _streams = new Map<string, MessageQueue<StreamEmissionMessage>>()\n const errors = new MessageQueue<{error: unknown; type: 'error'}>()\n\n const eventQueue = (name: string) => {\n const queue = _events.get(name) ?? new MessageQueue()\n if (!_events.has(name)) _events.set(name, queue)\n return queue\n }\n\n const streamQueue = (name: string) => {\n const queue = _streams.get(name) ?? new MessageQueue()\n if (!_streams.has(name)) _streams.set(name, queue)\n return queue\n }\n\n const handleMessage = (message: unknown) => {\n if (!isWorkerChannelMessage(message)) return\n if (message.type === 'event') eventQueue(message.name).push(message)\n if (message.type === 'emission') streamQueue(message.name).push(message)\n if (message.type === 'end') streamQueue(message.name).end()\n }\n\n const handleError = (error: unknown) => {\n errors.push({error, type: 'error'})\n }\n\n worker.addListener('message', handleMessage)\n worker.addListener('error', handleError)\n\n return {\n dispose: () => {\n worker.removeListener('message', handleMessage)\n worker.removeListener('error', handleError)\n return worker.terminate()\n },\n event: new Proxy({} as WorkerChannelReceiver<TWorkerChannel>['event'], {\n get: (target, name) => {\n if (typeof name !== 'string') return target[name as keyof typeof target]\n\n const eventReceiver: EventReceiver = async () => {\n const {value} = await Promise.race([eventQueue(name).next(), errors.next()])\n if (value.type === 'error') throw value.error\n return value.payload\n }\n\n return eventReceiver\n },\n }),\n stream: new Proxy({} as WorkerChannelReceiver<TWorkerChannel>['stream'], {\n get: (target, prop) => {\n if (typeof prop !== 'string') return target[prop as keyof typeof target]\n const name = prop // alias for better typescript narrowing\n\n async function* streamReceiver() {\n while (true) {\n const {done, value} = await Promise.race([streamQueue(name).next(), errors.next()])\n if (done) return\n if (value.type === 'error') throw value.error\n yield value.payload\n }\n }\n\n return streamReceiver satisfies StreamReceiver\n },\n }),\n }\n}\n\n/**\n * Creates a \"worker channel reporter\" that sends messages to the given\n * `parentPort` to be received by a worker channel receiver.\n */\nexport function createReporter<TWorkerChannel extends WorkerChannel>(\n parentPort: MessagePort | null,\n): WorkerChannelReporter<TWorkerChannel> {\n if (!parentPort) {\n throw new Error('parentPart was falsy')\n }\n\n return {\n event: new Proxy({} as WorkerChannelReporter<TWorkerChannel>['event'], {\n get: (target, name) => {\n if (typeof name !== 'string') return target[name as keyof typeof target]\n\n const eventReporter: EventReporter = (payload) => {\n const message: EventMessage = {name, payload, type: 'event'}\n parentPort.postMessage(message)\n }\n\n return eventReporter\n },\n }),\n stream: new Proxy({} as WorkerChannelReporter<TWorkerChannel>['stream'], {\n get: (target, name) => {\n if (typeof name !== 'string') return target[name as keyof typeof target]\n\n const streamReporter: StreamReporter = {\n emit: (payload) => {\n const message: StreamEmissionMessage = {name, payload, type: 'emission'}\n parentPort.postMessage(message)\n },\n end: () => {\n const message: StreamEndMessage = {name, type: 'end'}\n parentPort.postMessage(message)\n },\n }\n\n return streamReporter\n },\n }),\n }\n}\n"],"names":["MessageQueue","queue","resolver","end","done","value","undefined","next","length","Promise","resolve","shift","push","message","isWorkerChannelMessage","type","types","includes","createReceiver","worker","_events","Map","_streams","errors","eventQueue","name","get","has","set","streamQueue","handleMessage","handleError","error","addListener","dispose","removeListener","terminate","event","Proxy","target","eventReceiver","race","payload","stream","prop","streamReceiver","createReporter","parentPort","Error","eventReporter","postMessage","streamReporter","emit"],"mappings":"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"}
|
|
File without changes
|