@memberjunction/server 5.12.0 → 5.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +92 -88
- package/dist/index.js.map +1 -1
- package/dist/middleware/BaseServerMiddleware.d.ts +103 -0
- package/dist/middleware/BaseServerMiddleware.d.ts.map +1 -0
- package/dist/middleware/BaseServerMiddleware.js +104 -0
- package/dist/middleware/BaseServerMiddleware.js.map +1 -0
- package/dist/middleware/MJTenantFilterMiddleware.d.ts +22 -0
- package/dist/middleware/MJTenantFilterMiddleware.d.ts.map +1 -0
- package/dist/middleware/MJTenantFilterMiddleware.js +41 -0
- package/dist/middleware/MJTenantFilterMiddleware.js.map +1 -0
- package/dist/middleware/index.d.ts +3 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +3 -0
- package/dist/middleware/index.js.map +1 -0
- package/package.json +59 -59
- package/src/__tests__/bcsaas-integration.test.ts +1 -1
- package/src/index.ts +109 -95
- package/src/middleware/BaseServerMiddleware.ts +141 -0
- package/src/middleware/MJTenantFilterMiddleware.ts +39 -0
- package/src/middleware/index.ts +2 -0
- package/dist/hooks.d.ts +0 -65
- package/dist/hooks.d.ts.map +0 -1
- package/dist/hooks.js +0 -14
- package/dist/hooks.js.map +0 -1
- package/dist/test-dynamic-plugin.d.ts +0 -6
- package/dist/test-dynamic-plugin.d.ts.map +0 -1
- package/dist/test-dynamic-plugin.js +0 -18
- package/dist/test-dynamic-plugin.js.map +0 -1
- package/src/hooks.ts +0 -77
- package/src/test-dynamic-plugin.ts +0 -36
package/dist/index.d.ts
CHANGED
|
@@ -63,10 +63,9 @@ export * from './resolvers/VersionHistoryResolver.js';
|
|
|
63
63
|
export * from './resolvers/CurrentUserContextResolver.js';
|
|
64
64
|
export { GetReadOnlyDataSource, GetReadWriteDataSource, GetReadWriteProvider, GetReadOnlyProvider } from './util.js';
|
|
65
65
|
export * from './generated/generated.js';
|
|
66
|
-
export * from './hooks.js';
|
|
67
66
|
export * from './multiTenancy/index.js';
|
|
68
|
-
|
|
69
|
-
export type MJServerOptions =
|
|
67
|
+
export * from './middleware/index.js';
|
|
68
|
+
export type MJServerOptions = {
|
|
70
69
|
onBeforeServe?: () => void | Promise<void>;
|
|
71
70
|
restApiOptions?: Partial<RESTApiOptions>;
|
|
72
71
|
};
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAY,gBAAgB,EAAoF,MAAM,sBAAsB,CAAC;AAOpJ,OAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAM/C,OAAO,kBAAkB,CAAC;AAO1B,OAAO,EAA2H,cAAc,EAAE,MAAM,aAAa,CAAC;AAsBtK;;;GAGG;AACH,wBAAgB,SAAS,IAAI,gBAAgB,CAM5C;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAChE,cAAc,uBAAuB,CAAC;AACtC,cAAc,6DAA6D,CAAC;AAC5E,cAAc,YAAY,CAAC;AAC3B,OAAO,EACH,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,0BAA0B,EAC1B,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,GAChB,MAAM,iBAAiB,CAAC;AACzB,cAAc,2BAA2B,CAAC;AAE1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAEhD,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AAErC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iDAAiD,CAAC;AAChE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAErH,cAAc,0BAA0B,CAAC;AACzC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -104,28 +104,10 @@ export * from './resolvers/VersionHistoryResolver.js';
|
|
|
104
104
|
export * from './resolvers/CurrentUserContextResolver.js';
|
|
105
105
|
export { GetReadOnlyDataSource, GetReadWriteDataSource, GetReadWriteProvider, GetReadOnlyProvider } from './util.js';
|
|
106
106
|
export * from './generated/generated.js';
|
|
107
|
-
export * from './hooks.js';
|
|
108
107
|
export * from './multiTenancy/index.js';
|
|
109
|
-
|
|
110
|
-
import {
|
|
111
|
-
|
|
112
|
-
* Register a hook that may be a plain function or a `{ hook, Priority, Namespace }` object.
|
|
113
|
-
* Dynamic packages (e.g., BCSaaS) return hooks in object form to declare registration metadata.
|
|
114
|
-
*/
|
|
115
|
-
function registerHookEntry(hookName, entry) {
|
|
116
|
-
if (typeof entry === 'function') {
|
|
117
|
-
HookRegistry.Register(hookName, entry);
|
|
118
|
-
}
|
|
119
|
-
else if (entry && typeof entry === 'object' && 'hook' in entry) {
|
|
120
|
-
const { hook, Priority, Namespace } = entry;
|
|
121
|
-
const options = {};
|
|
122
|
-
if (Priority != null)
|
|
123
|
-
options.Priority = Priority;
|
|
124
|
-
if (Namespace != null)
|
|
125
|
-
options.Namespace = Namespace;
|
|
126
|
-
HookRegistry.Register(hookName, hook, options);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
108
|
+
export * from './middleware/index.js';
|
|
109
|
+
import { RegisterDataHook } from '@memberjunction/core';
|
|
110
|
+
import { BaseServerMiddleware } from './middleware/BaseServerMiddleware.js';
|
|
129
111
|
const localPath = (p) => {
|
|
130
112
|
// Convert import.meta.url to a local directory path
|
|
131
113
|
const dirname = fileURLToPath(new URL('.', import.meta.url));
|
|
@@ -344,6 +326,77 @@ export const serve = async (resolverPaths, app = createApp(), options) => {
|
|
|
344
326
|
}
|
|
345
327
|
}));
|
|
346
328
|
const resolvers = dynamicModules.flatMap((module) => Object.values(module).filter((value) => typeof value === 'function'));
|
|
329
|
+
// ─── Discover all server middleware via ClassFactory ─────────────────────
|
|
330
|
+
const allRegistrations = MJGlobal.Instance.ClassFactory.GetAllRegistrations(BaseServerMiddleware);
|
|
331
|
+
// Deduplicate by key (same key -> highest priority wins).
|
|
332
|
+
// This is the replacement mechanism: if BCSaaS registers with the same
|
|
333
|
+
// key as MJ's built-in tenant filter, ClassFactory's priority system
|
|
334
|
+
// ensures only the higher-priority one is used.
|
|
335
|
+
const uniqueKeys = new Set(allRegistrations.map(r => r.Key?.trim().toLowerCase()).filter((k) => k != null));
|
|
336
|
+
const winnerRegistrations = [];
|
|
337
|
+
for (const key of uniqueKeys) {
|
|
338
|
+
const winner = MJGlobal.Instance.ClassFactory.GetRegistration(BaseServerMiddleware, key);
|
|
339
|
+
if (winner)
|
|
340
|
+
winnerRegistrations.push(winner);
|
|
341
|
+
}
|
|
342
|
+
// Instantiate and filter by Enabled
|
|
343
|
+
const middlewares = [];
|
|
344
|
+
for (const reg of winnerRegistrations) {
|
|
345
|
+
const MwClass = reg.SubClass;
|
|
346
|
+
const mw = new MwClass();
|
|
347
|
+
if (mw.Enabled) {
|
|
348
|
+
middlewares.push(mw);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
// Initialize all middleware
|
|
352
|
+
for (const mw of middlewares) {
|
|
353
|
+
await mw.Initialize();
|
|
354
|
+
console.log(` [Middleware] ${mw.Label}`);
|
|
355
|
+
}
|
|
356
|
+
// Collect middleware contributions for each pipeline stage
|
|
357
|
+
const mwPreAuth = [];
|
|
358
|
+
const mwPostAuth = [];
|
|
359
|
+
const mwPostRoute = [];
|
|
360
|
+
const mwApolloPlugins = [];
|
|
361
|
+
const mwSchemaTransformers = [];
|
|
362
|
+
const mwResolverPaths = [];
|
|
363
|
+
for (const mw of middlewares) {
|
|
364
|
+
mwPreAuth.push(...mw.GetPreAuthMiddleware());
|
|
365
|
+
mwPostAuth.push(...mw.GetPostAuthMiddleware());
|
|
366
|
+
mwPostRoute.push(...mw.GetPostRouteMiddleware());
|
|
367
|
+
mwApolloPlugins.push(...mw.GetApolloPlugins());
|
|
368
|
+
mwSchemaTransformers.push(...mw.GetSchemaTransformers());
|
|
369
|
+
mwResolverPaths.push(...mw.GetResolverPaths());
|
|
370
|
+
// Express app configuration escape hatch
|
|
371
|
+
if (mw.ConfigureExpressApp) {
|
|
372
|
+
await mw.ConfigureExpressApp(app);
|
|
373
|
+
}
|
|
374
|
+
// Extract hook methods and register in the global hook store
|
|
375
|
+
// (ProviderBase/BaseEntity will read these via GetDataHooks())
|
|
376
|
+
RegisterDataHook('PreRunView', mw.PreRunView.bind(mw));
|
|
377
|
+
RegisterDataHook('PostRunView', mw.PostRunView.bind(mw));
|
|
378
|
+
RegisterDataHook('PreSave', mw.PreSave.bind(mw));
|
|
379
|
+
}
|
|
380
|
+
// ─── Resolve middleware-contributed resolver paths and merge into resolvers ───
|
|
381
|
+
let allResolvers = resolvers;
|
|
382
|
+
if (mwResolverPaths.length > 0) {
|
|
383
|
+
const mwGlobs = mwResolverPaths.flatMap((p) => (isWindows ? p.replace(/\\/g, '/') : p));
|
|
384
|
+
const mwResolverFiles = fg.globSync(mwGlobs);
|
|
385
|
+
if (mwResolverFiles.length > 0) {
|
|
386
|
+
const mwModules = await Promise.all(mwResolverFiles.map((modulePath) => {
|
|
387
|
+
try {
|
|
388
|
+
return import(isWindows ? `file://${modulePath}` : modulePath);
|
|
389
|
+
}
|
|
390
|
+
catch (e) {
|
|
391
|
+
console.error(`Error loading middleware resolver at '${modulePath}'`, e);
|
|
392
|
+
throw e;
|
|
393
|
+
}
|
|
394
|
+
}));
|
|
395
|
+
const mwResolvers = mwModules.flatMap((module) => Object.values(module).filter((value) => typeof value === 'function'));
|
|
396
|
+
allResolvers = [...resolvers, ...mwResolvers];
|
|
397
|
+
console.log(` [Middleware Resolvers] Loaded ${mwResolverFiles.length} resolver file(s) from middleware`);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
347
400
|
// Create an explicit PubSub instance so we can reference it outside of resolvers
|
|
348
401
|
// graphql-subscriptions v3 renamed asyncIterator→asyncIterableIterator, but
|
|
349
402
|
// type-graphql still calls asyncIterator. Shim for compatibility.
|
|
@@ -376,7 +429,7 @@ export const serve = async (resolverPaths, app = createApp(), options) => {
|
|
|
376
429
|
let schema = mergeSchemas({
|
|
377
430
|
schemas: [
|
|
378
431
|
buildSchemaSync({
|
|
379
|
-
resolvers,
|
|
432
|
+
resolvers: allResolvers,
|
|
380
433
|
validate: false,
|
|
381
434
|
scalarsMap: [{ type: Date, scalar: GraphQLTimestamp }],
|
|
382
435
|
emitSchemaFile: websiteRunFromPackage !== 1,
|
|
@@ -387,11 +440,9 @@ export const serve = async (resolverPaths, app = createApp(), options) => {
|
|
|
387
440
|
});
|
|
388
441
|
schema = requireSystemUserDirective.transformer(schema);
|
|
389
442
|
schema = publicDirective.transformer(schema);
|
|
390
|
-
// Apply
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
schema = transformer(schema);
|
|
394
|
-
}
|
|
443
|
+
// Apply middleware-contributed schema transformers (after built-in directive transformers)
|
|
444
|
+
for (const transformer of mwSchemaTransformers) {
|
|
445
|
+
schema = transformer(schema);
|
|
395
446
|
}
|
|
396
447
|
const httpServer = createServer(app);
|
|
397
448
|
const webSocketServer = new WebSocketServer({ server: httpServer, path: graphqlRootPath });
|
|
@@ -415,7 +466,7 @@ export const serve = async (resolverPaths, app = createApp(), options) => {
|
|
|
415
466
|
}
|
|
416
467
|
},
|
|
417
468
|
}, webSocketServer);
|
|
418
|
-
const apolloServer = buildApolloServer({ schema }, { httpServer, serverCleanup },
|
|
469
|
+
const apolloServer = buildApolloServer({ schema }, { httpServer, serverCleanup }, mwApolloPlugins.length > 0 ? mwApolloPlugins : undefined);
|
|
419
470
|
await apolloServer.start();
|
|
420
471
|
// Fix #8: Add compression for better throughput performance
|
|
421
472
|
app.use(compression({
|
|
@@ -443,15 +494,9 @@ export const serve = async (resolverPaths, app = createApp(), options) => {
|
|
|
443
494
|
app.get('/healthcheck', (_req, res) => {
|
|
444
495
|
res.status(200).json({ status: 'ok' });
|
|
445
496
|
});
|
|
446
|
-
// Apply
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
app.use(mw);
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
// Escape hatch for advanced Express app configuration
|
|
453
|
-
if (options?.ConfigureExpressApp) {
|
|
454
|
-
await Promise.resolve(options.ConfigureExpressApp(app));
|
|
497
|
+
// Apply middleware-contributed pre-auth handlers (after compression, before routes)
|
|
498
|
+
for (const mw of mwPreAuth) {
|
|
499
|
+
app.use(mw);
|
|
455
500
|
}
|
|
456
501
|
// ─── OAuth callback routes (unauthenticated, registered BEFORE auth) ─────
|
|
457
502
|
const oauthPublicUrl = configInfo.publicUrl || `${configInfo.baseUrl}:${configInfo.graphqlPort}${configInfo.graphqlRootPath || ''}`;
|
|
@@ -476,19 +521,12 @@ export const serve = async (resolverPaths, app = createApp(), options) => {
|
|
|
476
521
|
app.use(cors());
|
|
477
522
|
// ─── Unified auth middleware (replaces both REST authMiddleware and contextFunction auth) ─────
|
|
478
523
|
app.use(createUnifiedAuthMiddleware(dataSources));
|
|
479
|
-
// ───
|
|
480
|
-
// Config-driven multi-tenancy middleware runs after auth so it can read req.userPayload.
|
|
481
|
-
if (configInfo.multiTenancy?.enabled) {
|
|
482
|
-
const tenantMiddleware = createTenantMiddleware(configInfo.multiTenancy);
|
|
483
|
-
app.use(tenantMiddleware);
|
|
484
|
-
}
|
|
485
|
-
// ─── Post-auth middleware from plugins ─────
|
|
524
|
+
// ─── Post-auth middleware from BaseServerMiddleware plugins ─────
|
|
486
525
|
// Middleware here has access to the authenticated user via req.userPayload.
|
|
487
|
-
//
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
}
|
|
526
|
+
// Contributions come from @RegisterClass(BaseServerMiddleware, key) classes
|
|
527
|
+
// (e.g., MJTenantFilterMiddleware for multi-tenancy, BCSaaSMiddleware for org context).
|
|
528
|
+
for (const mw of mwPostAuth) {
|
|
529
|
+
app.use(mw);
|
|
492
530
|
}
|
|
493
531
|
// ─── OAuth authenticated routes (auth already handled by unified middleware) ─────
|
|
494
532
|
if (oauthAuthenticatedRouter) {
|
|
@@ -532,10 +570,8 @@ export const serve = async (resolverPaths, app = createApp(), options) => {
|
|
|
532
570
|
}),
|
|
533
571
|
}));
|
|
534
572
|
// ─── Post-route middleware (error handlers, catch-alls) ─────
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
app.use(mw);
|
|
538
|
-
}
|
|
573
|
+
for (const mw of mwPostRoute) {
|
|
574
|
+
app.use(mw);
|
|
539
575
|
}
|
|
540
576
|
// Initialize and start scheduled jobs service if enabled
|
|
541
577
|
let scheduledJobsService = null;
|
|
@@ -550,41 +586,9 @@ export const serve = async (resolverPaths, app = createApp(), options) => {
|
|
|
550
586
|
// Don't throw - allow server to start even if scheduled jobs fail
|
|
551
587
|
}
|
|
552
588
|
}
|
|
553
|
-
//
|
|
554
|
-
//
|
|
555
|
-
|
|
556
|
-
for (const entry of options.PreRunViewHooks) {
|
|
557
|
-
registerHookEntry('PreRunView', entry);
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
if (options?.PostRunViewHooks) {
|
|
561
|
-
for (const entry of options.PostRunViewHooks) {
|
|
562
|
-
registerHookEntry('PostRunView', entry);
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
if (options?.PreSaveHooks) {
|
|
566
|
-
for (const entry of options.PreSaveHooks) {
|
|
567
|
-
registerHookEntry('PreSave', entry);
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
// Auto-register multi-tenancy hooks when enabled in config
|
|
571
|
-
// (The tenant Express middleware was already registered above in the post-auth slot)
|
|
572
|
-
if (configInfo.multiTenancy?.enabled) {
|
|
573
|
-
console.log('[MultiTenancy] Enabled — registering tenant isolation hooks');
|
|
574
|
-
const tenantConfig = configInfo.multiTenancy;
|
|
575
|
-
// Register tenant PreRunView hook (injects WHERE clauses)
|
|
576
|
-
// Priority 50 + namespace allows middle layers to replace with their own implementation
|
|
577
|
-
HookRegistry.Register('PreRunView', createTenantPreRunViewHook(tenantConfig), {
|
|
578
|
-
Priority: 50,
|
|
579
|
-
Namespace: 'mj:tenantFilter',
|
|
580
|
-
});
|
|
581
|
-
// Register tenant PreSave hook (validates tenant column on writes)
|
|
582
|
-
HookRegistry.Register('PreSave', createTenantPreSaveHook(tenantConfig), {
|
|
583
|
-
Priority: 50,
|
|
584
|
-
Namespace: 'mj:tenantSave',
|
|
585
|
-
});
|
|
586
|
-
console.log(`[MultiTenancy] Context source: ${tenantConfig.contextSource}, scoping: ${tenantConfig.scopingStrategy}, write protection: ${tenantConfig.writeProtection}`);
|
|
587
|
-
}
|
|
589
|
+
// Data hooks are now registered via BaseServerMiddleware classes above
|
|
590
|
+
// (e.g., MJTenantFilterMiddleware registers PreRunView and PreSave hooks).
|
|
591
|
+
// No config-bag hook registration needed.
|
|
588
592
|
if (options?.onBeforeServe) {
|
|
589
593
|
await Promise.resolve(options.onBeforeServe());
|
|
590
594
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAoB,WAAW,EAAE,cAAc,IAAI,oBAAoB,EAAE,UAAU,EAAmB,MAAM,sBAAsB,CAAC;AACpJ,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAC7I,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,WAAW,MAAM,aAAa,CAAC,CAAC,6BAA6B;AACpE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAwB,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAsB,eAAe,EAAE,gBAAgB,EAAgB,MAAM,cAAc,CAAC;AACnG,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,qBAAqB,EAAkB,MAAM,aAAa,CAAC;AACtK,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,iBAAiB,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAkB,gBAAgB,EAAkB,MAAM,sBAAsB,CAAC;AAE3G,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,MAAM,oBAAoB,GAAG,UAAU,CAAC,gBAAgB,CAAC,4BAA4B,CAAC;AAEtF;;;GAGG;AACH,MAAM,UAAU,SAAS;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;IAClD,IAAI,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACtE,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAChE,cAAc,uBAAuB,CAAC;AACtC,cAAc,6DAA6D,CAAC;AAC5E,cAAc,YAAY,CAAC;AAC3B,OAAO,EACH,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,0BAA0B,EAC1B,gBAAgB,EAChB,mBAAmB,GAEtB,MAAM,iBAAiB,CAAC;AACzB,cAAc,2BAA2B,CAAC;AAE1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAEhD,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AAErC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iDAAiD,CAAC;AAChE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAErH,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEtH;;;GAGG;AACH,SAAS,iBAAiB,CAAI,QAAgB,EAAE,KAA6B;IAC3E,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QACjE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAA2B,CAAC;QAClE,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,IAAI,QAAQ,IAAI,IAAI;YAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAClD,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QACrD,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAOD,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE;IAC9B,oDAAoD;IACpD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,mEAAmE;IACnE,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAgB,EAAE,CAAC,OAAO,EAAE,CAAC;AAEtD,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,aAA4B,EAAE,MAAmB,SAAS,EAAE,EAAE,OAAyB,EAAiB,EAAE;IACpI,MAAM,kBAAkB,GAAG,CAAC,gCAAgC,EAAE,2BAA2B,EAAE,6BAA6B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEzI,MAAM,qBAAqB,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,kBAAkB,CAAC,CAAC;IAExE,MAAM,SAAS,GAAG,GAAG,KAAK,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACrG,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,yBAAyB,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAqB,EAAE,CAAC;IAEzC,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QAC5B,kEAAkE;QAClE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;QAEzH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,WAAW,CAAC;QACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,UAAU,CAAC;QAChF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QACxE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAE5E,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACjC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,UAAU;YACpB,GAAG,EAAE,UAAU,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,IAAI,EAAE;YAC1D,GAAG,EAAE,UAAU,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC;YACzD,iBAAiB,EAAE,UAAU,CAAC,gBAAgB,CAAC,cAAc,EAAE,iBAAiB,IAAI,KAAK;YACzF,uBAAuB,EAAE,UAAU,CAAC,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,IAAI,KAAK;SACnG,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnC,UAAU,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,gCAAgC,MAAM,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;QAE9E,yEAAyE;QACzE,2EAA2E;QAC3E,MAAM,eAAe,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACtD,WAAW,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC;YAClC,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC,CAAC;QAEJ,iCAAiC;QACjC,MAAM,kBAAkB,GAAG;YACzB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,MAAM;YAChB,cAAc,EAAE,UAAU,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,IAAI,EAAE;YACrE,cAAc,EAAE,UAAU,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC;SACrE,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,4BAA4B,CACnD,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GAAG,IAAI,CAC5B,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAC9C,MAAM,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACpC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEtB,sCAAsC;QACtC,MAAM,sBAAsB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAErD,sBAAsB;QACtB,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAC3F,MAAM,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,QAAQ,CAAC,CAAC;QAEvF,8EAA8E;QAC9E,uEAAuE;QACvE,6EAA6E;QAC7E,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,kBAAkB,CAAC;QACxE,qBAAqB,CAAC,kBAAkB,GAAG,KAAK,WAC9C,IAAwB,EAAE,KAAa,EAAE,UAAsB,EAAE,WAAqD;YAEtH,MAAM,OAAO,GAAG,IAA0C,CAAC;YAC3D,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,OAAO,CAAC,OAA4B,CAAC;gBACvD,wEAAwE;gBACxE,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAC7C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC9C,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC;YACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACjF,CAAC,CAAC;QAEF,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC7G,CAAC;SAAM,CAAC;QACN,kEAAkE;QAClE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAEzD,0EAA0E;QAC1E,iFAAiF;QACjF,0EAA0E;QAC1E,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,OAAO,CAAC,KAAK,CAAC,0EAA0E,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,WAAW,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,EAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC;QAErJ,6GAA6G;QAC7G,IAAI,UAAU,CAAC,kBAAkB,IAAI,UAAU,CAAC,kBAAkB,EAAE,CAAC;YACnE,MAAM,cAAc,GAAG;gBACrB,GAAG,iBAAiB,EAAE;gBACtB,IAAI,EAAE,UAAU,CAAC,kBAAkB;gBACnC,QAAQ,EAAE,UAAU,CAAC,kBAAkB;aACxC,CAAC;YACF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAE5D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,OAAO,CAAC,KAAK,CAAC,8EAA8E,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7G,CAAC,CAAC,CAAC;YAEH,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAE7B,WAAW,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,EAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,kBAAkB,EAAC,CAAC,CAAC,CAAC;YAC/K,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,2BAA2B,CAAC,IAAI,EAAE,cAAc,EAAE,oBAAoB,CAAC,CAAC;QAC3F,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC7G,CAAC;IAED,6EAA6E;IAC7E,oDAAoD;IACpD,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;QAC7B,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,aAAa,CAAC;IACvF,CAAC;IAED,8CAA8C;IAC9C,MAAM,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IACrC,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;QAClC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;YAChC,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,KAAuB,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,wCAAwC,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC,CAAC;IAClG,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,6FAA6F;IAC7F,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,IAAI,yBAAyB,CAAC;YAClD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;YAC1B,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI;YAC/C,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACF,QAAQ,CAAC,QAAoC,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;QACtF,MAAM,aAAa,CAAC,cAAc,EAAE,CAAC;QAErC,sEAAsE;QACtE,iFAAiF;QACjF,aAAa,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,OAAO,CAAC,GAAG,CAAC,gDAAgD,KAAK,CAAC,MAAM,SAAS,KAAK,CAAC,QAAQ,iBAAiB,WAAW,EAAE,CAAC,CAAC;YAC/H,iBAAiB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAEtD,uEAAuE;YACvE,iFAAiF;YACjF,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,IAAI,UAAU,EAAE,CAAC;gBACb,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE;oBACrD,UAAU;oBACV,gBAAgB,EAAE,IAAI,EAAE,4BAA4B;oBACpD,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM;oBAC9B,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,SAAS;oBACjD,SAAS,EAAE,IAAI,IAAI,EAAE;iBACxB,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,mCAAmC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,6EAA6E;IAC7E,gFAAgF;IAChF,2EAA2E;IAC3E,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAC1B,MAAM,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACtE,CAAC;IACD,wFAAwF;IACxF,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED,8FAA8F;IAC9F,sEAAsE;IACtE,eAAe,EAAE,CAAC;IAElB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,UAAU,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,EAAG,IAAI,CAAC,CAAC;IAEtD,2CAA2C;IAC3C,2CAA2C;IAC3C,oDAAoD;IACpD,8CAA8C;IAE9C,yEAAyE;IACzE,4DAA4D;IAC5D,wBAAwB;IACxB,4DAA4D;IAC5D,gCAAgC;IAChC,QAAQ;IACR,MAAM;IACN,2CAA2C;IAC3C,2CAA2C;IAE3C,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,oCAAoC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IACF,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAClD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAClC,CAAC;IAErC,iFAAiF;IACjF,4EAA4E;IAC5E,kEAAkE;IAClE,MAAM,MAAM,GAAG,IAAI,MAAM,EAAwC,CAAC;IAClE,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU,EAAE,CAAC;QAChF,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,qBAAqB,CAAC;IACtD,CAAC;IACD,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAiC,CAAC,CAAC;IAE1E,gFAAgF;IAChF,8EAA8E;IAC9E,oFAAoF;IACpF,kFAAkF;IAClF,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5D,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,cAAc,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;YAC/F,MAAM,OAAO,GAAG,KAAK,CAAC,IAAuB,CAAC;YAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACzD,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE;oBACvD,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI;oBAC9C,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC;oBAC7E,MAAM,EAAE,OAAO,CAAC,IAAI;oBACpB,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW;oBAC7C,SAAS,EAAE,IAAI,IAAI,EAAE;oBACrB,eAAe,EAAE,IAAI;oBACrB,UAAU,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC9F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,GAAG,YAAY,CAAC;QACxB,OAAO,EAAE;YACP,eAAe,CAAC;gBACd,SAAS;gBACT,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;gBACtD,cAAc,EAAE,qBAAqB,KAAK,CAAC;gBAC3C,MAAM;aACP,CAAC;SACH;QACD,QAAQ,EAAE,CAAC,0BAA0B,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC;KAC1E,CAAC,CAAC;IACH,MAAM,GAAG,0BAA0B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAE7C,kFAAkF;IAClF,IAAI,OAAO,EAAE,kBAAkB,EAAE,CAAC;QAChC,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;YACrD,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IAC3F,MAAM,aAAa,GAAG,SAAS,CAC7B;QACE,MAAM;QACN,OAAO,EAAE,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE;YACtC,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAC1G,OAAO,EAAE,WAAW,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAChC,yDAAyD;YACzD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACvC,GAAG,CAAC,UAAU,EAAE,IAAI,KAAK,aAAa;gBACtC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAC3C,CAAC;YAEF,IAAI,cAAc,EAAE,CAAC;gBACnB,wEAAwE;gBACxE,OAAO,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;YACpG,CAAC;iBAAM,CAAC;gBACN,mCAAmC;gBACnC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;KACF,EACD,eAAe,CAChB,CAAC;IAEF,MAAM,YAAY,GAAG,iBAAiB,CACpC,EAAE,MAAM,EAAE,EACV,EAAE,UAAU,EAAE,aAAa,EAAE,EAC7B,OAAO,EAAE,aAAa,CACvB,CAAC;IACF,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;IAE3B,4DAA4D;IAC5D,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;QAClB,4CAA4C;QAC5C,SAAS,EAAE,IAAI;QACf,8DAA8D;QAC9D,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACnB,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAChC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAChD,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC9B,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC9B,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC9B,WAAW,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;oBACrD,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;QACD,0EAA0E;QAC1E,KAAK,EAAE,CAAC;KACT,CAAC,CAAC,CAAC;IAEJ,qEAAqE;IACrE,gEAAgE;IAChE,0CAA0C;IAC1C,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACpC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,IAAI,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACrC,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;YACjD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,IAAI,OAAO,EAAE,mBAAmB,EAAE,CAAC;QACjC,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,4EAA4E;IAC5E,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;IACpI,OAAO,CAAC,GAAG,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAC;IAEpD,IAAI,wBAA0G,CAAC;IAC/G,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,0BAA0B,CAAC;YACzE,SAAS,EAAE,cAAc;YACzB,kBAAkB,EAAE,GAAG,cAAc,gBAAgB;YACrD,gBAAgB,EAAE,GAAG,cAAc,cAAc;SAClD,CAAC,CAAC;QACH,wBAAwB,GAAG,mBAAmB,CAAC;QAE/C,MAAM,SAAS,GAAG,IAAI,EAAoB,CAAC;QAE3C,qEAAqE;QACrE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACtE,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,wEAAwE;IACxE,mEAAmE;IACnE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAoB,CAAC,CAAC;IAElC,iGAAiG;IACjG,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,CAAC;IAElD,0DAA0D;IAC1D,yFAAyF;IACzF,IAAI,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACzE,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IAED,8CAA8C;IAC9C,4EAA4E;IAC5E,uEAAuE;IACvE,IAAI,OAAO,EAAE,yBAAyB,EAAE,CAAC;QACvC,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,yBAAyB,EAAE,CAAC;YACnD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,oFAAoF;IACpF,IAAI,wBAAwB,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,EAAoB,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,wBAAwB,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,gGAAgG,CAAC,CAAC;IAChH,CAAC;IAED,4EAA4E;IAC5E,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,UAAU,CAAC,cAAc,EAAE,OAAO,IAAI,KAAK;QACpD,eAAe,EAAE,UAAU,CAAC,cAAc,EAAE,eAAe;QAC3D,eAAe,EAAE,UAAU,CAAC,cAAc,EAAE,eAAe;KAC5D,CAAC;IAEF,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAClD,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,CAAC;QACnE,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;QAC7C,aAAa,CAAC,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;QAC7C,aAAa,CAAC,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,2EAA2E;IAC3E,kBAAkB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAEvC,mFAAmF;IACnF,GAAG,CAAC,GAAG,CACL,eAAe,EACf,IAAI,EAAoB,EACxB,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,uEAAuE;IACvE,qEAAqE;IACrE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAC3E,iBAAiB,CAAC,YAAY,EAAE;QAC9B,OAAO,EAAE,eAAe,CAAC;YACE,cAAc;YACd,UAAU,EAAE,6BAA6B,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,iCAAiC;YACvG,WAAW,CAAC,kBAAkB;SAC/B,CAAC;KAC5B,CAAC,CACH,CAAC;IAEF,+DAA+D;IAC/D,IAAI,OAAO,EAAE,sBAAsB,EAAE,CAAC;QACpC,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;YAChD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,IAAI,oBAAoB,GAAgC,IAAI,CAAC;IAC7D,IAAI,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC1E,MAAM,oBAAoB,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YAClE,kEAAkE;QACpE,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,gFAAgF;IAChF,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5C,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7C,iBAAiB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,qFAAqF;IACrF,IAAI,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAE7C,0DAA0D;QAC1D,wFAAwF;QACxF,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,0BAA0B,CAAC,YAAY,CAAC,EAAE;YAC5E,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,iBAAiB;SAC7B,CAAC,CAAC;QAEH,mEAAmE;QACnE,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC,YAAY,CAAC,EAAE;YACtE,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,eAAe;SAC3B,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,kCAAkC,YAAY,CAAC,aAAa,cAAc,YAAY,CAAC,eAAe,uBAAuB,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3K,CAAC;IAED,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,uCAAuC,WAAW,GAAG,CAAC,CAAC;IAEnE,oCAAoC;IACpC,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,wCAAwC,CAAC,CAAC;QAEjE,8BAA8B;QAC9B,IAAI,oBAAoB,EAAE,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,oBAAoB,CAAC,IAAI,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,eAAe;QACf,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvD,gEAAgE;IAChE,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QACnD,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACtC,4CAA4C;QAC5C,0EAA0E;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,MAAyB;IACtD,MAAM,OAAO,GAAG;QACd,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,KAAK,EAAE,QAAgB,EAAqD,EAAE;YACnF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,EAAE,GAAkF,EAAE,CAAC,CAAC;YAC7F,KAAK,EAAE,KAAK,EAAE,QAAgB,EAAE,EAAE;gBAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,CAAC;SACF,CAAC;QACF,+CAA+C;QAC/C,OAAO,EAAE,MAAM;KAChB,CAAC;IACF,OAAO,OAAwC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CAAC,MAAyB,EAAE,UAAkB;IACjF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,iBAAiB,UAAU,YAAY,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,iBAAiB,UAAU,gBAAgB,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3B,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAA6B,EAAE,EAAE;YAC5D,MAAM,aAAa,GAAG;gBACpB,GAAG,IAAI;gBACP,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAA6B,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAgB,EAAE,IAAI,CAAC,EAAY,CAAC,CAAC;aACjH,CAAC;YACF,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,8CAA8C;QAC9C,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC;QAChC,KAA4C,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACtE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,GAAW;IACxC,yCAAyC;IACzC,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for server middleware that intercepts the MJServer request pipeline.
|
|
3
|
+
*
|
|
4
|
+
* Subclasses register via @RegisterClass(BaseServerMiddleware, key) and are
|
|
5
|
+
* discovered by serve() via ClassFactory.GetAllRegistrations().
|
|
6
|
+
*
|
|
7
|
+
* Key-based deduplication: If two middleware classes register with the same key,
|
|
8
|
+
* ClassFactory returns the highest-priority one -- the other is replaced.
|
|
9
|
+
* This is how BCSaaS replaces MJ's built-in tenant filtering.
|
|
10
|
+
*
|
|
11
|
+
* For adding new routes/endpoints (webhooks, bot endpoints), see
|
|
12
|
+
* ServerExtensionsCore and BaseServerExtension (PR #2037).
|
|
13
|
+
* BaseServerMiddleware is for intercepting the existing pipeline, not adding to it.
|
|
14
|
+
*/
|
|
15
|
+
import type { RequestHandler, ErrorRequestHandler, Application } from 'express';
|
|
16
|
+
import type { ApolloServerPlugin } from '@apollo/server';
|
|
17
|
+
import type { GraphQLSchema } from 'graphql';
|
|
18
|
+
import type { RunViewParams, UserInfo, BaseEntity, RunViewResult } from '@memberjunction/core';
|
|
19
|
+
export declare abstract class BaseServerMiddleware {
|
|
20
|
+
/**
|
|
21
|
+
* Human-readable label for logging (e.g., 'mj:tenantFilter', 'bcsaas').
|
|
22
|
+
*/
|
|
23
|
+
abstract get Label(): string;
|
|
24
|
+
/**
|
|
25
|
+
* Whether this middleware is active. Override to check config, env vars, etc.
|
|
26
|
+
* Disabled middleware classes are never instantiated or activated by serve().
|
|
27
|
+
* Default: true.
|
|
28
|
+
*/
|
|
29
|
+
get Enabled(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Optional async initialization (read config, warm caches, etc.).
|
|
32
|
+
* Called by serve() after instantiation, before middleware/hooks are extracted.
|
|
33
|
+
*/
|
|
34
|
+
Initialize(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Express middleware applied BEFORE authentication.
|
|
37
|
+
* Runs after compression but before OAuth/REST/GraphQL routes.
|
|
38
|
+
* Use for: rate limiting, request logging, custom headers.
|
|
39
|
+
*/
|
|
40
|
+
GetPreAuthMiddleware(): RequestHandler[];
|
|
41
|
+
/**
|
|
42
|
+
* Express middleware that runs AFTER authentication has resolved UserInfo.
|
|
43
|
+
* The authenticated user payload is available at req.userPayload.
|
|
44
|
+
* Use for: tenant context resolution, org membership loading.
|
|
45
|
+
*/
|
|
46
|
+
GetPostAuthMiddleware(): RequestHandler[];
|
|
47
|
+
/**
|
|
48
|
+
* Express middleware/error handlers applied AFTER all routes.
|
|
49
|
+
* Use for: catch-all error handlers, response logging.
|
|
50
|
+
*/
|
|
51
|
+
GetPostRouteMiddleware(): (RequestHandler | ErrorRequestHandler)[];
|
|
52
|
+
/**
|
|
53
|
+
* Optional escape hatch for advanced Express app configuration.
|
|
54
|
+
* Called once during server setup with the Express app instance.
|
|
55
|
+
* Use for: trust proxy settings, custom CORS, body parser config.
|
|
56
|
+
* Return undefined to skip (default).
|
|
57
|
+
*/
|
|
58
|
+
ConfigureExpressApp?(app: Application): void | Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Additional Apollo Server plugins merged with built-in plugins.
|
|
61
|
+
* Use for: query tracing, caching, custom error formatting.
|
|
62
|
+
*/
|
|
63
|
+
GetApolloPlugins(): ApolloServerPlugin[];
|
|
64
|
+
/**
|
|
65
|
+
* Schema transformers applied after built-in directive transformers.
|
|
66
|
+
* Use for: custom directives, schema stitching, field-level auth.
|
|
67
|
+
*/
|
|
68
|
+
GetSchemaTransformers(): ((schema: GraphQLSchema) => GraphQLSchema)[];
|
|
69
|
+
/**
|
|
70
|
+
* Additional TypeGraphQL resolver glob paths to include in the Apollo schema.
|
|
71
|
+
* serve() collects these from all active middleware and adds them to the
|
|
72
|
+
* resolvers array passed to buildSchema().
|
|
73
|
+
*
|
|
74
|
+
* Return absolute glob paths (use `path.join(__dirname, ...)` or equivalent).
|
|
75
|
+
*
|
|
76
|
+
* Use for: Open App resolvers, domain-specific GraphQL queries/mutations
|
|
77
|
+
* that live outside MJServer's built-in resolver set.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* GetResolverPaths(): string[] {
|
|
82
|
+
* return [path.join(__dirname, 'resolvers', '*Resolver.{js,ts}')];
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
GetResolverPaths(): string[];
|
|
87
|
+
/**
|
|
88
|
+
* Hook that runs before a RunView operation. Can modify the RunViewParams
|
|
89
|
+
* (e.g., injecting tenant filters) before execution.
|
|
90
|
+
*/
|
|
91
|
+
PreRunView(params: RunViewParams, contextUser: UserInfo | undefined): RunViewParams | Promise<RunViewParams>;
|
|
92
|
+
/**
|
|
93
|
+
* Hook that runs after a RunView operation completes. Can modify the result
|
|
94
|
+
* (e.g., filtering or augmenting data) before it is returned to the caller.
|
|
95
|
+
*/
|
|
96
|
+
PostRunView(params: RunViewParams, results: RunViewResult, contextUser: UserInfo | undefined): RunViewResult | Promise<RunViewResult>;
|
|
97
|
+
/**
|
|
98
|
+
* Hook that runs before a Save operation on a BaseEntity.
|
|
99
|
+
* Return true to allow, false to reject silently, or a string to reject with that error message.
|
|
100
|
+
*/
|
|
101
|
+
PreSave(entity: BaseEntity, contextUser: UserInfo | undefined): boolean | string | Promise<boolean | string>;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=BaseServerMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseServerMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/BaseServerMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE/F,8BAAsB,oBAAoB;IAGtC;;OAEG;IACH,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC;IAE7B;;;;OAIG;IACH,IAAI,OAAO,IAAI,OAAO,CAAiB;IAIvC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;;;OAIG;IACH,oBAAoB,IAAI,cAAc,EAAE;IAExC;;;;OAIG;IACH,qBAAqB,IAAI,cAAc,EAAE;IAEzC;;;OAGG;IACH,sBAAsB,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,EAAE;IAIlE;;;;;OAKG;IACH,mBAAmB,CAAC,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;;OAGG;IACH,gBAAgB,IAAI,kBAAkB,EAAE;IAExC;;;OAGG;IACH,qBAAqB,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,KAAK,aAAa,CAAC,EAAE;IAIrE;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAM5B;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAI5G;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAIrI;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;CAG/G"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for server middleware that intercepts the MJServer request pipeline.
|
|
3
|
+
*
|
|
4
|
+
* Subclasses register via @RegisterClass(BaseServerMiddleware, key) and are
|
|
5
|
+
* discovered by serve() via ClassFactory.GetAllRegistrations().
|
|
6
|
+
*
|
|
7
|
+
* Key-based deduplication: If two middleware classes register with the same key,
|
|
8
|
+
* ClassFactory returns the highest-priority one -- the other is replaced.
|
|
9
|
+
* This is how BCSaaS replaces MJ's built-in tenant filtering.
|
|
10
|
+
*
|
|
11
|
+
* For adding new routes/endpoints (webhooks, bot endpoints), see
|
|
12
|
+
* ServerExtensionsCore and BaseServerExtension (PR #2037).
|
|
13
|
+
* BaseServerMiddleware is for intercepting the existing pipeline, not adding to it.
|
|
14
|
+
*/
|
|
15
|
+
export class BaseServerMiddleware {
|
|
16
|
+
/**
|
|
17
|
+
* Whether this middleware is active. Override to check config, env vars, etc.
|
|
18
|
+
* Disabled middleware classes are never instantiated or activated by serve().
|
|
19
|
+
* Default: true.
|
|
20
|
+
*/
|
|
21
|
+
get Enabled() { return true; }
|
|
22
|
+
// --- Lifecycle ---
|
|
23
|
+
/**
|
|
24
|
+
* Optional async initialization (read config, warm caches, etc.).
|
|
25
|
+
* Called by serve() after instantiation, before middleware/hooks are extracted.
|
|
26
|
+
*/
|
|
27
|
+
async Initialize() { }
|
|
28
|
+
// --- Express Middleware ---
|
|
29
|
+
// Each method corresponds to a named slot in the request pipeline.
|
|
30
|
+
// Override to contribute middleware at that stage.
|
|
31
|
+
// Default implementations return empty arrays (no-op).
|
|
32
|
+
/**
|
|
33
|
+
* Express middleware applied BEFORE authentication.
|
|
34
|
+
* Runs after compression but before OAuth/REST/GraphQL routes.
|
|
35
|
+
* Use for: rate limiting, request logging, custom headers.
|
|
36
|
+
*/
|
|
37
|
+
GetPreAuthMiddleware() { return []; }
|
|
38
|
+
/**
|
|
39
|
+
* Express middleware that runs AFTER authentication has resolved UserInfo.
|
|
40
|
+
* The authenticated user payload is available at req.userPayload.
|
|
41
|
+
* Use for: tenant context resolution, org membership loading.
|
|
42
|
+
*/
|
|
43
|
+
GetPostAuthMiddleware() { return []; }
|
|
44
|
+
/**
|
|
45
|
+
* Express middleware/error handlers applied AFTER all routes.
|
|
46
|
+
* Use for: catch-all error handlers, response logging.
|
|
47
|
+
*/
|
|
48
|
+
GetPostRouteMiddleware() { return []; }
|
|
49
|
+
// --- Apollo / GraphQL Extensions ---
|
|
50
|
+
/**
|
|
51
|
+
* Additional Apollo Server plugins merged with built-in plugins.
|
|
52
|
+
* Use for: query tracing, caching, custom error formatting.
|
|
53
|
+
*/
|
|
54
|
+
GetApolloPlugins() { return []; }
|
|
55
|
+
/**
|
|
56
|
+
* Schema transformers applied after built-in directive transformers.
|
|
57
|
+
* Use for: custom directives, schema stitching, field-level auth.
|
|
58
|
+
*/
|
|
59
|
+
GetSchemaTransformers() { return []; }
|
|
60
|
+
// --- Resolver Discovery ---
|
|
61
|
+
/**
|
|
62
|
+
* Additional TypeGraphQL resolver glob paths to include in the Apollo schema.
|
|
63
|
+
* serve() collects these from all active middleware and adds them to the
|
|
64
|
+
* resolvers array passed to buildSchema().
|
|
65
|
+
*
|
|
66
|
+
* Return absolute glob paths (use `path.join(__dirname, ...)` or equivalent).
|
|
67
|
+
*
|
|
68
|
+
* Use for: Open App resolvers, domain-specific GraphQL queries/mutations
|
|
69
|
+
* that live outside MJServer's built-in resolver set.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* GetResolverPaths(): string[] {
|
|
74
|
+
* return [path.join(__dirname, 'resolvers', '*Resolver.{js,ts}')];
|
|
75
|
+
* }
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
GetResolverPaths() { return []; }
|
|
79
|
+
// --- Data Hooks ---
|
|
80
|
+
// Override any of these to intercept data operations.
|
|
81
|
+
// Default implementations are pass-through (no-op).
|
|
82
|
+
/**
|
|
83
|
+
* Hook that runs before a RunView operation. Can modify the RunViewParams
|
|
84
|
+
* (e.g., injecting tenant filters) before execution.
|
|
85
|
+
*/
|
|
86
|
+
PreRunView(params, contextUser) {
|
|
87
|
+
return params;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Hook that runs after a RunView operation completes. Can modify the result
|
|
91
|
+
* (e.g., filtering or augmenting data) before it is returned to the caller.
|
|
92
|
+
*/
|
|
93
|
+
PostRunView(params, results, contextUser) {
|
|
94
|
+
return results;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Hook that runs before a Save operation on a BaseEntity.
|
|
98
|
+
* Return true to allow, false to reject silently, or a string to reject with that error message.
|
|
99
|
+
*/
|
|
100
|
+
PreSave(entity, contextUser) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=BaseServerMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseServerMiddleware.js","sourceRoot":"","sources":["../../src/middleware/BaseServerMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,MAAM,OAAgB,oBAAoB;IAQtC;;;;OAIG;IACH,IAAI,OAAO,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAEvC,oBAAoB;IAEpB;;;OAGG;IACH,KAAK,CAAC,UAAU,KAA2C,CAAC;IAE5D,6BAA6B;IAC7B,mEAAmE;IACnE,mDAAmD;IACnD,uDAAuD;IAEvD;;;;OAIG;IACH,oBAAoB,KAAuB,OAAO,EAAE,CAAC,CAAC,CAAC;IAEvD;;;;OAIG;IACH,qBAAqB,KAAuB,OAAO,EAAE,CAAC,CAAC,CAAC;IAExD;;;OAGG;IACH,sBAAsB,KAA+C,OAAO,EAAE,CAAC,CAAC,CAAC;IAYjF,sCAAsC;IAEtC;;;OAGG;IACH,gBAAgB,KAA2B,OAAO,EAAE,CAAC,CAAC,CAAC;IAEvD;;;OAGG;IACH,qBAAqB,KAAmD,OAAO,EAAE,CAAC,CAAC,CAAC;IAEpF,6BAA6B;IAE7B;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,KAAe,OAAO,EAAE,CAAC,CAAC,CAAC;IAE3C,qBAAqB;IACrB,sDAAsD;IACtD,oDAAoD;IAEpD;;;OAGG;IACH,UAAU,CAAC,MAAqB,EAAE,WAAiC;QAC/D,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,MAAqB,EAAE,OAAsB,EAAE,WAAiC;QACxF,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,MAAkB,EAAE,WAAiC;QACzD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MJ's built-in multi-tenancy middleware.
|
|
3
|
+
*
|
|
4
|
+
* Registers with key 'mj:tenantFilter' so that downstream layers (e.g., BCSaaS)
|
|
5
|
+
* can replace it by registering with the same key at higher ClassFactory priority.
|
|
6
|
+
*
|
|
7
|
+
* Conditionally enabled via configInfo.multiTenancy?.enabled.
|
|
8
|
+
*/
|
|
9
|
+
import { BaseServerMiddleware } from './BaseServerMiddleware.js';
|
|
10
|
+
import type { RequestHandler } from 'express';
|
|
11
|
+
import type { RunViewParams, UserInfo, BaseEntity } from '@memberjunction/core';
|
|
12
|
+
export declare class MJTenantFilterMiddleware extends BaseServerMiddleware {
|
|
13
|
+
get Label(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Only active when multiTenancy is enabled in config.
|
|
16
|
+
*/
|
|
17
|
+
get Enabled(): boolean;
|
|
18
|
+
GetPostAuthMiddleware(): RequestHandler[];
|
|
19
|
+
PreRunView(params: RunViewParams, contextUser: UserInfo | undefined): RunViewParams | Promise<RunViewParams>;
|
|
20
|
+
PreSave(entity: BaseEntity, contextUser: UserInfo | undefined): boolean | string | Promise<boolean | string>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=MJTenantFilterMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJTenantFilterMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/MJTenantFilterMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhF,qBACa,wBAAyB,SAAQ,oBAAoB;IAC9D,IAAI,KAAK,IAAI,MAAM,CAA8B;IAEjD;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,qBAAqB,IAAI,cAAc,EAAE;IAIzC,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAI5G,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;CAG/G"}
|