@nodii/approval 0.3.0 → 0.3.2

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/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export { defineApprovalKinds, KindRegistry, RequesterRegistry, validateCrossOwne
4
4
  export { initApproval, requireApproval, getApprovalOrNull, requireKindRegistry, requireHandlers, requesterRegistry, defineApprovalRequester, registerKinds, _resetForTests, } from "./init";
5
5
  export { bindApprovalHandlers, type BindApprovalHandlersOpts, } from "./handlers";
6
6
  export { requestApproval } from "./request";
7
+ export { APPROVAL_METRIC_VOCABULARY } from "./metric-vocab";
7
8
  export { validatePreviewSummary, PII_PATTERNS, } from "./preview-validation";
8
9
  export { startApprovalConsumer, stopApprovalConsumer, defaultQueueName, _resetConsumerForTests, type StartApprovalConsumerOpts, type ApprovalConsumerHandle, } from "./consumer";
9
10
  export { getApprovalMigrationSQL, splitStatements, type GetMigrationSQLOpts, } from "./migrations";
@@ -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;AAE5C,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,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"}
package/dist/index.js CHANGED
@@ -8,6 +8,10 @@ export { defineApprovalKinds, KindRegistry, RequesterRegistry, validateCrossOwne
8
8
  export { initApproval, requireApproval, getApprovalOrNull, requireKindRegistry, requireHandlers, requesterRegistry, defineApprovalRequester, registerKinds, _resetForTests, } from "./init";
9
9
  export { bindApprovalHandlers, } from "./handlers";
10
10
  export { requestApproval } from "./request";
11
+ // The 8 locked approval metrics (`approval.md § 5.15`). Adopters merge
12
+ // this into `initTelemetry({ vocabularyRegistry })` so the names emitted
13
+ // by the telemetry shim register cleanly (request 23c449a7).
14
+ export { APPROVAL_METRIC_VOCABULARY } from "./metric-vocab";
11
15
  export { validatePreviewSummary, PII_PATTERNS, } from "./preview-validation";
12
16
  export { startApprovalConsumer, stopApprovalConsumer, defaultQueueName, _resetConsumerForTests, } from "./consumer";
13
17
  export { getApprovalMigrationSQL, splitStatements, } from "./migrations";
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,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;AA+BlB,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,SAAS,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,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;AA+BlB,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { MetricVocabularyRegistry } from "@nodii/telemetry";
2
+ /**
3
+ * The 8 locked `@nodii/approval` metric names (5 counters + 3 histograms)
4
+ * under families `request_handler` (request path) and `async_worker`
5
+ * (consumer path), per `approval.md § 5.15`. Merge into
6
+ * `initTelemetry({ vocabularyRegistry })`.
7
+ */
8
+ export declare const APPROVAL_METRIC_VOCABULARY: MetricVocabularyRegistry;
9
+ //# sourceMappingURL=metric-vocab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metric-vocab.d.ts","sourceRoot":"","sources":["../src/metric-vocab.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAKjE;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,wBA8DxC,CAAC"}
@@ -0,0 +1,96 @@
1
+ // The 8 locked `@nodii/approval` metrics per `approval.md § 5.15`. Wired
2
+ // through `@nodii/telemetry`'s vocabulary-bound `metrics.counter` /
3
+ // `metrics.histogram` API (see `telemetry-shim.ts`).
4
+ //
5
+ // Adopters merge this registry into their `initTelemetry({
6
+ // vocabularyRegistry })` call so the metric names `@nodii/approval` emits
7
+ // pass vocabulary validation instead of hand-authoring the entries:
8
+ //
9
+ // import { APPROVAL_METRIC_VOCABULARY } from "@nodii/approval";
10
+ // import { REPLICA_CONSUMER_VOCABULARY } from "@nodii/telemetry";
11
+ //
12
+ // initTelemetry({
13
+ // ...,
14
+ // vocabularyRegistry: {
15
+ // ...serviceVocab,
16
+ // ...APPROVAL_METRIC_VOCABULARY,
17
+ // ...REPLICA_CONSUMER_VOCABULARY,
18
+ // },
19
+ // });
20
+ //
21
+ // Without the registration `metrics.counter/histogram` throws
22
+ // `MetricVocabularyError`; the shim catches + warn-logs once per metric so
23
+ // the gap is visible (see `telemetry-shim.ts`). This export removes the
24
+ // per-adopter toil of re-declaring the names (request 23c449a7 from
25
+ // nodii-ticketing). Mirrors the lib-owned-vocab precedent in
26
+ // `ts/db-rls/src/metrics.ts` (`DB_RLS_METRIC_VOCABULARY`) and the locked
27
+ // `REPLICA_CONSUMER_VOCABULARY` in `ts/telemetry/src/types.ts`.
28
+ //
29
+ // `request_handler` (request-path) + `async_worker` (consumer-path) are
30
+ // both locked D18 `MetricFamily` values. The five counters + three
31
+ // histograms below match the `inc({...})` / `observe({...})` call sites in
32
+ // `request.ts` + `consumer.ts` byte-for-byte (name + family).
33
+ /** The ADR/spec section that gates these 8 metrics into the vocabulary. */
34
+ const DECISION = "approval.md § 5.15";
35
+ /**
36
+ * The 8 locked `@nodii/approval` metric names (5 counters + 3 histograms)
37
+ * under families `request_handler` (request path) and `async_worker`
38
+ * (consumer path), per `approval.md § 5.15`. Merge into
39
+ * `initTelemetry({ vocabularyRegistry })`.
40
+ */
41
+ export const APPROVAL_METRIC_VOCABULARY = {
42
+ // ── request path (family: request_handler) ──
43
+ approval_requested_total: {
44
+ family: "request_handler",
45
+ kind: "counter",
46
+ description: "Approval requests created via requestApproval(), labeled by service + kind (+ owner_service/requester_service for cross-owner requests per D231).",
47
+ decision: DECISION,
48
+ },
49
+ approval_self_action_total: {
50
+ family: "request_handler",
51
+ kind: "counter",
52
+ description: "Approval requests short-circuited because the requester is also the approver (self-action), labeled by service + kind.",
53
+ decision: DECISION,
54
+ },
55
+ approval_opt_in_disabled_total: {
56
+ family: "request_handler",
57
+ kind: "counter",
58
+ description: "Approval requests skipped because the tenant has approval opt-in disabled for the kind, labeled by service + kind.",
59
+ decision: DECISION,
60
+ },
61
+ approval_decision_duration_seconds: {
62
+ family: "request_handler",
63
+ kind: "histogram",
64
+ unit: "seconds",
65
+ description: "Wall-clock seconds from approval request creation to the decision outcome on the request path.",
66
+ decision: DECISION,
67
+ },
68
+ // ── consumer / async-worker path (family: async_worker) ──
69
+ approval_handler_failures_total: {
70
+ family: "async_worker",
71
+ kind: "counter",
72
+ description: "Approval handler failures on the request + consumer paths, labeled by service + kind + reason.",
73
+ decision: DECISION,
74
+ },
75
+ approval_completion_unknown_total: {
76
+ family: "async_worker",
77
+ kind: "counter",
78
+ description: "Completion events received by the consumer for an unknown/missing deferred-action id, labeled by service.",
79
+ decision: DECISION,
80
+ },
81
+ approval_consumer_lag_seconds: {
82
+ family: "async_worker",
83
+ kind: "histogram",
84
+ unit: "seconds",
85
+ description: "Wall-clock lag (seconds) between completion-event emission and consumer processing, labeled by service.",
86
+ decision: DECISION,
87
+ },
88
+ approval_execution_duration_seconds: {
89
+ family: "async_worker",
90
+ kind: "histogram",
91
+ unit: "seconds",
92
+ description: "Wall-clock seconds to execute the deferred action in the async consumer, labeled by service + kind.",
93
+ decision: DECISION,
94
+ },
95
+ };
96
+ //# sourceMappingURL=metric-vocab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metric-vocab.js","sourceRoot":"","sources":["../src/metric-vocab.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,oEAAoE;AACpE,qDAAqD;AACrD,EAAE;AACF,2DAA2D;AAC3D,0EAA0E;AAC1E,oEAAoE;AACpE,EAAE;AACF,kEAAkE;AAClE,oEAAoE;AACpE,EAAE;AACF,oBAAoB;AACpB,WAAW;AACX,4BAA4B;AAC5B,yBAAyB;AACzB,uCAAuC;AACvC,wCAAwC;AACxC,SAAS;AACT,QAAQ;AACR,EAAE;AACF,8DAA8D;AAC9D,2EAA2E;AAC3E,wEAAwE;AACxE,oEAAoE;AACpE,6DAA6D;AAC7D,yEAAyE;AACzE,gEAAgE;AAChE,EAAE;AACF,wEAAwE;AACxE,mEAAmE;AACnE,2EAA2E;AAC3E,8DAA8D;AAI9D,2EAA2E;AAC3E,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAA6B;IAClE,+CAA+C;IAC/C,wBAAwB,EAAE;QACxB,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,mJAAmJ;QACrJ,QAAQ,EAAE,QAAQ;KACnB;IACD,0BAA0B,EAAE;QAC1B,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,wHAAwH;QAC1H,QAAQ,EAAE,QAAQ;KACnB;IACD,8BAA8B,EAAE;QAC9B,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,oHAAoH;QACtH,QAAQ,EAAE,QAAQ;KACnB;IACD,kCAAkC,EAAE;QAClC,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,gGAAgG;QAClG,QAAQ,EAAE,QAAQ;KACnB;IACD,4DAA4D;IAC5D,+BAA+B,EAAE;QAC/B,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,gGAAgG;QAClG,QAAQ,EAAE,QAAQ;KACnB;IACD,iCAAiC,EAAE;QACjC,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,2GAA2G;QAC7G,QAAQ,EAAE,QAAQ;KACnB;IACD,6BAA6B,EAAE;QAC7B,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,yGAAyG;QAC3G,QAAQ,EAAE,QAAQ;KACnB;IACD,mCAAmC,EAAE;QACnC,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,qGAAqG;QACvG,QAAQ,EAAE,QAAQ;KACnB;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nodii/approval",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
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",
@@ -40,7 +40,7 @@
40
40
  "devDependencies": {
41
41
  "@nodii/audit-chain": "0.4.2",
42
42
  "@nodii/grpc-auth": "0.5.1",
43
- "@nodii/idempotency": "0.3.1",
43
+ "@nodii/idempotency": "0.4.0",
44
44
  "@nodii/role-catalog": "0.1.7",
45
45
  "@nodii/telemetry": "0.5.2",
46
46
  "@grpc/grpc-js": "^1.13.0",
@@ -58,7 +58,7 @@
58
58
  "dependencies": {
59
59
  "@nodii/audit-chain": "0.4.2",
60
60
  "@nodii/grpc-auth": "0.5.1",
61
- "@nodii/idempotency": "0.3.1",
61
+ "@nodii/idempotency": "0.4.0",
62
62
  "@nodii/role-catalog": "0.1.7",
63
63
  "@nodii/telemetry": "0.5.2"
64
64
  }