@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/commands/dataset/__tests__/import.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {describe, expect, test} from 'vitest'\n\ndescribe('#dataset:import', () => {\n test('should print datasets:import help', async () => {\n const {stdout} = await runCommand('dataset import --help')\n\n expect(stdout).toMatchInlineSnapshot(`\n \"Import documents to a Sanity dataset\n\n USAGE\n $ sanity dataset import SOURCE -p <value> -d <value> [-t <value>]\n [--replace | --missing] [--allow-failing-assets]\n [--allow-assets-in-different-dataset] [--replace-assets]\n [--skip-cross-dataset-references] [--allow-system-documents]\n [--asset-concurrency <value>]\n\n ARGUMENTS\n SOURCE Source file (use \"-\" for stdin)\n\n FLAGS\n -d, --dataset=<value> (required) Dataset to import to\n -p, --project=<value> (required) Project ID to import to\n -t, --token=<value> [env: SANITY_IMPORT_TOKEN] Token to\n authenticate with\n --allow-assets-in-different-dataset Allow asset documents to reference\n different project/dataset\n --allow-failing-assets Skip assets that cannot be\n fetched/uploaded\n --allow-system-documents Imports system documents\n --asset-concurrency=<value> Number of parallel asset imports\n --missing Skip documents that already exist\n --replace Replace documents with the same IDs\n --replace-assets Skip reuse of existing assets\n --skip-cross-dataset-references Skips references to other datasets\n\n DESCRIPTION\n Import documents to a Sanity dataset\n\n EXAMPLES\n Import \"./my-dataset.ndjson\" into dataset \"staging\"\n\n $ sanity dataset import -p myPrOj -d staging -t someSecretToken
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/dataset/__tests__/import.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {describe, expect, test} from 'vitest'\n\ndescribe('#dataset:import', () => {\n test('should print datasets:import help', async () => {\n const {stdout} = await runCommand('dataset import --help')\n\n expect(stdout).toMatchInlineSnapshot(String.raw`\n \"Import documents to a Sanity dataset\n\n USAGE\n $ sanity dataset import SOURCE -p <value> -d <value> [-t <value>]\n [--replace | --missing] [--allow-failing-assets]\n [--allow-assets-in-different-dataset] [--replace-assets]\n [--skip-cross-dataset-references] [--allow-system-documents]\n [--asset-concurrency <value>]\n\n ARGUMENTS\n SOURCE Source file (use \"-\" for stdin)\n\n FLAGS\n -d, --dataset=<value> (required) Dataset to import to\n -p, --project=<value> (required) Project ID to import to\n -t, --token=<value> [env: SANITY_IMPORT_TOKEN] Token to\n authenticate with\n --allow-assets-in-different-dataset Allow asset documents to reference\n different project/dataset\n --allow-failing-assets Skip assets that cannot be\n fetched/uploaded\n --allow-system-documents Imports system documents\n --asset-concurrency=<value> Number of parallel asset imports\n --missing Skip documents that already exist\n --replace Replace documents with the same IDs\n --replace-assets Skip reuse of existing assets\n --skip-cross-dataset-references Skips references to other datasets\n\n DESCRIPTION\n Import documents to a Sanity dataset\n\n EXAMPLES\n Import \"./my-dataset.ndjson\" into dataset \"staging\"\n\n $ sanity dataset import -p myPrOj -d staging -t someSecretToken \\\n my-dataset.ndjson\n\n Import into dataset \"test\" from stdin, read token from env var\n\n cat my-dataset.ndjson | sanity dataset import -p myPrOj -d test -\n\n \"\n `)\n })\n})\n"],"names":["runCommand","describe","expect","test","stdout","toMatchInlineSnapshot","String","raw"],"mappings":"AAAA,SAAQA,UAAU,QAAO,cAAa;AACtC,SAAQC,QAAQ,EAAEC,MAAM,EAAEC,IAAI,QAAO,SAAQ;AAE7CF,SAAS,mBAAmB;IAC1BE,KAAK,qCAAqC;QACxC,MAAM,EAACC,MAAM,EAAC,GAAG,MAAMJ,WAAW;QAElCE,OAAOE,QAAQC,qBAAqB,CAACC,OAAOC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2ChD,CAAC;IACH;AACF"}
|
|
@@ -1,58 +1,49 @@
|
|
|
1
1
|
import { runCommand } from '@oclif/test';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import { createTestClient, mockApi, testCommand } from '@sanity/cli-test';
|
|
3
|
+
import nock from 'nock';
|
|
4
4
|
import { afterEach, describe, expect, test, vi } from 'vitest';
|
|
5
|
+
import { DATASET_API_VERSION } from '../../../services/datasets.js';
|
|
5
6
|
import { NO_PROJECT_ID } from '../../../util/errorMessages.js';
|
|
6
7
|
import { ListDatasetCommand } from '../list.js';
|
|
7
|
-
vi.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
projectId: 'test-project'
|
|
18
|
-
}
|
|
19
|
-
})
|
|
20
|
-
}));
|
|
21
|
-
vi.mock('../../../../../cli-core/src/services/getCliToken.js', ()=>({
|
|
22
|
-
getCliToken: vi.fn().mockResolvedValue('test-token')
|
|
23
|
-
}));
|
|
24
|
-
vi.mock('../../../../../cli-core/src/services/apiClient.js', async (importOriginal)=>{
|
|
25
|
-
const actual = await importOriginal();
|
|
8
|
+
const mockListDatasets = vi.hoisted(()=>vi.fn());
|
|
9
|
+
const testProjectId = vi.hoisted(()=>'test-project');
|
|
10
|
+
const testToken = vi.hoisted(()=>'test-token');
|
|
11
|
+
vi.mock('@sanity/cli-core', async ()=>{
|
|
12
|
+
const actual = await vi.importActual('@sanity/cli-core');
|
|
13
|
+
const testClient = createTestClient({
|
|
14
|
+
apiVersion: 'v2025-09-16',
|
|
15
|
+
projectId: testProjectId,
|
|
16
|
+
token: testToken
|
|
17
|
+
});
|
|
26
18
|
return {
|
|
27
19
|
...actual,
|
|
28
|
-
getProjectCliClient: vi.fn()
|
|
20
|
+
getProjectCliClient: vi.fn().mockResolvedValue({
|
|
21
|
+
datasets: {
|
|
22
|
+
list: mockListDatasets
|
|
23
|
+
},
|
|
24
|
+
request: testClient.request
|
|
25
|
+
})
|
|
29
26
|
};
|
|
30
27
|
});
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
const defaultMocks = {
|
|
29
|
+
cliConfig: {
|
|
30
|
+
api: {
|
|
31
|
+
projectId: testProjectId
|
|
32
|
+
}
|
|
35
33
|
},
|
|
36
|
-
{
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
name: 'prod'
|
|
43
|
-
}
|
|
44
|
-
], aliasError)=>{
|
|
45
|
-
const mockRequest = aliasError ? vi.fn().mockRejectedValue(aliasError) : vi.fn().mockResolvedValue(aliases);
|
|
46
|
-
mockGetProjectCliClient.mockResolvedValue({
|
|
47
|
-
datasets: {
|
|
48
|
-
list: vi.fn().mockResolvedValue(datasets)
|
|
49
|
-
},
|
|
50
|
-
request: mockRequest
|
|
51
|
-
});
|
|
34
|
+
projectRoot: {
|
|
35
|
+
directory: '/test/path',
|
|
36
|
+
path: '/test/path/sanity.config.ts',
|
|
37
|
+
type: 'studio'
|
|
38
|
+
},
|
|
39
|
+
token: testToken
|
|
52
40
|
};
|
|
53
41
|
describe('#dataset:list', ()=>{
|
|
54
42
|
afterEach(()=>{
|
|
55
43
|
vi.clearAllMocks();
|
|
44
|
+
const pending = nock.pendingMocks();
|
|
45
|
+
nock.cleanAll();
|
|
46
|
+
expect(pending, 'pending mocks').toEqual([]);
|
|
56
47
|
});
|
|
57
48
|
test('--help works', async ()=>{
|
|
58
49
|
const { stdout } = await runCommand([
|
|
@@ -77,7 +68,7 @@ describe('#dataset:list', ()=>{
|
|
|
77
68
|
`);
|
|
78
69
|
});
|
|
79
70
|
test('lists datasets successfully', async ()=>{
|
|
80
|
-
|
|
71
|
+
mockListDatasets.mockResolvedValue([
|
|
81
72
|
{
|
|
82
73
|
name: 'production'
|
|
83
74
|
},
|
|
@@ -87,19 +78,33 @@ describe('#dataset:list', ()=>{
|
|
|
87
78
|
{
|
|
88
79
|
name: 'development'
|
|
89
80
|
}
|
|
90
|
-
]
|
|
91
|
-
|
|
81
|
+
]);
|
|
82
|
+
mockApi({
|
|
83
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
84
|
+
apiVersion: DATASET_API_VERSION,
|
|
85
|
+
method: 'get',
|
|
86
|
+
uri: `/aliases`
|
|
87
|
+
}).reply(200, []);
|
|
88
|
+
const { stdout } = await testCommand(ListDatasetCommand, [], {
|
|
89
|
+
mocks: defaultMocks
|
|
90
|
+
});
|
|
92
91
|
expect(stdout).toBe('production\ntest\ndevelopment\n');
|
|
93
92
|
});
|
|
94
93
|
test('lists datasets and aliases successfully', async ()=>{
|
|
95
|
-
|
|
94
|
+
mockListDatasets.mockResolvedValue([
|
|
96
95
|
{
|
|
97
96
|
name: 'production'
|
|
98
97
|
},
|
|
99
98
|
{
|
|
100
99
|
name: 'test'
|
|
101
100
|
}
|
|
102
|
-
]
|
|
101
|
+
]);
|
|
102
|
+
mockApi({
|
|
103
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
104
|
+
apiVersion: DATASET_API_VERSION,
|
|
105
|
+
method: 'get',
|
|
106
|
+
uri: `/aliases`
|
|
107
|
+
}).reply(200, [
|
|
103
108
|
{
|
|
104
109
|
datasetName: 'production',
|
|
105
110
|
name: 'prod'
|
|
@@ -109,15 +114,23 @@ describe('#dataset:list', ()=>{
|
|
|
109
114
|
name: 'staging'
|
|
110
115
|
}
|
|
111
116
|
]);
|
|
112
|
-
const { stdout } = await testCommand(ListDatasetCommand, []
|
|
117
|
+
const { stdout } = await testCommand(ListDatasetCommand, [], {
|
|
118
|
+
mocks: defaultMocks
|
|
119
|
+
});
|
|
113
120
|
expect(stdout).toBe('production\ntest\n~prod -> production\n~staging -> test\n');
|
|
114
121
|
});
|
|
115
122
|
test('handles unlinked aliases', async ()=>{
|
|
116
|
-
|
|
123
|
+
mockListDatasets.mockResolvedValue([
|
|
117
124
|
{
|
|
118
125
|
name: 'production'
|
|
119
126
|
}
|
|
120
|
-
]
|
|
127
|
+
]);
|
|
128
|
+
mockApi({
|
|
129
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
130
|
+
apiVersion: DATASET_API_VERSION,
|
|
131
|
+
method: 'get',
|
|
132
|
+
uri: `/aliases`
|
|
133
|
+
}).reply(200, [
|
|
121
134
|
{
|
|
122
135
|
datasetName: 'production',
|
|
123
136
|
name: 'prod'
|
|
@@ -127,30 +140,55 @@ describe('#dataset:list', ()=>{
|
|
|
127
140
|
name: 'old'
|
|
128
141
|
}
|
|
129
142
|
]);
|
|
130
|
-
const { stdout } = await testCommand(ListDatasetCommand, []
|
|
143
|
+
const { stdout } = await testCommand(ListDatasetCommand, [], {
|
|
144
|
+
mocks: defaultMocks
|
|
145
|
+
});
|
|
131
146
|
expect(stdout).toBe('production\n~prod -> production\n~old -> <unlinked>\n');
|
|
132
147
|
});
|
|
133
148
|
test('handles empty dataset list', async ()=>{
|
|
134
|
-
|
|
135
|
-
|
|
149
|
+
mockListDatasets.mockResolvedValue([]);
|
|
150
|
+
mockApi({
|
|
151
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
152
|
+
apiVersion: DATASET_API_VERSION,
|
|
153
|
+
method: 'get',
|
|
154
|
+
uri: `/aliases`
|
|
155
|
+
}).reply(200, []);
|
|
156
|
+
const { stdout } = await testCommand(ListDatasetCommand, [], {
|
|
157
|
+
mocks: defaultMocks
|
|
158
|
+
});
|
|
136
159
|
expect(stdout).toBe('No datasets found for this project.\n');
|
|
137
160
|
});
|
|
138
161
|
test('handles alias fetch failure gracefully', async ()=>{
|
|
139
|
-
|
|
162
|
+
mockListDatasets.mockResolvedValue([
|
|
140
163
|
{
|
|
141
164
|
name: 'production'
|
|
142
165
|
}
|
|
143
|
-
]
|
|
144
|
-
|
|
166
|
+
]);
|
|
167
|
+
mockApi({
|
|
168
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
169
|
+
apiVersion: DATASET_API_VERSION,
|
|
170
|
+
method: 'get',
|
|
171
|
+
uri: `/aliases`
|
|
172
|
+
}).reply(500, {
|
|
173
|
+
error: 'Alias service unavailable',
|
|
174
|
+
message: 'Alias service unavailable'
|
|
175
|
+
});
|
|
176
|
+
const { stdout } = await testCommand(ListDatasetCommand, [], {
|
|
177
|
+
mocks: defaultMocks
|
|
178
|
+
});
|
|
145
179
|
expect(stdout).toBe('production\n');
|
|
146
180
|
});
|
|
147
181
|
test('shows error when no project ID is found', async ()=>{
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
182
|
+
const { error } = await testCommand(ListDatasetCommand, [], {
|
|
183
|
+
mocks: {
|
|
184
|
+
...defaultMocks,
|
|
185
|
+
cliConfig: {
|
|
186
|
+
api: {
|
|
187
|
+
projectId: undefined
|
|
188
|
+
}
|
|
189
|
+
}
|
|
151
190
|
}
|
|
152
191
|
});
|
|
153
|
-
const { error } = await testCommand(ListDatasetCommand, []);
|
|
154
192
|
expect(error?.message).toBe(NO_PROJECT_ID);
|
|
155
193
|
expect(error?.oclif?.exit).toBe(1);
|
|
156
194
|
});
|
|
@@ -159,12 +197,16 @@ describe('#dataset:list', ()=>{
|
|
|
159
197
|
Object.assign(listError, {
|
|
160
198
|
statusCode: 500
|
|
161
199
|
});
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
200
|
+
mockListDatasets.mockRejectedValue(listError);
|
|
201
|
+
mockApi({
|
|
202
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
203
|
+
apiVersion: DATASET_API_VERSION,
|
|
204
|
+
method: 'get',
|
|
205
|
+
uri: `/aliases`
|
|
206
|
+
}).reply(200, []);
|
|
207
|
+
const { error } = await testCommand(ListDatasetCommand, [], {
|
|
208
|
+
mocks: defaultMocks
|
|
166
209
|
});
|
|
167
|
-
const { error } = await testCommand(ListDatasetCommand, []);
|
|
168
210
|
expect(error?.message).toContain('Dataset list retrieval failed');
|
|
169
211
|
expect(error?.message).toContain('Internal Server Error');
|
|
170
212
|
expect(error?.oclif?.exit).toBe(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/commands/dataset/__tests__/list.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {getCliConfig, getProjectCliClient} from '@sanity/cli-core'\nimport {testCommand} from '@sanity/cli-test'\nimport {afterEach, describe, expect, test, vi} from 'vitest'\n\nimport {type DatasetAliasDefinition} from '../../../services/datasets.js'\nimport {NO_PROJECT_ID} from '../../../util/errorMessages.js'\nimport {ListDatasetCommand} from '../list.js'\n\nvi.mock('../../../../../cli-core/src/config/findProjectRoot.js', () => ({\n findProjectRoot: vi.fn().mockResolvedValue({\n directory: '/test/path',\n root: '/test/path',\n type: 'studio',\n }),\n}))\n\nvi.mock('../../../../../cli-core/src/config/cli/getCliConfig.js', () => ({\n getCliConfig: vi.fn().mockResolvedValue({\n api: {\n projectId: 'test-project',\n },\n }),\n}))\n\nvi.mock('../../../../../cli-core/src/services/getCliToken.js', () => ({\n getCliToken: vi.fn().mockResolvedValue('test-token'),\n}))\n\nvi.mock('../../../../../cli-core/src/services/apiClient.js', async (importOriginal) => {\n const actual =\n await importOriginal<typeof import('../../../../../cli-core/src/services/apiClient.js')>()\n return {\n ...actual,\n getProjectCliClient: vi.fn(),\n }\n})\n\nconst mockGetProjectCliClient = vi.mocked(getProjectCliClient)\n\nconst setupMockClient = (\n datasets = [{name: 'production'}, {name: 'test'}],\n aliases: DatasetAliasDefinition[] = [{datasetName: 'production', name: 'prod'}],\n aliasError?: Error,\n) => {\n const mockRequest = aliasError\n ? vi.fn().mockRejectedValue(aliasError)\n : vi.fn().mockResolvedValue(aliases)\n\n mockGetProjectCliClient.mockResolvedValue({\n datasets: {\n list: vi.fn().mockResolvedValue(datasets),\n },\n request: mockRequest,\n } as never)\n}\n\ndescribe('#dataset:list', () => {\n afterEach(() => {\n vi.clearAllMocks()\n })\n\n test('--help works', async () => {\n const {stdout} = await runCommand(['dataset list', '--help'])\n expect(stdout).toMatchInlineSnapshot(`\n \"List datasets of your project\n\n USAGE\n $ sanity dataset list\n\n DESCRIPTION\n List datasets of your project\n\n EXAMPLES\n List datasets of your project\n\n $ sanity dataset list\n\n \"\n `)\n })\n\n test('lists datasets successfully', async () => {\n setupMockClient([{name: 'production'}, {name: 'test'}, {name: 'development'}], [])\n\n const {stdout} = await testCommand(ListDatasetCommand, [])\n expect(stdout).toBe('production\\ntest\\ndevelopment\\n')\n })\n\n test('lists datasets and aliases successfully', async () => {\n setupMockClient(\n [{name: 'production'}, {name: 'test'}],\n [\n {datasetName: 'production', name: 'prod'},\n {datasetName: 'test', name: 'staging'},\n ],\n )\n\n const {stdout} = await testCommand(ListDatasetCommand, [])\n expect(stdout).toBe('production\\ntest\\n~prod -> production\\n~staging -> test\\n')\n })\n\n test('handles unlinked aliases', async () => {\n setupMockClient(\n [{name: 'production'}],\n [\n {datasetName: 'production', name: 'prod'},\n {datasetName: null, name: 'old'},\n ],\n )\n\n const {stdout} = await testCommand(ListDatasetCommand, [])\n expect(stdout).toBe('production\\n~prod -> production\\n~old -> <unlinked>\\n')\n })\n\n test('handles empty dataset list', async () => {\n setupMockClient([], [])\n\n const {stdout} = await testCommand(ListDatasetCommand, [])\n expect(stdout).toBe('No datasets found for this project.\\n')\n })\n\n test('handles alias fetch failure gracefully', async () => {\n setupMockClient([{name: 'production'}], [], new Error('Alias service unavailable'))\n\n const {stdout} = await testCommand(ListDatasetCommand, [])\n expect(stdout).toBe('production\\n')\n })\n\n test('shows error when no project ID is found', async () => {\n vi.mocked(getCliConfig).mockResolvedValueOnce({\n api: {projectId: undefined},\n })\n\n const {error} = await testCommand(ListDatasetCommand, [])\n expect(error?.message).toBe(NO_PROJECT_ID)\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('handles API errors when listing datasets ', async () => {\n const listError = new Error('Internal Server Error')\n Object.assign(listError, {statusCode: 500})\n\n mockGetProjectCliClient.mockResolvedValue({\n datasets: {\n list: vi.fn().mockRejectedValue(listError),\n },\n } as never)\n\n const {error} = await testCommand(ListDatasetCommand, [])\n expect(error?.message).toContain('Dataset list retrieval failed')\n expect(error?.message).toContain('Internal Server Error')\n expect(error?.oclif?.exit).toBe(1)\n })\n})\n"],"names":["runCommand","getCliConfig","getProjectCliClient","testCommand","afterEach","describe","expect","test","vi","NO_PROJECT_ID","ListDatasetCommand","mock","findProjectRoot","fn","mockResolvedValue","directory","root","type","api","projectId","getCliToken","importOriginal","actual","mockGetProjectCliClient","mocked","setupMockClient","datasets","name","aliases","datasetName","aliasError","mockRequest","mockRejectedValue","list","request","clearAllMocks","stdout","toMatchInlineSnapshot","toBe","Error","mockResolvedValueOnce","undefined","error","message","oclif","exit","listError","Object","assign","statusCode","toContain"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/commands/dataset/__tests__/list.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {createTestClient, mockApi, testCommand} from '@sanity/cli-test'\nimport nock from 'nock'\nimport {afterEach, describe, expect, test, vi} from 'vitest'\n\nimport {DATASET_API_VERSION, type DatasetAliasDefinition} from '../../../services/datasets.js'\nimport {NO_PROJECT_ID} from '../../../util/errorMessages.js'\nimport {ListDatasetCommand} from '../list.js'\n\nconst mockListDatasets = vi.hoisted(() => vi.fn())\nconst testProjectId = vi.hoisted(() => 'test-project')\nconst testToken = vi.hoisted(() => 'test-token')\n\nvi.mock('@sanity/cli-core', async () => {\n const actual = await vi.importActual('@sanity/cli-core')\n\n const testClient = createTestClient({\n apiVersion: 'v2025-09-16',\n projectId: testProjectId,\n token: testToken,\n })\n\n return {\n ...actual,\n getProjectCliClient: vi.fn().mockResolvedValue({\n datasets: {\n list: mockListDatasets,\n } as never,\n request: testClient.request,\n }),\n }\n})\n\nconst defaultMocks = {\n cliConfig: {api: {projectId: testProjectId}},\n projectRoot: {\n directory: '/test/path',\n path: '/test/path/sanity.config.ts',\n type: 'studio' as const,\n },\n token: testToken,\n}\n\ndescribe('#dataset:list', () => {\n afterEach(() => {\n vi.clearAllMocks()\n const pending = nock.pendingMocks()\n nock.cleanAll()\n expect(pending, 'pending mocks').toEqual([])\n })\n\n test('--help works', async () => {\n const {stdout} = await runCommand(['dataset list', '--help'])\n expect(stdout).toMatchInlineSnapshot(`\n \"List datasets of your project\n\n USAGE\n $ sanity dataset list\n\n DESCRIPTION\n List datasets of your project\n\n EXAMPLES\n List datasets of your project\n\n $ sanity dataset list\n\n \"\n `)\n })\n\n test('lists datasets successfully', async () => {\n mockListDatasets.mockResolvedValue([\n {name: 'production'} as never,\n {name: 'test'} as never,\n {name: 'development'} as never,\n ])\n mockApi({\n apiHost: `https://${testProjectId}.api.sanity.io`,\n apiVersion: DATASET_API_VERSION,\n method: 'get',\n uri: `/aliases`,\n }).reply(200, [])\n\n const {stdout} = await testCommand(ListDatasetCommand, [], {\n mocks: defaultMocks,\n })\n\n expect(stdout).toBe('production\\ntest\\ndevelopment\\n')\n })\n\n test('lists datasets and aliases successfully', async () => {\n mockListDatasets.mockResolvedValue([{name: 'production'} as never, {name: 'test'} as never])\n mockApi({\n apiHost: `https://${testProjectId}.api.sanity.io`,\n apiVersion: DATASET_API_VERSION,\n method: 'get',\n uri: `/aliases`,\n }).reply(200, [\n {datasetName: 'production', name: 'prod'},\n {datasetName: 'test', name: 'staging'},\n ])\n\n const {stdout} = await testCommand(ListDatasetCommand, [], {\n mocks: defaultMocks,\n })\n expect(stdout).toBe('production\\ntest\\n~prod -> production\\n~staging -> test\\n')\n })\n\n test('handles unlinked aliases', async () => {\n mockListDatasets.mockResolvedValue([{name: 'production'} as never])\n mockApi({\n apiHost: `https://${testProjectId}.api.sanity.io`,\n apiVersion: DATASET_API_VERSION,\n method: 'get',\n uri: `/aliases`,\n }).reply(200, [\n {datasetName: 'production', name: 'prod'},\n {datasetName: null, name: 'old'},\n ] as DatasetAliasDefinition[])\n\n const {stdout} = await testCommand(ListDatasetCommand, [], {\n mocks: defaultMocks,\n })\n expect(stdout).toBe('production\\n~prod -> production\\n~old -> <unlinked>\\n')\n })\n\n test('handles empty dataset list', async () => {\n mockListDatasets.mockResolvedValue([])\n mockApi({\n apiHost: `https://${testProjectId}.api.sanity.io`,\n apiVersion: DATASET_API_VERSION,\n method: 'get',\n uri: `/aliases`,\n }).reply(200, [])\n\n const {stdout} = await testCommand(ListDatasetCommand, [], {\n mocks: defaultMocks,\n })\n expect(stdout).toBe('No datasets found for this project.\\n')\n })\n\n test('handles alias fetch failure gracefully', async () => {\n mockListDatasets.mockResolvedValue([{name: 'production'} as never])\n mockApi({\n apiHost: `https://${testProjectId}.api.sanity.io`,\n apiVersion: DATASET_API_VERSION,\n method: 'get',\n uri: `/aliases`,\n }).reply(500, {\n error: 'Alias service unavailable',\n message: 'Alias service unavailable',\n })\n\n const {stdout} = await testCommand(ListDatasetCommand, [], {\n mocks: defaultMocks,\n })\n expect(stdout).toBe('production\\n')\n })\n\n test('shows error when no project ID is found', async () => {\n const {error} = await testCommand(ListDatasetCommand, [], {\n mocks: {\n ...defaultMocks,\n cliConfig: {api: {projectId: undefined}},\n },\n })\n expect(error?.message).toBe(NO_PROJECT_ID)\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('handles API errors when listing datasets ', async () => {\n const listError = new Error('Internal Server Error')\n Object.assign(listError, {statusCode: 500})\n mockListDatasets.mockRejectedValue(listError)\n mockApi({\n apiHost: `https://${testProjectId}.api.sanity.io`,\n apiVersion: DATASET_API_VERSION,\n method: 'get',\n uri: `/aliases`,\n }).reply(200, [])\n\n const {error} = await testCommand(ListDatasetCommand, [], {\n mocks: defaultMocks,\n })\n expect(error?.message).toContain('Dataset list retrieval failed')\n expect(error?.message).toContain('Internal Server Error')\n expect(error?.oclif?.exit).toBe(1)\n })\n})\n"],"names":["runCommand","createTestClient","mockApi","testCommand","nock","afterEach","describe","expect","test","vi","DATASET_API_VERSION","NO_PROJECT_ID","ListDatasetCommand","mockListDatasets","hoisted","fn","testProjectId","testToken","mock","actual","importActual","testClient","apiVersion","projectId","token","getProjectCliClient","mockResolvedValue","datasets","list","request","defaultMocks","cliConfig","api","projectRoot","directory","path","type","clearAllMocks","pending","pendingMocks","cleanAll","toEqual","stdout","toMatchInlineSnapshot","name","apiHost","method","uri","reply","mocks","toBe","datasetName","error","message","undefined","oclif","exit","listError","Error","Object","assign","statusCode","mockRejectedValue","toContain"],"mappings":"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"}
|
|
@@ -1,35 +1,44 @@
|
|
|
1
1
|
import { runCommand } from '@oclif/test';
|
|
2
|
-
import {
|
|
3
|
-
import { mockApi, testCommand } from '@sanity/cli-test';
|
|
2
|
+
import { createTestClient, mockApi, testCommand } from '@sanity/cli-test';
|
|
4
3
|
import nock from 'nock';
|
|
5
4
|
import { afterEach, describe, expect, test, vi } from 'vitest';
|
|
6
|
-
import {
|
|
7
|
-
import { listDatasets } from '../../../../services/datasets.js';
|
|
5
|
+
import { DATASET_API_VERSION } from '../../../../services/datasets.js';
|
|
8
6
|
import { PROJECT_FEATURES_API_VERSION } from '../../../../services/getProjectFeatures.js';
|
|
9
7
|
import { NO_PROJECT_ID } from '../../../../util/errorMessages.js';
|
|
10
8
|
import { CreateAliasCommand } from '../create.js';
|
|
11
|
-
vi.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
const mockListDatasets = vi.hoisted(()=>vi.fn());
|
|
10
|
+
const testProjectId = vi.hoisted(()=>'test-project');
|
|
11
|
+
const testToken = vi.hoisted(()=>'test-token');
|
|
12
|
+
vi.mock('@sanity/cli-core', async (importOriginal)=>{
|
|
13
|
+
const actual = await importOriginal();
|
|
14
|
+
const testClient = createTestClient({
|
|
15
|
+
apiVersion: 'v2025-09-16',
|
|
16
|
+
projectId: testProjectId,
|
|
17
|
+
token: testToken
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
...actual,
|
|
21
|
+
getProjectCliClient: vi.fn().mockResolvedValue({
|
|
22
|
+
datasets: {
|
|
23
|
+
list: mockListDatasets
|
|
24
|
+
},
|
|
25
|
+
request: testClient.request
|
|
23
26
|
})
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
const defaultMocks = {
|
|
30
|
+
cliConfig: {
|
|
31
|
+
api: {
|
|
32
|
+
projectId: testProjectId
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
projectRoot: {
|
|
36
|
+
directory: '/test/path',
|
|
37
|
+
path: '/test/path/sanity.config.ts',
|
|
38
|
+
type: 'studio'
|
|
39
|
+
},
|
|
40
|
+
token: testToken
|
|
41
|
+
};
|
|
33
42
|
describe('#dataset:alias:create', ()=>{
|
|
34
43
|
afterEach(()=>{
|
|
35
44
|
vi.clearAllMocks();
|
|
@@ -91,22 +100,24 @@ describe('#dataset:alias:create', ()=>{
|
|
|
91
100
|
}
|
|
92
101
|
]);
|
|
93
102
|
mockApi({
|
|
94
|
-
apiHost:
|
|
103
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
95
104
|
apiVersion: PROJECT_FEATURES_API_VERSION,
|
|
96
|
-
|
|
105
|
+
method: 'get',
|
|
106
|
+
uri: `/features`
|
|
97
107
|
}).reply(200, [
|
|
98
108
|
'advancedDatasetManagement'
|
|
99
109
|
]);
|
|
100
110
|
mockApi({
|
|
101
|
-
apiHost:
|
|
102
|
-
apiVersion:
|
|
103
|
-
|
|
111
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
112
|
+
apiVersion: DATASET_API_VERSION,
|
|
113
|
+
method: 'get',
|
|
114
|
+
uri: `/aliases`
|
|
104
115
|
}).reply(200, []);
|
|
105
116
|
mockApi({
|
|
106
|
-
apiHost:
|
|
107
|
-
apiVersion:
|
|
117
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
118
|
+
apiVersion: DATASET_API_VERSION,
|
|
108
119
|
method: 'put',
|
|
109
|
-
uri:
|
|
120
|
+
uri: `/aliases/test-alias`
|
|
110
121
|
}).reply(200, {
|
|
111
122
|
aliasName: 'test-alias',
|
|
112
123
|
datasetName: 'production'
|
|
@@ -114,35 +125,41 @@ describe('#dataset:alias:create', ()=>{
|
|
|
114
125
|
const { stdout } = await testCommand(CreateAliasCommand, [
|
|
115
126
|
aliasInput,
|
|
116
127
|
'production'
|
|
117
|
-
]
|
|
128
|
+
], {
|
|
129
|
+
mocks: defaultMocks
|
|
130
|
+
});
|
|
118
131
|
expect(stdout).toContain('Dataset alias ~test-alias created and linked to production successfully');
|
|
119
132
|
});
|
|
120
133
|
test('creates alias without target dataset', async ()=>{
|
|
121
134
|
mockListDatasets.mockResolvedValue([]);
|
|
122
135
|
mockApi({
|
|
123
|
-
apiHost:
|
|
136
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
124
137
|
apiVersion: PROJECT_FEATURES_API_VERSION,
|
|
125
|
-
|
|
138
|
+
method: 'get',
|
|
139
|
+
uri: `/features`
|
|
126
140
|
}).reply(200, [
|
|
127
141
|
'advancedDatasetManagement'
|
|
128
142
|
]);
|
|
129
143
|
mockApi({
|
|
130
|
-
apiHost:
|
|
131
|
-
apiVersion:
|
|
132
|
-
|
|
144
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
145
|
+
apiVersion: DATASET_API_VERSION,
|
|
146
|
+
method: 'get',
|
|
147
|
+
uri: `/aliases`
|
|
133
148
|
}).reply(200, []);
|
|
134
149
|
mockApi({
|
|
135
|
-
apiHost:
|
|
136
|
-
apiVersion:
|
|
150
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
151
|
+
apiVersion: DATASET_API_VERSION,
|
|
137
152
|
method: 'put',
|
|
138
|
-
uri:
|
|
153
|
+
uri: `/aliases/test-alias`
|
|
139
154
|
}).reply(200, {
|
|
140
155
|
aliasName: 'test-alias',
|
|
141
156
|
datasetName: null
|
|
142
157
|
});
|
|
143
158
|
const { stdout } = await testCommand(CreateAliasCommand, [
|
|
144
159
|
'test-alias'
|
|
145
|
-
]
|
|
160
|
+
], {
|
|
161
|
+
mocks: defaultMocks
|
|
162
|
+
});
|
|
146
163
|
expect(stdout).toContain('Dataset alias ~test-alias created successfully');
|
|
147
164
|
});
|
|
148
165
|
test('fails when alias already exists', async ()=>{
|
|
@@ -152,16 +169,18 @@ describe('#dataset:alias:create', ()=>{
|
|
|
152
169
|
}
|
|
153
170
|
]);
|
|
154
171
|
mockApi({
|
|
155
|
-
apiHost:
|
|
172
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
156
173
|
apiVersion: PROJECT_FEATURES_API_VERSION,
|
|
157
|
-
|
|
174
|
+
method: 'get',
|
|
175
|
+
uri: `/features`
|
|
158
176
|
}).reply(200, [
|
|
159
177
|
'advancedDatasetManagement'
|
|
160
178
|
]);
|
|
161
179
|
mockApi({
|
|
162
|
-
apiHost:
|
|
163
|
-
apiVersion:
|
|
164
|
-
|
|
180
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
181
|
+
apiVersion: DATASET_API_VERSION,
|
|
182
|
+
method: 'get',
|
|
183
|
+
uri: `/aliases`
|
|
165
184
|
}).reply(200, [
|
|
166
185
|
{
|
|
167
186
|
datasetName: 'production',
|
|
@@ -171,7 +190,9 @@ describe('#dataset:alias:create', ()=>{
|
|
|
171
190
|
const { error } = await testCommand(CreateAliasCommand, [
|
|
172
191
|
'existing-alias',
|
|
173
192
|
'production'
|
|
174
|
-
]
|
|
193
|
+
], {
|
|
194
|
+
mocks: defaultMocks
|
|
195
|
+
});
|
|
175
196
|
expect(error?.message).toContain('Dataset alias "~existing-alias" already exists');
|
|
176
197
|
expect(error?.oclif?.exit).toBe(1);
|
|
177
198
|
});
|
|
@@ -182,14 +203,17 @@ describe('#dataset:alias:create', ()=>{
|
|
|
182
203
|
}
|
|
183
204
|
]);
|
|
184
205
|
mockApi({
|
|
185
|
-
apiHost:
|
|
206
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
186
207
|
apiVersion: PROJECT_FEATURES_API_VERSION,
|
|
187
|
-
|
|
208
|
+
method: 'get',
|
|
209
|
+
uri: `/features`
|
|
188
210
|
}).reply(200, []);
|
|
189
211
|
const { error } = await testCommand(CreateAliasCommand, [
|
|
190
212
|
'test-alias',
|
|
191
213
|
'production'
|
|
192
|
-
]
|
|
214
|
+
], {
|
|
215
|
+
mocks: defaultMocks
|
|
216
|
+
});
|
|
193
217
|
expect(error?.message).toContain('This project cannot create a dataset alias');
|
|
194
218
|
expect(error?.oclif?.exit).toBe(1);
|
|
195
219
|
});
|
|
@@ -200,33 +224,41 @@ describe('#dataset:alias:create', ()=>{
|
|
|
200
224
|
}
|
|
201
225
|
]);
|
|
202
226
|
mockApi({
|
|
203
|
-
apiHost:
|
|
227
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
204
228
|
apiVersion: PROJECT_FEATURES_API_VERSION,
|
|
205
|
-
|
|
229
|
+
method: 'get',
|
|
230
|
+
uri: `/features`
|
|
206
231
|
}).reply(200, [
|
|
207
232
|
'advancedDatasetManagement'
|
|
208
233
|
]);
|
|
209
234
|
mockApi({
|
|
210
|
-
apiHost:
|
|
211
|
-
apiVersion:
|
|
212
|
-
|
|
235
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
236
|
+
apiVersion: DATASET_API_VERSION,
|
|
237
|
+
method: 'get',
|
|
238
|
+
uri: `/aliases`
|
|
213
239
|
}).reply(200, []);
|
|
214
240
|
const { error } = await testCommand(CreateAliasCommand, [
|
|
215
241
|
'test-alias',
|
|
216
242
|
'nonexistent'
|
|
217
|
-
]
|
|
243
|
+
], {
|
|
244
|
+
mocks: defaultMocks
|
|
245
|
+
});
|
|
218
246
|
expect(error?.message).toContain('Dataset "nonexistent" does not exist');
|
|
219
247
|
expect(error?.message).toContain('Available datasets: production');
|
|
220
248
|
expect(error?.oclif?.exit).toBe(1);
|
|
221
249
|
});
|
|
222
250
|
test('fails when no project ID available', async ()=>{
|
|
223
|
-
mockGetCliConfig.mockResolvedValueOnce({
|
|
224
|
-
api: {}
|
|
225
|
-
});
|
|
226
251
|
const { error } = await testCommand(CreateAliasCommand, [
|
|
227
252
|
'test-alias',
|
|
228
253
|
'production'
|
|
229
|
-
]
|
|
254
|
+
], {
|
|
255
|
+
mocks: {
|
|
256
|
+
...defaultMocks,
|
|
257
|
+
cliConfig: {
|
|
258
|
+
api: {}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
});
|
|
230
262
|
expect(error?.message).toContain(NO_PROJECT_ID);
|
|
231
263
|
expect(error?.oclif?.exit).toBe(1);
|
|
232
264
|
});
|
|
@@ -237,29 +269,34 @@ describe('#dataset:alias:create', ()=>{
|
|
|
237
269
|
}
|
|
238
270
|
]);
|
|
239
271
|
mockApi({
|
|
240
|
-
apiHost:
|
|
272
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
241
273
|
apiVersion: PROJECT_FEATURES_API_VERSION,
|
|
242
|
-
|
|
274
|
+
method: 'get',
|
|
275
|
+
uri: `/features`
|
|
243
276
|
}).reply(200, [
|
|
244
277
|
'advancedDatasetManagement'
|
|
245
278
|
]);
|
|
246
279
|
mockApi({
|
|
247
|
-
apiHost:
|
|
248
|
-
apiVersion:
|
|
249
|
-
|
|
280
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
281
|
+
apiVersion: DATASET_API_VERSION,
|
|
282
|
+
method: 'get',
|
|
283
|
+
uri: `/aliases`
|
|
250
284
|
}).reply(200, []);
|
|
251
285
|
mockApi({
|
|
252
|
-
apiHost:
|
|
253
|
-
apiVersion:
|
|
286
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
287
|
+
apiVersion: DATASET_API_VERSION,
|
|
254
288
|
method: 'put',
|
|
255
|
-
uri:
|
|
289
|
+
uri: `/aliases/test-alias`
|
|
256
290
|
}).reply(500, {
|
|
291
|
+
error: 'API Error: Network timeout',
|
|
257
292
|
message: 'API Error: Network timeout'
|
|
258
293
|
});
|
|
259
294
|
const { error } = await testCommand(CreateAliasCommand, [
|
|
260
295
|
'test-alias',
|
|
261
296
|
'production'
|
|
262
|
-
]
|
|
297
|
+
], {
|
|
298
|
+
mocks: defaultMocks
|
|
299
|
+
});
|
|
263
300
|
expect(error?.message).toContain('Dataset alias creation failed: API Error: Network timeout');
|
|
264
301
|
expect(error?.oclif?.exit).toBe(1);
|
|
265
302
|
});
|
|
@@ -281,16 +318,19 @@ describe('#dataset:alias:create', ()=>{
|
|
|
281
318
|
}
|
|
282
319
|
]);
|
|
283
320
|
mockApi({
|
|
284
|
-
apiHost:
|
|
321
|
+
apiHost: `https://${testProjectId}.api.sanity.io`,
|
|
285
322
|
apiVersion: PROJECT_FEATURES_API_VERSION,
|
|
286
|
-
|
|
323
|
+
method: 'get',
|
|
324
|
+
uri: `/features`
|
|
287
325
|
}).reply(200, [
|
|
288
326
|
'advancedDatasetManagement'
|
|
289
327
|
]);
|
|
290
328
|
const { error } = await testCommand(CreateAliasCommand, [
|
|
291
329
|
alias,
|
|
292
330
|
dataset
|
|
293
|
-
]
|
|
331
|
+
], {
|
|
332
|
+
mocks: defaultMocks
|
|
333
|
+
});
|
|
294
334
|
expect(error?.message).toContain(expectedError);
|
|
295
335
|
expect(error?.oclif?.exit).toBe(1);
|
|
296
336
|
});
|