@substrat-run/kernel 0.141.0 → 0.143.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/async-invocation-log.d.ts +1 -1
- package/dist/async-invocation-log.d.ts.map +1 -1
- package/dist/async-invocation-log.js +1 -1
- package/dist/async-invocation-log.js.map +1 -1
- package/dist/attachment-extractor.d.ts +0 -9
- package/dist/attachment-extractor.d.ts.map +1 -1
- package/dist/attachment-extractor.js +2 -2
- package/dist/attachment-extractor.js.map +1 -1
- package/dist/attachment-text.d.ts +0 -5
- package/dist/attachment-text.d.ts.map +1 -1
- package/dist/attachment-text.js +0 -4
- package/dist/attachment-text.js.map +1 -1
- package/dist/attribution.d.ts +0 -7
- package/dist/attribution.d.ts.map +1 -1
- package/dist/attribution.js +0 -7
- package/dist/attribution.js.map +1 -1
- package/dist/audit-outcome.d.ts +60 -2
- package/dist/audit-outcome.d.ts.map +1 -1
- package/dist/audit-outcome.js +63 -3
- package/dist/audit-outcome.js.map +1 -1
- package/dist/capability.d.ts +123 -14
- package/dist/capability.d.ts.map +1 -1
- package/dist/capability.js +266 -16
- package/dist/capability.js.map +1 -1
- package/dist/connector-calls.d.ts +3 -77
- package/dist/connector-calls.d.ts.map +1 -1
- package/dist/connector-calls.js +4 -63
- package/dist/connector-calls.js.map +1 -1
- package/dist/denial-query.d.ts +0 -14
- package/dist/denial-query.d.ts.map +1 -1
- package/dist/denial-query.js +1 -1
- package/dist/denial-query.js.map +1 -1
- package/dist/derived-handlers.d.ts +17 -0
- package/dist/derived-handlers.d.ts.map +1 -0
- package/dist/derived-handlers.js +106 -0
- package/dist/derived-handlers.js.map +1 -0
- package/dist/entity-grant-shape.d.ts +79 -7
- package/dist/entity-grant-shape.d.ts.map +1 -1
- package/dist/entity-grant-shape.js +177 -74
- package/dist/entity-grant-shape.js.map +1 -1
- package/dist/entity-grant.d.ts +0 -5
- package/dist/entity-grant.d.ts.map +1 -1
- package/dist/entity-grant.js +0 -4
- package/dist/entity-grant.js.map +1 -1
- package/dist/entity-state.d.ts +0 -17
- package/dist/entity-state.d.ts.map +1 -1
- package/dist/entity-state.js +2 -2
- package/dist/entity-state.js.map +1 -1
- package/dist/entity-trash.d.ts +2 -2
- package/dist/entity-trash.d.ts.map +1 -1
- package/dist/entity-trash.js +6 -6
- package/dist/entity-trash.js.map +1 -1
- package/dist/grant-scoped-read.d.ts +0 -2
- package/dist/grant-scoped-read.d.ts.map +1 -1
- package/dist/grant-scoped-read.js +2 -2
- package/dist/grant-scoped-read.js.map +1 -1
- package/dist/index.d.ts +58 -139
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -107
- package/dist/index.js.map +1 -1
- package/dist/invocation-line.d.ts +211 -0
- package/dist/invocation-line.d.ts.map +1 -0
- package/dist/invocation-line.js +33 -0
- package/dist/invocation-line.js.map +1 -0
- package/dist/job-run.d.ts +0 -39
- package/dist/job-run.d.ts.map +1 -1
- package/dist/job-run.js +6 -6
- package/dist/job-run.js.map +1 -1
- package/dist/list-index.d.ts +0 -45
- package/dist/list-index.d.ts.map +1 -1
- package/dist/list-index.js +2 -39
- package/dist/list-index.js.map +1 -1
- package/dist/membership-executor.d.ts +2 -1
- package/dist/membership-executor.d.ts.map +1 -1
- package/dist/membership-executor.js +1 -1
- package/dist/membership-executor.js.map +1 -1
- package/dist/meters.d.ts +21 -1
- package/dist/meters.d.ts.map +1 -1
- package/dist/meters.js +0 -0
- package/dist/meters.js.map +1 -1
- package/dist/migration-digest.d.ts +0 -12
- package/dist/migration-digest.d.ts.map +1 -1
- package/dist/migration-digest.js +1 -1
- package/dist/migration-digest.js.map +1 -1
- package/dist/module-log.d.ts +5 -4
- package/dist/module-log.d.ts.map +1 -1
- package/dist/module-log.js +5 -4
- package/dist/module-log.js.map +1 -1
- package/dist/module-operations.d.ts +146 -0
- package/dist/module-operations.d.ts.map +1 -0
- package/dist/module-operations.js +174 -0
- package/dist/module-operations.js.map +1 -0
- package/dist/peer.d.ts +0 -2
- package/dist/peer.d.ts.map +1 -1
- package/dist/peer.js +0 -4
- package/dist/peer.js.map +1 -1
- package/dist/permission-checker.d.ts +23 -0
- package/dist/permission-checker.d.ts.map +1 -1
- package/dist/permission-checker.js.map +1 -1
- package/dist/permission-eval.d.ts.map +1 -1
- package/dist/permission-eval.js +77 -21
- package/dist/permission-eval.js.map +1 -1
- package/dist/platform-request-query.d.ts +6 -6
- package/dist/platform-request-query.d.ts.map +1 -1
- package/dist/platform-request-query.js +23 -7
- package/dist/platform-request-query.js.map +1 -1
- package/dist/platform-sweep.d.ts +107 -3
- package/dist/platform-sweep.d.ts.map +1 -1
- package/dist/platform-sweep.js +131 -2
- package/dist/platform-sweep.js.map +1 -1
- package/dist/refusal-query.d.ts +0 -11
- package/dist/refusal-query.d.ts.map +1 -1
- package/dist/refusal-query.js +1 -1
- package/dist/refusal-query.js.map +1 -1
- package/dist/refusals.d.ts +1 -3
- package/dist/refusals.d.ts.map +1 -1
- package/dist/refusals.js +0 -2
- package/dist/refusals.js.map +1 -1
- package/dist/row-decode.d.ts +16 -1
- package/dist/row-decode.d.ts.map +1 -1
- package/dist/row-decode.js +18 -6
- package/dist/row-decode.js.map +1 -1
- package/dist/scope-copy-ledger.d.ts +49 -2
- package/dist/scope-copy-ledger.d.ts.map +1 -1
- package/dist/scope-copy-ledger.js +44 -1
- package/dist/scope-copy-ledger.js.map +1 -1
- package/dist/scope-host.d.ts +100 -110
- package/dist/scope-host.d.ts.map +1 -1
- package/dist/scope-host.js +0 -17
- package/dist/scope-host.js.map +1 -1
- package/dist/scope-lifecycle.d.ts +0 -21
- package/dist/scope-lifecycle.d.ts.map +1 -1
- package/dist/scope-lifecycle.js +1 -1
- package/dist/scope-lifecycle.js.map +1 -1
- package/dist/scope-role-admin.d.ts +0 -6
- package/dist/scope-role-admin.d.ts.map +1 -1
- package/dist/scope-role-admin.js +1 -1
- package/dist/scope-role-admin.js.map +1 -1
- package/dist/search-index.d.ts +0 -23
- package/dist/search-index.d.ts.map +1 -1
- package/dist/search-index.js +2 -24
- package/dist/search-index.js.map +1 -1
- package/dist/spine-restore.d.ts +0 -22
- package/dist/spine-restore.d.ts.map +1 -1
- package/dist/spine-restore.js +2 -2
- package/dist/spine-restore.js.map +1 -1
- package/dist/sql-limits.d.ts +4 -0
- package/dist/sql-limits.d.ts.map +1 -1
- package/dist/sql-limits.js +4 -0
- package/dist/sql-limits.js.map +1 -1
- package/dist/storage-gauge.d.ts +125 -0
- package/dist/storage-gauge.d.ts.map +1 -0
- package/dist/storage-gauge.js +234 -0
- package/dist/storage-gauge.js.map +1 -0
- package/dist/subject-redaction.d.ts +0 -38
- package/dist/subject-redaction.d.ts.map +1 -1
- package/dist/subject-redaction.js +4 -4
- package/dist/subject-redaction.js.map +1 -1
- package/dist/system-switch-record.d.ts +0 -4
- package/dist/system-switch-record.d.ts.map +1 -1
- package/dist/system-switch-record.js +2 -2
- package/dist/system-switch-record.js.map +1 -1
- package/dist/system-switch.d.ts +0 -23
- package/dist/system-switch.d.ts.map +1 -1
- package/dist/system-switch.js +1 -1
- package/dist/system-switch.js.map +1 -1
- package/dist/table-ownership.d.ts +0 -32
- package/dist/table-ownership.d.ts.map +1 -1
- package/dist/table-ownership.js +5 -5
- package/dist/table-ownership.js.map +1 -1
- package/dist/testing.d.ts +17 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +15 -0
- package/dist/testing.js.map +1 -0
- package/dist/vertical-events.d.ts +1 -7
- package/dist/vertical-events.d.ts.map +1 -1
- package/dist/vertical-events.js +2 -10
- package/dist/vertical-events.js.map +1 -1
- package/package.json +14 -2
- package/dist/invocation-log.d.ts +0 -447
- package/dist/invocation-log.d.ts.map +0 -1
- package/dist/invocation-log.js +0 -410
- package/dist/invocation-log.js.map +0 -1
- package/dist/platform-call.d.ts +0 -45
- package/dist/platform-call.d.ts.map +0 -1
- package/dist/platform-call.js +0 -63
- package/dist/platform-call.js.map +0 -1
- package/dist/provider-error.d.ts +0 -38
- package/dist/provider-error.d.ts.map +0 -1
- package/dist/provider-error.js +0 -65
- package/dist/provider-error.js.map +0 -1
- package/dist/routed-node.d.ts +0 -87
- package/dist/routed-node.d.ts.map +0 -1
- package/dist/routed-node.js +0 -67
- package/dist/routed-node.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-digest.js","sourceRoot":"","sources":["../src/migration-digest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAqB,MAAM,iBAAiB,CAAC;AAKtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,gBAAgB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,MAAM,uBAAuB,GAAG,QAAQ,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,gFAAgF,CAAC;AAE7H;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;CAWzC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,
|
|
1
|
+
{"version":3,"file":"migration-digest.js","sourceRoot":"","sources":["../src/migration-digest.ts"],"names":[],"mappings":"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"}
|
package/dist/module-log.d.ts
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* ## Why module code needs one
|
|
5
5
|
*
|
|
6
|
-
* The invocation line (`invocation-
|
|
7
|
-
* who ran it, how it ended. A vertical's own
|
|
8
|
-
* that. It is reachable only by correlating
|
|
9
|
-
* by operation, and it is free text, so
|
|
6
|
+
* The invocation line (`invocation-line.ts`, which vertical-host writes per request) is the
|
|
7
|
+
* per-request record: which operation ran, who ran it, how it ended. A vertical's own
|
|
8
|
+
* `console.log` inside a handler carries none of that. It is reachable only by correlating
|
|
9
|
+
* out from the stamped line, it cannot be filtered by operation, and it is free text, so
|
|
10
|
+
* similar lines can only be grouped by guessing.
|
|
10
11
|
*
|
|
11
12
|
* `ctx.log` writes the line with the fields already on it — tenant, scope, operation,
|
|
12
13
|
* invocation, who it ran as — and with the TEMPLATE it was written from:
|
package/dist/module-log.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-log.d.ts","sourceRoot":"","sources":["../src/module-log.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"module-log.d.ts","sourceRoot":"","sources":["../src/module-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,8DAA8D;AAC9D,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjE,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAEnE,0CAA0C;AAC1C,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAE5E,0EAA0E;AAC1E,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACxD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACvD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACvD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CACzD;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,8FAA8F;IAC9F,QAAQ,EAAE,KAAK,CAAC;IAChB,KAAK,EAAE,cAAc,CAAC;IACtB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,wGAAwG;IACxG,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,qFAAqF;IACrF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,4FAA4F;IAC5F,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;AAE1D,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB;aAC5B,QAAQ,EAAE,GAAG;aACb,OAAO,EAAE,IAAI;aACb,MAAM,EAAE,EAAE;aACV,KAAK,EAAE,IAAI;CACH,CAAC;AAcX;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,aAM5B,CAAC;AAsBF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAI9G;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,0FAA0F;IAC1F,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC;AAED,+FAA+F;AAC/F,wBAAgB,aAAa,CAC3B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,OAAO,GACb,aAAa,CAmCf;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,GAAE,aAA8B,GAAG,SAAS,CAShG"}
|
package/dist/module-log.js
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* ## Why module code needs one
|
|
5
5
|
*
|
|
6
|
-
* The invocation line (`invocation-
|
|
7
|
-
* who ran it, how it ended. A vertical's own
|
|
8
|
-
* that. It is reachable only by correlating
|
|
9
|
-
* by operation, and it is free text, so
|
|
6
|
+
* The invocation line (`invocation-line.ts`, which vertical-host writes per request) is the
|
|
7
|
+
* per-request record: which operation ran, who ran it, how it ended. A vertical's own
|
|
8
|
+
* `console.log` inside a handler carries none of that. It is reachable only by correlating
|
|
9
|
+
* out from the stamped line, it cannot be filtered by operation, and it is free text, so
|
|
10
|
+
* similar lines can only be grouped by guessing.
|
|
10
11
|
*
|
|
11
12
|
* `ctx.log` writes the line with the fields already on it — tenant, scope, operation,
|
|
12
13
|
* invocation, who it ran as — and with the TEMPLATE it was written from:
|
package/dist/module-log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-log.js","sourceRoot":"","sources":["../src/module-log.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"module-log.js","sourceRoot":"","sources":["../src/module-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The handler map a module registers, joined to its declaration by a type (#1835).
|
|
3
|
+
*
|
|
4
|
+
* `ModuleRegistration.operations` used to be a `Record<string, OperationHandler<never, unknown>>`,
|
|
5
|
+
* which accepts any handler under any name, and the schemas the host parses with were a second
|
|
6
|
+
* field nothing tied to it. What held the two to the module's declared operations was a text
|
|
7
|
+
* rule looking for a `satisfies` clause — and a `satisfies` is invisible to every test, so
|
|
8
|
+
* deleting one compiled and passed exactly like keeping it (#959).
|
|
9
|
+
*
|
|
10
|
+
* Now the field takes `BoundOperations` — the handlers and the maps derived from their
|
|
11
|
+
* declaration, as one value — which only two functions produce:
|
|
12
|
+
*
|
|
13
|
+
* - `operationsFor(declaration)(handlers)` — the handlers are held EXACTLY to the declaration
|
|
14
|
+
* (a missing, extra, mistyped or cast entry is a compile error), and the input schemas, the
|
|
15
|
+
* concurrency map and the idempotency opt-outs come from the same object, so "the same
|
|
16
|
+
* declaration" holds by construction rather than by a reviewer comparing two identifiers.
|
|
17
|
+
* - `undeclaredOperations(reason, handlers)` — the exception, for a module that declares no
|
|
18
|
+
* operation surface at all, and it has to say why.
|
|
19
|
+
*
|
|
20
|
+
* A plain object literal no longer compiles, which is the point: binding a declared module by
|
|
21
|
+
* hand is not a shape that can be written by accident. What the type cannot see is an `as`
|
|
22
|
+
* applied to the whole map, since `never` and `any` are assignable to anything; boundary-lint
|
|
23
|
+
* **R11** refuses that at the registration.
|
|
24
|
+
*
|
|
25
|
+
* The brand is an ES-private field, so it holds at run time as well: both adapters refuse an
|
|
26
|
+
* `operations` value the binder did not make (`assertBoundOperations`).
|
|
27
|
+
*/
|
|
28
|
+
import { type DerivedKeys, type OperationImpl } from '@substrat-run/contracts';
|
|
29
|
+
import type { OperationContext, OperationHandler } from './scope-host.js';
|
|
30
|
+
/** name → handler, as the host reads it. */
|
|
31
|
+
export type HandlerMap = Readonly<Record<string, OperationHandler<never, unknown>>>;
|
|
32
|
+
/** The derived maps, as the constructor takes them. */
|
|
33
|
+
interface DerivedMaps {
|
|
34
|
+
readonly inputs?: Readonly<Record<string, {
|
|
35
|
+
parse(value: unknown): unknown;
|
|
36
|
+
}>>;
|
|
37
|
+
readonly concurrency?: Readonly<Record<string, {
|
|
38
|
+
entity: string;
|
|
39
|
+
idFrom: string;
|
|
40
|
+
}>>;
|
|
41
|
+
readonly idempotencyOptOuts?: readonly string[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The key to the constructor. Module-private to the kernel: `operationsFor`,
|
|
45
|
+
* `undeclaredOperations` and the test seam in `./testing` hold it, and nothing a module can
|
|
46
|
+
* import does. Exported from this file only so `testing.ts` can reach it — never from the index.
|
|
47
|
+
*/
|
|
48
|
+
export declare const MINT: unique symbol;
|
|
49
|
+
/**
|
|
50
|
+
* Everything a module hands the host about its operations, in one value only `operationsFor` and
|
|
51
|
+
* `undeclaredOperations` produce — never written by hand.
|
|
52
|
+
*
|
|
53
|
+
* The handlers and the three maps derived from their declaration travel together, so a
|
|
54
|
+
* registration cannot carry one without the others or pair a handler map with another
|
|
55
|
+
* declaration's schemas. `H` keeps each handler's own type, so a module can still call one.
|
|
56
|
+
*
|
|
57
|
+
* **A class with an ES-private brand, so a copy is not one** (#2155 review). A symbol-keyed brand
|
|
58
|
+
* survives an object spread, so `{ ...bound, inputs: undefined }` type-checked as the bound value
|
|
59
|
+
* with its schemas gone. A `#private` field is nominal to TypeScript and absent from any copy, so
|
|
60
|
+
* that spread does not compile. At run time the adapters ask for `BRAND` instead, which a spread,
|
|
61
|
+
* `Object.assign` or a literal does not carry either, so they refuse such a copy at registration
|
|
62
|
+
* too. (The field cannot be the run-time check: it is private to one copy of this class, and a
|
|
63
|
+
* process can hold two — a test that resets its modules does, and #2155's suite found one.)
|
|
64
|
+
*/
|
|
65
|
+
export declare class BoundOperations<H = HandlerMap> {
|
|
66
|
+
#private;
|
|
67
|
+
/** name → handler. */
|
|
68
|
+
readonly handlers: H & HandlerMap;
|
|
69
|
+
/**
|
|
70
|
+
* name → the schema the host parses an invocation's input against, before the guards and the
|
|
71
|
+
* handler (#893). The map `operationInputsOf` returned, as returned: it also carries the
|
|
72
|
+
* declared surface the host derives its trash refusal from (#119). Absent for a module that
|
|
73
|
+
* declares no operations, where nothing is parsed.
|
|
74
|
+
*/
|
|
75
|
+
readonly inputs?: Readonly<Record<string, {
|
|
76
|
+
parse(value: unknown): unknown;
|
|
77
|
+
}>>;
|
|
78
|
+
/** name → the entity whose version an `If-Match` on that operation is compared against (#129). */
|
|
79
|
+
readonly concurrency?: Readonly<Record<string, {
|
|
80
|
+
entity: string;
|
|
81
|
+
idFrom: string;
|
|
82
|
+
}>>;
|
|
83
|
+
/** The operations that declared `idempotency: false`, and so refuse an `Idempotency-Key` (#116). */
|
|
84
|
+
readonly idempotencyOptOuts?: readonly string[];
|
|
85
|
+
constructor(mint: typeof MINT, handlers: H & HandlerMap, derived?: DerivedMaps);
|
|
86
|
+
/** Was this value made by the binder — not a copy, a spread or a literal shaped like one? */
|
|
87
|
+
static is(value: unknown): value is BoundOperations;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* The adapters' registration check: a module's `operations` is a value the binder made, or the
|
|
91
|
+
* module does not register. A copy has no brand; nor does one made by a second copy of the kernel,
|
|
92
|
+
* which is the same refusal for the same reason — its maps are not the ones this host can trust.
|
|
93
|
+
*/
|
|
94
|
+
export declare function assertBoundOperations(moduleId: string, operations: unknown): asserts operations is BoundOperations | undefined;
|
|
95
|
+
type IsAny<T> = 0 extends 1 & T ? true : false;
|
|
96
|
+
/** Does this function type take or return `any` anywhere a handler's contract lives? */
|
|
97
|
+
type TypedLoosely<F> = F extends (...args: infer P) => infer R ? true extends IsAny<R> | IsAny<Awaited<R>> | {
|
|
98
|
+
[I in keyof P]: IsAny<P[I]>;
|
|
99
|
+
}[number] ? true : false : false;
|
|
100
|
+
/**
|
|
101
|
+
* The keys whose handler type was erased at the map: an entry cast `as never` or `as any`, or one
|
|
102
|
+
* whose parameters or return are `any` — `addOp as (...a: any[]) => any`, or an untyped
|
|
103
|
+
* `(c: any, i: any) => i`, which `OperationImpl` accepts because `any` fits every slot.
|
|
104
|
+
*/
|
|
105
|
+
type ErasedKeys<H> = {
|
|
106
|
+
[K in keyof H]-?: IsAny<H[K]> extends true ? K : [H[K]] extends [never] ? K : TypedLoosely<H[K]> extends true ? K : never;
|
|
107
|
+
}[keyof H];
|
|
108
|
+
/**
|
|
109
|
+
* What the handler map must also be, beyond `OperationImpl`: no key the declaration does not
|
|
110
|
+
* name, and no entry whose type was erased. An erased entry is assignable to any slot, so it
|
|
111
|
+
* cannot be refused AT the slot; it is refused by demanding a property the literal does not have.
|
|
112
|
+
*/
|
|
113
|
+
type Exact<Ops, H> = {
|
|
114
|
+
readonly [K in Exclude<keyof H, keyof Ops>]: never;
|
|
115
|
+
} & ([ErasedKeys<H>] extends [never] ? unknown : {
|
|
116
|
+
readonly 'a handler type was erased with a cast': ErasedKeys<H>;
|
|
117
|
+
});
|
|
118
|
+
/**
|
|
119
|
+
* Bind a module's handlers to its declared operations.
|
|
120
|
+
*
|
|
121
|
+
* ```ts
|
|
122
|
+
* export const todoModule: ModuleRegistration = {
|
|
123
|
+
* manifest: todoManifest,
|
|
124
|
+
* migrations: todoMigrations,
|
|
125
|
+
* ...operationsFor(todoOperations)({
|
|
126
|
+
* 'todo/add': addOp,
|
|
127
|
+
* …
|
|
128
|
+
* }),
|
|
129
|
+
* };
|
|
130
|
+
* ```
|
|
131
|
+
*
|
|
132
|
+
* Curried, like `consumersFor`, so the declaration is inferred before the handlers are checked
|
|
133
|
+
* against it.
|
|
134
|
+
*/
|
|
135
|
+
export declare function operationsFor<const Ops extends Record<string, object>>(declaration: Ops): <const H extends OperationImpl<Ops, OperationContext>>(handlers: H & Exact<Omit<Ops, DerivedKeys<Ops>>, H>) => {
|
|
136
|
+
operations: BoundOperations<H>;
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* The declared exception: a module whose operations have no declaration to bind to, so the
|
|
140
|
+
* host parses nothing for them. The reason is required, and is what a reviewer reads.
|
|
141
|
+
*/
|
|
142
|
+
export declare function undeclaredOperations(reason: string, handlers: HandlerMap): {
|
|
143
|
+
operations: BoundOperations;
|
|
144
|
+
};
|
|
145
|
+
export {};
|
|
146
|
+
//# sourceMappingURL=module-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-operations.d.ts","sourceRoot":"","sources":["../src/module-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The handler map a module registers, joined to its declaration by a type (#1835).
|
|
3
|
+
*
|
|
4
|
+
* `ModuleRegistration.operations` used to be a `Record<string, OperationHandler<never, unknown>>`,
|
|
5
|
+
* which accepts any handler under any name, and the schemas the host parses with were a second
|
|
6
|
+
* field nothing tied to it. What held the two to the module's declared operations was a text
|
|
7
|
+
* rule looking for a `satisfies` clause — and a `satisfies` is invisible to every test, so
|
|
8
|
+
* deleting one compiled and passed exactly like keeping it (#959).
|
|
9
|
+
*
|
|
10
|
+
* Now the field takes `BoundOperations` — the handlers and the maps derived from their
|
|
11
|
+
* declaration, as one value — which only two functions produce:
|
|
12
|
+
*
|
|
13
|
+
* - `operationsFor(declaration)(handlers)` — the handlers are held EXACTLY to the declaration
|
|
14
|
+
* (a missing, extra, mistyped or cast entry is a compile error), and the input schemas, the
|
|
15
|
+
* concurrency map and the idempotency opt-outs come from the same object, so "the same
|
|
16
|
+
* declaration" holds by construction rather than by a reviewer comparing two identifiers.
|
|
17
|
+
* - `undeclaredOperations(reason, handlers)` — the exception, for a module that declares no
|
|
18
|
+
* operation surface at all, and it has to say why.
|
|
19
|
+
*
|
|
20
|
+
* A plain object literal no longer compiles, which is the point: binding a declared module by
|
|
21
|
+
* hand is not a shape that can be written by accident. What the type cannot see is an `as`
|
|
22
|
+
* applied to the whole map, since `never` and `any` are assignable to anything; boundary-lint
|
|
23
|
+
* **R11** refuses that at the registration.
|
|
24
|
+
*
|
|
25
|
+
* The brand is an ES-private field, so it holds at run time as well: both adapters refuse an
|
|
26
|
+
* `operations` value the binder did not make (`assertBoundOperations`).
|
|
27
|
+
*/
|
|
28
|
+
import { derivationPlanOf, operationConcurrencyOf, operationIdempotencyOptOutsOf, operationInputsOf, } from '@substrat-run/contracts';
|
|
29
|
+
import { derivedHandler } from './derived-handlers.js';
|
|
30
|
+
/**
|
|
31
|
+
* The key to the constructor. Module-private to the kernel: `operationsFor`,
|
|
32
|
+
* `undeclaredOperations` and the test seam in `./testing` hold it, and nothing a module can
|
|
33
|
+
* import does. Exported from this file only so `testing.ts` can reach it — never from the index.
|
|
34
|
+
*/
|
|
35
|
+
export const MINT = Symbol('BoundOperations.mint');
|
|
36
|
+
/**
|
|
37
|
+
* The run-time mark, a REGISTERED symbol held as a non-enumerable own property. Registered, so a
|
|
38
|
+
* second copy of the kernel in one process — a bundle that resolved two, or a test that reset its
|
|
39
|
+
* module graph — recognises the binder's value; non-enumerable, so a spread, `Object.assign` or a
|
|
40
|
+
* structured clone leaves it behind, exactly as they leave the `#bound` field behind at compile time.
|
|
41
|
+
*/
|
|
42
|
+
const BRAND = Symbol.for('substrat.kernel.boundOperations');
|
|
43
|
+
/**
|
|
44
|
+
* Everything a module hands the host about its operations, in one value only `operationsFor` and
|
|
45
|
+
* `undeclaredOperations` produce — never written by hand.
|
|
46
|
+
*
|
|
47
|
+
* The handlers and the three maps derived from their declaration travel together, so a
|
|
48
|
+
* registration cannot carry one without the others or pair a handler map with another
|
|
49
|
+
* declaration's schemas. `H` keeps each handler's own type, so a module can still call one.
|
|
50
|
+
*
|
|
51
|
+
* **A class with an ES-private brand, so a copy is not one** (#2155 review). A symbol-keyed brand
|
|
52
|
+
* survives an object spread, so `{ ...bound, inputs: undefined }` type-checked as the bound value
|
|
53
|
+
* with its schemas gone. A `#private` field is nominal to TypeScript and absent from any copy, so
|
|
54
|
+
* that spread does not compile. At run time the adapters ask for `BRAND` instead, which a spread,
|
|
55
|
+
* `Object.assign` or a literal does not carry either, so they refuse such a copy at registration
|
|
56
|
+
* too. (The field cannot be the run-time check: it is private to one copy of this class, and a
|
|
57
|
+
* process can hold two — a test that resets its modules does, and #2155's suite found one.)
|
|
58
|
+
*/
|
|
59
|
+
export class BoundOperations {
|
|
60
|
+
#bound = true;
|
|
61
|
+
/** name → handler. */
|
|
62
|
+
handlers;
|
|
63
|
+
/**
|
|
64
|
+
* name → the schema the host parses an invocation's input against, before the guards and the
|
|
65
|
+
* handler (#893). The map `operationInputsOf` returned, as returned: it also carries the
|
|
66
|
+
* declared surface the host derives its trash refusal from (#119). Absent for a module that
|
|
67
|
+
* declares no operations, where nothing is parsed.
|
|
68
|
+
*/
|
|
69
|
+
inputs;
|
|
70
|
+
/** name → the entity whose version an `If-Match` on that operation is compared against (#129). */
|
|
71
|
+
concurrency;
|
|
72
|
+
/** The operations that declared `idempotency: false`, and so refuse an `Idempotency-Key` (#116). */
|
|
73
|
+
idempotencyOptOuts;
|
|
74
|
+
constructor(mint, handlers, derived = {}) {
|
|
75
|
+
if (mint !== MINT) {
|
|
76
|
+
throw new Error('BoundOperations: made by operationsFor or undeclaredOperations, never constructed directly');
|
|
77
|
+
}
|
|
78
|
+
Object.defineProperty(this, BRAND, { value: true });
|
|
79
|
+
// Frozen, all the way to what the adapters read (#2155 review): `readonly` does not stop
|
|
80
|
+
// `Object.assign(bound, { inputs: undefined })`, and an edit in place keeps the brand, so the
|
|
81
|
+
// value would register with its schemas gone or a handler added that nothing parses for.
|
|
82
|
+
// Frozen, each of those throws at module load — ES modules are strict.
|
|
83
|
+
this.handlers = Object.freeze({ ...handlers });
|
|
84
|
+
// In place, not copied: the map `operationInputsOf` returned is the key its declared surface
|
|
85
|
+
// is recorded under (#119), and it arrives frozen already. A test seam's map gets the same.
|
|
86
|
+
if (derived.inputs !== undefined)
|
|
87
|
+
this.inputs = Object.freeze(derived.inputs);
|
|
88
|
+
if (derived.concurrency !== undefined) {
|
|
89
|
+
this.concurrency = Object.freeze(Object.fromEntries(Object.entries(derived.concurrency).map(([name, at]) => [name, Object.freeze({ ...at })])));
|
|
90
|
+
}
|
|
91
|
+
if (derived.idempotencyOptOuts !== undefined)
|
|
92
|
+
this.idempotencyOptOuts = Object.freeze([...derived.idempotencyOptOuts]);
|
|
93
|
+
Object.freeze(this);
|
|
94
|
+
}
|
|
95
|
+
/** Was this value made by the binder — not a copy, a spread or a literal shaped like one? */
|
|
96
|
+
static is(value) {
|
|
97
|
+
return typeof value === 'object' && value !== null && Object.prototype.hasOwnProperty.call(value, BRAND);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The adapters' registration check: a module's `operations` is a value the binder made, or the
|
|
102
|
+
* module does not register. A copy has no brand; nor does one made by a second copy of the kernel,
|
|
103
|
+
* which is the same refusal for the same reason — its maps are not the ones this host can trust.
|
|
104
|
+
*/
|
|
105
|
+
export function assertBoundOperations(moduleId, operations) {
|
|
106
|
+
if (operations === undefined || BoundOperations.is(operations))
|
|
107
|
+
return;
|
|
108
|
+
throw new Error(`${moduleId}: \`operations\` is not a value operationsFor or undeclaredOperations made — a copy, a spread ` +
|
|
109
|
+
'or a literal shaped like one carries maps nothing bound to the handlers (or the module was built ' +
|
|
110
|
+
'against a second copy of @substrat-run/kernel).\n Remedy: `...operationsFor(ops)({ … })`, as returned.');
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Bind a module's handlers to its declared operations.
|
|
114
|
+
*
|
|
115
|
+
* ```ts
|
|
116
|
+
* export const todoModule: ModuleRegistration = {
|
|
117
|
+
* manifest: todoManifest,
|
|
118
|
+
* migrations: todoMigrations,
|
|
119
|
+
* ...operationsFor(todoOperations)({
|
|
120
|
+
* 'todo/add': addOp,
|
|
121
|
+
* …
|
|
122
|
+
* }),
|
|
123
|
+
* };
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
126
|
+
* Curried, like `consumersFor`, so the declaration is inferred before the handlers are checked
|
|
127
|
+
* against it.
|
|
128
|
+
*/
|
|
129
|
+
export function operationsFor(declaration) {
|
|
130
|
+
return (handlers) => ({
|
|
131
|
+
operations: new BoundOperations(MINT, withDerivedHandlers(declaration, handlers), {
|
|
132
|
+
inputs: operationInputsOf(declaration),
|
|
133
|
+
concurrency: operationConcurrencyOf(declaration),
|
|
134
|
+
idempotencyOptOuts: operationIdempotencyOptOutsOf(declaration),
|
|
135
|
+
}),
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* The authored handlers, plus one written from each `derive` declaration's plan (#1773).
|
|
140
|
+
*
|
|
141
|
+
* The type already leaves a derived key out of the map it accepts; this is the runtime half, for
|
|
142
|
+
* the map that reached here through a cast. A handler handed to a derived operation is refused
|
|
143
|
+
* rather than preferred, since a hand-written one standing in silently for the derived one is the
|
|
144
|
+
* restatement `derive` exists to remove.
|
|
145
|
+
*/
|
|
146
|
+
function withDerivedHandlers(declaration, handlers) {
|
|
147
|
+
const out = { ...handlers };
|
|
148
|
+
for (const [name, op] of Object.entries(declaration)) {
|
|
149
|
+
if (op.derive === undefined)
|
|
150
|
+
continue;
|
|
151
|
+
if (Object.hasOwn(out, name)) {
|
|
152
|
+
throw new Error(`operationsFor: '${name}' is derived (\`derive\`) and must not be handed a handler — delete it, ` +
|
|
153
|
+
'or declare `authored` in place of `derive`');
|
|
154
|
+
}
|
|
155
|
+
const plan = derivationPlanOf(op);
|
|
156
|
+
if (plan === undefined) {
|
|
157
|
+
throw new Error(`operationsFor: '${name}' declares \`derive\`, but its declaration did not pass through ` +
|
|
158
|
+
'`defineOperations`, which is what decides whether it is derivable');
|
|
159
|
+
}
|
|
160
|
+
out[name] = derivedHandler(plan);
|
|
161
|
+
}
|
|
162
|
+
// The authored handlers keep their types; the derived ones are keys `H` never named.
|
|
163
|
+
return out;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* The declared exception: a module whose operations have no declaration to bind to, so the
|
|
167
|
+
* host parses nothing for them. The reason is required, and is what a reviewer reads.
|
|
168
|
+
*/
|
|
169
|
+
export function undeclaredOperations(reason, handlers) {
|
|
170
|
+
if (reason.trim() === '')
|
|
171
|
+
throw new Error('undeclaredOperations: give the reason this module declares no operations');
|
|
172
|
+
return { operations: new BoundOperations(MINT, handlers) };
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=module-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-operations.js","sourceRoot":"","sources":["../src/module-operations.ts"],"names":[],"mappings":"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"}
|
package/dist/peer.d.ts
CHANGED
|
@@ -97,8 +97,6 @@ export declare function switchPeer(db: SwitchSql, input: {
|
|
|
97
97
|
tenantHeld?: boolean;
|
|
98
98
|
fence?: string;
|
|
99
99
|
}): SwitchOutcome;
|
|
100
|
-
/** Is this peer switched off on the scope `db` is? */
|
|
101
|
-
export declare function peerSwitchedOff(db: SwitchSql, vertical: string): boolean;
|
|
102
100
|
/** One peer's position on one scope, as `peerGrantsStatus` enumerates them. */
|
|
103
101
|
export interface PeerGrantsRow {
|
|
104
102
|
vertical: string;
|
package/dist/peer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../src/peer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,mBAAmB,EAEnB,cAAc,EAId,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC;AAE/C,wFAAwF;AACxF,eAAO,MAAM,iBAAiB,0XAU7B,CAAC;AAEF,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC3C;AACD,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC;IAAE,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;CAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAe/G;AAED,iFAAiF;AACjF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAQ9E;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,YAAY,CAuBd;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,SAAS,EACb,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,GAAG,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/G,aAAa,CAGf;AAED
|
|
1
|
+
{"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../src/peer.ts"],"names":[],"mappings":"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"}
|
package/dist/peer.js
CHANGED
|
@@ -126,10 +126,6 @@ export function switchPeer(db, input) {
|
|
|
126
126
|
const { vertical, ...rest } = input;
|
|
127
127
|
return moveSwitch(db, 'peer', { key: vertical, ...rest });
|
|
128
128
|
}
|
|
129
|
-
/** Is this peer switched off on the scope `db` is? */
|
|
130
|
-
export function peerSwitchedOff(db, vertical) {
|
|
131
|
-
return subjectSwitchedOff(db, peerSubjectRef(vertical));
|
|
132
|
-
}
|
|
133
129
|
/**
|
|
134
130
|
* Every peer this scope holds or has held grants for, and where each stands (#1706) — the
|
|
135
131
|
* read half of the kill switch, and `systemGrantsStatus`'s shape with the subject swapped.
|
package/dist/peer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer.js","sourceRoot":"","sources":["../src/peer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EACL,aAAa,GASd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,GAGX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC;AAE/C,wFAAwF;AACxF,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;CAUhC,CAAC;AAYF;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,SAAoD;IAC/E,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmF,CAAC;IACvG,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,GAAG,EAAU;gBAC7B,WAAW,EAAE,IAAI,GAAG,EAAU;aAC/B,CAAC;YACF,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU;gBAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW;gBAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AASD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAuB,EAAE,OAAe;IAChE,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC5F,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,UAAU,EAAE,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,CAAC,CAAC;QACtH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACvB,EAAa,EACb,KAAuB,EACvB,MAAsB,EACtB,SAAwB;IAExB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,aAAa,CACjB,WAAW,EACX,aAAa,MAAM,CAAC,QAAQ,oEAAoE;YAC9F,8EAA8E,CACjF,CAAC;IACJ,CAAC;IACD,IAAI,kBAAkB,CAAC,EAAE,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,aAAa,CACjB,WAAW,EACX,aAAa,MAAM,CAAC,QAAQ,kEAAkE,CAC/F,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,MAAM,aAAa,CACjB,WAAW,EACX,aAAa,MAAM,CAAC,QAAQ,qBAAqB,SAAS,qCAAqC;YAC7F,iDAAiD,CACpD,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AACxE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CACxB,EAAa,EACb,KAAgH;IAEhH,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACpC,OAAO,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;
|
|
1
|
+
{"version":3,"file":"peer.js","sourceRoot":"","sources":["../src/peer.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,29 @@ export interface PermissionChecker {
|
|
|
49
49
|
* refusal a person can act on names them.
|
|
50
50
|
*/
|
|
51
51
|
covers(subject: CheckSubject, required: readonly PermissionKey[], node: Node): Promise<Coverage>;
|
|
52
|
+
/**
|
|
53
|
+
* What `subject` holds at `node` (#1686): every permission it holds at the node itself — the
|
|
54
|
+
* set `covers` compares against — and every live entity-narrowed grant it holds in the scope,
|
|
55
|
+
* each through the same subject expansion (its orgs included). What the bound on minting a
|
|
56
|
+
* `become` capability reads about the principal being become.
|
|
57
|
+
*
|
|
58
|
+
* Optional for a pluggable checker; an absent implementation makes that bound refuse.
|
|
59
|
+
*/
|
|
60
|
+
holdings?(subject: CheckSubject, node: Node): Promise<Holdings>;
|
|
61
|
+
}
|
|
62
|
+
/** What `PermissionChecker.holdings` answers. */
|
|
63
|
+
export interface Holdings {
|
|
64
|
+
/** Held at the node (scope or tenant level), roles expanded, deduplicated — what `covers` compares. */
|
|
65
|
+
permissions: PermissionKey[];
|
|
66
|
+
/** The role keys held at the node, as assigned — unexpanded, deduplicated. */
|
|
67
|
+
roles: string[];
|
|
68
|
+
/** The permissions granted directly at the node (not through a role), deduplicated. */
|
|
69
|
+
granted: PermissionKey[];
|
|
70
|
+
/** Live entity-narrowed grants, one per (permission, entity). */
|
|
71
|
+
narrowed: {
|
|
72
|
+
permission: PermissionKey;
|
|
73
|
+
entity: EntityRef;
|
|
74
|
+
}[];
|
|
52
75
|
}
|
|
53
76
|
export declare const unknownRoleError: (roleKey: string) => SubstratError;
|
|
54
77
|
export declare const isUnknownRoleError: (err: unknown, roleKey: string) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-checker.d.ts","sourceRoot":"","sources":["../src/permission-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EACb,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,KAAK,CACH,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,aAAa,EACzB,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB,4FAA4F;IAC5F,eAAe,CAAC,CACd,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,aAAa,EACzB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EACpD,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CACJ,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"permission-checker.d.ts","sourceRoot":"","sources":["../src/permission-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EACb,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,KAAK,CACH,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,aAAa,EACzB,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB,4FAA4F;IAC5F,eAAe,CAAC,CACd,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,aAAa,EACzB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EACpD,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CACJ,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACjE;AAED,iDAAiD;AACjD,MAAM,WAAW,QAAQ;IACvB,uGAAuG;IACvG,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,8EAA8E;IAC9E,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uFAAuF;IACvF,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,iEAAiE;IACjE,QAAQ,EAAE;QAAE,UAAU,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;CAC9D;AAUD,eAAO,MAAM,gBAAgB,YAAa,MAAM,KAAG,aAAwE,CAAC;AAC5H,eAAO,MAAM,kBAAkB,QAAS,OAAO,WAAW,MAAM,KAAG,OACsC,CAAC;AAE1G,sDAAsD;AACtD,eAAO,MAAM,WAAW,OAAQ,WAAW,KAAG,YAA2C,CAAC;AAE1F;;;;;GAKG;AACH,eAAO,MAAM,OAAO,YAAa,YAAY,KAAG,KAc/C,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QAAE,UAAU,EAAE,aAAa,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,EAS9E;CACF;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAC5E,QAAQ,EACR;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAClB,CAOA;AAED,4FAA4F;AAC5F,eAAO,MAAM,cAAc,EAAE,iBAa5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAgBpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-checker.js","sourceRoot":"","sources":["../src/permission-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,GASd,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"permission-checker.js","sourceRoot":"","sources":["../src/permission-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-eval.d.ts","sourceRoot":"","sources":["../src/permission-eval.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"permission-eval.d.ts","sourceRoot":"","sources":["../src/permission-eval.ts"],"names":[],"mappings":"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"}
|