@goatlab/node-backend 1.1.22 → 1.2.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.
Files changed (33) hide show
  1. package/dist/container/Container.d.ts +19 -4
  2. package/dist/container/Container.js +112 -8
  3. package/dist/container/Container.js.map +1 -1
  4. package/dist/container/helpers.d.ts +12 -1
  5. package/dist/container/helpers.js +26 -1
  6. package/dist/container/helpers.js.map +1 -1
  7. package/dist/container/types.d.ts +18 -0
  8. package/dist/index.d.ts +4 -1
  9. package/dist/index.js +7 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/server/bootstraps/ExpressTrpcAppConfig.d.ts +69 -1
  12. package/dist/server/bootstraps/ExpressTrpcAppConfig.js +4 -0
  13. package/dist/server/bootstraps/ExpressTrpcAppConfig.js.map +1 -1
  14. package/dist/server/bootstraps/getExpressTrpcApp.js +9 -4
  15. package/dist/server/bootstraps/getExpressTrpcApp.js.map +1 -1
  16. package/dist/server/context/request.context.d.ts +2 -3
  17. package/dist/server/context/request.context.js +3 -3
  18. package/dist/server/context/request.context.js.map +1 -1
  19. package/dist/server/context/trpc.context.d.ts +25 -0
  20. package/dist/server/context/trpc.context.js +80 -54
  21. package/dist/server/context/trpc.context.js.map +1 -1
  22. package/dist/server/schemas/user.schema.d.ts +13 -5
  23. package/dist/server/schemas/user.schema.js +26 -4
  24. package/dist/server/schemas/user.schema.js.map +1 -1
  25. package/dist/server/test/firebase.mock.d.ts +4 -2
  26. package/dist/server/test/firebase.mock.js +15 -13
  27. package/dist/server/test/firebase.mock.js.map +1 -1
  28. package/dist/server/test/mock.model.d.ts +1 -1
  29. package/dist/server/trpc.d.ts +24 -33
  30. package/dist/server/trpc.js +3 -3
  31. package/dist/server/trpc.js.map +1 -1
  32. package/dist/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- import { BatchBootstrapOptions, BatchBootstrapResult, BatchInvalidationResult, ContainerOptions, InstancesStructure, PreloadStructure } from './types';
1
+ import { BatchBootstrapOptions, BatchBootstrapResult, BatchInvalidationResult, ContainerOptions, DisposalResult, InstancesStructure, PreloadStructure } from './types';
2
2
  /**
3
3
  * ═══════════════════════════════════════════════════════════════════════════════
4
4
  * 🏗️ MULTI-TENANT DEPENDENCY INJECTION CONTAINER
@@ -121,11 +121,18 @@ export declare class Container<Defs extends Record<string, unknown>, TenantMetad
121
121
  */
122
122
  private readonly contextProxyCache;
123
123
  /**
124
- * Initializer cache: stores initialized instances per tenant
124
+ * Initializer cache: stores initialized instances per tenant with LRU eviction
125
125
  * Avoids re-running the expensive initializer function for the same tenant
126
126
  * Key is a serialized version of tenant metadata, value is the initialized instances
127
+ * Uses accessOrder to track LRU for eviction when cache exceeds maxInitializerCacheSize
127
128
  */
128
129
  private readonly initializerCache;
130
+ /**
131
+ * Tracks access order for LRU eviction of initializerCache entries
132
+ * Key is cache key, value is access timestamp (incrementing counter)
133
+ */
134
+ private readonly initializerAccessOrder;
135
+ private initializerAccessCounter;
129
136
  /**
130
137
  * High-performance metrics using Uint32Array for better JIT optimization
131
138
  * Indices: [hits, misses, creates, ctx, proxy, initHits, resets, batchOps, batchErrors]
@@ -250,9 +257,15 @@ export declare class Container<Defs extends Record<string, unknown>, TenantMetad
250
257
  * Uses common tenant properties or hashed JSON as fallback
251
258
  */
252
259
  private createTenantCacheKey;
260
+ /**
261
+ * Evict the least recently used entry from initializerCache if at capacity
262
+ * Called before adding a new entry when cache is at maxInitializerCacheSize
263
+ */
264
+ private evictLruFromInitializerCache;
253
265
  /**
254
266
  * Get or create initialized instances for a tenant with race condition protection
255
267
  * Uses both result caching and inflight promise deduplication
268
+ * Implements LRU eviction when cache exceeds maxInitializerCacheSize
256
269
  */
257
270
  private getOrCreateInstances;
258
271
  /**
@@ -392,8 +405,9 @@ export declare class Container<Defs extends Record<string, unknown>, TenantMetad
392
405
  * Async version of clearCaches that properly awaits all disposal operations
393
406
  * Use this method when you need to ensure all resources are fully disposed
394
407
  * before continuing (e.g., during graceful shutdown)
408
+ * @returns DisposalResult with counts and any errors encountered
395
409
  */
396
- clearCachesAsync(): Promise<void>;
410
+ clearCachesAsync(): Promise<DisposalResult>;
397
411
  /**
398
412
  * Setup distributed cache invalidation system
399
413
  * Connects to Redis pub/sub for coordinating cache invalidation across instances
@@ -429,8 +443,9 @@ export declare class Container<Defs extends Record<string, unknown>, TenantMetad
429
443
  * Dispose all service instances across all tenants and clear caches
430
444
  * Useful for graceful shutdown and testing cleanup
431
445
  * Note: This also clears all caches to prevent resurrection of disposed services
446
+ * @returns DisposalResult with counts and any errors encountered during disposal
432
447
  */
433
- disposeAll(): Promise<void>;
448
+ disposeAll(): Promise<DisposalResult>;
434
449
  /**
435
450
  * Get detailed cache statistics for each service
436
451
  * Shows how many instances are cached and the cache limits
@@ -137,11 +137,18 @@ class Container {
137
137
  */
138
138
  contextProxyCache = new WeakMap();
139
139
  /**
140
- * Initializer cache: stores initialized instances per tenant
140
+ * Initializer cache: stores initialized instances per tenant with LRU eviction
141
141
  * Avoids re-running the expensive initializer function for the same tenant
142
142
  * Key is a serialized version of tenant metadata, value is the initialized instances
143
+ * Uses accessOrder to track LRU for eviction when cache exceeds maxInitializerCacheSize
143
144
  */
144
145
  initializerCache = new Map();
146
+ /**
147
+ * Tracks access order for LRU eviction of initializerCache entries
148
+ * Key is cache key, value is access timestamp (incrementing counter)
149
+ */
150
+ initializerAccessOrder = new Map();
151
+ initializerAccessCounter = 0;
145
152
  // ═══════════════════════════════════════════════════════════════════════════
146
153
  // 📊 PERFORMANCE METRICS
147
154
  // ═══════════════════════════════════════════════════════════════════════════
@@ -219,8 +226,10 @@ class Container {
219
226
  this.factories = factories;
220
227
  this.initializer = initializer;
221
228
  // Apply default options
229
+ const cacheSize = options.cacheSize ?? 100;
222
230
  this.options = {
223
- cacheSize: 100,
231
+ cacheSize,
232
+ maxInitializerCacheSize: options.maxInitializerCacheSize ?? cacheSize,
224
233
  enableMetrics: false,
225
234
  enableDiagnostics: false,
226
235
  enableDistributedInvalidation: false,
@@ -502,9 +511,32 @@ class Container {
502
511
  return `tenant:ts:${Date.now()}`;
503
512
  }
504
513
  }
514
+ /**
515
+ * Evict the least recently used entry from initializerCache if at capacity
516
+ * Called before adding a new entry when cache is at maxInitializerCacheSize
517
+ */
518
+ evictLruFromInitializerCache() {
519
+ if (this.initializerCache.size < this.options.maxInitializerCacheSize) {
520
+ return;
521
+ }
522
+ // Find the LRU entry (lowest access counter)
523
+ let lruKey = null;
524
+ let lruTime = Number.POSITIVE_INFINITY;
525
+ for (const [key, time] of this.initializerAccessOrder) {
526
+ if (time < lruTime) {
527
+ lruTime = time;
528
+ lruKey = key;
529
+ }
530
+ }
531
+ if (lruKey) {
532
+ this.initializerCache.delete(lruKey);
533
+ this.initializerAccessOrder.delete(lruKey);
534
+ }
535
+ }
505
536
  /**
506
537
  * Get or create initialized instances for a tenant with race condition protection
507
538
  * Uses both result caching and inflight promise deduplication
539
+ * Implements LRU eviction when cache exceeds maxInitializerCacheSize
508
540
  */
509
541
  async getOrCreateInstances(meta) {
510
542
  const cacheKey = this.createTenantCacheKey(meta);
@@ -512,6 +544,8 @@ class Container {
512
544
  const cachedInstances = this.initializerCache.get(cacheKey);
513
545
  if (cachedInstances) {
514
546
  this.inc(Container.METRIC.INIT_HITS);
547
+ // Update access order for LRU tracking
548
+ this.initializerAccessOrder.set(cacheKey, ++this.initializerAccessCounter);
515
549
  return cachedInstances;
516
550
  }
517
551
  // Check if initialization is already in progress for this tenant
@@ -524,8 +558,12 @@ class Container {
524
558
  this.initializerPromises.set(cacheKey, initPromise);
525
559
  try {
526
560
  const instances = await initPromise;
561
+ // Evict LRU entry if cache is at capacity
562
+ this.evictLruFromInitializerCache();
527
563
  // Cache the result for future use
528
564
  this.initializerCache.set(cacheKey, instances);
565
+ // Track access order for LRU
566
+ this.initializerAccessOrder.set(cacheKey, ++this.initializerAccessCounter);
529
567
  return instances;
530
568
  }
531
569
  finally {
@@ -860,6 +898,7 @@ class Container {
860
898
  // Clear optimization caches as well
861
899
  this.proxyCache.clear();
862
900
  this.initializerCache.clear();
901
+ this.initializerAccessOrder.clear();
863
902
  this.initializerPromises.clear();
864
903
  // Note: contextProxyCache is a WeakMap and will be garbage collected automatically
865
904
  }
@@ -867,10 +906,38 @@ class Container {
867
906
  * Async version of clearCaches that properly awaits all disposal operations
868
907
  * Use this method when you need to ensure all resources are fully disposed
869
908
  * before continuing (e.g., during graceful shutdown)
909
+ * @returns DisposalResult with counts and any errors encountered
870
910
  */
871
911
  async clearCachesAsync() {
872
- // Dispose instances before clearing to prevent memory leaks
873
- await Promise.all(Object.values(this.managers).flatMap(m => [...(m.values?.() ?? [])].map(helpers_1.safeDispose)));
912
+ const result = {
913
+ disposed: 0,
914
+ failed: 0,
915
+ succeeded: 0,
916
+ errors: [],
917
+ };
918
+ // Collect all instances to dispose
919
+ const instancesToDispose = [];
920
+ for (const manager of Object.values(this.managers)) {
921
+ if (manager.values) {
922
+ instancesToDispose.push(...manager.values());
923
+ }
924
+ }
925
+ // Dispose instances and collect errors using disposeWithResult
926
+ const disposalResults = await Promise.all(instancesToDispose.map(inst => (0, helpers_1.disposeWithResult)(inst)));
927
+ for (const disposeResult of disposalResults) {
928
+ if (disposeResult.disposed && !disposeResult.error) {
929
+ result.disposed++;
930
+ result.succeeded++;
931
+ }
932
+ else if (disposeResult.error) {
933
+ result.failed++;
934
+ result.errors.push({ error: disposeResult.error });
935
+ // Log errors when diagnostics is enabled (for backward compatibility)
936
+ if (this.options.enableDiagnostics) {
937
+ console.error('Disposal error:', disposeResult.error);
938
+ }
939
+ }
940
+ }
874
941
  // Clear all managers
875
942
  for (const manager of Object.values(this.managers)) {
876
943
  manager.clear();
@@ -878,8 +945,10 @@ class Container {
878
945
  // Clear optimization caches as well
879
946
  this.proxyCache.clear();
880
947
  this.initializerCache.clear();
948
+ this.initializerAccessOrder.clear();
881
949
  this.initializerPromises.clear();
882
950
  // Note: contextProxyCache is a WeakMap and will be garbage collected automatically
951
+ return result;
883
952
  }
884
953
  // ═══════════════════════════════════════════════════════════════════════════
885
954
  // 🌐 DISTRIBUTED CACHE INVALIDATION
@@ -1012,12 +1081,47 @@ class Container {
1012
1081
  * Dispose all service instances across all tenants and clear caches
1013
1082
  * Useful for graceful shutdown and testing cleanup
1014
1083
  * Note: This also clears all caches to prevent resurrection of disposed services
1084
+ * @returns DisposalResult with counts and any errors encountered during disposal
1015
1085
  */
1016
1086
  async disposeAll() {
1017
- // First dispose all instances
1018
- await Promise.all(Object.values(this.managers).flatMap(manager => [...(manager.values?.() ?? [])].map(helpers_1.safeDispose)));
1019
- // Then clear all caches to prevent resurrection
1020
- await this.clearCachesAsync();
1087
+ const result = {
1088
+ disposed: 0,
1089
+ failed: 0,
1090
+ succeeded: 0,
1091
+ errors: [],
1092
+ };
1093
+ // Collect all instances to dispose
1094
+ const instancesToDispose = [];
1095
+ for (const manager of Object.values(this.managers)) {
1096
+ if (manager.values) {
1097
+ instancesToDispose.push(...manager.values());
1098
+ }
1099
+ }
1100
+ // Dispose all instances and collect errors using disposeWithResult
1101
+ const disposalResults = await Promise.all(instancesToDispose.map(inst => (0, helpers_1.disposeWithResult)(inst)));
1102
+ for (const disposeResult of disposalResults) {
1103
+ if (disposeResult.disposed && !disposeResult.error) {
1104
+ result.disposed++;
1105
+ result.succeeded++;
1106
+ }
1107
+ else if (disposeResult.error) {
1108
+ result.failed++;
1109
+ result.errors.push({ error: disposeResult.error });
1110
+ // Log errors when diagnostics is enabled (for backward compatibility)
1111
+ if (this.options.enableDiagnostics) {
1112
+ console.error('Disposal error:', disposeResult.error);
1113
+ }
1114
+ }
1115
+ }
1116
+ // Clear all caches (managers are already empty after disposal iteration)
1117
+ for (const manager of Object.values(this.managers)) {
1118
+ manager.clear();
1119
+ }
1120
+ this.proxyCache.clear();
1121
+ this.initializerCache.clear();
1122
+ this.initializerAccessOrder.clear();
1123
+ this.initializerPromises.clear();
1124
+ return result;
1021
1125
  }
1022
1126
  /**
1023
1127
  * Get detailed cache statistics for each service
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,17 @@ export declare function instantiate<T, P extends readonly unknown[]>(factory: Fa
20
20
  * Supports both sync and async disposal patterns
21
21
  *
22
22
  * @param obj - Object to dispose
23
- * @returns Promise that resolves when disposal is complete
23
+ * @returns Promise that resolves when disposal is complete (for backward compatibility)
24
24
  */
25
25
  export declare function safeDispose(obj: unknown): Promise<void>;
26
+ /**
27
+ * Dispose of an object and return any error that occurred
28
+ * Unlike safeDispose, this function returns the error for aggregation
29
+ *
30
+ * @param obj - Object to dispose
31
+ * @returns Object with disposed flag and optional error
32
+ */
33
+ export declare function disposeWithResult(obj: unknown): Promise<{
34
+ disposed: boolean;
35
+ error?: Error;
36
+ }>;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isClass = void 0;
4
4
  exports.instantiate = instantiate;
5
5
  exports.safeDispose = safeDispose;
6
+ exports.disposeWithResult = disposeWithResult;
6
7
  /**
7
8
  * Fast class detection helper that avoids try/catch in hot path
8
9
  * Detects ES6 classes by checking for 'class ' prefix in function string
@@ -37,7 +38,7 @@ function instantiate(factory, params) {
37
38
  * Supports both sync and async disposal patterns
38
39
  *
39
40
  * @param obj - Object to dispose
40
- * @returns Promise that resolves when disposal is complete
41
+ * @returns Promise that resolves when disposal is complete (for backward compatibility)
41
42
  */
42
43
  async function safeDispose(obj) {
43
44
  try {
@@ -53,4 +54,28 @@ async function safeDispose(obj) {
53
54
  }
54
55
  }
55
56
  }
57
+ /**
58
+ * Dispose of an object and return any error that occurred
59
+ * Unlike safeDispose, this function returns the error for aggregation
60
+ *
61
+ * @param obj - Object to dispose
62
+ * @returns Object with disposed flag and optional error
63
+ */
64
+ async function disposeWithResult(obj) {
65
+ try {
66
+ const d = obj?.dispose;
67
+ if (typeof d === 'function') {
68
+ await d.call(obj);
69
+ return { disposed: true };
70
+ }
71
+ // No dispose method - consider it successfully disposed
72
+ return { disposed: true };
73
+ }
74
+ catch (error) {
75
+ return {
76
+ disposed: false,
77
+ error: error instanceof Error ? error : new Error(String(error)),
78
+ };
79
+ }
80
+ }
56
81
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/container/helpers.ts"],"names":[],"mappings":";;;AAoBA,kCAkBC;AASD,kCAYC;AAzDD;;;;GAIG;AACI,MAAM,OAAO,GAAG,CAAC,EAAW,EAAkC,EAAE,CACrE,OAAO,EAAE,KAAK,UAAU;IACxB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AAF1C,QAAA,OAAO,WAEmC;AAEvD;;;;;;;;GAQG;AACH,SAAgB,WAAW,CACzB,OAAsB,EACtB,MAAS;IAET,oDAAoD;IACpD,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,EAAE,CAAC;QACrB,OAAO,IAAK,OAA8B,CAAC,GAAG,MAAM,CAAC,CAAA;IACvD,CAAC;IAED,4BAA4B;IAC5B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAQ,OAA0B,CAAC,GAAG,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,uBAAuB;IACvB,MAAM,IAAI,KAAK,CACb,gEAAgE,OAAO,OAAO,EAAE,CACjF,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAAC,GAAY;IAC5C,IAAI,CAAC;QACH,MAAM,CAAC,GAAI,GAAW,EAAE,OAAO,CAAA;QAC/B,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;YAC5B,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sDAAsD;QACtD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/container/helpers.ts"],"names":[],"mappings":";;;AAoBA,kCAkBC;AASD,kCAYC;AASD,8CAiBC;AAnFD;;;;GAIG;AACI,MAAM,OAAO,GAAG,CAAC,EAAW,EAAkC,EAAE,CACrE,OAAO,EAAE,KAAK,UAAU;IACxB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AAF1C,QAAA,OAAO,WAEmC;AAEvD;;;;;;;;GAQG;AACH,SAAgB,WAAW,CACzB,OAAsB,EACtB,MAAS;IAET,oDAAoD;IACpD,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,EAAE,CAAC;QACrB,OAAO,IAAK,OAA8B,CAAC,GAAG,MAAM,CAAC,CAAA;IACvD,CAAC;IAED,4BAA4B;IAC5B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAQ,OAA0B,CAAC,GAAG,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,uBAAuB;IACvB,MAAM,IAAI,KAAK,CACb,gEAAgE,OAAO,OAAO,EAAE,CACjF,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAAC,GAAY;IAC5C,IAAI,CAAC;QACH,MAAM,CAAC,GAAI,GAAW,EAAE,OAAO,CAAA;QAC/B,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;YAC5B,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sDAAsD;QACtD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CACrC,GAAY;IAEZ,IAAI,CAAC;QACH,MAAM,CAAC,GAAI,GAAW,EAAE,OAAO,CAAA;QAC/B,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;YAC5B,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACjB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QAC3B,CAAC;QACD,wDAAwD;QACxD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACjE,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -176,6 +176,8 @@ export interface BatchInvalidationResult {
176
176
  export interface ContainerOptions {
177
177
  /** Maximum number of instances to cache per service (default: 100) */
178
178
  cacheSize?: number;
179
+ /** Maximum number of tenant initializations to cache (default: cacheSize) */
180
+ maxInitializerCacheSize?: number;
179
181
  /** Enable performance metrics collection (default: false) */
180
182
  enableMetrics?: boolean;
181
183
  /** Enable detailed error logging and diagnostics (default: false) */
@@ -185,4 +187,20 @@ export interface ContainerOptions {
185
187
  /** Distributed cache invalidator instance */
186
188
  distributedInvalidator?: DistributedCacheInvalidator;
187
189
  }
190
+ /**
191
+ * Result of a disposal operation
192
+ */
193
+ export interface DisposalResult {
194
+ /** Number of instances successfully disposed */
195
+ disposed: number;
196
+ /** Number of disposal failures */
197
+ failed: number;
198
+ /** Errors encountered during disposal */
199
+ errors: Array<{
200
+ instanceId?: string;
201
+ error: Error;
202
+ }>;
203
+ /** Total number of successful disposals */
204
+ succeeded: number;
205
+ }
188
206
  export {};
package/dist/index.d.ts CHANGED
@@ -11,16 +11,19 @@ export { Container } from './container/Container';
11
11
  export { DistributedCacheInvalidator, getDistributedCacheInvalidator, } from './container/DistributedCacheInvalidator';
12
12
  export { createServiceCache } from './container/LruCache';
13
13
  export type { BatchBootstrapOptions, BatchBootstrapResult, BatchInvalidationResult, ContainerBootstrapResult, ContainerContext, ContainerFactories, ContainerMetadata, ContainerOptions, Factory, MapInterface, PreloadStructure, } from './container/types';
14
- export type { ExpressTrpcAppConfig } from './server/bootstraps/ExpressTrpcAppConfig';
14
+ export type { AuthConfig, AuthValidationResult, ExpressTrpcAppConfig, ValidatedAuthUser, } from './server/bootstraps/ExpressTrpcAppConfig';
15
15
  export { getDefaultConfig } from './server/bootstraps/ExpressTrpcAppConfig';
16
16
  export { getExpressTrpcApp } from './server/bootstraps/getExpressTrpcApp';
17
17
  export type { PackageInfo } from './server/consts';
18
18
  export { config } from './server/consts';
19
19
  export type { LocationOutput } from './server/context/context.model';
20
20
  export { requestContext } from './server/context/request.context';
21
+ export { type ContextFactoryOptions, createContextFactory, type TrpcContext, } from './server/context/trpc.context';
21
22
  export { useCloudTaskDecryptMiddleware } from './server/middleware/cloudTaskDecrypt.middleware';
22
23
  export { handleRequest } from './server/middleware/handleRequest.middleware';
23
24
  export { getLogger } from './server/middleware/logger/logger.service';
25
+ export type { DecodedUserToken, RequestUser, TokenBasedAccess, } from './server/schemas/user.schema';
26
+ export { decodedUserTokenSchema, internalTokenSchema, requestTokenSchema, } from './server/schemas/user.schema';
24
27
  export { getSentry } from './server/sentry/getSentry';
25
28
  export { SentryService } from './server/sentry/sentry.service';
26
29
  export type { EmailAttachment, EmailTemplates, Theme, } from './server/services/email/email.model';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.zodCompat = exports.getTrpc = exports.mockedAuthenticatedTrpcRouter = exports.UrlService = exports.paginationUtility = exports.translationService = exports.tr = exports.SendgridService = exports.SecretService = exports.getGcpServiceAccountFromBase64 = exports.EmailService = exports.Layout = exports.EmailCategory = exports.Content = exports.SentryService = exports.getSentry = exports.getLogger = exports.handleRequest = exports.useCloudTaskDecryptMiddleware = exports.requestContext = exports.config = exports.getExpressTrpcApp = exports.getDefaultConfig = exports.createServiceCache = exports.getDistributedCacheInvalidator = exports.DistributedCacheInvalidator = exports.Container = exports.TRPCError = exports.RedisConnectionPool = exports.LazyRedisStore = exports.Cache = void 0;
3
+ exports.zodCompat = exports.getTrpc = exports.mockedAuthenticatedTrpcRouter = exports.UrlService = exports.paginationUtility = exports.translationService = exports.tr = exports.SendgridService = exports.SecretService = exports.getGcpServiceAccountFromBase64 = exports.EmailService = exports.Layout = exports.EmailCategory = exports.Content = exports.SentryService = exports.getSentry = exports.requestTokenSchema = exports.internalTokenSchema = exports.decodedUserTokenSchema = exports.getLogger = exports.handleRequest = exports.useCloudTaskDecryptMiddleware = exports.createContextFactory = exports.requestContext = exports.config = exports.getExpressTrpcApp = exports.getDefaultConfig = exports.createServiceCache = exports.getDistributedCacheInvalidator = exports.DistributedCacheInvalidator = exports.Container = exports.TRPCError = exports.RedisConnectionPool = exports.LazyRedisStore = exports.Cache = void 0;
4
4
  const Cache_1 = require("./Cache");
5
5
  Object.defineProperty(exports, "Cache", { enumerable: true, get: function () { return Cache_1.Cache; } });
6
6
  const LazyRedisStore_1 = require("./cache/LazyRedisStore");
@@ -28,12 +28,18 @@ var consts_1 = require("./server/consts");
28
28
  Object.defineProperty(exports, "config", { enumerable: true, get: function () { return consts_1.config; } });
29
29
  var request_context_1 = require("./server/context/request.context");
30
30
  Object.defineProperty(exports, "requestContext", { enumerable: true, get: function () { return request_context_1.requestContext; } });
31
+ var trpc_context_1 = require("./server/context/trpc.context");
32
+ Object.defineProperty(exports, "createContextFactory", { enumerable: true, get: function () { return trpc_context_1.createContextFactory; } });
31
33
  var cloudTaskDecrypt_middleware_1 = require("./server/middleware/cloudTaskDecrypt.middleware");
32
34
  Object.defineProperty(exports, "useCloudTaskDecryptMiddleware", { enumerable: true, get: function () { return cloudTaskDecrypt_middleware_1.useCloudTaskDecryptMiddleware; } });
33
35
  var handleRequest_middleware_1 = require("./server/middleware/handleRequest.middleware");
34
36
  Object.defineProperty(exports, "handleRequest", { enumerable: true, get: function () { return handleRequest_middleware_1.handleRequest; } });
35
37
  var logger_service_1 = require("./server/middleware/logger/logger.service");
36
38
  Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return logger_service_1.getLogger; } });
39
+ var user_schema_1 = require("./server/schemas/user.schema");
40
+ Object.defineProperty(exports, "decodedUserTokenSchema", { enumerable: true, get: function () { return user_schema_1.decodedUserTokenSchema; } });
41
+ Object.defineProperty(exports, "internalTokenSchema", { enumerable: true, get: function () { return user_schema_1.internalTokenSchema; } });
42
+ Object.defineProperty(exports, "requestTokenSchema", { enumerable: true, get: function () { return user_schema_1.requestTokenSchema; } });
37
43
  var getSentry_1 = require("./server/sentry/getSentry");
38
44
  Object.defineProperty(exports, "getSentry", { enumerable: true, get: function () { return getSentry_1.getSentry; } });
39
45
  var sentry_service_1 = require("./server/sentry/sentry.service");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,mCAAkD;AAIzC,sFAJA,aAAK,OAIA;AAHd,2DAAuD;AAGvC,+FAHP,+BAAc,OAGO;AAF9B,qEAAiE;AAEjC,oGAFvB,yCAAmB,OAEuB;AAInD,uCAAwC;AAA/B,mGAAA,SAAS,OAAA;AAElB,wBAAwB;AACxB,mBAAmB;AACnB,wBAAwB;AACxB,mDAAiD;AAAxC,sGAAA,SAAS,OAAA;AAClB,uFAGgD;AAF9C,0IAAA,2BAA2B,OAAA;AAC3B,6IAAA,8BAA8B,OAAA;AAEhC,iDAAyD;AAAhD,8GAAA,kBAAkB,OAAA;AAe3B,iFAA2E;AAAlE,wHAAA,gBAAgB,OAAA;AACzB,sBAAsB;AACtB,2EAAyE;AAAhE,sHAAA,iBAAiB,OAAA;AAE1B,0CAAwC;AAA/B,gGAAA,MAAM,OAAA;AAEf,oEAAiE;AAAxD,iHAAA,cAAc,OAAA;AACvB,+FAA+F;AAAtF,4IAAA,6BAA6B,OAAA;AACtC,yFAA4E;AAAnE,yHAAA,aAAa,OAAA;AACtB,4EAAqE;AAA5D,2GAAA,SAAS,OAAA;AAClB,uDAAqD;AAA5C,sGAAA,SAAS,OAAA;AAClB,iEAA8D;AAArD,+GAAA,aAAa,OAAA;AAMtB,mEAI4C;AAH1C,sGAAA,OAAO,OAAA;AACP,4GAAA,aAAa,OAAA;AACb,qGAAA,MAAM,OAAA;AAER,uEAAoE;AAA3D,6GAAA,YAAY,OAAA;AACrB,uGAAqG;AAA5F,gJAAA,8BAA8B,OAAA;AAKvC,2EAAwE;AAA/D,+GAAA,aAAa,OAAA;AAEtB,sFAAgF;AAAvE,sHAAA,eAAe,OAAA;AACxB,0FAG2D;AAFzD,yGAAA,EAAE,OAAA;AACF,yHAAA,kBAAkB,OAAA;AAEpB,gEAAqE;AAA5D,+GAAA,iBAAiB,OAAA;AAC1B,kEAA+D;AAAtD,yGAAA,UAAU,OAAA;AACnB,qDAAuE;AAA9D,0HAAA,6BAA6B,OAAA;AACtC,sCAAuC;AAA9B,+FAAA,OAAO,OAAA;AAGhB,wBAAwB;AACxB,oBAAoB;AACpB,wBAAwB;AACxB,mDAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,mCAAkD;AAIzC,sFAJA,aAAK,OAIA;AAHd,2DAAuD;AAGvC,+FAHP,+BAAc,OAGO;AAF9B,qEAAiE;AAEjC,oGAFvB,yCAAmB,OAEuB;AAInD,uCAAwC;AAA/B,mGAAA,SAAS,OAAA;AAElB,wBAAwB;AACxB,mBAAmB;AACnB,wBAAwB;AACxB,mDAAiD;AAAxC,sGAAA,SAAS,OAAA;AAClB,uFAGgD;AAF9C,0IAAA,2BAA2B,OAAA;AAC3B,6IAAA,8BAA8B,OAAA;AAEhC,iDAAyD;AAAhD,8GAAA,kBAAkB,OAAA;AAoB3B,iFAA2E;AAAlE,wHAAA,gBAAgB,OAAA;AACzB,sBAAsB;AACtB,2EAAyE;AAAhE,sHAAA,iBAAiB,OAAA;AAE1B,0CAAwC;AAA/B,gGAAA,MAAM,OAAA;AAEf,oEAAiE;AAAxD,iHAAA,cAAc,OAAA;AACvB,8DAIsC;AAFpC,oHAAA,oBAAoB,OAAA;AAGtB,+FAA+F;AAAtF,4IAAA,6BAA6B,OAAA;AACtC,yFAA4E;AAAnE,yHAAA,aAAa,OAAA;AACtB,4EAAqE;AAA5D,2GAAA,SAAS,OAAA;AAMlB,4DAIqC;AAHnC,qHAAA,sBAAsB,OAAA;AACtB,kHAAA,mBAAmB,OAAA;AACnB,iHAAA,kBAAkB,OAAA;AAEpB,uDAAqD;AAA5C,sGAAA,SAAS,OAAA;AAClB,iEAA8D;AAArD,+GAAA,aAAa,OAAA;AAMtB,mEAI4C;AAH1C,sGAAA,OAAO,OAAA;AACP,4GAAA,aAAa,OAAA;AACb,qGAAA,MAAM,OAAA;AAER,uEAAoE;AAA3D,6GAAA,YAAY,OAAA;AACrB,uGAAqG;AAA5F,gJAAA,8BAA8B,OAAA;AAKvC,2EAAwE;AAA/D,+GAAA,aAAa,OAAA;AAEtB,sFAAgF;AAAvE,sHAAA,eAAe,OAAA;AACxB,0FAG2D;AAFzD,yGAAA,EAAE,OAAA;AACF,yHAAA,kBAAkB,OAAA;AAEpB,gEAAqE;AAA5D,+GAAA,iBAAiB,OAAA;AAC1B,kEAA+D;AAAtD,yGAAA,UAAU,OAAA;AACnB,qDAAuE;AAA9D,0HAAA,6BAA6B,OAAA;AACtC,sCAAuC;AAA9B,+FAAA,OAAO,OAAA;AAGhB,wBAAwB;AACxB,oBAAoB;AACpB,wBAAwB;AACxB,mDAAgD"}
@@ -1,8 +1,75 @@
1
1
  import type { CommonLogger } from '@goatlab/js-utils';
2
2
  import type { BuiltRouter } from '@trpc/server/unstable-core-do-not-import';
3
- import type { RequestHandler, Router } from 'express';
3
+ import type { Request, RequestHandler, Router } from 'express';
4
4
  import type { SentryService } from '../sentry/sentry.service';
5
5
  import type { Environment } from '../types/Envinronment';
6
+ /**
7
+ * Validated user from Better Auth or other auth provider
8
+ */
9
+ export interface ValidatedAuthUser {
10
+ /** User's unique ID */
11
+ id: string;
12
+ /** User's email address */
13
+ email: string;
14
+ /** Whether email has been verified */
15
+ emailVerified?: boolean;
16
+ /** User's display name */
17
+ name?: string;
18
+ /** User's profile image URL */
19
+ image?: string;
20
+ /** Session ID if using session-based auth */
21
+ sessionId?: string;
22
+ /** Additional metadata */
23
+ metadata?: Record<string, unknown>;
24
+ }
25
+ /**
26
+ * Result of token validation
27
+ */
28
+ export interface AuthValidationResult {
29
+ /** Whether the token is valid */
30
+ valid: boolean;
31
+ /** Validated user info (only present if valid) */
32
+ user?: ValidatedAuthUser;
33
+ /** Error message (only present if invalid) */
34
+ error?: string;
35
+ }
36
+ /**
37
+ * Auth configuration for Better Auth integration
38
+ */
39
+ export interface AuthConfig {
40
+ /**
41
+ * Validate a token and return the authenticated user.
42
+ * This callback is called for each request with a Bearer token.
43
+ *
44
+ * @param token - The token from Authorization header (without "Bearer " prefix)
45
+ * @param req - The Express request object (for accessing headers, tenant info, etc.)
46
+ * @returns Validation result with user info or error
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * validateToken: async (token, req) => {
51
+ * const tenantId = req.headers['x-tenant-id'] as string
52
+ * const auth = await getBetterAuthForTenant(tenantId)
53
+ * const session = await auth.api.getSession({
54
+ * headers: new Headers({ authorization: `Bearer ${token}` })
55
+ * })
56
+ * if (!session?.user) {
57
+ * return { valid: false, error: 'Invalid session' }
58
+ * }
59
+ * return {
60
+ * valid: true,
61
+ * user: {
62
+ * id: session.user.id,
63
+ * email: session.user.email,
64
+ * emailVerified: session.user.emailVerified,
65
+ * name: session.user.name,
66
+ * }
67
+ * }
68
+ * }
69
+ * ```
70
+ */
71
+ validateToken?: (token: string, req: Request) => Promise<AuthValidationResult>;
72
+ }
6
73
  export interface RequiredExpressTrpcAppConfig {
7
74
  trpcRouter: BuiltRouter<any, any>;
8
75
  }
@@ -16,6 +83,7 @@ export interface OptionalExpressTrpcAppConfig {
16
83
  logger?: CommonLogger;
17
84
  expressResources?: Router[] | readonly Router[];
18
85
  customHandlers?: RequestHandler[];
86
+ auth?: AuthConfig;
19
87
  features?: {
20
88
  openApiDocs?: boolean;
21
89
  sentry?: boolean;