@nodii/approval 0.3.3 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/consumer.d.ts +21 -0
- package/dist/consumer.d.ts.map +1 -1
- package/dist/consumer.js +34 -0
- package/dist/consumer.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/streams-reader.d.ts +40 -0
- package/dist/streams-reader.d.ts.map +1 -0
- package/dist/streams-reader.js +205 -0
- package/dist/streams-reader.js.map +1 -0
- package/dist/types.d.ts +49 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/consumer.d.ts
CHANGED
|
@@ -1,12 +1,33 @@
|
|
|
1
1
|
import { Worker } from "bullmq";
|
|
2
|
+
import type { Redis as IoRedis } from "ioredis";
|
|
3
|
+
import { type StreamsReaderHandle } from "./streams-reader";
|
|
4
|
+
import type { StreamsConsumerConfig } from "./types";
|
|
2
5
|
export interface StartApprovalConsumerOpts {
|
|
3
6
|
/** Defaults to `<serviceName>-approval-completions`. */
|
|
4
7
|
queueName?: string;
|
|
5
8
|
/** Defaults to `cfg.consumerMaxRetries`. */
|
|
6
9
|
maxAttempts?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Optional native Redis-Streams reader config (D263, v0.4). When provided,
|
|
12
|
+
* the library starts a native Streams reader ALONGSIDE the existing
|
|
13
|
+
* in-service worker: it XREADGROUPs the shared completion stream, filters
|
|
14
|
+
* to own-service completions, dedupe-checks via `consumed_events`, and
|
|
15
|
+
* enqueues new events into the SAME `queueName` queue the worker drains.
|
|
16
|
+
* When OMITTED, behavior is byte-identical to v0.3.x (pure worker).
|
|
17
|
+
*/
|
|
18
|
+
streams?: StreamsConsumerConfig;
|
|
19
|
+
/**
|
|
20
|
+
* Redis client for the Streams reader. Defaults to the lib's configured
|
|
21
|
+
* `cfg.redis` (the same client `initApproval` was given). Only consulted
|
|
22
|
+
* when `streams` is provided.
|
|
23
|
+
*/
|
|
24
|
+
redis?: IoRedis;
|
|
7
25
|
}
|
|
8
26
|
export interface ApprovalConsumerHandle {
|
|
9
27
|
worker: Worker;
|
|
28
|
+
/** The native Streams reader handle, present only when `startApprovalConsumer`
|
|
29
|
+
* was called with `streams`. `null` on the pure-worker (v0.3.x) path. */
|
|
30
|
+
streamsReader: StreamsReaderHandle | null;
|
|
10
31
|
close(timeoutMs?: number): Promise<void>;
|
|
11
32
|
}
|
|
12
33
|
export declare function startApprovalConsumer(opts?: StartApprovalConsumerOpts): Promise<ApprovalConsumerHandle>;
|
package/dist/consumer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"AAaA,OAAO,
|
|
1
|
+
{"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"AAaA,OAAO,EAAc,MAAM,EAAY,MAAM,QAAQ,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,SAAS,CAAC;AAWhD,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAIV,qBAAqB,EAGtB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,yBAAyB;IACxC,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf;8EAC0E;IAC1E,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAID,wBAAsB,qBAAqB,CACzC,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,sBAAsB,CAAC,CA2FjC;AAED,wBAAsB,oBAAoB,CACxC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5D;AAkPD,yDAAyD;AACzD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
package/dist/consumer.js
CHANGED
|
@@ -14,6 +14,7 @@ import { Worker } from "bullmq";
|
|
|
14
14
|
import { applyDecision, findById, findByTaskId, markExecuted, markFailed, } from "./deferred-actions";
|
|
15
15
|
import { DeferredActionNotFound } from "./errors";
|
|
16
16
|
import { requireApproval, requireHandlers } from "./init";
|
|
17
|
+
import { makeQueueEnqueuer, startStreamsReader, } from "./streams-reader";
|
|
17
18
|
import { emitAudit, inc, observe } from "./telemetry-shim";
|
|
18
19
|
let CURRENT = null;
|
|
19
20
|
export async function startApprovalConsumer(opts = {}) {
|
|
@@ -48,14 +49,47 @@ export async function startApprovalConsumer(opts = {}) {
|
|
|
48
49
|
error: err.message,
|
|
49
50
|
});
|
|
50
51
|
});
|
|
52
|
+
// D263 — optional native Redis-Streams reader. When `streams` is provided,
|
|
53
|
+
// start a reader ALONGSIDE the worker that bridges the shared completion
|
|
54
|
+
// stream into THIS queue (so the worker above dispatches each event). The
|
|
55
|
+
// reader produces into the same queue via a dedicated BullMQ producer
|
|
56
|
+
// handle, which we own + close on teardown.
|
|
57
|
+
let streamsReader = null;
|
|
58
|
+
let producerQueue = null;
|
|
59
|
+
if (opts.streams) {
|
|
60
|
+
const { enqueue, queue: pq } = makeQueueEnqueuer(cfg, queue);
|
|
61
|
+
producerQueue = pq;
|
|
62
|
+
streamsReader = await startStreamsReader({
|
|
63
|
+
cfg,
|
|
64
|
+
streams: opts.streams,
|
|
65
|
+
// Default to the lib's configured client when no explicit redis is
|
|
66
|
+
// passed. ioredis's `Redis` satisfies the narrow `StreamsRedisLike`
|
|
67
|
+
// surface structurally, but its overloaded method signatures are wider
|
|
68
|
+
// than our (...args) shape — cast through `unknown` (same pattern as the
|
|
69
|
+
// BullMQ connection cast above).
|
|
70
|
+
redis: (opts.redis ?? cfg.redis),
|
|
71
|
+
enqueue,
|
|
72
|
+
pollBatch: opts.streams.pollBatch,
|
|
73
|
+
blockMs: opts.streams.blockMs,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
51
76
|
CURRENT = {
|
|
52
77
|
worker,
|
|
78
|
+
streamsReader,
|
|
53
79
|
async close(timeoutMs = 30_000) {
|
|
54
80
|
try {
|
|
81
|
+
// Stop BOTH the reader loop AND the worker, gracefully. Stop the
|
|
82
|
+
// reader first so no new jobs are enqueued while the worker drains.
|
|
83
|
+
if (streamsReader) {
|
|
84
|
+
await streamsReader.stop(timeoutMs);
|
|
85
|
+
}
|
|
55
86
|
await Promise.race([
|
|
56
87
|
worker.close(),
|
|
57
88
|
new Promise((resolve) => setTimeout(resolve, timeoutMs).unref()),
|
|
58
89
|
]);
|
|
90
|
+
if (producerQueue) {
|
|
91
|
+
await producerQueue.close();
|
|
92
|
+
}
|
|
59
93
|
}
|
|
60
94
|
finally {
|
|
61
95
|
CURRENT = null;
|
package/dist/consumer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumer.js","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,wEAAwE;AACxE,qEAAqE;AACrE,uEAAuE;AACvE,sBAAsB;AACtB,EAAE;AACF,mEAAmE;AACnE,qEAAqE;AACrE,sEAAsE;AACtE,kEAAkE;AAClE,uCAAuC;AAEvC,OAAO,
|
|
1
|
+
{"version":3,"file":"consumer.js","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const LIB_NAME = "approval";
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.4.0";
|
|
3
3
|
export { defineApprovalKinds, KindRegistry, RequesterRegistry, validateCrossOwnerKind, type DefineApprovalKindsOpts, } from "./kinds";
|
|
4
4
|
export { initApproval, requireApproval, getApprovalOrNull, requireKindRegistry, requireHandlers, requesterRegistry, defineApprovalRequester, registerKinds, _resetForTests, } from "./init";
|
|
5
5
|
export { bindApprovalHandlers, type BindApprovalHandlersOpts, } from "./handlers";
|
|
@@ -7,12 +7,13 @@ export { requestApproval } from "./request";
|
|
|
7
7
|
export { APPROVAL_METRIC_VOCABULARY } from "./metric-vocab";
|
|
8
8
|
export { validatePreviewSummary, PII_PATTERNS, } from "./preview-validation";
|
|
9
9
|
export { startApprovalConsumer, stopApprovalConsumer, defaultQueueName, _resetConsumerForTests, type StartApprovalConsumerOpts, type ApprovalConsumerHandle, } from "./consumer";
|
|
10
|
+
export { startStreamsReader, makeQueueEnqueuer, type StreamsReaderHandle, } from "./streams-reader";
|
|
10
11
|
export { getApprovalMigrationSQL, splitStatements, type GetMigrationSQLOpts, } from "./migrations";
|
|
11
12
|
export { APPROVAL_OUTBOX_AGGREGATE_KIND, DEFAULT_OUTBOX_TABLE_NAME, approvalRequestedTopic, insertBeginEventOutboxRow, type ApprovalBeginEventPayload, type InsertBeginEventOutboxRowInput, } from "./outbox";
|
|
12
13
|
export { uuidv7 } from "./uuid";
|
|
13
14
|
export { TaskTrackingGrpcClient, TASK_SERVICE_DESCRIPTOR, type TaskTrackingGrpcClientOpts, } from "./task-tracking-client";
|
|
14
15
|
export { createApprovalPolicyClient, ApprovalPolicyGrpcClient, APPROVAL_POLICY_SERVICE, type CreateApprovalPolicyClientOpts, } from "./policy-client";
|
|
15
16
|
export { ApprovalError, ApprovalNotInitialized, ApproverRoleNotInCatalog, DeferredActionNotFound, HandlerForUnregisteredKind, HandlerNotRegistered, IdempotencyKeyRequired, InvalidApprovalPreviewShape, InvalidApprovalSegment, ReservedServiceNameViolation, TaskCreationFailed, TenantPolicyKindUnknown, UndeclaredRequesterKind, UnknownApprovalKind, } from "./errors";
|
|
16
|
-
export type { ApprovalKindDef, ApprovalKindDefInput, ApprovalPolicyRow, ApprovalPolicyServiceClient, ApproverKind, CreateTaskRequest, CreateTaskResponse, DbRlsLike, DeferredActionPayloadSummary, DeferredActionRow, DefinedKindMap, GetPolicyRequest, GetPolicyResponse, HandlerContext, HandlerSet, InitApprovalConfig, MembershipRolesLookup, PreviewFieldRule, PreviewSchema, RequestApprovalOpts, RequestApprovalResult, RequestApprovalResultStatus, ResolvedApprovalConfig, ResolvedPolicy, TaskCompletedEvent, TaskServiceClient, } from "./types";
|
|
17
|
+
export type { ApprovalKindDef, ApprovalKindDefInput, ApprovalPolicyRow, ApprovalPolicyServiceClient, ApproverKind, CreateTaskRequest, CreateTaskResponse, DbRlsLike, DeferredActionPayloadSummary, DeferredActionRow, DefinedKindMap, GetPolicyRequest, GetPolicyResponse, HandlerContext, HandlerSet, InitApprovalConfig, MembershipRolesLookup, PreviewFieldRule, PreviewSchema, RequestApprovalOpts, RequestApprovalResult, RequestApprovalResultStatus, ResolvedApprovalConfig, ResolvedPolicy, StreamsConsumerConfig, StreamsRedisLike, TaskCompletedEvent, TaskServiceClient, } from "./types";
|
|
17
18
|
export { DEFAULT_CONSUMER_LEASE_SECONDS, DEFAULT_CONSUMER_MAX_RETRIES, DEFAULT_EXPIRY_SECONDS, DEFAULT_IDEMPOTENCY_TTL_SECONDS, RESERVED_SERVICE_NAMES, } from "./types";
|
|
18
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,uBAAuB,GAC7B,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,oBAAoB,EACpB,KAAK,wBAAwB,GAC9B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAK5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,GACpC,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,0BAA0B,GAChC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,8BAA8B,GACpC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,4BAA4B,EAC5B,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,uBAAuB,GAC7B,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,oBAAoB,EACpB,KAAK,wBAAwB,GAC9B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAK5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,GACpC,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,0BAA0B,GAChC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,8BAA8B,GACpC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,4BAA4B,EAC5B,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Spec: planning hub feature_doc serviceId=nodii-libs docKey=approval.
|
|
4
4
|
// Polyglot ship: TS + Python + Go in parity. This is the TypeScript impl.
|
|
5
5
|
export const LIB_NAME = "approval";
|
|
6
|
-
export const VERSION = "0.
|
|
6
|
+
export const VERSION = "0.4.0";
|
|
7
7
|
export { defineApprovalKinds, KindRegistry, RequesterRegistry, validateCrossOwnerKind, } from "./kinds";
|
|
8
8
|
export { initApproval, requireApproval, getApprovalOrNull, requireKindRegistry, requireHandlers, requesterRegistry, defineApprovalRequester, registerKinds, _resetForTests, } from "./init";
|
|
9
9
|
export { bindApprovalHandlers, } from "./handlers";
|
|
@@ -14,6 +14,7 @@ export { requestApproval } from "./request";
|
|
|
14
14
|
export { APPROVAL_METRIC_VOCABULARY } from "./metric-vocab";
|
|
15
15
|
export { validatePreviewSummary, PII_PATTERNS, } from "./preview-validation";
|
|
16
16
|
export { startApprovalConsumer, stopApprovalConsumer, defaultQueueName, _resetConsumerForTests, } from "./consumer";
|
|
17
|
+
export { startStreamsReader, makeQueueEnqueuer, } from "./streams-reader";
|
|
17
18
|
export { getApprovalMigrationSQL, splitStatements, } from "./migrations";
|
|
18
19
|
export { APPROVAL_OUTBOX_AGGREGATE_KIND, DEFAULT_OUTBOX_TABLE_NAME, approvalRequestedTopic, insertBeginEventOutboxRow, } from "./outbox";
|
|
19
20
|
export { uuidv7 } from "./uuid";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAE1E,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,GAEvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,oBAAoB,GAErB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,uEAAuE;AACvE,yEAAyE;AACzE,6DAA6D;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,GAGvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,eAAe,GAEhB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,GAG1B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,GAExB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAE1E,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,GAEvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,oBAAoB,GAErB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,uEAAuE;AACvE,yEAAyE;AACzE,6DAA6D;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,GAGvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,uBAAuB,EACvB,eAAe,GAEhB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,GAG1B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,GAExB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAiClB,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Queue } from "bullmq";
|
|
2
|
+
import type { ResolvedApprovalConfig, StreamsConsumerConfig, StreamsRedisLike, TaskCompletedEvent } from "./types";
|
|
3
|
+
export interface StreamsReaderHandle {
|
|
4
|
+
/** Stop the reader loop gracefully (finish the in-flight poll, then
|
|
5
|
+
* return). Bounded by `timeoutMs`. */
|
|
6
|
+
stop(timeoutMs?: number): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Start the native Redis-Streams reader. Runs ALONGSIDE the existing
|
|
10
|
+
* in-service BullMQ worker — it does NOT dispatch handlers itself; it only
|
|
11
|
+
* bridges the shared completion stream into the EXISTING queue so the
|
|
12
|
+
* existing worker's unchanged dispatch/handler/audit/dedupe path runs.
|
|
13
|
+
*
|
|
14
|
+
* `enqueue` is injected by the consumer so the reader and the worker share
|
|
15
|
+
* exactly one BullMQ Queue handle (and the consumer owns its lifecycle).
|
|
16
|
+
*/
|
|
17
|
+
export declare function startStreamsReader(args: {
|
|
18
|
+
cfg: ResolvedApprovalConfig;
|
|
19
|
+
streams: StreamsConsumerConfig;
|
|
20
|
+
/** Redis client for the stream ops. Defaults to `cfg.redis`. */
|
|
21
|
+
redis?: StreamsRedisLike;
|
|
22
|
+
/** Enqueue a new own-service event into the existing in-service queue.
|
|
23
|
+
* Resolves once the job is durably enqueued (BullMQ `queue.add`). */
|
|
24
|
+
enqueue: (event: TaskCompletedEvent) => Promise<void>;
|
|
25
|
+
/** Override the XREADGROUP batch count (tests pass small values). */
|
|
26
|
+
pollBatch?: number;
|
|
27
|
+
/** Override the XREADGROUP block timeout in ms (tests pass small values). */
|
|
28
|
+
blockMs?: number;
|
|
29
|
+
}): Promise<StreamsReaderHandle>;
|
|
30
|
+
/**
|
|
31
|
+
* Construct a BullMQ producer Queue for the in-service completion queue and
|
|
32
|
+
* return an `enqueue` closure plus the queue handle (so the consumer can
|
|
33
|
+
* close it on teardown). The reader uses `queue.add(...)` so the existing
|
|
34
|
+
* Worker dispatches each bridged event — the dispatch path is unchanged.
|
|
35
|
+
*/
|
|
36
|
+
export declare function makeQueueEnqueuer(cfg: ResolvedApprovalConfig, queueName: string): {
|
|
37
|
+
enqueue: (event: TaskCompletedEvent) => Promise<void>;
|
|
38
|
+
queue: Queue<TaskCompletedEvent>;
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=streams-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streams-reader.d.ts","sourceRoot":"","sources":["../src/streams-reader.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAUjB,MAAM,WAAW,mBAAmB;IAClC;2CACuC;IACvC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAyED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,GAAG,EAAE,sBAAsB,CAAC;IAC5B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,gEAAgE;IAChE,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;0EACsE;IACtE,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAwF/B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,sBAAsB,EAC3B,SAAS,EAAE,MAAM,GAChB;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;CAClC,CAkBA"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
// Native Redis-Streams reader for @nodii/approval — D263 (LOCKED, Option B).
|
|
2
|
+
//
|
|
3
|
+
// Today the completion-consumer is the in-service worker only (a BullMQ
|
|
4
|
+
// Worker that drains the `<service>-approval-completions` queue). Adopters
|
|
5
|
+
// had to hand-build a Streams->queue bridge (Option A), duplicating that
|
|
6
|
+
// glue across 5+ services and violating 01-communication § 9.3 (the
|
|
7
|
+
// cross-service BullMQ ban). D263 makes Option B canonical: the LIBRARY
|
|
8
|
+
// ships the native Redis-Streams reader, started ALONGSIDE the existing
|
|
9
|
+
// worker when `startApprovalConsumer({ streams })` is provided.
|
|
10
|
+
//
|
|
11
|
+
// The reader mirrors @nodii/replica-consumer's streams-worker pattern:
|
|
12
|
+
// 1. XGROUP CREATE <topic> <group> $ MKSTREAM (ignore BUSYGROUP).
|
|
13
|
+
// 2. loop: XREADGROUP GROUP <group> <consumer> COUNT n BLOCK ms
|
|
14
|
+
// STREAMS <topic> '>'.
|
|
15
|
+
// 3. parse each entry's `event` JSON into a TaskCompletedEvent.
|
|
16
|
+
// 4. filter(event) === false → XACK + continue (another service's
|
|
17
|
+
// completion: each service's group independently reads the shared
|
|
18
|
+
// stream and acks what isn't its own).
|
|
19
|
+
// 5. consumed_events dedupe CHECK via cfg.pgPool → already present →
|
|
20
|
+
// XACK + continue (redelivery of an already-processed event).
|
|
21
|
+
// 6. new own-service event → ENQUEUE into the EXISTING in-service queue
|
|
22
|
+
// (BullMQ queue.add) so the EXISTING worker does the status update +
|
|
23
|
+
// handler dispatch + audit + the consumed_events INSERT (unchanged).
|
|
24
|
+
// 7. XACK ONLY AFTER the enqueue succeeds. On enqueue failure: do NOT
|
|
25
|
+
// XACK (leave the entry in the PEL so it is redelivered).
|
|
26
|
+
//
|
|
27
|
+
// Per R1: this reader runs a REAL XREADGROUP against the REAL Redis. There
|
|
28
|
+
// is no Noop / in-memory stream double in the shipped path.
|
|
29
|
+
import { Queue } from "bullmq";
|
|
30
|
+
/** Default XREADGROUP block timeout (ms). Kept civil so `stop()` can
|
|
31
|
+
* interrupt within roughly one block window. */
|
|
32
|
+
const DEFAULT_BLOCK_MS = 5_000;
|
|
33
|
+
/** Default XREADGROUP count per poll. 32 = parity with the Python + Go
|
|
34
|
+
* readers (and @nodii/replica-consumer's DEFAULT_BATCH). */
|
|
35
|
+
const DEFAULT_BATCH = 32;
|
|
36
|
+
/** Idempotently create the consumer group + stream (`MKSTREAM`). If the
|
|
37
|
+
* group already exists Redis returns a BUSYGROUP error — swallow it.
|
|
38
|
+
* Mirrors replica-consumer's `ensureConsumerGroup`. */
|
|
39
|
+
async function ensureConsumerGroup(redis, topic, group) {
|
|
40
|
+
try {
|
|
41
|
+
await redis.xgroup("CREATE", topic, group, "$", "MKSTREAM");
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
45
|
+
if (!/BUSYGROUP/i.test(msg))
|
|
46
|
+
throw err;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Parse an XREADGROUP response into a flat list of (id, event) pairs.
|
|
51
|
+
*
|
|
52
|
+
* ioredis returns the shape `[[stream, [[id, ["event", "<json>"]], ...]], ...]`.
|
|
53
|
+
* Producers XADD with a single `event <json>` field (canonical per
|
|
54
|
+
* 01-communication § 9 + matching replica-consumer's publish shape). We
|
|
55
|
+
* skip malformed payloads rather than throwing the whole batch.
|
|
56
|
+
*/
|
|
57
|
+
function parseXReadGroup(raw) {
|
|
58
|
+
if (!Array.isArray(raw))
|
|
59
|
+
return [];
|
|
60
|
+
const out = [];
|
|
61
|
+
for (const streamEntry of raw) {
|
|
62
|
+
if (!Array.isArray(streamEntry) || streamEntry.length < 2)
|
|
63
|
+
continue;
|
|
64
|
+
const entries = streamEntry[1];
|
|
65
|
+
if (!Array.isArray(entries))
|
|
66
|
+
continue;
|
|
67
|
+
for (const e of entries) {
|
|
68
|
+
if (!Array.isArray(e) || e.length < 2)
|
|
69
|
+
continue;
|
|
70
|
+
const id = String(e[0]);
|
|
71
|
+
const fields = e[1];
|
|
72
|
+
if (!Array.isArray(fields))
|
|
73
|
+
continue;
|
|
74
|
+
let payload;
|
|
75
|
+
for (let i = 0; i < fields.length - 1; i += 2) {
|
|
76
|
+
if (String(fields[i]) === "event") {
|
|
77
|
+
payload = String(fields[i + 1]);
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (payload === undefined)
|
|
82
|
+
continue;
|
|
83
|
+
try {
|
|
84
|
+
out.push({ id, event: JSON.parse(payload) });
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Malformed payload — skip + log via caller's catch.
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return out;
|
|
92
|
+
}
|
|
93
|
+
/** consumed_events dedupe CHECK (the same SELECT the existing worker's
|
|
94
|
+
* `isAlreadyConsumed` performs, lifted here so a redelivery is acked
|
|
95
|
+
* WITHOUT re-enqueueing). */
|
|
96
|
+
async function isAlreadyConsumed(cfg, eventId, topic) {
|
|
97
|
+
const rows = await cfg.pgPool.unsafe("SELECT 1 FROM consumed_events WHERE event_id = $1 AND topic = $2 LIMIT 1", [eventId, topic]);
|
|
98
|
+
return Array.isArray(rows) && rows.length > 0;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Start the native Redis-Streams reader. Runs ALONGSIDE the existing
|
|
102
|
+
* in-service BullMQ worker — it does NOT dispatch handlers itself; it only
|
|
103
|
+
* bridges the shared completion stream into the EXISTING queue so the
|
|
104
|
+
* existing worker's unchanged dispatch/handler/audit/dedupe path runs.
|
|
105
|
+
*
|
|
106
|
+
* `enqueue` is injected by the consumer so the reader and the worker share
|
|
107
|
+
* exactly one BullMQ Queue handle (and the consumer owns its lifecycle).
|
|
108
|
+
*/
|
|
109
|
+
export async function startStreamsReader(args) {
|
|
110
|
+
const { cfg, streams, enqueue } = args;
|
|
111
|
+
const redis = (args.redis ?? cfg.redis);
|
|
112
|
+
const pollBatch = args.pollBatch ?? DEFAULT_BATCH;
|
|
113
|
+
const blockMs = args.blockMs ?? DEFAULT_BLOCK_MS;
|
|
114
|
+
const { topic, consumerGroup, consumerName } = streams;
|
|
115
|
+
const filter = streams.filter ?? (() => true);
|
|
116
|
+
await ensureConsumerGroup(redis, topic, consumerGroup);
|
|
117
|
+
let stopped = false;
|
|
118
|
+
const handleOne = async (id, event) => {
|
|
119
|
+
// [4] FILTER — another service's completion. Each service's group
|
|
120
|
+
// independently reads the shared stream and acks what isn't its own.
|
|
121
|
+
if (!filter(event)) {
|
|
122
|
+
await redis.xack(topic, consumerGroup, id);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
// [5] DEDUPE CHECK — redelivery of an already-processed event. The
|
|
126
|
+
// existing worker writes the consumed_events row; if it's there, this
|
|
127
|
+
// is a stream redelivery of an event we already dispatched. ACK + skip.
|
|
128
|
+
const already = await isAlreadyConsumed(cfg, event.eventId, event.topic);
|
|
129
|
+
if (already) {
|
|
130
|
+
cfg.logger.info("approval.streams.dedupe_skip", {
|
|
131
|
+
event_id: event.eventId,
|
|
132
|
+
topic: event.topic,
|
|
133
|
+
});
|
|
134
|
+
await redis.xack(topic, consumerGroup, id);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
// [6] ENQUEUE into the EXISTING in-service queue. The existing worker
|
|
138
|
+
// performs the status update + handler dispatch + audit + the
|
|
139
|
+
// consumed_events INSERT (unchanged dispatch path).
|
|
140
|
+
await enqueue(event);
|
|
141
|
+
// [7] XACK ONLY AFTER the enqueue succeeds. If `enqueue` threw above,
|
|
142
|
+
// we never reach here → the entry stays in the PEL and is redelivered.
|
|
143
|
+
await redis.xack(topic, consumerGroup, id);
|
|
144
|
+
};
|
|
145
|
+
const loop = (async () => {
|
|
146
|
+
while (!stopped) {
|
|
147
|
+
try {
|
|
148
|
+
const raw = await redis.xreadgroup("GROUP", consumerGroup, consumerName, "COUNT", pollBatch, "BLOCK", blockMs, "STREAMS", topic, ">");
|
|
149
|
+
const pairs = parseXReadGroup(raw);
|
|
150
|
+
if (pairs.length === 0) {
|
|
151
|
+
// No events this poll. Yield to the event loop so test doubles +
|
|
152
|
+
// macrotasks get their turn. Real ioredis already yields via the
|
|
153
|
+
// BLOCK window; this keeps the loop civil with synchronous doubles.
|
|
154
|
+
await new Promise((r) => setTimeout(r, 0));
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
for (const p of pairs) {
|
|
158
|
+
await handleOne(p.id, p.event);
|
|
159
|
+
if (stopped)
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
if (stopped)
|
|
165
|
+
break;
|
|
166
|
+
cfg.logger.warn("approval.streams.reader_loop_error", {
|
|
167
|
+
error: err instanceof Error ? err.message : String(err),
|
|
168
|
+
});
|
|
169
|
+
// Backoff slightly so a broken Redis doesn't tight-loop.
|
|
170
|
+
await new Promise((r) => setTimeout(r, 200));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
})();
|
|
174
|
+
return {
|
|
175
|
+
async stop(timeoutMs = 30_000) {
|
|
176
|
+
stopped = true;
|
|
177
|
+
await Promise.race([
|
|
178
|
+
loop,
|
|
179
|
+
new Promise((resolve) => setTimeout(resolve, timeoutMs).unref()),
|
|
180
|
+
]);
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Construct a BullMQ producer Queue for the in-service completion queue and
|
|
186
|
+
* return an `enqueue` closure plus the queue handle (so the consumer can
|
|
187
|
+
* close it on teardown). The reader uses `queue.add(...)` so the existing
|
|
188
|
+
* Worker dispatches each bridged event — the dispatch path is unchanged.
|
|
189
|
+
*/
|
|
190
|
+
export function makeQueueEnqueuer(cfg, queueName) {
|
|
191
|
+
// BullMQ's Connection type is pinned to its own ioredis version; the
|
|
192
|
+
// workspace may resolve a different patch. Cast through `unknown` to
|
|
193
|
+
// accept the configured Redis as long as it has the structural surface
|
|
194
|
+
// BullMQ uses internally (matches the Worker construction in consumer.ts).
|
|
195
|
+
const queue = new Queue(queueName, {
|
|
196
|
+
connection: cfg.redis,
|
|
197
|
+
});
|
|
198
|
+
return {
|
|
199
|
+
queue,
|
|
200
|
+
async enqueue(event) {
|
|
201
|
+
await queue.add("completed", event);
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=streams-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streams-reader.js","sourceRoot":"","sources":["../src/streams-reader.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -228,6 +228,55 @@ export interface TaskCompletedEvent {
|
|
|
228
228
|
/** ISO8601 — when task-tracking published. */
|
|
229
229
|
publishedAt?: string;
|
|
230
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* Minimal Redis-Streams surface the native reader uses (D263). `ioredis`'s
|
|
233
|
+
* `Redis` satisfies this structurally — the reader only needs XGROUP /
|
|
234
|
+
* XREADGROUP / XACK. Kept narrow so tests can supply a structural double
|
|
235
|
+
* and the dependency on the full ioredis surface stays explicit.
|
|
236
|
+
*/
|
|
237
|
+
export interface StreamsRedisLike {
|
|
238
|
+
/** `XGROUP CREATE <stream> <group> <id> [MKSTREAM]` — invoked with
|
|
239
|
+
* `MKSTREAM` so the stream auto-creates on cold start. */
|
|
240
|
+
xgroup(...args: (string | number)[]): Promise<unknown>;
|
|
241
|
+
/** `XREADGROUP GROUP <group> <consumer> [COUNT n] [BLOCK ms]
|
|
242
|
+
* STREAMS <stream...> <id|>...>`. */
|
|
243
|
+
xreadgroup(...args: (string | number)[]): Promise<unknown>;
|
|
244
|
+
/** `XACK <stream> <group> <id>`. */
|
|
245
|
+
xack(key: string, group: string, ...ids: string[]): Promise<number>;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Optional native Redis-Streams reader config (D263, v0.4). When supplied to
|
|
249
|
+
* `startApprovalConsumer`, the library starts a native Streams reader
|
|
250
|
+
* ALONGSIDE the existing in-service BullMQ worker: it XREADGROUPs the shared
|
|
251
|
+
* completion stream, filters to own-service completions, dedupe-checks via
|
|
252
|
+
* `consumed_events`, and enqueues new events into the SAME in-service queue
|
|
253
|
+
* the existing worker drains. When OMITTED, behavior is byte-identical to
|
|
254
|
+
* v0.3.x (pure worker; adopters bridge the stream themselves). Additive +
|
|
255
|
+
* non-breaking.
|
|
256
|
+
*/
|
|
257
|
+
export interface StreamsConsumerConfig {
|
|
258
|
+
/** Source stream key, e.g. `tasks.task.completed.v1` (canonical per
|
|
259
|
+
* 01-communication § 9). */
|
|
260
|
+
topic: string;
|
|
261
|
+
/** Consumer-group name, e.g. `<service>-approval-completions`. Each
|
|
262
|
+
* consuming service has its own group so the shared completion stream
|
|
263
|
+
* fans out to N services independently. */
|
|
264
|
+
consumerGroup: string;
|
|
265
|
+
/** Per-instance consumer name, e.g. `<service>-<instance_id>`. */
|
|
266
|
+
consumerName: string;
|
|
267
|
+
/**
|
|
268
|
+
* Keep only this service's own completions. Returns `true` to dispatch the
|
|
269
|
+
* event, `false` to XACK + drop it (another service's completion). Typical
|
|
270
|
+
* shape: `(event) => event.metadata.originatingService === '<service id>'`.
|
|
271
|
+
* Defaults to keep-all when omitted.
|
|
272
|
+
*/
|
|
273
|
+
filter?: (event: TaskCompletedEvent) => boolean;
|
|
274
|
+
/** XREADGROUP `COUNT` per poll. Defaults to 16. */
|
|
275
|
+
pollBatch?: number;
|
|
276
|
+
/** XREADGROUP `BLOCK` window in ms. Defaults to 5000. Lower it to make the
|
|
277
|
+
* reader loop (and graceful `stop()`) more responsive in tests. */
|
|
278
|
+
blockMs?: number;
|
|
279
|
+
}
|
|
231
280
|
/**
|
|
232
281
|
* `ApprovalPolicyService.GetPolicy` request (D231 Rule 2). Read-only policy
|
|
233
282
|
* resolution for a `(tenantId, kind)` against the OWNER service.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,sEAAsE;AACtE,mDAAmD;AAsBnD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,UAAU;IACV,QAAQ;IACR,KAAK;IACL,OAAO;IACP,MAAM;CACE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,sEAAsE;AACtE,mDAAmD;AAsBnD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,UAAU;IACV,QAAQ;IACR,KAAK;IACL,OAAO;IACP,MAAM;CACE,CAAC;AAodX,qDAAqD;AACrD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAC9D,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AACjD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nodii/approval",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Approval library for the Nodii microservice stack — defineApprovalKinds + requestApproval + bindApprovalHandlers + per-tenant policies + completion-event consumer + migrate-gen. Polyglot ship: TS + Python + Go in parity. Spec: planning hub docKey=approval.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|