pipework 0.5.0 → 0.6.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 (101) hide show
  1. package/dist/config/load.d.ts +3 -0
  2. package/dist/config/load.d.ts.map +1 -1
  3. package/dist/config/load.js +1 -0
  4. package/dist/config/load.js.map +1 -1
  5. package/dist/config/namespace.d.ts +3 -0
  6. package/dist/config/namespace.d.ts.map +1 -1
  7. package/dist/config/schema.d.ts +6 -0
  8. package/dist/config/schema.d.ts.map +1 -1
  9. package/dist/config/schema.js +3 -0
  10. package/dist/config/schema.js.map +1 -1
  11. package/dist/domain/define.d.ts +1 -1
  12. package/dist/domain/define.d.ts.map +1 -1
  13. package/dist/domain/define.js +37 -6
  14. package/dist/domain/define.js.map +1 -1
  15. package/dist/domain/field.d.ts.map +1 -1
  16. package/dist/domain/field.js +1 -0
  17. package/dist/domain/field.js.map +1 -1
  18. package/dist/domain/index.d.ts +2 -1
  19. package/dist/domain/index.d.ts.map +1 -1
  20. package/dist/domain/index.js +1 -0
  21. package/dist/domain/index.js.map +1 -1
  22. package/dist/domain/project-schema.d.ts.map +1 -1
  23. package/dist/domain/project-schema.js +4 -0
  24. package/dist/domain/project-schema.js.map +1 -1
  25. package/dist/domain/traits.d.ts +9 -0
  26. package/dist/domain/traits.d.ts.map +1 -0
  27. package/dist/domain/traits.js +48 -0
  28. package/dist/domain/traits.js.map +1 -0
  29. package/dist/domain/types.d.ts +12 -1
  30. package/dist/domain/types.d.ts.map +1 -1
  31. package/dist/drizzle/index.d.ts +3 -0
  32. package/dist/drizzle/index.d.ts.map +1 -0
  33. package/dist/drizzle/index.js +3 -0
  34. package/dist/drizzle/index.js.map +1 -0
  35. package/dist/index.d.ts +2 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/migrate/generate.d.ts.map +1 -1
  39. package/dist/migrate/generate.js +8 -1
  40. package/dist/migrate/generate.js.map +1 -1
  41. package/dist/migrate/index.d.ts +2 -0
  42. package/dist/migrate/index.d.ts.map +1 -1
  43. package/dist/migrate/index.js +2 -0
  44. package/dist/migrate/index.js.map +1 -1
  45. package/dist/migrate/post-process.d.ts +9 -0
  46. package/dist/migrate/post-process.d.ts.map +1 -0
  47. package/dist/migrate/post-process.js +60 -0
  48. package/dist/migrate/post-process.js.map +1 -0
  49. package/dist/migrate/rls-generate.d.ts +3 -0
  50. package/dist/migrate/rls-generate.d.ts.map +1 -0
  51. package/dist/migrate/rls-generate.js +28 -0
  52. package/dist/migrate/rls-generate.js.map +1 -0
  53. package/dist/resource/batch.d.ts +17 -0
  54. package/dist/resource/batch.d.ts.map +1 -0
  55. package/dist/resource/batch.js +47 -0
  56. package/dist/resource/batch.js.map +1 -0
  57. package/dist/resource/builder.d.ts +11 -0
  58. package/dist/resource/builder.d.ts.map +1 -0
  59. package/dist/resource/builder.js +12 -0
  60. package/dist/resource/builder.js.map +1 -0
  61. package/dist/resource/errors.d.ts +7 -0
  62. package/dist/resource/errors.d.ts.map +1 -0
  63. package/dist/resource/errors.js +9 -0
  64. package/dist/resource/errors.js.map +1 -0
  65. package/dist/resource/index.d.ts +9 -0
  66. package/dist/resource/index.d.ts.map +1 -0
  67. package/dist/resource/index.js +6 -0
  68. package/dist/resource/index.js.map +1 -0
  69. package/dist/resource/paginate.d.ts +13 -0
  70. package/dist/resource/paginate.d.ts.map +1 -0
  71. package/dist/resource/paginate.js +29 -0
  72. package/dist/resource/paginate.js.map +1 -0
  73. package/dist/resource/register.d.ts +16 -0
  74. package/dist/resource/register.d.ts.map +1 -0
  75. package/dist/resource/register.js +181 -0
  76. package/dist/resource/register.js.map +1 -0
  77. package/dist/resource/types.d.ts +69 -0
  78. package/dist/resource/types.d.ts.map +1 -0
  79. package/dist/resource/types.js +2 -0
  80. package/dist/resource/types.js.map +1 -0
  81. package/dist/temporal/definition-queries.d.ts +14 -0
  82. package/dist/temporal/definition-queries.d.ts.map +1 -0
  83. package/dist/temporal/definition-queries.js +45 -0
  84. package/dist/temporal/definition-queries.js.map +1 -0
  85. package/dist/temporal/index.d.ts +1 -0
  86. package/dist/temporal/index.d.ts.map +1 -1
  87. package/dist/temporal/index.js +1 -0
  88. package/dist/temporal/index.js.map +1 -1
  89. package/dist/temporal/namespace.d.ts +7 -0
  90. package/dist/temporal/namespace.d.ts.map +1 -1
  91. package/dist/temporal/namespace.js +7 -0
  92. package/dist/temporal/namespace.js.map +1 -1
  93. package/dist/tenant/rls.d.ts +1 -1
  94. package/dist/tenant/rls.d.ts.map +1 -1
  95. package/dist/tenant/rls.js +4 -2
  96. package/dist/tenant/rls.js.map +1 -1
  97. package/dist/trunk.d.ts +35 -0
  98. package/dist/trunk.d.ts.map +1 -0
  99. package/dist/trunk.js +102 -0
  100. package/dist/trunk.js.map +1 -0
  101. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/resource/register.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import type { z } from 'zod/v4';
2
+ import type { PostgresJsDatabase } from 'drizzle-orm/postgres-js';
3
+ import type { AuthRequirement, PermissionMeta } from '../di/types.js';
4
+ export type ResourceId = string;
5
+ export interface PaginationConfig {
6
+ readonly defaultLimit: number;
7
+ readonly maxLimit: number;
8
+ }
9
+ export interface PaginationParams {
10
+ readonly limit: number;
11
+ readonly offset: number;
12
+ }
13
+ export interface PaginatedResponse<T = unknown> {
14
+ readonly data: T[];
15
+ readonly pagination: {
16
+ readonly limit: number;
17
+ readonly offset: number;
18
+ readonly total: number;
19
+ readonly hasMore: boolean;
20
+ };
21
+ }
22
+ export interface ResourceListOp<TAuth> {
23
+ (db: PostgresJsDatabase, auth: TAuth, tenant: string | null): Promise<unknown[]>;
24
+ }
25
+ export interface ResourceListPaginatedOp<TAuth> {
26
+ (db: PostgresJsDatabase, auth: TAuth, tenant: string | null, pagination: PaginationParams): Promise<{
27
+ data: unknown[];
28
+ total: number;
29
+ }>;
30
+ }
31
+ export interface ResourceListCursorOp<TAuth> {
32
+ (db: PostgresJsDatabase, auth: TAuth, tenant: string | null, pagination: import('./paginate.js').CursorPaginationParams): Promise<import('./paginate.js').PageResult<unknown>>;
33
+ }
34
+ export interface ResourceGetOp<TAuth> {
35
+ (db: PostgresJsDatabase, auth: TAuth, tenant: string | null, id: ResourceId): Promise<unknown | null>;
36
+ }
37
+ export interface ResourceCreateOp<TAuth> {
38
+ readonly input?: z.ZodType;
39
+ readonly handler: (db: PostgresJsDatabase, auth: TAuth, tenant: string | null, input: unknown) => Promise<unknown>;
40
+ }
41
+ export interface ResourceUpdateOp<TAuth> {
42
+ readonly input?: z.ZodType;
43
+ readonly handler: (db: PostgresJsDatabase, auth: TAuth, tenant: string | null, id: ResourceId, input: unknown) => Promise<unknown | null>;
44
+ }
45
+ export interface ResourceDeleteOp<TAuth> {
46
+ (db: PostgresJsDatabase, auth: TAuth, tenant: string | null, id: ResourceId): Promise<void>;
47
+ }
48
+ export interface ResourceOperations<TAuth> {
49
+ readonly list?: ResourceListOp<TAuth>;
50
+ readonly listPaginated?: ResourceListPaginatedOp<TAuth>;
51
+ readonly listCursor?: ResourceListCursorOp<TAuth>;
52
+ readonly get?: ResourceGetOp<TAuth>;
53
+ readonly create?: ResourceCreateOp<TAuth>;
54
+ readonly update?: ResourceUpdateOp<TAuth>;
55
+ readonly delete?: ResourceDeleteOp<TAuth>;
56
+ readonly batch?: Record<string, import('./batch.js').BatchAction<TAuth>>;
57
+ }
58
+ export interface ResourceMeta {
59
+ readonly name: string;
60
+ readonly database: string;
61
+ readonly authRequirement: AuthRequirement;
62
+ readonly permission: PermissionMeta | null;
63
+ readonly pagination: PaginationConfig | null;
64
+ }
65
+ export interface Resource<TAuth> {
66
+ readonly meta: ResourceMeta;
67
+ readonly operations: ResourceOperations<TAuth>;
68
+ }
69
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resource/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/resource/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { DB, SQL } from '../db/types.js';
2
+ import type { DomainDefinition } from '../domain/types.js';
3
+ import type { ReviseResult } from './types.js';
4
+ export interface DefinitionReviseOptions {
5
+ readonly tx: DB;
6
+ readonly definition: DomainDefinition;
7
+ readonly where: SQL;
8
+ readonly data: Record<string, unknown>;
9
+ readonly userId?: string;
10
+ }
11
+ export declare function asOf(db: DB, definition: DomainDefinition, date: Date, where?: SQL): Promise<Record<string, unknown>[]>;
12
+ export declare function allVersions(db: DB, definition: DomainDefinition, where?: SQL): Promise<Record<string, unknown>[]>;
13
+ export declare function effectiveUpdate(options: DefinitionReviseOptions): Promise<ReviseResult>;
14
+ //# sourceMappingURL=definition-queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-queries.d.ts","sourceRoot":"","sources":["../../src/temporal/definition-queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,YAAY,CAAA;AAM7D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAA;IACf,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAaD,wBAAsB,IAAI,CACxB,EAAE,EAAE,EAAE,EACN,UAAU,EAAE,gBAAgB,EAC5B,IAAI,EAAE,IAAI,EACV,KAAK,CAAC,EAAE,GAAG,GACV,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAQpC;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,EAAE,EACN,UAAU,EAAE,gBAAgB,EAC5B,KAAK,CAAC,EAAE,GAAG,GACV,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CASpC;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAY7F"}
@@ -0,0 +1,45 @@
1
+ import { atTime } from './query.js';
2
+ import { revise } from './revise.js';
3
+ import { TemporalIntegrityError } from './errors.js';
4
+ import { and } from '../db/generated/drizzle-orm/operator.js';
5
+ function requireEffectiveDated(definition, fnName) {
6
+ if (!definition.traits.includes('effectiveDated')) {
7
+ throw new TemporalIntegrityError(`temporal.${fnName}() requires an effective-dated definition.\n\n` +
8
+ ` "${definition.name}" does not have the .effectiveDated() trait.\n\n` +
9
+ ` Add .effectiveDated() to your definition:\n` +
10
+ ` pipe.define('${definition.name}', { ... }).effectiveDated()\n`);
11
+ }
12
+ }
13
+ export async function asOf(db, definition, date, where) {
14
+ requireEffectiveDated(definition, 'asOf');
15
+ const table = definition.table();
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- atTime expects column accessors typed by HasTemporalColumns
17
+ const temporal = atTime(table, date);
18
+ const condition = where !== undefined ? and(temporal, where) : temporal;
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Drizzle select chain requires concrete table generics
20
+ return await db.select().from(table).where(condition);
21
+ }
22
+ export async function allVersions(db, definition, where) {
23
+ requireEffectiveDated(definition, 'allVersions');
24
+ const table = definition.table();
25
+ if (where !== undefined) {
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Drizzle select chain requires concrete table generics
27
+ return await db.select().from(table).where(where);
28
+ }
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Drizzle select chain requires concrete table generics
30
+ return await db.select().from(table);
31
+ }
32
+ export async function effectiveUpdate(options) {
33
+ requireEffectiveDated(options.definition, 'effectiveUpdate');
34
+ const reviseOptions = {
35
+ tx: options.tx,
36
+ table: options.definition.name,
37
+ where: options.where,
38
+ data: options.data,
39
+ };
40
+ if (options.userId !== undefined) {
41
+ return revise({ ...reviseOptions, userId: options.userId });
42
+ }
43
+ return revise(reviseOptions);
44
+ }
45
+ //# sourceMappingURL=definition-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-queries.js","sourceRoot":"","sources":["../../src/temporal/definition-queries.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,yCAAyC,CAAA;AAU7D,SAAS,qBAAqB,CAAC,UAA4B,EAAE,MAAc;IACzE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,sBAAsB,CAC9B,YAAY,MAAM,gDAAgD;YAClE,MAAM,UAAU,CAAC,IAAI,kDAAkD;YACvE,+CAA+C;YAC/C,oBAAoB,UAAU,CAAC,IAAI,gCAAgC,CACpE,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,EAAM,EACN,UAA4B,EAC5B,IAAU,EACV,KAAW;IAEX,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAA;IAChC,6HAA6H;IAC7H,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAY,EAAE,IAAI,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IACvE,uHAAuH;IACvH,OAAO,MAAO,EAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAAM,EACN,UAA4B,EAC5B,KAAW;IAEX,qBAAqB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAA;IAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,uHAAuH;QACvH,OAAO,MAAO,EAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5D,CAAC;IACD,uHAAuH;IACvH,OAAO,MAAO,EAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAgC;IACpE,qBAAqB,CAAC,OAAO,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAA;IAC5D,MAAM,aAAa,GAAkB;QACnC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAA;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,aAAa,CAAC,CAAA;AAC9B,CAAC"}
@@ -4,5 +4,6 @@ export { revise } from './revise.js';
4
4
  export { close } from './close.js';
5
5
  export { getCurrent } from './get-current.js';
6
6
  export { TemporalIntegrityError } from './errors.js';
7
+ export { asOf, allVersions, effectiveUpdate, type DefinitionReviseOptions } from './definition-queries.js';
7
8
  export type { TemporalOptions, ReviseOptions, ReviseResult, GetCurrentResult } from './types.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/temporal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/temporal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAC1G,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
@@ -4,4 +4,5 @@ export { revise } from './revise.js';
4
4
  export { close } from './close.js';
5
5
  export { getCurrent } from './get-current.js';
6
6
  export { TemporalIntegrityError } from './errors.js';
7
+ export { asOf, allVersions, effectiveUpdate } from './definition-queries.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/temporal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/temporal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAgC,MAAM,yBAAyB,CAAA"}
@@ -4,6 +4,7 @@ import { close } from './close.js';
4
4
  import { getCurrent } from './get-current.js';
5
5
  import { atTime, between } from './query.js';
6
6
  import { TemporalIntegrityError } from './errors.js';
7
+ import { asOf, allVersions, effectiveUpdate } from './definition-queries.js';
7
8
  /** Temporal (bitemporal) data namespace — version history with effective date ranges. */
8
9
  export declare const temporal: {
9
10
  /** Returns the standard temporal column definitions (effectiveFrom, effectiveTo, version, createdBy) for table schemas. */
@@ -20,5 +21,11 @@ export declare const temporal: {
20
21
  between: typeof between;
21
22
  /** Thrown when a temporal operation would violate version continuity. */
22
23
  TemporalIntegrityError: typeof TemporalIntegrityError;
24
+ /** Query records effective at a specific date, using a domain definition with .effectiveDated() trait. */
25
+ asOf: typeof asOf;
26
+ /** Query all versions of temporal records (no date filter). */
27
+ allVersions: typeof allVersions;
28
+ /** Close the current version and create a new one with updated data. */
29
+ effectiveUpdate: typeof effectiveUpdate;
23
30
  };
24
31
  //# sourceMappingURL=namespace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/temporal/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEpD,yFAAyF;AACzF,eAAO,MAAM,QAAQ;IACnB,2HAA2H;;IAE3H,8FAA8F;;IAE9F,+FAA+F;;IAE/F,0FAA0F;;IAE1F,iFAAiF;;IAEjF,oEAAoE;;IAEpE,yEAAyE;;CAE1E,CAAA"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/temporal/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE5E,yFAAyF;AACzF,eAAO,MAAM,QAAQ;IACnB,2HAA2H;;IAE3H,8FAA8F;;IAE9F,+FAA+F;;IAE/F,0FAA0F;;IAE1F,iFAAiF;;IAEjF,oEAAoE;;IAEpE,yEAAyE;;IAEzE,0GAA0G;;IAE1G,+DAA+D;;IAE/D,wEAAwE;;CAEzE,CAAA"}
@@ -4,6 +4,7 @@ import { close } from './close.js';
4
4
  import { getCurrent } from './get-current.js';
5
5
  import { atTime, between } from './query.js';
6
6
  import { TemporalIntegrityError } from './errors.js';
7
+ import { asOf, allVersions, effectiveUpdate } from './definition-queries.js';
7
8
  /** Temporal (bitemporal) data namespace — version history with effective date ranges. */
8
9
  export const temporal = {
9
10
  /** Returns the standard temporal column definitions (effectiveFrom, effectiveTo, version, createdBy) for table schemas. */
@@ -20,5 +21,11 @@ export const temporal = {
20
21
  between,
21
22
  /** Thrown when a temporal operation would violate version continuity. */
22
23
  TemporalIntegrityError,
24
+ /** Query records effective at a specific date, using a domain definition with .effectiveDated() trait. */
25
+ asOf,
26
+ /** Query all versions of temporal records (no date filter). */
27
+ allVersions,
28
+ /** Close the current version and create a new one with updated data. */
29
+ effectiveUpdate,
23
30
  };
24
31
  //# sourceMappingURL=namespace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/temporal/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEpD,yFAAyF;AACzF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,2HAA2H;IAC3H,OAAO,EAAE,eAAe;IACxB,8FAA8F;IAC9F,MAAM;IACN,+FAA+F;IAC/F,KAAK;IACL,0FAA0F;IAC1F,OAAO,EAAE,UAAU;IACnB,iFAAiF;IACjF,MAAM;IACN,oEAAoE;IACpE,OAAO;IACP,yEAAyE;IACzE,sBAAsB;CACvB,CAAA"}
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/temporal/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE5E,yFAAyF;AACzF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,2HAA2H;IAC3H,OAAO,EAAE,eAAe;IACxB,8FAA8F;IAC9F,MAAM;IACN,+FAA+F;IAC/F,KAAK;IACL,0FAA0F;IAC1F,OAAO,EAAE,UAAU;IACnB,iFAAiF;IACjF,MAAM;IACN,oEAAoE;IACpE,OAAO;IACP,yEAAyE;IACzE,sBAAsB;IACtB,0GAA0G;IAC1G,IAAI;IACJ,+DAA+D;IAC/D,WAAW;IACX,wEAAwE;IACxE,eAAe;CAChB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { DB } from '../db/index.js';
2
- export declare function tenantIsolationPolicy(table: string, column?: string): string;
2
+ export declare function tenantIsolationPolicy(table: string, column?: string, sessionVar?: string): string;
3
3
  export declare function enableTenantRls(db: DB, table: string, column?: string): Promise<void>;
4
4
  export declare function verifyTenantContext(db: DB, expectedTenant: string | null): Promise<void>;
5
5
  //# sourceMappingURL=rls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rls.d.ts","sourceRoot":"","sources":["../../src/tenant/rls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAGxC,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAoB,GAAG,MAAM,CAUzF;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,EAAE,EACN,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC,CAcf"}
1
+ {"version":3,"file":"rls.d.ts","sourceRoot":"","sources":["../../src/tenant/rls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAIxC,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAoB,EAAE,UAAU,GAAE,MAA6B,GAAG,MAAM,CAYpI;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,EAAE,EACN,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC,CAcf"}
@@ -1,13 +1,15 @@
1
1
  import { sql } from '../db/sql.js';
2
2
  import { quoteIdentifier } from '../db/identifiers.js';
3
- export function tenantIsolationPolicy(table, column = 'tenant_id') {
3
+ import { validateSessionVarName } from './validate.js';
4
+ export function tenantIsolationPolicy(table, column = 'tenant_id', sessionVar = 'pipework.tenant_id') {
5
+ validateSessionVarName(sessionVar);
4
6
  const t = quoteIdentifier(table, 'table');
5
7
  const c = quoteIdentifier(column, 'column');
6
8
  const policyName = `pipework_tenant_isolation_${table.replace(/[^a-zA-Z0-9_]/g, '_')}`;
7
9
  return [
8
10
  `ALTER TABLE ${t} ENABLE ROW LEVEL SECURITY`,
9
11
  `ALTER TABLE ${t} FORCE ROW LEVEL SECURITY`,
10
- `CREATE POLICY ${quoteIdentifier(policyName, 'policy')} ON ${t} USING (${c} = current_setting('pipework.tenant_id', true))`,
12
+ `CREATE POLICY ${quoteIdentifier(policyName, 'policy')} ON ${t} USING (${c} = current_setting('${sessionVar}', true))`,
11
13
  ].join(';\n');
12
14
  }
13
15
  export async function enableTenantRls(db, table, column = 'tenant_id') {
@@ -1 +1 @@
1
- {"version":3,"file":"rls.js","sourceRoot":"","sources":["../../src/tenant/rls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,SAAiB,WAAW;IAC/E,MAAM,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACzC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC3C,MAAM,UAAU,GAAG,6BAA6B,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAA;IAEtF,OAAO;QACL,eAAe,CAAC,4BAA4B;QAC5C,eAAe,CAAC,2BAA2B;QAC3C,iBAAiB,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,iDAAiD;KAC5H,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAM,EACN,KAAa,EACb,SAAiB,WAAW;IAE5B,MAAM,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACzC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC3C,MAAM,UAAU,GAAG,eAAe,CAChC,6BAA6B,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,EACnE,QAAQ,CACT,CAAA;IAED,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC,CAAA;IACvE,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,2BAA2B,CAAC,CAAC,CAAA;IACtE,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CACtB,iBAAiB,UAAU,OAAO,CAAC,WAAW,CAAC,iDAAiD,CACjG,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAM,EACN,cAA6B;IAE7B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,iEAAiE,CAAC,CAAA;IACrG,MAAM,GAAG,GAAI,MAAyD,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,IAAI,CAAA;IAC5F,MAAM,QAAQ,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;IAExC,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,0EAA0E;YAC1E,iCAAiC,cAAc,IAAI,QAAQ,IAAI;YAC/D,iCAAiC,QAAQ,IAAI,QAAQ,MAAM;YAC3D,oEAAoE;YACpE,uEAAuE,CACxE,CAAA;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"rls.js","sourceRoot":"","sources":["../../src/tenant/rls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,SAAiB,WAAW,EAAE,aAAqB,oBAAoB;IAC1H,sBAAsB,CAAC,UAAU,CAAC,CAAA;IAElC,MAAM,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACzC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC3C,MAAM,UAAU,GAAG,6BAA6B,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAA;IAEtF,OAAO;QACL,eAAe,CAAC,4BAA4B;QAC5C,eAAe,CAAC,2BAA2B;QAC3C,iBAAiB,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,uBAAuB,UAAU,WAAW;KACvH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAM,EACN,KAAa,EACb,SAAiB,WAAW;IAE5B,MAAM,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACzC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC3C,MAAM,UAAU,GAAG,eAAe,CAChC,6BAA6B,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,EACnE,QAAQ,CACT,CAAA;IAED,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC,CAAA;IACvE,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,2BAA2B,CAAC,CAAC,CAAA;IACtE,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CACtB,iBAAiB,UAAU,OAAO,CAAC,WAAW,CAAC,iDAAiD,CACjG,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAM,EACN,cAA6B;IAE7B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,iEAAiE,CAAC,CAAA;IACrG,MAAM,GAAG,GAAI,MAAyD,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,IAAI,CAAA;IAC5F,MAAM,QAAQ,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;IAExC,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,0EAA0E;YAC1E,iCAAiC,cAAc,IAAI,QAAQ,IAAI;YAC/D,iCAAiC,QAAQ,IAAI,QAAQ,MAAM;YAC3D,oEAAoE;YACpE,uEAAuE,CACxE,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { ResolvedConfig } from './config/load.js';
2
+ import type { ResolvedDatabase } from './config/load.js';
3
+ import type { TrunkConfig } from './config/schema.js';
4
+ import type { ManagedConnection } from './db/pool.js';
5
+ export interface TrunkInstance {
6
+ readonly config: ResolvedConfig;
7
+ readonly pool: PoolState;
8
+ readonly isolation: IsolationState;
9
+ readonly connections: ConnectionTracker;
10
+ }
11
+ export interface PoolState {
12
+ getOrCreate(config: ResolvedDatabase): ManagedConnection;
13
+ get(name: string): ManagedConnection | undefined;
14
+ closeAll(): Promise<void>;
15
+ count(): number;
16
+ }
17
+ export interface IsolationState {
18
+ markBegin(): void;
19
+ markEnd(): void;
20
+ assertClean(): void;
21
+ stats(): {
22
+ active: number;
23
+ totalBegins: number;
24
+ totalEnds: number;
25
+ };
26
+ reset(): void;
27
+ }
28
+ export interface ConnectionTracker {
29
+ track(id: string, name: string, context: string): void;
30
+ release(id: string): void;
31
+ activeCount(): number;
32
+ assertNoLeaks(maxExpected: number): void;
33
+ }
34
+ export declare function createTrunk(raw: TrunkConfig): TrunkInstance;
35
+ //# sourceMappingURL=trunk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trunk.d.ts","sourceRoot":"","sources":["../src/trunk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIrD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;CACxC;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;IACxD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAA;IAChD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,KAAK,IAAI,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,IAAI,IAAI,CAAA;IACjB,OAAO,IAAI,IAAI,CAAA;IACf,WAAW,IAAI,IAAI,CAAA;IACnB,KAAK,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE,KAAK,IAAI,IAAI,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,IAAI,MAAM,CAAA;IACrB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CACzC;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,aAAa,CAO3D"}
package/dist/trunk.js ADDED
@@ -0,0 +1,102 @@
1
+ import { loadConfig as parseConfig } from './config/load.js';
2
+ import { createManagedConnection } from './db/pool.js';
3
+ import { InvariantViolation } from './invariants/assert.js';
4
+ export function createTrunk(raw) {
5
+ const config = parseConfig(raw);
6
+ const pool = createPoolState();
7
+ const isolation = createIsolationState();
8
+ const connections = createConnectionTracker();
9
+ return { config, pool, isolation, connections };
10
+ }
11
+ function createPoolState() {
12
+ const map = new Map();
13
+ return {
14
+ getOrCreate(config) {
15
+ const existing = map.get(config.name);
16
+ if (existing)
17
+ return existing;
18
+ const managed = createManagedConnection(config, () => map.delete(config.name));
19
+ map.set(config.name, managed);
20
+ return managed;
21
+ },
22
+ get(name) {
23
+ return map.get(name);
24
+ },
25
+ async closeAll() {
26
+ const closing = [...map.values()].map(c => c.close());
27
+ await Promise.all(closing);
28
+ },
29
+ count() {
30
+ return map.size;
31
+ },
32
+ };
33
+ }
34
+ function createIsolationState() {
35
+ let active = 0;
36
+ let totalBegins = 0;
37
+ let totalEnds = 0;
38
+ return {
39
+ markBegin() {
40
+ active++;
41
+ totalBegins++;
42
+ },
43
+ markEnd() {
44
+ if (active <= 0) {
45
+ throw new InvariantViolation('isolation-end-without-begin', {
46
+ activeIsolationContexts: active,
47
+ totalBegins,
48
+ totalEnds,
49
+ });
50
+ }
51
+ active--;
52
+ totalEnds++;
53
+ },
54
+ assertClean() {
55
+ if (active !== 0) {
56
+ throw new InvariantViolation('isolation-context-leak', {
57
+ activeIsolationContexts: active,
58
+ totalBegins,
59
+ totalEnds,
60
+ delta: totalBegins - totalEnds,
61
+ });
62
+ }
63
+ },
64
+ stats() {
65
+ return { active, totalBegins, totalEnds };
66
+ },
67
+ reset() {
68
+ active = 0;
69
+ totalBegins = 0;
70
+ totalEnds = 0;
71
+ },
72
+ };
73
+ }
74
+ function createConnectionTracker() {
75
+ const tracked = new Map();
76
+ return {
77
+ track(id, name, context) {
78
+ tracked.set(id, { name, createdAt: Date.now(), context });
79
+ },
80
+ release(id) {
81
+ tracked.delete(id);
82
+ },
83
+ activeCount() {
84
+ return tracked.size;
85
+ },
86
+ assertNoLeaks(maxExpected) {
87
+ if (tracked.size > maxExpected) {
88
+ throw new InvariantViolation('connection-pool-bounded', {
89
+ active: tracked.size,
90
+ maxExpected,
91
+ connections: [...tracked.entries()].map(([id, c]) => ({
92
+ id,
93
+ name: c.name,
94
+ age_ms: Date.now() - c.createdAt,
95
+ context: c.context,
96
+ })),
97
+ });
98
+ }
99
+ },
100
+ };
101
+ }
102
+ //# sourceMappingURL=trunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trunk.js","sourceRoot":"","sources":["../src/trunk.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
6
  "license": "MIT",