@beignet/core 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/README.md +202 -8
- package/dist/application/index.d.ts +93 -9
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +11 -11
- package/dist/application/index.js.map +1 -1
- package/dist/client/client.d.ts +73 -12
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +37 -12
- package/dist/client/client.js.map +1 -1
- package/dist/client/index.d.ts +12 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +6 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/types.d.ts +69 -8
- package/dist/client/types.d.ts.map +1 -1
- package/dist/config/index.d.ts +84 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +36 -0
- package/dist/config/index.js.map +1 -1
- package/dist/contracts/contract-builder.d.ts +49 -22
- package/dist/contracts/contract-builder.d.ts.map +1 -1
- package/dist/contracts/contract-builder.js +48 -21
- package/dist/contracts/contract-builder.js.map +1 -1
- package/dist/contracts/contract-group.d.ts +35 -19
- package/dist/contracts/contract-group.d.ts.map +1 -1
- package/dist/contracts/contract-group.js +35 -19
- package/dist/contracts/contract-group.js.map +1 -1
- package/dist/contracts/contract-like.d.ts +4 -4
- package/dist/contracts/contract-like.d.ts.map +1 -1
- package/dist/contracts/contract-like.js +2 -1
- package/dist/contracts/contract-like.js.map +1 -1
- package/dist/contracts/index.d.ts +28 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +12 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/openapi-meta.d.ts +8 -8
- package/dist/contracts/openapi-meta.d.ts.map +1 -1
- package/dist/contracts/path-template.d.ts +27 -0
- package/dist/contracts/path-template.d.ts.map +1 -1
- package/dist/contracts/path-template.js +6 -0
- package/dist/contracts/path-template.js.map +1 -1
- package/dist/contracts/types.d.ts +104 -10
- package/dist/contracts/types.d.ts.map +1 -1
- package/dist/contracts/types.js +15 -0
- package/dist/contracts/types.js.map +1 -1
- package/dist/contracts/utils.d.ts +6 -0
- package/dist/contracts/utils.d.ts.map +1 -1
- package/dist/contracts/utils.js +6 -0
- package/dist/contracts/utils.js.map +1 -1
- package/dist/domain/entity.d.ts +22 -11
- package/dist/domain/entity.d.ts.map +1 -1
- package/dist/domain/entity.js +5 -1
- package/dist/domain/entity.js.map +1 -1
- package/dist/domain/events.d.ts +5 -2
- package/dist/domain/events.d.ts.map +1 -1
- package/dist/domain/events.js +4 -1
- package/dist/domain/events.js.map +1 -1
- package/dist/domain/value-object.d.ts +19 -9
- package/dist/domain/value-object.d.ts.map +1 -1
- package/dist/domain/value-object.js +5 -1
- package/dist/domain/value-object.js.map +1 -1
- package/dist/errors/catalog.d.ts +40 -16
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/catalog.js +18 -7
- package/dist/errors/catalog.js.map +1 -1
- package/dist/errors/response.d.ts +16 -4
- package/dist/errors/response.d.ts.map +1 -1
- package/dist/errors/response.js +3 -3
- package/dist/errors/response.js.map +1 -1
- package/dist/errors/validation.d.ts +10 -1
- package/dist/errors/validation.d.ts.map +1 -1
- package/dist/errors/validation.js +3 -0
- package/dist/errors/validation.js.map +1 -1
- package/dist/events/index.d.ts +133 -0
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +30 -0
- package/dist/events/index.js.map +1 -1
- package/dist/idempotency/index.d.ts +355 -0
- package/dist/idempotency/index.d.ts.map +1 -0
- package/dist/idempotency/index.js +360 -0
- package/dist/idempotency/index.js.map +1 -0
- package/dist/jobs/index.d.ts +248 -4
- package/dist/jobs/index.d.ts.map +1 -1
- package/dist/jobs/index.js +183 -1
- package/dist/jobs/index.js.map +1 -1
- package/dist/mail/index.d.ts +149 -0
- package/dist/mail/index.d.ts.map +1 -1
- package/dist/mail/index.js +30 -0
- package/dist/mail/index.js.map +1 -1
- package/dist/notifications/index.d.ts +369 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.js +310 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/openapi/index.d.ts +132 -16
- package/dist/openapi/index.d.ts.map +1 -1
- package/dist/openapi/index.js +1 -1
- package/dist/openapi/index.js.map +1 -1
- package/dist/outbox/index.d.ts +474 -0
- package/dist/outbox/index.d.ts.map +1 -0
- package/dist/outbox/index.js +538 -0
- package/dist/outbox/index.js.map +1 -0
- package/dist/pagination/index.d.ts +166 -0
- package/dist/pagination/index.d.ts.map +1 -0
- package/dist/pagination/index.js +96 -0
- package/dist/pagination/index.js.map +1 -0
- package/dist/ports/audit.d.ts +271 -0
- package/dist/ports/audit.d.ts.map +1 -1
- package/dist/ports/audit.js +128 -0
- package/dist/ports/audit.js.map +1 -1
- package/dist/ports/auth.d.ts +70 -0
- package/dist/ports/auth.d.ts.map +1 -1
- package/dist/ports/auth.js +30 -0
- package/dist/ports/auth.js.map +1 -1
- package/dist/ports/cache.d.ts +41 -0
- package/dist/ports/cache.d.ts.map +1 -1
- package/dist/ports/cache.js +10 -0
- package/dist/ports/cache.js.map +1 -1
- package/dist/ports/clock.d.ts +38 -0
- package/dist/ports/clock.d.ts.map +1 -1
- package/dist/ports/clock.js +20 -0
- package/dist/ports/clock.js.map +1 -1
- package/dist/ports/id-generator.d.ts +37 -0
- package/dist/ports/id-generator.d.ts.map +1 -1
- package/dist/ports/id-generator.js +22 -0
- package/dist/ports/id-generator.js.map +1 -1
- package/dist/ports/index.d.ts +83 -0
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js +41 -5
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/logger.d.ts +56 -0
- package/dist/ports/logger.d.ts.map +1 -1
- package/dist/ports/logger.js +17 -0
- package/dist/ports/logger.js.map +1 -1
- package/dist/ports/policy.d.ts +132 -0
- package/dist/ports/policy.d.ts.map +1 -1
- package/dist/ports/policy.js +45 -0
- package/dist/ports/policy.js.map +1 -1
- package/dist/ports/rate-limit.d.ts +25 -0
- package/dist/ports/rate-limit.d.ts.map +1 -1
- package/dist/ports/rate-limit.js +10 -0
- package/dist/ports/rate-limit.js.map +1 -1
- package/dist/ports/redaction.d.ts +101 -0
- package/dist/ports/redaction.d.ts.map +1 -1
- package/dist/ports/redaction.js +59 -0
- package/dist/ports/redaction.js.map +1 -1
- package/dist/ports/storage.d.ts +100 -0
- package/dist/ports/storage.d.ts.map +1 -1
- package/dist/ports/storage.js +10 -0
- package/dist/ports/storage.js.map +1 -1
- package/dist/ports/testing.d.ts +47 -0
- package/dist/ports/testing.d.ts.map +1 -1
- package/dist/ports/testing.js +23 -0
- package/dist/ports/testing.js.map +1 -1
- package/dist/ports/unit-of-work.d.ts +60 -3
- package/dist/ports/unit-of-work.d.ts.map +1 -1
- package/dist/ports/unit-of-work.js +11 -2
- package/dist/ports/unit-of-work.js.map +1 -1
- package/dist/providers/instrumentation.d.ts +205 -1
- package/dist/providers/instrumentation.d.ts.map +1 -1
- package/dist/providers/instrumentation.js +14 -0
- package/dist/providers/instrumentation.js.map +1 -1
- package/dist/providers/provider.d.ts +14 -1
- package/dist/providers/provider.d.ts.map +1 -1
- package/dist/providers/provider.js.map +1 -1
- package/dist/schedules/index.d.ts +246 -0
- package/dist/schedules/index.d.ts.map +1 -1
- package/dist/schedules/index.js +27 -0
- package/dist/schedules/index.js.map +1 -1
- package/dist/server/health.d.ts +14 -5
- package/dist/server/health.d.ts.map +1 -1
- package/dist/server/health.js +5 -2
- package/dist/server/health.js.map +1 -1
- package/dist/server/hooks/auth.d.ts +68 -26
- package/dist/server/hooks/auth.d.ts.map +1 -1
- package/dist/server/hooks/auth.js +44 -55
- package/dist/server/hooks/auth.js.map +1 -1
- package/dist/server/hooks/cors.d.ts +27 -0
- package/dist/server/hooks/cors.d.ts.map +1 -1
- package/dist/server/hooks/cors.js +12 -0
- package/dist/server/hooks/cors.js.map +1 -1
- package/dist/server/hooks/errors.d.ts +15 -6
- package/dist/server/hooks/errors.d.ts.map +1 -1
- package/dist/server/hooks/errors.js.map +1 -1
- package/dist/server/hooks/index.d.ts +4 -1
- package/dist/server/hooks/index.d.ts.map +1 -1
- package/dist/server/hooks/index.js +3 -0
- package/dist/server/hooks/index.js.map +1 -1
- package/dist/server/hooks/logging.d.ts +36 -0
- package/dist/server/hooks/logging.d.ts.map +1 -1
- package/dist/server/hooks/logging.js +6 -0
- package/dist/server/hooks/logging.js.map +1 -1
- package/dist/server/hooks/rate-limit.d.ts +33 -0
- package/dist/server/hooks/rate-limit.d.ts.map +1 -1
- package/dist/server/hooks/rate-limit.js +11 -0
- package/dist/server/hooks/rate-limit.js.map +1 -1
- package/dist/server/http.d.ts +222 -0
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +20 -1
- package/dist/server/http.js.map +1 -1
- package/dist/server/index.d.ts +19 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +7 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/openapi.d.ts +5 -3
- package/dist/server/openapi.d.ts.map +1 -1
- package/dist/server/openapi.js +4 -2
- package/dist/server/openapi.js.map +1 -1
- package/dist/server/providers/loadProviderConfig.d.ts +9 -0
- package/dist/server/providers/loadProviderConfig.d.ts.map +1 -1
- package/dist/server/providers/loadProviderConfig.js +9 -0
- package/dist/server/providers/loadProviderConfig.js.map +1 -1
- package/dist/server/server.d.ts +159 -19
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +72 -31
- package/dist/server/server.js.map +1 -1
- package/dist/testing/index.d.ts +171 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +127 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/uploads/client.d.ts +278 -0
- package/dist/uploads/client.d.ts.map +1 -0
- package/dist/uploads/client.js +428 -0
- package/dist/uploads/client.js.map +1 -0
- package/dist/uploads/index.d.ts +361 -0
- package/dist/uploads/index.d.ts.map +1 -0
- package/dist/uploads/index.js +543 -0
- package/dist/uploads/index.js.map +1 -0
- package/package.json +31 -2
- package/src/application/index.ts +85 -22
- package/src/client/client.ts +73 -12
- package/src/client/index.ts +12 -0
- package/src/client/types.ts +70 -9
- package/src/config/index.ts +86 -0
- package/src/contracts/contract-builder.ts +49 -22
- package/src/contracts/contract-group.ts +35 -19
- package/src/contracts/contract-like.ts +4 -4
- package/src/contracts/index.ts +28 -1
- package/src/contracts/openapi-meta.ts +8 -8
- package/src/contracts/path-template.ts +27 -0
- package/src/contracts/types.ts +111 -10
- package/src/contracts/utils.ts +6 -0
- package/src/domain/entity.ts +22 -11
- package/src/domain/events.ts +5 -2
- package/src/domain/value-object.ts +19 -9
- package/src/errors/catalog.ts +40 -16
- package/src/errors/response.ts +16 -4
- package/src/errors/validation.ts +10 -1
- package/src/events/index.ts +134 -0
- package/src/idempotency/index.ts +767 -0
- package/src/jobs/index.ts +437 -5
- package/src/mail/index.ts +149 -0
- package/src/notifications/index.ts +771 -0
- package/src/openapi/index.ts +133 -16
- package/src/outbox/index.ts +1104 -0
- package/src/pagination/index.ts +278 -0
- package/src/ports/audit.ts +271 -0
- package/src/ports/auth.ts +70 -0
- package/src/ports/cache.ts +41 -0
- package/src/ports/clock.ts +38 -0
- package/src/ports/id-generator.ts +37 -0
- package/src/ports/index.ts +106 -11
- package/src/ports/logger.ts +56 -0
- package/src/ports/policy.ts +133 -0
- package/src/ports/rate-limit.ts +25 -0
- package/src/ports/redaction.ts +101 -0
- package/src/ports/storage.ts +100 -0
- package/src/ports/testing.ts +47 -0
- package/src/ports/unit-of-work.ts +60 -3
- package/src/providers/instrumentation.ts +211 -1
- package/src/providers/provider.ts +14 -1
- package/src/schedules/index.ts +247 -0
- package/src/server/health.ts +14 -5
- package/src/server/hooks/auth.ts +105 -120
- package/src/server/hooks/cors.ts +27 -0
- package/src/server/hooks/errors.ts +15 -6
- package/src/server/hooks/index.ts +4 -5
- package/src/server/hooks/logging.ts +36 -0
- package/src/server/hooks/rate-limit.ts +33 -0
- package/src/server/http.ts +249 -1
- package/src/server/index.ts +19 -1
- package/src/server/openapi.ts +5 -3
- package/src/server/providers/loadProviderConfig.ts +9 -0
- package/src/server/server.ts +296 -30
- package/src/testing/index.ts +348 -0
- package/src/uploads/client.ts +861 -0
- package/src/uploads/index.ts +1067 -0
package/dist/ports/testing.js
CHANGED
|
@@ -30,6 +30,15 @@ export function createRecordingEventBus() {
|
|
|
30
30
|
};
|
|
31
31
|
return { bus, events };
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a policy tester from the same options used by `createGate(...)`.
|
|
35
|
+
*
|
|
36
|
+
* Use this for table-driven authorization tests that document who can perform
|
|
37
|
+
* each ability against which subject.
|
|
38
|
+
*
|
|
39
|
+
* @param options - Policy definitions and optional denial mapper.
|
|
40
|
+
* @returns A policy tester with a gate plus matrix helpers.
|
|
41
|
+
*/
|
|
33
42
|
export function createPolicyTester(options) {
|
|
34
43
|
const gate = createGate(options);
|
|
35
44
|
return {
|
|
@@ -38,6 +47,13 @@ export function createPolicyTester(options) {
|
|
|
38
47
|
assertMatrix: (cases) => assertPolicyMatrix(gate, cases),
|
|
39
48
|
};
|
|
40
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Evaluate a table of policy cases without throwing.
|
|
52
|
+
*
|
|
53
|
+
* @param gate - Gate under test.
|
|
54
|
+
* @param cases - Matrix cases to evaluate.
|
|
55
|
+
* @returns Structured result for each case.
|
|
56
|
+
*/
|
|
41
57
|
export async function evaluatePolicyMatrix(gate, cases) {
|
|
42
58
|
const results = [];
|
|
43
59
|
for (const matrixCase of cases) {
|
|
@@ -54,6 +70,13 @@ export async function evaluatePolicyMatrix(gate, cases) {
|
|
|
54
70
|
}
|
|
55
71
|
return results;
|
|
56
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Assert that all policy matrix cases pass.
|
|
75
|
+
*
|
|
76
|
+
* @param gate - Gate under test.
|
|
77
|
+
* @param cases - Matrix cases to evaluate.
|
|
78
|
+
* @throws Combined error listing every failed case.
|
|
79
|
+
*/
|
|
57
80
|
export async function assertPolicyMatrix(gate, cases) {
|
|
58
81
|
const results = await evaluatePolicyMatrix(gate, cases);
|
|
59
82
|
const failures = results.filter((result) => !result.passed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/ports/testing.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,UAAU,GAOX,MAAM,UAAU,CAAC;AAUlB;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,uBAAuB;IAIrC,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,MAAM,GAAG,GAAiB;QACxB,OAAO,CAAC,KAAK,EAAE,OAAO;YACpB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,SAAS;YACP,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;IAEF,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/ports/testing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { DomainEventDef, EventBusPort, InferEventPayload } from "./events";
|
|
2
2
|
type MaybePromise<T> = T | Promise<T>;
|
|
3
|
+
/**
|
|
4
|
+
* Work function executed inside a Unit of Work.
|
|
5
|
+
*
|
|
6
|
+
* `tx` contains transaction-scoped app ports, usually repositories plus
|
|
7
|
+
* side-effect recorders such as `events`, `jobs`, or `audit`.
|
|
8
|
+
*/
|
|
3
9
|
export type UnitOfWorkCallback<TxPorts, Result> = (tx: TxPorts) => MaybePromise<Result>;
|
|
4
10
|
/**
|
|
5
11
|
* A transaction boundary for application workflows.
|
|
@@ -9,8 +15,16 @@ export type UnitOfWorkCallback<TxPorts, Result> = (tx: TxPorts) => MaybePromise<
|
|
|
9
15
|
* `createNoopUnitOfWork`.
|
|
10
16
|
*/
|
|
11
17
|
export interface UnitOfWorkPort<TxPorts> {
|
|
18
|
+
/**
|
|
19
|
+
* Run application work with transaction-scoped ports.
|
|
20
|
+
*
|
|
21
|
+
* Durable implementations should commit only if this callback resolves.
|
|
22
|
+
*/
|
|
12
23
|
transaction<Result>(work: UnitOfWorkCallback<TxPorts, Result>): Promise<Result>;
|
|
13
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Hooks for `createNoopUnitOfWork(...)`.
|
|
27
|
+
*/
|
|
14
28
|
export interface NoopUnitOfWorkOptions<TxPorts> {
|
|
15
29
|
/**
|
|
16
30
|
* Runs after the callback completes successfully.
|
|
@@ -26,17 +40,51 @@ export interface NoopUnitOfWorkOptions<TxPorts> {
|
|
|
26
40
|
*/
|
|
27
41
|
afterRollback?: (error: unknown, tx: TxPorts) => MaybePromise<void>;
|
|
28
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Domain event captured by a buffered event recorder.
|
|
45
|
+
*/
|
|
29
46
|
export interface RecordedDomainEvent {
|
|
47
|
+
/**
|
|
48
|
+
* Event definition used to validate the payload before publishing.
|
|
49
|
+
*/
|
|
30
50
|
event: DomainEventDef;
|
|
51
|
+
/**
|
|
52
|
+
* Stable event name.
|
|
53
|
+
*/
|
|
31
54
|
eventName: string;
|
|
55
|
+
/**
|
|
56
|
+
* Unparsed payload recorded during the transaction.
|
|
57
|
+
*/
|
|
32
58
|
payload: unknown;
|
|
33
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Transaction-scoped port used to record domain events.
|
|
62
|
+
*
|
|
63
|
+
* Use cases record events here during the Unit of Work. The adapter decides
|
|
64
|
+
* whether to publish after commit, enqueue through an outbox, or buffer for a
|
|
65
|
+
* test assertion.
|
|
66
|
+
*/
|
|
34
67
|
export interface DomainEventRecorderPort {
|
|
35
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Record a domain event payload.
|
|
70
|
+
*/
|
|
71
|
+
record<E extends DomainEventDef>(event: E, payload: InferEventPayload<E>): Promise<void> | void;
|
|
36
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* In-memory event recorder that can be inspected, cleared, or flushed.
|
|
75
|
+
*/
|
|
37
76
|
export interface BufferedDomainEventRecorder extends DomainEventRecorderPort {
|
|
77
|
+
/**
|
|
78
|
+
* Return recorded events without clearing them.
|
|
79
|
+
*/
|
|
38
80
|
entries(): readonly RecordedDomainEvent[];
|
|
81
|
+
/**
|
|
82
|
+
* Remove all recorded events.
|
|
83
|
+
*/
|
|
39
84
|
clear(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Validate and publish all recorded events to an event bus in FIFO order.
|
|
87
|
+
*/
|
|
40
88
|
flush(eventBus: EventBusPort): Promise<void>;
|
|
41
89
|
}
|
|
42
90
|
/**
|
|
@@ -45,11 +93,20 @@ export interface BufferedDomainEventRecorder extends DomainEventRecorderPort {
|
|
|
45
93
|
*
|
|
46
94
|
* This helper does not create database transactions. It gives applications the
|
|
47
95
|
* same UOW shape everywhere and runs commit/rollback hooks around the callback.
|
|
96
|
+
*
|
|
97
|
+
* @param txPortsOrFactory - Transaction-scoped ports or a factory that creates
|
|
98
|
+
* them per transaction call.
|
|
99
|
+
* @param options - Optional commit and rollback hooks.
|
|
100
|
+
* @returns A Unit of Work port with no durable transaction semantics.
|
|
48
101
|
*/
|
|
49
102
|
export declare function createNoopUnitOfWork<TxPorts>(txPortsOrFactory: TxPorts | (() => TxPorts), options?: NoopUnitOfWorkOptions<TxPorts>): UnitOfWorkPort<TxPorts>;
|
|
50
103
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
104
|
+
* Create a recorder that buffers domain events until the caller flushes them.
|
|
105
|
+
*
|
|
106
|
+
* Unit of Work adapters commonly flush this recorder from an `afterCommit`
|
|
107
|
+
* hook so events are not published when the work rolls back.
|
|
108
|
+
*
|
|
109
|
+
* @returns A buffered domain event recorder for tests or Unit of Work adapters.
|
|
53
110
|
*/
|
|
54
111
|
export declare function createDomainEventRecorder(): BufferedDomainEventRecorder;
|
|
55
112
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unit-of-work.d.ts","sourceRoot":"","sources":["../../src/ports/unit-of-work.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEhF,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,MAAM,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,IAAI,CAChD,EAAE,EAAE,OAAO,KACR,YAAY,CAAC,MAAM,CAAC,CAAC;AAE1B;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO;IACrC,WAAW,CAAC,MAAM,EAChB,IAAI,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,GACxC,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB,CAAC,OAAO;IAC5C;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAElD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,CAAC,SAAS,cAAc,EAC7B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"unit-of-work.d.ts","sourceRoot":"","sources":["../../src/ports/unit-of-work.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEhF,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,IAAI,CAChD,EAAE,EAAE,OAAO,KACR,YAAY,CAAC,MAAM,CAAC,CAAC;AAE1B;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO;IACrC;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAChB,IAAI,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,GACxC,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,OAAO;IAC5C;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAElD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACrE;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC;IACtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,cAAc,EAC7B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAC1E;;OAEG;IACH,OAAO,IAAI,SAAS,mBAAmB,EAAE,CAAC;IAC1C;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAC1C,gBAAgB,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,EAC3C,OAAO,GAAE,qBAAqB,CAAC,OAAO,CAAM,GAC3C,cAAc,CAAC,OAAO,CAAC,CA8BzB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,IAAI,2BAA2B,CA6BvE"}
|
|
@@ -5,6 +5,11 @@ import { parseEventPayload } from "../events";
|
|
|
5
5
|
*
|
|
6
6
|
* This helper does not create database transactions. It gives applications the
|
|
7
7
|
* same UOW shape everywhere and runs commit/rollback hooks around the callback.
|
|
8
|
+
*
|
|
9
|
+
* @param txPortsOrFactory - Transaction-scoped ports or a factory that creates
|
|
10
|
+
* them per transaction call.
|
|
11
|
+
* @param options - Optional commit and rollback hooks.
|
|
12
|
+
* @returns A Unit of Work port with no durable transaction semantics.
|
|
8
13
|
*/
|
|
9
14
|
export function createNoopUnitOfWork(txPortsOrFactory, options = {}) {
|
|
10
15
|
const createTxPorts = typeof txPortsOrFactory === "function"
|
|
@@ -32,8 +37,12 @@ export function createNoopUnitOfWork(txPortsOrFactory, options = {}) {
|
|
|
32
37
|
};
|
|
33
38
|
}
|
|
34
39
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
40
|
+
* Create a recorder that buffers domain events until the caller flushes them.
|
|
41
|
+
*
|
|
42
|
+
* Unit of Work adapters commonly flush this recorder from an `afterCommit`
|
|
43
|
+
* hook so events are not published when the work rolls back.
|
|
44
|
+
*
|
|
45
|
+
* @returns A buffered domain event recorder for tests or Unit of Work adapters.
|
|
37
46
|
*/
|
|
38
47
|
export function createDomainEventRecorder() {
|
|
39
48
|
const records = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unit-of-work.js","sourceRoot":"","sources":["../../src/ports/unit-of-work.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"unit-of-work.js","sourceRoot":"","sources":["../../src/ports/unit-of-work.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AA0G9C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,gBAA2C,EAC3C,UAA0C,EAAE;IAE5C,MAAM,aAAa,GACjB,OAAO,gBAAgB,KAAK,UAAU;QACpC,CAAC,CAAE,gBAAkC;QACrC,CAAC,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC;IAE7B,OAAO;QACL,KAAK,CAAC,WAAW,CACf,IAAyC;YAEzC,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;YAE3B,IAAI,MAAc,CAAC;YAEnB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACP,gEAAgE;gBAClE,CAAC;gBAED,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,OAAO,GAA0B,EAAE,CAAC;IAE1C,OAAO;QACL,MAAM,CAAC,KAAK,EAAE,OAAO;YACnB,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK;gBACL,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK;YACH,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,QAAQ;YAClB,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1B,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtE,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC9C,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,91 +1,295 @@
|
|
|
1
1
|
import { type Redactor } from "../ports/redaction";
|
|
2
|
+
/**
|
|
3
|
+
* Logical provider watcher name used to toggle groups of instrumentation
|
|
4
|
+
* events.
|
|
5
|
+
*/
|
|
2
6
|
export type ProviderInstrumentationWatcherName = string;
|
|
7
|
+
/**
|
|
8
|
+
* Common metadata attached to every provider instrumentation event.
|
|
9
|
+
*/
|
|
3
10
|
export interface BaseProviderInstrumentationEvent {
|
|
11
|
+
/**
|
|
12
|
+
* Optional event identifier supplied by the caller.
|
|
13
|
+
*/
|
|
4
14
|
id?: string;
|
|
15
|
+
/**
|
|
16
|
+
* ISO timestamp supplied by the caller. Devtools can also assign a timestamp
|
|
17
|
+
* when one is omitted.
|
|
18
|
+
*/
|
|
5
19
|
timestamp?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Request correlation ID for events emitted during request handling.
|
|
22
|
+
*/
|
|
6
23
|
requestId?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Trace identifier for distributed tracing integrations.
|
|
26
|
+
*/
|
|
7
27
|
traceId?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Span identifier for the current operation.
|
|
30
|
+
*/
|
|
8
31
|
spanId?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Parent span identifier for nested operations.
|
|
34
|
+
*/
|
|
9
35
|
parentSpanId?: string;
|
|
36
|
+
/**
|
|
37
|
+
* W3C traceparent header value, when available.
|
|
38
|
+
*/
|
|
10
39
|
traceparent?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Watcher category used by devtools and instrumentation sinks.
|
|
42
|
+
*/
|
|
11
43
|
watcher?: ProviderInstrumentationWatcherName;
|
|
44
|
+
/**
|
|
45
|
+
* Provider-specific structured details. Values are redacted before being
|
|
46
|
+
* recorded by `createProviderInstrumentation(...)`.
|
|
47
|
+
*/
|
|
12
48
|
details?: unknown;
|
|
13
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* HTTP request instrumentation emitted by server adapters.
|
|
52
|
+
*/
|
|
14
53
|
export interface RequestProviderInstrumentationEvent extends BaseProviderInstrumentationEvent {
|
|
15
54
|
type: "request";
|
|
55
|
+
/**
|
|
56
|
+
* HTTP method.
|
|
57
|
+
*/
|
|
16
58
|
method: string;
|
|
59
|
+
/**
|
|
60
|
+
* Request path.
|
|
61
|
+
*/
|
|
17
62
|
path: string;
|
|
63
|
+
/**
|
|
64
|
+
* Matched contract name, when known.
|
|
65
|
+
*/
|
|
18
66
|
contractName?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Response status code.
|
|
69
|
+
*/
|
|
19
70
|
status?: number;
|
|
71
|
+
/**
|
|
72
|
+
* Request duration in milliseconds.
|
|
73
|
+
*/
|
|
20
74
|
durationMs?: number;
|
|
75
|
+
/**
|
|
76
|
+
* Human-readable summary for devtools lists.
|
|
77
|
+
*/
|
|
21
78
|
summary?: string;
|
|
22
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Error instrumentation emitted by framework hooks, use cases, or providers.
|
|
82
|
+
*/
|
|
23
83
|
export interface ErrorProviderInstrumentationEvent extends BaseProviderInstrumentationEvent {
|
|
24
84
|
type: "error";
|
|
85
|
+
/**
|
|
86
|
+
* Error message.
|
|
87
|
+
*/
|
|
25
88
|
message: string;
|
|
89
|
+
/**
|
|
90
|
+
* Error stack trace, when available.
|
|
91
|
+
*/
|
|
26
92
|
stack?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Contract associated with the error.
|
|
95
|
+
*/
|
|
27
96
|
contractName?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Use case associated with the error.
|
|
99
|
+
*/
|
|
28
100
|
useCaseName?: string;
|
|
29
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Use-case lifecycle instrumentation.
|
|
104
|
+
*/
|
|
30
105
|
export interface UseCaseProviderInstrumentationEvent extends BaseProviderInstrumentationEvent {
|
|
31
106
|
type: "usecase";
|
|
107
|
+
/**
|
|
108
|
+
* Use-case name.
|
|
109
|
+
*/
|
|
32
110
|
name: string;
|
|
111
|
+
/**
|
|
112
|
+
* Optional classification used by devtools.
|
|
113
|
+
*/
|
|
33
114
|
kind?: "command" | "query";
|
|
115
|
+
/**
|
|
116
|
+
* Lifecycle phase.
|
|
117
|
+
*/
|
|
34
118
|
phase: "start" | "end" | "error";
|
|
119
|
+
/**
|
|
120
|
+
* Duration in milliseconds for completed phases.
|
|
121
|
+
*/
|
|
35
122
|
durationMs?: number;
|
|
123
|
+
/**
|
|
124
|
+
* Error summary for failed phases.
|
|
125
|
+
*/
|
|
36
126
|
error?: string;
|
|
37
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Event bus instrumentation.
|
|
130
|
+
*/
|
|
38
131
|
export interface EventBusProviderInstrumentationEvent extends BaseProviderInstrumentationEvent {
|
|
39
132
|
type: "eventBus";
|
|
133
|
+
/**
|
|
134
|
+
* Domain or integration event name.
|
|
135
|
+
*/
|
|
40
136
|
eventName: string;
|
|
41
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Background job instrumentation.
|
|
140
|
+
*/
|
|
42
141
|
export interface JobProviderInstrumentationEvent extends BaseProviderInstrumentationEvent {
|
|
43
142
|
type: "job";
|
|
143
|
+
/**
|
|
144
|
+
* Job name.
|
|
145
|
+
*/
|
|
44
146
|
jobName: string;
|
|
45
|
-
|
|
147
|
+
/**
|
|
148
|
+
* Job lifecycle status.
|
|
149
|
+
*/
|
|
150
|
+
status: "scheduled" | "started" | "completed" | "failed" | "retryScheduled" | "deadLettered";
|
|
46
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Scheduled task instrumentation.
|
|
154
|
+
*/
|
|
47
155
|
export interface ScheduleProviderInstrumentationEvent extends BaseProviderInstrumentationEvent {
|
|
48
156
|
type: "schedule";
|
|
157
|
+
/**
|
|
158
|
+
* Schedule name.
|
|
159
|
+
*/
|
|
49
160
|
scheduleName: string;
|
|
161
|
+
/**
|
|
162
|
+
* Schedule run lifecycle status.
|
|
163
|
+
*/
|
|
50
164
|
status: "started" | "completed" | "failed";
|
|
165
|
+
/**
|
|
166
|
+
* Cron expression for the schedule, when known.
|
|
167
|
+
*/
|
|
51
168
|
cron?: string;
|
|
169
|
+
/**
|
|
170
|
+
* Time zone used by the schedule, when known.
|
|
171
|
+
*/
|
|
52
172
|
timezone?: string;
|
|
53
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Provider lifecycle instrumentation emitted during setup, start, and stop.
|
|
176
|
+
*/
|
|
54
177
|
export interface ProviderLifecycleInstrumentationEvent extends BaseProviderInstrumentationEvent {
|
|
55
178
|
type: "provider";
|
|
179
|
+
/**
|
|
180
|
+
* Provider name.
|
|
181
|
+
*/
|
|
56
182
|
providerName: string;
|
|
183
|
+
/**
|
|
184
|
+
* Lifecycle action.
|
|
185
|
+
*/
|
|
57
186
|
action: "setup" | "start" | "stop";
|
|
58
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Custom provider instrumentation event for provider-owned operations.
|
|
190
|
+
*/
|
|
59
191
|
export interface CustomProviderInstrumentationEvent extends BaseProviderInstrumentationEvent {
|
|
60
192
|
type: "custom";
|
|
193
|
+
/**
|
|
194
|
+
* Stable event name.
|
|
195
|
+
*/
|
|
61
196
|
name: string;
|
|
197
|
+
/**
|
|
198
|
+
* Short display label for devtools.
|
|
199
|
+
*/
|
|
62
200
|
label?: string;
|
|
201
|
+
/**
|
|
202
|
+
* Human-readable summary for devtools lists.
|
|
203
|
+
*/
|
|
63
204
|
summary?: string;
|
|
64
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* Union of instrumentation events that provider sinks can receive.
|
|
208
|
+
*/
|
|
65
209
|
export type ProviderInstrumentationEvent = RequestProviderInstrumentationEvent | ErrorProviderInstrumentationEvent | UseCaseProviderInstrumentationEvent | EventBusProviderInstrumentationEvent | JobProviderInstrumentationEvent | ScheduleProviderInstrumentationEvent | ProviderLifecycleInstrumentationEvent | CustomProviderInstrumentationEvent;
|
|
210
|
+
/**
|
|
211
|
+
* Input accepted by provider instrumentation recorders.
|
|
212
|
+
*/
|
|
66
213
|
export type ProviderInstrumentationEventInput = ProviderInstrumentationEvent;
|
|
214
|
+
/**
|
|
215
|
+
* Custom instrumentation input. `type: "custom"` is added by the helper.
|
|
216
|
+
*/
|
|
67
217
|
export type ProviderCustomInstrumentationEventInput = Omit<CustomProviderInstrumentationEvent, "type">;
|
|
218
|
+
/**
|
|
219
|
+
* Sink for provider instrumentation events.
|
|
220
|
+
*/
|
|
68
221
|
export interface ProviderInstrumentationPort<EventInput extends ProviderInstrumentationEventInput = ProviderInstrumentationEventInput, WatcherName extends string = ProviderInstrumentationWatcherName, RecordResult = unknown> {
|
|
222
|
+
/**
|
|
223
|
+
* Record an instrumentation event.
|
|
224
|
+
*/
|
|
69
225
|
record(event: EventInput): RecordResult;
|
|
226
|
+
/**
|
|
227
|
+
* Return whether a watcher is enabled. Missing methods are treated as
|
|
228
|
+
* enabled so simple sinks only need to implement `record`.
|
|
229
|
+
*/
|
|
70
230
|
isWatcherEnabled?(name: WatcherName): boolean;
|
|
71
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* Options for creating a provider instrumentation helper.
|
|
234
|
+
*/
|
|
72
235
|
export interface ProviderInstrumentationOptions {
|
|
236
|
+
/**
|
|
237
|
+
* Provider name to attach to custom event details.
|
|
238
|
+
*/
|
|
73
239
|
providerName: string;
|
|
240
|
+
/**
|
|
241
|
+
* Default watcher name for events emitted by the helper.
|
|
242
|
+
*/
|
|
74
243
|
watcher?: ProviderInstrumentationWatcherName;
|
|
244
|
+
/**
|
|
245
|
+
* Optional redactor applied after Beignet's default redaction pass.
|
|
246
|
+
*/
|
|
75
247
|
redact?: Redactor<ProviderInstrumentationEventInput>;
|
|
76
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* Convenience wrapper used by providers to emit safe, watcher-aware events.
|
|
251
|
+
*/
|
|
77
252
|
export interface ProviderInstrumentation {
|
|
253
|
+
/**
|
|
254
|
+
* Resolved instrumentation port, when one is available.
|
|
255
|
+
*/
|
|
78
256
|
port: ProviderInstrumentationPort | undefined;
|
|
257
|
+
/**
|
|
258
|
+
* Return whether the given watcher is enabled.
|
|
259
|
+
*/
|
|
79
260
|
isEnabled(watcher?: ProviderInstrumentationWatcherName): boolean;
|
|
261
|
+
/**
|
|
262
|
+
* Record a fully formed provider instrumentation event.
|
|
263
|
+
*/
|
|
80
264
|
record(event: ProviderInstrumentationEventInput): unknown;
|
|
265
|
+
/**
|
|
266
|
+
* Record a provider-owned custom event.
|
|
267
|
+
*/
|
|
81
268
|
custom(event: ProviderCustomInstrumentationEventInput): unknown;
|
|
82
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* Values accepted by `createProviderInstrumentation(...)`.
|
|
272
|
+
*/
|
|
83
273
|
export type ProviderInstrumentationTarget = ProviderInstrumentationPort | ProviderInstrumentation | {
|
|
84
274
|
devtools?: ProviderInstrumentationPort | ProviderInstrumentation;
|
|
85
275
|
instrumentation?: ProviderInstrumentationPort | ProviderInstrumentation;
|
|
86
276
|
} | undefined;
|
|
277
|
+
/**
|
|
278
|
+
* Return whether a value is a provider instrumentation helper.
|
|
279
|
+
*/
|
|
87
280
|
export declare function isProviderInstrumentation(value: unknown): value is ProviderInstrumentation;
|
|
281
|
+
/**
|
|
282
|
+
* Return whether a value is a provider instrumentation port.
|
|
283
|
+
*/
|
|
88
284
|
export declare function isProviderInstrumentationPort(value: unknown): value is ProviderInstrumentationPort;
|
|
285
|
+
/**
|
|
286
|
+
* Resolve an instrumentation port from a direct port, helper, or context-like
|
|
287
|
+
* object.
|
|
288
|
+
*/
|
|
89
289
|
export declare function resolveProviderInstrumentationPort(target: ProviderInstrumentationTarget): ProviderInstrumentationPort | undefined;
|
|
290
|
+
/**
|
|
291
|
+
* Create a provider instrumentation helper that handles watcher checks,
|
|
292
|
+
* default watcher assignment, redaction, and sink failures.
|
|
293
|
+
*/
|
|
90
294
|
export declare function createProviderInstrumentation(target: ProviderInstrumentationTarget, options: ProviderInstrumentationOptions): ProviderInstrumentation;
|
|
91
295
|
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/providers/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAe,MAAM,oBAAoB,CAAC;AAEhE,MAAM,MAAM,kCAAkC,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,gCAAgC;IAC/C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,kCAAkC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mCACf,SAAQ,gCAAgC;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iCACf,SAAQ,gCAAgC;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mCACf,SAAQ,gCAAgC;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3B,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oCACf,SAAQ,gCAAgC;IACxC,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,+BACf,SAAQ,gCAAgC;IACxC,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/providers/instrumentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,18 @@ import { redactValue } from "../ports/redaction";
|
|
|
2
2
|
function isObject(value) {
|
|
3
3
|
return typeof value === "object" && value !== null;
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* Return whether a value is a provider instrumentation helper.
|
|
7
|
+
*/
|
|
5
8
|
export function isProviderInstrumentation(value) {
|
|
6
9
|
return (isObject(value) &&
|
|
7
10
|
typeof value.record === "function" &&
|
|
8
11
|
typeof value.custom === "function" &&
|
|
9
12
|
typeof value.isEnabled === "function");
|
|
10
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Return whether a value is a provider instrumentation port.
|
|
16
|
+
*/
|
|
11
17
|
export function isProviderInstrumentationPort(value) {
|
|
12
18
|
return isObject(value) && typeof value.record === "function";
|
|
13
19
|
}
|
|
@@ -18,6 +24,10 @@ function resolveProviderInstrumentationValue(value) {
|
|
|
18
24
|
return value;
|
|
19
25
|
return undefined;
|
|
20
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Resolve an instrumentation port from a direct port, helper, or context-like
|
|
29
|
+
* object.
|
|
30
|
+
*/
|
|
21
31
|
export function resolveProviderInstrumentationPort(target) {
|
|
22
32
|
if (!target)
|
|
23
33
|
return undefined;
|
|
@@ -38,6 +48,10 @@ function withProviderDetails(providerName, details) {
|
|
|
38
48
|
}
|
|
39
49
|
return { providerName, value: details };
|
|
40
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a provider instrumentation helper that handles watcher checks,
|
|
53
|
+
* default watcher assignment, redaction, and sink failures.
|
|
54
|
+
*/
|
|
41
55
|
export function createProviderInstrumentation(target, options) {
|
|
42
56
|
if (isProviderInstrumentation(target)) {
|
|
43
57
|
return target;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/providers/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/providers/instrumentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,10 +33,22 @@ export interface ProviderConfigDef<CfgSchema extends StandardSchemaV1> {
|
|
|
33
33
|
*/
|
|
34
34
|
envPrefix?: string;
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Value or promise of that value.
|
|
38
|
+
*/
|
|
36
39
|
export type MaybePromise<T> = T | Promise<T>;
|
|
40
|
+
/**
|
|
41
|
+
* Context passed to provider lifecycle hooks.
|
|
42
|
+
*/
|
|
37
43
|
export type ProviderLifecycleContext = {
|
|
44
|
+
/**
|
|
45
|
+
* Final app ports after provider setup.
|
|
46
|
+
*/
|
|
38
47
|
ports: Readonly<ProviderPorts>;
|
|
39
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* Result returned from provider setup.
|
|
51
|
+
*/
|
|
40
52
|
export type ProviderSetupResult<ProvidedPorts extends ProviderPorts> = {
|
|
41
53
|
/**
|
|
42
54
|
* Ports contributed by this provider.
|
|
@@ -97,7 +109,8 @@ export interface ServiceProvider<Ports, CfgSchema extends StandardSchemaV1 = Sta
|
|
|
97
109
|
config?: ProviderConfigDef<CfgSchema>;
|
|
98
110
|
/**
|
|
99
111
|
* Setup phase: create the ports this provider contributes.
|
|
100
|
-
* Called during
|
|
112
|
+
* Called during server initialization before provider `start` hooks and
|
|
113
|
+
* before the server handles requests.
|
|
101
114
|
*
|
|
102
115
|
* @param ctx.ports - Ports contributed by previous providers
|
|
103
116
|
* @param ctx.config - Validated config (if config was defined), or undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/providers/provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7C,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAC7C,KAAK,eAAe,GAAG;IAAE,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,gBAAgB,IAChD,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAElC;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS,gBAAgB;IACnE;;;OAGG;IACH,MAAM,EAAE,SAAS,CAAC;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,aAAa,SAAS,aAAa,IAAI;IACrE;;;;OAIG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAE9D;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9D,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,eAAe,CAC9B,KAAK,EACL,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,EACjE,aAAa,SAAS,aAAa,GAAG,eAAe;IAErD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAEtC
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/providers/provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7C,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAC7C,KAAK,eAAe,GAAG;IAAE,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,gBAAgB,IAChD,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAElC;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS,gBAAgB;IACnE;;;OAGG;IACH,MAAM,EAAE,SAAS,CAAC;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,aAAa,SAAS,aAAa,IAAI;IACrE;;;;OAIG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAE9D;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9D,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,eAAe,CAC9B,KAAK,EACL,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,EACjE,aAAa,SAAS,aAAa,GAAG,eAAe;IAErD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAEtC;;;;;;;OAOG;IACH,KAAK,CAAC,GAAG,EAAE;QACT,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;KAC5C,GAAG,YAAY,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;IAErD;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,SAAS,IACnC,SAAS,SAAS,eAAe,CAC/B,MAAM,MAAM,EACZ,MAAM,UAAU,EAChB,MAAM,aAAa,CACpB,GACG,aAAa,GACb,eAAe,CAAC;AAEtB,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAC5B,CAAC,SAAS,OAAO,GACb,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAClB,KAAK,CACV,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAC9B,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,UAAU,IACxC,UAAU,SAAS,SAAS,OAAO,EAAE,GACjC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAClC,eAAe,GACf,mBAAmB,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAC1D,eAAe,CAAC;AAEtB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAC5B,KAAK,GAAG,OAAO,EACf,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,EACjE,aAAa,SAAS,aAAa,GAAG,eAAe,EAErD,GAAG,EAAE,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,GACpD,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,CAElD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/providers/provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/providers/provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyKH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc,CAK5B,GAAqD;IAErD,OAAO,GAAG,CAAC;AACb,CAAC"}
|