@spine-event-engine/storage 2.0.0-snapshot.22 → 2.0.0-snapshot.24
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/README.md +7 -0
- package/REFERENCE.md +131 -7
- package/dist/entity/agent-execution-record-spec.d.ts +87 -0
- package/dist/entity/agent-execution-record-spec.d.ts.map +1 -0
- package/dist/entity/agent-execution-record-spec.js +230 -0
- package/dist/entity/agent-execution-record-spec.js.map +1 -0
- package/dist/entity/agent-execution-sizes.d.ts +30 -0
- package/dist/entity/agent-execution-sizes.d.ts.map +1 -0
- package/dist/entity/agent-execution-sizes.js +51 -0
- package/dist/entity/agent-execution-sizes.js.map +1 -0
- package/dist/entity/agent-execution-transitions.d.ts +72 -0
- package/dist/entity/agent-execution-transitions.d.ts.map +1 -0
- package/dist/entity/agent-execution-transitions.js +165 -0
- package/dist/entity/agent-execution-transitions.js.map +1 -0
- package/dist/entity/agent-execution-values.d.ts +143 -0
- package/dist/entity/agent-execution-values.d.ts.map +1 -0
- package/dist/entity/agent-execution-values.js +251 -0
- package/dist/entity/agent-execution-values.js.map +1 -0
- package/dist/entity/agent-execution.d.ts +235 -0
- package/dist/entity/agent-execution.d.ts.map +1 -0
- package/dist/entity/agent-execution.js +15 -0
- package/dist/entity/agent-execution.js.map +1 -0
- package/dist/entity/agent-history-conformance.d.ts +78 -0
- package/dist/entity/agent-history-conformance.d.ts.map +1 -0
- package/dist/entity/agent-history-conformance.js +493 -0
- package/dist/entity/agent-history-conformance.js.map +1 -0
- package/dist/entity/agent-history-provider-page.d.ts +39 -0
- package/dist/entity/agent-history-provider-page.d.ts.map +1 -0
- package/dist/entity/agent-history-provider-page.js +82 -0
- package/dist/entity/agent-history-provider-page.js.map +1 -0
- package/dist/entity/agent-history-record-spec.d.ts +79 -0
- package/dist/entity/agent-history-record-spec.d.ts.map +1 -0
- package/dist/entity/agent-history-record-spec.js +147 -0
- package/dist/entity/agent-history-record-spec.js.map +1 -0
- package/dist/entity/agent-history.d.ts +196 -0
- package/dist/entity/agent-history.d.ts.map +1 -0
- package/dist/entity/agent-history.js +136 -0
- package/dist/entity/agent-history.js.map +1 -0
- package/dist/event/event-store.d.ts +41 -35
- package/dist/event/event-store.d.ts.map +1 -1
- package/dist/event/event-store.js +149 -144
- package/dist/event/event-store.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/agent-execution.d.ts +51 -0
- package/dist/internal/agent-execution.d.ts.map +1 -0
- package/dist/internal/agent-execution.js +53 -0
- package/dist/internal/agent-execution.js.map +1 -0
- package/dist/internal/agent-history.d.ts +48 -0
- package/dist/internal/agent-history.d.ts.map +1 -0
- package/dist/internal/agent-history.js +52 -0
- package/dist/internal/agent-history.js.map +1 -0
- package/dist/internal/entity-commit.d.ts +30 -11
- package/dist/internal/entity-commit.d.ts.map +1 -1
- package/dist/internal/entity-commit.js +45 -2
- package/dist/internal/entity-commit.js.map +1 -1
- package/dist/internal/entity-history.d.ts +11 -0
- package/dist/internal/entity-history.d.ts.map +1 -1
- package/dist/internal/entity-history.js +10 -0
- package/dist/internal/entity-history.js.map +1 -1
- package/dist/internal/event-store.d.ts +1 -1
- package/dist/internal/event-store.d.ts.map +1 -1
- package/dist/internal/event-store.js +1 -1
- package/dist/internal/event-store.js.map +1 -1
- package/dist/internal/tenancy.d.ts +87 -1
- package/dist/internal/tenancy.d.ts.map +1 -1
- package/dist/internal/tenancy.js +39 -0
- package/dist/internal/tenancy.js.map +1 -1
- package/dist/memory/agent-execution-head-index.d.ts +52 -0
- package/dist/memory/agent-execution-head-index.d.ts.map +1 -0
- package/dist/memory/agent-execution-head-index.js +91 -0
- package/dist/memory/agent-execution-head-index.js.map +1 -0
- package/dist/memory/agent-history-index.d.ts +49 -0
- package/dist/memory/agent-history-index.d.ts.map +1 -0
- package/dist/memory/agent-history-index.js +239 -0
- package/dist/memory/agent-history-index.js.map +1 -0
- package/dist/memory/agent-history-mutation-queue.d.ts +17 -0
- package/dist/memory/agent-history-mutation-queue.d.ts.map +1 -0
- package/dist/memory/agent-history-mutation-queue.js +31 -0
- package/dist/memory/agent-history-mutation-queue.js.map +1 -0
- package/dist/memory/in-memory-agent-execution.d.ts +21 -0
- package/dist/memory/in-memory-agent-execution.d.ts.map +1 -0
- package/dist/memory/in-memory-agent-execution.js +587 -0
- package/dist/memory/in-memory-agent-execution.js.map +1 -0
- package/dist/memory/in-memory-agent-history.d.ts +21 -0
- package/dist/memory/in-memory-agent-history.d.ts.map +1 -0
- package/dist/memory/in-memory-agent-history.js +133 -0
- package/dist/memory/in-memory-agent-history.js.map +1 -0
- package/dist/memory/in-memory-entity-commit.d.ts +107 -28
- package/dist/memory/in-memory-entity-commit.d.ts.map +1 -1
- package/dist/memory/in-memory-entity-commit.js +198 -286
- package/dist/memory/in-memory-entity-commit.js.map +1 -1
- package/dist/memory/in-memory-entity-history.d.ts +1 -1
- package/dist/memory/in-memory-entity-history.d.ts.map +1 -1
- package/dist/memory/in-memory-entity-history.js.map +1 -1
- package/dist/memory/in-memory-storage-backend.d.ts +18 -0
- package/dist/memory/in-memory-storage-backend.d.ts.map +1 -1
- package/dist/memory/in-memory-storage-backend.js +71 -0
- package/dist/memory/in-memory-storage-backend.js.map +1 -1
- package/dist/memory/in-memory-storage-factory.d.ts +38 -3
- package/dist/memory/in-memory-storage-factory.d.ts.map +1 -1
- package/dist/memory/in-memory-storage-factory.js +146 -10
- package/dist/memory/in-memory-storage-factory.js.map +1 -1
- package/dist/memory/tenant-records.d.ts +1 -1
- package/dist/memory/tenant-records.d.ts.map +1 -1
- package/dist/memory/tenant-records.js +3 -2
- package/dist/memory/tenant-records.js.map +1 -1
- package/dist/provider.d.ts +0 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +0 -1
- package/dist/provider.js.map +1 -1
- package/dist/record/record-query.d.ts +10 -2
- package/dist/record/record-query.d.ts.map +1 -1
- package/dist/record/record-query.js +9 -0
- package/dist/record/record-query.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/dist/internal/delivery-cleanup.d.ts +0 -99
- package/dist/internal/delivery-cleanup.d.ts.map +0 -1
- package/dist/internal/delivery-cleanup.js +0 -38
- package/dist/internal/delivery-cleanup.js.map +0 -1
- package/dist/memory/memory-delivery-cleanup.d.ts +0 -32
- package/dist/memory/memory-delivery-cleanup.d.ts.map +0 -1
- package/dist/memory/memory-delivery-cleanup.js +0 -61
- package/dist/memory/memory-delivery-cleanup.js.map +0 -1
|
@@ -11,386 +11,298 @@
|
|
|
11
11
|
* or implied. See the License for the specific language governing permissions and limitations under
|
|
12
12
|
* the License.
|
|
13
13
|
*/
|
|
14
|
-
import {
|
|
14
|
+
import { toBinary } from "@bufbuild/protobuf";
|
|
15
15
|
import { EventSchema } from "@spine-event-engine/proto";
|
|
16
16
|
import { EntityRecordSchema } from "@spine-event-engine/proto/generated/spine/server/entity/entity_pb.js";
|
|
17
|
-
import {
|
|
17
|
+
import { eventStoreRecordSpec } from "../event/event-store.js";
|
|
18
18
|
import { eventHistorySpec, stateHistorySpec } from "../entity/entity-history-record-spec.js";
|
|
19
|
+
import { EntityCommitSnapshots, } from "../internal/entity-commit.js";
|
|
19
20
|
import { TenantBoundary } from "../internal/tenancy.js";
|
|
20
|
-
import {
|
|
21
|
+
import { MemoryEntityStorageFactory, ENTITY_SCOPE_MUTATION_KEY, } from "./in-memory-entity-history.js";
|
|
21
22
|
import { InMemoryRecordStorage } from "./in-memory-record-storage.js";
|
|
22
23
|
import { TenantRecords } from "./tenant-records.js";
|
|
23
24
|
/**
|
|
24
|
-
*
|
|
25
|
+
* Writes in-memory Entity records in order and retains a completed prefix.
|
|
25
26
|
*/
|
|
26
27
|
export class MemoryEntityCommitStorage {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
entities;
|
|
29
|
+
openRecords;
|
|
30
|
+
input;
|
|
31
|
+
/**
|
|
32
|
+
* Tenant boundary selected by this handle.
|
|
33
|
+
*/
|
|
31
34
|
#tenantKey;
|
|
35
|
+
/**
|
|
36
|
+
|
|
37
|
+
* Whether this handle uses multitenant storage.
|
|
38
|
+
|
|
39
|
+
*/
|
|
32
40
|
#multitenant;
|
|
41
|
+
/**
|
|
42
|
+
|
|
43
|
+
* Whether this handle accepts commits.
|
|
44
|
+
|
|
45
|
+
*/
|
|
33
46
|
#open = true;
|
|
34
47
|
/**
|
|
35
|
-
* Creates
|
|
48
|
+
* Creates one source- and tenant-bound commit handle.
|
|
36
49
|
*
|
|
37
|
-
* @param entities Opens
|
|
38
|
-
* @param
|
|
39
|
-
* @param
|
|
40
|
-
* @param input Defines the Entity storage source type.
|
|
50
|
+
* @param entities Opens current Entity storage.
|
|
51
|
+
* @param openRecords Opens generated history and Event record slices.
|
|
52
|
+
* @param input Captures the Entity source and tenant boundary.
|
|
41
53
|
*/
|
|
42
|
-
constructor(entities,
|
|
43
|
-
this
|
|
44
|
-
this
|
|
45
|
-
this
|
|
46
|
-
this.#input = input;
|
|
54
|
+
constructor(entities, openRecords, input) {
|
|
55
|
+
this.entities = entities;
|
|
56
|
+
this.openRecords = openRecords;
|
|
57
|
+
this.input = input;
|
|
47
58
|
this.#tenantKey = TenantBoundary.of(input.context).key;
|
|
48
59
|
this.#multitenant = input.context.multitenant;
|
|
49
60
|
}
|
|
50
61
|
/**
|
|
51
|
-
*
|
|
62
|
+
* Writes history, diagnostics, delivery Events, then current state.
|
|
52
63
|
*
|
|
53
64
|
* @typeParam I Entity identifier type.
|
|
54
65
|
* @typeParam S Entity state type.
|
|
55
|
-
* @param input
|
|
56
|
-
* @returns Completion after
|
|
66
|
+
* @param input Supplies the proposed mutation.
|
|
67
|
+
* @returns Completion after every record has been stored.
|
|
57
68
|
*/
|
|
58
69
|
commit(input) {
|
|
59
|
-
this
|
|
60
|
-
this
|
|
61
|
-
|
|
62
|
-
const context = tenant.tenantId === undefined
|
|
63
|
-
? { name: input.context.name, multitenant: false }
|
|
64
|
-
: { name: input.context.name, multitenant: true, tenantId: tenant.tenantId };
|
|
65
|
-
const snapshot = {
|
|
66
|
-
...input,
|
|
67
|
-
context,
|
|
68
|
-
entity: { ...input.entity, context },
|
|
69
|
-
entityId: input.entity.id.clone(input.entityId),
|
|
70
|
-
next: clone(EntityRecordSchema, input.next),
|
|
71
|
-
...(input.states === undefined
|
|
72
|
-
? {}
|
|
73
|
-
: { states: input.states.map((record) => clone(EntityRecordSchema, record)) }),
|
|
74
|
-
...(input.diagnostics === undefined
|
|
75
|
-
? {}
|
|
76
|
-
: { diagnostics: input.diagnostics.map((event) => clone(EventSchema, event)) }),
|
|
77
|
-
...(input.events === undefined
|
|
78
|
-
? {}
|
|
79
|
-
: { events: input.events.map((event) => clone(EventSchema, event)) }),
|
|
80
|
-
};
|
|
81
|
-
const backend = this.#entities.backend(snapshot.entity);
|
|
82
|
-
const work = () => backend.mutationQueue.run(ENTITY_SCOPE_MUTATION_KEY, () => this.#commit(snapshot, backend));
|
|
83
|
-
return snapshot.events === undefined || snapshot.events.length === 0
|
|
84
|
-
? work()
|
|
85
|
-
: eventStoreAccess.withLock(this.#factory, snapshot.context, work);
|
|
70
|
+
this.requireOpen();
|
|
71
|
+
this.requireCompatible(input);
|
|
72
|
+
return this.apply(EntityCommitSnapshots.capture(input));
|
|
86
73
|
}
|
|
87
74
|
/**
|
|
88
|
-
*
|
|
75
|
+
* Commits one Agent transition under the Entity scope queue and Version fence.
|
|
76
|
+
*
|
|
77
|
+
* @typeParam I Entity identifier type.
|
|
78
|
+
* @typeParam S Entity state type.
|
|
79
|
+
* @param entity Configured Entity storage layout.
|
|
80
|
+
* @param entityId Typed Agent Entity identifier.
|
|
81
|
+
* @param expectedVersion Version read before the Agent handler ran.
|
|
82
|
+
* @param input Optional changed Entity state and history.
|
|
83
|
+
* @param extra Applies or restores the Agent execution record with the Entity state.
|
|
84
|
+
* @returns Completion after the fenced transition is stored.
|
|
89
85
|
*/
|
|
90
|
-
|
|
91
|
-
this
|
|
86
|
+
commitAgentConditional(entity, entityId, expectedVersion, input, extra) {
|
|
87
|
+
this.requireOpen();
|
|
88
|
+
const backend = this.entities.backend(entity);
|
|
89
|
+
const key = entity.id.key(entityId);
|
|
90
|
+
const snapshot = input === undefined ? undefined : EntityCommitSnapshots.capture(input);
|
|
91
|
+
if (snapshot !== undefined) {
|
|
92
|
+
this.requireCompatible(snapshot);
|
|
93
|
+
this.requireEnabledHistories(snapshot);
|
|
94
|
+
this.validateRows(snapshot);
|
|
95
|
+
if (snapshot.diagnostics?.length || snapshot.events?.length)
|
|
96
|
+
throw new Error("Agent completion cannot save delivery Events as Entity commit obligations.");
|
|
97
|
+
}
|
|
98
|
+
return backend.mutationQueue.run(ENTITY_SCOPE_MUTATION_KEY, () => this.applyAgentConditional(entity, backend, key, expectedVersion, snapshot, extra));
|
|
92
99
|
}
|
|
93
100
|
/**
|
|
94
|
-
*
|
|
101
|
+
* Applies one prepared Agent transition and restores affected rows on failure.
|
|
95
102
|
*
|
|
96
103
|
* @typeParam I Entity identifier type.
|
|
97
104
|
* @typeParam S Entity state type.
|
|
98
|
-
* @param
|
|
99
|
-
* @param
|
|
105
|
+
* @param entity Configured Entity storage layout.
|
|
106
|
+
* @param backend Shared current records for this Entity scope.
|
|
107
|
+
* @param key Canonical Entity ID key.
|
|
108
|
+
* @param expectedVersion Version read before handler execution.
|
|
109
|
+
* @param snapshot Optional captured Entity state transition.
|
|
110
|
+
* @param extra Applies or restores the Agent execution record.
|
|
111
|
+
* @returns Completion after the transition is stored.
|
|
100
112
|
*/
|
|
101
|
-
|
|
102
|
-
const
|
|
113
|
+
applyAgentConditional(entity, backend, key, expectedVersion, snapshot, extra) {
|
|
114
|
+
const prior = backend.current.get(key);
|
|
115
|
+
if ((prior?.version?.number ?? 0) !== expectedVersion)
|
|
116
|
+
throw new Error("Agent execution initial Entity Version is no longer current.");
|
|
117
|
+
const layout = snapshot?.states?.length ? stateHistorySpec(entity.stateSchema) : undefined;
|
|
118
|
+
const states = layout === undefined
|
|
119
|
+
? undefined
|
|
120
|
+
: this.openRecords(entity.context, layout.spec, layout.group);
|
|
121
|
+
const prepared = layout === undefined
|
|
122
|
+
? []
|
|
123
|
+
: (snapshot?.states ?? []).map((record) => layout.spec.materialize(record));
|
|
124
|
+
const priorStates = prepared.map((record) => states?.capture(record.id));
|
|
103
125
|
try {
|
|
104
|
-
|
|
105
|
-
|
|
126
|
+
this.writeAgentStates(states, prepared);
|
|
127
|
+
if (snapshot !== undefined)
|
|
128
|
+
backend.current.set(key, snapshot.next);
|
|
129
|
+
extra.apply();
|
|
106
130
|
}
|
|
107
|
-
|
|
108
|
-
|
|
131
|
+
catch (error) {
|
|
132
|
+
extra.restore();
|
|
133
|
+
if (prior === undefined)
|
|
134
|
+
backend.current.delete(key);
|
|
135
|
+
else
|
|
136
|
+
backend.current.set(key, prior);
|
|
137
|
+
for (const priorState of priorStates)
|
|
138
|
+
if (priorState !== undefined)
|
|
139
|
+
states?.apply(priorState);
|
|
140
|
+
throw error;
|
|
109
141
|
}
|
|
142
|
+
return Promise.resolve();
|
|
110
143
|
}
|
|
111
144
|
/**
|
|
112
|
-
*
|
|
145
|
+
* Writes immutable Agent state history after checking each Version slot.
|
|
113
146
|
*
|
|
114
|
-
* @
|
|
115
|
-
* @
|
|
116
|
-
* @param input Supplies configured histories and delivery Events.
|
|
117
|
-
* @returns Live affected record families and their layouts.
|
|
147
|
+
* @param states State-history records when that family is configured.
|
|
148
|
+
* @param prepared Materialized state rows from the captured transition.
|
|
118
149
|
*/
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
: undefined;
|
|
136
|
-
return { stateLayout, eventLayout, states, diagnostics, events };
|
|
150
|
+
writeAgentStates(states, prepared) {
|
|
151
|
+
if (states === undefined)
|
|
152
|
+
return;
|
|
153
|
+
for (const record of prepared) {
|
|
154
|
+
const existing = states.read(record.id);
|
|
155
|
+
if (existing !== undefined &&
|
|
156
|
+
!this.sameBytes(toBinary(EntityRecordSchema, existing), toBinary(EntityRecordSchema, record.record)))
|
|
157
|
+
throw new Error("Agent state history collides with another Version.");
|
|
158
|
+
states.write(record);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Closes this handle to new commits.
|
|
163
|
+
*/
|
|
164
|
+
close() {
|
|
165
|
+
this.#open = false;
|
|
137
166
|
}
|
|
138
167
|
/**
|
|
139
|
-
*
|
|
168
|
+
* Applies one captured mutation without cross-record compensation.
|
|
140
169
|
*
|
|
141
170
|
* @typeParam I Entity identifier type.
|
|
142
171
|
* @typeParam S Entity state type.
|
|
143
|
-
* @param input Supplies
|
|
144
|
-
* @
|
|
145
|
-
* @returns The prepared affected-record workspace.
|
|
172
|
+
* @param input Supplies immutable record snapshots.
|
|
173
|
+
* @returns Completion after every requested record write.
|
|
146
174
|
*/
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
entity,
|
|
170
|
-
};
|
|
175
|
+
async apply(input) {
|
|
176
|
+
this.requireEnabledHistories(input);
|
|
177
|
+
this.validateRows(input);
|
|
178
|
+
const [entity, stateStorage, diagnosticStorage, eventStorage] = this.openCommit(input);
|
|
179
|
+
try {
|
|
180
|
+
for (const state of input.states ?? [])
|
|
181
|
+
await entity.states.append(state);
|
|
182
|
+
for (const diagnostic of input.diagnostics ?? [])
|
|
183
|
+
await entity.events.append(diagnostic);
|
|
184
|
+
for (const event of input.events ?? []) {
|
|
185
|
+
if (event.id === undefined || eventStorage === undefined)
|
|
186
|
+
throw new Error("Entity commit requires delivery-event IDs.");
|
|
187
|
+
await this.appendEvent(eventStorage, event.id, event);
|
|
188
|
+
}
|
|
189
|
+
await entity.current.write(input.next);
|
|
190
|
+
}
|
|
191
|
+
finally {
|
|
192
|
+
entity.close();
|
|
193
|
+
stateStorage?.close();
|
|
194
|
+
diagnosticStorage?.close();
|
|
195
|
+
eventStorage?.close();
|
|
196
|
+
}
|
|
171
197
|
}
|
|
172
198
|
/**
|
|
173
|
-
*
|
|
199
|
+
* Opens the record families needed by one captured mutation.
|
|
174
200
|
*
|
|
175
201
|
* @typeParam I Entity identifier type.
|
|
176
202
|
* @typeParam S Entity state type.
|
|
177
|
-
* @param input Supplies
|
|
178
|
-
* @
|
|
179
|
-
* @returns Affected keys and cloned delivery rows.
|
|
203
|
+
* @param input Supplies requested history and delivery records.
|
|
204
|
+
* @returns Entity and record handles to close after the mutation.
|
|
180
205
|
*/
|
|
181
|
-
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
206
|
+
openCommit(input) {
|
|
207
|
+
const states = input.states?.length ? stateHistorySpec(input.entity.stateSchema) : undefined;
|
|
208
|
+
const diagnostics = input.diagnostics?.length
|
|
209
|
+
? eventHistorySpec(input.entity.stateSchema)
|
|
210
|
+
: undefined;
|
|
211
|
+
const stateStorage = states === undefined
|
|
212
|
+
? undefined
|
|
213
|
+
: new InMemoryRecordStorage(input.context, states.spec, () => this.openRecords(input.context, states.spec, states.group));
|
|
214
|
+
const diagnosticStorage = diagnostics === undefined
|
|
215
|
+
? undefined
|
|
216
|
+
: new InMemoryRecordStorage(input.context, diagnostics.spec, () => this.openRecords(input.context, diagnostics.spec, diagnostics.group));
|
|
217
|
+
const eventStorage = input.events?.length
|
|
218
|
+
? new InMemoryRecordStorage(input.context, eventStoreRecordSpec, () => this.openRecords(input.context, eventStoreRecordSpec))
|
|
219
|
+
: undefined;
|
|
220
|
+
const entityInput = { ...input.entity };
|
|
221
|
+
delete entityInput.stateHistoryStorage;
|
|
222
|
+
delete entityInput.eventHistoryStorage;
|
|
223
|
+
const entity = this.entities.create({
|
|
224
|
+
...entityInput,
|
|
225
|
+
...(stateStorage === undefined ? {} : { stateHistoryStorage: stateStorage }),
|
|
226
|
+
...(diagnosticStorage === undefined ? {} : { eventHistoryStorage: diagnosticStorage }),
|
|
193
227
|
});
|
|
194
|
-
|
|
195
|
-
const deliveryIds = materialized.map((record) => record.id);
|
|
196
|
-
return { stateIds, diagnosticIds, materialized, deliveryIds };
|
|
228
|
+
return [entity, stateStorage, diagnosticStorage, eventStorage];
|
|
197
229
|
}
|
|
198
230
|
/**
|
|
199
|
-
*
|
|
231
|
+
* Writes one immutable delivery Event or accepts an identical retry.
|
|
200
232
|
*
|
|
201
|
-
* @
|
|
202
|
-
* @
|
|
203
|
-
* @param
|
|
204
|
-
* @
|
|
233
|
+
* @param storage Supplies atomic single-record insertion.
|
|
234
|
+
* @param id Identifies the delivery Event.
|
|
235
|
+
* @param event Supplies the captured Event.
|
|
236
|
+
* @returns Completion after an identical Event is stored.
|
|
205
237
|
*/
|
|
206
|
-
async
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
if (
|
|
211
|
-
|
|
238
|
+
async appendEvent(storage, id, event) {
|
|
239
|
+
if (await storage.compareAndSet(id, undefined, event))
|
|
240
|
+
return;
|
|
241
|
+
const prior = await storage.read(id);
|
|
242
|
+
if (prior === undefined ||
|
|
243
|
+
!this.sameBytes(toBinary(EventSchema, prior), toBinary(EventSchema, event))) {
|
|
212
244
|
throw new Error("Entity commit requires unique delivery-event IDs.");
|
|
213
|
-
|
|
214
|
-
for (const state of input.states ?? [])
|
|
215
|
-
await stage.entity.states.append(state);
|
|
216
|
-
for (const diagnostic of input.diagnostics ?? [])
|
|
217
|
-
await stage.entity.events.append(diagnostic);
|
|
218
|
-
stage.stagedEvents?.writeAll(stage.materialized);
|
|
245
|
+
}
|
|
219
246
|
}
|
|
220
247
|
/**
|
|
221
|
-
*
|
|
248
|
+
* Compares two stored Protobuf byte sequences.
|
|
222
249
|
*
|
|
223
|
-
* @param
|
|
224
|
-
* @param
|
|
250
|
+
* @param left First byte sequence.
|
|
251
|
+
* @param right Second byte sequence.
|
|
252
|
+
* @returns Whether every byte matches.
|
|
225
253
|
*/
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
...InMemoryCommitValues.changes(stage.live.states, stage.stagedStates, stage.stateIds),
|
|
229
|
-
...InMemoryCommitValues.changes(stage.live.diagnostics, stage.stagedDiagnostics, stage.diagnosticIds),
|
|
230
|
-
...InMemoryCommitValues.changes(stage.live.events, stage.stagedEvents, stage.deliveryIds),
|
|
231
|
-
];
|
|
232
|
-
const next = stage.stagedBackend.current.get(stage.key);
|
|
233
|
-
try {
|
|
234
|
-
for (const change of changes)
|
|
235
|
-
change.apply();
|
|
236
|
-
backend.current.set(stage.key, next);
|
|
237
|
-
}
|
|
238
|
-
catch (error) {
|
|
239
|
-
if (stage.previous === undefined)
|
|
240
|
-
backend.current.delete(stage.key);
|
|
241
|
-
else
|
|
242
|
-
backend.current.set(stage.key, stage.previous);
|
|
243
|
-
for (const change of changes.reverse())
|
|
244
|
-
change.restore();
|
|
245
|
-
throw error;
|
|
246
|
-
}
|
|
254
|
+
sameBytes(left, right) {
|
|
255
|
+
return left.length === right.length && left.every((value, index) => value === right[index]);
|
|
247
256
|
}
|
|
248
257
|
/**
|
|
249
|
-
*
|
|
258
|
+
* Validates current identity and duplicate delivery IDs before writes.
|
|
250
259
|
*
|
|
251
260
|
* @typeParam I Entity identifier type.
|
|
252
261
|
* @typeParam S Entity state type.
|
|
253
|
-
* @param
|
|
254
|
-
* @param stateLayout Supplies the enabled state-history layout.
|
|
255
|
-
* @param states Supplies the affected staged state rows.
|
|
256
|
-
* @param eventLayout Supplies the enabled diagnostic-history layout.
|
|
257
|
-
* @param diagnostics Supplies the affected staged diagnostic rows.
|
|
258
|
-
* @returns The staged Entity storage layout.
|
|
262
|
+
* @param input Supplies the captured mutation.
|
|
259
263
|
*/
|
|
260
|
-
|
|
261
|
-
const
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
? {}
|
|
268
|
-
: {
|
|
269
|
-
stateHistoryStorage: new InMemoryRecordStorage(entity.context, stateLayout.spec, () => states),
|
|
270
|
-
}),
|
|
271
|
-
...(eventLayout === undefined || diagnostics === undefined
|
|
272
|
-
? {}
|
|
273
|
-
: {
|
|
274
|
-
eventHistoryStorage: new InMemoryRecordStorage(entity.context, eventLayout.spec, () => diagnostics),
|
|
275
|
-
}),
|
|
276
|
-
};
|
|
264
|
+
validateRows(input) {
|
|
265
|
+
const nextId = input.next.entityId === undefined ? undefined : input.entity.id.unpack(input.next.entityId);
|
|
266
|
+
if (nextId === undefined || input.entity.id.key(nextId) !== input.entity.id.key(input.entityId))
|
|
267
|
+
throw new Error("Entity commit current record identifies another Entity.");
|
|
268
|
+
const ids = (input.events ?? []).map((event) => event.id?.value);
|
|
269
|
+
if (ids.some((id) => id === undefined || id.trim() === "") || new Set(ids).size !== ids.length)
|
|
270
|
+
throw new Error("Entity commit requires unique delivery-event IDs.");
|
|
277
271
|
}
|
|
278
272
|
/**
|
|
279
|
-
* Rejects
|
|
273
|
+
* Rejects disabled history families.
|
|
280
274
|
*
|
|
281
275
|
* @typeParam I Entity identifier type.
|
|
282
276
|
* @typeParam S Entity state type.
|
|
283
|
-
* @param input Supplies the
|
|
277
|
+
* @param input Supplies the proposed histories.
|
|
284
278
|
*/
|
|
285
|
-
|
|
286
|
-
if ((input.states?.length ?? 0) > 0 && !input.entity.stateHistory)
|
|
279
|
+
requireEnabledHistories(input) {
|
|
280
|
+
if ((input.states?.length ?? 0) > 0 && !input.entity.stateHistory)
|
|
287
281
|
throw new Error("Entity commit cannot append state history when it is disabled.");
|
|
288
|
-
|
|
289
|
-
if ((input.diagnostics?.length ?? 0) > 0 && !input.entity.eventHistory) {
|
|
282
|
+
if ((input.diagnostics?.length ?? 0) > 0 && !input.entity.eventHistory)
|
|
290
283
|
throw new Error("Entity commit cannot append event history when it is disabled.");
|
|
291
|
-
}
|
|
292
284
|
}
|
|
293
285
|
/**
|
|
294
|
-
* Checks the tenant and
|
|
286
|
+
* Checks the tenant and source captured by this handle.
|
|
295
287
|
*
|
|
296
288
|
* @typeParam I Entity identifier type.
|
|
297
289
|
* @typeParam S Entity state type.
|
|
298
290
|
* @param input Supplies the requested scope.
|
|
299
291
|
*/
|
|
300
|
-
|
|
292
|
+
requireCompatible(input) {
|
|
301
293
|
if (input.context.multitenant !== this.#multitenant ||
|
|
302
294
|
TenantBoundary.of(input.context).key !== this.#tenantKey ||
|
|
303
295
|
TenantBoundary.of(input.entity.context).key !== this.#tenantKey ||
|
|
304
|
-
input.entity.sourceType.typeName !== this
|
|
296
|
+
input.entity.sourceType.typeName !== this.input.sourceType.typeName) {
|
|
305
297
|
throw new Error("Entity commit handle cannot commit another Entity storage scope.");
|
|
306
298
|
}
|
|
307
299
|
}
|
|
308
300
|
/**
|
|
309
301
|
* Rejects commits after this handle closes.
|
|
310
302
|
*/
|
|
311
|
-
|
|
303
|
+
requireOpen() {
|
|
312
304
|
if (!this.#open)
|
|
313
305
|
throw new Error("Entity commit storage is closed.");
|
|
314
306
|
}
|
|
315
307
|
}
|
|
316
|
-
/**
|
|
317
|
-
* Prepares only affected materialized rows for an in-memory commit.
|
|
318
|
-
*/
|
|
319
|
-
const InMemoryCommitValues = Object.freeze({
|
|
320
|
-
/**
|
|
321
|
-
* Captures the affected live rows in an isolated tenant slice.
|
|
322
|
-
*
|
|
323
|
-
* @typeParam I Record identifier type.
|
|
324
|
-
* @typeParam R Record message type.
|
|
325
|
-
* @param live Supplies the live tenant slice when enabled.
|
|
326
|
-
* @param ids Identifies affected slots.
|
|
327
|
-
* @returns An isolated slice with only affected prior entries.
|
|
328
|
-
*/
|
|
329
|
-
stage(live, ids) {
|
|
330
|
-
if (live === undefined)
|
|
331
|
-
return undefined;
|
|
332
|
-
const staged = new TenantRecords();
|
|
333
|
-
for (const id of ids)
|
|
334
|
-
staged.apply(live.capture(id));
|
|
335
|
-
return staged;
|
|
336
|
-
},
|
|
337
|
-
/**
|
|
338
|
-
* Builds synchronous apply and restore operations for affected slots.
|
|
339
|
-
*
|
|
340
|
-
* @typeParam I Record identifier type.
|
|
341
|
-
* @typeParam R Record message type.
|
|
342
|
-
* @param live Supplies the live tenant slice when enabled.
|
|
343
|
-
* @param staged Supplies fully prepared replacements.
|
|
344
|
-
* @param ids Identifies affected slots.
|
|
345
|
-
* @returns Operations that preserve complete prior entries and absence.
|
|
346
|
-
*/
|
|
347
|
-
changes(live, staged, ids) {
|
|
348
|
-
if (live === undefined || staged === undefined)
|
|
349
|
-
return [];
|
|
350
|
-
const seen = new Set();
|
|
351
|
-
return ids.flatMap((id) => {
|
|
352
|
-
const prior = live.capture(id);
|
|
353
|
-
if (seen.has(prior.key))
|
|
354
|
-
return [];
|
|
355
|
-
seen.add(prior.key);
|
|
356
|
-
const prepared = staged.capture(id);
|
|
357
|
-
return [new MemoryCommitChange(live, prepared, prior)];
|
|
358
|
-
});
|
|
359
|
-
},
|
|
360
|
-
});
|
|
361
|
-
/**
|
|
362
|
-
* Applies one affected materialized row and restores its complete prior slot.
|
|
363
|
-
*
|
|
364
|
-
* @typeParam I Record identifier type.
|
|
365
|
-
* @typeParam R Record message type.
|
|
366
|
-
*/
|
|
367
|
-
class MemoryCommitChange {
|
|
368
|
-
live;
|
|
369
|
-
prepared;
|
|
370
|
-
prior;
|
|
371
|
-
/**
|
|
372
|
-
* Captures the prepared and prior versions of one slot.
|
|
373
|
-
*
|
|
374
|
-
* @param live Supplies the affected tenant slice.
|
|
375
|
-
* @param prepared Supplies the replacement entry or absence.
|
|
376
|
-
* @param prior Supplies the complete prior entry or absence.
|
|
377
|
-
*/
|
|
378
|
-
constructor(live, prepared, prior) {
|
|
379
|
-
this.live = live;
|
|
380
|
-
this.prepared = prepared;
|
|
381
|
-
this.prior = prior;
|
|
382
|
-
}
|
|
383
|
-
/**
|
|
384
|
-
* Applies the fully prepared materialized row.
|
|
385
|
-
*/
|
|
386
|
-
apply() {
|
|
387
|
-
this.live.apply(this.prepared);
|
|
388
|
-
}
|
|
389
|
-
/**
|
|
390
|
-
* Restores the complete prior row or absence.
|
|
391
|
-
*/
|
|
392
|
-
restore() {
|
|
393
|
-
this.live.apply(this.prior);
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
308
|
//# sourceMappingURL=in-memory-entity-commit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-entity-commit.js","sourceRoot":"","sources":["../../src/memory/in-memory-entity-commit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"in-memory-entity-commit.js","sourceRoot":"","sources":["../../src/memory/in-memory-entity-commit.ts"],"names":[],"mappings":"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"}
|
|
@@ -488,6 +488,6 @@ export declare class KeyedSerialQueue {
|
|
|
488
488
|
* @param operation Supplies the operation to run.
|
|
489
489
|
* @returns Resolves to the operation result.
|
|
490
490
|
*/
|
|
491
|
-
run<T>(key: string, operation: () => Promise<T>): Promise<T>;
|
|
491
|
+
run<T>(key: string, operation: () => Promise<T> | T): Promise<T>;
|
|
492
492
|
}
|
|
493
493
|
//# sourceMappingURL=in-memory-entity-history.d.ts.map
|