@toa.io/core 1.0.0-alpha.314 → 1.0.0-alpha.319
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/package.json +2 -2
- package/transpiled/call.js +13 -16
- package/transpiled/call.js.map +1 -1
- package/transpiled/contract/component.d.ts +13 -0
- package/transpiled/contract/component.js +55 -10
- package/transpiled/contract/component.js.map +1 -1
- package/transpiled/contract/index.d.ts +2 -1
- package/transpiled/contract/index.js +2 -1
- package/transpiled/contract/index.js.map +1 -1
- package/transpiled/contract/request.d.ts +5 -0
- package/transpiled/contract/request.js +16 -8
- package/transpiled/contract/request.js.map +1 -1
- package/transpiled/contract/schemas.js +2 -1
- package/transpiled/contract/schemas.js.map +1 -1
- package/transpiled/contract/system.d.ts +33 -0
- package/transpiled/contract/system.js +76 -0
- package/transpiled/contract/system.js.map +1 -0
- package/transpiled/exceptions.d.ts +3 -0
- package/transpiled/exceptions.js +5 -0
- package/transpiled/exceptions.js.map +1 -1
- package/transpiled/index.d.ts +2 -0
- package/transpiled/index.js +1 -0
- package/transpiled/index.js.map +1 -1
- package/transpiled/operation.js +45 -12
- package/transpiled/operation.js.map +1 -1
- package/transpiled/parts.d.ts +20 -0
- package/transpiled/parts.js +23 -0
- package/transpiled/parts.js.map +1 -0
- package/transpiled/state.d.ts +4 -4
- package/transpiled/state.js +4 -4
- package/transpiled/state.js.map +1 -1
- package/transpiled/types/bindings.d.ts +1 -1
- package/transpiled/types/operations.d.ts +1 -1
- package/transpiled/types/request.d.ts +5 -6
- package/transpiled/types/storages.d.ts +10 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toa.io/core",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.319",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Toa Core",
|
|
6
6
|
"author": "temich <tema.gurtovoy@gmail.com>",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"openspan": "1.0.0-alpha.305",
|
|
46
46
|
"uuid": "14.0.2"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "ee4901f2bc12c33fc2098a62f2af0c29838a2c2c"
|
|
49
49
|
}
|
package/transpiled/call.js
CHANGED
|
@@ -119,6 +119,10 @@ export class Call extends Connector {
|
|
|
119
119
|
// nobody waits for a task, and it is made from wherever the queue is consumed
|
|
120
120
|
if (task === true && (timeout !== undefined || signal !== undefined))
|
|
121
121
|
throw new RequestContractException('A task names no `timeout` and no `signal`');
|
|
122
|
+
// an ordinary call is answered eventually, and what nobody could answer is parked with who
|
|
123
|
+
// asked — which only means something to a caller still waiting
|
|
124
|
+
if (!this.#stateful && (timeout !== undefined || signal !== undefined))
|
|
125
|
+
throw new RequestContractException(`'${this.#target}' is stateless, and a call to it names no \`timeout\` and no \`signal\``);
|
|
122
126
|
if (this.#streamed !== undefined) {
|
|
123
127
|
// a task is taken later, by a process whose caller is no longer holding a stream
|
|
124
128
|
if (task === true)
|
|
@@ -133,25 +137,18 @@ export class Call extends Connector {
|
|
|
133
137
|
/**
|
|
134
138
|
* What the transmission is handed beside the envelope. An addressed call always waits for a set
|
|
135
139
|
* time — its caller's, or the context's — because nothing else ends a call to a process that has
|
|
136
|
-
* gone; an ordinary call waits for
|
|
140
|
+
* gone; an ordinary call waits for as long as it takes, and is handed nothing.
|
|
137
141
|
*/
|
|
138
142
|
#terms(instance, timeout, signal) {
|
|
139
|
-
|
|
140
|
-
if (instance === undefined && deadline === undefined && signal === undefined)
|
|
143
|
+
if (instance === undefined)
|
|
141
144
|
return undefined;
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
terms.instance = instance;
|
|
150
|
-
if (deadline !== undefined)
|
|
151
|
-
terms.timeout = deadline;
|
|
152
|
-
if (signals.length > 0)
|
|
153
|
-
terms.signal = signals.length === 1 ? signals[0] : AbortSignal.any(signals);
|
|
154
|
-
return terms;
|
|
145
|
+
const deadline = timeout ?? addressed.timeout();
|
|
146
|
+
const expiry = AbortSignal.timeout(deadline);
|
|
147
|
+
return {
|
|
148
|
+
instance,
|
|
149
|
+
timeout: deadline,
|
|
150
|
+
signal: signal === undefined ? expiry : AbortSignal.any([signal, expiry])
|
|
151
|
+
};
|
|
155
152
|
}
|
|
156
153
|
/** The reply, or *abandoned* once the caller has stopped waiting, however the wait ended. */
|
|
157
154
|
async #transmit(envelope, terms) {
|
package/transpiled/call.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.js","sourceRoot":"","sources":["../source/call.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"call.js","sourceRoot":"","sources":["../source/call.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import type { Definition, Entity } from './request.ts';
|
|
|
3
3
|
export interface Contract {
|
|
4
4
|
/** the version of the component this describes */
|
|
5
5
|
version?: string;
|
|
6
|
+
/** what carries a call to any of its operations, which one of them may name otherwise */
|
|
7
|
+
bindings?: string[];
|
|
6
8
|
entity?: Entity;
|
|
7
9
|
operations?: Record<string, Operation>;
|
|
8
10
|
events?: Record<string, Event>;
|
|
@@ -20,5 +22,16 @@ export interface Event {
|
|
|
20
22
|
* operation's concurrency, the bridge that runs it and what it forwards to, and the entity's
|
|
21
23
|
* storage, its blank and its migrations. An event's `path` is a path in the process that
|
|
22
24
|
* normalised the manifest, and names nothing in any other.
|
|
25
|
+
*
|
|
26
|
+
* What the runtime gives every component is not stated either, or is stated once: the entity's
|
|
27
|
+
* system properties, the bindings an operation did not name, the empty output an operation
|
|
28
|
+
* declaring none normalises to, and the `query` that follows from a scope of `none`. None of it
|
|
29
|
+
* is a declaration, and `restore` is what puts it back for whoever reads one.
|
|
23
30
|
*/
|
|
24
31
|
export declare function component(manifest: Contract): Contract;
|
|
32
|
+
/**
|
|
33
|
+
* The contract as the component declared it, which is the whole of what a caller is held to.
|
|
34
|
+
* What was never left out passes through: a component's own manifest is a contract too, and is
|
|
35
|
+
* what a receiver is given of the component whose events it receives.
|
|
36
|
+
*/
|
|
37
|
+
export declare function restore(contract: Contract): Contract;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { pack, same, unpack } from './system.js';
|
|
1
2
|
/**
|
|
2
3
|
* What a caller is given of a component, of what its normalised manifest holds.
|
|
3
4
|
*
|
|
@@ -5,18 +6,26 @@
|
|
|
5
6
|
* operation's concurrency, the bridge that runs it and what it forwards to, and the entity's
|
|
6
7
|
* storage, its blank and its migrations. An event's `path` is a path in the process that
|
|
7
8
|
* normalised the manifest, and names nothing in any other.
|
|
9
|
+
*
|
|
10
|
+
* What the runtime gives every component is not stated either, or is stated once: the entity's
|
|
11
|
+
* system properties, the bindings an operation did not name, the empty output an operation
|
|
12
|
+
* declaring none normalises to, and the `query` that follows from a scope of `none`. None of it
|
|
13
|
+
* is a declaration, and `restore` is what puts it back for whoever reads one.
|
|
8
14
|
*/
|
|
9
15
|
export function component(manifest) {
|
|
10
16
|
const contract = { version: manifest.version };
|
|
11
|
-
if (manifest.
|
|
12
|
-
contract.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
if (manifest.bindings !== undefined)
|
|
18
|
+
contract.bindings = manifest.bindings;
|
|
19
|
+
if (manifest.entity !== undefined) {
|
|
20
|
+
const entity = { properties: manifest.entity.properties };
|
|
21
|
+
if (manifest.entity.required !== undefined)
|
|
22
|
+
entity.required = manifest.entity.required;
|
|
23
|
+
contract.entity = pack(entity);
|
|
24
|
+
}
|
|
16
25
|
if (manifest.operations !== undefined) {
|
|
17
26
|
contract.operations = {};
|
|
18
27
|
for (const [endpoint, definition] of Object.entries(manifest.operations))
|
|
19
|
-
contract.operations[endpoint] = operation(definition);
|
|
28
|
+
contract.operations[endpoint] = operation(definition, manifest.bindings);
|
|
20
29
|
}
|
|
21
30
|
if (manifest.events !== undefined) {
|
|
22
31
|
contract.events = {};
|
|
@@ -25,13 +34,49 @@ export function component(manifest) {
|
|
|
25
34
|
}
|
|
26
35
|
return contract;
|
|
27
36
|
}
|
|
28
|
-
|
|
37
|
+
/**
|
|
38
|
+
* The contract as the component declared it, which is the whole of what a caller is held to.
|
|
39
|
+
* What was never left out passes through: a component's own manifest is a contract too, and is
|
|
40
|
+
* what a receiver is given of the component whose events it receives.
|
|
41
|
+
*/
|
|
42
|
+
export function restore(contract) {
|
|
43
|
+
const restored = { ...contract };
|
|
44
|
+
if (contract.entity !== undefined)
|
|
45
|
+
restored.entity = unpack(contract.entity);
|
|
46
|
+
if (contract.operations !== undefined) {
|
|
47
|
+
restored.operations = {};
|
|
48
|
+
for (const [endpoint, definition] of Object.entries(contract.operations))
|
|
49
|
+
restored.operations[endpoint] = declared(definition, contract.bindings);
|
|
50
|
+
}
|
|
51
|
+
return restored;
|
|
52
|
+
}
|
|
53
|
+
function operation(definition, bindings) {
|
|
29
54
|
const operation = {};
|
|
30
|
-
for (const key of KEYS)
|
|
31
|
-
|
|
32
|
-
|
|
55
|
+
for (const key of KEYS) {
|
|
56
|
+
const value = definition[key];
|
|
57
|
+
if (value === undefined)
|
|
58
|
+
continue;
|
|
59
|
+
if (key === 'bindings' && same(value, bindings))
|
|
60
|
+
continue;
|
|
61
|
+
if (key === 'output' && describes(value) === false)
|
|
62
|
+
continue;
|
|
63
|
+
if (key === 'query' && value === false && definition.scope === 'none')
|
|
64
|
+
continue;
|
|
65
|
+
operation[key] = value;
|
|
66
|
+
}
|
|
33
67
|
return operation;
|
|
34
68
|
}
|
|
69
|
+
function declared(definition, bindings) {
|
|
70
|
+
const operation = { ...definition };
|
|
71
|
+
operation.bindings ??= bindings;
|
|
72
|
+
if (operation.scope === 'none')
|
|
73
|
+
operation.query ??= false;
|
|
74
|
+
return operation;
|
|
75
|
+
}
|
|
76
|
+
/** Whether a schema says anything, which the one an operation declaring no output gets does not. */
|
|
77
|
+
function describes(schema) {
|
|
78
|
+
return schema !== null && Object.keys(schema).length > 0;
|
|
79
|
+
}
|
|
35
80
|
/** What a call to an operation is addressed by, carries, answers and refuses with. */
|
|
36
81
|
const KEYS = [
|
|
37
82
|
'type',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../source/contract/component.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../source/contract/component.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { component } from './component.js';
|
|
1
|
+
export { component, restore } from './component.js';
|
|
2
|
+
export { ID, SYSTEM, pack, unpack } from './system.js';
|
|
2
3
|
export { Request } from './request.js';
|
|
3
4
|
export { Reply } from './reply.js';
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -33,6 +33,11 @@ export interface Definition extends Explanation {
|
|
|
33
33
|
export interface Entity {
|
|
34
34
|
properties: Record<string, JSONSchema>;
|
|
35
35
|
required?: string[];
|
|
36
|
+
/**
|
|
37
|
+
* Whether its system properties are the ones the runtime gives every entity, in which case a
|
|
38
|
+
* contract leaves them out and whoever reads one puts them back.
|
|
39
|
+
*/
|
|
40
|
+
system?: boolean;
|
|
36
41
|
}
|
|
37
42
|
export declare class Request extends Contract {
|
|
38
43
|
readonly discovery: Explanation;
|
|
@@ -80,14 +80,22 @@ export class Request extends Contract {
|
|
|
80
80
|
delete query.properties.version;
|
|
81
81
|
else
|
|
82
82
|
delete query.properties.projection;
|
|
83
|
-
if (definition.
|
|
83
|
+
if (definition.scope === 'stream') {
|
|
84
|
+
// a page of a stream is read after the one before it, and ordered by what never moves
|
|
84
85
|
delete query.properties.omit;
|
|
85
|
-
|
|
86
|
+
query.not = { anyOf: [{ required: ['sort', 'limit'] }, { required: ['sort', 'token'] }] };
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
delete query.properties.token;
|
|
90
|
+
if (definition.type !== 'observation' || definition.scope !== 'entries') {
|
|
91
|
+
delete query.properties.omit;
|
|
92
|
+
delete query.properties.limit;
|
|
93
|
+
}
|
|
94
|
+
else if (query.required === undefined)
|
|
95
|
+
query.required = ['limit'];
|
|
96
|
+
else
|
|
97
|
+
query.required.push('limit');
|
|
86
98
|
}
|
|
87
|
-
else if (query.required === undefined)
|
|
88
|
-
query.required = ['limit'];
|
|
89
|
-
else
|
|
90
|
-
query.required.push('limit');
|
|
91
99
|
schema.properties.query = query;
|
|
92
100
|
}
|
|
93
101
|
if (required.length > 0)
|
|
@@ -125,9 +133,9 @@ function answers(definition, entity) {
|
|
|
125
133
|
properties: entity.properties,
|
|
126
134
|
...(entity.required === undefined ? {} : { required: entity.required })
|
|
127
135
|
};
|
|
128
|
-
if (definition.scope === '
|
|
136
|
+
if (definition.scope === 'entries')
|
|
129
137
|
return { type: 'array', items: object };
|
|
130
|
-
return definition.scope === '
|
|
138
|
+
return definition.scope === 'entry' || definition.scope === 'changeset'
|
|
131
139
|
? object
|
|
132
140
|
: undefined;
|
|
133
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../source/contract/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../source/contract/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../source/contract/schemas.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,KAAK,GAAe;IAC/B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtB,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACjF,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QACxC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QACrC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QACtC,IAAI,EAAE;YACJ,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,+BAA+B,EAAE;SACpE;QACD,UAAU,EAAE;YACV,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;SAChD;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../source/contract/schemas.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,KAAK,GAAe;IAC/B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtB,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACjF,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QACxC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QACrC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QACtC,IAAI,EAAE;YACJ,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,+BAA+B,EAAE;SACpE;QACD,UAAU,EAAE;YACV,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;SAChD;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;KACxC;IACD,oBAAoB,EAAE,KAAK;CAC5B,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAe;IAC/B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;QAC1D,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC5B;IACD,QAAQ,EAAE,CAAC,MAAM,CAAC;CACnB,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Entity } from './request.ts';
|
|
2
|
+
import type { JSONSchema } from './schemas.ts';
|
|
3
|
+
/**
|
|
4
|
+
* What the root prototype gives every entity, as `runtime/prototype/manifest.toa.yaml` declares
|
|
5
|
+
* it. Held here because a contract is read where that package is not — a gateway reads one of a
|
|
6
|
+
* component it does not have — and kept the same as the prototype by a test in `@toa.io/norm`,
|
|
7
|
+
* which has both.
|
|
8
|
+
*
|
|
9
|
+
* `id` is apart from the rest: a component may declare its own, and the rest it may not.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ID: JSONSchema;
|
|
12
|
+
export declare const SYSTEM: Record<string, JSONSchema>;
|
|
13
|
+
/**
|
|
14
|
+
* Whether one declaration is the other. Compared as written rather than by walking it: a
|
|
15
|
+
* component cannot have written a system property itself — a manifest that redeclares one is
|
|
16
|
+
* refused — so what is there came from the prototype and is identical to it. A comparison that
|
|
17
|
+
* says no costs the property being written out, and nothing else.
|
|
18
|
+
*/
|
|
19
|
+
export declare function same(one: unknown, other: unknown): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* The entity without what the runtime gives it, saying that it did. An entity a component
|
|
22
|
+
* declares itself — one whose prototype is `null` — may give four of them, or five, or the same
|
|
23
|
+
* names with other schemas, so it is stated as it stands and says nothing.
|
|
24
|
+
*/
|
|
25
|
+
export declare function pack(entity: Entity): Entity;
|
|
26
|
+
/**
|
|
27
|
+
* The entity as the component declared it, which is what anything reading one is given.
|
|
28
|
+
*
|
|
29
|
+
* What is put back is a copy of it. An entity's schemas were its own before a contract left any
|
|
30
|
+
* of them out, and whoever holds one edits it — a route takes a property out of what it
|
|
31
|
+
* describes — so two components sharing one object is not a thing to start doing here.
|
|
32
|
+
*/
|
|
33
|
+
export declare function unpack(entity: Entity): Entity;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the root prototype gives every entity, as `runtime/prototype/manifest.toa.yaml` declares
|
|
3
|
+
* it. Held here because a contract is read where that package is not — a gateway reads one of a
|
|
4
|
+
* component it does not have — and kept the same as the prototype by a test in `@toa.io/norm`,
|
|
5
|
+
* which has both.
|
|
6
|
+
*
|
|
7
|
+
* `id` is apart from the rest: a component may declare its own, and the rest it may not.
|
|
8
|
+
*/
|
|
9
|
+
export const ID = { type: 'string', pattern: '^[a-fA-F0-9]{32}$' };
|
|
10
|
+
export const SYSTEM = {
|
|
11
|
+
VERSION: { type: 'integer', minimum: 0 },
|
|
12
|
+
CREATED: { type: 'integer', format: 'epoch-millis' },
|
|
13
|
+
UPDATED: { type: 'integer', format: 'epoch-millis' },
|
|
14
|
+
DELETED: { type: 'integer', format: 'epoch-millis', nullable: true },
|
|
15
|
+
REGION: { type: 'integer', minimum: 0 }
|
|
16
|
+
};
|
|
17
|
+
/** What the prototype requires, which is every property it gives. */
|
|
18
|
+
const REQUIRED = ['id', ...Object.keys(SYSTEM)];
|
|
19
|
+
/**
|
|
20
|
+
* Whether one declaration is the other. Compared as written rather than by walking it: a
|
|
21
|
+
* component cannot have written a system property itself — a manifest that redeclares one is
|
|
22
|
+
* refused — so what is there came from the prototype and is identical to it. A comparison that
|
|
23
|
+
* says no costs the property being written out, and nothing else.
|
|
24
|
+
*/
|
|
25
|
+
export function same(one, other) {
|
|
26
|
+
return JSON.stringify(one) === JSON.stringify(other);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The entity without what the runtime gives it, saying that it did. An entity a component
|
|
30
|
+
* declares itself — one whose prototype is `null` — may give four of them, or five, or the same
|
|
31
|
+
* names with other schemas, so it is stated as it stands and says nothing.
|
|
32
|
+
*/
|
|
33
|
+
export function pack(entity) {
|
|
34
|
+
if (!given(entity))
|
|
35
|
+
return entity;
|
|
36
|
+
const properties = {};
|
|
37
|
+
for (const [name, property] of Object.entries(entity.properties))
|
|
38
|
+
if (!(name in SYSTEM) && !(name === 'id' && same(property, ID)))
|
|
39
|
+
properties[name] = property;
|
|
40
|
+
const required = (entity.required ?? []).filter((name) => !REQUIRED.includes(name));
|
|
41
|
+
return {
|
|
42
|
+
properties,
|
|
43
|
+
...(required.length === 0 ? {} : { required }),
|
|
44
|
+
system: true
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The entity as the component declared it, which is what anything reading one is given.
|
|
49
|
+
*
|
|
50
|
+
* What is put back is a copy of it. An entity's schemas were its own before a contract left any
|
|
51
|
+
* of them out, and whoever holds one edits it — a route takes a property out of what it
|
|
52
|
+
* describes — so two components sharing one object is not a thing to start doing here.
|
|
53
|
+
*/
|
|
54
|
+
export function unpack(entity) {
|
|
55
|
+
if (entity.system !== true)
|
|
56
|
+
return entity;
|
|
57
|
+
const declared = {
|
|
58
|
+
...entity,
|
|
59
|
+
properties: {
|
|
60
|
+
...entity.properties,
|
|
61
|
+
...(entity.properties.id === undefined ? { id: structuredClone(ID) } : {}),
|
|
62
|
+
...structuredClone(SYSTEM)
|
|
63
|
+
},
|
|
64
|
+
required: [...(entity.required ?? []), ...REQUIRED]
|
|
65
|
+
};
|
|
66
|
+
delete declared.system;
|
|
67
|
+
return declared;
|
|
68
|
+
}
|
|
69
|
+
/** Whether what the prototype gives is what this entity carries, which is what may be left out. */
|
|
70
|
+
function given(entity) {
|
|
71
|
+
for (const [name, property] of Object.entries(SYSTEM))
|
|
72
|
+
if (!same(entity.properties[name], property))
|
|
73
|
+
return false;
|
|
74
|
+
return REQUIRED.every((name) => entity.required?.includes(name) === true);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../source/contract/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ export declare const codes: {
|
|
|
17
17
|
Duplicate: number;
|
|
18
18
|
/** this call has been made, and what it changed is changed */
|
|
19
19
|
DuplicateCall: number;
|
|
20
|
+
/** a stream token names a point of the storage's history it no longer holds */
|
|
21
|
+
StateHistory: number;
|
|
20
22
|
Communication: number;
|
|
21
23
|
Transmission: number;
|
|
22
24
|
Endpoint: number;
|
|
@@ -86,6 +88,7 @@ export declare const StateConcurrencyException: Derived;
|
|
|
86
88
|
export declare const StateInitializationException: Derived;
|
|
87
89
|
export declare const DuplicateException: Derived;
|
|
88
90
|
export declare const DuplicateCallException: Derived;
|
|
91
|
+
export declare const StateHistoryException: Derived;
|
|
89
92
|
export declare const CommunicationException: Derived;
|
|
90
93
|
export declare const TransmissionException: Derived;
|
|
91
94
|
export declare const EndpointException: Derived;
|
package/transpiled/exceptions.js
CHANGED
|
@@ -17,6 +17,8 @@ export const codes = {
|
|
|
17
17
|
Duplicate: 306,
|
|
18
18
|
/** this call has been made, and what it changed is changed */
|
|
19
19
|
DuplicateCall: 307,
|
|
20
|
+
/** a stream token names a point of the storage's history it no longer holds */
|
|
21
|
+
StateHistory: 308,
|
|
20
22
|
Communication: 400,
|
|
21
23
|
Transmission: 401,
|
|
22
24
|
Endpoint: 402,
|
|
@@ -126,6 +128,7 @@ export const StateConcurrencyException = derive('StateConcurrency');
|
|
|
126
128
|
export const StateInitializationException = derive('StateInitialization');
|
|
127
129
|
export const DuplicateException = derive('Duplicate');
|
|
128
130
|
export const DuplicateCallException = derive('DuplicateCall');
|
|
131
|
+
export const StateHistoryException = derive('StateHistory');
|
|
129
132
|
export const CommunicationException = derive('Communication');
|
|
130
133
|
export const TransmissionException = derive('Transmission');
|
|
131
134
|
export const EndpointException = derive('Endpoint');
|
|
@@ -170,6 +173,8 @@ const OUTCOME = {
|
|
|
170
173
|
Duplicate: 'permanent',
|
|
171
174
|
// a call that has been made stays made: another attempt is refused by the same record
|
|
172
175
|
DuplicateCall: 'permanent',
|
|
176
|
+
// history a storage has let go of does not come back
|
|
177
|
+
StateHistory: 'permanent',
|
|
173
178
|
Communication: 'transient',
|
|
174
179
|
// nothing is listening on that queue yet — a deployment in progress, most of the time
|
|
175
180
|
Transmission: 'transient',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../source/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGtC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,CAAC;IAET,QAAQ,EAAE,GAAG;IACb,aAAa,EAAE,GAAG;IAClB,eAAe,EAAE,GAAG;IACpB,eAAe,EAAE,GAAG;IACpB,gBAAgB,EAAE,GAAG;IACrB,cAAc,EAAE,GAAG;IACnB,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,GAAG;IAEhB,KAAK,EAAE,GAAG;IACV,aAAa,EAAE,GAAG;IAClB,iBAAiB,EAAE,GAAG;IACtB,gBAAgB,EAAE,GAAG;IACrB,mBAAmB,EAAE,GAAG;IACxB,SAAS,EAAE,GAAG;IACd,8DAA8D;IAC9D,aAAa,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../source/exceptions.ts"],"names":[],"mappings":"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"}
|
package/transpiled/index.d.ts
CHANGED
|
@@ -30,9 +30,11 @@ export * as deliveries from './deliveries.ts';
|
|
|
30
30
|
export * as entities from './entities/index.ts';
|
|
31
31
|
export * as halting from './halting.ts';
|
|
32
32
|
export * as exceptions from './exceptions.ts';
|
|
33
|
+
export * as parts from './parts.ts';
|
|
33
34
|
export * as trail from './trail.ts';
|
|
34
35
|
export * as contract from './contract/index.ts';
|
|
35
36
|
export type { Exception } from './exceptions.ts';
|
|
37
|
+
export type { Part } from './parts.ts';
|
|
36
38
|
export type { Invocable } from './component.ts';
|
|
37
39
|
export type { Explicable } from './remote.ts';
|
|
38
40
|
export type { Scoped, Store } from './operation.ts';
|
package/transpiled/index.js
CHANGED
|
@@ -30,6 +30,7 @@ export * as deliveries from './deliveries.js';
|
|
|
30
30
|
export * as entities from './entities/index.js';
|
|
31
31
|
export * as halting from './halting.js';
|
|
32
32
|
export * as exceptions from './exceptions.js';
|
|
33
|
+
export * as parts from './parts.js';
|
|
33
34
|
export * as trail from './trail.js';
|
|
34
35
|
export * as contract from './contract/index.js';
|
|
35
36
|
//# sourceMappingURL=index.js.map
|
package/transpiled/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA"}
|
package/transpiled/operation.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Readable } from 'node:stream';
|
|
1
|
+
import { Readable, Transform, pipeline } from 'node:stream';
|
|
2
2
|
import { Connector } from './connector.js';
|
|
3
3
|
import { codes, SystemException, RequestContractException } from './exceptions.js';
|
|
4
|
+
import * as parts from './parts.js';
|
|
4
5
|
import { environment } from '@toa.io/generic';
|
|
5
6
|
export class Operation extends Connector {
|
|
6
7
|
scope;
|
|
@@ -144,30 +145,62 @@ export class Operation extends Connector {
|
|
|
144
145
|
/**
|
|
145
146
|
* What a caller receives of the output it asked for: each object of it keeps the properties the
|
|
146
147
|
* request named, in the order the object holds them, and an empty list leaves no output at all.
|
|
147
|
-
* A system property is one of them: a caller that reads `VERSION` asks for it.
|
|
148
|
-
* an
|
|
148
|
+
* A system property is one of them: a caller that reads `VERSION` asks for it. An object is one
|
|
149
|
+
* the output is, one of an array it is, or one a stream it is yields. An error, an exception and
|
|
150
|
+
* a value that is not an object are answered as they are.
|
|
149
151
|
*/
|
|
150
152
|
function restrict(reply, output) {
|
|
151
153
|
if (output === undefined || reply === null || typeof reply !== 'object')
|
|
152
154
|
return reply;
|
|
155
|
+
// a stream is answered bare, where anything else is answered in `output`
|
|
156
|
+
if (reply instanceof Readable)
|
|
157
|
+
return restrict({ output: reply }, output).output ?? {};
|
|
153
158
|
const answered = reply.output;
|
|
154
|
-
if (answered === undefined || answered === null
|
|
159
|
+
if (answered === undefined || answered === null)
|
|
155
160
|
return reply;
|
|
156
|
-
if (typeof answered !== 'object') {
|
|
157
|
-
if (output.length === 0)
|
|
158
|
-
delete reply.output;
|
|
159
|
-
return reply;
|
|
160
|
-
}
|
|
161
161
|
if (output.length === 0) {
|
|
162
|
+
// nobody reads it, and what it holds open — a cursor, a reply pipe — is let go now
|
|
163
|
+
if (answered instanceof Readable)
|
|
164
|
+
answered.destroy();
|
|
162
165
|
delete reply.output;
|
|
163
166
|
return reply;
|
|
164
167
|
}
|
|
168
|
+
if (typeof answered !== 'object')
|
|
169
|
+
return reply;
|
|
165
170
|
const allowed = new Set(output);
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
171
|
+
// a stream of bytes is a value, as a primitive is: there is no property of it to leave out
|
|
172
|
+
if (answered instanceof Readable)
|
|
173
|
+
reply.output = answered.readableObjectMode ? restricted(answered, allowed) : answered;
|
|
174
|
+
else if (Array.isArray(answered))
|
|
175
|
+
reply.output = answered.map((value) => fitted(value, allowed));
|
|
176
|
+
else
|
|
177
|
+
reply.output = fit(answered, allowed);
|
|
169
178
|
return reply;
|
|
170
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* A stream of what `fitted` makes of each value. Joined by `pipeline`, so that a failure of
|
|
182
|
+
* either side reaches the other: the source's error is the reader's, and a reader that stops
|
|
183
|
+
* reading closes the source.
|
|
184
|
+
*/
|
|
185
|
+
function restricted(source, allowed) {
|
|
186
|
+
const transform = new Transform({
|
|
187
|
+
objectMode: true,
|
|
188
|
+
transform(value, _, callback) {
|
|
189
|
+
callback(null, fitted(value, allowed));
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
return pipeline(source, transform, noop);
|
|
193
|
+
}
|
|
194
|
+
function fitted(value, allowed) {
|
|
195
|
+
// what a part carries of the set is its entry; a removal and a token are not the entity's
|
|
196
|
+
if (parts.is(value))
|
|
197
|
+
return 'entry' in value ? { entry: fit(value.entry, allowed) } : value;
|
|
198
|
+
return value !== null && typeof value === 'object' && !ArrayBuffer.isView(value)
|
|
199
|
+
? fit(value, allowed)
|
|
200
|
+
: value;
|
|
201
|
+
}
|
|
202
|
+
// what `pipeline` reports is what each stream already carries to its reader
|
|
203
|
+
function noop() { }
|
|
171
204
|
/** Runs per entity of a collection, hence the set and the absence of intermediates. */
|
|
172
205
|
function fit(entity, allowed) {
|
|
173
206
|
const output = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../source/operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../source/operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAClF,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAyC7C,MAAM,OAAO,SAAU,SAAQ,SAAS;IAC/B,KAAK,CAAO;IAEnB;;;;;;OAMG;IACO,OAAO,GAAY,KAAK,CAAA;IAElC,kFAAkF;IACxE,QAAQ,GAAY,KAAK,CAAA;IAE1B,QAAQ,CAAS;IACjB,UAAU,CAAW;IACrB,MAAM,CAAY;IAClB,MAAM,CAAO;IACb,KAAK,CAAS;IAEvB,iGAAiG;IACxF,UAAU,CAAoB;IAEvC,kGAAkG;IACzF,MAAM,CAAS;IAExB,sCAAsC;IACtC,YACE,OAAgB,EAChB,KAAY,EACZ,SAAoB,EACpB,KAAiB,EACjB,UAAsB;QAEtB,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAElB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAA;QAC9B,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAA;QAC5E,IAAI,CAAC,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QACnF,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,OAAO,CAAA;QAEpD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,OAAiB;QACnC,IAAI,CAAC;YACH;;;;;eAKG;YACH,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAK,OAAO,CAAC,KAA2B,EAAE,UAAU,KAAK,SAAS;gBAClF,MAAM,IAAI,wBAAwB,CAAC,8CAA8C,CAAC,CAAA;YAEpF,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI;gBAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAEpE,oFAAoF;YACpF,2BAA2B;YAC3B,IAAI,OAAO,IAAI,OAAO;gBACpB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAc,CAAQ,CAAA;YAElE,kBAAkB;YAClB,IAAI,QAAQ,IAAI,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAEvD,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,CAAA;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAE7E,OAAO,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAEjE,OAAO,EAAE,SAAS,EAAE,CAAA;QACtB,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACO,KAAK,CAAC,IAAI,CAAC,KAAY;QAC/B,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAA;QAE5B,IAAI,EAAE,KAAK,SAAS;YAClB,MAAM,IAAI,wBAAwB,CAChC,yDAAyD,CAC1D,CAAA;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAE5C,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,QAAQ,CAAA;QAEtC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,IAAK,SAA+B,EAAE,IAAI,KAAK,KAAK,CAAC,aAAa;gBAAE,MAAM,SAAS,CAAA;YAEnF;;;;;eAKG;YACH,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAA;QACvD,CAAC;IACH,CAAC;IAED;;;OAGG;IACO,IAAI,CAAC,KAAY;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QAEjC;;;;WAIG;QACH,MAAM,IAAI,GAAS,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,CAAA;QAEtE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAA;QAEnE,OAAO,IAAI,CAAA;IACb,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,KAAY;QAClC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACzB,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAExB,OAAO,KAAK,CAAC,KAAK,CAAA;IACpB,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,KAAY;QAClC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,OAAM;QAElC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACnD,MAAM,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,YAAY,QAAQ,CAAA;QAEvD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;QACnB,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,KAAgB,CAAC,GAAG,EAAE,CAAA;IACrD,CAAC;IAES,KAAK,CAAC,GAAG,CAAC,KAAY;QAC9B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;QAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAE3D,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAElC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;IACrB,CAAC;IAES,KAAK,CAAC,MAAM,CAAC,MAAa,IAAkB,CAAC;IAE7C,KAAK,CAAC,KAAK,CAAC,KAAa;QACjC,IAAI,KAAK,KAAK,SAAS;YACrB,MAAM,IAAI,wBAAwB,CAAC,2BAA2B,CAAC,CAAA;QAEjE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAGlB,CAAA;QAEpB,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACtD,CAAC;CACF;AAED;;;;;;GAMG;AACH,SAAS,QAAQ,CAAC,KAAU,EAAE,MAAiB;IAC7C,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAErF,yEAAyE;IACzE,IAAI,KAAK,YAAY,QAAQ;QAAE,OAAO,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC,MAAM,IAAI,EAAE,CAAA;IAEtF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAA;IAE7B,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAE7D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,mFAAmF;QACnF,IAAI,QAAQ,YAAY,QAAQ;YAAE,QAAQ,CAAC,OAAO,EAAE,CAAA;QAEpD,OAAO,KAAK,CAAC,MAAM,CAAA;QAEnB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE9C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IAE/B,2FAA2F;IAC3F,IAAI,QAAQ,YAAY,QAAQ;QAC9B,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;SAClF,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;;QAC3F,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAE1C,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,MAAgB,EAAE,OAAoB;IACxD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;QAC9B,UAAU,EAAE,IAAI;QAChB,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ;YAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QACxC,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,MAAM,CAAC,KAAc,EAAE,OAAoB;IAClD,0FAA0F;IAC1F,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;IAE3F,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9E,CAAC,CAAC,GAAG,CAAC,KAA4B,EAAE,OAAO,CAAC;QAC5C,CAAC,CAAC,KAAK,CAAA;AACX,CAAC;AAED,4EAA4E;AAC5E,SAAS,IAAI,KAAU,CAAC;AAExB,uFAAuF;AACvF,SAAS,GAAG,CAAC,MAA2B,EAAE,OAAoB;IAC5D,MAAM,MAAM,GAAwB,EAAE,CAAA;IAEtC,kFAAkF;IAClF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAEtF,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Record } from './types/storages.ts';
|
|
2
|
+
/**
|
|
3
|
+
* What a stream yields: an entry of the collection, the id of one that left it, or — last — the token
|
|
4
|
+
* the next read starts from. `null` where the storage keeps no history to continue from.
|
|
5
|
+
*/
|
|
6
|
+
export type Part = {
|
|
7
|
+
entry: Record;
|
|
8
|
+
} | {
|
|
9
|
+
removed: string;
|
|
10
|
+
} | {
|
|
11
|
+
token: string | null;
|
|
12
|
+
};
|
|
13
|
+
export declare function entry(value: Record): Part;
|
|
14
|
+
export declare function removed(id: string): Part;
|
|
15
|
+
export declare function token(value: string | null): Part;
|
|
16
|
+
/**
|
|
17
|
+
* Whether a value is a part a storage made, whichever copy of this package made it. An object an
|
|
18
|
+
* operation built in the shape of one is its own output, and is answered as any object is.
|
|
19
|
+
*/
|
|
20
|
+
export declare function is(value: unknown): value is Part;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** What marks a part a storage made, in every copy of this package: see `Encoded.is`. */
|
|
2
|
+
const KEY = Symbol.for('toa.core.part');
|
|
3
|
+
export function entry(value) {
|
|
4
|
+
return mark({ entry: value });
|
|
5
|
+
}
|
|
6
|
+
export function removed(id) {
|
|
7
|
+
return mark({ removed: id });
|
|
8
|
+
}
|
|
9
|
+
export function token(value) {
|
|
10
|
+
return mark({ token: value });
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Whether a value is a part a storage made, whichever copy of this package made it. An object an
|
|
14
|
+
* operation built in the shape of one is its own output, and is answered as any object is.
|
|
15
|
+
*/
|
|
16
|
+
export function is(value) {
|
|
17
|
+
return typeof value === 'object' && value !== null && KEY in value;
|
|
18
|
+
}
|
|
19
|
+
// not enumerable, so that encoding a part writes what it holds and nothing else
|
|
20
|
+
function mark(part) {
|
|
21
|
+
return Object.defineProperty(part, KEY, { value: true });
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.js","sourceRoot":"","sources":["../source/parts.ts"],"names":[],"mappings":"AAEA,yFAAyF;AACzF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAQvC,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAoB;IACxC,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,EAAE,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,CAAA;AACpE,CAAC;AAED,gFAAgF;AAChF,SAAS,IAAI,CAAC,IAAU;IACtB,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AAC1D,CAAC"}
|
package/transpiled/state.d.ts
CHANGED
|
@@ -16,10 +16,10 @@ export declare class State {
|
|
|
16
16
|
constructor(storage: Storage, entities: Factory, outbox: Outbox | undefined, associated?: boolean);
|
|
17
17
|
init(id?: string): Entity;
|
|
18
18
|
fit(values: object): void;
|
|
19
|
-
/** scope `
|
|
20
|
-
|
|
21
|
-
/** scope `
|
|
22
|
-
|
|
19
|
+
/** scope `entry` */
|
|
20
|
+
entry(query: Query, mutable?: boolean): Promise<Entity | null>;
|
|
21
|
+
/** scope `entries` */
|
|
22
|
+
entries(query: Query, mutable?: boolean): Promise<EntitySet>;
|
|
23
23
|
/** scope `stream` */
|
|
24
24
|
stream(query: Query): Promise<Readable>;
|
|
25
25
|
/** scope `changeset` */
|
package/transpiled/state.js
CHANGED
|
@@ -23,8 +23,8 @@ export class State {
|
|
|
23
23
|
fit(values) {
|
|
24
24
|
this.#entities.fit(values);
|
|
25
25
|
}
|
|
26
|
-
/** scope `
|
|
27
|
-
async
|
|
26
|
+
/** scope `entry` */
|
|
27
|
+
async entry(query, mutable = true) {
|
|
28
28
|
const record = await this.storage.get(query);
|
|
29
29
|
if (record !== null)
|
|
30
30
|
return this.#entities.object(record, mutable);
|
|
@@ -39,8 +39,8 @@ export class State {
|
|
|
39
39
|
throw new StatePreconditionException();
|
|
40
40
|
return null;
|
|
41
41
|
}
|
|
42
|
-
/** scope `
|
|
43
|
-
async
|
|
42
|
+
/** scope `entries` */
|
|
43
|
+
async entries(query, mutable = true) {
|
|
44
44
|
const recordset = await this.storage.find(query);
|
|
45
45
|
const ids = query.ids;
|
|
46
46
|
const missing = this.#associated && ids !== undefined && recordset.length < ids.length;
|
package/transpiled/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../source/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAUpF;;;GAGG;AACH,MAAM,OAAO,KAAK;IACA,OAAO,CAAS;IAEvB,SAAS,CAAS;IAClB,OAAO,CAAoB;IAEpC,4EAA4E;IACnE,WAAW,CAAS;IAE7B,sCAAsC;IACtC,YACE,OAAgB,EAChB,QAAiB,EACjB,MAA0B,EAC1B,UAAoB;QAEpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QAEtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,WAAW,GAAG,UAAU,KAAK,IAAI,CAAA;IACxC,CAAC;IAEM,IAAI,CAAC,EAAW;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC;IAEM,GAAG,CAAC,MAAc;QACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../source/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ export interface Properties {
|
|
|
21
21
|
export interface Terms {
|
|
22
22
|
/** the process an addressed call goes to */
|
|
23
23
|
instance?: string;
|
|
24
|
-
/** milliseconds the caller
|
|
24
|
+
/** milliseconds the caller of an addressed call waits */
|
|
25
25
|
timeout?: number;
|
|
26
26
|
/** aborts when the caller stops waiting */
|
|
27
27
|
signal?: AbortSignal;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Request } from './request.ts';
|
|
2
2
|
export type type = 'transition' | 'observation' | 'assignment' | 'computation' | 'effect' | 'unmanaged';
|
|
3
|
-
export type scope = '
|
|
3
|
+
export type scope = 'entry' | 'entries' | 'changeset' | 'stream' | 'none';
|
|
4
4
|
/**
|
|
5
5
|
* How an endpoint is called. What it resolves to is what the operation declares — `toa types`
|
|
6
6
|
* writes that per operation, and these are what a hand-written context says instead.
|
|
@@ -15,6 +15,7 @@ export interface Query<Entity = any> {
|
|
|
15
15
|
projection?: Array<string & keyof Entity>;
|
|
16
16
|
version?: number;
|
|
17
17
|
deleted?: boolean;
|
|
18
|
+
token?: string;
|
|
18
19
|
}
|
|
19
20
|
/** Origin of a call. Stamped by the framework; whoever reads it takes the keys it knows. */
|
|
20
21
|
export type Source = {
|
|
@@ -78,14 +79,12 @@ export interface Request<Input = any, Entity = any> {
|
|
|
78
79
|
telemetry?: string;
|
|
79
80
|
}
|
|
80
81
|
/**
|
|
81
|
-
* How a caller waits for
|
|
82
|
-
* and neither is sent with it.
|
|
82
|
+
* How a caller waits for an addressed call, given beside the request: neither is part of what the
|
|
83
|
+
* call asks, and neither is sent with it. An ordinary call waits for as long as its reply takes, and
|
|
84
|
+
* is refused if it names either.
|
|
83
85
|
*/
|
|
84
86
|
export interface Options {
|
|
85
|
-
/**
|
|
86
|
-
* Milliseconds the caller waits for the reply. An addressed call waits the context's default
|
|
87
|
-
* without one; an ordinary call waits for as long as it takes.
|
|
88
|
-
*/
|
|
87
|
+
/** Milliseconds the caller waits for the reply. Without one, the context's default. */
|
|
89
88
|
timeout?: number;
|
|
90
89
|
/** Ends the wait when it aborts, within the timeout. */
|
|
91
90
|
signal?: AbortSignal;
|
|
@@ -35,11 +35,13 @@ export interface Options {
|
|
|
35
35
|
sample?: number;
|
|
36
36
|
/** include tombstones; without it an observation answers `null` over one */
|
|
37
37
|
deleted?: boolean;
|
|
38
|
+
/** where a stream continues from: the token the one before it ended with */
|
|
39
|
+
token?: string;
|
|
38
40
|
}
|
|
39
41
|
/** What core hands a storage, written by `Query.parse`. */
|
|
40
42
|
export interface Query {
|
|
41
43
|
id?: string;
|
|
42
|
-
/** many identities at once; `State.
|
|
44
|
+
/** many identities at once; `State.entries` inits whichever of them are missing */
|
|
43
45
|
ids?: string[];
|
|
44
46
|
version?: number;
|
|
45
47
|
criteria?: Node;
|
|
@@ -52,11 +54,15 @@ export interface Query {
|
|
|
52
54
|
* only some scopes, and says so by failing rather than by declaring less.
|
|
53
55
|
*/
|
|
54
56
|
export interface Storage extends Connector {
|
|
55
|
-
/** scope `
|
|
57
|
+
/** scope `entry` */
|
|
56
58
|
get(query: Query): Promise<Record | null>;
|
|
57
|
-
/** scope `
|
|
59
|
+
/** scope `entries` */
|
|
58
60
|
find(query: Query): Promise<Record[]>;
|
|
59
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* scope `stream`: the parts of the collection the query selects, or of what changed in it since
|
|
63
|
+
* `options.token` — see `parts.ts`. The last part is the token; a stream that ends without it
|
|
64
|
+
* was cut.
|
|
65
|
+
*/
|
|
60
66
|
stream(query?: Query): Promise<Readable>;
|
|
61
67
|
/**
|
|
62
68
|
* A transition's commit. `false` is a lost compare-and-swap, not an error. Where `row` is
|