@powerhousedao/reactor-api 6.0.0-dev.22 → 6.0.0-dev.221
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/index.d.mts +3037 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +6687 -0
- package/dist/index.mjs.map +1 -0
- package/dist/src/packages/https-hooks.d.mts +39 -0
- package/dist/src/packages/https-hooks.d.mts.map +1 -0
- package/dist/src/packages/https-hooks.mjs +79 -0
- package/dist/src/packages/https-hooks.mjs.map +1 -0
- package/dist/src/packages/vite-loader.d.mts +29 -0
- package/dist/src/packages/vite-loader.d.mts.map +1 -0
- package/dist/src/packages/vite-loader.mjs +142 -0
- package/dist/src/packages/vite-loader.mjs.map +1 -0
- package/dist/types-Do4QTfT3.d.mts +37 -0
- package/dist/types-Do4QTfT3.d.mts.map +1 -0
- package/dist/utils-CVrD_vPF.mjs +287 -0
- package/dist/utils-CVrD_vPF.mjs.map +1 -0
- package/package.json +71 -63
- package/dist/codegen.d.ts +0 -4
- package/dist/codegen.d.ts.map +0 -1
- package/dist/codegen.js +0 -38
- package/dist/codegen.js.map +0 -1
- package/dist/index.d.ts +0 -14
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -14
- package/dist/index.js.map +0 -1
- package/dist/src/config.d.ts +0 -7
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js +0 -10
- package/dist/src/config.js.map +0 -1
- package/dist/src/graphql/analytics-subgraph.d.ts +0 -14
- package/dist/src/graphql/analytics-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/analytics-subgraph.js +0 -26
- package/dist/src/graphql/analytics-subgraph.js.map +0 -1
- package/dist/src/graphql/auth/index.d.ts +0 -2
- package/dist/src/graphql/auth/index.d.ts.map +0 -1
- package/dist/src/graphql/auth/index.js +0 -2
- package/dist/src/graphql/auth/index.js.map +0 -1
- package/dist/src/graphql/auth/resolvers.d.ts +0 -149
- package/dist/src/graphql/auth/resolvers.d.ts.map +0 -1
- package/dist/src/graphql/auth/resolvers.js +0 -173
- package/dist/src/graphql/auth/resolvers.js.map +0 -1
- package/dist/src/graphql/auth/schema.graphql +0 -173
- package/dist/src/graphql/auth/subgraph.d.ts +0 -177
- package/dist/src/graphql/auth/subgraph.d.ts.map +0 -1
- package/dist/src/graphql/auth/subgraph.js +0 -340
- package/dist/src/graphql/auth/subgraph.js.map +0 -1
- package/dist/src/graphql/base-subgraph.d.ts +0 -20
- package/dist/src/graphql/base-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/base-subgraph.js +0 -34
- package/dist/src/graphql/base-subgraph.js.map +0 -1
- package/dist/src/graphql/document-model-subgraph.d.ts +0 -51
- package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/document-model-subgraph.js +0 -104
- package/dist/src/graphql/document-model-subgraph.js.map +0 -1
- package/dist/src/graphql/drive-subgraph.d.ts +0 -25
- package/dist/src/graphql/drive-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/drive-subgraph.js +0 -487
- package/dist/src/graphql/drive-subgraph.js.map +0 -1
- package/dist/src/graphql/graphql-manager.d.ts +0 -47
- package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
- package/dist/src/graphql/graphql-manager.js +0 -433
- package/dist/src/graphql/graphql-manager.js.map +0 -1
- package/dist/src/graphql/index.d.ts +0 -9
- package/dist/src/graphql/index.d.ts.map +0 -1
- package/dist/src/graphql/index.js +0 -9
- package/dist/src/graphql/index.js.map +0 -1
- package/dist/src/graphql/playground.d.ts +0 -2
- package/dist/src/graphql/playground.d.ts.map +0 -1
- package/dist/src/graphql/playground.js +0 -74
- package/dist/src/graphql/playground.js.map +0 -1
- package/dist/src/graphql/reactor/adapters.d.ts +0 -62
- package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
- package/dist/src/graphql/reactor/adapters.js +0 -270
- package/dist/src/graphql/reactor/adapters.js.map +0 -1
- package/dist/src/graphql/reactor/factory.d.ts +0 -84
- package/dist/src/graphql/reactor/factory.d.ts.map +0 -1
- package/dist/src/graphql/reactor/factory.js +0 -7
- package/dist/src/graphql/reactor/factory.js.map +0 -1
- package/dist/src/graphql/reactor/gen/graphql.d.ts +0 -1242
- package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
- package/dist/src/graphql/reactor/gen/graphql.js +0 -496
- package/dist/src/graphql/reactor/gen/graphql.js.map +0 -1
- package/dist/src/graphql/reactor/index.d.ts +0 -4
- package/dist/src/graphql/reactor/index.d.ts.map +0 -1
- package/dist/src/graphql/reactor/index.js +0 -4
- package/dist/src/graphql/reactor/index.js.map +0 -1
- package/dist/src/graphql/reactor/operations.graphql +0 -253
- package/dist/src/graphql/reactor/pubsub.d.ts +0 -27
- package/dist/src/graphql/reactor/pubsub.d.ts.map +0 -1
- package/dist/src/graphql/reactor/pubsub.js +0 -93
- package/dist/src/graphql/reactor/pubsub.js.map +0 -1
- package/dist/src/graphql/reactor/requester.d.ts +0 -4
- package/dist/src/graphql/reactor/requester.d.ts.map +0 -1
- package/dist/src/graphql/reactor/requester.js +0 -22
- package/dist/src/graphql/reactor/requester.js.map +0 -1
- package/dist/src/graphql/reactor/requester.with-zod.d.ts +0 -4
- package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +0 -1
- package/dist/src/graphql/reactor/requester.with-zod.js +0 -53
- package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
- package/dist/src/graphql/reactor/resolvers.d.ts +0 -175
- package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
- package/dist/src/graphql/reactor/resolvers.js +0 -526
- package/dist/src/graphql/reactor/resolvers.js.map +0 -1
- package/dist/src/graphql/reactor/schema.graphql +0 -432
- package/dist/src/graphql/reactor/subgraph.d.ts +0 -47
- package/dist/src/graphql/reactor/subgraph.d.ts.map +0 -1
- package/dist/src/graphql/reactor/subgraph.js +0 -555
- package/dist/src/graphql/reactor/subgraph.js.map +0 -1
- package/dist/src/graphql/reactor/validation.d.ts +0 -102
- package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
- package/dist/src/graphql/reactor/validation.js +0 -73
- package/dist/src/graphql/reactor/validation.js.map +0 -1
- package/dist/src/graphql/system/env/getters.d.ts +0 -2
- package/dist/src/graphql/system/env/getters.d.ts.map +0 -1
- package/dist/src/graphql/system/env/getters.js +0 -4
- package/dist/src/graphql/system/env/getters.js.map +0 -1
- package/dist/src/graphql/system/env/index.d.ts +0 -2
- package/dist/src/graphql/system/env/index.d.ts.map +0 -1
- package/dist/src/graphql/system/env/index.js +0 -5
- package/dist/src/graphql/system/env/index.js.map +0 -1
- package/dist/src/graphql/system/index.d.ts +0 -3
- package/dist/src/graphql/system/index.d.ts.map +0 -1
- package/dist/src/graphql/system/index.js +0 -3
- package/dist/src/graphql/system/index.js.map +0 -1
- package/dist/src/graphql/system/system-subgraph.d.ts +0 -49
- package/dist/src/graphql/system/system-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/system/system-subgraph.js +0 -130
- package/dist/src/graphql/system/system-subgraph.js.map +0 -1
- package/dist/src/graphql/system/types.d.ts +0 -2
- package/dist/src/graphql/system/types.d.ts.map +0 -1
- package/dist/src/graphql/system/types.js +0 -2
- package/dist/src/graphql/system/types.js.map +0 -1
- package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
- package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
- package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
- package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
- package/dist/src/graphql/types.d.ts +0 -103
- package/dist/src/graphql/types.d.ts.map +0 -1
- package/dist/src/graphql/types.js +0 -2
- package/dist/src/graphql/types.js.map +0 -1
- package/dist/src/graphql/utils.d.ts +0 -26
- package/dist/src/graphql/utils.d.ts.map +0 -1
- package/dist/src/graphql/utils.js +0 -100
- package/dist/src/graphql/utils.js.map +0 -1
- package/dist/src/graphql/websocket.d.ts +0 -3
- package/dist/src/graphql/websocket.d.ts.map +0 -1
- package/dist/src/graphql/websocket.js +0 -15
- package/dist/src/graphql/websocket.js.map +0 -1
- package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
- package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
- package/dist/src/migrations/001_create_document_permissions.js +0 -91
- package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
- package/dist/src/migrations/index.d.ts +0 -10
- package/dist/src/migrations/index.d.ts.map +0 -1
- package/dist/src/migrations/index.js +0 -56
- package/dist/src/migrations/index.js.map +0 -1
- package/dist/src/packages/import-loader.d.ts +0 -16
- package/dist/src/packages/import-loader.d.ts.map +0 -1
- package/dist/src/packages/import-loader.js +0 -61
- package/dist/src/packages/import-loader.js.map +0 -1
- package/dist/src/packages/import-resolver.d.ts +0 -5
- package/dist/src/packages/import-resolver.d.ts.map +0 -1
- package/dist/src/packages/import-resolver.js +0 -127
- package/dist/src/packages/import-resolver.js.map +0 -1
- package/dist/src/packages/package-manager.d.ts +0 -34
- package/dist/src/packages/package-manager.d.ts.map +0 -1
- package/dist/src/packages/package-manager.js +0 -213
- package/dist/src/packages/package-manager.js.map +0 -1
- package/dist/src/packages/types.d.ts +0 -39
- package/dist/src/packages/types.d.ts.map +0 -1
- package/dist/src/packages/types.js +0 -2
- package/dist/src/packages/types.js.map +0 -1
- package/dist/src/packages/util.d.ts +0 -27
- package/dist/src/packages/util.d.ts.map +0 -1
- package/dist/src/packages/util.js +0 -97
- package/dist/src/packages/util.js.map +0 -1
- package/dist/src/packages/vite-loader.d.ts +0 -24
- package/dist/src/packages/vite-loader.d.ts.map +0 -1
- package/dist/src/packages/vite-loader.js +0 -172
- package/dist/src/packages/vite-loader.js.map +0 -1
- package/dist/src/server.d.ts +0 -73
- package/dist/src/server.d.ts.map +0 -1
- package/dist/src/server.js +0 -431
- package/dist/src/server.js.map +0 -1
- package/dist/src/services/auth.service.d.ts +0 -68
- package/dist/src/services/auth.service.d.ts.map +0 -1
- package/dist/src/services/auth.service.js +0 -199
- package/dist/src/services/auth.service.js.map +0 -1
- package/dist/src/services/document-permission.service.d.ts +0 -201
- package/dist/src/services/document-permission.service.d.ts.map +0 -1
- package/dist/src/services/document-permission.service.js +0 -636
- package/dist/src/services/document-permission.service.js.map +0 -1
- package/dist/src/sync/types.d.ts +0 -10
- package/dist/src/sync/types.d.ts.map +0 -1
- package/dist/src/sync/types.js +0 -2
- package/dist/src/sync/types.js.map +0 -1
- package/dist/src/sync/utils.d.ts +0 -7
- package/dist/src/sync/utils.d.ts.map +0 -1
- package/dist/src/sync/utils.js +0 -78
- package/dist/src/sync/utils.js.map +0 -1
- package/dist/src/tracing.d.ts +0 -4
- package/dist/src/tracing.d.ts.map +0 -1
- package/dist/src/tracing.js +0 -122
- package/dist/src/tracing.js.map +0 -1
- package/dist/src/types.d.ts +0 -18
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -2
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils/auth.d.ts +0 -3
- package/dist/src/utils/auth.d.ts.map +0 -1
- package/dist/src/utils/auth.js +0 -19
- package/dist/src/utils/auth.js.map +0 -1
- package/dist/src/utils/create-schema.d.ts +0 -11
- package/dist/src/utils/create-schema.d.ts.map +0 -1
- package/dist/src/utils/create-schema.js +0 -322
- package/dist/src/utils/create-schema.js.map +0 -1
- package/dist/src/utils/db.d.ts +0 -74
- package/dist/src/utils/db.d.ts.map +0 -1
- package/dist/src/utils/db.js +0 -101
- package/dist/src/utils/db.js.map +0 -1
- package/dist/src/utils/drive-url.d.ts +0 -2
- package/dist/src/utils/drive-url.d.ts.map +0 -1
- package/dist/src/utils/drive-url.js +0 -3
- package/dist/src/utils/drive-url.js.map +0 -1
- package/dist/src/utils/index.d.ts +0 -4
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js +0 -4
- package/dist/src/utils/index.js.map +0 -1
- package/dist/test/benchmarks/load.bench.d.ts +0 -2
- package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
- package/dist/test/benchmarks/load.bench.js +0 -73
- package/dist/test/benchmarks/load.bench.js.map +0 -1
- package/dist/test/benchmarks/sync.bench.d.ts +0 -2
- package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
- package/dist/test/benchmarks/sync.bench.js +0 -119
- package/dist/test/benchmarks/sync.bench.js.map +0 -1
- package/dist/test/document-permission.service.test.d.ts +0 -2
- package/dist/test/document-permission.service.test.d.ts.map +0 -1
- package/dist/test/document-permission.service.test.js +0 -480
- package/dist/test/document-permission.service.test.js.map +0 -1
- package/dist/test/drive-handlers.d.ts +0 -4
- package/dist/test/drive-handlers.d.ts.map +0 -1
- package/dist/test/drive-handlers.js +0 -39
- package/dist/test/drive-handlers.js.map +0 -1
- package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
- package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
- package/dist/test/drive-subgraph-permissions.test.js +0 -195
- package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
- package/dist/test/drive.test.d.ts +0 -2
- package/dist/test/drive.test.d.ts.map +0 -1
- package/dist/test/drive.test.js +0 -142
- package/dist/test/drive.test.js.map +0 -1
- package/dist/test/identity-integration.test.d.ts +0 -2
- package/dist/test/identity-integration.test.d.ts.map +0 -1
- package/dist/test/identity-integration.test.js +0 -349
- package/dist/test/identity-integration.test.js.map +0 -1
- package/dist/test/index.d.ts +0 -3
- package/dist/test/index.d.ts.map +0 -1
- package/dist/test/index.js +0 -3
- package/dist/test/index.js.map +0 -1
- package/dist/test/permissions-integration.test.d.ts +0 -2
- package/dist/test/permissions-integration.test.d.ts.map +0 -1
- package/dist/test/permissions-integration.test.js +0 -421
- package/dist/test/permissions-integration.test.js.map +0 -1
- package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
- package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
- package/dist/test/pull-responder-transmitter.test.js +0 -220
- package/dist/test/pull-responder-transmitter.test.js.map +0 -1
- package/dist/test/push-transmitter.test.d.ts +0 -2
- package/dist/test/push-transmitter.test.d.ts.map +0 -1
- package/dist/test/push-transmitter.test.js +0 -179
- package/dist/test/push-transmitter.test.js.map +0 -1
- package/dist/test/reactor-adapters.test.d.ts +0 -2
- package/dist/test/reactor-adapters.test.d.ts.map +0 -1
- package/dist/test/reactor-adapters.test.js +0 -379
- package/dist/test/reactor-adapters.test.js.map +0 -1
- package/dist/test/reactor-client.test.d.ts +0 -2
- package/dist/test/reactor-client.test.d.ts.map +0 -1
- package/dist/test/reactor-client.test.js +0 -212
- package/dist/test/reactor-client.test.js.map +0 -1
- package/dist/test/reactor-resolvers.test.d.ts +0 -2
- package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
- package/dist/test/reactor-resolvers.test.js +0 -261
- package/dist/test/reactor-resolvers.test.js.map +0 -1
- package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
- package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
- package/dist/test/reactor-subgraph-permissions.test.js +0 -400
- package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
- package/dist/test/router.test.d.ts +0 -2
- package/dist/test/router.test.d.ts.map +0 -1
- package/dist/test/router.test.js +0 -38
- package/dist/test/router.test.js.map +0 -1
- package/dist/test/subscriptions.test.d.ts +0 -2
- package/dist/test/subscriptions.test.d.ts.map +0 -1
- package/dist/test/subscriptions.test.js +0 -246
- package/dist/test/subscriptions.test.js.map +0 -1
- package/dist/test/system.test.d.ts +0 -2
- package/dist/test/system.test.d.ts.map +0 -1
- package/dist/test/system.test.js +0 -211
- package/dist/test/system.test.js.map +0 -1
- package/dist/test/three-reactor-gql-sync.test.d.ts +0 -2
- package/dist/test/three-reactor-gql-sync.test.d.ts.map +0 -1
- package/dist/test/three-reactor-gql-sync.test.js +0 -368
- package/dist/test/three-reactor-gql-sync.test.js.map +0 -1
- package/dist/test/two-reactor-gql-catchup-duplicate.test.d.ts +0 -2
- package/dist/test/two-reactor-gql-catchup-duplicate.test.d.ts.map +0 -1
- package/dist/test/two-reactor-gql-catchup-duplicate.test.js +0 -264
- package/dist/test/two-reactor-gql-catchup-duplicate.test.js.map +0 -1
- package/dist/test/two-reactor-gql-sync.test.d.ts +0 -2
- package/dist/test/two-reactor-gql-sync.test.d.ts.map +0 -1
- package/dist/test/two-reactor-gql-sync.test.js +0 -348
- package/dist/test/two-reactor-gql-sync.test.js.map +0 -1
- package/dist/test/utils/gql-resolver-bridge.d.ts +0 -12
- package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
- package/dist/test/utils/gql-resolver-bridge.js +0 -60
- package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
- package/dist/test/utils.d.ts +0 -10
- package/dist/test/utils.d.ts.map +0 -1
- package/dist/test/utils.js +0 -23
- package/dist/test/utils.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -38
- package/dist/vitest.config.js.map +0 -1
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { GraphQLError } from "graphql";
|
|
2
|
-
export async function documentAccess(service, args) {
|
|
3
|
-
const permissions = await service.getDocumentPermissions(args.documentId);
|
|
4
|
-
const groupPermissions = await service.getDocumentGroupPermissions(args.documentId);
|
|
5
|
-
return {
|
|
6
|
-
documentId: args.documentId,
|
|
7
|
-
permissions,
|
|
8
|
-
groupPermissions,
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
export async function userDocumentPermissions(service, userAddress) {
|
|
12
|
-
return service.getUserDocuments(userAddress);
|
|
13
|
-
}
|
|
14
|
-
export async function grantDocumentPermission(service, args, grantedByAddress, isGlobalAdmin) {
|
|
15
|
-
// Check authorization: must be global admin or document admin
|
|
16
|
-
if (!grantedByAddress) {
|
|
17
|
-
throw new GraphQLError("Authentication required");
|
|
18
|
-
}
|
|
19
|
-
if (!isGlobalAdmin) {
|
|
20
|
-
const canManage = await service.canManageDocument(args.documentId, grantedByAddress);
|
|
21
|
-
if (!canManage) {
|
|
22
|
-
throw new GraphQLError("Forbidden: You must be an admin of this document to grant permissions");
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return service.grantPermission(args.documentId, args.userAddress, args.permission, grantedByAddress);
|
|
26
|
-
}
|
|
27
|
-
export async function revokeDocumentPermission(service, args, revokedByAddress, isGlobalAdmin) {
|
|
28
|
-
// Check authorization: must be global admin or document admin
|
|
29
|
-
if (!revokedByAddress) {
|
|
30
|
-
throw new GraphQLError("Authentication required");
|
|
31
|
-
}
|
|
32
|
-
if (!isGlobalAdmin) {
|
|
33
|
-
const canManage = await service.canManageDocument(args.documentId, revokedByAddress);
|
|
34
|
-
if (!canManage) {
|
|
35
|
-
throw new GraphQLError("Forbidden: You must be an admin of this document to revoke permissions");
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
await service.revokePermission(args.documentId, args.userAddress);
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Create a getParentIds function using the reactor client
|
|
43
|
-
*/
|
|
44
|
-
export function createGetParentIdsFn(reactorClient) {
|
|
45
|
-
return async (documentId) => {
|
|
46
|
-
try {
|
|
47
|
-
const result = await reactorClient.getParents(documentId);
|
|
48
|
-
return result.results.map((doc) => doc.header.id);
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
// If document has no parents or error, return empty array
|
|
52
|
-
return [];
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
export async function groups(service) {
|
|
57
|
-
return service.listGroups();
|
|
58
|
-
}
|
|
59
|
-
export async function group(service, args) {
|
|
60
|
-
return service.getGroup(args.id);
|
|
61
|
-
}
|
|
62
|
-
export async function userGroups(service, args) {
|
|
63
|
-
return service.getUserGroups(args.userAddress);
|
|
64
|
-
}
|
|
65
|
-
export async function createGroup(service, args) {
|
|
66
|
-
return service.createGroup(args.name, args.description ?? undefined);
|
|
67
|
-
}
|
|
68
|
-
export async function deleteGroup(service, args) {
|
|
69
|
-
await service.deleteGroup(args.id);
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
export async function addUserToGroup(service, args) {
|
|
73
|
-
await service.addUserToGroup(args.userAddress, args.groupId);
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
export async function removeUserFromGroup(service, args) {
|
|
77
|
-
await service.removeUserFromGroup(args.userAddress, args.groupId);
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
|
-
export async function getGroupMembers(service, groupId) {
|
|
81
|
-
return service.getGroupMembers(groupId);
|
|
82
|
-
}
|
|
83
|
-
export async function grantGroupPermission(service, args, grantedByAddress, isGlobalAdmin) {
|
|
84
|
-
// Check authorization: must be global admin or document admin
|
|
85
|
-
if (!grantedByAddress) {
|
|
86
|
-
throw new GraphQLError("Authentication required");
|
|
87
|
-
}
|
|
88
|
-
if (!isGlobalAdmin) {
|
|
89
|
-
const canManage = await service.canManageDocument(args.documentId, grantedByAddress);
|
|
90
|
-
if (!canManage) {
|
|
91
|
-
throw new GraphQLError("Forbidden: You must be an admin of this document to grant permissions");
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return service.grantGroupPermission(args.documentId, args.groupId, args.permission, grantedByAddress);
|
|
95
|
-
}
|
|
96
|
-
export async function revokeGroupPermission(service, args, revokedByAddress, isGlobalAdmin) {
|
|
97
|
-
// Check authorization: must be global admin or document admin
|
|
98
|
-
if (!revokedByAddress) {
|
|
99
|
-
throw new GraphQLError("Authentication required");
|
|
100
|
-
}
|
|
101
|
-
if (!isGlobalAdmin) {
|
|
102
|
-
const canManage = await service.canManageDocument(args.documentId, revokedByAddress);
|
|
103
|
-
if (!canManage) {
|
|
104
|
-
throw new GraphQLError("Forbidden: You must be an admin of this document to revoke permissions");
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
await service.revokeGroupPermission(args.documentId, args.groupId);
|
|
108
|
-
return true;
|
|
109
|
-
}
|
|
110
|
-
export async function operationPermissions(service, args) {
|
|
111
|
-
const userPermissions = await service.getOperationUserPermissions(args.documentId, args.operationType);
|
|
112
|
-
const groupPermissions = await service.getOperationGroupPermissions(args.documentId, args.operationType);
|
|
113
|
-
return {
|
|
114
|
-
documentId: args.documentId,
|
|
115
|
-
operationType: args.operationType,
|
|
116
|
-
userPermissions,
|
|
117
|
-
groupPermissions,
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
export async function canExecuteOperation(service, args, userAddress) {
|
|
121
|
-
return service.canExecuteOperation(args.documentId, args.operationType, userAddress);
|
|
122
|
-
}
|
|
123
|
-
export async function grantOperationPermission(service, args, grantedByAddress, isGlobalAdmin) {
|
|
124
|
-
if (!grantedByAddress) {
|
|
125
|
-
throw new GraphQLError("Authentication required");
|
|
126
|
-
}
|
|
127
|
-
if (!isGlobalAdmin) {
|
|
128
|
-
const canManage = await service.canManageDocument(args.documentId, grantedByAddress);
|
|
129
|
-
if (!canManage) {
|
|
130
|
-
throw new GraphQLError("Forbidden: You must be an admin of this document to grant operation permissions");
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
return service.grantOperationPermission(args.documentId, args.operationType, args.userAddress, grantedByAddress);
|
|
134
|
-
}
|
|
135
|
-
export async function revokeOperationPermission(service, args, revokedByAddress, isGlobalAdmin) {
|
|
136
|
-
if (!revokedByAddress) {
|
|
137
|
-
throw new GraphQLError("Authentication required");
|
|
138
|
-
}
|
|
139
|
-
if (!isGlobalAdmin) {
|
|
140
|
-
const canManage = await service.canManageDocument(args.documentId, revokedByAddress);
|
|
141
|
-
if (!canManage) {
|
|
142
|
-
throw new GraphQLError("Forbidden: You must be an admin of this document to revoke operation permissions");
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
await service.revokeOperationPermission(args.documentId, args.operationType, args.userAddress);
|
|
146
|
-
return true;
|
|
147
|
-
}
|
|
148
|
-
export async function grantGroupOperationPermission(service, args, grantedByAddress, isGlobalAdmin) {
|
|
149
|
-
if (!grantedByAddress) {
|
|
150
|
-
throw new GraphQLError("Authentication required");
|
|
151
|
-
}
|
|
152
|
-
if (!isGlobalAdmin) {
|
|
153
|
-
const canManage = await service.canManageDocument(args.documentId, grantedByAddress);
|
|
154
|
-
if (!canManage) {
|
|
155
|
-
throw new GraphQLError("Forbidden: You must be an admin of this document to grant operation permissions");
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return service.grantGroupOperationPermission(args.documentId, args.operationType, args.groupId, grantedByAddress);
|
|
159
|
-
}
|
|
160
|
-
export async function revokeGroupOperationPermission(service, args, revokedByAddress, isGlobalAdmin) {
|
|
161
|
-
if (!revokedByAddress) {
|
|
162
|
-
throw new GraphQLError("Authentication required");
|
|
163
|
-
}
|
|
164
|
-
if (!isGlobalAdmin) {
|
|
165
|
-
const canManage = await service.canManageDocument(args.documentId, revokedByAddress);
|
|
166
|
-
if (!canManage) {
|
|
167
|
-
throw new GraphQLError("Forbidden: You must be an admin of this document to revoke operation permissions");
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
await service.revokeGroupOperationPermission(args.documentId, args.operationType, args.groupId);
|
|
171
|
-
return true;
|
|
172
|
-
}
|
|
173
|
-
//# sourceMappingURL=resolvers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../../src/graphql/auth/resolvers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
# Auth Subgraph Schema
|
|
2
|
-
# Contains all document permission and authorization related types
|
|
3
|
-
|
|
4
|
-
scalar DateTime
|
|
5
|
-
|
|
6
|
-
# Permission levels for documents
|
|
7
|
-
enum DocumentPermissionLevel {
|
|
8
|
-
# Can fetch and read the document
|
|
9
|
-
READ
|
|
10
|
-
# Can push updates and modify the document
|
|
11
|
-
WRITE
|
|
12
|
-
# Can manage document permissions and settings
|
|
13
|
-
ADMIN
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
# Document permission entry
|
|
17
|
-
type DocumentPermissionEntry {
|
|
18
|
-
documentId: String!
|
|
19
|
-
userAddress: String!
|
|
20
|
-
permission: DocumentPermissionLevel!
|
|
21
|
-
grantedBy: String!
|
|
22
|
-
createdAt: DateTime!
|
|
23
|
-
updatedAt: DateTime!
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
# Group type
|
|
27
|
-
type Group {
|
|
28
|
-
id: Int!
|
|
29
|
-
name: String!
|
|
30
|
-
description: String
|
|
31
|
-
createdAt: DateTime!
|
|
32
|
-
updatedAt: DateTime!
|
|
33
|
-
members: [String!]!
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
# Document group permission entry
|
|
37
|
-
type DocumentGroupPermission {
|
|
38
|
-
documentId: String!
|
|
39
|
-
groupId: Int!
|
|
40
|
-
group: Group!
|
|
41
|
-
permission: DocumentPermissionLevel!
|
|
42
|
-
grantedBy: String!
|
|
43
|
-
createdAt: DateTime!
|
|
44
|
-
updatedAt: DateTime!
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
# Operation user permission entry
|
|
48
|
-
type OperationUserPermission {
|
|
49
|
-
documentId: String!
|
|
50
|
-
operationType: String!
|
|
51
|
-
userAddress: String!
|
|
52
|
-
grantedBy: String!
|
|
53
|
-
createdAt: DateTime!
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
# Operation group permission entry
|
|
57
|
-
type OperationGroupPermission {
|
|
58
|
-
documentId: String!
|
|
59
|
-
operationType: String!
|
|
60
|
-
groupId: Int!
|
|
61
|
-
group: Group!
|
|
62
|
-
grantedBy: String!
|
|
63
|
-
createdAt: DateTime!
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
# Combined document access info
|
|
67
|
-
type DocumentAccessInfo {
|
|
68
|
-
documentId: String!
|
|
69
|
-
permissions: [DocumentPermissionEntry!]!
|
|
70
|
-
groupPermissions: [DocumentGroupPermission!]!
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
# Operation permissions info
|
|
74
|
-
type OperationPermissionsInfo {
|
|
75
|
-
documentId: String!
|
|
76
|
-
operationType: String!
|
|
77
|
-
userPermissions: [OperationUserPermission!]!
|
|
78
|
-
groupPermissions: [OperationGroupPermission!]!
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
type Query {
|
|
82
|
-
# Get permissions for a document
|
|
83
|
-
documentAccess(documentId: String!): DocumentAccessInfo!
|
|
84
|
-
|
|
85
|
-
# Get all documents the current user has explicit access to
|
|
86
|
-
userDocumentPermissions: [DocumentPermissionEntry!]!
|
|
87
|
-
|
|
88
|
-
# Get all groups
|
|
89
|
-
groups: [Group!]!
|
|
90
|
-
|
|
91
|
-
# Get a specific group by ID
|
|
92
|
-
group(id: Int!): Group
|
|
93
|
-
|
|
94
|
-
# Get all groups a user belongs to
|
|
95
|
-
userGroups(userAddress: String!): [Group!]!
|
|
96
|
-
|
|
97
|
-
# Get operation permissions for a document and operation type
|
|
98
|
-
operationPermissions(documentId: String!, operationType: String!): OperationPermissionsInfo!
|
|
99
|
-
|
|
100
|
-
# Check if the current user can execute a specific operation on a document
|
|
101
|
-
canExecuteOperation(documentId: String!, operationType: String!): Boolean!
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
type Mutation {
|
|
105
|
-
# Grant a user permission on a document (requires ADMIN permission or global admin)
|
|
106
|
-
grantDocumentPermission(
|
|
107
|
-
documentId: String!
|
|
108
|
-
userAddress: String!
|
|
109
|
-
permission: DocumentPermissionLevel!
|
|
110
|
-
): DocumentPermissionEntry!
|
|
111
|
-
|
|
112
|
-
# Revoke a user's permission on a document (requires ADMIN permission or global admin)
|
|
113
|
-
revokeDocumentPermission(
|
|
114
|
-
documentId: String!
|
|
115
|
-
userAddress: String!
|
|
116
|
-
): Boolean!
|
|
117
|
-
|
|
118
|
-
# --- Group Management ---
|
|
119
|
-
|
|
120
|
-
# Create a new group
|
|
121
|
-
createGroup(name: String!, description: String): Group!
|
|
122
|
-
|
|
123
|
-
# Delete a group and all its associations
|
|
124
|
-
deleteGroup(id: Int!): Boolean!
|
|
125
|
-
|
|
126
|
-
# Add a user to a group
|
|
127
|
-
addUserToGroup(userAddress: String!, groupId: Int!): Boolean!
|
|
128
|
-
|
|
129
|
-
# Remove a user from a group
|
|
130
|
-
removeUserFromGroup(userAddress: String!, groupId: Int!): Boolean!
|
|
131
|
-
|
|
132
|
-
# --- Group Document Permissions ---
|
|
133
|
-
|
|
134
|
-
# Grant a group permission on a document
|
|
135
|
-
grantGroupPermission(
|
|
136
|
-
documentId: String!
|
|
137
|
-
groupId: Int!
|
|
138
|
-
permission: DocumentPermissionLevel!
|
|
139
|
-
): DocumentGroupPermission!
|
|
140
|
-
|
|
141
|
-
# Revoke a group's permission on a document
|
|
142
|
-
revokeGroupPermission(documentId: String!, groupId: Int!): Boolean!
|
|
143
|
-
|
|
144
|
-
# --- Operation Permissions ---
|
|
145
|
-
|
|
146
|
-
# Grant a user permission to execute an operation on a document
|
|
147
|
-
grantOperationPermission(
|
|
148
|
-
documentId: String!
|
|
149
|
-
operationType: String!
|
|
150
|
-
userAddress: String!
|
|
151
|
-
): OperationUserPermission!
|
|
152
|
-
|
|
153
|
-
# Revoke a user's permission to execute an operation
|
|
154
|
-
revokeOperationPermission(
|
|
155
|
-
documentId: String!
|
|
156
|
-
operationType: String!
|
|
157
|
-
userAddress: String!
|
|
158
|
-
): Boolean!
|
|
159
|
-
|
|
160
|
-
# Grant a group permission to execute an operation on a document
|
|
161
|
-
grantGroupOperationPermission(
|
|
162
|
-
documentId: String!
|
|
163
|
-
operationType: String!
|
|
164
|
-
groupId: Int!
|
|
165
|
-
): OperationGroupPermission!
|
|
166
|
-
|
|
167
|
-
# Revoke a group's permission to execute an operation
|
|
168
|
-
revokeGroupOperationPermission(
|
|
169
|
-
documentId: String!
|
|
170
|
-
operationType: String!
|
|
171
|
-
groupId: Int!
|
|
172
|
-
): Boolean!
|
|
173
|
-
}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import { BaseSubgraph } from "../base-subgraph.js";
|
|
2
|
-
import type { SubgraphArgs } from "../types.js";
|
|
3
|
-
import * as resolvers from "./resolvers.js";
|
|
4
|
-
/**
|
|
5
|
-
* Auth Subgraph - handles all document permission and authorization operations
|
|
6
|
-
*
|
|
7
|
-
* This subgraph is conditionally registered based on the DOCUMENT_PERMISSIONS_ENABLED
|
|
8
|
-
* feature flag. When enabled, it provides GraphQL operations for:
|
|
9
|
-
* - Document permissions (grant/revoke user access)
|
|
10
|
-
* - Group management (create/delete groups, manage membership)
|
|
11
|
-
* - Group document permissions (grant/revoke group access)
|
|
12
|
-
* - Operation-level permissions (fine-grained operation control)
|
|
13
|
-
*/
|
|
14
|
-
export declare class AuthSubgraph extends BaseSubgraph {
|
|
15
|
-
private logger;
|
|
16
|
-
constructor(args: SubgraphArgs);
|
|
17
|
-
name: string;
|
|
18
|
-
hasSubscriptions: boolean;
|
|
19
|
-
typeDefs: import("graphql").DocumentNode;
|
|
20
|
-
resolvers: {
|
|
21
|
-
Query: {
|
|
22
|
-
documentAccess: (_parent: unknown, args: {
|
|
23
|
-
documentId: string;
|
|
24
|
-
}) => Promise<resolvers.DocumentAccessInfo>;
|
|
25
|
-
userDocumentPermissions: (_parent: unknown, _args: unknown, ctx: {
|
|
26
|
-
user?: {
|
|
27
|
-
address: string;
|
|
28
|
-
};
|
|
29
|
-
}) => Promise<{
|
|
30
|
-
documentId: string;
|
|
31
|
-
userAddress: string;
|
|
32
|
-
permission: import("../../utils/db.js").DocumentPermissionLevel;
|
|
33
|
-
grantedBy: string;
|
|
34
|
-
createdAt: Date;
|
|
35
|
-
updatedAt: Date;
|
|
36
|
-
}[]>;
|
|
37
|
-
groups: () => Promise<resolvers.Group[]>;
|
|
38
|
-
group: (_parent: unknown, args: {
|
|
39
|
-
id: number;
|
|
40
|
-
}) => Promise<resolvers.Group | null>;
|
|
41
|
-
userGroups: (_parent: unknown, args: {
|
|
42
|
-
userAddress: string;
|
|
43
|
-
}) => Promise<resolvers.Group[]>;
|
|
44
|
-
operationPermissions: (_parent: unknown, args: {
|
|
45
|
-
documentId: string;
|
|
46
|
-
operationType: string;
|
|
47
|
-
}) => Promise<resolvers.OperationPermissionsInfo>;
|
|
48
|
-
canExecuteOperation: (_parent: unknown, args: {
|
|
49
|
-
documentId: string;
|
|
50
|
-
operationType: string;
|
|
51
|
-
}, ctx: {
|
|
52
|
-
user?: {
|
|
53
|
-
address: string;
|
|
54
|
-
};
|
|
55
|
-
}) => Promise<boolean>;
|
|
56
|
-
};
|
|
57
|
-
Mutation: {
|
|
58
|
-
grantDocumentPermission: (_parent: unknown, args: {
|
|
59
|
-
documentId: string;
|
|
60
|
-
userAddress: string;
|
|
61
|
-
permission: string;
|
|
62
|
-
}, ctx: {
|
|
63
|
-
user?: {
|
|
64
|
-
address: string;
|
|
65
|
-
};
|
|
66
|
-
isAdmin?: (address: string) => boolean;
|
|
67
|
-
}) => Promise<{
|
|
68
|
-
documentId: string;
|
|
69
|
-
userAddress: string;
|
|
70
|
-
permission: import("../../utils/db.js").DocumentPermissionLevel;
|
|
71
|
-
grantedBy: string;
|
|
72
|
-
createdAt: Date;
|
|
73
|
-
updatedAt: Date;
|
|
74
|
-
}>;
|
|
75
|
-
revokeDocumentPermission: (_parent: unknown, args: {
|
|
76
|
-
documentId: string;
|
|
77
|
-
userAddress: string;
|
|
78
|
-
}, ctx: {
|
|
79
|
-
user?: {
|
|
80
|
-
address: string;
|
|
81
|
-
};
|
|
82
|
-
isAdmin?: (address: string) => boolean;
|
|
83
|
-
}) => Promise<boolean>;
|
|
84
|
-
createGroup: (_parent: unknown, args: {
|
|
85
|
-
name: string;
|
|
86
|
-
description?: string | null;
|
|
87
|
-
}) => Promise<resolvers.Group>;
|
|
88
|
-
deleteGroup: (_parent: unknown, args: {
|
|
89
|
-
id: number;
|
|
90
|
-
}) => Promise<boolean>;
|
|
91
|
-
addUserToGroup: (_parent: unknown, args: {
|
|
92
|
-
userAddress: string;
|
|
93
|
-
groupId: number;
|
|
94
|
-
}) => Promise<boolean>;
|
|
95
|
-
removeUserFromGroup: (_parent: unknown, args: {
|
|
96
|
-
userAddress: string;
|
|
97
|
-
groupId: number;
|
|
98
|
-
}) => Promise<boolean>;
|
|
99
|
-
grantGroupPermission: (_parent: unknown, args: {
|
|
100
|
-
documentId: string;
|
|
101
|
-
groupId: number;
|
|
102
|
-
permission: string;
|
|
103
|
-
}, ctx: {
|
|
104
|
-
user?: {
|
|
105
|
-
address: string;
|
|
106
|
-
};
|
|
107
|
-
isAdmin?: (address: string) => boolean;
|
|
108
|
-
}) => Promise<resolvers.DocumentGroupPermission>;
|
|
109
|
-
revokeGroupPermission: (_parent: unknown, args: {
|
|
110
|
-
documentId: string;
|
|
111
|
-
groupId: number;
|
|
112
|
-
}, ctx: {
|
|
113
|
-
user?: {
|
|
114
|
-
address: string;
|
|
115
|
-
};
|
|
116
|
-
isAdmin?: (address: string) => boolean;
|
|
117
|
-
}) => Promise<boolean>;
|
|
118
|
-
grantOperationPermission: (_parent: unknown, args: {
|
|
119
|
-
documentId: string;
|
|
120
|
-
operationType: string;
|
|
121
|
-
userAddress: string;
|
|
122
|
-
}, ctx: {
|
|
123
|
-
user?: {
|
|
124
|
-
address: string;
|
|
125
|
-
};
|
|
126
|
-
isAdmin?: (address: string) => boolean;
|
|
127
|
-
}) => Promise<resolvers.OperationUserPermission>;
|
|
128
|
-
revokeOperationPermission: (_parent: unknown, args: {
|
|
129
|
-
documentId: string;
|
|
130
|
-
operationType: string;
|
|
131
|
-
userAddress: string;
|
|
132
|
-
}, ctx: {
|
|
133
|
-
user?: {
|
|
134
|
-
address: string;
|
|
135
|
-
};
|
|
136
|
-
isAdmin?: (address: string) => boolean;
|
|
137
|
-
}) => Promise<boolean>;
|
|
138
|
-
grantGroupOperationPermission: (_parent: unknown, args: {
|
|
139
|
-
documentId: string;
|
|
140
|
-
operationType: string;
|
|
141
|
-
groupId: number;
|
|
142
|
-
}, ctx: {
|
|
143
|
-
user?: {
|
|
144
|
-
address: string;
|
|
145
|
-
};
|
|
146
|
-
isAdmin?: (address: string) => boolean;
|
|
147
|
-
}) => Promise<resolvers.OperationGroupPermission>;
|
|
148
|
-
revokeGroupOperationPermission: (_parent: unknown, args: {
|
|
149
|
-
documentId: string;
|
|
150
|
-
operationType: string;
|
|
151
|
-
groupId: number;
|
|
152
|
-
}, ctx: {
|
|
153
|
-
user?: {
|
|
154
|
-
address: string;
|
|
155
|
-
};
|
|
156
|
-
isAdmin?: (address: string) => boolean;
|
|
157
|
-
}) => Promise<boolean>;
|
|
158
|
-
};
|
|
159
|
-
Group: {
|
|
160
|
-
members: (parent: {
|
|
161
|
-
id: number;
|
|
162
|
-
}) => Promise<string[]>;
|
|
163
|
-
};
|
|
164
|
-
DocumentGroupPermission: {
|
|
165
|
-
group: (parent: {
|
|
166
|
-
groupId: number;
|
|
167
|
-
}) => Promise<resolvers.Group>;
|
|
168
|
-
};
|
|
169
|
-
OperationGroupPermission: {
|
|
170
|
-
group: (parent: {
|
|
171
|
-
groupId: number;
|
|
172
|
-
}) => Promise<resolvers.Group>;
|
|
173
|
-
};
|
|
174
|
-
};
|
|
175
|
-
onSetup(): Promise<void>;
|
|
176
|
-
}
|
|
177
|
-
//# sourceMappingURL=subgraph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph.d.ts","sourceRoot":"","sources":["../../../../src/graphql/auth/subgraph.ts"],"names":[],"mappings":"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"}
|