@powerhousedao/reactor-api 6.0.0-dev.59 → 6.0.0-dev.60

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 (80) hide show
  1. package/dist/src/graphql/auth/resolvers.d.ts +17 -0
  2. package/dist/src/graphql/auth/resolvers.d.ts.map +1 -1
  3. package/dist/src/graphql/auth/resolvers.js +54 -0
  4. package/dist/src/graphql/auth/resolvers.js.map +1 -1
  5. package/dist/src/graphql/auth/schema.graphql +27 -5
  6. package/dist/src/graphql/auth/subgraph.d.ts +25 -0
  7. package/dist/src/graphql/auth/subgraph.d.ts.map +1 -1
  8. package/dist/src/graphql/auth/subgraph.js +44 -0
  9. package/dist/src/graphql/auth/subgraph.js.map +1 -1
  10. package/dist/src/graphql/base-subgraph.d.ts +10 -1
  11. package/dist/src/graphql/base-subgraph.d.ts.map +1 -1
  12. package/dist/src/graphql/base-subgraph.js +94 -0
  13. package/dist/src/graphql/base-subgraph.js.map +1 -1
  14. package/dist/src/graphql/document-model-subgraph.d.ts +0 -67
  15. package/dist/src/graphql/document-model-subgraph.d.ts.map +1 -1
  16. package/dist/src/graphql/document-model-subgraph.js +50 -199
  17. package/dist/src/graphql/document-model-subgraph.js.map +1 -1
  18. package/dist/src/graphql/drive-subgraph.d.ts.map +1 -1
  19. package/dist/src/graphql/drive-subgraph.js +46 -35
  20. package/dist/src/graphql/drive-subgraph.js.map +1 -1
  21. package/dist/src/graphql/graphql-manager.d.ts +3 -1
  22. package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
  23. package/dist/src/graphql/graphql-manager.js +5 -11
  24. package/dist/src/graphql/graphql-manager.js.map +1 -1
  25. package/dist/src/graphql/reactor/subgraph.d.ts +2 -31
  26. package/dist/src/graphql/reactor/subgraph.d.ts.map +1 -1
  27. package/dist/src/graphql/reactor/subgraph.js +39 -104
  28. package/dist/src/graphql/reactor/subgraph.js.map +1 -1
  29. package/dist/src/graphql/types.d.ts +3 -2
  30. package/dist/src/graphql/types.d.ts.map +1 -1
  31. package/dist/src/migrations/002_add_document_protection.d.ts +4 -0
  32. package/dist/src/migrations/002_add_document_protection.d.ts.map +1 -0
  33. package/dist/src/migrations/002_add_document_protection.js +18 -0
  34. package/dist/src/migrations/002_add_document_protection.js.map +1 -0
  35. package/dist/src/migrations/index.d.ts.map +1 -1
  36. package/dist/src/migrations/index.js +2 -0
  37. package/dist/src/migrations/index.js.map +1 -1
  38. package/dist/src/server.d.ts +0 -3
  39. package/dist/src/server.d.ts.map +1 -1
  40. package/dist/src/server.js +33 -36
  41. package/dist/src/server.js.map +1 -1
  42. package/dist/src/services/auth.service.d.ts +0 -12
  43. package/dist/src/services/auth.service.d.ts.map +1 -1
  44. package/dist/src/services/auth.service.js +4 -22
  45. package/dist/src/services/auth.service.js.map +1 -1
  46. package/dist/src/services/authorization.service.d.ts +70 -0
  47. package/dist/src/services/authorization.service.d.ts.map +1 -0
  48. package/dist/src/services/authorization.service.js +155 -0
  49. package/dist/src/services/authorization.service.js.map +1 -0
  50. package/dist/src/services/document-permission.service.d.ts +47 -7
  51. package/dist/src/services/document-permission.service.d.ts.map +1 -1
  52. package/dist/src/services/document-permission.service.js +162 -7
  53. package/dist/src/services/document-permission.service.js.map +1 -1
  54. package/dist/src/utils/auth.d.ts +1 -1
  55. package/dist/src/utils/auth.d.ts.map +1 -1
  56. package/dist/src/utils/auth.js +5 -12
  57. package/dist/src/utils/auth.js.map +1 -1
  58. package/dist/src/utils/db.d.ts +8 -0
  59. package/dist/src/utils/db.d.ts.map +1 -1
  60. package/dist/src/utils/db.js.map +1 -1
  61. package/dist/test/authorization.service.test.d.ts +2 -0
  62. package/dist/test/authorization.service.test.d.ts.map +1 -0
  63. package/dist/test/authorization.service.test.js +252 -0
  64. package/dist/test/authorization.service.test.js.map +1 -0
  65. package/dist/test/document-model-subgraph-legacy-permissions.test.js +6 -64
  66. package/dist/test/document-model-subgraph-legacy-permissions.test.js.map +1 -1
  67. package/dist/test/document-model-subgraph-permissions.test.js +6 -68
  68. package/dist/test/document-model-subgraph-permissions.test.js.map +1 -1
  69. package/dist/test/document-model-subgraph.test.js +0 -2
  70. package/dist/test/document-model-subgraph.test.js.map +1 -1
  71. package/dist/test/drive-handlers.js +1 -1
  72. package/dist/test/drive-handlers.js.map +1 -1
  73. package/dist/test/drive-subgraph-permissions.test.js +1 -30
  74. package/dist/test/drive-subgraph-permissions.test.js.map +1 -1
  75. package/dist/test/permissions-integration.test.js +1 -15
  76. package/dist/test/permissions-integration.test.js.map +1 -1
  77. package/dist/test/reactor-subgraph-permissions.test.js +2 -28
  78. package/dist/test/reactor-subgraph-permissions.test.js.map +1 -1
  79. package/dist/tsconfig.tsbuildinfo +1 -1
  80. package/package.json +8 -8
@@ -17,6 +17,7 @@ import { runMigrations } from "./migrations/index.js";
17
17
  import { ImportPackageLoader } from "./packages/import-loader.js";
18
18
  import { getUniqueDocumentModels, PackageManager, } from "./packages/package-manager.js";
19
19
  import { AuthService } from "./services/auth.service.js";
20
+ import { AuthorizationService } from "./services/authorization.service.js";
20
21
  import { DocumentPermissionService } from "./services/document-permission.service.js";
21
22
  import { initTracing, isTracingEnabled, trace } from "./tracing.js";
22
23
  import { getDbClient, initAnalyticsStoreSql, } from "./utils/db.js";
@@ -55,17 +56,14 @@ async function initializeDatabaseAndAnalytics(dbPath) {
55
56
  /**
56
57
  * Sets up the subgraph manager and registers subgraphs
57
58
  */
58
- async function setupGraphQLManager(app, httpServer, wsServer, reactor, client, relationalDb, analyticsStore, syncManager, subgraphs, logger, auth, documentPermissionService, enableDocumentModelSubgraphs, useNewDocumentModelSubgraph, port) {
59
+ async function setupGraphQLManager(app, httpServer, wsServer, reactor, client, relationalDb, analyticsStore, syncManager, subgraphs, logger, auth, documentPermissionService, enableDocumentModelSubgraphs, useNewDocumentModelSubgraph, port, authorizationService) {
59
60
  const graphqlManager = new GraphQLManager(config.basePath, app, httpServer, wsServer, reactor, client, relationalDb, analyticsStore, syncManager, logger, {
60
61
  enabled: auth?.enabled ?? false,
61
- guests: auth?.guests ?? [],
62
- users: auth?.users ?? [],
63
62
  admins: auth?.admins ?? [],
64
- freeEntry: auth?.freeEntry ?? false,
65
63
  }, documentPermissionService, {
66
64
  enableDocumentModelSubgraphs,
67
65
  useNewDocumentModelSubgraph,
68
- }, port);
66
+ }, port, authorizationService);
69
67
  await graphqlManager.init(subgraphs.core);
70
68
  for (const [, collection] of subgraphs.extended.entries()) {
71
69
  for (const subgraph of collection) {
@@ -150,40 +148,34 @@ async function _setupCommonInfrastructure(options) {
150
148
  const app = options.express ?? express();
151
149
  // Setup auth configuration
152
150
  let admins = [];
153
- let users = [];
154
- let guests = [];
155
151
  let authEnabled = false;
156
- let freeEntry = false;
157
152
  if (options.configFile) {
158
153
  const config = getConfig(options.configFile);
159
154
  admins = config.auth?.admins?.map((a) => a.toLowerCase()) ?? [];
160
- users = config.auth?.users?.map((u) => u.toLowerCase()) ?? [];
161
- guests = config.auth?.guests?.map((g) => g.toLowerCase()) ?? [];
162
155
  authEnabled = config.auth?.enabled ?? false;
163
- freeEntry = config.auth?.freeEntry ?? false;
164
156
  }
165
157
  else if (options.auth) {
166
158
  admins = options.auth?.admins?.map((a) => a.toLowerCase()) ?? [];
167
- users = options.auth?.users?.map((u) => u.toLowerCase()) ?? [];
168
- guests = options.auth?.guests?.map((g) => g.toLowerCase()) ?? [];
169
159
  authEnabled = options.auth?.enabled ?? false;
170
- freeEntry = options.auth?.freeEntry ?? false;
171
160
  }
172
- const { AUTH_ENABLED, GUESTS, USERS, ADMINS, FREE_ENTRY, DOCUMENT_PERMISSIONS_ENABLED, SKIP_CREDENTIAL_VERIFICATION, } = process.env;
161
+ const { AUTH_ENABLED, ADMINS, DEFAULT_PROTECTION, DOCUMENT_PERMISSIONS_ENABLED, SKIP_CREDENTIAL_VERIFICATION, } = process.env;
173
162
  if (AUTH_ENABLED !== undefined) {
174
163
  authEnabled = AUTH_ENABLED === "true";
175
164
  }
176
- if (GUESTS !== undefined) {
177
- guests = GUESTS.split(",").map((g) => g.toLowerCase());
178
- }
179
- if (USERS !== undefined) {
180
- users = USERS.split(",").map((u) => u.toLowerCase());
181
- }
182
165
  if (ADMINS !== undefined) {
183
166
  admins = ADMINS.split(",").map((a) => a.toLowerCase());
184
167
  }
185
- if (FREE_ENTRY !== undefined) {
186
- freeEntry = FREE_ENTRY === "true";
168
+ let defaultProtection = false;
169
+ if (DEFAULT_PROTECTION !== undefined) {
170
+ defaultProtection = DEFAULT_PROTECTION.toLowerCase() === "true";
171
+ }
172
+ // Warn about deprecated env vars
173
+ const { USERS, GUESTS, FREE_ENTRY } = process.env;
174
+ if (USERS || GUESTS || FREE_ENTRY) {
175
+ console.warn("[DEPRECATION WARNING] The USERS, GUESTS, and FREE_ENTRY environment variables are no longer supported. " +
176
+ "Access control is now managed per-document via the DocumentProtection system. " +
177
+ "Use DEFAULT_PROTECTION=true for strict mode, or manage protection per document via the GraphQL API. " +
178
+ "See the auth documentation for migration guidance.");
187
179
  }
188
180
  let skipCredentialVerification = false;
189
181
  if (SKIP_CREDENTIAL_VERIFICATION !== undefined) {
@@ -199,10 +191,7 @@ async function _setupCommonInfrastructure(options) {
199
191
  logger.info("Setting up Auth middleware");
200
192
  const authService = new AuthService({
201
193
  enabled: authEnabled,
202
- guests,
203
- users,
204
194
  admins,
205
- freeEntry,
206
195
  skipCredentialVerification,
207
196
  });
208
197
  // Apply auth middleware to all routes including GraphQL
@@ -222,9 +211,18 @@ async function _setupCommonInfrastructure(options) {
222
211
  // Run document permission migrations
223
212
  await runMigrations(db);
224
213
  logger.info("Document permission migrations completed");
225
- documentPermissionService = new DocumentPermissionService(db);
214
+ documentPermissionService = new DocumentPermissionService(db, { defaultProtection });
226
215
  logger.info("Document permission service initialized");
227
216
  }
217
+ // Create AuthorizationService when document permission service is available
218
+ let authorizationService;
219
+ if (documentPermissionService) {
220
+ authorizationService = new AuthorizationService(documentPermissionService, {
221
+ admins,
222
+ defaultProtection,
223
+ });
224
+ logger.info("Authorization service initialized");
225
+ }
228
226
  // Initialize package manager
229
227
  const legacyReactor = options.legacyReactor ?? false;
230
228
  const packageLoader = options.packageLoader ?? new ImportPackageLoader({ legacyReactor });
@@ -238,21 +236,19 @@ async function _setupCommonInfrastructure(options) {
238
236
  app,
239
237
  auth: {
240
238
  enabled: authEnabled,
241
- guests,
242
- users,
243
239
  admins,
244
- freeEntry,
245
240
  },
246
241
  relationalDb,
247
242
  analyticsStore,
248
243
  documentPermissionService,
244
+ authorizationService,
249
245
  packages,
250
246
  };
251
247
  }
252
248
  /**
253
249
  * Private helper function containing common setup logic for API initialization
254
250
  */
255
- async function _setupAPI(reactor, reactorClient, syncManager, app, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, legacyReactor, processorApp, reactorProcessorManager) {
251
+ async function _setupAPI(reactor, reactorClient, syncManager, app, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, legacyReactor, processorApp, reactorProcessorManager, authorizationService) {
256
252
  const module = {
257
253
  relationalDb,
258
254
  analyticsStore,
@@ -355,7 +351,7 @@ async function _setupAPI(reactor, reactorClient, syncManager, app, port, package
355
351
  const graphqlManager = await setupGraphQLManager(app, httpServer, wsServer, reactor, reactorClient, relationalDb, analyticsStore, syncManager, {
356
352
  extended: subgraphs,
357
353
  core: coreSubgraphs,
358
- }, logger.child(["graphql-manager"]), auth, documentPermissionService, options.enableDocumentModelSubgraphs, options.useNewDocumentModelSubgraph, port);
354
+ }, logger.child(["graphql-manager"]), auth, documentPermissionService, options.enableDocumentModelSubgraphs, options.useNewDocumentModelSubgraph, port, authorizationService);
359
355
  // Set up event listeners
360
356
  setupEventListeners(packages, reactor, graphqlManager, processorManager, module);
361
357
  if (mcpServerEnabled) {
@@ -379,7 +375,7 @@ async function _setupAPI(reactor, reactorClient, syncManager, app, port, package
379
375
  * @returns The API server components.
380
376
  */
381
377
  export async function startAPI(driveServer, client, registry, syncManager, options, processorApp) {
382
- const { port, app, auth, relationalDb, analyticsStore, documentPermissionService, packages, } = await trace("reactor-api.setup.infrastructure", { tags: { "resource.name": "infrastructure" } }, () => _setupCommonInfrastructure(options));
378
+ const { port, app, auth, relationalDb, analyticsStore, documentPermissionService, authorizationService, packages, } = await trace("reactor-api.setup.infrastructure", { tags: { "resource.name": "infrastructure" } }, () => _setupCommonInfrastructure(options));
383
379
  const { documentModels, processors, subgraphs } = await trace("reactor-api.packages.init", { tags: { "resource.name": "packages" } }, () => packages.init());
384
380
  // pass to legacy reactor
385
381
  driveServer.setDocumentModelModules(getUniqueDocumentModels([
@@ -390,7 +386,8 @@ export async function startAPI(driveServer, client, registry, syncManager, optio
390
386
  registry.registerModules(...documentModels);
391
387
  // startAPI always uses legacy reactor since it doesn't have ReactorClientModule
392
388
  const legacyReactor = true;
393
- return _setupAPI(driveServer, client, syncManager, app, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, legacyReactor, processorApp, undefined);
389
+ return _setupAPI(driveServer, client, syncManager, app, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, legacyReactor, processorApp, undefined, // no reactorProcessorManager in legacy mode
390
+ authorizationService);
394
391
  }
395
392
  /**
396
393
  * Initializes and starts the API server using initializer functions.
@@ -404,7 +401,7 @@ export async function startAPI(driveServer, client, registry, syncManager, optio
404
401
  * @returns The API server components along with the created drive server and client instances.
405
402
  */
406
403
  export async function initializeAndStartAPI(driveServerInitializer, clientInitializer, options, processorApp) {
407
- const { port, app, auth, relationalDb, analyticsStore, documentPermissionService, packages, } = await trace("reactor-api.setup.infrastructure", { tags: { "resource.name": "infrastructure" } }, () => _setupCommonInfrastructure(options));
404
+ const { port, app, auth, relationalDb, analyticsStore, documentPermissionService, authorizationService, packages, } = await trace("reactor-api.setup.infrastructure", { tags: { "resource.name": "infrastructure" } }, () => _setupCommonInfrastructure(options));
408
405
  const { documentModels, processors, subgraphs } = await trace("reactor-api.packages.init", { tags: { "resource.name": "packages" } }, () => packages.init());
409
406
  const reactor = await trace("reactor-api.drive-server.init", { tags: { "resource.name": "drive-server" } }, () => driveServerInitializer(documentModels));
410
407
  const reactorClientModule = await trace("reactor-api.reactor-client.init", { tags: { "resource.name": "reactor-client" } }, () => clientInitializer(reactor, documentModels));
@@ -416,7 +413,7 @@ export async function initializeAndStartAPI(driveServerInitializer, clientInitia
416
413
  }
417
414
  const legacyReactor = options.legacyReactor ?? false;
418
415
  const reactorProcessorManager = reactorClientModule.reactorModule?.processorManager;
419
- const api = await _setupAPI(reactor, reactorClient, syncManager, app, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, legacyReactor, processorApp, reactorProcessorManager);
416
+ const api = await _setupAPI(reactor, reactorClient, syncManager, app, port, packages, relationalDb, analyticsStore, documentPermissionService, processors, subgraphs, options, auth, legacyReactor, processorApp, reactorProcessorManager, authorizationService);
420
417
  return {
421
418
  ...api,
422
419
  driveServer: reactor,
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AASvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,OAAO,MAAM,SAAS,CAAC;AAU9B,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,cAAc,GACf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EACL,WAAW,EACX,qBAAqB,GAEtB,MAAM,eAAe,CAAC;AAEvB,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AA8C7D,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAsB;IAClD,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9C,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC3C,MAAM,QAAQ,GACZ,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;YAC/B,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC3B,CAAC,CAAC,UAAU,CAAC;QAEjB,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;QAC5B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,8BAA8B,CAC3C,MAA0B;IAK1B,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,wBAAwB,CAAU,EAAE,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,IAAI,sBAAsB,CAAC;QAChD,IAAI;KACL,CAAC,CAAC;IAEH,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,GAAY,EACZ,UAAuB,EACvB,QAAyB,EACzB,OAA6B,EAC7B,MAAsB,EACtB,YAAiC,EACjC,cAA+B,EAC/B,WAAyB,EACzB,SAGC,EACD,MAAe,EACf,IAGC,EACD,yBAAqD,EACrD,4BAAsC,EACtC,2BAAqC,EACrC,IAAa,EACb,oBAA2C;IAE3C,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,MAAM,CAAC,QAAQ,EACf,GAAG,EACH,UAAU,EACV,QAAQ,EACR,OAAO,EACP,MAAM,EACN,YAAY,EACZ,cAAc,EACd,WAAW,EACX,MAAM,EACN;QACE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK;QAC/B,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE;KAC3B,EACD,yBAAyB,EACzB;QACE,4BAA4B;QAC5B,2BAA2B;KAC5B,EACD,IAAI,EACJ,oBAAoB,CACrB,CAAC;IAEF,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAE1C,KAAK,MAAM,CAAC,EAAE,UAAU,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1D,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAClC,MAAM,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,MAAM,cAAc,CAAC,YAAY,EAAE,CAAC;IAEpC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,UAA0B,EAC1B,OAA6B,EAC7B,cAA8B,EAC9B,gBAAyC,EACzC,MAAkC;IAElC,UAAU,CAAC,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE;QACzD,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,cAAc,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE;QACvD,KAAK,MAAM,CAAC,EAAE,SAAS,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAC9C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,MAAM,cAAc,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACjD,KAAK,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;YAC5C,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAEtD,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAE9C,MAAM,gBAAgB,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CACxE,CACE,MAAM,OAAO,CAAC,GAAG,CACf,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAClE,CACF,CAAC,IAAI,EAAE,CACT,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CACxB,GAAY,EACZ,IAAY,EACZ,YAA8B,EAC9B,MAAe;IAEf,IAAI,UAAuB,CAAC;IAE5B,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAEjC,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,UAAU,GAAG,KAAK,CAAC,YAAY,CAC7B;gBACE,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACjE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;aACpE,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,CACjD,WAAW,CACZ,CAAe,CAAC;gBACjB,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBACnD,CAAC;gBACD,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QACD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;QACnC,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,wBAAwB;KAC/B,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IAEpE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,0BAA0B,CAAC,OAAgB;IAaxD,mCAAmC;IACnC,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACvB,MAAM,WAAW,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;IAEzC,2BAA2B;IAC3B,IAAI,MAAM,GAAa,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAChE,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;IAC9C,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACjE,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;IAC/C,CAAC;IACD,MAAM,EACJ,YAAY,EACZ,MAAM,EACN,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,GAC7B,GAAG,OAAO,CAAC,GAAG,CAAC;IAChB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,WAAW,GAAG,YAAY,KAAK,MAAM,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,iBAAiB,GAAG,kBAAkB,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IAClE,CAAC;IAED,iCAAiC;IACjC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAClD,IAAI,KAAK,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CACV,yGAAyG;YACvG,gFAAgF;YAChF,sGAAsG;YACtG,oDAAoD,CACvD,CAAC;IACJ,CAAC;IAED,IAAI,0BAA0B,GAAG,KAAK,CAAC;IACvC,IAAI,4BAA4B,KAAK,SAAS,EAAE,CAAC;QAC/C,0BAA0B,GAAG,4BAA4B,KAAK,MAAM,CAAC;IACvE,CAAC;IAED,iDAAiD;IACjD,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;IAE/C,yCAAyC;IACzC,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;YAClC,OAAO,EAAE,WAAW;YACpB,MAAM;YACN,0BAA0B;SAC3B,CAAC,CAAC;QAEH,wDAAwD;QACxD,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,WAAW,CAAC,YAAY,CAAC,GAA2B,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACvC,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACpC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAExC,0CAA0C;IAC1C,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,KAAK,CAClD,2BAA2B,EAC3B,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,EACzC,GAAG,EAAE,CAAC,8BAA8B,CAAC,OAAO,CAAC,MAAM,CAAC,CACrD,CAAC;IAEF,4EAA4E;IAC5E,IAAI,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAClE,IAAI,CAAC,yBAAyB,IAAI,4BAA4B,KAAK,MAAM,EAAE,CAAC;QAC1E,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,qCAAqC;QACrC,MAAM,aAAa,CAAC,EAAqB,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACxD,yBAAyB,GAAG,IAAI,yBAAyB,CACvD,EAAwC,EACxC,EAAE,iBAAiB,EAAE,CACtB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC;IAED,4EAA4E;IAC5E,IAAI,oBAAsD,CAAC;IAC3D,IAAI,yBAAyB,EAAE,CAAC;QAC9B,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,yBAAyB,EAAE;YACzE,MAAM;YACN,iBAAiB;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAED,6BAA6B;IAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC;IACrD,MAAM,aAAa,GACjB,OAAO,CAAC,aAAa,IAAI,IAAI,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;IACtE,MAAM,OAAO,GAAqB,CAAC,aAAa,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE;QAC3C,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;KACjC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;QACJ,GAAG;QACH,IAAI,EAAE;YACJ,OAAO,EAAE,WAAW;YACpB,MAAM;SACP;QACD,YAAY;QACZ,cAAc;QACd,yBAAyB;QACzB,oBAAoB;QACpB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CACtB,OAA6B,EAC7B,aAA6B,EAC7B,WAAyB,EACzB,GAAY,EACZ,IAAY,EACZ,QAAwB,EACxB,YAAiC,EACjC,cAA+B,EAC/B,yBAAgE,EAChE,UAGC,EACD,SAAuC,EACvC,OAAgB,EAChB,IAGC,EACD,aAAsB,EACtB,YAA0B,EAC1B,uBAAkD,EAClD,oBAA2C;IAE3C,MAAM,MAAM,GAA+B;QACzC,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,MAAM,EAAE,OAAO,CAAC,eAAe;KAChC,CAAC;IACF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC;IAE7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;IAE/C,wBAAwB;IACxB,IAAI,gBAAyC,CAAC;IAE9C,IAAI,aAAa,EAAE,CAAC;QAClB,oDAAoD;QACpD,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1E,KAAK,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI;YAC/B,GAAG,UAAU,CAAC,OAAO,EAAE;YACvB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;SAC5C,EAAE,CAAC;YACF,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC/B,IAAI,CAAC;oBACH,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,KAAK,CACV,oDAAoD,WAAW,GAAG,EAClE,CAAC,CACF,CAAC;oBAEF,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CACrC,CAAC,OAAO,EAAqC,EAAE,CAC7C,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,UAAU,CACpD,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,gBAAgB,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CACxE,CACE,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACnC,IAAI,CAAC;oBACH,OAAO,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;gBACpC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,KAAK,CACV,sCAAsC,WAAW,CAAC,EAAE,GAAG,EACvD,CAAC,CACF,CAAC;oBAEF,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CACT,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,KAA4B,EAAE,EAAE;YAC9D,MAAM,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,6DAA6D;QAC7D,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,2EAA2E;QAC3E,2CAA2C;QAC3C,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1E,KAAK,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI;YAC/B,GAAG,UAAU,CAAC,OAAO,EAAE;YACvB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;SAC5C,EAAE,CAAC;YACF,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC/B,IAAI,CAAC;oBACH,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,KAAK,CACV,oDAAoD,WAAW,GAAG,EAClE,CAAC,CACF,CAAC;oBAEF,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,uCAAuC;YACvC,uEAAuE;YACvE,gEAAgE;YAChE,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CACrC,CAAC,OAAO,EAAqC,EAAE,CAC7C,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,UAAU,CACpD,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,iDAAiD;YACjD,wEAAwE;YACxE,+DAA+D;YAC/D,MAAM,uBAAuB,CAAC,eAAe,CAC3C,WAAW,EACX,KAAK,EAAE,WAAW,EAAE,EAAE,CACpB,CACE,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACnC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;oBAC1C,OAAO,MAA6C,CAAC;gBACvD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,KAAK,CACV,sCAAsC,WAAW,CAAC,EAAE,GAAG,EACvD,CAAC,CACF,CAAC;oBAEF,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CACX,CAAC;QACJ,CAAC;QACD,yEAAyE;IAC3E,CAAC;IAED,mBAAmB;IACnB,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAChD,GAAG,EACH,IAAI,EACJ,OAAO,CAAC,KAAK,EACb,MAAM,CACP,CAAC;IAEF,0BAA0B;IAC1B,MAAM,aAAa,GAAoB,oBAAoB,CAAC,KAAK,EAAE,CAAC;IACpE,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEpC,uEAAuE;IACvE,IAAI,yBAAyB,EAAE,CAAC;QAC9B,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAC9C,GAAG,EACH,UAAU,EACV,QAAQ,EACR,OAAO,EACP,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX;QACE,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,aAAa;KACpB,EACD,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,EACjC,IAAI,EACJ,yBAAyB,EACzB,OAAO,CAAC,4BAA4B,EACpC,OAAO,CAAC,2BAA2B,EACnC,IAAI,EACJ,oBAAoB,CACrB,CAAC;IAEF,yBAAyB;IACzB,mBAAmB,CACjB,QAAQ,EACR,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,MAAM,CACP,CAAC;IAEF,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,4CAA4C,IAAI,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,OAAO;QACL,GAAG;QACH,cAAc;QACd,gBAAgB;QAChB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,WAAiC,EACjC,MAAsB,EACtB,QAAgC,EAChC,WAAyB,EACzB,OAAgB,EAChB,YAA0B;IAE1B,MAAM,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,oBAAoB,EACpB,QAAQ,GACT,GAAG,MAAM,KAAK,CACb,kCAAkC,EAClC,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,gBAAgB,EAAE,EAAE,EAC/C,GAAG,EAAE,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAC1C,CAAC;IAEF,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAC3D,2BAA2B,EAC3B,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,EACzC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CACtB,CAAC;IAEF,yBAAyB;IACzB,WAAW,CAAC,uBAAuB,CACjC,uBAAuB,CAAC;QACtB,GAAG,WAAW,CAAC,uBAAuB,EAAE;QACxC,GAAG,cAAc;KAClB,CAAC,CACH,CAAC;IAEF,mBAAmB;IACnB,QAAQ,CAAC,eAAe,CAAC,GAAG,cAAc,CAAC,CAAC;IAE5C,gFAAgF;IAChF,MAAM,aAAa,GAAG,IAAI,CAAC;IAE3B,OAAO,SAAS,CACd,WAAW,EACX,MAAM,EACN,WAAW,EACX,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,UAAU,EACV,SAAS,EACT,OAAO,EACP,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,SAAS,EAAE,4CAA4C;IACvD,oBAAoB,CACrB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,sBAEkC,EAClC,iBAGiC,EACjC,OAAgB,EAChB,YAA0B;IAQ1B,MAAM,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,oBAAoB,EACpB,QAAQ,GACT,GAAG,MAAM,KAAK,CACb,kCAAkC,EAClC,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,gBAAgB,EAAE,EAAE,EAC/C,GAAG,EAAE,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAC1C,CAAC;IAEF,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAC3D,2BAA2B,EAC3B,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,EACzC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CACtB,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,KAAK,CACzB,+BAA+B,EAC/B,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAC7C,GAAG,EAAE,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAC7C,CAAC;IAEF,MAAM,mBAAmB,GAAG,MAAM,KAAK,CACrC,iCAAiC,EACjC,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,gBAAgB,EAAE,EAAE,EAC/C,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CACjD,CAAC;IAEF,iDAAiD;IACjD,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC;IACjD,MAAM,WAAW,GACf,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC;IAC7D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC;IACrD,MAAM,uBAAuB,GAC3B,mBAAmB,CAAC,aAAa,EAAE,gBAAgB,CAAC;IAEtD,MAAM,GAAG,GAAG,MAAM,SAAS,CACzB,OAAO,EACP,aAAa,EACb,WAAW,EACX,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,UAAU,EACV,SAAS,EACT,OAAO,EACP,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,oBAAoB,CACrB,CAAC;IAEF,OAAO;QACL,GAAG,GAAG;QACN,WAAW,EAAE,OAAO;QACpB,MAAM,EAAE,aAAa;QACrB,WAAW;KACZ,CAAC;AACJ,CAAC"}
@@ -1,10 +1,7 @@
1
1
  import type { NextFunction, Request, Response } from "express";
2
2
  export interface AuthConfig {
3
3
  enabled: boolean;
4
- guests: string[];
5
- users: string[];
6
4
  admins: string[];
7
- freeEntry: boolean;
8
5
  cacheTtl?: number;
9
6
  skipCredentialVerification?: boolean;
10
7
  }
@@ -16,9 +13,6 @@ export interface User {
16
13
  export interface AuthenticatedRequest extends Request {
17
14
  user?: User;
18
15
  admins: string[];
19
- users: string[];
20
- guests: string[];
21
- freeEntry: boolean;
22
16
  }
23
17
  export declare class AuthService {
24
18
  private readonly config;
@@ -36,16 +30,10 @@ export declare class AuthService {
36
30
  * Extract user information from verification result
37
31
  */
38
32
  private extractUserFromVerification;
39
- /**
40
- * Check if user address is in allowed lists
41
- */
42
- private isUserAllowed;
43
33
  /**
44
34
  * Get additional context fields for GraphQL
45
35
  */
46
36
  getAdditionalContextFields(): {
47
- isGuest: (address: string) => boolean;
48
- isUser: (address: string) => boolean;
49
37
  isAdmin: (address: string) => boolean;
50
38
  };
51
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../src/services/auth.service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAExB,MAAM,EAAE,UAAU;IAI9B;;OAEG;IACG,YAAY,CAChB,GAAG,EAAE,oBAAoB,EACzB,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC;IAiEV,+BAA+B,CACnC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IA4CvB;;OAEG;YACW,WAAW;IAIzB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAqBnC;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,0BAA0B;2BAUH,MAAM;0BAIP,MAAM;2BAGL,MAAM;;IAM7B;;OAEG;IACH,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI;;;;;;;;;IAY1B;;OAEG;YACW,sBAAsB;CAgCrC"}
1
+ {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../src/services/auth.service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAExB,MAAM,EAAE,UAAU;IAI9B;;OAEG;IACG,YAAY,CAChB,GAAG,EAAE,oBAAoB,EACzB,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC;IAiEV,+BAA+B,CACnC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IA4CvB;;OAEG;YACW,WAAW;IAIzB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAqBnC;;OAEG;IACH,0BAA0B;2BAQH,MAAM;;IAM7B;;OAEG;IACH,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI;;;;;;;;;IAY1B;;OAEG;YACW,sBAAsB;CAgCrC"}
@@ -16,13 +16,13 @@ export class AuthService {
16
16
  }
17
17
  // Set auth lists on request
18
18
  req.admins = this.config.admins;
19
- req.users = this.config.users;
20
- req.guests = this.config.guests;
21
19
  req.auth_enabled = this.config.enabled;
22
- req.freeEntry = this.config.freeEntry;
23
20
  const token = req.headers.authorization?.split(" ")[1];
24
21
  if (!token) {
25
- res.status(400).json({ error: "Missing authorization token" });
22
+ // Allow through without user — resolver layer enforces permissions
23
+ // This is critical: GraphQL queries are POST requests, so blocking
24
+ // unauthenticated POSTs would block all anonymous reads.
25
+ next();
26
26
  return;
27
27
  }
28
28
  try {
@@ -115,34 +115,16 @@ export class AuthService {
115
115
  return null;
116
116
  }
117
117
  }
118
- /**
119
- * Check if user address is in allowed lists
120
- */
121
- isUserAllowed(address) {
122
- const all = [
123
- ...this.config.admins,
124
- ...this.config.users,
125
- ...this.config.guests,
126
- ];
127
- return all.includes(address.toLocaleLowerCase()) || this.config.freeEntry;
128
- }
129
118
  /**
130
119
  * Get additional context fields for GraphQL
131
120
  */
132
121
  getAdditionalContextFields() {
133
122
  if (!this.config.enabled) {
134
123
  return {
135
- isGuest: () => true,
136
- isUser: () => true,
137
124
  isAdmin: () => true,
138
125
  };
139
126
  }
140
127
  return {
141
- isGuest: (address) => this.config.enabled &&
142
- (this.config.freeEntry ||
143
- this.config.guests?.includes(address.toLowerCase())),
144
- isUser: (address) => this.config.enabled &&
145
- this.config.users?.includes(address.toLowerCase()),
146
128
  isAdmin: (address) => this.config.enabled &&
147
129
  this.config.admins?.includes(address.toLowerCase()),
148
130
  };
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { DocumentPermissionService, GetParentIdsFn } from "./document-permission.service.js";
2
+ export interface AuthorizationConfig {
3
+ admins: string[];
4
+ defaultProtection: boolean;
5
+ }
6
+ /**
7
+ * Central authorization service — single source of truth for all permission checks.
8
+ *
9
+ * Authorization model:
10
+ * 1. Supreme admin (ADMINS env) → ALLOW ALL
11
+ * 2. Is document protected?
12
+ * a. NOT protected:
13
+ * - READ: anyone (even anonymous) → ALLOW
14
+ * - WRITE: authenticated user → ALLOW
15
+ * b. PROTECTED:
16
+ * - READ: requires explicit READ/WRITE/ADMIN grant (direct or via group/parent)
17
+ * - WRITE: requires explicit WRITE/ADMIN grant (direct or via group/parent)
18
+ * 3. Operation restricted? → Check OperationUserPermission
19
+ * 4. Document owner = implicit ADMIN
20
+ * 5. Drive protected = all children effectively protected
21
+ */
22
+ export declare class AuthorizationService {
23
+ private readonly documentPermissionService;
24
+ readonly config: AuthorizationConfig;
25
+ constructor(documentPermissionService: DocumentPermissionService, config: AuthorizationConfig);
26
+ /**
27
+ * Check if a user is a supreme admin (from ADMINS env var).
28
+ */
29
+ isSupremeAdmin(userAddress?: string): boolean;
30
+ /**
31
+ * Check if a user can read a document.
32
+ *
33
+ * - Supreme admin → yes
34
+ * - Not protected → anyone can read (even anonymous)
35
+ * - Protected → requires READ/WRITE/ADMIN grant (direct, group, or parent inheritance)
36
+ * - Owner → yes (implicit ADMIN)
37
+ */
38
+ canRead(documentId: string, userAddress?: string, getParentIds?: GetParentIdsFn): Promise<boolean>;
39
+ /**
40
+ * Check if a user can write to a document.
41
+ *
42
+ * - Supreme admin → yes
43
+ * - Not protected → anyone can write (even anonymous)
44
+ * - Protected → requires authentication + WRITE/ADMIN grant
45
+ * - Owner → yes (implicit ADMIN)
46
+ */
47
+ canWrite(documentId: string, userAddress?: string, getParentIds?: GetParentIdsFn): Promise<boolean>;
48
+ /**
49
+ * Check if a user can manage a document (change permissions, protection, transfer ownership).
50
+ *
51
+ * - Supreme admin → yes
52
+ * - Owner → yes
53
+ * - Has ADMIN grant → yes
54
+ */
55
+ canManage(documentId: string, userAddress?: string, getParentIds?: GetParentIdsFn): Promise<boolean>;
56
+ /**
57
+ * Check if a user can execute a specific operation.
58
+ * If the operation is not restricted, falls through to the standard write check.
59
+ * If the operation is restricted, requires an explicit OperationUserPermission grant.
60
+ */
61
+ canExecuteOperation(documentId: string, operationType: string, userAddress?: string, getParentIds?: GetParentIdsFn): Promise<boolean>;
62
+ /**
63
+ * Combined check for mutations: can the user write + execute the operation?
64
+ * This enables READ-only users with operation grants to execute specific operations.
65
+ * For restricted operations, only the operation grant is checked (bypasses write check),
66
+ * allowing READ-only users with an explicit operation grant to execute that operation.
67
+ */
68
+ canMutate(documentId: string, operationType: string, userAddress?: string, getParentIds?: GetParentIdsFn): Promise<boolean>;
69
+ }
70
+ //# sourceMappingURL=authorization.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization.service.d.ts","sourceRoot":"","sources":["../../../src/services/authorization.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,cAAc,EACf,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,oBAAoB;IAI7B,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAH5C,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;gBAGlB,yBAAyB,EAAE,yBAAyB,EACrE,MAAM,EAAE,mBAAmB;IAK7B;;OAEG;IACH,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAK7C;;;;;;;OAOG;IACG,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC;IAqCnB;;;;;;;OAOG;IACG,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC;IAqCnB;;;;;;OAMG;IACG,SAAS,CACb,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC;IAkBnB;;;;OAIG;IACG,mBAAmB,CACvB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC;IAwBnB;;;;;OAKG;IACG,SAAS,CACb,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC;CAwBpB"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Central authorization service — single source of truth for all permission checks.
3
+ *
4
+ * Authorization model:
5
+ * 1. Supreme admin (ADMINS env) → ALLOW ALL
6
+ * 2. Is document protected?
7
+ * a. NOT protected:
8
+ * - READ: anyone (even anonymous) → ALLOW
9
+ * - WRITE: authenticated user → ALLOW
10
+ * b. PROTECTED:
11
+ * - READ: requires explicit READ/WRITE/ADMIN grant (direct or via group/parent)
12
+ * - WRITE: requires explicit WRITE/ADMIN grant (direct or via group/parent)
13
+ * 3. Operation restricted? → Check OperationUserPermission
14
+ * 4. Document owner = implicit ADMIN
15
+ * 5. Drive protected = all children effectively protected
16
+ */
17
+ export class AuthorizationService {
18
+ documentPermissionService;
19
+ config;
20
+ constructor(documentPermissionService, config) {
21
+ this.documentPermissionService = documentPermissionService;
22
+ this.config = config;
23
+ }
24
+ /**
25
+ * Check if a user is a supreme admin (from ADMINS env var).
26
+ */
27
+ isSupremeAdmin(userAddress) {
28
+ if (!userAddress)
29
+ return false;
30
+ return this.config.admins.includes(userAddress.toLowerCase());
31
+ }
32
+ /**
33
+ * Check if a user can read a document.
34
+ *
35
+ * - Supreme admin → yes
36
+ * - Not protected → anyone can read (even anonymous)
37
+ * - Protected → requires READ/WRITE/ADMIN grant (direct, group, or parent inheritance)
38
+ * - Owner → yes (implicit ADMIN)
39
+ */
40
+ async canRead(documentId, userAddress, getParentIds) {
41
+ // Supreme admin bypasses all
42
+ if (this.isSupremeAdmin(userAddress))
43
+ return true;
44
+ // Check protection status (walks parent chain if getParentIds provided)
45
+ const isProtected = getParentIds
46
+ ? await this.documentPermissionService.isProtectedWithAncestors(documentId, getParentIds)
47
+ : await this.documentPermissionService.isDocumentProtected(documentId);
48
+ // Unprotected documents are readable by anyone
49
+ if (!isProtected)
50
+ return true;
51
+ // Protected document — requires authentication
52
+ if (!userAddress)
53
+ return false;
54
+ // Owner has implicit ADMIN
55
+ const owner = await this.documentPermissionService.getDocumentOwner(documentId);
56
+ if (owner && owner === userAddress.toLowerCase())
57
+ return true;
58
+ // Check grant (READ/WRITE/ADMIN all allow reading)
59
+ if (getParentIds) {
60
+ return this.documentPermissionService.canRead(documentId, userAddress, getParentIds);
61
+ }
62
+ return this.documentPermissionService.canReadDocument(documentId, userAddress);
63
+ }
64
+ /**
65
+ * Check if a user can write to a document.
66
+ *
67
+ * - Supreme admin → yes
68
+ * - Not protected → anyone can write (even anonymous)
69
+ * - Protected → requires authentication + WRITE/ADMIN grant
70
+ * - Owner → yes (implicit ADMIN)
71
+ */
72
+ async canWrite(documentId, userAddress, getParentIds) {
73
+ // Supreme admin bypasses all
74
+ if (this.isSupremeAdmin(userAddress))
75
+ return true;
76
+ // Check protection status
77
+ const isProtected = getParentIds
78
+ ? await this.documentPermissionService.isProtectedWithAncestors(documentId, getParentIds)
79
+ : await this.documentPermissionService.isDocumentProtected(documentId);
80
+ // Unprotected documents are writable by anyone (even anonymous)
81
+ if (!isProtected)
82
+ return true;
83
+ // Protected document — requires authentication
84
+ if (!userAddress)
85
+ return false;
86
+ // Owner has implicit ADMIN
87
+ const owner = await this.documentPermissionService.getDocumentOwner(documentId);
88
+ if (owner && owner === userAddress.toLowerCase())
89
+ return true;
90
+ // Check grant (WRITE/ADMIN allow writing)
91
+ if (getParentIds) {
92
+ return this.documentPermissionService.canWrite(documentId, userAddress, getParentIds);
93
+ }
94
+ return this.documentPermissionService.canWriteDocument(documentId, userAddress);
95
+ }
96
+ /**
97
+ * Check if a user can manage a document (change permissions, protection, transfer ownership).
98
+ *
99
+ * - Supreme admin → yes
100
+ * - Owner → yes
101
+ * - Has ADMIN grant → yes
102
+ */
103
+ async canManage(documentId, userAddress, getParentIds) {
104
+ // Supreme admin bypasses all
105
+ if (this.isSupremeAdmin(userAddress))
106
+ return true;
107
+ if (!userAddress)
108
+ return false;
109
+ // Owner has implicit ADMIN
110
+ const owner = await this.documentPermissionService.getDocumentOwner(documentId);
111
+ if (owner && owner === userAddress.toLowerCase())
112
+ return true;
113
+ // Check ADMIN grant
114
+ return this.documentPermissionService.canManageDocument(documentId, userAddress);
115
+ }
116
+ /**
117
+ * Check if a user can execute a specific operation.
118
+ * If the operation is not restricted, falls through to the standard write check.
119
+ * If the operation is restricted, requires an explicit OperationUserPermission grant.
120
+ */
121
+ async canExecuteOperation(documentId, operationType, userAddress, getParentIds) {
122
+ // Supreme admin bypasses all
123
+ if (this.isSupremeAdmin(userAddress))
124
+ return true;
125
+ // Check if operation is restricted
126
+ const isRestricted = await this.documentPermissionService.isOperationRestricted(documentId, operationType);
127
+ if (!isRestricted) {
128
+ // Operation not restricted — standard write check applies
129
+ return this.canWrite(documentId, userAddress, getParentIds);
130
+ }
131
+ // Operation is restricted — user needs explicit operation grant
132
+ return this.documentPermissionService.canExecuteOperation(documentId, operationType, userAddress?.toLowerCase());
133
+ }
134
+ /**
135
+ * Combined check for mutations: can the user write + execute the operation?
136
+ * This enables READ-only users with operation grants to execute specific operations.
137
+ * For restricted operations, only the operation grant is checked (bypasses write check),
138
+ * allowing READ-only users with an explicit operation grant to execute that operation.
139
+ */
140
+ async canMutate(documentId, operationType, userAddress, getParentIds) {
141
+ // Supreme admin bypasses all
142
+ if (this.isSupremeAdmin(userAddress))
143
+ return true;
144
+ // Check if the operation is restricted
145
+ const isRestricted = await this.documentPermissionService.isOperationRestricted(documentId, operationType);
146
+ if (isRestricted) {
147
+ // For restricted operations, only the operation grant matters
148
+ // This allows READ-only users with operation grants to execute
149
+ return this.documentPermissionService.canExecuteOperation(documentId, operationType, userAddress?.toLowerCase());
150
+ }
151
+ // For unrestricted operations, standard write check applies
152
+ return this.canWrite(documentId, userAddress, getParentIds);
153
+ }
154
+ }
155
+ //# sourceMappingURL=authorization.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization.service.js","sourceRoot":"","sources":["../../../src/services/authorization.service.ts"],"names":[],"mappings":"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"}