@powerhousedao/reactor-api 5.1.0-dev.2 → 5.1.0-dev.21

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.
Files changed (118) hide show
  1. package/dist/codegen.js +2 -2
  2. package/dist/codegen.js.map +1 -1
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/src/graphql/auth/index.d.ts +2 -0
  8. package/dist/src/graphql/auth/index.d.ts.map +1 -0
  9. package/dist/src/graphql/auth/index.js +2 -0
  10. package/dist/src/graphql/auth/index.js.map +1 -0
  11. package/dist/src/graphql/auth/resolvers.d.ts +149 -0
  12. package/dist/src/graphql/auth/resolvers.d.ts.map +1 -0
  13. package/dist/src/graphql/auth/resolvers.js +173 -0
  14. package/dist/src/graphql/auth/resolvers.js.map +1 -0
  15. package/dist/src/graphql/auth/schema.graphql +173 -0
  16. package/dist/src/graphql/auth/subgraph.d.ts +177 -0
  17. package/dist/src/graphql/auth/subgraph.d.ts.map +1 -0
  18. package/dist/src/graphql/auth/subgraph.js +340 -0
  19. package/dist/src/graphql/auth/subgraph.js.map +1 -0
  20. package/dist/src/graphql/base-subgraph.d.ts +3 -1
  21. package/dist/src/graphql/base-subgraph.d.ts.map +1 -1
  22. package/dist/src/graphql/base-subgraph.js +2 -0
  23. package/dist/src/graphql/base-subgraph.js.map +1 -1
  24. package/dist/src/graphql/drive-subgraph.d.ts.map +1 -1
  25. package/dist/src/graphql/drive-subgraph.js +51 -10
  26. package/dist/src/graphql/drive-subgraph.js.map +1 -1
  27. package/dist/src/graphql/graphql-manager.d.ts +5 -2
  28. package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
  29. package/dist/src/graphql/graphql-manager.js +7 -2
  30. package/dist/src/graphql/graphql-manager.js.map +1 -1
  31. package/dist/src/graphql/index.d.ts +1 -0
  32. package/dist/src/graphql/index.d.ts.map +1 -1
  33. package/dist/src/graphql/index.js +1 -0
  34. package/dist/src/graphql/index.js.map +1 -1
  35. package/dist/src/graphql/reactor/adapters.js +1 -1
  36. package/dist/src/graphql/reactor/adapters.js.map +1 -1
  37. package/dist/src/graphql/reactor/factory.d.ts +4 -4
  38. package/dist/src/graphql/reactor/factory.d.ts.map +1 -1
  39. package/dist/src/graphql/reactor/gen/graphql.d.ts +295 -64
  40. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +1 -1
  41. package/dist/src/graphql/reactor/gen/graphql.js +121 -8
  42. package/dist/src/graphql/reactor/gen/graphql.js.map +1 -1
  43. package/dist/src/graphql/reactor/operations.graphql +253 -0
  44. package/dist/src/graphql/reactor/pubsub.d.ts +2 -2
  45. package/dist/src/graphql/reactor/pubsub.d.ts.map +1 -1
  46. package/dist/src/graphql/reactor/pubsub.js +2 -1
  47. package/dist/src/graphql/reactor/pubsub.js.map +1 -1
  48. package/dist/src/graphql/reactor/resolvers.d.ts +10 -17
  49. package/dist/src/graphql/reactor/resolvers.d.ts.map +1 -1
  50. package/dist/src/graphql/reactor/resolvers.js +27 -36
  51. package/dist/src/graphql/reactor/resolvers.js.map +1 -1
  52. package/dist/src/graphql/reactor/schema.graphql +429 -0
  53. package/dist/src/graphql/reactor/subgraph.d.ts +34 -0
  54. package/dist/src/graphql/reactor/subgraph.d.ts.map +1 -1
  55. package/dist/src/graphql/reactor/subgraph.js +289 -26
  56. package/dist/src/graphql/reactor/subgraph.js.map +1 -1
  57. package/dist/src/graphql/reactor/validation.d.ts +44 -44
  58. package/dist/src/graphql/types.d.ts +4 -1
  59. package/dist/src/graphql/types.d.ts.map +1 -1
  60. package/dist/src/migrations/001_create_document_permissions.d.ts +4 -0
  61. package/dist/src/migrations/001_create_document_permissions.d.ts.map +1 -0
  62. package/dist/src/migrations/001_create_document_permissions.js +91 -0
  63. package/dist/src/migrations/001_create_document_permissions.js.map +1 -0
  64. package/dist/src/migrations/index.d.ts +10 -0
  65. package/dist/src/migrations/index.d.ts.map +1 -0
  66. package/dist/src/migrations/index.js +59 -0
  67. package/dist/src/migrations/index.js.map +1 -0
  68. package/dist/src/packages/util.js +1 -1
  69. package/dist/src/packages/util.js.map +1 -1
  70. package/dist/src/server.d.ts +16 -7
  71. package/dist/src/server.d.ts.map +1 -1
  72. package/dist/src/server.js +44 -18
  73. package/dist/src/server.js.map +1 -1
  74. package/dist/src/services/auth.service.d.ts +1 -0
  75. package/dist/src/services/auth.service.d.ts.map +1 -1
  76. package/dist/src/services/auth.service.js +31 -17
  77. package/dist/src/services/auth.service.js.map +1 -1
  78. package/dist/src/services/document-permission.service.d.ts +201 -0
  79. package/dist/src/services/document-permission.service.d.ts.map +1 -0
  80. package/dist/src/services/document-permission.service.js +636 -0
  81. package/dist/src/services/document-permission.service.js.map +1 -0
  82. package/dist/src/utils/create-schema.d.ts +1 -1
  83. package/dist/src/utils/create-schema.d.ts.map +1 -1
  84. package/dist/src/utils/create-schema.js +10 -1
  85. package/dist/src/utils/create-schema.js.map +1 -1
  86. package/dist/src/utils/db.d.ts +65 -1
  87. package/dist/src/utils/db.d.ts.map +1 -1
  88. package/dist/src/utils/db.js.map +1 -1
  89. package/dist/test/document-permission.service.test.d.ts +2 -0
  90. package/dist/test/document-permission.service.test.d.ts.map +1 -0
  91. package/dist/test/document-permission.service.test.js +480 -0
  92. package/dist/test/document-permission.service.test.js.map +1 -0
  93. package/dist/test/drive-subgraph-permissions.test.d.ts +2 -0
  94. package/dist/test/drive-subgraph-permissions.test.d.ts.map +1 -0
  95. package/dist/test/drive-subgraph-permissions.test.js +195 -0
  96. package/dist/test/drive-subgraph-permissions.test.js.map +1 -0
  97. package/dist/test/identity-integration.test.d.ts +2 -0
  98. package/dist/test/identity-integration.test.d.ts.map +1 -0
  99. package/dist/test/identity-integration.test.js +349 -0
  100. package/dist/test/identity-integration.test.js.map +1 -0
  101. package/dist/test/permissions-integration.test.d.ts +2 -0
  102. package/dist/test/permissions-integration.test.d.ts.map +1 -0
  103. package/dist/test/permissions-integration.test.js +421 -0
  104. package/dist/test/permissions-integration.test.js.map +1 -0
  105. package/dist/test/reactor-adapters.test.js +2 -2
  106. package/dist/test/reactor-adapters.test.js.map +1 -1
  107. package/dist/test/reactor-resolvers.test.js +24 -24
  108. package/dist/test/reactor-resolvers.test.js.map +1 -1
  109. package/dist/test/reactor-subgraph-permissions.test.d.ts +2 -0
  110. package/dist/test/reactor-subgraph-permissions.test.d.ts.map +1 -0
  111. package/dist/test/reactor-subgraph-permissions.test.js +400 -0
  112. package/dist/test/reactor-subgraph-permissions.test.js.map +1 -0
  113. package/dist/test/two-reactor-gql-sync.test.js +19 -17
  114. package/dist/test/two-reactor-gql-sync.test.js.map +1 -1
  115. package/dist/test/utils/gql-resolver-bridge.js +4 -4
  116. package/dist/test/utils/gql-resolver-bridge.js.map +1 -1
  117. package/dist/tsconfig.tsbuildinfo +1 -1
  118. package/package.json +10 -8
@@ -1,23 +1,129 @@
1
- import { childLogger } from "document-drive";
1
+ import { ConsoleLogger } from "@powerhousedao/reactor";
2
2
  import fs from "fs";
3
+ import { GraphQLError } from "graphql";
3
4
  import { withFilter } from "graphql-subscriptions";
4
5
  import { gql } from "graphql-tag";
5
6
  import path from "path";
7
+ import { fileURLToPath } from "url";
6
8
  import { BaseSubgraph } from "../base-subgraph.js";
7
9
  import { matchesJobFilter, matchesSearchFilter, toGqlDocumentChangeEvent, } from "./adapters.js";
8
10
  import { ensureGlobalDocumentSubscription, ensureJobSubscription, getPubSub, SUBSCRIPTION_TRIGGERS, } from "./pubsub.js";
9
11
  import * as resolvers from "./resolvers.js";
12
+ const __filename = fileURLToPath(import.meta.url);
13
+ const __dirname = path.dirname(__filename);
10
14
  export class ReactorSubgraph extends BaseSubgraph {
11
- logger = childLogger([
12
- "ReactorSubgraph",
13
- Math.floor(Math.random() * 999).toString(),
14
- ]);
15
+ // temp
16
+ logger = new ConsoleLogger(["ReactorSubgraph"]);
15
17
  constructor(args) {
16
18
  super(args);
17
19
  this.logger.verbose(`constructor()`);
18
20
  }
19
21
  name = "r/:reactor";
20
22
  hasSubscriptions = true;
23
+ /**
24
+ * Check if user has global read access (admin, user, or guest)
25
+ */
26
+ hasGlobalReadAccess(ctx) {
27
+ const isGlobalAdmin = ctx.isAdmin?.(ctx.user?.address ?? "");
28
+ const isGlobalUser = ctx.isUser?.(ctx.user?.address ?? "");
29
+ const isGlobalGuest = ctx.isGuest?.(ctx.user?.address ?? "") ||
30
+ process.env.FREE_ENTRY === "true";
31
+ return !!(isGlobalAdmin || isGlobalUser || isGlobalGuest);
32
+ }
33
+ /**
34
+ * Check if user has global write access (admin or user, not guest)
35
+ */
36
+ hasGlobalWriteAccess(ctx) {
37
+ const isGlobalAdmin = ctx.isAdmin?.(ctx.user?.address ?? "");
38
+ const isGlobalUser = ctx.isUser?.(ctx.user?.address ?? "");
39
+ return !!(isGlobalAdmin || isGlobalUser);
40
+ }
41
+ /**
42
+ * Get the parent IDs function for hierarchical permission checks
43
+ */
44
+ getParentIdsFn() {
45
+ return resolvers.createGetParentIdsFn(this.reactorClient);
46
+ }
47
+ /**
48
+ * Check if user can read a document (with hierarchy)
49
+ */
50
+ async canReadDocument(documentId, ctx) {
51
+ // Global access allows reading
52
+ if (this.hasGlobalReadAccess(ctx)) {
53
+ return true;
54
+ }
55
+ // Check document-level permissions with hierarchy
56
+ if (this.documentPermissionService) {
57
+ return this.documentPermissionService.canRead(documentId, ctx.user?.address, this.getParentIdsFn());
58
+ }
59
+ return false;
60
+ }
61
+ /**
62
+ * Check if user can write to a document (with hierarchy)
63
+ */
64
+ async canWriteDocument(documentId, ctx) {
65
+ // Global write access allows writing
66
+ if (this.hasGlobalWriteAccess(ctx)) {
67
+ return true;
68
+ }
69
+ // Check document-level permissions with hierarchy
70
+ if (this.documentPermissionService) {
71
+ return this.documentPermissionService.canWrite(documentId, ctx.user?.address, this.getParentIdsFn());
72
+ }
73
+ return false;
74
+ }
75
+ /**
76
+ * Throw an error if user cannot read the document
77
+ */
78
+ async assertCanRead(documentId, ctx) {
79
+ const canRead = await this.canReadDocument(documentId, ctx);
80
+ if (!canRead) {
81
+ throw new GraphQLError("Forbidden: insufficient permissions to read this document");
82
+ }
83
+ }
84
+ /**
85
+ * Throw an error if user cannot write to the document
86
+ */
87
+ async assertCanWrite(documentId, ctx) {
88
+ const canWrite = await this.canWriteDocument(documentId, ctx);
89
+ if (!canWrite) {
90
+ throw new GraphQLError("Forbidden: insufficient permissions to write to this document");
91
+ }
92
+ }
93
+ /**
94
+ * Check if user can execute specific operations on a document.
95
+ * Only checks operations that have restrictions set.
96
+ * Throws an error if any operation is restricted and user lacks permission.
97
+ */
98
+ async assertCanExecuteOperations(documentId, actions, ctx) {
99
+ // Skip if no permission service
100
+ if (!this.documentPermissionService) {
101
+ return;
102
+ }
103
+ // Global admins bypass operation-level restrictions
104
+ if (ctx.isAdmin?.(ctx.user?.address ?? "")) {
105
+ return;
106
+ }
107
+ for (const action of actions) {
108
+ if (!action || typeof action !== "object") {
109
+ continue;
110
+ }
111
+ const actionObj = action;
112
+ const operationType = actionObj.type;
113
+ if (typeof operationType !== "string") {
114
+ continue;
115
+ }
116
+ // Check if this operation has any restrictions set
117
+ const isRestricted = await this.documentPermissionService.isOperationRestricted(documentId, operationType);
118
+ if (isRestricted) {
119
+ // Operation is restricted, check if user has permission
120
+ const canExecute = await this.documentPermissionService.canExecuteOperation(documentId, operationType, ctx.user?.address);
121
+ if (!canExecute) {
122
+ throw new GraphQLError(`Forbidden: insufficient permissions to execute operation "${operationType}" on this document`);
123
+ }
124
+ }
125
+ }
126
+ }
21
127
  // Load schema from file
22
128
  typeDefs = gql(fs.readFileSync(path.join(__dirname, "schema.graphql"), "utf-8"));
23
129
  resolvers = {
@@ -32,19 +138,32 @@ export class ReactorSubgraph extends BaseSubgraph {
32
138
  throw error;
33
139
  }
34
140
  },
35
- document: async (_parent, args) => {
141
+ document: async (_parent, args, ctx) => {
36
142
  this.logger.debug("document", args);
37
143
  try {
38
- return await resolvers.document(this.reactorClient, args);
144
+ // Resolve the document ID first
145
+ const doc = await resolvers.document(this.reactorClient, args);
146
+ if (doc) {
147
+ await this.assertCanRead(doc.document.id, ctx);
148
+ }
149
+ return doc;
39
150
  }
40
151
  catch (error) {
41
152
  this.logger.error("Error in document:", error);
42
153
  throw error;
43
154
  }
44
155
  },
45
- documentChildren: async (_parent, args) => {
156
+ documentChildren: async (_parent, args, ctx) => {
46
157
  this.logger.debug("documentChildren", args);
47
158
  try {
159
+ // First resolve the parent to get its ID and check permission
160
+ const parent = await resolvers.document(this.reactorClient, {
161
+ identifier: args.parentIdentifier,
162
+ view: args.view,
163
+ });
164
+ if (parent) {
165
+ await this.assertCanRead(parent.document.id, ctx);
166
+ }
48
167
  return await resolvers.documentChildren(this.reactorClient, args);
49
168
  }
50
169
  catch (error) {
@@ -52,9 +171,17 @@ export class ReactorSubgraph extends BaseSubgraph {
52
171
  throw error;
53
172
  }
54
173
  },
55
- documentParents: async (_parent, args) => {
174
+ documentParents: async (_parent, args, ctx) => {
56
175
  this.logger.debug("documentParents", args);
57
176
  try {
177
+ // First resolve the child to get its ID and check permission
178
+ const child = await resolvers.document(this.reactorClient, {
179
+ identifier: args.childIdentifier,
180
+ view: args.view,
181
+ });
182
+ if (child) {
183
+ await this.assertCanRead(child.document.id, ctx);
184
+ }
58
185
  return await resolvers.documentParents(this.reactorClient, args);
59
186
  }
60
187
  catch (error) {
@@ -62,10 +189,27 @@ export class ReactorSubgraph extends BaseSubgraph {
62
189
  throw error;
63
190
  }
64
191
  },
65
- findDocuments: async (_parent, args) => {
192
+ findDocuments: async (_parent, args, ctx) => {
66
193
  this.logger.debug("findDocuments", args);
67
194
  try {
68
- return await resolvers.findDocuments(this.reactorClient, args);
195
+ const result = await resolvers.findDocuments(this.reactorClient, args);
196
+ // Filter results to only include documents the user can read
197
+ if (!this.hasGlobalReadAccess(ctx) &&
198
+ this.documentPermissionService) {
199
+ const filteredItems = [];
200
+ for (const item of result.items) {
201
+ const canRead = await this.canReadDocument(item.id, ctx);
202
+ if (canRead) {
203
+ filteredItems.push(item);
204
+ }
205
+ }
206
+ return {
207
+ ...result,
208
+ items: filteredItems,
209
+ totalCount: filteredItems.length,
210
+ };
211
+ }
212
+ return result;
69
213
  }
70
214
  catch (error) {
71
215
  this.logger.error("Error in findDocuments:", error);
@@ -98,9 +242,21 @@ export class ReactorSubgraph extends BaseSubgraph {
98
242
  },
99
243
  },
100
244
  Mutation: {
101
- createDocument: async (_parent, args) => {
245
+ createDocument: async (_parent, args, ctx) => {
102
246
  this.logger.debug("createDocument", args);
103
247
  try {
248
+ // If creating under a parent, check write permission on parent
249
+ if (args.parentIdentifier) {
250
+ const parent = await resolvers.document(this.reactorClient, {
251
+ identifier: args.parentIdentifier,
252
+ });
253
+ if (parent) {
254
+ await this.assertCanWrite(parent.document.id, ctx);
255
+ }
256
+ }
257
+ else if (!this.hasGlobalWriteAccess(ctx)) {
258
+ throw new GraphQLError("Forbidden: insufficient permissions to create documents");
259
+ }
104
260
  return await resolvers.createDocument(this.reactorClient, args);
105
261
  }
106
262
  catch (error) {
@@ -108,9 +264,21 @@ export class ReactorSubgraph extends BaseSubgraph {
108
264
  throw error;
109
265
  }
110
266
  },
111
- createEmptyDocument: async (_parent, args) => {
267
+ createEmptyDocument: async (_parent, args, ctx) => {
112
268
  this.logger.debug("createEmptyDocument", args);
113
269
  try {
270
+ // If creating under a parent, check write permission on parent
271
+ if (args.parentIdentifier) {
272
+ const parent = await resolvers.document(this.reactorClient, {
273
+ identifier: args.parentIdentifier,
274
+ });
275
+ if (parent) {
276
+ await this.assertCanWrite(parent.document.id, ctx);
277
+ }
278
+ }
279
+ else if (!this.hasGlobalWriteAccess(ctx)) {
280
+ throw new GraphQLError("Forbidden: insufficient permissions to create documents");
281
+ }
114
282
  return await resolvers.createEmptyDocument(this.reactorClient, args);
115
283
  }
116
284
  catch (error) {
@@ -118,9 +286,19 @@ export class ReactorSubgraph extends BaseSubgraph {
118
286
  throw error;
119
287
  }
120
288
  },
121
- mutateDocument: async (_parent, args) => {
289
+ mutateDocument: async (_parent, args, ctx) => {
122
290
  this.logger.debug("mutateDocument", args);
123
291
  try {
292
+ // Resolve document and check write permission
293
+ const doc = await resolvers.document(this.reactorClient, {
294
+ identifier: args.documentIdentifier,
295
+ view: args.view,
296
+ });
297
+ if (doc) {
298
+ await this.assertCanWrite(doc.document.id, ctx);
299
+ // Check operation-level permissions for each action
300
+ await this.assertCanExecuteOperations(doc.document.id, args.actions, ctx);
301
+ }
124
302
  return await resolvers.mutateDocument(this.reactorClient, args);
125
303
  }
126
304
  catch (error) {
@@ -128,9 +306,19 @@ export class ReactorSubgraph extends BaseSubgraph {
128
306
  throw error;
129
307
  }
130
308
  },
131
- mutateDocumentAsync: async (_parent, args) => {
309
+ mutateDocumentAsync: async (_parent, args, ctx) => {
132
310
  this.logger.debug("mutateDocumentAsync", args);
133
311
  try {
312
+ // Resolve document and check write permission
313
+ const doc = await resolvers.document(this.reactorClient, {
314
+ identifier: args.documentIdentifier,
315
+ view: args.view,
316
+ });
317
+ if (doc) {
318
+ await this.assertCanWrite(doc.document.id, ctx);
319
+ // Check operation-level permissions for each action
320
+ await this.assertCanExecuteOperations(doc.document.id, args.actions, ctx);
321
+ }
134
322
  return await resolvers.mutateDocumentAsync(this.reactorClient, args);
135
323
  }
136
324
  catch (error) {
@@ -138,9 +326,16 @@ export class ReactorSubgraph extends BaseSubgraph {
138
326
  throw error;
139
327
  }
140
328
  },
141
- renameDocument: async (_parent, args) => {
329
+ renameDocument: async (_parent, args, ctx) => {
142
330
  this.logger.debug("renameDocument", args);
143
331
  try {
332
+ // Resolve document and check write permission
333
+ const doc = await resolvers.document(this.reactorClient, {
334
+ identifier: args.documentIdentifier,
335
+ });
336
+ if (doc) {
337
+ await this.assertCanWrite(doc.document.id, ctx);
338
+ }
144
339
  return await resolvers.renameDocument(this.reactorClient, args);
145
340
  }
146
341
  catch (error) {
@@ -148,9 +343,16 @@ export class ReactorSubgraph extends BaseSubgraph {
148
343
  throw error;
149
344
  }
150
345
  },
151
- addChildren: async (_parent, args) => {
346
+ addChildren: async (_parent, args, ctx) => {
152
347
  this.logger.debug("addChildren", args);
153
348
  try {
349
+ // Check write permission on parent
350
+ const parent = await resolvers.document(this.reactorClient, {
351
+ identifier: args.parentIdentifier,
352
+ });
353
+ if (parent) {
354
+ await this.assertCanWrite(parent.document.id, ctx);
355
+ }
154
356
  return await resolvers.addChildren(this.reactorClient, args);
155
357
  }
156
358
  catch (error) {
@@ -158,9 +360,16 @@ export class ReactorSubgraph extends BaseSubgraph {
158
360
  throw error;
159
361
  }
160
362
  },
161
- removeChildren: async (_parent, args) => {
363
+ removeChildren: async (_parent, args, ctx) => {
162
364
  this.logger.debug("removeChildren", args);
163
365
  try {
366
+ // Check write permission on parent
367
+ const parent = await resolvers.document(this.reactorClient, {
368
+ identifier: args.parentIdentifier,
369
+ });
370
+ if (parent) {
371
+ await this.assertCanWrite(parent.document.id, ctx);
372
+ }
164
373
  return await resolvers.removeChildren(this.reactorClient, args);
165
374
  }
166
375
  catch (error) {
@@ -168,9 +377,22 @@ export class ReactorSubgraph extends BaseSubgraph {
168
377
  throw error;
169
378
  }
170
379
  },
171
- moveChildren: async (_parent, args) => {
380
+ moveChildren: async (_parent, args, ctx) => {
172
381
  this.logger.debug("moveChildren", args);
173
382
  try {
383
+ // Check write permission on both source and target parents
384
+ const sourceParent = await resolvers.document(this.reactorClient, {
385
+ identifier: args.sourceParentIdentifier,
386
+ });
387
+ if (sourceParent) {
388
+ await this.assertCanWrite(sourceParent.document.id, ctx);
389
+ }
390
+ const targetParent = await resolvers.document(this.reactorClient, {
391
+ identifier: args.targetParentIdentifier,
392
+ });
393
+ if (targetParent) {
394
+ await this.assertCanWrite(targetParent.document.id, ctx);
395
+ }
174
396
  return await resolvers.moveChildren(this.reactorClient, args);
175
397
  }
176
398
  catch (error) {
@@ -178,9 +400,16 @@ export class ReactorSubgraph extends BaseSubgraph {
178
400
  throw error;
179
401
  }
180
402
  },
181
- deleteDocument: async (_parent, args) => {
403
+ deleteDocument: async (_parent, args, ctx) => {
182
404
  this.logger.debug("deleteDocument", args);
183
405
  try {
406
+ // Check write permission on document
407
+ const doc = await resolvers.document(this.reactorClient, {
408
+ identifier: args.identifier,
409
+ });
410
+ if (doc) {
411
+ await this.assertCanWrite(doc.document.id, ctx);
412
+ }
184
413
  return await resolvers.deleteDocument(this.reactorClient, args);
185
414
  }
186
415
  catch (error) {
@@ -188,9 +417,18 @@ export class ReactorSubgraph extends BaseSubgraph {
188
417
  throw error;
189
418
  }
190
419
  },
191
- deleteDocuments: async (_parent, args) => {
420
+ deleteDocuments: async (_parent, args, ctx) => {
192
421
  this.logger.debug("deleteDocuments", args);
193
422
  try {
423
+ // Check write permission on each document
424
+ for (const identifier of args.identifiers) {
425
+ const doc = await resolvers.document(this.reactorClient, {
426
+ identifier,
427
+ });
428
+ if (doc) {
429
+ await this.assertCanWrite(doc.document.id, ctx);
430
+ }
431
+ }
194
432
  return await resolvers.deleteDocuments(this.reactorClient, args);
195
433
  }
196
434
  catch (error) {
@@ -198,16 +436,16 @@ export class ReactorSubgraph extends BaseSubgraph {
198
436
  throw error;
199
437
  }
200
438
  },
201
- createChannel: async (_parent, args) => {
202
- this.logger.debug("createChannel", args);
439
+ touchChannel: async (_parent, args) => {
440
+ this.logger.debug("touchChannel", args);
203
441
  if (!this.syncManager) {
204
442
  throw new Error("SyncManager not available");
205
443
  }
206
444
  try {
207
- return await resolvers.createChannel(this.syncManager, args);
445
+ return await resolvers.touchChannel(this.syncManager, args);
208
446
  }
209
447
  catch (error) {
210
- this.logger.error("Error in createChannel:", error);
448
+ this.logger.error("Error in touchChannel:", error);
211
449
  throw error;
212
450
  }
213
451
  },
@@ -217,7 +455,32 @@ export class ReactorSubgraph extends BaseSubgraph {
217
455
  throw new Error("SyncManager not available");
218
456
  }
219
457
  try {
220
- return await resolvers.pushSyncEnvelope(this.syncManager, args);
458
+ // Convert readonly arrays to mutable arrays for the resolver
459
+ const mutableArgs = {
460
+ envelope: {
461
+ type: args.envelope.type,
462
+ channelMeta: { id: args.envelope.channelMeta.id },
463
+ operations: args.envelope.operations
464
+ ? args.envelope.operations.map((op) => ({
465
+ operation: op.operation,
466
+ context: {
467
+ documentId: op.context.documentId,
468
+ documentType: op.context.documentType,
469
+ scope: op.context.scope,
470
+ branch: op.context.branch,
471
+ },
472
+ }))
473
+ : null,
474
+ cursor: args.envelope.cursor
475
+ ? {
476
+ remoteName: args.envelope.cursor.remoteName,
477
+ cursorOrdinal: args.envelope.cursor.cursorOrdinal,
478
+ lastSyncedAtUtcMs: args.envelope.cursor.lastSyncedAtUtcMs,
479
+ }
480
+ : null,
481
+ },
482
+ };
483
+ return await resolvers.pushSyncEnvelope(this.syncManager, mutableArgs);
221
484
  }
222
485
  catch (error) {
223
486
  this.logger.error("Error in pushSyncEnvelope:", error);
@@ -1 +1 @@
1
- {"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../../src/graphql/reactor/subgraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../../src/graphql/reactor/subgraph.ts"],"names":[],"mappings":"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"}