@sanity/cli 5.9.0-next.8 → 6.0.0-alpha.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +3212 -2
- package/bin/run.cmd +3 -0
- package/bin/run.js +33 -0
- package/codemods/deskRename.js +115 -96
- package/codemods/partsTypeDirective.js +7 -7
- package/codemods/reactIconsV3.js +78 -51
- package/dist/SanityHelp.js +43 -0
- package/dist/SanityHelp.js.map +1 -0
- package/dist/actions/auth/authServer.js +153 -0
- package/dist/actions/auth/authServer.js.map +1 -0
- package/dist/actions/auth/getProviderName.js +15 -0
- package/dist/actions/auth/getProviderName.js.map +1 -0
- package/dist/actions/auth/login/getProvider.js +54 -0
- package/dist/actions/auth/login/getProvider.js.map +1 -0
- package/dist/actions/auth/login/getSSOProvider.js +30 -0
- package/dist/actions/auth/login/getSSOProvider.js.map +1 -0
- package/dist/actions/auth/login/login.js +101 -0
- package/dist/actions/auth/login/login.js.map +1 -0
- package/dist/actions/auth/login/promptProviders.js +23 -0
- package/dist/actions/auth/login/promptProviders.js.map +1 -0
- package/dist/actions/auth/login/samlProviderToLoginProvider.js +15 -0
- package/dist/actions/auth/login/samlProviderToLoginProvider.js.map +1 -0
- package/dist/actions/auth/types.js +7 -0
- package/dist/actions/auth/types.js.map +1 -0
- package/dist/actions/backup/archiveDir.js +43 -0
- package/dist/actions/backup/archiveDir.js.map +1 -0
- package/dist/actions/backup/assertDatasetExist.js +16 -0
- package/dist/actions/backup/assertDatasetExist.js.map +1 -0
- package/dist/actions/backup/backupDownloadDebug.js +4 -0
- package/dist/actions/backup/backupDownloadDebug.js.map +1 -0
- package/dist/actions/backup/cleanupTmpDir.js +19 -0
- package/dist/actions/backup/cleanupTmpDir.js.map +1 -0
- package/dist/actions/backup/constants.js +3 -0
- package/dist/actions/backup/constants.js.map +1 -0
- package/dist/actions/backup/downloadAsset.js +54 -0
- package/dist/actions/backup/downloadAsset.js.map +1 -0
- package/dist/actions/backup/downloadDocument.js +32 -0
- package/dist/actions/backup/downloadDocument.js.map +1 -0
- package/dist/actions/backup/fetchNextBackupPage.js +48 -0
- package/dist/actions/backup/fetchNextBackupPage.js.map +1 -0
- package/dist/actions/backup/progressSpinner.js +40 -0
- package/dist/actions/backup/progressSpinner.js.map +1 -0
- package/dist/actions/build/buildApp.js +159 -0
- package/dist/actions/build/buildApp.js.map +1 -0
- package/dist/actions/build/buildDebug.js +4 -0
- package/dist/actions/build/buildDebug.js.map +1 -0
- package/dist/actions/build/buildStaticFiles.js +82 -0
- package/dist/actions/build/buildStaticFiles.js.map +1 -0
- package/dist/actions/build/buildStudio.js +202 -0
- package/dist/actions/build/buildStudio.js.map +1 -0
- package/dist/actions/build/buildVendorDependencies.js +179 -0
- package/dist/actions/build/buildVendorDependencies.js.map +1 -0
- package/dist/actions/build/checkRequiredDependencies.js +122 -0
- package/dist/actions/build/checkRequiredDependencies.js.map +1 -0
- package/dist/actions/build/checkStudioDependencyVersions.js +154 -0
- package/dist/actions/build/checkStudioDependencyVersions.js.map +1 -0
- package/dist/actions/build/createExternalFromImportMap.js +11 -0
- package/dist/actions/build/createExternalFromImportMap.js.map +1 -0
- package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.js +13 -0
- package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.js.map +1 -0
- package/dist/actions/build/decorateIndexWithBridgeScript.js +17 -0
- package/dist/actions/build/decorateIndexWithBridgeScript.js.map +1 -0
- package/dist/actions/build/determineBasePath.js +20 -0
- package/dist/actions/build/determineBasePath.js.map +1 -0
- package/dist/actions/build/generateWebManifest.js +27 -0
- package/dist/actions/build/generateWebManifest.js.map +1 -0
- package/dist/actions/build/getAppEnvVars.js +9 -0
- package/dist/actions/build/getAppEnvVars.js.map +1 -0
- package/dist/actions/build/getAutoUpdatesImportMap.js +57 -0
- package/dist/actions/build/getAutoUpdatesImportMap.js.map +1 -0
- package/dist/actions/build/getEntryModule.js +46 -0
- package/dist/actions/build/getEntryModule.js.map +1 -0
- package/dist/actions/build/getPossibleDocumentComponentLocations.js +11 -0
- package/dist/actions/build/getPossibleDocumentComponentLocations.js.map +1 -0
- package/dist/actions/build/getStudioEnvVars.js +9 -0
- package/dist/actions/build/getStudioEnvVars.js.map +1 -0
- package/dist/actions/build/getStudioEnvironmentVariables.js +58 -0
- package/dist/actions/build/getStudioEnvironmentVariables.js.map +1 -0
- package/dist/actions/build/getViteConfig.js +180 -0
- package/dist/actions/build/getViteConfig.js.map +1 -0
- package/dist/actions/build/normalizeBasePath.js +9 -0
- package/dist/actions/build/normalizeBasePath.js.map +1 -0
- package/dist/actions/build/renderDocument.js +54 -0
- package/dist/actions/build/renderDocument.js.map +1 -0
- package/dist/actions/build/renderDocument.worker.js +9 -0
- package/dist/actions/build/renderDocument.worker.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.js +59 -0
- package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js +61 -0
- package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js +165 -0
- package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/Favicons.js +28 -0
- package/dist/actions/build/renderDocumentWorker/components/Favicons.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js +177 -0
- package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/components/NoJavascript.js +51 -0
- package/dist/actions/build/renderDocumentWorker/components/NoJavascript.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js +41 -0
- package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/getDocumentHtml.js +55 -0
- package/dist/actions/build/renderDocumentWorker/getDocumentHtml.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js +31 -0
- package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.js +30 -0
- package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.js.map +1 -0
- package/dist/actions/build/renderDocumentWorker/types.js +5 -0
- package/dist/actions/build/renderDocumentWorker/types.js.map +1 -0
- package/dist/actions/build/shouldAutoUpdate.js +35 -0
- package/dist/actions/build/shouldAutoUpdate.js.map +1 -0
- package/dist/actions/build/types.js +3 -0
- package/dist/actions/build/types.js.map +1 -0
- package/dist/actions/build/writeFavicons.js +26 -0
- package/dist/actions/build/writeFavicons.js.map +1 -0
- package/dist/actions/build/writeSanityRuntime.js +61 -0
- package/dist/actions/build/writeSanityRuntime.js.map +1 -0
- package/dist/actions/build/writeWebManifest.js +12 -0
- package/dist/actions/build/writeWebManifest.js.map +1 -0
- package/dist/actions/codemods/deskRename.js +18 -0
- package/dist/actions/codemods/deskRename.js.map +1 -0
- package/dist/actions/codemods/index.js +10 -0
- package/dist/actions/codemods/index.js.map +1 -0
- package/dist/actions/codemods/partsTypeDirective.js +27 -0
- package/dist/actions/codemods/partsTypeDirective.js.map +1 -0
- package/dist/actions/codemods/reactIconsV3.js +30 -0
- package/dist/actions/codemods/reactIconsV3.js.map +1 -0
- package/dist/actions/codemods/types.js +3 -0
- package/dist/actions/codemods/types.js.map +1 -0
- package/dist/actions/cors/filterAndValidateOrigin.js +38 -0
- package/dist/actions/cors/filterAndValidateOrigin.js.map +1 -0
- package/dist/actions/dataset/create.js +46 -0
- package/dist/actions/dataset/create.js.map +1 -0
- package/dist/actions/dataset/determineDatasetAclMode.js +36 -0
- package/dist/actions/dataset/determineDatasetAclMode.js.map +1 -0
- package/dist/actions/dataset/processAliasName.js +20 -0
- package/dist/actions/dataset/processAliasName.js.map +1 -0
- package/dist/actions/dataset/validateDatasetAliasName.js +28 -0
- package/dist/actions/dataset/validateDatasetAliasName.js.map +1 -0
- package/dist/actions/dataset/validateDatasetName.js +39 -0
- package/dist/actions/dataset/validateDatasetName.js.map +1 -0
- package/dist/actions/debug/gatherDebugInfo.js +104 -0
- package/dist/actions/debug/gatherDebugInfo.js.map +1 -0
- package/dist/actions/debug/getGlobalConfigLocation.js +7 -0
- package/dist/actions/debug/getGlobalConfigLocation.js.map +1 -0
- package/dist/actions/debug/types.js +3 -0
- package/dist/actions/debug/types.js.map +1 -0
- package/dist/actions/deploy/checkDir.js +31 -0
- package/dist/actions/deploy/checkDir.js.map +1 -0
- package/dist/actions/deploy/createStudioUserApplication.js +59 -0
- package/dist/actions/deploy/createStudioUserApplication.js.map +1 -0
- package/dist/actions/deploy/createUserApplicationForApp.js +56 -0
- package/dist/actions/deploy/createUserApplicationForApp.js.map +1 -0
- package/dist/actions/deploy/deployApp.js +162 -0
- package/dist/actions/deploy/deployApp.js.map +1 -0
- package/dist/actions/deploy/deployDebug.js +4 -0
- package/dist/actions/deploy/deployDebug.js.map +1 -0
- package/dist/actions/deploy/deployStudio.js +134 -0
- package/dist/actions/deploy/deployStudio.js.map +1 -0
- package/dist/actions/deploy/findUserApplicationForApp.js +110 -0
- package/dist/actions/deploy/findUserApplicationForApp.js.map +1 -0
- package/dist/actions/deploy/findUserApplicationForStudio.js +143 -0
- package/dist/actions/deploy/findUserApplicationForStudio.js.map +1 -0
- package/dist/actions/deploy/types.js +3 -0
- package/dist/actions/deploy/types.js.map +1 -0
- package/dist/actions/dev/devAction.js +7 -0
- package/dist/actions/dev/devAction.js.map +1 -0
- package/dist/actions/dev/devDebug.js +4 -0
- package/dist/actions/dev/devDebug.js.map +1 -0
- package/dist/actions/dev/getCoreAppUrl.js +10 -0
- package/dist/actions/dev/getCoreAppUrl.js.map +1 -0
- package/dist/actions/dev/getDevServerConfig.js +28 -0
- package/dist/actions/dev/getDevServerConfig.js.map +1 -0
- package/dist/actions/dev/startAppDevServer.js +57 -0
- package/dist/actions/dev/startAppDevServer.js.map +1 -0
- package/dist/actions/dev/startStudioDevServer.js +154 -0
- package/dist/actions/dev/startStudioDevServer.js.map +1 -0
- package/dist/actions/dev/types.js +3 -0
- package/dist/actions/dev/types.js.map +1 -0
- package/dist/actions/docs/normalizeDocsPath.js +15 -0
- package/dist/actions/docs/normalizeDocsPath.js.map +1 -0
- package/dist/actions/documents/constants.js +3 -0
- package/dist/actions/documents/constants.js.map +1 -0
- package/dist/actions/documents/editor.js +26 -0
- package/dist/actions/documents/editor.js.map +1 -0
- package/dist/actions/documents/types.js +3 -0
- package/dist/actions/documents/types.js.map +1 -0
- package/dist/actions/documents/validate.js +60 -0
- package/dist/actions/documents/validate.js.map +1 -0
- package/dist/actions/documents/validateDocuments.worker.js +251 -0
- package/dist/actions/documents/validateDocuments.worker.js.map +1 -0
- package/dist/actions/documents/validation/reporters/index.js +10 -0
- package/dist/actions/documents/validation/reporters/index.js.map +1 -0
- package/dist/actions/documents/validation/reporters/jsonReporter.js +25 -0
- package/dist/actions/documents/validation/reporters/jsonReporter.js.map +1 -0
- package/dist/actions/documents/validation/reporters/ndjsonReporter.js +18 -0
- package/dist/actions/documents/validation/reporters/ndjsonReporter.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js +62 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/index.js +3 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/index.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/prettyReporter.js +92 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/prettyReporter.js.map +1 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/util.js +45 -0
- package/dist/actions/documents/validation/reporters/prettyReporter/util.js.map +1 -0
- package/dist/actions/exec/configClient.worker.js +9 -0
- package/dist/actions/exec/configClient.worker.js.map +1 -0
- package/dist/actions/exec/execScript.js +77 -0
- package/dist/actions/exec/execScript.js.map +1 -0
- package/dist/actions/exec/registerBrowserEnv.worker.js +17 -0
- package/dist/actions/exec/registerBrowserEnv.worker.js.map +1 -0
- package/dist/actions/graphql/SchemaError.js +37 -0
- package/dist/actions/graphql/SchemaError.js.map +1 -0
- package/dist/actions/graphql/extractFromSanitySchema.js +659 -0
- package/dist/actions/graphql/extractFromSanitySchema.js.map +1 -0
- package/dist/actions/graphql/gen1/generateTypeFilters.js +226 -0
- package/dist/actions/graphql/gen1/generateTypeFilters.js.map +1 -0
- package/dist/actions/graphql/gen1/generateTypeQueries.js +85 -0
- package/dist/actions/graphql/gen1/generateTypeQueries.js.map +1 -0
- package/dist/actions/graphql/gen1/index.js +19 -0
- package/dist/actions/graphql/gen1/index.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/booleanFilters.js +26 -0
- package/dist/actions/graphql/gen2/filters/booleanFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/dateFilters.js +46 -0
- package/dist/actions/graphql/gen2/filters/dateFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/dateTimeFilters.js +46 -0
- package/dist/actions/graphql/gen2/filters/dateTimeFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/documentFilters.js +21 -0
- package/dist/actions/graphql/gen2/filters/documentFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/floatFilters.js +46 -0
- package/dist/actions/graphql/gen2/filters/floatFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/idFilters.js +44 -0
- package/dist/actions/graphql/gen2/filters/idFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/integerFilters.js +46 -0
- package/dist/actions/graphql/gen2/filters/integerFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/filters/stringFilters.js +49 -0
- package/dist/actions/graphql/gen2/filters/stringFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/generateTypeFilters.js +85 -0
- package/dist/actions/graphql/gen2/generateTypeFilters.js.map +1 -0
- package/dist/actions/graphql/gen2/generateTypeQueries.js +107 -0
- package/dist/actions/graphql/gen2/generateTypeQueries.js.map +1 -0
- package/dist/actions/graphql/gen2/generateTypeSortings.js +70 -0
- package/dist/actions/graphql/gen2/generateTypeSortings.js.map +1 -0
- package/dist/actions/graphql/gen2/index.js +22 -0
- package/dist/actions/graphql/gen2/index.js.map +1 -0
- package/dist/actions/graphql/gen3/filters/documentFilters.js +21 -0
- package/dist/actions/graphql/gen3/filters/documentFilters.js.map +1 -0
- package/dist/actions/graphql/gen3/generateTypeFilters.js +101 -0
- package/dist/actions/graphql/gen3/generateTypeFilters.js.map +1 -0
- package/dist/actions/graphql/gen3/generateTypeQueries.js +104 -0
- package/dist/actions/graphql/gen3/generateTypeQueries.js.map +1 -0
- package/dist/actions/graphql/gen3/generateTypeSortings.js +70 -0
- package/dist/actions/graphql/gen3/generateTypeSortings.js.map +1 -0
- package/dist/actions/graphql/gen3/index.js +31 -0
- package/dist/actions/graphql/gen3/index.js.map +1 -0
- package/dist/actions/graphql/gen3/utils.js +12 -0
- package/dist/actions/graphql/gen3/utils.js.map +1 -0
- package/dist/actions/graphql/getGraphQLAPIs.js +65 -0
- package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -0
- package/dist/actions/graphql/getGraphQLAPIs.worker.js +126 -0
- package/dist/actions/graphql/getGraphQLAPIs.worker.js.map +1 -0
- package/dist/actions/graphql/graphqlDebug.js +4 -0
- package/dist/actions/graphql/graphqlDebug.js.map +1 -0
- package/dist/actions/graphql/helpUrls.js +3 -0
- package/dist/actions/graphql/helpUrls.js.map +1 -0
- package/dist/actions/graphql/helpers.js +11 -0
- package/dist/actions/graphql/helpers.js.map +1 -0
- package/dist/actions/graphql/resolveApiGeneration.js +43 -0
- package/dist/actions/graphql/resolveApiGeneration.js.map +1 -0
- package/dist/actions/graphql/types.js +3 -0
- package/dist/actions/graphql/types.js.map +1 -0
- package/dist/actions/hook/constants.js +3 -0
- package/dist/actions/hook/constants.js.map +1 -0
- package/dist/actions/hook/formatFailure.js +29 -0
- package/dist/actions/hook/formatFailure.js.map +1 -0
- package/dist/actions/hook/types.js +3 -0
- package/dist/actions/hook/types.js.map +1 -0
- package/dist/actions/init/bootstrapLocalTemplate.js +137 -0
- package/dist/actions/init/bootstrapLocalTemplate.js.map +1 -0
- package/dist/actions/init/bootstrapRemoteTemplate.js +109 -0
- package/dist/actions/init/bootstrapRemoteTemplate.js.map +1 -0
- package/dist/actions/init/bootstrapTemplate.js +32 -0
- package/dist/actions/init/bootstrapTemplate.js.map +1 -0
- package/dist/actions/init/checkNextJsReactCompatibility.js +21 -0
- package/dist/actions/init/checkNextJsReactCompatibility.js.map +1 -0
- package/dist/actions/init/constants.js +3 -0
- package/dist/actions/init/constants.js.map +1 -0
- package/dist/actions/init/countNestedFolders.js +6 -0
- package/dist/actions/init/countNestedFolders.js.map +1 -0
- package/dist/actions/init/createAppCliConfig.js +19 -0
- package/dist/actions/init/createAppCliConfig.js.map +1 -0
- package/dist/actions/init/createCliConfig.js +27 -0
- package/dist/actions/init/createCliConfig.js.map +1 -0
- package/dist/actions/init/createPackageManifest.js +86 -0
- package/dist/actions/init/createPackageManifest.js.map +1 -0
- package/dist/actions/init/createStudioConfig.js +41 -0
- package/dist/actions/init/createStudioConfig.js.map +1 -0
- package/dist/actions/init/determineAppTemplate.js +16 -0
- package/dist/actions/init/determineAppTemplate.js.map +1 -0
- package/dist/actions/init/env/createOrAppendEnvVars.js +25 -0
- package/dist/actions/init/env/createOrAppendEnvVars.js.map +1 -0
- package/dist/actions/init/env/parseAndUpdateEnvVars.js +42 -0
- package/dist/actions/init/env/parseAndUpdateEnvVars.js.map +1 -0
- package/dist/actions/init/env/writeEnvVarsToFile.js +49 -0
- package/dist/actions/init/env/writeEnvVarsToFile.js.map +1 -0
- package/dist/actions/init/fetchPostInitPrompt.js +30 -0
- package/dist/actions/init/fetchPostInitPrompt.js.map +1 -0
- package/dist/actions/init/git.js +65 -0
- package/dist/actions/init/git.js.map +1 -0
- package/dist/actions/init/processTemplate.js +56 -0
- package/dist/actions/init/processTemplate.js.map +1 -0
- package/dist/actions/init/remoteTemplate.js +211 -0
- package/dist/actions/init/remoteTemplate.js.map +1 -0
- package/dist/actions/init/resolvePackageManager.js +20 -0
- package/dist/actions/init/resolvePackageManager.js.map +1 -0
- package/dist/actions/init/templates/appQuickstart.js +28 -0
- package/dist/actions/init/templates/appQuickstart.js.map +1 -0
- package/dist/actions/init/templates/appSanityUi.js +30 -0
- package/dist/actions/init/templates/appSanityUi.js.map +1 -0
- package/dist/actions/init/templates/blog.js +4 -0
- package/dist/actions/init/templates/blog.js.map +1 -0
- package/dist/actions/init/templates/clean.js +4 -0
- package/dist/actions/init/templates/clean.js.map +1 -0
- package/dist/actions/init/templates/getStarted.js +35 -0
- package/dist/actions/init/templates/getStarted.js.map +1 -0
- package/dist/actions/init/templates/index.js +23 -0
- package/dist/actions/init/templates/index.js.map +1 -0
- package/dist/actions/init/templates/moviedb.js +34 -0
- package/dist/actions/init/templates/moviedb.js.map +1 -0
- package/dist/actions/init/templates/nextjs/index.js +213 -0
- package/dist/actions/init/templates/nextjs/index.js.map +1 -0
- package/dist/actions/init/templates/nextjs/schemaTypes/blog.js +247 -0
- package/dist/actions/init/templates/nextjs/schemaTypes/blog.js.map +1 -0
- package/dist/actions/init/templates/quickstart.js +4 -0
- package/dist/actions/init/templates/quickstart.js.map +1 -0
- package/dist/actions/init/templates/shopify.js +77 -0
- package/dist/actions/init/templates/shopify.js.map +1 -0
- package/dist/actions/init/templates/shopifyOnline.js +49 -0
- package/dist/actions/init/templates/shopifyOnline.js.map +1 -0
- package/dist/actions/init/types.js +3 -0
- package/dist/actions/init/types.js.map +1 -0
- package/dist/actions/init/updateInitialTemplateMetadata.js +17 -0
- package/dist/actions/init/updateInitialTemplateMetadata.js.map +1 -0
- package/dist/actions/manifest/SchemaIcon.js +21 -0
- package/dist/actions/manifest/SchemaIcon.js.map +1 -0
- package/dist/actions/manifest/extractAppManifest.js +51 -0
- package/dist/actions/manifest/extractAppManifest.js.map +1 -0
- package/dist/actions/manifest/extractManifest.js +93 -0
- package/dist/actions/manifest/extractManifest.js.map +1 -0
- package/dist/actions/manifest/extractWorkspaceManifest.js +406 -0
- package/dist/actions/manifest/extractWorkspaceManifest.js.map +1 -0
- package/dist/actions/manifest/purifyConfig.js +307 -0
- package/dist/actions/manifest/purifyConfig.js.map +1 -0
- package/dist/actions/manifest/schemaTypeHelpers.js +110 -0
- package/dist/actions/manifest/schemaTypeHelpers.js.map +1 -0
- package/dist/actions/manifest/types.js +5 -0
- package/dist/actions/manifest/types.js.map +1 -0
- package/dist/actions/mcp/detectAvailableEditors.js +75 -0
- package/dist/actions/mcp/detectAvailableEditors.js.map +1 -0
- package/dist/actions/mcp/editorConfigs.js +147 -0
- package/dist/actions/mcp/editorConfigs.js.map +1 -0
- package/dist/actions/mcp/promptForMCPSetup.js +24 -0
- package/dist/actions/mcp/promptForMCPSetup.js.map +1 -0
- package/dist/actions/mcp/setupMCP.js +88 -0
- package/dist/actions/mcp/setupMCP.js.map +1 -0
- package/dist/actions/mcp/types.js +3 -0
- package/dist/actions/mcp/types.js.map +1 -0
- package/dist/actions/mcp/writeMCPConfig.js +41 -0
- package/dist/actions/mcp/writeMCPConfig.js.map +1 -0
- package/dist/actions/media/__tests__/createMockClient.js +32 -0
- package/dist/actions/media/__tests__/createMockClient.js.map +1 -0
- package/dist/actions/media/getMediaLibraryConfig.js +5 -0
- package/dist/actions/media/getMediaLibraryConfig.js.map +1 -0
- package/dist/actions/media/importAspects.js +112 -0
- package/dist/actions/media/importAspects.js.map +1 -0
- package/dist/actions/media/importMedia.js +213 -0
- package/dist/actions/media/importMedia.js.map +1 -0
- package/dist/actions/media/importMediaDebug.js +4 -0
- package/dist/actions/media/importMediaDebug.js.map +1 -0
- package/dist/actions/organizations/getOrganization.js +67 -0
- package/dist/actions/organizations/getOrganization.js.map +1 -0
- package/dist/actions/organizations/getOrganizationChoices.js +23 -0
- package/dist/actions/organizations/getOrganizationChoices.js.map +1 -0
- package/dist/actions/organizations/getOrganizationsWithAttachGrantInfo.js +9 -0
- package/dist/actions/organizations/getOrganizationsWithAttachGrantInfo.js.map +1 -0
- package/dist/actions/organizations/hasProjectAttachGrant.js +24 -0
- package/dist/actions/organizations/hasProjectAttachGrant.js.map +1 -0
- package/dist/actions/organizations/validateOrganizationName.js +10 -0
- package/dist/actions/organizations/validateOrganizationName.js.map +1 -0
- package/dist/actions/preview/getPreviewServerConfig.js +16 -0
- package/dist/actions/preview/getPreviewServerConfig.js.map +1 -0
- package/dist/actions/preview/previewAction.js +20 -0
- package/dist/actions/preview/previewAction.js.map +1 -0
- package/dist/actions/preview/types.js +3 -0
- package/dist/actions/preview/types.js.map +1 -0
- package/dist/actions/projects/getManageUrl.js +7 -0
- package/dist/actions/projects/getManageUrl.js.map +1 -0
- package/dist/actions/projects/validateProjectName.js +11 -0
- package/dist/actions/projects/validateProjectName.js.map +1 -0
- package/dist/actions/schema/deleteSchemaAction.js +101 -0
- package/dist/actions/schema/deleteSchemaAction.js.map +1 -0
- package/dist/actions/schema/deploySchemas.js +98 -0
- package/dist/actions/schema/deploySchemas.js.map +1 -0
- package/dist/actions/schema/extractSanitySchema.worker.js +38 -0
- package/dist/actions/schema/extractSanitySchema.worker.js.map +1 -0
- package/dist/actions/schema/extractSchema.js +77 -0
- package/dist/actions/schema/extractSchema.js.map +1 -0
- package/dist/actions/schema/formatSchemaValidation.js +74 -0
- package/dist/actions/schema/formatSchemaValidation.js.map +1 -0
- package/dist/actions/schema/listSchemas.js +119 -0
- package/dist/actions/schema/listSchemas.js.map +1 -0
- package/dist/actions/schema/metafile.js +51 -0
- package/dist/actions/schema/metafile.js.map +1 -0
- package/dist/actions/schema/schemaStoreTypes.js +19 -0
- package/dist/actions/schema/schemaStoreTypes.js.map +1 -0
- package/dist/actions/schema/types.js +9 -0
- package/dist/actions/schema/types.js.map +1 -0
- package/dist/actions/schema/utils/debug.js +6 -0
- package/dist/actions/schema/utils/debug.js.map +1 -0
- package/dist/actions/schema/utils/extractValidationFromSchemaError.js +12 -0
- package/dist/actions/schema/utils/extractValidationFromSchemaError.js.map +1 -0
- package/dist/actions/schema/utils/manifestExtractor.js +33 -0
- package/dist/actions/schema/utils/manifestExtractor.js.map +1 -0
- package/dist/actions/schema/utils/manifestReader.js +71 -0
- package/dist/actions/schema/utils/manifestReader.js.map +1 -0
- package/dist/actions/schema/utils/schemaStoreOutStrings.js +11 -0
- package/dist/actions/schema/utils/schemaStoreOutStrings.js.map +1 -0
- package/dist/actions/schema/utils/schemaStoreValidation.js +108 -0
- package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -0
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js +9 -0
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -0
- package/dist/actions/schema/utils/workspaceSchemaId.js +23 -0
- package/dist/actions/schema/utils/workspaceSchemaId.js.map +1 -0
- package/dist/actions/schema/validateAction.js +71 -0
- package/dist/actions/schema/validateAction.js.map +1 -0
- package/dist/actions/schema/validateSchema.worker.js +124 -0
- package/dist/actions/schema/validateSchema.worker.js.map +1 -0
- package/dist/actions/telemetry/getLearnMoreMessage.js +15 -0
- package/dist/actions/telemetry/getLearnMoreMessage.js.map +1 -0
- package/dist/actions/telemetry/getStatusDisplay.js +26 -0
- package/dist/actions/telemetry/getStatusDisplay.js.map +1 -0
- package/dist/actions/telemetry/getStatusMessage.js +36 -0
- package/dist/actions/telemetry/getStatusMessage.js.map +1 -0
- package/dist/actions/telemetry/resolveConsent.js +48 -0
- package/dist/actions/telemetry/resolveConsent.js.map +1 -0
- package/dist/actions/telemetry/setConsent.js +83 -0
- package/dist/actions/telemetry/setConsent.js.map +1 -0
- package/dist/actions/telemetry/telemetryDebug.js +4 -0
- package/dist/actions/telemetry/telemetryDebug.js.map +1 -0
- package/dist/actions/telemetry/telemetryDisclosure.js +33 -0
- package/dist/actions/telemetry/telemetryDisclosure.js.map +1 -0
- package/dist/actions/telemetry/telemetryLearnMoreMessage.js +15 -0
- package/dist/actions/telemetry/telemetryLearnMoreMessage.js.map +1 -0
- package/dist/actions/tokens/constants.js +5 -0
- package/dist/actions/tokens/constants.js.map +1 -0
- package/dist/actions/tokens/types.js +3 -0
- package/dist/actions/tokens/types.js.map +1 -0
- package/dist/actions/tokens/validateRole.js +23 -0
- package/dist/actions/tokens/validateRole.js.map +1 -0
- package/dist/actions/undeploy/getStudioOrAppUserApplication.js +36 -0
- package/dist/actions/undeploy/getStudioOrAppUserApplication.js.map +1 -0
- package/dist/actions/users/getMembersForProject.js +47 -0
- package/dist/actions/users/getMembersForProject.js.map +1 -0
- package/dist/actions/users/getPendingInvitations.js +15 -0
- package/dist/actions/users/getPendingInvitations.js.map +1 -0
- package/dist/actions/users/types.js +3 -0
- package/dist/actions/users/types.js.map +1 -0
- package/dist/actions/users/usersDebug.js +4 -0
- package/dist/actions/users/usersDebug.js.map +1 -0
- package/dist/actions/users/validateEmail.js +14 -0
- package/dist/actions/users/validateEmail.js.map +1 -0
- package/dist/actions/versions/buildPackageArray.js +44 -0
- package/dist/actions/versions/buildPackageArray.js.map +1 -0
- package/dist/actions/versions/filterSanityModules.js +20 -0
- package/dist/actions/versions/filterSanityModules.js.map +1 -0
- package/dist/actions/versions/findSanityModulesVersions.js +47 -0
- package/dist/actions/versions/findSanityModulesVersions.js.map +1 -0
- package/dist/actions/versions/getFormatters.js +30 -0
- package/dist/actions/versions/getFormatters.js.map +1 -0
- package/dist/actions/versions/tryFindLatestVersion.js +21 -0
- package/dist/actions/versions/tryFindLatestVersion.js.map +1 -0
- package/dist/actions/versions/types.js +5 -0
- package/dist/actions/versions/types.js.map +1 -0
- package/dist/actions/versions/versionsDebug.js +4 -0
- package/dist/actions/versions/versionsDebug.js.map +1 -0
- package/dist/commands/backup/disable.js +94 -0
- package/dist/commands/backup/disable.js.map +1 -0
- package/dist/commands/backup/download.js +291 -0
- package/dist/commands/backup/download.js.map +1 -0
- package/dist/commands/backup/enable.js +99 -0
- package/dist/commands/backup/enable.js.map +1 -0
- package/dist/commands/backup/list.js +187 -0
- package/dist/commands/backup/list.js.map +1 -0
- package/dist/commands/build.js +82 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/codemod.js +141 -0
- package/dist/commands/codemod.js.map +1 -0
- package/dist/commands/cors/add.js +154 -0
- package/dist/commands/cors/add.js.map +1 -0
- package/dist/commands/cors/delete.js +90 -0
- package/dist/commands/cors/delete.js.map +1 -0
- package/dist/commands/cors/list.js +40 -0
- package/dist/commands/cors/list.js.map +1 -0
- package/dist/commands/dataset/alias/create.js +118 -0
- package/dist/commands/dataset/alias/create.js.map +1 -0
- package/dist/commands/dataset/alias/delete.js +88 -0
- package/dist/commands/dataset/alias/delete.js.map +1 -0
- package/dist/commands/dataset/alias/link.js +137 -0
- package/dist/commands/dataset/alias/link.js.map +1 -0
- package/dist/commands/dataset/alias/unlink.js +98 -0
- package/dist/commands/dataset/alias/unlink.js.map +1 -0
- package/dist/commands/dataset/copy.js +369 -0
- package/dist/commands/dataset/copy.js.map +1 -0
- package/dist/commands/dataset/create.js +106 -0
- package/dist/commands/dataset/create.js.map +1 -0
- package/dist/commands/dataset/delete.js +104 -0
- package/dist/commands/dataset/delete.js.map +1 -0
- package/dist/commands/dataset/export.js +271 -0
- package/dist/commands/dataset/export.js.map +1 -0
- package/dist/commands/dataset/import.js +3 -0
- package/dist/commands/dataset/import.js.map +1 -0
- package/dist/commands/dataset/list.js +50 -0
- package/dist/commands/dataset/list.js.map +1 -0
- package/dist/commands/dataset/visibility/get.js +55 -0
- package/dist/commands/dataset/visibility/get.js.map +1 -0
- package/dist/commands/dataset/visibility/set.js +88 -0
- package/dist/commands/dataset/visibility/set.js.map +1 -0
- package/dist/commands/debug.js +93 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/deploy.js +115 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.js +65 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/docs/browse.js +15 -0
- package/dist/commands/docs/browse.js.map +1 -0
- package/dist/commands/docs/read.js +81 -0
- package/dist/commands/docs/read.js.map +1 -0
- package/dist/commands/docs/search.js +111 -0
- package/dist/commands/docs/search.js.map +1 -0
- package/dist/commands/documents/create.js +338 -0
- package/dist/commands/documents/create.js.map +1 -0
- package/dist/commands/documents/delete.js +104 -0
- package/dist/commands/documents/delete.js.map +1 -0
- package/dist/commands/documents/get.js +85 -0
- package/dist/commands/documents/get.js.map +1 -0
- package/dist/commands/documents/query.js +105 -0
- package/dist/commands/documents/query.js.map +1 -0
- package/dist/commands/documents/validate.js +142 -0
- package/dist/commands/documents/validate.js.map +1 -0
- package/dist/commands/exec.js +54 -0
- package/dist/commands/exec.js.map +1 -0
- package/dist/commands/graphql/deploy.js +429 -0
- package/dist/commands/graphql/deploy.js.map +1 -0
- package/dist/commands/graphql/list.js +53 -0
- package/dist/commands/graphql/list.js.map +1 -0
- package/dist/commands/graphql/undeploy.js +143 -0
- package/dist/commands/graphql/undeploy.js.map +1 -0
- package/dist/commands/hook/attempt.js +66 -0
- package/dist/commands/hook/attempt.js.map +1 -0
- package/dist/commands/hook/create.js +46 -0
- package/dist/commands/hook/create.js.map +1 -0
- package/dist/commands/hook/delete.js +86 -0
- package/dist/commands/hook/delete.js.map +1 -0
- package/dist/commands/hook/list.js +46 -0
- package/dist/commands/hook/list.js.map +1 -0
- package/dist/commands/hook/logs.js +184 -0
- package/dist/commands/hook/logs.js.map +1 -0
- package/dist/commands/init.js +1389 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install.js +43 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/learn.js +15 -0
- package/dist/commands/learn.js.map +1 -0
- package/dist/commands/login.js +50 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.js +37 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/manage.js +29 -0
- package/dist/commands/manage.js.map +1 -0
- package/dist/commands/manifest/extract.js +43 -0
- package/dist/commands/manifest/extract.js.map +1 -0
- package/dist/commands/mcp/configure.js +28 -0
- package/dist/commands/mcp/configure.js.map +1 -0
- package/dist/commands/media/create-aspect.js +88 -0
- package/dist/commands/media/create-aspect.js.map +1 -0
- package/dist/commands/media/delete-aspect.js +85 -0
- package/dist/commands/media/delete-aspect.js.map +1 -0
- package/dist/commands/media/deploy-aspect.js +151 -0
- package/dist/commands/media/deploy-aspect.js.map +1 -0
- package/dist/commands/media/export.js +210 -0
- package/dist/commands/media/export.js.map +1 -0
- package/dist/commands/media/import.js +160 -0
- package/dist/commands/media/import.js.map +1 -0
- package/dist/commands/openapi/get.js +83 -0
- package/dist/commands/openapi/get.js.map +1 -0
- package/dist/commands/openapi/list.js +80 -0
- package/dist/commands/openapi/list.js.map +1 -0
- package/dist/commands/preview.js +60 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/projects/create.js +181 -0
- package/dist/commands/projects/create.js.map +1 -0
- package/dist/commands/projects/list.js +76 -0
- package/dist/commands/projects/list.js.map +1 -0
- package/dist/commands/schema/delete.js +91 -0
- package/dist/commands/schema/delete.js.map +1 -0
- package/dist/commands/schema/deploy.js +98 -0
- package/dist/commands/schema/deploy.js.map +1 -0
- package/dist/commands/schema/extract.js +46 -0
- package/dist/commands/schema/extract.js.map +1 -0
- package/dist/commands/schema/list.js +104 -0
- package/dist/commands/schema/list.js.map +1 -0
- package/dist/commands/schema/validate.js +73 -0
- package/dist/commands/schema/validate.js.map +1 -0
- package/dist/commands/telemetry/disable.js +33 -0
- package/dist/commands/telemetry/disable.js.map +1 -0
- package/dist/commands/telemetry/enable.js +33 -0
- package/dist/commands/telemetry/enable.js.map +1 -0
- package/dist/commands/telemetry/status.js +25 -0
- package/dist/commands/telemetry/status.js.map +1 -0
- package/dist/commands/tokens/add.js +135 -0
- package/dist/commands/tokens/add.js.map +1 -0
- package/dist/commands/tokens/delete.js +107 -0
- package/dist/commands/tokens/delete.js.map +1 -0
- package/dist/commands/tokens/list.js +92 -0
- package/dist/commands/tokens/list.js.map +1 -0
- package/dist/commands/undeploy.js +93 -0
- package/dist/commands/undeploy.js.map +1 -0
- package/dist/commands/users/invite.js +100 -0
- package/dist/commands/users/invite.js.map +1 -0
- package/dist/commands/users/list.js +101 -0
- package/dist/commands/users/list.js.map +1 -0
- package/dist/commands/versions.js +27 -0
- package/dist/commands/versions.js.map +1 -0
- package/dist/config/createCliConfig.js +9 -0
- package/dist/config/createCliConfig.js.map +1 -0
- package/dist/config/defineCliConfig.js +5 -0
- package/dist/config/defineCliConfig.js.map +1 -0
- package/dist/hooks/prerun/flushTelemetry.worker.js +22 -0
- package/dist/hooks/prerun/flushTelemetry.worker.js.map +1 -0
- package/dist/hooks/prerun/injectEnvVariables.js +31 -0
- package/dist/hooks/prerun/injectEnvVariables.js.map +1 -0
- package/dist/hooks/prerun/setupTelemetry.js +72 -0
- package/dist/hooks/prerun/setupTelemetry.js.map +1 -0
- package/dist/hooks/prerun/warnings.js +6 -0
- package/dist/hooks/prerun/warnings.js.map +1 -0
- package/dist/index.d.ts +2326 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/init/nextjs.js +56 -0
- package/dist/prompts/init/nextjs.js.map +1 -0
- package/dist/prompts/init/promptForTypescript.js +9 -0
- package/dist/prompts/init/promptForTypescript.js.map +1 -0
- package/dist/prompts/promptForDataset.js +32 -0
- package/dist/prompts/promptForDataset.js.map +1 -0
- package/dist/prompts/promptForDatasetAclMode.js +27 -0
- package/dist/prompts/promptForDatasetAclMode.js.map +1 -0
- package/dist/prompts/promptForDatasetAliasName.js +17 -0
- package/dist/prompts/promptForDatasetAliasName.js.map +1 -0
- package/dist/prompts/promptForDatasetName.js +20 -0
- package/dist/prompts/promptForDatasetName.js.map +1 -0
- package/dist/prompts/promptForDefaultConfig.js +12 -0
- package/dist/prompts/promptForDefaultConfig.js.map +1 -0
- package/dist/prompts/promptForMediaLibrary.js +37 -0
- package/dist/prompts/promptForMediaLibrary.js.map +1 -0
- package/dist/prompts/promptForOrganizationName.js +11 -0
- package/dist/prompts/promptForOrganizationName.js.map +1 -0
- package/dist/prompts/promptForProjectName.js +11 -0
- package/dist/prompts/promptForProjectName.js.map +1 -0
- package/dist/prompts/selectDataset.js +12 -0
- package/dist/prompts/selectDataset.js.map +1 -0
- package/dist/prompts/selectMediaLibrary.js +34 -0
- package/dist/prompts/selectMediaLibrary.js.map +1 -0
- package/dist/server/devServer.js +53 -0
- package/dist/server/devServer.js.map +1 -0
- package/dist/server/gracefulServerDeath.js +12 -0
- package/dist/server/gracefulServerDeath.js.map +1 -0
- package/dist/server/previewServer.js +93 -0
- package/dist/server/previewServer.js.map +1 -0
- package/dist/server/serverDebug.js +4 -0
- package/dist/server/serverDebug.js.map +1 -0
- package/dist/server/vite/plugin-sanity-basepath-redirect.js +25 -0
- package/dist/server/vite/plugin-sanity-basepath-redirect.js.map +1 -0
- package/dist/server/vite/plugin-sanity-build-entries.js +65 -0
- package/dist/server/vite/plugin-sanity-build-entries.js.map +1 -0
- package/dist/server/vite/plugin-sanity-favicons.js +72 -0
- package/dist/server/vite/plugin-sanity-favicons.js.map +1 -0
- package/dist/server/vite/plugin-sanity-runtime-rewrite.js +18 -0
- package/dist/server/vite/plugin-sanity-runtime-rewrite.js.map +1 -0
- package/dist/services/auth.js +13 -0
- package/dist/services/auth.js.map +1 -0
- package/dist/services/backup.js +51 -0
- package/dist/services/backup.js.map +1 -0
- package/dist/services/cors.js +38 -0
- package/dist/services/cors.js.map +1 -0
- package/dist/services/datasetAliases.js +64 -0
- package/dist/services/datasetAliases.js.map +1 -0
- package/dist/services/datasets.js +153 -0
- package/dist/services/datasets.js.map +1 -0
- package/dist/services/docs.js +46 -0
- package/dist/services/docs.js.map +1 -0
- package/dist/services/documents.js +56 -0
- package/dist/services/documents.js.map +1 -0
- package/dist/services/getProjectFeatures.js +16 -0
- package/dist/services/getProjectFeatures.js.map +1 -0
- package/dist/services/getUrlHeaders.js +36 -0
- package/dist/services/getUrlHeaders.js.map +1 -0
- package/dist/services/graphql.js +96 -0
- package/dist/services/graphql.js.map +1 -0
- package/dist/services/hooks.js +59 -0
- package/dist/services/hooks.js.map +1 -0
- package/dist/services/mcp.js +50 -0
- package/dist/services/mcp.js.map +1 -0
- package/dist/services/mediaLibraries.js +74 -0
- package/dist/services/mediaLibraries.js.map +1 -0
- package/dist/services/organizations.js +42 -0
- package/dist/services/organizations.js.map +1 -0
- package/dist/services/plans.js +37 -0
- package/dist/services/plans.js.map +1 -0
- package/dist/services/projects.js +119 -0
- package/dist/services/projects.js.map +1 -0
- package/dist/services/schemas.js +40 -0
- package/dist/services/schemas.js.map +1 -0
- package/dist/services/telemetry.js +80 -0
- package/dist/services/telemetry.js.map +1 -0
- package/dist/services/tokens.js +72 -0
- package/dist/services/tokens.js.map +1 -0
- package/dist/services/user.js +35 -0
- package/dist/services/user.js.map +1 -0
- package/dist/services/userApplications.js +164 -0
- package/dist/services/userApplications.js.map +1 -0
- package/dist/studioDependencies.js +24 -0
- package/dist/studioDependencies.js.map +1 -0
- package/dist/telemetry/build.telemetry.js +13 -0
- package/dist/telemetry/build.telemetry.js.map +1 -0
- package/dist/telemetry/cli.telemetry.js +8 -0
- package/dist/telemetry/cli.telemetry.js.map +1 -0
- package/dist/telemetry/extractSchema.telemetry.js +8 -0
- package/dist/telemetry/extractSchema.telemetry.js.map +1 -0
- package/dist/telemetry/init.telemetry.js +8 -0
- package/dist/telemetry/init.telemetry.js.map +1 -0
- package/dist/telemetry/login.telemetry.js +8 -0
- package/dist/telemetry/login.telemetry.js.map +1 -0
- package/dist/telemetry/mcp.telemetry.js +8 -0
- package/dist/telemetry/mcp.telemetry.js.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/typings/deepSortObject.d.js +2 -0
- package/dist/typings/deepSortObject.d.js.map +1 -0
- package/dist/util/absolutify.js +26 -0
- package/dist/util/absolutify.js.map +1 -0
- package/dist/util/appId.js +58 -0
- package/dist/util/appId.js.map +1 -0
- package/dist/util/canLaunchBrowser.js +14 -0
- package/dist/util/canLaunchBrowser.js.map +1 -0
- package/dist/util/cliClient.js +41 -0
- package/dist/util/cliClient.js.map +1 -0
- package/dist/util/compareDependencyVersions.js +73 -0
- package/dist/util/compareDependencyVersions.js.map +1 -0
- package/dist/util/copy.js +37 -0
- package/dist/util/copy.js.map +1 -0
- package/dist/util/copyDir.js +63 -0
- package/dist/util/copyDir.js.map +1 -0
- package/dist/util/detectRuntime.js +20 -0
- package/dist/util/detectRuntime.js.map +1 -0
- package/dist/util/determineIsApp.js +9 -0
- package/dist/util/determineIsApp.js.map +1 -0
- package/dist/util/dirIsEmptyOrNonExistent.js +18 -0
- package/dist/util/dirIsEmptyOrNonExistent.js.map +1 -0
- package/dist/util/ensureTrailingSlash.js +12 -0
- package/dist/util/ensureTrailingSlash.js.map +1 -0
- package/dist/util/errorMessages.js +6 -0
- package/dist/util/errorMessages.js.map +1 -0
- package/dist/util/extractDocumentsFromNdjsonOrTarball.js +88 -0
- package/dist/util/extractDocumentsFromNdjsonOrTarball.js.map +1 -0
- package/dist/util/findNdjsonEntry.js +21 -0
- package/dist/util/findNdjsonEntry.js.map +1 -0
- package/dist/util/formatSize.js +10 -0
- package/dist/util/formatSize.js.map +1 -0
- package/dist/util/frameworkPort.js +61 -0
- package/dist/util/frameworkPort.js.map +1 -0
- package/dist/util/fsUtils.js +34 -0
- package/dist/util/fsUtils.js.map +1 -0
- package/dist/util/getCliVersion.js +28 -0
- package/dist/util/getCliVersion.js.map +1 -0
- package/dist/util/getErrorMessage.js +19 -0
- package/dist/util/getErrorMessage.js.map +1 -0
- package/dist/util/getLocalPackageVersion.js +32 -0
- package/dist/util/getLocalPackageVersion.js.map +1 -0
- package/dist/util/getProjectDefaults.js +77 -0
- package/dist/util/getProjectDefaults.js.map +1 -0
- package/dist/util/getSanityEnv.js +3 -0
- package/dist/util/getSanityEnv.js.map +1 -0
- package/dist/util/getSharedServerConfig.js +31 -0
- package/dist/util/getSharedServerConfig.js.map +1 -0
- package/dist/util/getWorkspace.js +18 -0
- package/dist/util/getWorkspace.js.map +1 -0
- package/dist/util/humanFileSize.js +12 -0
- package/dist/util/humanFileSize.js.map +1 -0
- package/dist/util/importStudioConfig.js +40 -0
- package/dist/util/importStudioConfig.js.map +1 -0
- package/dist/util/isPathDirName.js +6 -0
- package/dist/util/isPathDirName.js.map +1 -0
- package/dist/util/isSanityDocumentish.js +20 -0
- package/dist/util/isSanityDocumentish.js.map +1 -0
- package/dist/util/loadEnv.js +3 -0
- package/dist/util/loadEnv.js.map +1 -0
- package/dist/util/moduleFormatUtils.js +18 -0
- package/dist/util/moduleFormatUtils.js.map +1 -0
- package/dist/util/packageManager/installPackages.js +87 -0
- package/dist/util/packageManager/installPackages.js.map +1 -0
- package/dist/util/packageManager/packageManagerChoice.js +181 -0
- package/dist/util/packageManager/packageManagerChoice.js.map +1 -0
- package/dist/util/packageManager/upgradePackages.js +69 -0
- package/dist/util/packageManager/upgradePackages.js.map +1 -0
- package/dist/util/parseArguments.js +42 -0
- package/dist/util/parseArguments.js.map +1 -0
- package/dist/util/pluralize.js +11 -0
- package/dist/util/pluralize.js.map +1 -0
- package/dist/util/readModuleVersion.js +15 -0
- package/dist/util/readModuleVersion.js.map +1 -0
- package/dist/util/readPackageJson.js +44 -0
- package/dist/util/readPackageJson.js.map +1 -0
- package/dist/util/readPackageManifest.js +46 -0
- package/dist/util/readPackageManifest.js.map +1 -0
- package/dist/util/readdirRecursive.js +24 -0
- package/dist/util/readdirRecursive.js.map +1 -0
- package/dist/util/resolveLatestVersions.js +21 -0
- package/dist/util/resolveLatestVersions.js.map +1 -0
- package/dist/util/toInt.js +9 -0
- package/dist/util/toInt.js.map +1 -0
- package/dist/util/trimHashFromVersion.js +8 -0
- package/dist/util/trimHashFromVersion.js.map +1 -0
- package/dist/util/uniqBy.js +14 -0
- package/dist/util/uniqBy.js.map +1 -0
- package/dist/util/validation/validateDocumentsUtils.js +33 -0
- package/dist/util/validation/validateDocumentsUtils.js.map +1 -0
- package/dist/util/warnAboutMissingAppId.js +15 -0
- package/dist/util/warnAboutMissingAppId.js.map +1 -0
- package/dist/util/warnOnNonProductionEnvironment.js +18 -0
- package/dist/util/warnOnNonProductionEnvironment.js.map +1 -0
- package/dist/util/workerChannels.js +172 -0
- package/dist/util/workerChannels.js.map +1 -0
- package/oclif.config.js +21 -0
- package/oclif.manifest.json +4154 -0
- package/package.json +138 -98
- package/templates/app-quickstart/src/App.css +3 -1
- package/templates/app-quickstart/src/App.tsx +1 -1
- package/templates/app-sanity-ui/src/App.tsx +2 -2
- package/templates/app-sanity-ui/src/ExampleComponent.tsx +2 -1
- package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +3 -3
- package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +2 -2
- package/templates/shopify/components/hotspots/ProductTooltip.tsx +1 -1
- package/templates/shopify/components/icons/Shopify.tsx +0 -2
- package/templates/shopify/components/inputs/CollectionHidden.tsx +0 -1
- package/templates/shopify/components/media/ColorTheme.tsx +1 -1
- package/templates/shopify/constants.ts +4 -4
- package/templates/shopify/plugins/customDocumentActions/index.ts +2 -2
- package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +1 -1
- package/templates/shopify/schemaTypes/documents/collection.tsx +1 -2
- package/templates/shopify/schemaTypes/documents/page.ts +1 -1
- package/templates/shopify/schemaTypes/documents/product.tsx +1 -1
- package/templates/shopify/schemaTypes/documents/productVariant.tsx +2 -3
- package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +0 -1
- package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +1 -3
- package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +0 -1
- package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +2 -3
- package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +1 -1
- package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +1 -2
- package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +1 -2
- package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +7 -7
- package/templates/shopify/schemaTypes/singletons/homeType.ts +8 -8
- package/templates/shopify/structure/collectionStructure.ts +4 -1
- package/templates/shopify/structure/colorThemeStructure.ts +1 -1
- package/templates/shopify/structure/homeStructure.ts +2 -2
- package/templates/shopify/structure/index.ts +1 -1
- package/templates/shopify/structure/pageStructure.ts +2 -2
- package/templates/shopify/structure/productStructure.ts +7 -7
- package/templates/shopify/structure/settingStructure.ts +1 -1
- package/templates/shopify/utils/defineStructure.ts +1 -1
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +1 -1
- package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +1 -1
- package/templates/shopify-online-storefront/structure/collectionStructure.ts +4 -1
- package/templates/shopify-online-storefront/structure/productStructure.ts +4 -4
- package/templates/shopify-online-storefront/utils/defineStructure.ts +1 -1
- package/bin/dev.js +0 -30
- package/bin/sanity +0 -14
- package/lib/_chunks-cjs/cli.js +0 -70870
- package/lib/_chunks-cjs/cli.js.map +0 -1
- package/lib/_chunks-cjs/cliWorker.js +0 -19
- package/lib/_chunks-cjs/cliWorker.js.map +0 -1
- package/lib/_chunks-cjs/generateAction.js +0 -128
- package/lib/_chunks-cjs/generateAction.js.map +0 -1
- package/lib/_chunks-cjs/getCliConfig.js +0 -89
- package/lib/_chunks-cjs/getCliConfig.js.map +0 -1
- package/lib/_chunks-cjs/index.js +0 -31
- package/lib/_chunks-cjs/index.js.map +0 -1
- package/lib/_chunks-cjs/journeyConfig.js +0 -113
- package/lib/_chunks-cjs/journeyConfig.js.map +0 -1
- package/lib/_chunks-cjs/loadEnv.js +0 -347
- package/lib/_chunks-cjs/loadEnv.js.map +0 -1
- package/lib/_chunks-dts/types.d.ts +0 -432
- package/lib/cli.d.ts +0 -7
- package/lib/cli.js +0 -10
- package/lib/cli.js.map +0 -1
- package/lib/index.d.ts +0 -44
- package/lib/index.js +0 -46
- package/lib/index.js.map +0 -1
- package/lib/run.d.ts +0 -1
- package/lib/run.js +0 -8
- package/lib/run.js.map +0 -1
- package/lib/workers/getAndWriteJourneySchema.d.ts +0 -1
- package/lib/workers/getAndWriteJourneySchema.js +0 -4
- package/lib/workers/getAndWriteJourneySchema.js.map +0 -1
- package/lib/workers/getCliConfig.d.ts +0 -1
- package/lib/workers/getCliConfig.js +0 -10
- package/lib/workers/getCliConfig.js.map +0 -1
- package/lib/workers/typegenGenerate.d.ts +0 -18
- package/lib/workers/typegenGenerate.js +0 -47
- package/lib/workers/typegenGenerate.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/graphql/extractFromSanitySchema.ts"],"sourcesContent":["/* eslint-disable unicorn/consistent-function-scoping */\nimport {generateHelpUrl} from '@sanity/generate-help-url'\nimport {Schema} from '@sanity/schema'\nimport {\n type ArraySchemaType,\n type Schema as CompiledSchema,\n type CrossDatasetReferenceSchemaType,\n type IntrinsicTypeName,\n isDeprecationConfiguration,\n type ObjectField,\n type ObjectFieldType,\n type ObjectSchemaType,\n type ReferenceSchemaType,\n type SchemaType,\n} from '@sanity/types'\nimport {startCase, uniqBy} from 'lodash-es'\nimport {oneline} from 'oneline'\n\nimport {SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE} from './helpUrls.js'\nimport {SchemaError} from './SchemaError.js'\nimport {\n type ApiSpecification,\n type ConvertedFieldDefinition,\n type ConvertedInterface,\n type ConvertedType,\n type ConvertedUnion,\n type Deprecation,\n internal,\n} from './types.js'\n\nconst skipTypes = new Set(['document', 'reference'])\nconst allowedJsonTypes = new Set(['array', 'object'])\nconst disallowedCustomizedMembers = new Set(['array', 'block', 'file', 'image', 'object'])\nconst disabledBlockFields = new Set(['markDefs'])\nconst scalars = new Set(['boolean', 'number', 'string'])\n\nfunction getBaseType(baseSchema: CompiledSchema, typeName: IntrinsicTypeName): SchemaType {\n if (typeName === 'crossDatasetReference') {\n return Schema.compile({\n parent: baseSchema,\n types: [\n {\n name: `__placeholder__`,\n // Just needs _something_ to refer to, doesn't matter what\n to: [{type: 'sanity.imageAsset'}],\n type: 'crossDatasetReference',\n },\n ],\n }).get('__placeholder__')\n }\n if (typeName === 'globalDocumentReference') {\n return Schema.compile({\n parent: baseSchema,\n types: [\n {\n name: `__placeholder__`,\n // Just needs _something_ to refer to, doesn't matter what\n to: [{type: 'sanity.imageAsset'}],\n type: 'globalDocumentReference',\n },\n ],\n }).get('__placeholder__')\n }\n\n return Schema.compile({\n parent: baseSchema,\n types: [{name: `__placeholder__`, options: {hotspot: true}, type: typeName}],\n }).get('__placeholder__')\n}\n\nfunction getTypeName(str: string): string {\n const name = startCase(str).replaceAll(/\\s+/g, '')\n return name === 'Number' ? 'Float' : name\n}\n\nfunction isBaseType(type: SchemaType): boolean {\n return (\n type.name !== type.jsonType &&\n allowedJsonTypes.has(type.jsonType) &&\n !skipTypes.has(type.name) &&\n !isReference(type)\n )\n}\n\nfunction isBlockType(typeDef: ObjectField | SchemaType): boolean {\n if (typeDef.name === 'block') {\n return true\n }\n\n if (typeDef.type) {\n return isBlockType(typeDef.type)\n }\n\n return false\n}\n\nfunction hasBlockParent(typeDef: SchemaType): boolean {\n if (typeDef.type && typeDef.type.name === 'block' && !typeDef.type.type) {\n return true\n }\n\n return Boolean(typeDef.type && hasBlockParent(typeDef.type))\n}\n\nfunction isArrayOfBlocks(typeDef: ObjectField | SchemaType): boolean {\n const type = typeDef.type || typeDef\n if (!('jsonType' in type) || type.jsonType !== 'array') {\n return false\n }\n\n return (type.of || []).some((item) => hasBlockParent(item))\n}\n\nfunction isType(typeDef: ObjectField | ObjectFieldType | SchemaType, typeName: string): boolean {\n let type: ObjectField | ObjectFieldType | SchemaType | undefined = typeDef\n while (type) {\n if (type.name === typeName || (type.type && type.type.name === typeName)) {\n return true\n }\n\n type = type.type\n }\n return false\n}\n\nfunction isReference(\n typeDef: ObjectField | ObjectFieldType | SchemaType,\n): typeDef is ReferenceSchemaType {\n return isType(typeDef, 'reference')\n}\n\nfunction isCrossDatasetReference(\n typeDef: CrossDatasetReferenceSchemaType | ObjectField | ObjectFieldType | SchemaType,\n) {\n return isType(typeDef, 'crossDatasetReference')\n}\n\nfunction getCrossDatasetReferenceMetadata(\n typeDef: CrossDatasetReferenceSchemaType | ObjectField | ObjectFieldType | SchemaType,\n) {\n if (!isCrossDatasetReference(typeDef)) return\n\n function getTypeNames(\n type: CrossDatasetReferenceSchemaType | ObjectField | ObjectFieldType | SchemaType | undefined,\n ) {\n if (!type) return\n if (!('to' in type)) return getTypeNames(type.type)\n return type.to.map((t) => t.type).filter((t): t is string => typeof t === 'string')\n }\n\n function getDataset(\n type: CrossDatasetReferenceSchemaType | ObjectField | ObjectFieldType | SchemaType | undefined,\n ) {\n if (!type) return\n if ('dataset' in type && typeof type.dataset === 'string') return type.dataset\n if (type.type) return getDataset(type.type)\n }\n\n const typeNames = getTypeNames(typeDef)\n if (!typeNames) return\n\n const dataset = getDataset(typeDef)\n if (typeof dataset !== 'string') return\n\n return {dataset, typeNames}\n}\n\nexport function extractFromSanitySchema(\n sanitySchema: CompiledSchema,\n extractOptions: {nonNullDocumentFields?: boolean; withUnionCache?: boolean} = {},\n): ApiSpecification {\n const {nonNullDocumentFields, withUnionCache} = extractOptions\n const unionRecursionGuards = new Set<string>()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const unionDefinitionCache = new Map<string, any>()\n const hasErrors =\n sanitySchema._validation &&\n sanitySchema._validation.some((group) =>\n group.problems.some((problem) => problem.severity === 'error'),\n )\n\n if (hasErrors && Array.isArray(sanitySchema._validation)) {\n throw new SchemaError(sanitySchema._validation)\n }\n\n const sanityTypes = sanitySchema._original?.types || []\n const typeNames = sanitySchema.getTypeNames()\n const unionTypes: ConvertedUnion[] = []\n const types: ConvertedType[] = []\n\n for (const typeName of typeNames) {\n const schemaType = sanitySchema.get(typeName)\n if (schemaType === undefined) {\n continue\n }\n if (!isBaseType(schemaType)) {\n continue\n }\n\n const convertedType = convertType(schemaType)\n types.push(convertedType)\n }\n\n const withUnions = [...types, ...unionTypes]\n return {interfaces: [getDocumentInterfaceDefinition()], types: withUnions}\n\n function isTopLevelType(typeName: string): boolean {\n return typeNames.includes(typeName)\n }\n\n function mapFieldType(field: ObjectField | ObjectFieldType | SchemaType): string {\n if (!field.type) {\n throw new Error('Field has no type!')\n }\n\n const jsonType = 'jsonType' in field ? field.jsonType : ''\n const isScalar = scalars.has(jsonType)\n if (isScalar && jsonType === 'number') {\n return hasValidationFlag(field, 'integer') ? 'Int' : 'Float'\n } else if (isScalar) {\n return getTypeName(jsonType)\n }\n\n const type = field.type.type || field.type\n\n // In the case of nested scalars, recurse (markdown -> longText -> text -> string)\n if (type.type) {\n return mapFieldType(type)\n }\n\n switch (type.name) {\n case 'number': {\n return hasValidationFlag(field, 'integer') ? 'Int' : 'Float'\n }\n default: {\n return getTypeName(type.name)\n }\n }\n }\n\n function isArrayType(type: ObjectField | SchemaType): type is ArraySchemaType {\n return Boolean(\n ('jsonType' in type && type.jsonType === 'array') ||\n (type.type && type.type.jsonType === 'array'),\n )\n }\n\n function _convertType(\n type: ObjectField | SchemaType,\n parent: string,\n options: {isField?: boolean},\n ): ConvertedType {\n let name: string | undefined\n if (type.type) {\n name = type.type.name\n } else if ('jsonType' in type) {\n name = type.jsonType\n }\n\n if (isReference(type)) {\n return getReferenceDefinition(type)\n }\n\n if (isArrayType(type)) {\n return getArrayDefinition(type, parent, options)\n }\n\n if (name === 'document') {\n return getDocumentDefinition(type as ObjectSchemaType)\n }\n\n if (name === 'block' || name === 'object') {\n return getObjectDefinition(type, parent)\n }\n\n if (hasFields(type)) {\n return getObjectDefinition(type, parent)\n }\n\n return {\n description: getDescription(type),\n type: mapFieldType(type),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any\n }\n\n function convertType(\n type: ObjectField | SchemaType,\n parent?: string,\n props: Partial<Deprecation> & {fieldName?: string} = {},\n ): ConvertedType {\n const mapped = _convertType(type, parent || '', {isField: Boolean(props.fieldName)})\n const gqlName = props.fieldName || mapped.name\n const originalName = type.name\n const original = gqlName === originalName ? {} : {originalName: originalName}\n const crossDatasetReferenceMetadata = getCrossDatasetReferenceMetadata(type)\n\n return {\n ...getDeprecation(type.type),\n ...props,\n ...mapped,\n ...original,\n ...(crossDatasetReferenceMetadata && {crossDatasetReferenceMetadata}),\n }\n }\n\n function isField(def: ObjectField | SchemaType): def is ObjectField {\n return !('jsonType' in def) || !def.jsonType\n }\n\n function getObjectDefinition(def: ObjectField | SchemaType, parent?: string): ConvertedType {\n const isInline = isField(def)\n const isDocument = def.type ? def.type.name === 'document' : false\n const actualType = isInline ? def.type : def\n\n if (typeNeedsHoisting(actualType)) {\n throw createLiftTypeError(def.name, parent || '', actualType.name)\n }\n\n if (isInline && parent && def.type.name === 'object') {\n throw createLiftTypeError(def.name, parent)\n }\n\n if (parent && def.type && isTopLevelType(def.type.name)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return {type: getTypeName(def.type.name)} as any\n }\n\n const name = `${parent || ''}${getTypeName(def.name)}`\n const fields = collectFields(def)\n const firstUnprefixed = Math.max(\n 0,\n fields.findIndex((field) => field.name[0] !== '_'),\n )\n\n const keyField = createStringField('_key')\n\n fields.splice(firstUnprefixed, 0, keyField)\n\n if (!isDocument) {\n fields.splice(firstUnprefixed + 1, 0, createStringField('_type'))\n }\n\n const objectIsBlock = isBlockType(def)\n const objectFields = objectIsBlock\n ? fields.filter((field) => !disabledBlockFields.has(field.name))\n : fields\n\n return {\n description: getDescription(def),\n fields: objectFields.map((field) =>\n isArrayOfBlocks(field)\n ? buildRawField(field, name)\n : (convertType(field, name, {\n fieldName: field.name,\n ...getDeprecation(def),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any),\n ),\n [internal]: {\n ...getDeprecation(def),\n },\n kind: 'Type',\n name,\n type: 'Object',\n }\n }\n\n function buildRawField(field: ObjectField, parentName: string) {\n return {\n ...convertType(field, parentName, {fieldName: `${field.name}Raw`}),\n isRawAlias: true,\n type: 'JSON',\n }\n }\n\n function createStringField(name: string): ObjectField {\n return {\n name,\n type: {\n jsonType: 'string',\n name: 'string',\n type: {jsonType: 'string', name: 'string', type: undefined},\n },\n }\n }\n\n function collectFields(def: ObjectField | SchemaType) {\n const fields = gatherAllFields(def)\n if (fields.length > 0) {\n return fields\n }\n\n const extended = getBaseType(sanitySchema, def.name as IntrinsicTypeName)\n return gatherAllFields(extended)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function getReferenceDefinition(def: SchemaType): any {\n const base = {description: getDescription(def), isReference: true}\n const candidates = arrayify(gatherAllReferenceCandidates(def))\n if (candidates.length === 0) {\n throw new Error('No candidates for reference')\n }\n\n if (candidates.length === 1) {\n return {type: getTypeName(candidates[0].type.name), ...base}\n }\n\n const allTypeNames = candidates.map((c) => getTypeName(c.type.name))\n const targetTypes = [...new Set(allTypeNames)].toSorted()\n const name = targetTypes.join('Or')\n\n // Register the union type if we haven't seen it before\n if (!unionTypes.some((item) => item.name === name)) {\n unionTypes.push({\n kind: 'Union',\n name,\n types: targetTypes,\n })\n }\n\n return {\n type: name,\n ...base,\n }\n }\n\n function getArrayDefinition(\n def: ArraySchemaType,\n parent: string,\n options: {isField?: boolean} = {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): any {\n const base = {description: getDescription(def), kind: 'List'}\n const name = !options.isField && def.name ? {name: getTypeName(def.name)} : {}\n const candidates = def.type?.type && 'of' in def.type ? arrayify(def.type.of) : def.of\n\n return candidates.length === 1\n ? {\n children: getArrayChildDefinition(candidates[0], def),\n ...base,\n ...name,\n }\n : {\n children: getUnionDefinition(candidates, def, {grandParent: parent}),\n ...base,\n ...name,\n }\n }\n\n function getArrayChildDefinition(child: SchemaType, arrayDef: SchemaType) {\n if (typeNeedsHoisting(child)) {\n // Seems to be inline? Should be hoisted?\n throw createLiftTypeError(child.name, arrayDef.name)\n }\n\n if (isReference(child)) {\n return getReferenceDefinition(child)\n }\n\n // In the case of nested scalars, recurse (markdown -> longText -> text -> string)\n if (scalars.has(child.jsonType) && !scalars.has(child.name)) {\n return {type: mapFieldType(child)}\n }\n\n return {type: getTypeName(child.name)}\n }\n\n function typeNeedsHoisting(type: SchemaType & {isCustomized?: boolean}): boolean {\n if (type.name === 'object') {\n return true\n }\n\n if (type.jsonType === 'object' && !isTopLevelType(type.name)) {\n return true\n }\n\n if (type.isCustomized && !isTopLevelType(type.name)) {\n return true\n }\n\n if (type.isCustomized && disallowedCustomizedMembers.has(type.name)) {\n return true\n }\n\n return false\n }\n\n function getUnionDefinition(\n candidates: ObjectSchemaType[],\n parent: SchemaType,\n options: {grandParent?: string} = {},\n ) {\n if (candidates.length < 2) {\n throw new Error('Not enough candidates for a union type')\n }\n\n // #1482: When creating union definition do not get caught in recursion loop\n // for types that reference themselves\n const guardPathName = `${typeof parent === 'object' ? parent.name : parent}`\n if (unionRecursionGuards.has(guardPathName)) {\n return {}\n }\n\n const unionCacheKey = `${options.grandParent}-${guardPathName}-${candidates\n .map((c) => c.type?.name)\n .join('-')}`\n if (withUnionCache && unionDefinitionCache.has(unionCacheKey)) {\n return unionDefinitionCache.get(unionCacheKey)\n }\n\n try {\n unionRecursionGuards.add(guardPathName)\n\n for (const [i, def] of candidates.entries()) {\n if (typeNeedsHoisting(def)) {\n throw createLiftTypeArrayError(\n i,\n parent.name,\n def.type ? def.type.name : def.name,\n options.grandParent,\n )\n }\n }\n\n const converted = candidates.map((def) => convertType(def))\n\n const getName = (def: {type: string | {name: string}}): string =>\n typeof def.type === 'string' ? def.type : def.type.name\n\n // We might end up with union types being returned - these needs to be flattened\n // so that an ImageOr(PersonOrPet) becomes ImageOrPersonOrPet\n // eslint-disable-next-line unicorn/no-array-reduce\n const flattened = converted.reduce(\n (acc, candidate) => {\n const union = unionTypes.find((item) => item.name === candidate.type)\n return union\n ? // eslint-disable-next-line unicorn/prefer-spread\n acc.concat(union.types.map((type) => ({isReference: candidate.isReference, type})))\n : [...acc, candidate]\n },\n [] as {isReference?: boolean; name?: string; type: string | {name: string}}[],\n )\n\n let allCandidatesAreDocuments = true\n const refs: (string | {name: string})[] = []\n const inlineObjs: string[] = []\n const allTypeNames: string[] = []\n for (const def of flattened) {\n if (def.isReference) {\n refs.push(def.type)\n }\n if (!isReference) {\n inlineObjs.push(def.name || '')\n }\n\n const typeName = typeof def.type === 'string' ? def.type : def.type.name\n\n // Here we remove duplicates, as they might appear twice due to in-line usage of types as well as references\n if (def.name || def.type) {\n allTypeNames.push(def.isReference ? typeName : def.name || '')\n }\n\n const typeDef = sanityTypes.find((type) => type.name === getName(def))\n if (!typeDef || typeDef.type !== 'document') {\n allCandidatesAreDocuments = false\n }\n }\n\n const interfaces = allCandidatesAreDocuments ? ['Document'] : undefined\n const possibleTypes = [...new Set(allTypeNames)].toSorted()\n\n if (possibleTypes.length < 2) {\n throw new Error(`Not enough types for a union type. Parent: ${parent.name}`)\n }\n\n const name = possibleTypes.join('Or')\n\n if (!unionTypes.some((item) => item.name === name)) {\n unionTypes.push({\n interfaces,\n kind: 'Union',\n name,\n types: possibleTypes,\n })\n }\n\n const references = refs.length > 0 ? refs : undefined\n const inlineObjects = inlineObjs.length > 0 ? inlineObjs : undefined\n\n const unionDefinition = isReference(parent)\n ? {references, type: name}\n : {inlineObjects, references, type: name}\n\n unionDefinitionCache.set(unionCacheKey, unionDefinition)\n return unionDefinition\n } finally {\n unionRecursionGuards.delete(guardPathName)\n }\n }\n\n function getDocumentDefinition(def: ObjectSchemaType) {\n const objectDef = getObjectDefinition(def)\n const fields = [...getDocumentInterfaceFields(def), ...objectDef.fields]\n\n return {...objectDef, fields, interfaces: ['Document']}\n }\n\n function getDocumentInterfaceDefinition(): ConvertedInterface {\n return {\n description: 'A Sanity document',\n fields: getDocumentInterfaceFields(),\n kind: 'Interface',\n name: 'Document',\n }\n }\n\n function getDocumentInterfaceFields(type?: ObjectSchemaType): ConvertedFieldDefinition[] {\n const isNullable = typeof nonNullDocumentFields === 'boolean' ? !nonNullDocumentFields : true\n return [\n {\n description: 'Document ID',\n fieldName: '_id',\n isNullable,\n type: 'ID',\n ...getDeprecation(type),\n },\n {\n description: 'Document type',\n fieldName: '_type',\n isNullable,\n type: 'String',\n ...getDeprecation(type),\n },\n {\n description: 'Date the document was created',\n fieldName: '_createdAt',\n isNullable,\n type: 'Datetime',\n ...getDeprecation(type),\n },\n {\n description: 'Date the document was last modified',\n fieldName: '_updatedAt',\n isNullable,\n type: 'Datetime',\n ...getDeprecation(type),\n },\n {\n description: 'Current document revision',\n fieldName: '_rev',\n isNullable,\n type: 'String',\n ...getDeprecation(type),\n },\n ]\n }\n\n function arrayify(thing: unknown) {\n if (Array.isArray(thing)) {\n return thing\n }\n\n return thing === null || thing === undefined ? [] : [thing]\n }\n\n function hasValidationFlag(\n field: ObjectField | ObjectFieldType | SchemaType,\n flag: string,\n ): boolean {\n return (\n 'validation' in field &&\n Array.isArray(field.validation) &&\n field.validation.some(\n (rule) => rule && '_rules' in rule && rule._rules.some((item) => item.flag === flag),\n )\n )\n }\n\n function getDescription(type: ObjectField | SchemaType): string | undefined {\n const description = type.type && type.type.description\n return typeof description === 'string' ? description : undefined\n }\n\n function gatherAllReferenceCandidates(type: SchemaType): ObjectSchemaType[] {\n const allFields = gatherReferenceCandidates(type)\n return uniqBy(allFields, 'name')\n }\n\n function gatherReferenceCandidates(type: SchemaType): ObjectSchemaType[] {\n const refTo = 'to' in type ? type.to : []\n return 'type' in type && type.type ? [...gatherReferenceCandidates(type.type), ...refTo] : refTo\n }\n\n function gatherAllFields(type: ObjectField | SchemaType) {\n const allFields = gatherFields(type)\n return uniqBy(allFields, 'name')\n }\n\n function gatherFields(type: ObjectField | SchemaType): ObjectField[] {\n if ('fields' in type) {\n return type.type ? [...gatherFields(type.type), ...type.fields] : type.fields\n }\n\n return []\n }\n\n function hasFieldsLikeShape(type: unknown): type is {fields: unknown} {\n return typeof type === 'object' && type !== null && 'fields' in type\n }\n\n function hasArrayOfFields(type: unknown): type is {fields: ObjectField[]} {\n return hasFieldsLikeShape(type) && Array.isArray(type.fields)\n }\n\n function hasFields(type: ObjectField | SchemaType): boolean {\n if (hasArrayOfFields(type)) {\n return gatherAllFields(type).length > 0\n }\n\n return 'type' in type && type.type ? hasFields(type.type) : false\n }\n}\n\nfunction createLiftTypeArrayError(\n index: number,\n parent: string,\n inlineType = 'object',\n grandParent = '',\n) {\n const helpUrl = generateHelpUrl(SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE)\n const context = [grandParent, parent].filter(Boolean).join('/')\n return new HelpfulError(\n oneline`\n Encountered anonymous inline ${inlineType} at index ${index} for type/field ${context}.\n To use this type with GraphQL you will need to create a top-level schema type for it.\n See ${helpUrl}`,\n helpUrl,\n )\n}\n\nfunction createLiftTypeError(typeName: string, parent: string, inlineType = 'object') {\n const helpUrl = generateHelpUrl(SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE)\n return new HelpfulError(\n oneline`\n Encountered anonymous inline ${inlineType} \"${typeName}\" for field/type \"${parent}\".\n To use this field with GraphQL you will need to create a top-level schema type for it.\n See ${helpUrl}`,\n helpUrl,\n )\n}\n\nclass HelpfulError extends Error {\n helpUrl?: string\n\n constructor(message: string, helpUrl?: string) {\n super(message)\n this.name = 'HelpfulError'\n this.helpUrl = helpUrl\n }\n}\n\nfunction getDeprecation(type?: ObjectField | ObjectFieldType | SchemaType): Partial<Deprecation> {\n return isDeprecationConfiguration(type)\n ? {\n deprecationReason: type.deprecated.reason,\n }\n : {}\n}\n"],"names":["generateHelpUrl","Schema","isDeprecationConfiguration","startCase","uniqBy","oneline","SCHEMA_LIFT_ANONYMOUS_OBJECT_TYPE","SchemaError","internal","skipTypes","Set","allowedJsonTypes","disallowedCustomizedMembers","disabledBlockFields","scalars","getBaseType","baseSchema","typeName","compile","parent","types","name","to","type","get","options","hotspot","getTypeName","str","replaceAll","isBaseType","jsonType","has","isReference","isBlockType","typeDef","hasBlockParent","Boolean","isArrayOfBlocks","of","some","item","isType","isCrossDatasetReference","getCrossDatasetReferenceMetadata","getTypeNames","map","t","filter","getDataset","dataset","typeNames","extractFromSanitySchema","sanitySchema","extractOptions","nonNullDocumentFields","withUnionCache","unionRecursionGuards","unionDefinitionCache","Map","hasErrors","_validation","group","problems","problem","severity","Array","isArray","sanityTypes","_original","unionTypes","schemaType","undefined","convertedType","convertType","push","withUnions","interfaces","getDocumentInterfaceDefinition","isTopLevelType","includes","mapFieldType","field","Error","isScalar","hasValidationFlag","isArrayType","_convertType","getReferenceDefinition","getArrayDefinition","getDocumentDefinition","getObjectDefinition","hasFields","description","getDescription","props","mapped","isField","fieldName","gqlName","originalName","original","crossDatasetReferenceMetadata","getDeprecation","def","isInline","isDocument","actualType","typeNeedsHoisting","createLiftTypeError","fields","collectFields","firstUnprefixed","Math","max","findIndex","keyField","createStringField","splice","objectIsBlock","objectFields","buildRawField","kind","parentName","isRawAlias","gatherAllFields","length","extended","base","candidates","arrayify","gatherAllReferenceCandidates","allTypeNames","c","targetTypes","toSorted","join","children","getArrayChildDefinition","getUnionDefinition","grandParent","child","arrayDef","isCustomized","guardPathName","unionCacheKey","add","i","entries","createLiftTypeArrayError","converted","getName","flattened","reduce","acc","candidate","union","find","concat","allCandidatesAreDocuments","refs","inlineObjs","possibleTypes","references","inlineObjects","unionDefinition","set","delete","objectDef","getDocumentInterfaceFields","isNullable","thing","flag","validation","rule","_rules","allFields","gatherReferenceCandidates","refTo","gatherFields","hasFieldsLikeShape","hasArrayOfFields","index","inlineType","helpUrl","context","HelpfulError","message","deprecationReason","deprecated","reason"],"mappings":"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"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { flatten } from 'lodash-es';
|
|
2
|
+
import { isNonUnion } from '../helpers.js';
|
|
3
|
+
const filterCreators = {
|
|
4
|
+
Boolean: createBooleanFilters,
|
|
5
|
+
Date: createDateFilters,
|
|
6
|
+
Datetime: createDateFilters,
|
|
7
|
+
Float: createNumberFilters,
|
|
8
|
+
ID: createIdFilters,
|
|
9
|
+
Integer: createNumberFilters,
|
|
10
|
+
Object: createObjectFilters,
|
|
11
|
+
String: createStringFilters,
|
|
12
|
+
Url: createStringFilters
|
|
13
|
+
};
|
|
14
|
+
export function generateTypeFilters(types) {
|
|
15
|
+
const queryable = types.filter((type)=>isNonUnion(type)).filter((type)=>type.type === 'Object' && type.interfaces && type.interfaces.includes('Document'));
|
|
16
|
+
return queryable.map((type)=>{
|
|
17
|
+
const name = `${type.name}Filter`;
|
|
18
|
+
const fields = flatten(type.fields.map((field)=>createFieldFilters(field))).filter(Boolean);
|
|
19
|
+
return {
|
|
20
|
+
fields: [
|
|
21
|
+
...fields,
|
|
22
|
+
...getDocumentFilters()
|
|
23
|
+
],
|
|
24
|
+
kind: 'InputObject',
|
|
25
|
+
name
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function createFieldFilters(field) {
|
|
30
|
+
if (filterCreators[field.type]) {
|
|
31
|
+
return filterCreators[field.type](field);
|
|
32
|
+
}
|
|
33
|
+
if (field.kind === 'List') {
|
|
34
|
+
return createListFilters();
|
|
35
|
+
}
|
|
36
|
+
if (field.isReference) {
|
|
37
|
+
return createReferenceFilters(field);
|
|
38
|
+
}
|
|
39
|
+
return createInlineTypeFilters();
|
|
40
|
+
}
|
|
41
|
+
function getFieldName(field, modifier = '') {
|
|
42
|
+
const suffix = modifier ? `_${modifier}` : '';
|
|
43
|
+
return `${field.fieldName}${suffix}`;
|
|
44
|
+
}
|
|
45
|
+
function getDocumentFilters() {
|
|
46
|
+
return [
|
|
47
|
+
{
|
|
48
|
+
constraint: {
|
|
49
|
+
comparator: 'REFERENCES'
|
|
50
|
+
},
|
|
51
|
+
description: 'All documents references the given document ID',
|
|
52
|
+
fieldName: 'references',
|
|
53
|
+
type: 'ID'
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
constraint: {
|
|
57
|
+
comparator: 'IS_DRAFT',
|
|
58
|
+
field: '_id'
|
|
59
|
+
},
|
|
60
|
+
description: 'All documents that are drafts',
|
|
61
|
+
fieldName: 'is_draft',
|
|
62
|
+
type: 'Boolean'
|
|
63
|
+
}
|
|
64
|
+
];
|
|
65
|
+
}
|
|
66
|
+
function createIsDefinedFilter(field) {
|
|
67
|
+
return {
|
|
68
|
+
constraint: {
|
|
69
|
+
comparator: 'IS_DEFINED',
|
|
70
|
+
field: field.fieldName
|
|
71
|
+
},
|
|
72
|
+
description: 'All documents that have a value for this field',
|
|
73
|
+
fieldName: getFieldName(field, 'is_defined'),
|
|
74
|
+
type: 'Boolean'
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function createEqualityFilter(field) {
|
|
78
|
+
return {
|
|
79
|
+
constraint: {
|
|
80
|
+
comparator: 'EQUALS',
|
|
81
|
+
field: field.fieldName
|
|
82
|
+
},
|
|
83
|
+
description: 'All documents that are equal to given value',
|
|
84
|
+
fieldName: getFieldName(field),
|
|
85
|
+
type: field.type
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
function createInequalityFilter(field) {
|
|
89
|
+
return {
|
|
90
|
+
constraint: {
|
|
91
|
+
comparator: 'NOT_EQUALS',
|
|
92
|
+
field: field.fieldName
|
|
93
|
+
},
|
|
94
|
+
description: 'All documents that are not equal to given value',
|
|
95
|
+
fieldName: getFieldName(field, 'not'),
|
|
96
|
+
type: field.type
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function createDefaultFilters(field) {
|
|
100
|
+
return [
|
|
101
|
+
createEqualityFilter(field),
|
|
102
|
+
createInequalityFilter(field),
|
|
103
|
+
createIsDefinedFilter(field)
|
|
104
|
+
];
|
|
105
|
+
}
|
|
106
|
+
function createGtLtFilters(field) {
|
|
107
|
+
return [
|
|
108
|
+
{
|
|
109
|
+
constraint: {
|
|
110
|
+
comparator: 'LT',
|
|
111
|
+
field: field.fieldName
|
|
112
|
+
},
|
|
113
|
+
description: 'All documents are less than given value',
|
|
114
|
+
fieldName: getFieldName(field, 'lt'),
|
|
115
|
+
type: field.type
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
constraint: {
|
|
119
|
+
comparator: 'LTE',
|
|
120
|
+
field: field.fieldName
|
|
121
|
+
},
|
|
122
|
+
description: 'All documents are less than or equal to given value',
|
|
123
|
+
fieldName: getFieldName(field, 'lte'),
|
|
124
|
+
type: field.type
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
constraint: {
|
|
128
|
+
comparator: 'GT',
|
|
129
|
+
field: field.fieldName
|
|
130
|
+
},
|
|
131
|
+
description: 'All documents are greater than given value',
|
|
132
|
+
fieldName: getFieldName(field, 'gt'),
|
|
133
|
+
type: field.type
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
constraint: {
|
|
137
|
+
comparator: 'GTE',
|
|
138
|
+
field: field.fieldName
|
|
139
|
+
},
|
|
140
|
+
description: 'All documents are greater than or equal to given value',
|
|
141
|
+
fieldName: getFieldName(field, 'gte'),
|
|
142
|
+
type: field.type
|
|
143
|
+
}
|
|
144
|
+
];
|
|
145
|
+
}
|
|
146
|
+
function createBooleanFilters(field) {
|
|
147
|
+
return createDefaultFilters(field);
|
|
148
|
+
}
|
|
149
|
+
function createIdFilters(field) {
|
|
150
|
+
return createStringFilters(field);
|
|
151
|
+
}
|
|
152
|
+
function createDateFilters(field) {
|
|
153
|
+
return [
|
|
154
|
+
...createDefaultFilters(field),
|
|
155
|
+
...createGtLtFilters(field)
|
|
156
|
+
];
|
|
157
|
+
}
|
|
158
|
+
function createStringFilters(field) {
|
|
159
|
+
return [
|
|
160
|
+
...createDefaultFilters(field),
|
|
161
|
+
{
|
|
162
|
+
constraint: {
|
|
163
|
+
comparator: 'MATCHES',
|
|
164
|
+
field: field.fieldName
|
|
165
|
+
},
|
|
166
|
+
description: 'All documents contain (match) the given word/words',
|
|
167
|
+
fieldName: getFieldName(field, 'matches'),
|
|
168
|
+
type: 'String'
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
children: {
|
|
172
|
+
isNullable: false,
|
|
173
|
+
type: 'String'
|
|
174
|
+
},
|
|
175
|
+
constraint: {
|
|
176
|
+
comparator: 'IN',
|
|
177
|
+
field: field.fieldName
|
|
178
|
+
},
|
|
179
|
+
description: 'All documents match one of the given values',
|
|
180
|
+
fieldName: getFieldName(field, 'in'),
|
|
181
|
+
kind: 'List'
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
children: {
|
|
185
|
+
isNullable: false,
|
|
186
|
+
type: 'String'
|
|
187
|
+
},
|
|
188
|
+
constraint: {
|
|
189
|
+
comparator: 'NOT_IN',
|
|
190
|
+
field: field.fieldName
|
|
191
|
+
},
|
|
192
|
+
description: 'None of the values match any of the given values',
|
|
193
|
+
fieldName: getFieldName(field, 'not_in'),
|
|
194
|
+
kind: 'List'
|
|
195
|
+
}
|
|
196
|
+
];
|
|
197
|
+
}
|
|
198
|
+
function createNumberFilters(field) {
|
|
199
|
+
return [
|
|
200
|
+
...createDefaultFilters(field),
|
|
201
|
+
...createGtLtFilters(field)
|
|
202
|
+
];
|
|
203
|
+
}
|
|
204
|
+
function createObjectFilters(_field) {
|
|
205
|
+
return [];
|
|
206
|
+
}
|
|
207
|
+
function createListFilters() {
|
|
208
|
+
return [];
|
|
209
|
+
}
|
|
210
|
+
function createInlineTypeFilters() {
|
|
211
|
+
return [];
|
|
212
|
+
}
|
|
213
|
+
function createReferenceFilters(field) {
|
|
214
|
+
return [
|
|
215
|
+
{
|
|
216
|
+
constraint: {
|
|
217
|
+
comparator: 'EQUALS',
|
|
218
|
+
field: `${field.fieldName}._ref`
|
|
219
|
+
},
|
|
220
|
+
fieldName: getFieldName(field),
|
|
221
|
+
type: 'ID'
|
|
222
|
+
}
|
|
223
|
+
];
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
//# sourceMappingURL=generateTypeFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/graphql/gen1/generateTypeFilters.ts"],"sourcesContent":["import {flatten} from 'lodash-es'\n\nimport {isNonUnion} from '../helpers.js'\nimport {\n type ConvertedField,\n type ConvertedFieldDefinition,\n type ConvertedType,\n type ConvertedUnion,\n type InputFilterField,\n type InputObjectType,\n} from '../types.js'\n\ntype FilterCreator = (field: ConvertedField) => InputFilterField[]\n\nconst filterCreators: Record<string, FilterCreator> = {\n Boolean: createBooleanFilters,\n Date: createDateFilters,\n Datetime: createDateFilters,\n Float: createNumberFilters,\n ID: createIdFilters,\n Integer: createNumberFilters,\n Object: createObjectFilters,\n String: createStringFilters,\n Url: createStringFilters,\n}\n\nexport function generateTypeFilters(types: (ConvertedType | ConvertedUnion)[]): InputObjectType[] {\n const queryable = types\n .filter((type) => isNonUnion(type))\n .filter(\n (type) => type.type === 'Object' && type.interfaces && type.interfaces.includes('Document'),\n )\n\n return queryable.map((type) => {\n const name = `${type.name}Filter`\n const fields = flatten(type.fields.map((field) => createFieldFilters(field))).filter(Boolean)\n return {fields: [...fields, ...getDocumentFilters()], kind: 'InputObject', name}\n })\n}\n\nfunction createFieldFilters(field: ConvertedField) {\n if (filterCreators[field.type]) {\n return filterCreators[field.type](field)\n }\n\n if (field.kind === 'List') {\n return createListFilters()\n }\n\n if (field.isReference) {\n return createReferenceFilters(field)\n }\n\n return createInlineTypeFilters()\n}\n\nfunction getFieldName(field: ConvertedField, modifier = '') {\n const suffix = modifier ? `_${modifier}` : ''\n return `${field.fieldName}${suffix}`\n}\n\nfunction getDocumentFilters(): InputFilterField[] {\n return [\n {\n constraint: {\n comparator: 'REFERENCES',\n },\n description: 'All documents references the given document ID',\n fieldName: 'references',\n type: 'ID',\n },\n {\n constraint: {\n comparator: 'IS_DRAFT',\n field: '_id',\n },\n description: 'All documents that are drafts',\n fieldName: 'is_draft',\n type: 'Boolean',\n },\n ]\n}\n\nfunction createIsDefinedFilter(field: ConvertedFieldDefinition): InputFilterField {\n return {\n constraint: {\n comparator: 'IS_DEFINED',\n field: field.fieldName,\n },\n description: 'All documents that have a value for this field',\n fieldName: getFieldName(field, 'is_defined'),\n type: 'Boolean',\n }\n}\n\nfunction createEqualityFilter(field: ConvertedFieldDefinition): InputFilterField {\n return {\n constraint: {\n comparator: 'EQUALS',\n field: field.fieldName,\n },\n description: 'All documents that are equal to given value',\n fieldName: getFieldName(field),\n type: field.type,\n }\n}\n\nfunction createInequalityFilter(field: ConvertedFieldDefinition): InputFilterField {\n return {\n constraint: {\n comparator: 'NOT_EQUALS',\n field: field.fieldName,\n },\n description: 'All documents that are not equal to given value',\n fieldName: getFieldName(field, 'not'),\n type: field.type,\n }\n}\n\nfunction createDefaultFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [createEqualityFilter(field), createInequalityFilter(field), createIsDefinedFilter(field)]\n}\n\nfunction createGtLtFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [\n {\n constraint: {\n comparator: 'LT',\n field: field.fieldName,\n },\n description: 'All documents are less than given value',\n fieldName: getFieldName(field, 'lt'),\n type: field.type,\n },\n {\n constraint: {\n comparator: 'LTE',\n field: field.fieldName,\n },\n description: 'All documents are less than or equal to given value',\n fieldName: getFieldName(field, 'lte'),\n type: field.type,\n },\n {\n constraint: {\n comparator: 'GT',\n field: field.fieldName,\n },\n description: 'All documents are greater than given value',\n fieldName: getFieldName(field, 'gt'),\n type: field.type,\n },\n {\n constraint: {\n comparator: 'GTE',\n field: field.fieldName,\n },\n description: 'All documents are greater than or equal to given value',\n fieldName: getFieldName(field, 'gte'),\n type: field.type,\n },\n ]\n}\n\nfunction createBooleanFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return createDefaultFilters(field)\n}\n\nfunction createIdFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return createStringFilters(field)\n}\n\nfunction createDateFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [...createDefaultFilters(field), ...createGtLtFilters(field)]\n}\n\nfunction createStringFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [\n ...createDefaultFilters(field),\n {\n constraint: {\n comparator: 'MATCHES',\n field: field.fieldName,\n },\n description: 'All documents contain (match) the given word/words',\n fieldName: getFieldName(field, 'matches'),\n type: 'String',\n },\n {\n children: {\n isNullable: false,\n type: 'String',\n },\n constraint: {\n comparator: 'IN',\n field: field.fieldName,\n },\n description: 'All documents match one of the given values',\n fieldName: getFieldName(field, 'in'),\n kind: 'List',\n },\n {\n children: {\n isNullable: false,\n type: 'String',\n },\n constraint: {\n comparator: 'NOT_IN',\n field: field.fieldName,\n },\n description: 'None of the values match any of the given values',\n fieldName: getFieldName(field, 'not_in'),\n kind: 'List',\n },\n ]\n}\n\nfunction createNumberFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [...createDefaultFilters(field), ...createGtLtFilters(field)]\n}\n\nfunction createObjectFilters(_field: ConvertedFieldDefinition): InputFilterField[] {\n return []\n}\n\nfunction createListFilters(): InputFilterField[] {\n return []\n}\n\nfunction createInlineTypeFilters(): InputFilterField[] {\n return []\n}\n\nfunction createReferenceFilters(field: ConvertedFieldDefinition): InputFilterField[] {\n return [\n {\n constraint: {\n comparator: 'EQUALS',\n field: `${field.fieldName}._ref`,\n },\n fieldName: getFieldName(field),\n type: 'ID',\n },\n ]\n}\n"],"names":["flatten","isNonUnion","filterCreators","Boolean","createBooleanFilters","Date","createDateFilters","Datetime","Float","createNumberFilters","ID","createIdFilters","Integer","Object","createObjectFilters","String","createStringFilters","Url","generateTypeFilters","types","queryable","filter","type","interfaces","includes","map","name","fields","field","createFieldFilters","getDocumentFilters","kind","createListFilters","isReference","createReferenceFilters","createInlineTypeFilters","getFieldName","modifier","suffix","fieldName","constraint","comparator","description","createIsDefinedFilter","createEqualityFilter","createInequalityFilter","createDefaultFilters","createGtLtFilters","children","isNullable","_field"],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { startCase, upperFirst } from 'lodash-es';
|
|
2
|
+
import pluralize from 'pluralize-esm';
|
|
3
|
+
import { isNonUnion } from '../helpers.js';
|
|
4
|
+
function pluralizeTypeName(name) {
|
|
5
|
+
const words = startCase(name).split(' ');
|
|
6
|
+
const last = words.at(-1);
|
|
7
|
+
// `pluralize` previously incorrectly cased the S to uppercase after numbers,
|
|
8
|
+
// which we need to maintain for backwards compatibility
|
|
9
|
+
const plural = pluralize(last?.toLowerCase() ?? '').replaceAll(/(\d)s$/g, '$1S');
|
|
10
|
+
words[words.length - 1] = upperFirst(plural);
|
|
11
|
+
return words.join('');
|
|
12
|
+
}
|
|
13
|
+
export function generateTypeQueries(types, filters) {
|
|
14
|
+
const queries = [];
|
|
15
|
+
const queryable = types.filter((type)=>isNonUnion(type)).filter((type)=>type.type === 'Object' && type.interfaces && type.interfaces.includes('Document'));
|
|
16
|
+
// Single ID-based result lookup queries
|
|
17
|
+
for (const type of queryable){
|
|
18
|
+
queries.push({
|
|
19
|
+
args: [
|
|
20
|
+
{
|
|
21
|
+
description: `${type.name} document ID`,
|
|
22
|
+
isNullable: false,
|
|
23
|
+
name: 'id',
|
|
24
|
+
type: 'ID'
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
constraints: [
|
|
28
|
+
{
|
|
29
|
+
comparator: 'EQUALS',
|
|
30
|
+
field: '_id',
|
|
31
|
+
value: {
|
|
32
|
+
argName: 'id',
|
|
33
|
+
kind: 'argumentValue'
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
fieldName: type.name,
|
|
38
|
+
type: type.name
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
// Fetch all of type
|
|
42
|
+
for (const type of queryable){
|
|
43
|
+
const filterName = `${type.name}Filter`;
|
|
44
|
+
const hasFilter = filters.find((filter)=>filter.name === filterName);
|
|
45
|
+
queries.push({
|
|
46
|
+
args: hasFilter ? [
|
|
47
|
+
{
|
|
48
|
+
isFieldFilter: true,
|
|
49
|
+
name: 'where',
|
|
50
|
+
type: filterName
|
|
51
|
+
},
|
|
52
|
+
...getLimitOffsetArgs()
|
|
53
|
+
] : getLimitOffsetArgs(),
|
|
54
|
+
fieldName: `all${pluralizeTypeName(type.name)}`,
|
|
55
|
+
filter: `_type == "${type.originalName || type.name}"`,
|
|
56
|
+
type: {
|
|
57
|
+
children: {
|
|
58
|
+
isNullable: false,
|
|
59
|
+
type: type.name
|
|
60
|
+
},
|
|
61
|
+
isNullable: false,
|
|
62
|
+
kind: 'List'
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return queries;
|
|
67
|
+
}
|
|
68
|
+
function getLimitOffsetArgs() {
|
|
69
|
+
return [
|
|
70
|
+
{
|
|
71
|
+
description: 'Max documents to return',
|
|
72
|
+
isFieldFilter: false,
|
|
73
|
+
name: 'limit',
|
|
74
|
+
type: 'Int'
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
description: 'Offset at which to start returning documents from',
|
|
78
|
+
isFieldFilter: false,
|
|
79
|
+
name: 'offset',
|
|
80
|
+
type: 'Int'
|
|
81
|
+
}
|
|
82
|
+
];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=generateTypeQueries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/graphql/gen1/generateTypeQueries.ts"],"sourcesContent":["import {startCase, upperFirst} from 'lodash-es'\nimport pluralize from 'pluralize-esm'\n\nimport {isNonUnion} from '../helpers.js'\nimport {\n type ConvertedType,\n type ConvertedUnion,\n type InputObjectType,\n type QueryDefinition,\n} from '../types.js'\n\nfunction pluralizeTypeName(name: string): string {\n const words = startCase(name).split(' ')\n const last = words.at(-1)\n // `pluralize` previously incorrectly cased the S to uppercase after numbers,\n // which we need to maintain for backwards compatibility\n const plural = pluralize(last?.toLowerCase() ?? '').replaceAll(/(\\d)s$/g, '$1S')\n words[words.length - 1] = upperFirst(plural)\n return words.join('')\n}\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n filters: InputObjectType[],\n): QueryDefinition[] {\n const queries: QueryDefinition[] = []\n const queryable = types\n .filter((type) => isNonUnion(type))\n .filter(\n (type) => type.type === 'Object' && type.interfaces && type.interfaces.includes('Document'),\n )\n\n // Single ID-based result lookup queries\n for (const type of queryable) {\n queries.push({\n args: [\n {\n description: `${type.name} document ID`,\n isNullable: false,\n name: 'id',\n type: 'ID',\n },\n ],\n constraints: [\n {\n comparator: 'EQUALS',\n field: '_id',\n value: {argName: 'id', kind: 'argumentValue'},\n },\n ],\n fieldName: type.name,\n type: type.name,\n })\n }\n\n // Fetch all of type\n for (const type of queryable) {\n const filterName = `${type.name}Filter`\n const hasFilter = filters.find((filter) => filter.name === filterName)\n queries.push({\n args: hasFilter\n ? [{isFieldFilter: true, name: 'where', type: filterName}, ...getLimitOffsetArgs()]\n : getLimitOffsetArgs(),\n fieldName: `all${pluralizeTypeName(type.name)}`,\n filter: `_type == \"${type.originalName || type.name}\"`,\n type: {\n children: {isNullable: false, type: type.name},\n isNullable: false,\n kind: 'List',\n },\n })\n }\n\n return queries\n}\n\nfunction getLimitOffsetArgs(): QueryDefinition['args'] {\n return [\n {\n description: 'Max documents to return',\n isFieldFilter: false,\n name: 'limit',\n type: 'Int',\n },\n {\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n name: 'offset',\n type: 'Int',\n },\n ]\n}\n"],"names":["startCase","upperFirst","pluralize","isNonUnion","pluralizeTypeName","name","words","split","last","at","plural","toLowerCase","replaceAll","length","join","generateTypeQueries","types","filters","queries","queryable","filter","type","interfaces","includes","push","args","description","isNullable","constraints","comparator","field","value","argName","kind","fieldName","filterName","hasFilter","find","isFieldFilter","getLimitOffsetArgs","originalName","children"],"mappings":"AAAA,SAAQA,SAAS,EAAEC,UAAU,QAAO,YAAW;AAC/C,OAAOC,eAAe,gBAAe;AAErC,SAAQC,UAAU,QAAO,gBAAe;AAQxC,SAASC,kBAAkBC,IAAY;IACrC,MAAMC,QAAQN,UAAUK,MAAME,KAAK,CAAC;IACpC,MAAMC,OAAOF,MAAMG,EAAE,CAAC,CAAC;IACvB,6EAA6E;IAC7E,wDAAwD;IACxD,MAAMC,SAASR,UAAUM,MAAMG,iBAAiB,IAAIC,UAAU,CAAC,WAAW;IAC1EN,KAAK,CAACA,MAAMO,MAAM,GAAG,EAAE,GAAGZ,WAAWS;IACrC,OAAOJ,MAAMQ,IAAI,CAAC;AACpB;AAEA,OAAO,SAASC,oBACdC,KAAyC,EACzCC,OAA0B;IAE1B,MAAMC,UAA6B,EAAE;IACrC,MAAMC,YAAYH,MACfI,MAAM,CAAC,CAACC,OAASlB,WAAWkB,OAC5BD,MAAM,CACL,CAACC,OAASA,KAAKA,IAAI,KAAK,YAAYA,KAAKC,UAAU,IAAID,KAAKC,UAAU,CAACC,QAAQ,CAAC;IAGpF,wCAAwC;IACxC,KAAK,MAAMF,QAAQF,UAAW;QAC5BD,QAAQM,IAAI,CAAC;YACXC,MAAM;gBACJ;oBACEC,aAAa,GAAGL,KAAKhB,IAAI,CAAC,YAAY,CAAC;oBACvCsB,YAAY;oBACZtB,MAAM;oBACNgB,MAAM;gBACR;aACD;YACDO,aAAa;gBACX;oBACEC,YAAY;oBACZC,OAAO;oBACPC,OAAO;wBAACC,SAAS;wBAAMC,MAAM;oBAAe;gBAC9C;aACD;YACDC,WAAWb,KAAKhB,IAAI;YACpBgB,MAAMA,KAAKhB,IAAI;QACjB;IACF;IAEA,oBAAoB;IACpB,KAAK,MAAMgB,QAAQF,UAAW;QAC5B,MAAMgB,aAAa,GAAGd,KAAKhB,IAAI,CAAC,MAAM,CAAC;QACvC,MAAM+B,YAAYnB,QAAQoB,IAAI,CAAC,CAACjB,SAAWA,OAAOf,IAAI,KAAK8B;QAC3DjB,QAAQM,IAAI,CAAC;YACXC,MAAMW,YACF;gBAAC;oBAACE,eAAe;oBAAMjC,MAAM;oBAASgB,MAAMc;gBAAU;mBAAMI;aAAqB,GACjFA;YACJL,WAAW,CAAC,GAAG,EAAE9B,kBAAkBiB,KAAKhB,IAAI,GAAG;YAC/Ce,QAAQ,CAAC,UAAU,EAAEC,KAAKmB,YAAY,IAAInB,KAAKhB,IAAI,CAAC,CAAC,CAAC;YACtDgB,MAAM;gBACJoB,UAAU;oBAACd,YAAY;oBAAON,MAAMA,KAAKhB,IAAI;gBAAA;gBAC7CsB,YAAY;gBACZM,MAAM;YACR;QACF;IACF;IAEA,OAAOf;AACT;AAEA,SAASqB;IACP,OAAO;QACL;YACEb,aAAa;YACbY,eAAe;YACfjC,MAAM;YACNgB,MAAM;QACR;QACA;YACEK,aAAa;YACbY,eAAe;YACfjC,MAAM;YACNgB,MAAM;QACR;KACD;AACH"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { generateTypeFilters } from './generateTypeFilters.js';
|
|
2
|
+
import { generateTypeQueries } from './generateTypeQueries.js';
|
|
3
|
+
const gen1 = (extracted)=>{
|
|
4
|
+
const filters = generateTypeFilters(extracted.types);
|
|
5
|
+
const queries = generateTypeQueries(extracted.types, filters);
|
|
6
|
+
const types = [
|
|
7
|
+
...extracted.types,
|
|
8
|
+
...filters
|
|
9
|
+
];
|
|
10
|
+
return {
|
|
11
|
+
generation: 'gen1',
|
|
12
|
+
interfaces: extracted.interfaces,
|
|
13
|
+
queries,
|
|
14
|
+
types
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export default gen1;
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/graphql/gen1/index.ts"],"sourcesContent":["import {type ApiSpecification, type GeneratedApiSpecification} from '../types.js'\nimport {generateTypeFilters} from './generateTypeFilters.js'\nimport {generateTypeQueries} from './generateTypeQueries.js'\n\nconst gen1 = (extracted: ApiSpecification): GeneratedApiSpecification => {\n const filters = generateTypeFilters(extracted.types)\n const queries = generateTypeQueries(extracted.types, filters)\n const types = [...extracted.types, ...filters]\n return {generation: 'gen1', interfaces: extracted.interfaces, queries, types}\n}\n\nexport default gen1\n"],"names":["generateTypeFilters","generateTypeQueries","gen1","extracted","filters","types","queries","generation","interfaces"],"mappings":"AACA,SAAQA,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,mBAAmB,QAAO,2BAA0B;AAE5D,MAAMC,OAAO,CAACC;IACZ,MAAMC,UAAUJ,oBAAoBG,UAAUE,KAAK;IACnD,MAAMC,UAAUL,oBAAoBE,UAAUE,KAAK,EAAED;IACrD,MAAMC,QAAQ;WAAIF,UAAUE,KAAK;WAAKD;KAAQ;IAC9C,OAAO;QAACG,YAAY;QAAQC,YAAYL,UAAUK,UAAU;QAAEF;QAASD;IAAK;AAC9E;AAEA,eAAeH,KAAI"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function createBooleanFilters() {
|
|
2
|
+
return {
|
|
3
|
+
fields: [
|
|
4
|
+
{
|
|
5
|
+
description: 'Checks if the value is equal to the given input.',
|
|
6
|
+
fieldName: 'eq',
|
|
7
|
+
type: 'Boolean'
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
description: 'Checks if the value is not equal to the given input.',
|
|
11
|
+
fieldName: 'neq',
|
|
12
|
+
type: 'Boolean'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
description: 'Checks if the value is defined.',
|
|
16
|
+
fieldName: 'is_defined',
|
|
17
|
+
type: 'Boolean'
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
isConstraintFilter: true,
|
|
21
|
+
kind: 'InputObject',
|
|
22
|
+
name: 'BooleanFilter'
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=booleanFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/actions/graphql/gen2/filters/booleanFilters.ts"],"sourcesContent":["import {type InputObjectType} from '../../types.js'\n\nexport function createBooleanFilters(): InputObjectType {\n return {\n fields: [\n {\n description: 'Checks if the value is equal to the given input.',\n fieldName: 'eq',\n type: 'Boolean',\n },\n {\n description: 'Checks if the value is not equal to the given input.',\n fieldName: 'neq',\n type: 'Boolean',\n },\n {\n description: 'Checks if the value is defined.',\n fieldName: 'is_defined',\n type: 'Boolean',\n },\n ],\n isConstraintFilter: true,\n kind: 'InputObject',\n name: 'BooleanFilter',\n }\n}\n"],"names":["createBooleanFilters","fields","description","fieldName","type","isConstraintFilter","kind","name"],"mappings":"AAEA,OAAO,SAASA;IACd,OAAO;QACLC,QAAQ;YACN;gBACEC,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;SACD;QACDC,oBAAoB;QACpBC,MAAM;QACNC,MAAM;IACR;AACF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export function createDateFilters() {
|
|
2
|
+
return {
|
|
3
|
+
fields: [
|
|
4
|
+
{
|
|
5
|
+
description: 'Checks if the value is equal to the given input.',
|
|
6
|
+
fieldName: 'eq',
|
|
7
|
+
type: 'Date'
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
description: 'Checks if the value is not equal to the given input.',
|
|
11
|
+
fieldName: 'neq',
|
|
12
|
+
type: 'Date'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
description: 'Checks if the value is greater than the given input.',
|
|
16
|
+
fieldName: 'gt',
|
|
17
|
+
type: 'Date'
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
description: 'Checks if the value is greater than or equal to the given input.',
|
|
21
|
+
fieldName: 'gte',
|
|
22
|
+
type: 'Date'
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
description: 'Checks if the value is lesser than the given input.',
|
|
26
|
+
fieldName: 'lt',
|
|
27
|
+
type: 'Date'
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
description: 'Checks if the value is lesser than or equal to the given input.',
|
|
31
|
+
fieldName: 'lte',
|
|
32
|
+
type: 'Date'
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
description: 'Checks if the value is defined.',
|
|
36
|
+
fieldName: 'is_defined',
|
|
37
|
+
type: 'Boolean'
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
isConstraintFilter: true,
|
|
41
|
+
kind: 'InputObject',
|
|
42
|
+
name: 'DateFilter'
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=dateFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/actions/graphql/gen2/filters/dateFilters.ts"],"sourcesContent":["import {type InputObjectType} from '../../types.js'\n\nexport function createDateFilters(): InputObjectType {\n return {\n fields: [\n {\n description: 'Checks if the value is equal to the given input.',\n fieldName: 'eq',\n type: 'Date',\n },\n {\n description: 'Checks if the value is not equal to the given input.',\n fieldName: 'neq',\n type: 'Date',\n },\n {\n description: 'Checks if the value is greater than the given input.',\n fieldName: 'gt',\n type: 'Date',\n },\n {\n description: 'Checks if the value is greater than or equal to the given input.',\n fieldName: 'gte',\n type: 'Date',\n },\n {\n description: 'Checks if the value is lesser than the given input.',\n fieldName: 'lt',\n type: 'Date',\n },\n {\n description: 'Checks if the value is lesser than or equal to the given input.',\n fieldName: 'lte',\n type: 'Date',\n },\n {\n description: 'Checks if the value is defined.',\n fieldName: 'is_defined',\n type: 'Boolean',\n },\n ],\n isConstraintFilter: true,\n kind: 'InputObject',\n name: 'DateFilter',\n }\n}\n"],"names":["createDateFilters","fields","description","fieldName","type","isConstraintFilter","kind","name"],"mappings":"AAEA,OAAO,SAASA;IACd,OAAO;QACLC,QAAQ;YACN;gBACEC,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;SACD;QACDC,oBAAoB;QACpBC,MAAM;QACNC,MAAM;IACR;AACF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export function createDateTimeFilters() {
|
|
2
|
+
return {
|
|
3
|
+
fields: [
|
|
4
|
+
{
|
|
5
|
+
description: 'Checks if the value is equal to the given input.',
|
|
6
|
+
fieldName: 'eq',
|
|
7
|
+
type: 'Datetime'
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
description: 'Checks if the value is not equal to the given input.',
|
|
11
|
+
fieldName: 'neq',
|
|
12
|
+
type: 'Datetime'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
description: 'Checks if the value is greater than the given input.',
|
|
16
|
+
fieldName: 'gt',
|
|
17
|
+
type: 'Datetime'
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
description: 'Checks if the value is greater than or equal to the given input.',
|
|
21
|
+
fieldName: 'gte',
|
|
22
|
+
type: 'Datetime'
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
description: 'Checks if the value is lesser than the given input.',
|
|
26
|
+
fieldName: 'lt',
|
|
27
|
+
type: 'Datetime'
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
description: 'Checks if the value is lesser than or equal to the given input.',
|
|
31
|
+
fieldName: 'lte',
|
|
32
|
+
type: 'Datetime'
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
description: 'Checks if the value is defined.',
|
|
36
|
+
fieldName: 'is_defined',
|
|
37
|
+
type: 'Boolean'
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
isConstraintFilter: true,
|
|
41
|
+
kind: 'InputObject',
|
|
42
|
+
name: 'DatetimeFilter'
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=dateTimeFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/actions/graphql/gen2/filters/dateTimeFilters.ts"],"sourcesContent":["import {type InputObjectType} from '../../types.js'\n\nexport function createDateTimeFilters(): InputObjectType {\n return {\n fields: [\n {\n description: 'Checks if the value is equal to the given input.',\n fieldName: 'eq',\n type: 'Datetime',\n },\n {\n description: 'Checks if the value is not equal to the given input.',\n fieldName: 'neq',\n type: 'Datetime',\n },\n {\n description: 'Checks if the value is greater than the given input.',\n fieldName: 'gt',\n type: 'Datetime',\n },\n {\n description: 'Checks if the value is greater than or equal to the given input.',\n fieldName: 'gte',\n type: 'Datetime',\n },\n {\n description: 'Checks if the value is lesser than the given input.',\n fieldName: 'lt',\n type: 'Datetime',\n },\n {\n description: 'Checks if the value is lesser than or equal to the given input.',\n fieldName: 'lte',\n type: 'Datetime',\n },\n {\n description: 'Checks if the value is defined.',\n fieldName: 'is_defined',\n type: 'Boolean',\n },\n ],\n isConstraintFilter: true,\n kind: 'InputObject',\n name: 'DatetimeFilter',\n }\n}\n"],"names":["createDateTimeFilters","fields","description","fieldName","type","isConstraintFilter","kind","name"],"mappings":"AAEA,OAAO,SAASA;IACd,OAAO;QACLC,QAAQ;YACN;gBACEC,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;SACD;QACDC,oBAAoB;QACpBC,MAAM;QACNC,MAAM;IACR;AACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function createDocumentFilters() {
|
|
2
|
+
return {
|
|
3
|
+
fields: [
|
|
4
|
+
{
|
|
5
|
+
description: 'All documents referencing the given document ID.',
|
|
6
|
+
fieldName: 'references',
|
|
7
|
+
type: 'ID'
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
description: 'All documents that are drafts.',
|
|
11
|
+
fieldName: 'is_draft',
|
|
12
|
+
type: 'Boolean'
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
isConstraintFilter: true,
|
|
16
|
+
kind: 'InputObject',
|
|
17
|
+
name: 'DocumentFilter'
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=documentFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/actions/graphql/gen2/filters/documentFilters.ts"],"sourcesContent":["import {type InputObjectType} from '../../types.js'\n\nexport function createDocumentFilters(): InputObjectType {\n return {\n fields: [\n {\n description: 'All documents referencing the given document ID.',\n fieldName: 'references',\n type: 'ID',\n },\n {\n description: 'All documents that are drafts.',\n fieldName: 'is_draft',\n type: 'Boolean',\n },\n ],\n isConstraintFilter: true,\n kind: 'InputObject',\n name: 'DocumentFilter',\n }\n}\n"],"names":["createDocumentFilters","fields","description","fieldName","type","isConstraintFilter","kind","name"],"mappings":"AAEA,OAAO,SAASA;IACd,OAAO;QACLC,QAAQ;YACN;gBACEC,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;YACA;gBACEF,aAAa;gBACbC,WAAW;gBACXC,MAAM;YACR;SACD;QACDC,oBAAoB;QACpBC,MAAM;QACNC,MAAM;IACR;AACF"}
|