@ddd-ts-kit/kernel 0.7.0 → 0.8.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 (128) hide show
  1. package/README.md +42 -9
  2. package/dist/application/audit/tenant-scope-of.d.ts +4 -1
  3. package/dist/application/audit/tenant-scope-of.d.ts.map +1 -1
  4. package/dist/application/audit/tenant-scope-of.js +6 -2
  5. package/dist/application/audit/tenant-scope-of.js.map +1 -1
  6. package/dist/application/cache/tenant-cache-key.d.ts +5 -0
  7. package/dist/application/cache/tenant-cache-key.d.ts.map +1 -0
  8. package/dist/application/cache/tenant-cache-key.js +7 -0
  9. package/dist/application/cache/tenant-cache-key.js.map +1 -0
  10. package/dist/application/events/execution-context-of-event.d.ts +2 -1
  11. package/dist/application/events/execution-context-of-event.d.ts.map +1 -1
  12. package/dist/application/events/execution-context-of-event.js +3 -1
  13. package/dist/application/events/execution-context-of-event.js.map +1 -1
  14. package/dist/application/events/integration-event.d.ts +6 -0
  15. package/dist/application/events/integration-event.d.ts.map +1 -1
  16. package/dist/application/events/scoped-publisher.d.ts +4 -3
  17. package/dist/application/events/scoped-publisher.d.ts.map +1 -1
  18. package/dist/application/events/scoped-publisher.js +11 -5
  19. package/dist/application/events/scoped-publisher.js.map +1 -1
  20. package/dist/application/execution/execution-context.d.ts +7 -1
  21. package/dist/application/execution/execution-context.d.ts.map +1 -1
  22. package/dist/application/execution/execution-context.js +7 -2
  23. package/dist/application/execution/execution-context.js.map +1 -1
  24. package/dist/application/execution/log-fields-of.d.ts.map +1 -1
  25. package/dist/application/execution/log-fields-of.js +1 -0
  26. package/dist/application/execution/log-fields-of.js.map +1 -1
  27. package/dist/application/ports/tenant-directory.d.ts +8 -0
  28. package/dist/application/ports/tenant-directory.d.ts.map +1 -0
  29. package/dist/application/ports/tenant-directory.js +10 -0
  30. package/dist/application/ports/tenant-directory.js.map +1 -0
  31. package/dist/application/scheduling/execution-context-of-job.d.ts +3 -1
  32. package/dist/application/scheduling/execution-context-of-job.d.ts.map +1 -1
  33. package/dist/application/scheduling/execution-context-of-job.js +1 -1
  34. package/dist/application/scheduling/execution-context-of-job.js.map +1 -1
  35. package/dist/application/scheduling/job-execution.d.ts +2 -0
  36. package/dist/application/scheduling/job-execution.d.ts.map +1 -1
  37. package/dist/application/scheduling/job-options.d.ts +6 -0
  38. package/dist/application/scheduling/job-options.d.ts.map +1 -1
  39. package/dist/application/scheduling/job-policy.d.ts.map +1 -1
  40. package/dist/application/scheduling/job-policy.js +4 -2
  41. package/dist/application/scheduling/job-policy.js.map +1 -1
  42. package/dist/application/session/has-scope.d.ts +5 -0
  43. package/dist/application/session/has-scope.d.ts.map +1 -0
  44. package/dist/application/session/has-scope.js +5 -0
  45. package/dist/application/session/has-scope.js.map +1 -0
  46. package/dist/application/session/session-scope.d.ts +4 -0
  47. package/dist/application/session/session-scope.d.ts.map +1 -0
  48. package/dist/application/session/session-scope.js +2 -0
  49. package/dist/application/session/session-scope.js.map +1 -0
  50. package/dist/application/session/session-scopes.d.ts +11 -0
  51. package/dist/application/session/session-scopes.d.ts.map +1 -0
  52. package/dist/application/session/session-scopes.js +2 -0
  53. package/dist/application/session/session-scopes.js.map +1 -0
  54. package/dist/application/session/session.d.ts +6 -0
  55. package/dist/application/session/session.d.ts.map +1 -1
  56. package/dist/application/tenancy/across-tenants.d.ts +12 -0
  57. package/dist/application/tenancy/across-tenants.d.ts.map +1 -0
  58. package/dist/application/tenancy/across-tenants.js +47 -0
  59. package/dist/application/tenancy/across-tenants.js.map +1 -0
  60. package/dist/application/tenancy/assert-tenant-id.d.ts +3 -0
  61. package/dist/application/tenancy/assert-tenant-id.d.ts.map +1 -0
  62. package/dist/application/tenancy/assert-tenant-id.js +10 -0
  63. package/dist/application/tenancy/assert-tenant-id.js.map +1 -0
  64. package/dist/application/tenancy/elevation-options.d.ts +12 -0
  65. package/dist/application/tenancy/elevation-options.d.ts.map +1 -0
  66. package/dist/application/tenancy/elevation-options.js +2 -0
  67. package/dist/application/tenancy/elevation-options.js.map +1 -0
  68. package/dist/application/tenancy/invalid-tenant-elevation-error.d.ts +5 -0
  69. package/dist/application/tenancy/invalid-tenant-elevation-error.d.ts.map +1 -0
  70. package/dist/application/tenancy/invalid-tenant-elevation-error.js +8 -0
  71. package/dist/application/tenancy/invalid-tenant-elevation-error.js.map +1 -0
  72. package/dist/application/tenancy/invalid-tenant-id-error.d.ts +6 -0
  73. package/dist/application/tenancy/invalid-tenant-id-error.d.ts.map +1 -0
  74. package/dist/application/tenancy/invalid-tenant-id-error.js +10 -0
  75. package/dist/application/tenancy/invalid-tenant-id-error.js.map +1 -0
  76. package/dist/application/tenancy/is-tenant-id.d.ts +3 -0
  77. package/dist/application/tenancy/is-tenant-id.d.ts.map +1 -0
  78. package/dist/application/tenancy/is-tenant-id.js +12 -0
  79. package/dist/application/tenancy/is-tenant-id.js.map +1 -0
  80. package/dist/application/tenancy/is-tenant-member.d.ts +4 -0
  81. package/dist/application/tenancy/is-tenant-member.d.ts.map +1 -0
  82. package/dist/application/tenancy/is-tenant-member.js +6 -0
  83. package/dist/application/tenancy/is-tenant-member.js.map +1 -0
  84. package/dist/application/tenancy/tenant-elevation.d.ts +11 -0
  85. package/dist/application/tenancy/tenant-elevation.d.ts.map +1 -0
  86. package/dist/application/tenancy/tenant-elevation.js +2 -0
  87. package/dist/application/tenancy/tenant-elevation.js.map +1 -0
  88. package/dist/application/tenancy/tenant-key.d.ts +9 -0
  89. package/dist/application/tenancy/tenant-key.d.ts.map +1 -0
  90. package/dist/application/tenancy/tenant-key.js +11 -0
  91. package/dist/application/tenancy/tenant-key.js.map +1 -0
  92. package/dist/application/tenancy/tenant-reach-of.d.ts +9 -0
  93. package/dist/application/tenancy/tenant-reach-of.d.ts.map +1 -0
  94. package/dist/application/tenancy/tenant-reach-of.js +18 -0
  95. package/dist/application/tenancy/tenant-reach-of.js.map +1 -0
  96. package/dist/application/tenancy/tenant-reach.d.ts +12 -0
  97. package/dist/application/tenancy/tenant-reach.d.ts.map +1 -0
  98. package/dist/application/tenancy/tenant-reach.js +2 -0
  99. package/dist/application/tenancy/tenant-reach.js.map +1 -0
  100. package/dist/application/tenancy/tenants-of.d.ts +8 -0
  101. package/dist/application/tenancy/tenants-of.d.ts.map +1 -0
  102. package/dist/application/tenancy/tenants-of.js +14 -0
  103. package/dist/application/tenancy/tenants-of.js.map +1 -0
  104. package/dist/index.d.ts +22 -0
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +22 -0
  107. package/dist/index.js.map +1 -1
  108. package/dist/infrastructure/in-memory/in-memory-tenant-directory.d.ts +8 -0
  109. package/dist/infrastructure/in-memory/in-memory-tenant-directory.d.ts.map +1 -0
  110. package/dist/infrastructure/in-memory/in-memory-tenant-directory.js +12 -0
  111. package/dist/infrastructure/in-memory/in-memory-tenant-directory.js.map +1 -0
  112. package/dist/infrastructure/tenancy/tenant-isolation-policies.d.ts +13 -0
  113. package/dist/infrastructure/tenancy/tenant-isolation-policies.d.ts.map +1 -0
  114. package/dist/infrastructure/tenancy/tenant-isolation-policies.js +13 -0
  115. package/dist/infrastructure/tenancy/tenant-isolation-policies.js.map +1 -0
  116. package/dist/infrastructure/tenancy/tenant-policy-expressions.d.ts +11 -0
  117. package/dist/infrastructure/tenancy/tenant-policy-expressions.d.ts.map +1 -0
  118. package/dist/infrastructure/tenancy/tenant-policy-expressions.js +15 -0
  119. package/dist/infrastructure/tenancy/tenant-policy-expressions.js.map +1 -0
  120. package/dist/infrastructure/tenancy/tenant-setting-values.d.ts +13 -0
  121. package/dist/infrastructure/tenancy/tenant-setting-values.d.ts.map +1 -0
  122. package/dist/infrastructure/tenancy/tenant-setting-values.js +19 -0
  123. package/dist/infrastructure/tenancy/tenant-setting-values.js.map +1 -0
  124. package/dist/infrastructure/tenancy/tenant-settings.d.ts +13 -0
  125. package/dist/infrastructure/tenancy/tenant-settings.d.ts.map +1 -0
  126. package/dist/infrastructure/tenancy/tenant-settings.js +13 -0
  127. package/dist/infrastructure/tenancy/tenant-settings.js.map +1 -0
  128. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/application/session/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IACzD,kFAAkF;IAClF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;CAC7C"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/application/session/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IACzD,kFAAkF;IAClF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;CAC7C"}
@@ -0,0 +1,12 @@
1
+ import type { ElevationOptions } from './elevation-options.js';
2
+ import type { TenantElevation } from './tenant-elevation.js';
3
+ /** The action of the audit entry an elevation writes. */
4
+ export declare const TENANT_ELEVATION_ACTION = "tenancy:elevate";
5
+ /**
6
+ * Runs `work` with reads widened to the tenants of `elevation`, for platform staff. Never
7
+ * implicit: the platform calls it after the permission to elevate was decided, and the
8
+ * elevation is written to the audit trail before the work starts; a trail that fails refuses
9
+ * the elevation. Writes still name one tenant (`tenantScopeOf`).
10
+ */
11
+ export declare function acrossTenants<T>(options: ElevationOptions, elevation: TenantElevation, work: () => Promise<T>): Promise<T>;
12
+ //# sourceMappingURL=across-tenants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"across-tenants.d.ts","sourceRoot":"","sources":["../../../src/application/tenancy/across-tenants.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,yDAAyD;AACzD,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AAEzD;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAQZ"}
@@ -0,0 +1,47 @@
1
+ import { InvalidTenantElevationError } from './invalid-tenant-elevation-error.js';
2
+ import { isTenantId } from './is-tenant-id.js';
3
+ /** The action of the audit entry an elevation writes. */
4
+ export const TENANT_ELEVATION_ACTION = 'tenancy:elevate';
5
+ /**
6
+ * Runs `work` with reads widened to the tenants of `elevation`, for platform staff. Never
7
+ * implicit: the platform calls it after the permission to elevate was decided, and the
8
+ * elevation is written to the audit trail before the work starts; a trail that fails refuses
9
+ * the elevation. Writes still name one tenant (`tenantScopeOf`).
10
+ */
11
+ export async function acrossTenants(options, elevation, work) {
12
+ assertValid(elevation);
13
+ const context = options.scope.require();
14
+ await options.trail.record(elevationRecord(options, context, elevation));
15
+ return options.scope.run(Object.freeze({ ...context, elevation }), work);
16
+ }
17
+ function assertValid({ reason, tenants }) {
18
+ if (reason.trim() === '') {
19
+ throw new InvalidTenantElevationError('it names no reason');
20
+ }
21
+ if (tenants !== 'all' && tenants.length === 0) {
22
+ throw new InvalidTenantElevationError('it names no tenant');
23
+ }
24
+ if (tenants !== 'all' && !tenants.every(isTenantId)) {
25
+ throw new InvalidTenantElevationError('it names a tenant id outside the grammar of isTenantId');
26
+ }
27
+ }
28
+ function elevationRecord(options, context, elevation) {
29
+ const { tenantId, session } = context;
30
+ return {
31
+ id: options.ids.next(),
32
+ occurredAt: options.clock.now(),
33
+ category: 'authorization',
34
+ action: TENANT_ELEVATION_ACTION,
35
+ outcome: 'allowed',
36
+ reason: elevation.reason,
37
+ actor: { id: context.actor.id, type: context.actor.type },
38
+ resource: { type: 'tenants', id: elevation.tenants === 'all' ? '*' : elevation.tenants.join(',') },
39
+ correlationId: context.correlationId,
40
+ origin: context.origin,
41
+ ...(tenantId === undefined ? {} : { tenantId }),
42
+ ...(session === undefined ? {} : { sessionId: session.id }),
43
+ ...(session?.impersonatedBy === undefined ? {} : { impersonatedBy: session.impersonatedBy }),
44
+ ...(context.causationId === undefined ? {} : { causationId: context.causationId }),
45
+ };
46
+ }
47
+ //# sourceMappingURL=across-tenants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"across-tenants.js","sourceRoot":"","sources":["../../../src/application/tenancy/across-tenants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** The tenant id as it came in, refused (`InvalidTenantIdError`) when it is outside the grammar of `isTenantId`. */
2
+ export declare function assertTenantId(tenantId: string): string;
3
+ //# sourceMappingURL=assert-tenant-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-tenant-id.d.ts","sourceRoot":"","sources":["../../../src/application/tenancy/assert-tenant-id.ts"],"names":[],"mappings":"AAGA,oHAAoH;AACpH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMvD"}
@@ -0,0 +1,10 @@
1
+ import { InvalidTenantIdError } from './invalid-tenant-id-error.js';
2
+ import { isTenantId } from './is-tenant-id.js';
3
+ /** The tenant id as it came in, refused (`InvalidTenantIdError`) when it is outside the grammar of `isTenantId`. */
4
+ export function assertTenantId(tenantId) {
5
+ if (!isTenantId(tenantId)) {
6
+ throw new InvalidTenantIdError(tenantId);
7
+ }
8
+ return tenantId;
9
+ }
10
+ //# sourceMappingURL=assert-tenant-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-tenant-id.js","sourceRoot":"","sources":["../../../src/application/tenancy/assert-tenant-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,oHAAoH;AACpH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { AuditTrail } from '../ports/audit-trail.js';
2
+ import type { Clock } from '../ports/clock.js';
3
+ import type { ExecutionScope } from '../ports/execution-scope.js';
4
+ import type { IdGenerator } from '../ports/id-generator.js';
5
+ /** What `acrossTenants` needs: the scope it widens, and the trail it records the elevation in. */
6
+ export interface ElevationOptions {
7
+ readonly scope: ExecutionScope;
8
+ readonly trail: AuditTrail;
9
+ readonly clock: Clock;
10
+ readonly ids: IdGenerator;
11
+ }
12
+ //# sourceMappingURL=elevation-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elevation-options.d.ts","sourceRoot":"","sources":["../../../src/application/tenancy/elevation-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,kGAAkG;AAClG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=elevation-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elevation-options.js","sourceRoot":"","sources":["../../../src/application/tenancy/elevation-options.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ /** An elevation that names no reason or no tenant: refused before anything is recorded or run. */
2
+ export declare class InvalidTenantElevationError extends Error {
3
+ constructor(detail: string);
4
+ }
5
+ //# sourceMappingURL=invalid-tenant-elevation-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalid-tenant-elevation-error.d.ts","sourceRoot":"","sources":["../../../src/application/tenancy/invalid-tenant-elevation-error.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,YAAY,MAAM,EAAE,MAAM,EAGzB;CACF"}
@@ -0,0 +1,8 @@
1
+ /** An elevation that names no reason or no tenant: refused before anything is recorded or run. */
2
+ export class InvalidTenantElevationError extends Error {
3
+ constructor(detail) {
4
+ super(`Invalid tenant elevation: ${detail}`);
5
+ this.name = 'InvalidTenantElevationError';
6
+ }
7
+ }
8
+ //# sourceMappingURL=invalid-tenant-elevation-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalid-tenant-elevation-error.js","sourceRoot":"","sources":["../../../src/application/tenancy/invalid-tenant-elevation-error.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,YAAY,MAAc;QACxB,KAAK,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ /** A tenant id outside the grammar of `isTenantId`: refused where it comes in, never altered. */
2
+ export declare class InvalidTenantIdError extends Error {
3
+ readonly tenantId: string;
4
+ constructor(tenantId: string);
5
+ }
6
+ //# sourceMappingURL=invalid-tenant-id-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalid-tenant-id-error.d.ts","sourceRoot":"","sources":["../../../src/application/tenancy/invalid-tenant-id-error.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAArC,YAAqB,QAAQ,EAAE,MAAM,EAGpC;CACF"}
@@ -0,0 +1,10 @@
1
+ /** A tenant id outside the grammar of `isTenantId`: refused where it comes in, never altered. */
2
+ export class InvalidTenantIdError extends Error {
3
+ tenantId;
4
+ constructor(tenantId) {
5
+ super(`Invalid tenant id ${JSON.stringify(tenantId.slice(0, 80))}: only letters, digits, "_" and "-", at most 63`);
6
+ this.tenantId = tenantId;
7
+ this.name = 'InvalidTenantIdError';
8
+ }
9
+ }
10
+ //# sourceMappingURL=invalid-tenant-id-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalid-tenant-id-error.js","sourceRoot":"","sources":["../../../src/application/tenancy/invalid-tenant-id-error.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACxB,QAAQ;IAA7B,YAAqB,QAAgB;QACnC,KAAK,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iDAAiD,CAAC,CAAC;wBADhG,QAAQ;QAE3B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ /** Whether a value is a tenant id of that grammar. */
2
+ export declare function isTenantId(value: unknown): value is string;
3
+ //# sourceMappingURL=is-tenant-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-tenant-id.d.ts","sourceRoot":"","sources":["../../../src/application/tenancy/is-tenant-id.ts"],"names":[],"mappings":"AAQA,sDAAsD;AACtD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE1D"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The one grammar of a tenant id, wherever a tenant comes in: letters, digits, `_` and `-`, at
3
+ * most 63 characters (what a slug or a UUID is made of). Nothing in it can be read as a list,
4
+ * a wildcard, a key separator or a part of an SQL identifier, so no tenant id can ever widen
5
+ * what another tenant reaches.
6
+ */
7
+ const TENANT_ID = /^[A-Za-z0-9_-]{1,63}$/;
8
+ /** Whether a value is a tenant id of that grammar. */
9
+ export function isTenantId(value) {
10
+ return typeof value === 'string' && TENANT_ID.test(value);
11
+ }
12
+ //# sourceMappingURL=is-tenant-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-tenant-id.js","sourceRoot":"","sources":["../../../src/application/tenancy/is-tenant-id.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAE1C,sDAAsD;AACtD,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Actor } from '../actor/actor.js';
2
+ /** Whether the actor belongs to the tenant, as its credential says: `tenantId` or the `tenants` attribute. */
3
+ export declare function isTenantMember(actor: Actor, tenantId: string): boolean;
4
+ //# sourceMappingURL=is-tenant-member.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-tenant-member.d.ts","sourceRoot":"","sources":["../../../src/application/tenancy/is-tenant-member.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,8GAA8G;AAC9G,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtE"}
@@ -0,0 +1,6 @@
1
+ import { tenantsOf } from './tenants-of.js';
2
+ /** Whether the actor belongs to the tenant, as its credential says: `tenantId` or the `tenants` attribute. */
3
+ export function isTenantMember(actor, tenantId) {
4
+ return tenantsOf(actor).includes(tenantId);
5
+ }
6
+ //# sourceMappingURL=is-tenant-member.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-tenant-member.js","sourceRoot":"","sources":["../../../src/application/tenancy/is-tenant-member.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,8GAA8G;AAC9G,MAAM,UAAU,cAAc,CAAC,KAAY,EAAE,QAAgB;IAC3D,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Platform staff reaching tenants that are not theirs: said, never implied. Opened by
3
+ * `acrossTenants`, which records it in the audit trail before any work runs.
4
+ */
5
+ export interface TenantElevation {
6
+ /** A stable code naming why (`SUPPORT_TICKET`, `BILLING_RECONCILIATION`), never a sentence: it is audited. */
7
+ readonly reason: string;
8
+ /** The tenants the work may read: `all`, or the list. */
9
+ readonly tenants: 'all' | readonly string[];
10
+ }
11
+ //# sourceMappingURL=tenant-elevation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-elevation.d.ts","sourceRoot":"","sources":["../../../src/application/tenancy/tenant-elevation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8GAA8G;IAC9G,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,MAAM,EAAE,CAAC;CAC7C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tenant-elevation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-elevation.js","sourceRoot":"","sources":["../../../src/application/tenancy/tenant-elevation.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import type { ExecutionScope } from '../ports/execution-scope.js';
2
+ /**
3
+ * A key of a shared store (a rate limit, a lock, a counter) confined to the tenant of the work
4
+ * in progress: `tenant:<id>:<segments>`, each segment percent-encoded so that no segment holds a
5
+ * `:` (`['a:b']` and `['a', 'b']` are two keys). Two tenants never share an entry, and work that
6
+ * names no tenant is refused instead of reaching a global entry by omission.
7
+ */
8
+ export declare function tenantKey(scope: ExecutionScope, ...segments: readonly string[]): string;
9
+ //# sourceMappingURL=tenant-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-key.d.ts","sourceRoot":"","sources":["../../../src/application/tenancy/tenant-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlE;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAEvF"}
@@ -0,0 +1,11 @@
1
+ import { tenantScopeOf } from '../audit/tenant-scope-of.js';
2
+ /**
3
+ * A key of a shared store (a rate limit, a lock, a counter) confined to the tenant of the work
4
+ * in progress: `tenant:<id>:<segments>`, each segment percent-encoded so that no segment holds a
5
+ * `:` (`['a:b']` and `['a', 'b']` are two keys). Two tenants never share an entry, and work that
6
+ * names no tenant is refused instead of reaching a global entry by omission.
7
+ */
8
+ export function tenantKey(scope, ...segments) {
9
+ return ['tenant', tenantScopeOf(scope).tenantId, ...segments.map(encodeURIComponent)].join(':');
10
+ }
11
+ //# sourceMappingURL=tenant-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-key.js","sourceRoot":"","sources":["../../../src/application/tenancy/tenant-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB,EAAE,GAAG,QAA2B;IAC7E,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClG,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ExecutionScope } from '../ports/execution-scope.js';
2
+ import type { TenantReach } from './tenant-reach.js';
3
+ /**
4
+ * For an adapter scoping a read: the tenants it may see. An elevation opened by `acrossTenants`
5
+ * widens it; otherwise it is the tenant of the work, and work that names none is refused, so
6
+ * that no read runs unscoped by omission. Writes keep `tenantScopeOf`: one tenant, always.
7
+ */
8
+ export declare function tenantReachOf(scope: ExecutionScope): TenantReach;
9
+ //# sourceMappingURL=tenant-reach-of.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-reach-of.d.ts","sourceRoot":"","sources":["../../../src/application/tenancy/tenant-reach-of.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW,CAYhE"}
@@ -0,0 +1,18 @@
1
+ import { NoCurrentTenantError } from '../audit/no-current-tenant-error.js';
2
+ import { assertTenantId } from './assert-tenant-id.js';
3
+ /**
4
+ * For an adapter scoping a read: the tenants it may see. An elevation opened by `acrossTenants`
5
+ * widens it; otherwise it is the tenant of the work, and work that names none is refused, so
6
+ * that no read runs unscoped by omission. Writes keep `tenantScopeOf`: one tenant, always.
7
+ */
8
+ export function tenantReachOf(scope) {
9
+ const { tenantId, elevation } = scope.require();
10
+ if (elevation !== undefined) {
11
+ return { kind: 'elevated', tenants: elevation.tenants === 'all' ? 'all' : elevation.tenants.map(assertTenantId) };
12
+ }
13
+ if (tenantId === undefined) {
14
+ throw new NoCurrentTenantError();
15
+ }
16
+ return { kind: 'tenant', tenantId: assertTenantId(tenantId) };
17
+ }
18
+ //# sourceMappingURL=tenant-reach-of.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-reach-of.js","sourceRoot":"","sources":["../../../src/application/tenancy/tenant-reach-of.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAqB;IACjD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAEhD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;IACpH,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,oBAAoB,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChE,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * What a read may see: the one tenant of the work in progress, or, under an elevation, the
3
+ * tenants it names (`all` for every one).
4
+ */
5
+ export type TenantReach = {
6
+ readonly kind: 'tenant';
7
+ readonly tenantId: string;
8
+ } | {
9
+ readonly kind: 'elevated';
10
+ readonly tenants: 'all' | readonly string[];
11
+ };
12
+ //# sourceMappingURL=tenant-reach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-reach.d.ts","sourceRoot":"","sources":["../../../src/application/tenancy/tenant-reach.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tenant-reach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-reach.js","sourceRoot":"","sources":["../../../src/application/tenancy/tenant-reach.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { Actor } from '../actor/actor.js';
2
+ /**
3
+ * The tenants an actor belongs to: its `tenantId`, and the `tenants` attribute for an actor
4
+ * that belongs to several (a consultant of two clinics). The authenticator fills both from
5
+ * the credential; nothing else may.
6
+ */
7
+ export declare function tenantsOf(actor: Actor): readonly string[];
8
+ //# sourceMappingURL=tenants-of.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenants-of.d.ts","sourceRoot":"","sources":["../../../src/application/tenancy/tenants-of.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,MAAM,EAAE,CAKzD"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The tenants an actor belongs to: its `tenantId`, and the `tenants` attribute for an actor
3
+ * that belongs to several (a consultant of two clinics). The authenticator fills both from
4
+ * the credential; nothing else may.
5
+ */
6
+ export function tenantsOf(actor) {
7
+ const listed = actor.attributes['tenants'];
8
+ const others = isTextList(listed) ? listed : [];
9
+ return [...new Set([...(actor.tenantId === undefined ? [] : [actor.tenantId]), ...others])];
10
+ }
11
+ function isTextList(value) {
12
+ return Array.isArray(value) && value.every((item) => typeof item === 'string');
13
+ }
14
+ //# sourceMappingURL=tenants-of.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenants-of.js","sourceRoot":"","sources":["../../../src/application/tenancy/tenants-of.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,MAAM,MAAM,GAAY,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AACjF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -57,6 +57,7 @@ export * from './application/audit/tenant-scope-of.js';
57
57
  export * from './application/audit/tenant-scoped.js';
58
58
  export * from './application/audit/update-stamp.js';
59
59
  export * from './application/cache/cache-key.js';
60
+ export * from './application/cache/tenant-cache-key.js';
60
61
  export * from './application/dependency-kind.js';
61
62
  export * from './application/error-reporting/error-origin.js';
62
63
  export * from './application/error-reporting/error-report-extension-values.js';
@@ -205,6 +206,7 @@ export * from './application/ports/read-model-store.js';
205
206
  export * from './application/ports/read-model-table.js';
206
207
  export * from './application/ports/repository.js';
207
208
  export * from './application/ports/unit-of-work.js';
209
+ export * from './application/ports/tenant-directory.js';
208
210
  export * from './application/rate-limit/rate-limit-decision-of.js';
209
211
  export * from './application/rate-limit/rate-limit-decision.js';
210
212
  export * from './application/rate-limit/rate-limit.js';
@@ -239,7 +241,22 @@ export * from './application/session/session-client.js';
239
241
  export * from './application/session/session-extension-values.js';
240
242
  export * from './application/session/session-extensions.js';
241
243
  export * from './application/session/session.js';
244
+ export * from './application/session/session-scope.js';
245
+ export * from './application/session/session-scopes.js';
246
+ export * from './application/session/has-scope.js';
242
247
  export * from './application/session/system-session.js';
248
+ export * from './application/tenancy/across-tenants.js';
249
+ export * from './application/tenancy/assert-tenant-id.js';
250
+ export * from './application/tenancy/elevation-options.js';
251
+ export * from './application/tenancy/invalid-tenant-elevation-error.js';
252
+ export * from './application/tenancy/invalid-tenant-id-error.js';
253
+ export * from './application/tenancy/is-tenant-id.js';
254
+ export * from './application/tenancy/is-tenant-member.js';
255
+ export * from './application/tenancy/tenant-elevation.js';
256
+ export * from './application/tenancy/tenant-key.js';
257
+ export * from './application/tenancy/tenant-reach-of.js';
258
+ export * from './application/tenancy/tenant-reach.js';
259
+ export * from './application/tenancy/tenants-of.js';
243
260
  export * from './application/use-case.js';
244
261
  export * from './infrastructure/clock/fixed-clock.js';
245
262
  export * from './infrastructure/clock/system-clock.js';
@@ -277,6 +294,7 @@ export * from './infrastructure/in-memory/in-memory-rate-limiter.js';
277
294
  export * from './infrastructure/in-memory/in-memory-unit-of-work.js';
278
295
  export * from './infrastructure/in-memory/metric-sample.js';
279
296
  export * from './infrastructure/in-memory/unit-of-work-middleware.js';
297
+ export * from './infrastructure/in-memory/in-memory-tenant-directory.js';
280
298
  export * from './infrastructure/read-model/postgres-read-model-rebuild.js';
281
299
  export * from './infrastructure/read-model/projection-rebuild.js';
282
300
  export * from './infrastructure/read-model/sql-run.js';
@@ -285,4 +303,8 @@ export * from './infrastructure/read-model/write-if-newer.js';
285
303
  export * from './infrastructure/noop/noop-error-reporter.js';
286
304
  export * from './infrastructure/noop/noop-logger.js';
287
305
  export * from './infrastructure/noop/noop-metrics.js';
306
+ export * from './infrastructure/tenancy/tenant-settings.js';
307
+ export * from './infrastructure/tenancy/tenant-setting-values.js';
308
+ export * from './infrastructure/tenancy/tenant-isolation-policies.js';
309
+ export * from './infrastructure/tenancy/tenant-policy-expressions.js';
288
310
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qDAAqD,CAAC;AACpE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gEAAgE,CAAC;AAC/E,cAAc,0DAA0D,CAAC;AACzE,cAAc,kDAAkD,CAAC;AACjE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iDAAiD,CAAC;AAChE,cAAc,sDAAsD,CAAC;AACrE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mDAAmD,CAAC;AAClE,cAAc,wCAAwC,CAAC;AACvD,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC;AACnE,cAAc,wCAAwC,CAAC;AACvD,cAAc,oDAAoD,CAAC;AACnE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+DAA+D,CAAC;AAC9E,cAAc,yDAAyD,CAAC;AACxE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,uDAAuD,CAAC;AACtE,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,oDAAoD,CAAC;AACnE,cAAc,oDAAoD,CAAC;AACnE,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sCAAsC,CAAC;AACrD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qDAAqD,CAAC;AACpE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oDAAoD,CAAC;AACnE,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,uDAAuD,CAAC;AACtE,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wDAAwD,CAAC;AACvE,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oDAAoD,CAAC;AACnE,cAAc,iDAAiD,CAAC;AAChE,cAAc,wCAAwC,CAAC;AACvD,cAAc,mDAAmD,CAAC;AAClE,cAAc,iDAAiD,CAAC;AAChE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sDAAsD,CAAC;AACrE,cAAc,wDAAwD,CAAC;AACvE,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yDAAyD,CAAC;AACxE,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+DAA+D,CAAC;AAC9E,cAAc,iEAAiE,CAAC;AAChF,cAAc,iDAAiD,CAAC;AAChE,cAAc,mDAAmD,CAAC;AAClE,cAAc,kDAAkD,CAAC;AACjE,cAAc,uDAAuD,CAAC;AACtE,cAAc,yDAAyD,CAAC;AACxE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,0DAA0D,CAAC;AACzE,cAAc,uDAAuD,CAAC;AACtE,cAAc,gEAAgE,CAAC;AAC/E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uCAAuC,CAAC;AACtD,cAAc,0DAA0D,CAAC;AACzE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,iEAAiE,CAAC;AAChF,cAAc,wDAAwD,CAAC;AACvE,cAAc,mDAAmD,CAAC;AAClE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,+DAA+D,CAAC;AAC9E,cAAc,mDAAmD,CAAC;AAClE,cAAc,0DAA0D,CAAC;AACzE,cAAc,0DAA0D,CAAC;AACzE,cAAc,sDAAsD,CAAC;AACrE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,uDAAuD,CAAC;AACtE,cAAc,0DAA0D,CAAC;AACzE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,mDAAmD,CAAC;AAClE,cAAc,wCAAwC,CAAC;AACvD,cAAc,uDAAuD,CAAC;AACtE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mDAAmD,CAAC;AAClE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC"}
package/dist/index.js CHANGED
@@ -57,6 +57,7 @@ export * from './application/audit/tenant-scope-of.js';
57
57
  export * from './application/audit/tenant-scoped.js';
58
58
  export * from './application/audit/update-stamp.js';
59
59
  export * from './application/cache/cache-key.js';
60
+ export * from './application/cache/tenant-cache-key.js';
60
61
  export * from './application/dependency-kind.js';
61
62
  export * from './application/error-reporting/error-origin.js';
62
63
  export * from './application/error-reporting/error-report-extension-values.js';
@@ -205,6 +206,7 @@ export * from './application/ports/read-model-store.js';
205
206
  export * from './application/ports/read-model-table.js';
206
207
  export * from './application/ports/repository.js';
207
208
  export * from './application/ports/unit-of-work.js';
209
+ export * from './application/ports/tenant-directory.js';
208
210
  export * from './application/rate-limit/rate-limit-decision-of.js';
209
211
  export * from './application/rate-limit/rate-limit-decision.js';
210
212
  export * from './application/rate-limit/rate-limit.js';
@@ -239,7 +241,22 @@ export * from './application/session/session-client.js';
239
241
  export * from './application/session/session-extension-values.js';
240
242
  export * from './application/session/session-extensions.js';
241
243
  export * from './application/session/session.js';
244
+ export * from './application/session/session-scope.js';
245
+ export * from './application/session/session-scopes.js';
246
+ export * from './application/session/has-scope.js';
242
247
  export * from './application/session/system-session.js';
248
+ export * from './application/tenancy/across-tenants.js';
249
+ export * from './application/tenancy/assert-tenant-id.js';
250
+ export * from './application/tenancy/elevation-options.js';
251
+ export * from './application/tenancy/invalid-tenant-elevation-error.js';
252
+ export * from './application/tenancy/invalid-tenant-id-error.js';
253
+ export * from './application/tenancy/is-tenant-id.js';
254
+ export * from './application/tenancy/is-tenant-member.js';
255
+ export * from './application/tenancy/tenant-elevation.js';
256
+ export * from './application/tenancy/tenant-key.js';
257
+ export * from './application/tenancy/tenant-reach-of.js';
258
+ export * from './application/tenancy/tenant-reach.js';
259
+ export * from './application/tenancy/tenants-of.js';
243
260
  export * from './application/use-case.js';
244
261
  export * from './infrastructure/clock/fixed-clock.js';
245
262
  export * from './infrastructure/clock/system-clock.js';
@@ -277,6 +294,7 @@ export * from './infrastructure/in-memory/in-memory-rate-limiter.js';
277
294
  export * from './infrastructure/in-memory/in-memory-unit-of-work.js';
278
295
  export * from './infrastructure/in-memory/metric-sample.js';
279
296
  export * from './infrastructure/in-memory/unit-of-work-middleware.js';
297
+ export * from './infrastructure/in-memory/in-memory-tenant-directory.js';
280
298
  export * from './infrastructure/read-model/postgres-read-model-rebuild.js';
281
299
  export * from './infrastructure/read-model/projection-rebuild.js';
282
300
  export * from './infrastructure/read-model/sql-run.js';
@@ -285,4 +303,8 @@ export * from './infrastructure/read-model/write-if-newer.js';
285
303
  export * from './infrastructure/noop/noop-error-reporter.js';
286
304
  export * from './infrastructure/noop/noop-logger.js';
287
305
  export * from './infrastructure/noop/noop-metrics.js';
306
+ export * from './infrastructure/tenancy/tenant-settings.js';
307
+ export * from './infrastructure/tenancy/tenant-setting-values.js';
308
+ export * from './infrastructure/tenancy/tenant-isolation-policies.js';
309
+ export * from './infrastructure/tenancy/tenant-policy-expressions.js';
288
310
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qDAAqD,CAAC;AACpE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gEAAgE,CAAC;AAC/E,cAAc,0DAA0D,CAAC;AACzE,cAAc,kDAAkD,CAAC;AACjE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iDAAiD,CAAC;AAChE,cAAc,sDAAsD,CAAC;AACrE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mDAAmD,CAAC;AAClE,cAAc,wCAAwC,CAAC;AACvD,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC;AACnE,cAAc,wCAAwC,CAAC;AACvD,cAAc,oDAAoD,CAAC;AACnE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+DAA+D,CAAC;AAC9E,cAAc,yDAAyD,CAAC;AACxE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,uDAAuD,CAAC;AACtE,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,oDAAoD,CAAC;AACnE,cAAc,oDAAoD,CAAC;AACnE,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sCAAsC,CAAC;AACrD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qDAAqD,CAAC;AACpE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oDAAoD,CAAC;AACnE,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,uDAAuD,CAAC;AACtE,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wDAAwD,CAAC;AACvE,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oDAAoD,CAAC;AACnE,cAAc,iDAAiD,CAAC;AAChE,cAAc,wCAAwC,CAAC;AACvD,cAAc,mDAAmD,CAAC;AAClE,cAAc,iDAAiD,CAAC;AAChE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sDAAsD,CAAC;AACrE,cAAc,wDAAwD,CAAC;AACvE,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yDAAyD,CAAC;AACxE,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+DAA+D,CAAC;AAC9E,cAAc,iEAAiE,CAAC;AAChF,cAAc,iDAAiD,CAAC;AAChE,cAAc,mDAAmD,CAAC;AAClE,cAAc,kDAAkD,CAAC;AACjE,cAAc,uDAAuD,CAAC;AACtE,cAAc,yDAAyD,CAAC;AACxE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,0DAA0D,CAAC;AACzE,cAAc,uDAAuD,CAAC;AACtE,cAAc,gEAAgE,CAAC;AAC/E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uCAAuC,CAAC;AACtD,cAAc,0DAA0D,CAAC;AACzE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,iEAAiE,CAAC;AAChF,cAAc,wDAAwD,CAAC;AACvE,cAAc,mDAAmD,CAAC;AAClE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,+DAA+D,CAAC;AAC9E,cAAc,mDAAmD,CAAC;AAClE,cAAc,0DAA0D,CAAC;AACzE,cAAc,0DAA0D,CAAC;AACzE,cAAc,sDAAsD,CAAC;AACrE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,uDAAuD,CAAC;AACtE,cAAc,0DAA0D,CAAC;AACzE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,mDAAmD,CAAC;AAClE,cAAc,wCAAwC,CAAC;AACvD,cAAc,uDAAuD,CAAC;AACtE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mDAAmD,CAAC;AAClE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { TenantDirectory } from '../../application/ports/tenant-directory.js';
2
+ /** The tenants it was given, for tests and for a project whose tenants are configuration; an id outside the grammar is refused. */
3
+ export declare class InMemoryTenantDirectory implements TenantDirectory {
4
+ private readonly ids;
5
+ constructor(ids: readonly string[]);
6
+ tenants(): Promise<readonly string[]>;
7
+ }
8
+ //# sourceMappingURL=in-memory-tenant-directory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-tenant-directory.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/in-memory/in-memory-tenant-directory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAGnF,mIAAmI;AACnI,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IAExC,YAAY,GAAG,EAAE,SAAS,MAAM,EAAE,EAEjC;IAED,OAAO,IAAI,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAEpC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { assertTenantId } from '../../application/tenancy/assert-tenant-id.js';
2
+ /** The tenants it was given, for tests and for a project whose tenants are configuration; an id outside the grammar is refused. */
3
+ export class InMemoryTenantDirectory {
4
+ ids;
5
+ constructor(ids) {
6
+ this.ids = ids.map(assertTenantId);
7
+ }
8
+ tenants() {
9
+ return Promise.resolve([...this.ids]);
10
+ }
11
+ }
12
+ //# sourceMappingURL=in-memory-tenant-directory.js.map