@sanity/cli 6.0.0-alpha.3 → 6.0.0-alpha.5
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/dist/actions/auth/login/{index.js → login.js} +1 -1
- package/dist/actions/auth/login/{index.js.map → login.js.map} +1 -1
- package/dist/actions/dev/startStudioDevServer.js +3 -8
- package/dist/actions/dev/startStudioDevServer.js.map +1 -1
- package/dist/actions/dev/types.d.ts +1 -3
- package/dist/actions/dev/types.js.map +1 -1
- package/dist/actions/documents/validate.d.ts +0 -2
- package/dist/actions/documents/validate.js +21 -1
- package/dist/actions/documents/validate.js.map +1 -1
- package/dist/actions/exec/execScript.js +1 -1
- package/dist/actions/exec/execScript.js.map +1 -1
- package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js +1 -1
- package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js.map +1 -1
- package/dist/actions/graphql/getGraphQLAPIs.js +1 -1
- package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -1
- package/dist/actions/manifest/extractManifest.js +1 -4
- package/dist/actions/manifest/extractManifest.js.map +1 -1
- package/dist/actions/organizations/getOrganizationChoices.d.ts +6 -0
- package/dist/actions/organizations/getOrganizationChoices.js +23 -0
- package/dist/actions/organizations/getOrganizationChoices.js.map +1 -0
- package/dist/actions/organizations/getOrganizationsWithAttachGrantInfo.d.ts +2 -0
- package/dist/actions/organizations/getOrganizationsWithAttachGrantInfo.js +9 -0
- package/dist/actions/organizations/getOrganizationsWithAttachGrantInfo.js.map +1 -0
- package/dist/actions/organizations/hasProjectAttachGrant.d.ts +1 -0
- package/dist/actions/organizations/hasProjectAttachGrant.js +24 -0
- package/dist/actions/organizations/hasProjectAttachGrant.js.map +1 -0
- package/dist/actions/schema/deleteSchemaAction.d.ts +13 -5
- package/dist/actions/schema/deleteSchemaAction.js +12 -17
- package/dist/actions/schema/deleteSchemaAction.js.map +1 -1
- package/dist/actions/schema/deploySchemas.d.ts +15 -0
- package/dist/actions/schema/deploySchemas.js +98 -0
- package/dist/actions/schema/deploySchemas.js.map +1 -0
- package/dist/actions/schema/listSchemas.d.ts +12 -0
- package/dist/actions/schema/listSchemas.js +119 -0
- package/dist/actions/schema/listSchemas.js.map +1 -0
- package/dist/actions/schema/schemaStoreTypes.d.ts +0 -11
- package/dist/actions/schema/schemaStoreTypes.js.map +1 -1
- package/dist/actions/schema/utils/debug.d.ts +2 -0
- package/dist/actions/schema/utils/debug.js +5 -0
- package/dist/actions/schema/utils/debug.js.map +1 -0
- package/dist/actions/schema/utils/manifestExtractor.d.ts +3 -8
- package/dist/actions/schema/utils/manifestExtractor.js +12 -17
- package/dist/actions/schema/utils/manifestExtractor.js.map +1 -1
- package/dist/actions/schema/utils/manifestReader.d.ts +2 -9
- package/dist/actions/schema/utils/manifestReader.js +6 -12
- package/dist/actions/schema/utils/manifestReader.js.map +1 -1
- package/dist/actions/schema/utils/schemaStoreOutStrings.d.ts +0 -1
- package/dist/actions/schema/utils/schemaStoreOutStrings.js +1 -1
- package/dist/actions/schema/utils/schemaStoreOutStrings.js.map +1 -1
- package/dist/actions/schema/utils/schemaStoreValidation.d.ts +10 -62
- package/dist/actions/schema/utils/schemaStoreValidation.js +40 -127
- package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -1
- package/dist/actions/schema/utils/uniqByProjectIdDataset.d.ts +14 -0
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js +9 -0
- package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -0
- package/dist/actions/users/getMembersForProject.d.ts +1 -3
- package/dist/actions/users/getMembersForProject.js +6 -17
- package/dist/actions/users/getMembersForProject.js.map +1 -1
- package/dist/actions/users/types.d.ts +0 -11
- package/dist/actions/users/types.js.map +1 -1
- package/dist/commands/__tests__/debug.test.js +113 -220
- package/dist/commands/__tests__/debug.test.js.map +1 -1
- package/dist/commands/__tests__/deploy.test.js +325 -293
- package/dist/commands/__tests__/deploy.test.js.map +1 -1
- package/dist/commands/__tests__/dev.test.js +62 -19
- package/dist/commands/__tests__/dev.test.js.map +1 -1
- package/dist/commands/__tests__/init/init.authentication.test.js +73 -0
- package/dist/commands/__tests__/init/init.authentication.test.js.map +1 -0
- package/dist/commands/__tests__/init/init.create-new-project.test.js +195 -0
- package/dist/commands/__tests__/init/init.create-new-project.test.js.map +1 -0
- package/dist/commands/__tests__/init/init.plan.test.js +279 -0
- package/dist/commands/__tests__/init/init.plan.test.js.map +1 -0
- package/dist/commands/__tests__/init/init.setup.test.js +335 -0
- package/dist/commands/__tests__/init/init.setup.test.js.map +1 -0
- package/dist/commands/__tests__/install.test.js +46 -22
- package/dist/commands/__tests__/install.test.js.map +1 -1
- package/dist/commands/__tests__/logout.test.js +8 -5
- package/dist/commands/__tests__/logout.test.js.map +1 -1
- package/dist/commands/__tests__/manage.test.js +29 -24
- package/dist/commands/__tests__/manage.test.js.map +1 -1
- package/dist/commands/__tests__/migration.test.js +119 -0
- package/dist/commands/__tests__/migration.test.js.map +1 -0
- package/dist/commands/__tests__/versions.test.js +22 -14
- package/dist/commands/__tests__/versions.test.js.map +1 -1
- package/dist/commands/backup/__tests__/disable.test.js +72 -75
- package/dist/commands/backup/__tests__/disable.test.js.map +1 -1
- package/dist/commands/backup/__tests__/download.test.js +169 -80
- package/dist/commands/backup/__tests__/download.test.js.map +1 -1
- package/dist/commands/backup/__tests__/enable.test.js +109 -140
- package/dist/commands/backup/__tests__/enable.test.js.map +1 -1
- package/dist/commands/backup/__tests__/list.test.js +84 -75
- package/dist/commands/backup/__tests__/list.test.js.map +1 -1
- package/dist/commands/backup/disable.js +5 -11
- package/dist/commands/backup/disable.js.map +1 -1
- package/dist/commands/backup/enable.js +5 -11
- package/dist/commands/backup/enable.js.map +1 -1
- package/dist/commands/backup/list.js +7 -8
- package/dist/commands/backup/list.js.map +1 -1
- package/dist/commands/cors/__tests__/add.test.js +68 -38
- package/dist/commands/cors/__tests__/add.test.js.map +1 -1
- package/dist/commands/cors/__tests__/delete.test.js +52 -37
- package/dist/commands/cors/__tests__/delete.test.js.map +1 -1
- package/dist/commands/cors/__tests__/list.test.js +80 -57
- package/dist/commands/cors/__tests__/list.test.js.map +1 -1
- package/dist/commands/cors/add.js +5 -13
- package/dist/commands/cors/add.js.map +1 -1
- package/dist/commands/cors/delete.js +7 -15
- package/dist/commands/cors/delete.js.map +1 -1
- package/dist/commands/cors/list.js +2 -10
- package/dist/commands/cors/list.js.map +1 -1
- package/dist/commands/dataset/__tests__/copy.test.js +197 -89
- package/dist/commands/dataset/__tests__/copy.test.js.map +1 -1
- package/dist/commands/dataset/__tests__/create.test.js +147 -117
- package/dist/commands/dataset/__tests__/create.test.js.map +1 -1
- package/dist/commands/dataset/__tests__/delete.test.js +75 -68
- package/dist/commands/dataset/__tests__/delete.test.js.map +1 -1
- package/dist/commands/dataset/__tests__/export.test.js +123 -83
- package/dist/commands/dataset/__tests__/export.test.js.map +1 -1
- package/dist/commands/dataset/__tests__/import.test.js +2 -2
- package/dist/commands/dataset/__tests__/import.test.js.map +1 -1
- package/dist/commands/dataset/__tests__/list.test.js +107 -65
- package/dist/commands/dataset/__tests__/list.test.js.map +1 -1
- package/dist/commands/dataset/alias/__tests__/create.test.js +114 -74
- package/dist/commands/dataset/alias/__tests__/create.test.js.map +1 -1
- package/dist/commands/dataset/alias/__tests__/delete.test.js +40 -29
- package/dist/commands/dataset/alias/__tests__/delete.test.js.map +1 -1
- package/dist/commands/dataset/alias/__tests__/link.test.js +114 -74
- package/dist/commands/dataset/alias/__tests__/link.test.js.map +1 -1
- package/dist/commands/dataset/alias/__tests__/unlink.test.js +44 -29
- package/dist/commands/dataset/alias/__tests__/unlink.test.js.map +1 -1
- package/dist/commands/dataset/export.js +4 -4
- package/dist/commands/dataset/export.js.map +1 -1
- package/dist/commands/dataset/visibility/__tests__/get.test.js +48 -67
- package/dist/commands/dataset/visibility/__tests__/get.test.js.map +1 -1
- package/dist/commands/dataset/visibility/__tests__/set.test.js +76 -123
- package/dist/commands/dataset/visibility/__tests__/set.test.js.map +1 -1
- package/dist/commands/dev.js +0 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/docs/__tests__/search.test.js +8 -7
- package/dist/commands/docs/__tests__/search.test.js.map +1 -1
- package/dist/commands/documents/__tests__/create.test.js +328 -265
- package/dist/commands/documents/__tests__/create.test.js.map +1 -1
- package/dist/commands/documents/__tests__/delete.test.js +119 -87
- package/dist/commands/documents/__tests__/delete.test.js.map +1 -1
- package/dist/commands/documents/__tests__/get.test.js +68 -95
- package/dist/commands/documents/__tests__/get.test.js.map +1 -1
- package/dist/commands/documents/__tests__/query.test.js +87 -192
- package/dist/commands/documents/__tests__/query.test.js.map +1 -1
- package/dist/commands/documents/__tests__/validate.test.js +52 -29
- package/dist/commands/documents/__tests__/validate.test.js.map +1 -1
- package/dist/commands/documents/create.d.ts +1 -0
- package/dist/commands/documents/create.js +10 -9
- package/dist/commands/documents/create.js.map +1 -1
- package/dist/commands/documents/delete.js +2 -3
- package/dist/commands/documents/delete.js.map +1 -1
- package/dist/commands/documents/get.js +2 -3
- package/dist/commands/documents/get.js.map +1 -1
- package/dist/commands/documents/query.js +2 -3
- package/dist/commands/documents/query.js.map +1 -1
- package/dist/commands/documents/validate.js +0 -20
- package/dist/commands/documents/validate.js.map +1 -1
- package/dist/commands/graphql/__tests__/list.test.js +57 -45
- package/dist/commands/graphql/__tests__/list.test.js.map +1 -1
- package/dist/commands/graphql/__tests__/undeploy.test.js +85 -59
- package/dist/commands/graphql/__tests__/undeploy.test.js.map +1 -1
- package/dist/commands/graphql/list.js +2 -2
- package/dist/commands/graphql/list.js.map +1 -1
- package/dist/commands/graphql/undeploy.js +4 -9
- package/dist/commands/graphql/undeploy.js.map +1 -1
- package/dist/commands/hook/__tests__/attempt.test.js +48 -33
- package/dist/commands/hook/__tests__/attempt.test.js.map +1 -1
- package/dist/commands/hook/__tests__/create.test.js +49 -51
- package/dist/commands/hook/__tests__/create.test.js.map +1 -1
- package/dist/commands/hook/__tests__/delete.test.js +43 -30
- package/dist/commands/hook/__tests__/delete.test.js.map +1 -1
- package/dist/commands/hook/__tests__/list.test.js +38 -31
- package/dist/commands/hook/__tests__/list.test.js.map +1 -1
- package/dist/commands/hook/__tests__/logs.test.js +68 -40
- package/dist/commands/hook/__tests__/logs.test.js.map +1 -1
- package/dist/commands/hook/create.js +2 -6
- package/dist/commands/hook/create.js.map +1 -1
- package/dist/commands/hook/delete.js +5 -17
- package/dist/commands/hook/delete.js.map +1 -1
- package/dist/commands/hook/list.js +2 -8
- package/dist/commands/hook/list.js.map +1 -1
- package/dist/commands/init.d.ts +4 -0
- package/dist/commands/init.js +151 -18
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.js +1 -1
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/manifest/__tests__/extract.test.js +22 -13
- package/dist/commands/manifest/__tests__/extract.test.js.map +1 -1
- package/dist/commands/media/__tests__/create-aspect.test.js +41 -28
- package/dist/commands/media/__tests__/create-aspect.test.js.map +1 -1
- package/dist/commands/media/__tests__/delete-aspect.test.js +44 -35
- package/dist/commands/media/__tests__/delete-aspect.test.js.map +1 -1
- package/dist/commands/media/__tests__/deploy-aspect.test.js +67 -80
- package/dist/commands/media/__tests__/deploy-aspect.test.js.map +1 -1
- package/dist/commands/media/__tests__/export.test.js +365 -66
- package/dist/commands/media/__tests__/export.test.js.map +1 -1
- package/dist/commands/media/__tests__/import.test.js +171 -105
- package/dist/commands/media/__tests__/import.test.js.map +1 -1
- package/dist/commands/media/export.js +2 -2
- package/dist/commands/media/export.js.map +1 -1
- package/dist/commands/media/import.js +2 -2
- package/dist/commands/media/import.js.map +1 -1
- package/dist/commands/projects/__tests__/list.test.js +5 -4
- package/dist/commands/projects/__tests__/list.test.js.map +1 -1
- package/dist/commands/projects/list.js +2 -6
- package/dist/commands/projects/list.js.map +1 -1
- package/dist/commands/schema/__tests__/delete.test.js +396 -151
- package/dist/commands/schema/__tests__/delete.test.js.map +1 -1
- package/dist/commands/schema/__tests__/deploy.test.js +348 -0
- package/dist/commands/schema/__tests__/deploy.test.js.map +1 -0
- package/dist/commands/schema/__tests__/extract.test.js +19 -11
- package/dist/commands/schema/__tests__/extract.test.js.map +1 -1
- package/dist/commands/schema/__tests__/list.test.js +399 -0
- package/dist/commands/schema/__tests__/list.test.js.map +1 -0
- package/dist/commands/schema/__tests__/validate.test.js +27 -10
- package/dist/commands/schema/__tests__/validate.test.js.map +1 -1
- package/dist/commands/schema/delete.d.ts +1 -1
- package/dist/commands/schema/delete.js +20 -23
- package/dist/commands/schema/delete.js.map +1 -1
- package/dist/commands/schema/deploy.d.ts +16 -0
- package/dist/commands/schema/deploy.js +98 -0
- package/dist/commands/schema/deploy.js.map +1 -0
- package/dist/commands/schema/list.d.ts +15 -0
- package/dist/commands/schema/list.js +104 -0
- package/dist/commands/schema/list.js.map +1 -0
- package/dist/commands/telemetry/__tests__/disable.test.js +7 -5
- package/dist/commands/telemetry/__tests__/disable.test.js.map +1 -1
- package/dist/commands/telemetry/__tests__/enable.test.js +7 -5
- package/dist/commands/telemetry/__tests__/enable.test.js.map +1 -1
- package/dist/commands/telemetry/__tests__/status.test.js +7 -5
- package/dist/commands/telemetry/__tests__/status.test.js.map +1 -1
- package/dist/commands/tokens/__tests__/add.test.js +55 -40
- package/dist/commands/tokens/__tests__/add.test.js.map +1 -1
- package/dist/commands/tokens/__tests__/delete.test.js +72 -42
- package/dist/commands/tokens/__tests__/delete.test.js.map +1 -1
- package/dist/commands/tokens/__tests__/list.test.js +87 -60
- package/dist/commands/tokens/__tests__/list.test.js.map +1 -1
- package/dist/commands/tokens/add.js +3 -5
- package/dist/commands/tokens/add.js.map +1 -1
- package/dist/commands/users/__tests__/invite.test.js +100 -79
- package/dist/commands/users/__tests__/invite.test.js.map +1 -1
- package/dist/commands/users/__tests__/list.test.js +186 -180
- package/dist/commands/users/__tests__/list.test.js.map +1 -1
- package/dist/commands/users/invite.js +6 -17
- package/dist/commands/users/invite.js.map +1 -1
- package/dist/commands/users/list.js +4 -7
- package/dist/commands/users/list.js.map +1 -1
- package/dist/config/createCliConfig.d.ts +4 -4
- package/dist/services/backup.d.ts +8 -0
- package/dist/services/backup.js +19 -0
- package/dist/services/backup.js.map +1 -1
- package/dist/services/cors.d.ts +23 -0
- package/dist/services/cors.js +38 -0
- package/dist/services/cors.js.map +1 -0
- package/dist/services/graphql.d.ts +7 -0
- package/dist/services/graphql.js +11 -0
- package/dist/services/graphql.js.map +1 -1
- package/dist/services/hooks.d.ts +2 -0
- package/dist/services/hooks.js +19 -0
- package/dist/services/hooks.js.map +1 -1
- package/dist/services/organizations.d.ts +40 -0
- package/dist/services/organizations.js +41 -0
- package/dist/services/organizations.js.map +1 -0
- package/dist/services/projects.d.ts +31 -0
- package/dist/services/projects.js +71 -1
- package/dist/services/projects.js.map +1 -1
- package/dist/services/schemas.d.ts +4 -0
- package/dist/services/schemas.js +40 -0
- package/dist/services/schemas.js.map +1 -0
- package/dist/services/user.d.ts +10 -0
- package/dist/services/user.js +24 -0
- package/dist/services/user.js.map +1 -0
- package/dist/util/__tests__/getCliVersion.test.js +2 -2
- package/dist/util/__tests__/getCliVersion.test.js.map +1 -1
- package/dist/util/errorMessages.d.ts +1 -0
- package/dist/util/errorMessages.js +1 -0
- package/dist/util/errorMessages.js.map +1 -1
- package/dist/util/getCliVersion.js +1 -1
- package/dist/util/getCliVersion.js.map +1 -1
- package/dist/util/readPackageJson.d.ts +1 -15
- package/dist/util/readPackageJson.js +1 -1
- package/dist/util/readPackageJson.js.map +1 -1
- package/dist/util/uniqBy.d.ts +1 -0
- package/dist/util/uniqBy.js +14 -0
- package/dist/util/uniqBy.js.map +1 -0
- package/oclif.config.js +6 -1
- package/oclif.manifest.json +152 -158
- package/package.json +30 -31
- package/dist/actions/cors/constants.d.ts +0 -1
- package/dist/actions/cors/constants.js +0 -3
- package/dist/actions/cors/constants.js.map +0 -1
- package/dist/actions/cors/types.d.ts +0 -9
- package/dist/actions/cors/types.js +0 -3
- package/dist/actions/cors/types.js.map +0 -1
- package/dist/actions/migration/getMigrationRootDirectory.d.ts +0 -2
- package/dist/actions/migration/getMigrationRootDirectory.js +0 -14
- package/dist/actions/migration/getMigrationRootDirectory.js.map +0 -1
- package/dist/actions/migration/resolveMigrations.d.ts +0 -19
- package/dist/actions/migration/resolveMigrations.js +0 -43
- package/dist/actions/migration/resolveMigrations.js.map +0 -1
- package/dist/actions/migration/templates/__tests__/minimalAdvanced.test.js +0 -65
- package/dist/actions/migration/templates/__tests__/minimalAdvanced.test.js.map +0 -1
- package/dist/actions/migration/templates/__tests__/minimalSimple.test.js +0 -145
- package/dist/actions/migration/templates/__tests__/minimalSimple.test.js.map +0 -1
- package/dist/actions/migration/templates/__tests__/renameField.test.js +0 -63
- package/dist/actions/migration/templates/__tests__/renameField.test.js.map +0 -1
- package/dist/actions/migration/templates/__tests__/renameType.test.js +0 -61
- package/dist/actions/migration/templates/__tests__/renameType.test.js.map +0 -1
- package/dist/actions/migration/templates/__tests__/stringToPTE.test.js +0 -87
- package/dist/actions/migration/templates/__tests__/stringToPTE.test.js.map +0 -1
- package/dist/actions/migration/templates/index.d.ts +0 -5
- package/dist/actions/migration/templates/index.js +0 -7
- package/dist/actions/migration/templates/index.js.map +0 -1
- package/dist/actions/migration/templates/minimalAdvanced.d.ts +0 -4
- package/dist/actions/migration/templates/minimalAdvanced.js +0 -21
- package/dist/actions/migration/templates/minimalAdvanced.js.map +0 -1
- package/dist/actions/migration/templates/minimalSimple.d.ts +0 -4
- package/dist/actions/migration/templates/minimalSimple.js +0 -61
- package/dist/actions/migration/templates/minimalSimple.js.map +0 -1
- package/dist/actions/migration/templates/renameField.d.ts +0 -4
- package/dist/actions/migration/templates/renameField.js +0 -20
- package/dist/actions/migration/templates/renameField.js.map +0 -1
- package/dist/actions/migration/templates/renameType.d.ts +0 -4
- package/dist/actions/migration/templates/renameType.js +0 -19
- package/dist/actions/migration/templates/renameType.js.map +0 -1
- package/dist/actions/migration/templates/stringToPTE.d.ts +0 -4
- package/dist/actions/migration/templates/stringToPTE.js +0 -32
- package/dist/actions/migration/templates/stringToPTE.js.map +0 -1
- package/dist/actions/schema/__tests__/deleteSchemaAction.test.js +0 -294
- package/dist/actions/schema/__tests__/deleteSchemaAction.test.js.map +0 -1
- package/dist/actions/schema/schemaStoreConstants.d.ts +0 -1
- package/dist/actions/schema/schemaStoreConstants.js +0 -4
- package/dist/actions/schema/schemaStoreConstants.js.map +0 -1
- package/dist/actions/schema/utils/schemaActionHelpers.d.ts +0 -1
- package/dist/actions/schema/utils/schemaActionHelpers.js +0 -5
- package/dist/actions/schema/utils/schemaActionHelpers.js.map +0 -1
- package/dist/actions/schema/utils/schemaApiClient.d.ts +0 -6
- package/dist/actions/schema/utils/schemaApiClient.js +0 -17
- package/dist/actions/schema/utils/schemaApiClient.js.map +0 -1
- package/dist/actions/users/apiVersion.d.ts +0 -6
- package/dist/actions/users/apiVersion.js +0 -7
- package/dist/actions/users/apiVersion.js.map +0 -1
- package/dist/commands/__tests__/init.test.js +0 -411
- package/dist/commands/__tests__/init.test.js.map +0 -1
- package/dist/commands/migration/__tests__/create.test.js +0 -296
- package/dist/commands/migration/__tests__/create.test.js.map +0 -1
- package/dist/commands/migration/__tests__/list.test.js +0 -166
- package/dist/commands/migration/__tests__/list.test.js.map +0 -1
- package/dist/commands/migration/__tests__/run.test.js +0 -481
- package/dist/commands/migration/__tests__/run.test.js.map +0 -1
- package/dist/commands/migration/create.d.ts +0 -17
- package/dist/commands/migration/create.js +0 -143
- package/dist/commands/migration/create.js.map +0 -1
- package/dist/commands/migration/list.d.ts +0 -9
- package/dist/commands/migration/list.js +0 -61
- package/dist/commands/migration/list.js.map +0 -1
- package/dist/commands/migration/run.d.ts +0 -26
- package/dist/commands/migration/run.js +0 -271
- package/dist/commands/migration/run.js.map +0 -1
- package/dist/util/migration/constants.d.ts +0 -3
- package/dist/util/migration/constants.js +0 -10
- package/dist/util/migration/constants.js.map +0 -1
- package/dist/util/migration/ensureApiVersionFormat.d.ts +0 -9
- package/dist/util/migration/ensureApiVersionFormat.js +0 -16
- package/dist/util/migration/ensureApiVersionFormat.js.map +0 -1
- package/dist/util/migration/prettyMutationFormatter.d.ts +0 -8
- package/dist/util/migration/prettyMutationFormatter.js +0 -141
- package/dist/util/migration/prettyMutationFormatter.js.map +0 -1
- package/dist/utils/migration/resolveMigrationScript.d.ts +0 -44
- package/dist/utils/migration/resolveMigrationScript.js +0 -74
- package/dist/utils/migration/resolveMigrationScript.js.map +0 -1
- /package/dist/actions/auth/login/{index.d.ts → login.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/actions/schema/utils/manifestReader.ts"],"sourcesContent":["import {type Stats} from 'node:fs'\nimport {readFile, stat} from 'node:fs/promises'\nimport path, {join, resolve} from 'node:path'\n\nimport {type Output} from '@sanity/cli-core'\nimport {chalk} from '@sanity/cli-core/ux'\n\nimport {MANIFEST_FILENAME} from '../../manifest/extractManifest.js'\nimport {type CreateManifest, type ManifestSchemaType} from '../../manifest/types.js'\
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/schema/utils/manifestReader.ts"],"sourcesContent":["import {type Stats} from 'node:fs'\nimport {readFile, stat} from 'node:fs/promises'\nimport path, {join, resolve} from 'node:path'\n\nimport {type Output} from '@sanity/cli-core'\nimport {chalk} from '@sanity/cli-core/ux'\n\nimport {MANIFEST_FILENAME} from '../../manifest/extractManifest.js'\nimport {type CreateManifest, type ManifestSchemaType} from '../../manifest/types.js'\n\ntype CreateManifestReaderFactory = (args: {\n manifestDir: string\n output: Output\n workDir: string\n}) => CreateManifestReader\n\nexport interface CreateManifestReader {\n getManifest: () => Promise<CreateManifest>\n getWorkspaceSchema: (workspaceName: string) => Promise<ManifestSchemaType[]>\n}\n\ninterface JsonFileParseSuccess<T> {\n lastModified: string\n parsedJson: T\n path: string\n}\n\n/**\n * The manifest reader will try to read manifest and workspace schema files _once_ and cache a successful result.\n * If you need to re-read the manifest from disk, create a new instance.\n */\nexport const createManifestReader: CreateManifestReaderFactory = ({\n manifestDir,\n output,\n workDir,\n}) => {\n let parsedManifest: JsonFileParseSuccess<CreateManifest>\n const parsedWorkspaces: Record<string, JsonFileParseSuccess<ManifestSchemaType[]> | undefined> =\n {}\n\n const getManifest: CreateManifestReader['getManifest'] = async () => {\n if (parsedManifest) {\n return parsedManifest?.parsedJson\n }\n\n const staticPath = resolve(join(workDir, manifestDir))\n const manifestFile = path.join(staticPath, MANIFEST_FILENAME)\n\n const result = await parseJsonFile<CreateManifest>(manifestFile)\n if (!result) {\n throw new Error(\n `Manifest does not exist at ${manifestFile}. To create the manifest file, omit --no-extract-manifest or run \"sanity manifest extract\" first.`,\n )\n }\n\n output.log(\n chalk.gray(`↳ Read manifest from ${manifestFile} (last modified: ${result.lastModified})`),\n )\n\n parsedManifest = result\n return result.parsedJson\n }\n\n const getWorkspaceSchema: CreateManifestReader['getWorkspaceSchema'] = async (workspaceName) => {\n if (parsedWorkspaces[workspaceName]) {\n return parsedWorkspaces[workspaceName]?.parsedJson\n }\n const manifest = await getManifest()\n if (!manifest) {\n throw new Error('Manifest is required to read workspace schema.')\n }\n\n const workspaceManifest = manifest.workspaces.find(\n (workspace) => workspace.name === workspaceName,\n )\n\n if (!workspaceManifest) {\n throw new Error(`No workspace named \"${workspaceName}\" found in manifest.`)\n }\n\n const workspaceSchemaFile = path.join(manifestDir, workspaceManifest.schema)\n const result = await parseJsonFile<ManifestSchemaType[]>(workspaceSchemaFile)\n if (!result) {\n throw new Error(`Workspace schema file at \"${workspaceSchemaFile}\" does not exist.`)\n }\n parsedWorkspaces[workspaceName] = result\n return result.parsedJson\n }\n return {\n getManifest,\n getWorkspaceSchema,\n }\n}\n\nasync function parseJsonFile<T>(filePath: string): Promise<JsonFileParseSuccess<T> | undefined> {\n let stats: Stats\n try {\n stats = await stat(filePath)\n } catch {\n // file does not exist\n return undefined\n }\n const content = await readFile(filePath, 'utf8')\n const lastModified = stats.mtime.toISOString()\n const json = JSON.parse(content) as T\n if (!json) {\n throw new Error(`JSON file \"${filePath}\" was empty.`)\n }\n return {\n lastModified,\n parsedJson: json,\n path: filePath,\n }\n}\n"],"names":["readFile","stat","path","join","resolve","chalk","MANIFEST_FILENAME","createManifestReader","manifestDir","output","workDir","parsedManifest","parsedWorkspaces","getManifest","parsedJson","staticPath","manifestFile","result","parseJsonFile","Error","log","gray","lastModified","getWorkspaceSchema","workspaceName","manifest","workspaceManifest","workspaces","find","workspace","name","workspaceSchemaFile","schema","filePath","stats","undefined","content","mtime","toISOString","json","JSON","parse"],"mappings":"AACA,SAAQA,QAAQ,EAAEC,IAAI,QAAO,mBAAkB;AAC/C,OAAOC,QAAOC,IAAI,EAAEC,OAAO,QAAO,YAAW;AAG7C,SAAQC,KAAK,QAAO,sBAAqB;AAEzC,SAAQC,iBAAiB,QAAO,oCAAmC;AAoBnE;;;CAGC,GACD,OAAO,MAAMC,uBAAoD,CAAC,EAChEC,WAAW,EACXC,MAAM,EACNC,OAAO,EACR;IACC,IAAIC;IACJ,MAAMC,mBACJ,CAAC;IAEH,MAAMC,cAAmD;QACvD,IAAIF,gBAAgB;YAClB,OAAOA,gBAAgBG;QACzB;QAEA,MAAMC,aAAaX,QAAQD,KAAKO,SAASF;QACzC,MAAMQ,eAAed,KAAKC,IAAI,CAACY,YAAYT;QAE3C,MAAMW,SAAS,MAAMC,cAA8BF;QACnD,IAAI,CAACC,QAAQ;YACX,MAAM,IAAIE,MACR,CAAC,2BAA2B,EAAEH,aAAa,iGAAiG,CAAC;QAEjJ;QAEAP,OAAOW,GAAG,CACRf,MAAMgB,IAAI,CAAC,CAAC,qBAAqB,EAAEL,aAAa,iBAAiB,EAAEC,OAAOK,YAAY,CAAC,CAAC,CAAC;QAG3FX,iBAAiBM;QACjB,OAAOA,OAAOH,UAAU;IAC1B;IAEA,MAAMS,qBAAiE,OAAOC;QAC5E,IAAIZ,gBAAgB,CAACY,cAAc,EAAE;YACnC,OAAOZ,gBAAgB,CAACY,cAAc,EAAEV;QAC1C;QACA,MAAMW,WAAW,MAAMZ;QACvB,IAAI,CAACY,UAAU;YACb,MAAM,IAAIN,MAAM;QAClB;QAEA,MAAMO,oBAAoBD,SAASE,UAAU,CAACC,IAAI,CAChD,CAACC,YAAcA,UAAUC,IAAI,KAAKN;QAGpC,IAAI,CAACE,mBAAmB;YACtB,MAAM,IAAIP,MAAM,CAAC,oBAAoB,EAAEK,cAAc,oBAAoB,CAAC;QAC5E;QAEA,MAAMO,sBAAsB7B,KAAKC,IAAI,CAACK,aAAakB,kBAAkBM,MAAM;QAC3E,MAAMf,SAAS,MAAMC,cAAoCa;QACzD,IAAI,CAACd,QAAQ;YACX,MAAM,IAAIE,MAAM,CAAC,0BAA0B,EAAEY,oBAAoB,iBAAiB,CAAC;QACrF;QACAnB,gBAAgB,CAACY,cAAc,GAAGP;QAClC,OAAOA,OAAOH,UAAU;IAC1B;IACA,OAAO;QACLD;QACAU;IACF;AACF,EAAC;AAED,eAAeL,cAAiBe,QAAgB;IAC9C,IAAIC;IACJ,IAAI;QACFA,QAAQ,MAAMjC,KAAKgC;IACrB,EAAE,OAAM;QACN,sBAAsB;QACtB,OAAOE;IACT;IACA,MAAMC,UAAU,MAAMpC,SAASiC,UAAU;IACzC,MAAMX,eAAeY,MAAMG,KAAK,CAACC,WAAW;IAC5C,MAAMC,OAAOC,KAAKC,KAAK,CAACL;IACxB,IAAI,CAACG,MAAM;QACT,MAAM,IAAIpB,MAAM,CAAC,WAAW,EAAEc,SAAS,YAAY,CAAC;IACtD;IACA,OAAO;QACLX;QACAR,YAAYyB;QACZrC,MAAM+B;IACR;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export function getDatasetsOutString(datasets) {
|
|
2
2
|
return datasets.length === 1 ? `dataset "${datasets[0]}"` : `datasets ${getStringArrayOutString(datasets)}`;
|
|
3
3
|
}
|
|
4
|
-
|
|
4
|
+
function getStringArrayOutString(array) {
|
|
5
5
|
return `[${array.map((d)=>`"${d}"`).join(',')}]`;
|
|
6
6
|
}
|
|
7
7
|
export function getStringList(array) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/actions/schema/utils/schemaStoreOutStrings.ts"],"sourcesContent":["export function getDatasetsOutString(datasets: string[]) {\n return datasets.length === 1\n ? `dataset \"${datasets[0]}\"`\n : `datasets ${getStringArrayOutString(datasets)}`\n}\n\
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/schema/utils/schemaStoreOutStrings.ts"],"sourcesContent":["export function getDatasetsOutString(datasets: string[]) {\n return datasets.length === 1\n ? `dataset \"${datasets[0]}\"`\n : `datasets ${getStringArrayOutString(datasets)}`\n}\n\nfunction getStringArrayOutString(array: string[]) {\n return `[${array.map((d) => `\"${d}\"`).join(',')}]`\n}\n\nexport function getStringList(array: string[]) {\n return array.map((s) => `- \"${s}\"`).join('\\n')\n}\n"],"names":["getDatasetsOutString","datasets","length","getStringArrayOutString","array","map","d","join","getStringList","s"],"mappings":"AAAA,OAAO,SAASA,qBAAqBC,QAAkB;IACrD,OAAOA,SAASC,MAAM,KAAK,IACvB,CAAC,SAAS,EAAED,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAC1B,CAAC,SAAS,EAAEE,wBAAwBF,WAAW;AACrD;AAEA,SAASE,wBAAwBC,KAAe;IAC9C,OAAO,CAAC,CAAC,EAAEA,MAAMC,GAAG,CAAC,CAACC,IAAM,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAEC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD;AAEA,OAAO,SAASC,cAAcJ,KAAe;IAC3C,OAAOA,MAAMC,GAAG,CAAC,CAACI,IAAM,CAAC,GAAG,EAAEA,EAAE,CAAC,CAAC,EAAEF,IAAI,CAAC;AAC3C"}
|
|
@@ -1,81 +1,29 @@
|
|
|
1
1
|
import { type Output } from '@sanity/cli-core';
|
|
2
|
-
import { type DeleteSchemaFlags } from '../deleteSchemaAction.js';
|
|
3
|
-
export interface DeploySchemasFlags extends SchemaStoreCommonFlags {
|
|
4
|
-
'schema-required'?: boolean;
|
|
5
|
-
tag?: string;
|
|
6
|
-
workspace?: string;
|
|
7
|
-
}
|
|
8
|
-
export interface SchemaListFlags extends SchemaStoreCommonFlags {
|
|
9
|
-
id?: string;
|
|
10
|
-
json?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export declare const validForIdChars = "a-zA-Z0-9._-";
|
|
13
|
-
export declare const validForIdPattern: RegExp;
|
|
14
2
|
export declare const validForNamesChars = "a-zA-Z0-9_-";
|
|
15
3
|
export declare const validForNamesPattern: RegExp;
|
|
16
4
|
export declare class FlagValidationError extends Error {
|
|
17
5
|
constructor(message: string);
|
|
18
6
|
}
|
|
19
|
-
interface WorkspaceSchemaId {
|
|
7
|
+
export interface WorkspaceSchemaId {
|
|
20
8
|
schemaId: string;
|
|
21
9
|
workspace: string;
|
|
22
10
|
}
|
|
23
|
-
export
|
|
24
|
-
|
|
25
|
-
'manifest-dir'?: string;
|
|
26
|
-
verbose?: boolean;
|
|
27
|
-
}
|
|
28
|
-
export declare function parseDeploySchemasConfig(flags: DeploySchemasFlags, context: {
|
|
29
|
-
workDir: string;
|
|
30
|
-
}): {
|
|
31
|
-
schemaRequired: boolean;
|
|
32
|
-
tag: string | undefined;
|
|
33
|
-
workspaceName: string | undefined;
|
|
34
|
-
extractManifest: boolean;
|
|
35
|
-
manifestDir: string;
|
|
36
|
-
verbose: boolean;
|
|
37
|
-
};
|
|
38
|
-
export declare function parseListSchemasConfig(flags: SchemaListFlags, context: {
|
|
39
|
-
workDir: string;
|
|
40
|
-
}): {
|
|
41
|
-
id: string | undefined;
|
|
42
|
-
json: boolean;
|
|
43
|
-
extractManifest: boolean;
|
|
44
|
-
manifestDir: string;
|
|
45
|
-
verbose: boolean;
|
|
46
|
-
};
|
|
47
|
-
export declare function parseDeleteSchemasConfig(flags: DeleteSchemaFlags, context: {
|
|
48
|
-
workDir: string;
|
|
49
|
-
}): {
|
|
50
|
-
dataset: string | undefined;
|
|
51
|
-
ids: WorkspaceSchemaId[];
|
|
52
|
-
extractManifest: boolean;
|
|
53
|
-
manifestDir: string;
|
|
54
|
-
verbose: boolean;
|
|
55
|
-
};
|
|
56
|
-
export declare function parseIds(flags: {
|
|
57
|
-
ids?: unknown;
|
|
58
|
-
}, errors: string[]): WorkspaceSchemaId[];
|
|
59
|
-
export declare function parseId(flags: {
|
|
60
|
-
id?: unknown;
|
|
61
|
-
}, errors: string[]): string | undefined;
|
|
62
|
-
export declare function parseWorkspaceSchemaId(id: string, errors: string[]): {
|
|
11
|
+
export declare function parseIds(ids?: string): WorkspaceSchemaId[];
|
|
12
|
+
export declare function parseWorkspaceSchemaId(errors: string[], id?: string): {
|
|
63
13
|
schemaId: string;
|
|
64
14
|
workspace: string;
|
|
65
15
|
} | undefined;
|
|
66
|
-
export declare function parseTag(flags: {
|
|
67
|
-
tag?: unknown;
|
|
68
|
-
}, errors: string[]): string | undefined;
|
|
69
16
|
/**
|
|
70
|
-
*
|
|
17
|
+
*
|
|
18
|
+
* @param tag - The tag to parse
|
|
19
|
+
* Throws an error if the tag is empty
|
|
20
|
+
* Throws an error if the tag contains a period
|
|
21
|
+
* Throws an error if the tag starts with a dash
|
|
22
|
+
* Returns the parsed tag
|
|
71
23
|
*/
|
|
72
|
-
export declare function
|
|
73
|
-
name: string;
|
|
74
|
-
projectId: string;
|
|
75
|
-
}, projectId: string): void;
|
|
24
|
+
export declare function parseTag(tag?: string): Promise<string | undefined>;
|
|
76
25
|
export declare function filterLogReadProjectIdMismatch(workspace: {
|
|
77
26
|
name: string;
|
|
78
27
|
projectId: string;
|
|
79
28
|
}, projectId: string, output: Output): boolean;
|
|
80
29
|
export declare const SCHEMA_PERMISSION_HELP_TEXT = "For multi-project workspaces, set SANITY_AUTH_TOKEN environment variable to a token with access to the workspace projects.";
|
|
81
|
-
export {};
|
|
@@ -1,111 +1,48 @@
|
|
|
1
|
+
import { CLIError } from '@oclif/core/errors';
|
|
2
|
+
import { uniqBy } from '../../../util/uniqBy.js';
|
|
1
3
|
import { isDefined } from '../../manifest/schemaTypeHelpers.js';
|
|
2
4
|
import { SANITY_WORKSPACE_SCHEMA_ID_PREFIX } from '../../manifest/types.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function uniqBy(array, key) {
|
|
6
|
-
const seen = new Set();
|
|
7
|
-
return array.filter((item)=>{
|
|
8
|
-
const value = item[key];
|
|
9
|
-
if (seen.has(value)) {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
seen.add(value);
|
|
13
|
-
return true;
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
export const validForIdChars = 'a-zA-Z0-9._-';
|
|
17
|
-
export const validForIdPattern = new RegExp(`^[${validForIdChars}]+$`);
|
|
5
|
+
const validForIdChars = 'a-zA-Z0-9._-';
|
|
6
|
+
const validForIdPattern = new RegExp(`^[${validForIdChars}]+$`);
|
|
18
7
|
//no periods allowed in workspaceName or tag in ids
|
|
19
8
|
export const validForNamesChars = 'a-zA-Z0-9_-';
|
|
20
9
|
export const validForNamesPattern = new RegExp(`^[${validForNamesChars}]+$`);
|
|
21
10
|
const requiredInId = SANITY_WORKSPACE_SCHEMA_ID_PREFIX.replaceAll(/[.]/g, String.raw`\.`);
|
|
22
|
-
const idIdPatternString = `^${requiredInId}
|
|
11
|
+
const idIdPatternString = String.raw`^${requiredInId}\.([${validForNamesChars}]+)`;
|
|
23
12
|
const baseIdPattern = new RegExp(`${idIdPatternString}$`);
|
|
24
|
-
const taggedIdIdPattern = new RegExp(`${idIdPatternString}
|
|
13
|
+
const taggedIdIdPattern = new RegExp(String.raw`${idIdPatternString}\.tag\.([${validForNamesChars}]+)$`);
|
|
25
14
|
export class FlagValidationError extends Error {
|
|
26
15
|
constructor(message){
|
|
27
16
|
super(message);
|
|
28
17
|
this.name = 'FlagValidationError';
|
|
29
18
|
}
|
|
30
19
|
}
|
|
31
|
-
function
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// extract manifest by default: our CLI layer handles both --extract-manifest (true) and --no-extract-manifest (false)
|
|
35
|
-
const extractManifest = flags['extract-manifest'] ?? true;
|
|
36
|
-
const fullManifestDir = resolveManifestDirectory(context.workDir, manifestDir);
|
|
37
|
-
return {
|
|
38
|
-
extractManifest,
|
|
39
|
-
manifestDir: fullManifestDir,
|
|
40
|
-
verbose
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
export function parseDeploySchemasConfig(flags, context) {
|
|
44
|
-
const errors = [];
|
|
45
|
-
const commonFlags = parseCommonFlags(flags, context, errors);
|
|
46
|
-
const workspaceName = parseWorkspace(flags, errors);
|
|
47
|
-
const tag = parseTag(flags, errors);
|
|
48
|
-
const schemaRequired = !!flags['schema-required'];
|
|
49
|
-
assertNoErrors(errors);
|
|
50
|
-
return {
|
|
51
|
-
...commonFlags,
|
|
52
|
-
schemaRequired,
|
|
53
|
-
tag,
|
|
54
|
-
workspaceName
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
export function parseListSchemasConfig(flags, context) {
|
|
58
|
-
const errors = [];
|
|
59
|
-
const commonFlags = parseCommonFlags(flags, context, errors);
|
|
60
|
-
const id = parseId(flags, errors);
|
|
61
|
-
const json = !!flags.json;
|
|
62
|
-
assertNoErrors(errors);
|
|
63
|
-
return {
|
|
64
|
-
...commonFlags,
|
|
65
|
-
id,
|
|
66
|
-
json
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
export function parseDeleteSchemasConfig(flags, context) {
|
|
70
|
-
const errors = [];
|
|
71
|
-
const commonFlags = parseCommonFlags(flags, context, errors);
|
|
72
|
-
const ids = parseIds(flags, errors);
|
|
73
|
-
const dataset = parseDataset(flags, errors);
|
|
74
|
-
assertNoErrors(errors);
|
|
75
|
-
return {
|
|
76
|
-
...commonFlags,
|
|
77
|
-
dataset,
|
|
78
|
-
ids
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
function assertNoErrors(errors) {
|
|
82
|
-
if (errors.length > 0) {
|
|
83
|
-
throw new FlagValidationError(`Invalid arguments:\n${errors.map((error)=>` - ${error}`).join('\n')}`);
|
|
20
|
+
export function parseIds(ids) {
|
|
21
|
+
if (!ids) {
|
|
22
|
+
throw new CLIError('ids argument is empty');
|
|
84
23
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const parsedIds = parseNonEmptyString(flags, 'ids', errors);
|
|
24
|
+
const errors = [];
|
|
25
|
+
const parsedIds = ids.split(',').map((id)=>id.trim()).filter((id)=>!!id).map((id)=>parseWorkspaceSchemaId(errors, id)).filter((item)=>isDefined(item));
|
|
88
26
|
if (errors.length > 0) {
|
|
89
|
-
|
|
27
|
+
throw new CLIError(`Invalid arguments:\n${errors.map((error)=>` - ${error}`).join('\n')}`);
|
|
90
28
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (uniqueIds.length < ids.length) {
|
|
94
|
-
errors.push(`ids contains duplicates`);
|
|
29
|
+
if (parsedIds.length === 0) {
|
|
30
|
+
throw new CLIError(`ids contains no valid id strings`);
|
|
95
31
|
}
|
|
96
|
-
|
|
97
|
-
|
|
32
|
+
const uniqueIds = uniqBy(parsedIds, 'schemaId');
|
|
33
|
+
if (uniqueIds.length < parsedIds.length) {
|
|
34
|
+
throw new CLIError(`ids contains duplicates`);
|
|
98
35
|
}
|
|
99
36
|
return uniqueIds;
|
|
100
37
|
}
|
|
101
|
-
export function
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
38
|
+
export function parseWorkspaceSchemaId(errors, id) {
|
|
39
|
+
if (id === undefined) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (!id) {
|
|
43
|
+
errors.push('id argument is empty');
|
|
44
|
+
return;
|
|
105
45
|
}
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
export function parseWorkspaceSchemaId(id, errors) {
|
|
109
46
|
const trimmedId = id.trim();
|
|
110
47
|
if (!validForIdPattern.test(trimmedId)) {
|
|
111
48
|
errors.push(`id can only contain characters in [${validForIdChars}] but found: "${trimmedId}"`);
|
|
@@ -133,58 +70,34 @@ export function parseWorkspaceSchemaId(id, errors) {
|
|
|
133
70
|
workspace
|
|
134
71
|
};
|
|
135
72
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const tag = parseNonEmptyString(flags, 'tag', errors);
|
|
150
|
-
if (errors.length > 0) {
|
|
151
|
-
return;
|
|
73
|
+
/**
|
|
74
|
+
*
|
|
75
|
+
* @param tag - The tag to parse
|
|
76
|
+
* Throws an error if the tag is empty
|
|
77
|
+
* Throws an error if the tag contains a period
|
|
78
|
+
* Throws an error if the tag starts with a dash
|
|
79
|
+
* Returns the parsed tag
|
|
80
|
+
*/ export async function parseTag(tag) {
|
|
81
|
+
if (tag === undefined) {
|
|
82
|
+
return tag;
|
|
83
|
+
}
|
|
84
|
+
if (!tag) {
|
|
85
|
+
throw new CLIError('tag argument is empty');
|
|
152
86
|
}
|
|
153
87
|
if (tag.includes('.')) {
|
|
154
|
-
|
|
155
|
-
return;
|
|
88
|
+
throw new CLIError(`tag cannot contain . (period), but was: "${tag}"`);
|
|
156
89
|
}
|
|
157
90
|
if (!validForNamesPattern.test(tag)) {
|
|
158
|
-
|
|
159
|
-
return;
|
|
91
|
+
throw new CLIError(`tag can only contain characters in [${validForNamesChars}], but was: "${tag}"`);
|
|
160
92
|
}
|
|
161
93
|
if (tag.startsWith('-')) {
|
|
162
|
-
|
|
163
|
-
return;
|
|
94
|
+
throw new CLIError(`tag cannot start with - (dash) but was: "${tag}"`);
|
|
164
95
|
}
|
|
165
96
|
return tag;
|
|
166
97
|
}
|
|
167
|
-
function parseNonEmptyString(flags, flagName, errors) {
|
|
168
|
-
const flag = flags[flagName];
|
|
169
|
-
if (!isString(flag) || !flag) {
|
|
170
|
-
errors.push(`${flagName} argument is empty`);
|
|
171
|
-
return '';
|
|
172
|
-
}
|
|
173
|
-
return flag;
|
|
174
|
-
}
|
|
175
|
-
function isString(flag) {
|
|
176
|
-
return typeof flag === 'string';
|
|
177
|
-
}
|
|
178
98
|
function getProjectIdMismatchMessage(workspace, operation) {
|
|
179
99
|
return `No permissions to ${operation} schema for workspace "${workspace.name}" with projectId "${workspace.projectId}"`;
|
|
180
100
|
}
|
|
181
|
-
/**
|
|
182
|
-
* At the moment schema store commands does not support studios where workspaces have multiple projects
|
|
183
|
-
*/ export function throwWriteProjectIdMismatch(workspace, projectId) {
|
|
184
|
-
if (workspace.projectId !== projectId) {
|
|
185
|
-
throw new Error(getProjectIdMismatchMessage(workspace, 'write'));
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
101
|
export function filterLogReadProjectIdMismatch(workspace, projectId, output) {
|
|
189
102
|
const canRead = workspace.projectId === projectId;
|
|
190
103
|
if (!canRead) output.warn(`${getProjectIdMismatchMessage(workspace, 'read')} – ignoring it.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/actions/schema/utils/schemaStoreValidation.ts"],"sourcesContent":["import {type Output} from '@sanity/cli-core'\n\nimport {isDefined} from '../../manifest/schemaTypeHelpers.js'\nimport {SANITY_WORKSPACE_SCHEMA_ID_PREFIX} from '../../manifest/types.js'\nimport {type DeleteSchemaFlags} from '../deleteSchemaAction.js'\nimport {resolveManifestDirectory} from './manifestReader.js'\n\n// TODO: These types will be imported from their respective files when migrated\nexport interface DeploySchemasFlags extends SchemaStoreCommonFlags {\n 'schema-required'?: boolean\n tag?: string\n workspace?: string\n}\n\nexport interface SchemaListFlags extends SchemaStoreCommonFlags {\n id?: string\n json?: boolean\n}\n\n// Native implementation instead of lodash/uniqBy\nfunction uniqBy<T>(array: T[], key: keyof T): T[] {\n const seen = new Set()\n return array.filter((item) => {\n const value = item[key]\n if (seen.has(value)) {\n return false\n }\n seen.add(value)\n return true\n })\n}\n\nexport const validForIdChars = 'a-zA-Z0-9._-'\nexport const validForIdPattern = new RegExp(`^[${validForIdChars}]+$`)\n\n//no periods allowed in workspaceName or tag in ids\nexport const validForNamesChars = 'a-zA-Z0-9_-'\nexport const validForNamesPattern = new RegExp(`^[${validForNamesChars}]+$`)\n\nconst requiredInId = SANITY_WORKSPACE_SCHEMA_ID_PREFIX.replaceAll(/[.]/g, String.raw`\\.`)\n\nconst idIdPatternString = `^${requiredInId}\\\\.([${validForNamesChars}]+)`\nconst baseIdPattern = new RegExp(`${idIdPatternString}$`)\nconst taggedIdIdPattern = new RegExp(`${idIdPatternString}\\\\.tag\\\\.([${validForNamesChars}]+)$`)\n\nexport class FlagValidationError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'FlagValidationError'\n }\n}\n\ninterface WorkspaceSchemaId {\n schemaId: string\n workspace: string\n}\n\nexport interface SchemaStoreCommonFlags {\n 'extract-manifest'?: boolean\n 'manifest-dir'?: string\n verbose?: boolean\n}\n\nfunction parseCommonFlags(\n flags: SchemaStoreCommonFlags,\n context: {workDir: string},\n errors: string[],\n) {\n const manifestDir = parseManifestDir(flags, errors)\n const verbose = !!flags.verbose\n // extract manifest by default: our CLI layer handles both --extract-manifest (true) and --no-extract-manifest (false)\n const extractManifest = flags['extract-manifest'] ?? true\n\n const fullManifestDir = resolveManifestDirectory(context.workDir, manifestDir)\n return {\n extractManifest,\n manifestDir: fullManifestDir,\n verbose,\n }\n}\n\nexport function parseDeploySchemasConfig(flags: DeploySchemasFlags, context: {workDir: string}) {\n const errors: string[] = []\n\n const commonFlags = parseCommonFlags(flags, context, errors)\n const workspaceName = parseWorkspace(flags, errors)\n const tag = parseTag(flags, errors)\n const schemaRequired = !!flags['schema-required']\n\n assertNoErrors(errors)\n return {...commonFlags, schemaRequired, tag, workspaceName}\n}\n\nexport function parseListSchemasConfig(flags: SchemaListFlags, context: {workDir: string}) {\n const errors: string[] = []\n\n const commonFlags = parseCommonFlags(flags, context, errors)\n const id = parseId(flags, errors)\n const json = !!flags.json\n\n assertNoErrors(errors)\n return {...commonFlags, id, json}\n}\n\nexport function parseDeleteSchemasConfig(flags: DeleteSchemaFlags, context: {workDir: string}) {\n const errors: string[] = []\n\n const commonFlags = parseCommonFlags(flags, context, errors)\n const ids = parseIds(flags, errors)\n const dataset = parseDataset(flags, errors)\n\n assertNoErrors(errors)\n return {...commonFlags, dataset, ids}\n}\n\nfunction assertNoErrors(errors: string[]) {\n if (errors.length > 0) {\n throw new FlagValidationError(\n `Invalid arguments:\\n${errors.map((error) => ` - ${error}`).join('\\n')}`,\n )\n }\n}\n\nexport function parseIds(flags: {ids?: unknown}, errors: string[]): WorkspaceSchemaId[] {\n const parsedIds = parseNonEmptyString(flags, 'ids', errors)\n if (errors.length > 0) {\n return []\n }\n\n const ids = parsedIds\n .split(',')\n .map((id) => id.trim())\n .filter((id) => !!id)\n .map((id) => parseWorkspaceSchemaId(id, errors))\n .filter((item) => isDefined(item))\n\n const uniqueIds = uniqBy(ids, 'schemaId' satisfies keyof (typeof ids)[number])\n if (uniqueIds.length < ids.length) {\n errors.push(`ids contains duplicates`)\n }\n if (errors.length === 0 && uniqueIds.length === 0) {\n errors.push(`ids contains no valid id strings`)\n }\n return uniqueIds\n}\n\nexport function parseId(flags: {id?: unknown}, errors: string[]) {\n const id = flags.id === undefined ? undefined : parseNonEmptyString(flags, 'id', errors)\n if (id) {\n return parseWorkspaceSchemaId(id, errors)?.schemaId\n }\n return\n}\n\nexport function parseWorkspaceSchemaId(id: string, errors: string[]) {\n const trimmedId = id.trim()\n\n if (!validForIdPattern.test(trimmedId)) {\n errors.push(`id can only contain characters in [${validForIdChars}] but found: \"${trimmedId}\"`)\n return\n }\n\n if (trimmedId.startsWith('-')) {\n errors.push(`id cannot start with - (dash) but found: \"${trimmedId}\"`)\n return\n }\n\n if (/\\.\\./g.test(trimmedId)) {\n errors.push(`id cannot have consecutive . (period) characters, but found: \"${trimmedId}\"`)\n return\n }\n\n const [, workspace] = trimmedId.match(taggedIdIdPattern) ?? trimmedId.match(baseIdPattern) ?? []\n if (!workspace) {\n errors.push(\n [\n `id must either match ${SANITY_WORKSPACE_SCHEMA_ID_PREFIX}.<workspaceName> `,\n `or ${SANITY_WORKSPACE_SCHEMA_ID_PREFIX}.<workspaceName>.tag.<tag> but found: \"${trimmedId}\". `,\n `Note that workspace name characters not in [${validForNamesChars}] has to be replaced with _ for schema id.`,\n ].join(''),\n )\n return\n }\n return {\n schemaId: trimmedId,\n workspace,\n }\n}\n\nfunction parseDataset(flags: {dataset?: unknown}, errors: string[]) {\n return flags.dataset === undefined ? undefined : parseNonEmptyString(flags, 'dataset', errors)\n}\n\nfunction parseWorkspace(flags: {workspace?: unknown}, errors: string[]) {\n return flags.workspace === undefined ? undefined : parseNonEmptyString(flags, 'workspace', errors)\n}\n\nfunction parseManifestDir(flags: {'manifest-dir'?: unknown}, errors: string[]) {\n return flags['manifest-dir'] === undefined\n ? undefined\n : parseNonEmptyString(flags, 'manifest-dir', errors)\n}\n\nexport function parseTag(flags: {tag?: unknown}, errors: string[]) {\n if (flags.tag === undefined) {\n return\n }\n\n const tag = parseNonEmptyString(flags, 'tag', errors)\n if (errors.length > 0) {\n return\n }\n\n if (tag.includes('.')) {\n errors.push(`tag cannot contain . (period), but was: \"${tag}\"`)\n return\n }\n\n if (!validForNamesPattern.test(tag)) {\n errors.push(`tag can only contain characters in [${validForNamesChars}], but was: \"${tag}\"`)\n return\n }\n\n if (tag.startsWith('-')) {\n errors.push(`tag cannot start with - (dash) but was: \"${tag}\"`)\n return\n }\n\n return tag\n}\n\nfunction parseNonEmptyString<\n Flag extends string,\n Flags extends Partial<Record<Flag, unknown | undefined>>,\n>(flags: Flags, flagName: Flag, errors: string[]): string {\n const flag = flags[flagName]\n if (!isString(flag) || !flag) {\n errors.push(`${flagName} argument is empty`)\n return ''\n }\n return flag\n}\n\nfunction isString(flag: unknown): flag is string {\n return typeof flag === 'string'\n}\n\nfunction getProjectIdMismatchMessage(\n workspace: {name: string; projectId: string},\n operation: 'read' | 'write',\n) {\n return `No permissions to ${operation} schema for workspace \"${workspace.name}\" with projectId \"${workspace.projectId}\"`\n}\n\n/**\n * At the moment schema store commands does not support studios where workspaces have multiple projects\n */\nexport function throwWriteProjectIdMismatch(\n workspace: {name: string; projectId: string},\n projectId: string,\n): void {\n if (workspace.projectId !== projectId) {\n throw new Error(getProjectIdMismatchMessage(workspace, 'write'))\n }\n}\n\nexport function filterLogReadProjectIdMismatch(\n workspace: {name: string; projectId: string},\n projectId: string,\n output: Output,\n) {\n const canRead = workspace.projectId === projectId\n if (!canRead) output.warn(`${getProjectIdMismatchMessage(workspace, 'read')} – ignoring it.`)\n return canRead\n}\n\nexport const SCHEMA_PERMISSION_HELP_TEXT =\n 'For multi-project workspaces, set SANITY_AUTH_TOKEN environment variable to a token with access to the workspace projects.'\n"],"names":["isDefined","SANITY_WORKSPACE_SCHEMA_ID_PREFIX","resolveManifestDirectory","uniqBy","array","key","seen","Set","filter","item","value","has","add","validForIdChars","validForIdPattern","RegExp","validForNamesChars","validForNamesPattern","requiredInId","replaceAll","String","raw","idIdPatternString","baseIdPattern","taggedIdIdPattern","FlagValidationError","Error","message","name","parseCommonFlags","flags","context","errors","manifestDir","parseManifestDir","verbose","extractManifest","fullManifestDir","workDir","parseDeploySchemasConfig","commonFlags","workspaceName","parseWorkspace","tag","parseTag","schemaRequired","assertNoErrors","parseListSchemasConfig","id","parseId","json","parseDeleteSchemasConfig","ids","parseIds","dataset","parseDataset","length","map","error","join","parsedIds","parseNonEmptyString","split","trim","parseWorkspaceSchemaId","uniqueIds","push","undefined","schemaId","trimmedId","test","startsWith","workspace","match","includes","flagName","flag","isString","getProjectIdMismatchMessage","operation","projectId","throwWriteProjectIdMismatch","filterLogReadProjectIdMismatch","output","canRead","warn","SCHEMA_PERMISSION_HELP_TEXT"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/schema/utils/schemaStoreValidation.ts"],"sourcesContent":["import {CLIError} from '@oclif/core/errors'\nimport {type Output} from '@sanity/cli-core'\n\nimport {uniqBy} from '../../../util/uniqBy.js'\nimport {isDefined} from '../../manifest/schemaTypeHelpers.js'\nimport {SANITY_WORKSPACE_SCHEMA_ID_PREFIX} from '../../manifest/types.js'\n\nconst validForIdChars = 'a-zA-Z0-9._-'\nconst validForIdPattern = new RegExp(`^[${validForIdChars}]+$`)\n\n//no periods allowed in workspaceName or tag in ids\nexport const validForNamesChars = 'a-zA-Z0-9_-'\nexport const validForNamesPattern = new RegExp(`^[${validForNamesChars}]+$`)\n\nconst requiredInId = SANITY_WORKSPACE_SCHEMA_ID_PREFIX.replaceAll(/[.]/g, String.raw`\\.`)\n\nconst idIdPatternString = String.raw`^${requiredInId}\\.([${validForNamesChars}]+)`\nconst baseIdPattern = new RegExp(`${idIdPatternString}$`)\nconst taggedIdIdPattern = new RegExp(\n String.raw`${idIdPatternString}\\.tag\\.([${validForNamesChars}]+)$`,\n)\n\nexport class FlagValidationError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'FlagValidationError'\n }\n}\n\nexport interface WorkspaceSchemaId {\n schemaId: string\n workspace: string\n}\n\nexport function parseIds(ids?: string): WorkspaceSchemaId[] {\n if (!ids) {\n throw new CLIError('ids argument is empty')\n }\n\n const errors: string[] = []\n\n const parsedIds = ids\n .split(',')\n .map((id) => id.trim())\n .filter((id) => !!id)\n .map((id) => parseWorkspaceSchemaId(errors, id))\n .filter((item) => isDefined(item))\n\n if (errors.length > 0) {\n throw new CLIError(`Invalid arguments:\\n${errors.map((error) => ` - ${error}`).join('\\n')}`)\n }\n\n if (parsedIds.length === 0) {\n throw new CLIError(`ids contains no valid id strings`)\n }\n\n const uniqueIds = uniqBy(parsedIds, 'schemaId' satisfies keyof (typeof parsedIds)[number])\n if (uniqueIds.length < parsedIds.length) {\n throw new CLIError(`ids contains duplicates`)\n }\n\n return uniqueIds\n}\n\nexport function parseWorkspaceSchemaId(errors: string[], id?: string) {\n if (id === undefined) {\n return\n }\n\n if (!id) {\n errors.push('id argument is empty')\n return\n }\n\n const trimmedId = id.trim()\n\n if (!validForIdPattern.test(trimmedId)) {\n errors.push(`id can only contain characters in [${validForIdChars}] but found: \"${trimmedId}\"`)\n return\n }\n\n if (trimmedId.startsWith('-')) {\n errors.push(`id cannot start with - (dash) but found: \"${trimmedId}\"`)\n return\n }\n\n if (/\\.\\./g.test(trimmedId)) {\n errors.push(`id cannot have consecutive . (period) characters, but found: \"${trimmedId}\"`)\n return\n }\n\n const [, workspace] = trimmedId.match(taggedIdIdPattern) ?? trimmedId.match(baseIdPattern) ?? []\n if (!workspace) {\n errors.push(\n [\n `id must either match ${SANITY_WORKSPACE_SCHEMA_ID_PREFIX}.<workspaceName> `,\n `or ${SANITY_WORKSPACE_SCHEMA_ID_PREFIX}.<workspaceName>.tag.<tag> but found: \"${trimmedId}\". `,\n `Note that workspace name characters not in [${validForNamesChars}] has to be replaced with _ for schema id.`,\n ].join(''),\n )\n return\n }\n return {\n schemaId: trimmedId,\n workspace,\n }\n}\n\n/**\n *\n * @param tag - The tag to parse\n * Throws an error if the tag is empty\n * Throws an error if the tag contains a period\n * Throws an error if the tag starts with a dash\n * Returns the parsed tag\n */\nexport async function parseTag(tag?: string) {\n if (tag === undefined) {\n return tag\n }\n\n if (!tag) {\n throw new CLIError('tag argument is empty')\n }\n\n if (tag.includes('.')) {\n throw new CLIError(`tag cannot contain . (period), but was: \"${tag}\"`)\n }\n\n if (!validForNamesPattern.test(tag)) {\n throw new CLIError(\n `tag can only contain characters in [${validForNamesChars}], but was: \"${tag}\"`,\n )\n }\n\n if (tag.startsWith('-')) {\n throw new CLIError(`tag cannot start with - (dash) but was: \"${tag}\"`)\n }\n\n return tag\n}\n\nfunction getProjectIdMismatchMessage(\n workspace: {name: string; projectId: string},\n operation: 'read' | 'write',\n) {\n return `No permissions to ${operation} schema for workspace \"${workspace.name}\" with projectId \"${workspace.projectId}\"`\n}\n\nexport function filterLogReadProjectIdMismatch(\n workspace: {name: string; projectId: string},\n projectId: string,\n output: Output,\n) {\n const canRead = workspace.projectId === projectId\n if (!canRead) output.warn(`${getProjectIdMismatchMessage(workspace, 'read')} – ignoring it.`)\n return canRead\n}\n\nexport const SCHEMA_PERMISSION_HELP_TEXT =\n 'For multi-project workspaces, set SANITY_AUTH_TOKEN environment variable to a token with access to the workspace projects.'\n"],"names":["CLIError","uniqBy","isDefined","SANITY_WORKSPACE_SCHEMA_ID_PREFIX","validForIdChars","validForIdPattern","RegExp","validForNamesChars","validForNamesPattern","requiredInId","replaceAll","String","raw","idIdPatternString","baseIdPattern","taggedIdIdPattern","FlagValidationError","Error","message","name","parseIds","ids","errors","parsedIds","split","map","id","trim","filter","parseWorkspaceSchemaId","item","length","error","join","uniqueIds","undefined","push","trimmedId","test","startsWith","workspace","match","schemaId","parseTag","tag","includes","getProjectIdMismatchMessage","operation","projectId","filterLogReadProjectIdMismatch","output","canRead","warn","SCHEMA_PERMISSION_HELP_TEXT"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ManifestWorkspaceFile } from '../../manifest/types';
|
|
2
|
+
export declare function uniqByProjectIdDataset(workspaces: ManifestWorkspaceFile[]): {
|
|
3
|
+
key: string;
|
|
4
|
+
schema: string;
|
|
5
|
+
tools: string;
|
|
6
|
+
name: string;
|
|
7
|
+
title?: string | undefined;
|
|
8
|
+
mediaLibrary?: import("sanity").MediaLibraryConfig | undefined;
|
|
9
|
+
dataset: string;
|
|
10
|
+
projectId: string;
|
|
11
|
+
basePath: string;
|
|
12
|
+
icon: string | null;
|
|
13
|
+
subtitle?: string | undefined;
|
|
14
|
+
}[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/schema/utils/uniqByProjectIdDataset.ts"],"sourcesContent":["import {uniqBy} from '../../../util/uniqBy.js'\nimport {type ManifestWorkspaceFile} from '../../manifest/types'\n\nexport function uniqByProjectIdDataset(workspaces: ManifestWorkspaceFile[]) {\n return uniqBy(\n workspaces.map((w) => ({\n ...w,\n key: `${w.projectId}-${w.dataset}`,\n })),\n 'key',\n )\n}\n"],"names":["uniqBy","uniqByProjectIdDataset","workspaces","map","w","key","projectId","dataset"],"mappings":"AAAA,SAAQA,MAAM,QAAO,0BAAyB;AAG9C,OAAO,SAASC,uBAAuBC,UAAmC;IACxE,OAAOF,OACLE,WAAWC,GAAG,CAAC,CAACC,IAAO,CAAA;YACrB,GAAGA,CAAC;YACJC,KAAK,GAAGD,EAAEE,SAAS,CAAC,CAAC,EAAEF,EAAEG,OAAO,EAAE;QACpC,CAAA,IACA;AAEJ"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { type SanityClient } from '@sanity/client';
|
|
2
1
|
interface GetMembersForProjectOptions {
|
|
3
|
-
client: SanityClient;
|
|
4
2
|
projectId: string;
|
|
5
3
|
/**
|
|
6
4
|
* Whether to include pending invitations in the response
|
|
@@ -22,5 +20,5 @@ interface MemberList {
|
|
|
22
20
|
*
|
|
23
21
|
* @returns A list of all members for a project
|
|
24
22
|
*/
|
|
25
|
-
export declare function getMembersForProject({
|
|
23
|
+
export declare function getMembersForProject({ includeInvitations, includeRobots, projectId, }: GetMembersForProjectOptions): Promise<MemberList[]>;
|
|
26
24
|
export {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { getProjectById, getProjectInvites } from '../../services/projects.js';
|
|
2
|
+
import { getMembers } from '../../services/user.js';
|
|
1
3
|
import { getPendingInvitations } from './getPendingInvitations.js';
|
|
2
4
|
import { usersDebug } from './usersDebug.js';
|
|
3
5
|
function getUserProps(user) {
|
|
@@ -11,28 +13,15 @@ function getUserProps(user) {
|
|
|
11
13
|
* Get all members for a project
|
|
12
14
|
*
|
|
13
15
|
* @returns A list of all members for a project
|
|
14
|
-
*/ export async function getMembersForProject({
|
|
16
|
+
*/ export async function getMembersForProject({ includeInvitations, includeRobots, projectId }) {
|
|
15
17
|
try {
|
|
16
|
-
const useGlobalApi = true;
|
|
17
18
|
const [pendingInvitations, project] = await Promise.all([
|
|
18
|
-
includeInvitations ?
|
|
19
|
-
|
|
20
|
-
useGlobalApi
|
|
21
|
-
}).then(getPendingInvitations) : [],
|
|
22
|
-
client.request({
|
|
23
|
-
query: {
|
|
24
|
-
includeFeatures: 'false'
|
|
25
|
-
},
|
|
26
|
-
uri: `/projects/${projectId}`,
|
|
27
|
-
useGlobalApi
|
|
28
|
-
})
|
|
19
|
+
includeInvitations ? getProjectInvites(projectId).then(getPendingInvitations) : [],
|
|
20
|
+
getProjectById(projectId)
|
|
29
21
|
]);
|
|
30
22
|
const memberIds = project.members// Filter all the robot users if the robots flag is not set
|
|
31
23
|
.filter((member)=>!member.isRobot || includeRobots).map((member)=>member.id);
|
|
32
|
-
const users = await
|
|
33
|
-
uri: `/users/${memberIds.join(',')}`,
|
|
34
|
-
useGlobalApi
|
|
35
|
-
}).then((user)=>Array.isArray(user) ? user : [
|
|
24
|
+
const users = await getMembers(memberIds).then((user)=>Array.isArray(user) ? user : [
|
|
36
25
|
user
|
|
37
26
|
]);
|
|
38
27
|
const projectMembers = project.members.map((member)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/actions/users/getMembersForProject.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/users/getMembersForProject.ts"],"sourcesContent":["import {getProjectById, getProjectInvites} from '../../services/projects.js'\nimport {getMembers} from '../../services/user.js'\nimport {getPendingInvitations} from './getPendingInvitations.js'\nimport {type User} from './types.js'\nimport {usersDebug} from './usersDebug.js'\n\ninterface GetMembersForProjectOptions {\n projectId: string\n\n /**\n * Whether to include pending invitations in the response\n */\n includeInvitations?: boolean\n\n /**\n * Whether to include robots in the response\n */\n includeRobots?: boolean\n}\n\nfunction getUserProps(user: User | undefined) {\n const {createdAt: date, displayName: name} = user || {}\n return {date: date || '', name: name || ''}\n}\n\ninterface MemberList {\n date: string\n id: string\n name: string\n role: string\n}\n\n/**\n * Get all members for a project\n *\n * @returns A list of all members for a project\n */\nexport async function getMembersForProject({\n includeInvitations,\n includeRobots,\n projectId,\n}: GetMembersForProjectOptions): Promise<MemberList[]> {\n try {\n const [pendingInvitations, project] = await Promise.all([\n includeInvitations ? getProjectInvites(projectId).then(getPendingInvitations) : [],\n getProjectById(projectId),\n ])\n\n const memberIds = project.members\n // Filter all the robot users if the robots flag is not set\n .filter((member) => !member.isRobot || includeRobots)\n .map((member) => member.id)\n\n const users = await getMembers(memberIds).then((user) => (Array.isArray(user) ? user : [user]))\n\n const projectMembers = project.members\n .map((member) => {\n return {\n ...member,\n ...getUserProps(users.find((candidate) => candidate.id === member.id)),\n }\n })\n .filter((member) => !member.isRobot || includeRobots)\n\n const members = [...projectMembers, ...pendingInvitations]\n\n usersDebug(`Found ${projectMembers.length} project members for ${projectId}`)\n usersDebug(`Found ${pendingInvitations.length} pending invitations for ${projectId}`)\n return members\n } catch (error) {\n throw new Error(`Error fetching members for ${projectId}`, {cause: error})\n }\n}\n"],"names":["getProjectById","getProjectInvites","getMembers","getPendingInvitations","usersDebug","getUserProps","user","createdAt","date","displayName","name","getMembersForProject","includeInvitations","includeRobots","projectId","pendingInvitations","project","Promise","all","then","memberIds","members","filter","member","isRobot","map","id","users","Array","isArray","projectMembers","find","candidate","length","error","Error","cause"],"mappings":"AAAA,SAAQA,cAAc,EAAEC,iBAAiB,QAAO,6BAA4B;AAC5E,SAAQC,UAAU,QAAO,yBAAwB;AACjD,SAAQC,qBAAqB,QAAO,6BAA4B;AAEhE,SAAQC,UAAU,QAAO,kBAAiB;AAgB1C,SAASC,aAAaC,IAAsB;IAC1C,MAAM,EAACC,WAAWC,IAAI,EAAEC,aAAaC,IAAI,EAAC,GAAGJ,QAAQ,CAAC;IACtD,OAAO;QAACE,MAAMA,QAAQ;QAAIE,MAAMA,QAAQ;IAAE;AAC5C;AASA;;;;CAIC,GACD,OAAO,eAAeC,qBAAqB,EACzCC,kBAAkB,EAClBC,aAAa,EACbC,SAAS,EACmB;IAC5B,IAAI;QACF,MAAM,CAACC,oBAAoBC,QAAQ,GAAG,MAAMC,QAAQC,GAAG,CAAC;YACtDN,qBAAqBX,kBAAkBa,WAAWK,IAAI,CAAChB,yBAAyB,EAAE;YAClFH,eAAec;SAChB;QAED,MAAMM,YAAYJ,QAAQK,OAAO,AAC/B,2DAA2D;SAC1DC,MAAM,CAAC,CAACC,SAAW,CAACA,OAAOC,OAAO,IAAIX,eACtCY,GAAG,CAAC,CAACF,SAAWA,OAAOG,EAAE;QAE5B,MAAMC,QAAQ,MAAMzB,WAAWkB,WAAWD,IAAI,CAAC,CAACb,OAAUsB,MAAMC,OAAO,CAACvB,QAAQA,OAAO;gBAACA;aAAK;QAE7F,MAAMwB,iBAAiBd,QAAQK,OAAO,CACnCI,GAAG,CAAC,CAACF;YACJ,OAAO;gBACL,GAAGA,MAAM;gBACT,GAAGlB,aAAasB,MAAMI,IAAI,CAAC,CAACC,YAAcA,UAAUN,EAAE,KAAKH,OAAOG,EAAE,EAAE;YACxE;QACF,GACCJ,MAAM,CAAC,CAACC,SAAW,CAACA,OAAOC,OAAO,IAAIX;QAEzC,MAAMQ,UAAU;eAAIS;eAAmBf;SAAmB;QAE1DX,WAAW,CAAC,MAAM,EAAE0B,eAAeG,MAAM,CAAC,qBAAqB,EAAEnB,WAAW;QAC5EV,WAAW,CAAC,MAAM,EAAEW,mBAAmBkB,MAAM,CAAC,yBAAyB,EAAEnB,WAAW;QACpF,OAAOO;IACT,EAAE,OAAOa,OAAO;QACd,MAAM,IAAIC,MAAM,CAAC,2BAA2B,EAAErB,WAAW,EAAE;YAACsB,OAAOF;QAAK;IAC1E;AACF"}
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
interface Member {
|
|
2
|
-
createdAt: string;
|
|
3
|
-
id: string;
|
|
4
|
-
isCurrentUser: boolean;
|
|
5
|
-
isRobot: boolean;
|
|
6
|
-
role: string;
|
|
7
|
-
updatedAt: string | null;
|
|
8
|
-
}
|
|
9
1
|
export interface Invite {
|
|
10
2
|
acceptedByUserId: string | null;
|
|
11
3
|
createdAt: string;
|
|
@@ -26,9 +18,6 @@ export interface User {
|
|
|
26
18
|
provider: string;
|
|
27
19
|
updatedAt: string | null;
|
|
28
20
|
}
|
|
29
|
-
export interface PartialProjectResponse {
|
|
30
|
-
members: Member[];
|
|
31
|
-
}
|
|
32
21
|
export interface Role {
|
|
33
22
|
appliesToRobots: boolean;
|
|
34
23
|
appliesToUsers: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/actions/users/types.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/users/types.ts"],"sourcesContent":["export interface Invite {\n acceptedByUserId: string | null\n createdAt: string\n email: string\n isAccepted: boolean\n isRevoked: boolean\n role: string\n}\n\nexport interface User {\n createdAt: string\n displayName: string\n familyName: string | null\n\n givenName: string | null\n id: string\n imageUrl: string | null\n middleName: string | null\n\n projectId: string\n\n provider: string\n updatedAt: string | null\n}\n\nexport interface Role {\n appliesToRobots: boolean\n appliesToUsers: boolean\n grants: Record<string, Grant[] | undefined>\n isCustom: boolean\n name: string\n projectId: string\n title: string\n\n description?: string\n}\n\ninterface Grant {\n grants: unknown[]\n id: string\n isCustom: boolean\n name: string\n title: string\n\n description?: string\n}\n"],"names":[],"mappings":"AAyBA,WAUC"}
|