@spine-event-engine/storage 2.0.0-snapshot.24 → 2.0.0-snapshot.26

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.
Files changed (100) hide show
  1. package/README.md +12 -3
  2. package/REFERENCE.md +76 -68
  3. package/dist/entity/agent-history-record-spec.d.ts +8 -0
  4. package/dist/entity/agent-history-record-spec.d.ts.map +1 -1
  5. package/dist/entity/agent-history-record-spec.js +12 -1
  6. package/dist/entity/agent-history-record-spec.js.map +1 -1
  7. package/dist/entity/agent-history.d.ts +25 -0
  8. package/dist/entity/agent-history.d.ts.map +1 -1
  9. package/dist/entity/agent-history.js.map +1 -1
  10. package/dist/entity/history-conformance.d.ts +38 -8
  11. package/dist/entity/history-conformance.d.ts.map +1 -1
  12. package/dist/entity/history-conformance.js +103 -58
  13. package/dist/entity/history-conformance.js.map +1 -1
  14. package/dist/event/event-store.d.ts +51 -3
  15. package/dist/event/event-store.d.ts.map +1 -1
  16. package/dist/event/event-store.js +171 -27
  17. package/dist/event/event-store.js.map +1 -1
  18. package/dist/internal/agent-model-preferences.d.ts +76 -0
  19. package/dist/internal/agent-model-preferences.d.ts.map +1 -0
  20. package/dist/internal/agent-model-preferences.js +133 -0
  21. package/dist/internal/agent-model-preferences.js.map +1 -0
  22. package/dist/internal/entity-commit.d.ts +64 -8
  23. package/dist/internal/entity-commit.d.ts.map +1 -1
  24. package/dist/internal/entity-commit.js.map +1 -1
  25. package/dist/internal/entity-history.d.ts +1 -7
  26. package/dist/internal/entity-history.d.ts.map +1 -1
  27. package/dist/internal/entity-history.js +0 -5
  28. package/dist/internal/entity-history.js.map +1 -1
  29. package/dist/internal/event-store.d.ts +1 -1
  30. package/dist/internal/event-store.d.ts.map +1 -1
  31. package/dist/internal/event-store.js +1 -1
  32. package/dist/internal/event-store.js.map +1 -1
  33. package/dist/internal/storage-preparation.d.ts +88 -0
  34. package/dist/internal/storage-preparation.d.ts.map +1 -0
  35. package/dist/internal/storage-preparation.js +41 -0
  36. package/dist/internal/storage-preparation.js.map +1 -0
  37. package/dist/internal/tenancy.d.ts +7 -0
  38. package/dist/internal/tenancy.d.ts.map +1 -1
  39. package/dist/memory/in-memory-agent-history.d.ts.map +1 -1
  40. package/dist/memory/in-memory-agent-history.js +22 -7
  41. package/dist/memory/in-memory-agent-history.js.map +1 -1
  42. package/dist/memory/in-memory-entity-commit.d.ts +154 -21
  43. package/dist/memory/in-memory-entity-commit.d.ts.map +1 -1
  44. package/dist/memory/in-memory-entity-commit.js +396 -60
  45. package/dist/memory/in-memory-entity-commit.js.map +1 -1
  46. package/dist/memory/in-memory-entity-history.d.ts.map +1 -1
  47. package/dist/memory/in-memory-entity-history.js +4 -3
  48. package/dist/memory/in-memory-entity-history.js.map +1 -1
  49. package/dist/memory/in-memory-storage-backend.d.ts +33 -1
  50. package/dist/memory/in-memory-storage-backend.d.ts.map +1 -1
  51. package/dist/memory/in-memory-storage-backend.js +118 -1
  52. package/dist/memory/in-memory-storage-backend.js.map +1 -1
  53. package/dist/memory/in-memory-storage-factory.d.ts +71 -12
  54. package/dist/memory/in-memory-storage-factory.d.ts.map +1 -1
  55. package/dist/memory/in-memory-storage-factory.js +199 -25
  56. package/dist/memory/in-memory-storage-factory.js.map +1 -1
  57. package/dist/provider.d.ts +2 -0
  58. package/dist/provider.d.ts.map +1 -1
  59. package/dist/provider.js +2 -0
  60. package/dist/provider.js.map +1 -1
  61. package/dist/storage/storage-factory.d.ts +27 -4
  62. package/dist/storage/storage-factory.d.ts.map +1 -1
  63. package/dist/storage/storage-factory.js +30 -1
  64. package/dist/storage/storage-factory.js.map +1 -1
  65. package/dist/storage/storage.d.ts +2 -1
  66. package/dist/storage/storage.d.ts.map +1 -1
  67. package/dist/tsconfig.tsbuildinfo +1 -1
  68. package/package.json +3 -3
  69. package/dist/entity/agent-execution-record-spec.d.ts +0 -87
  70. package/dist/entity/agent-execution-record-spec.d.ts.map +0 -1
  71. package/dist/entity/agent-execution-record-spec.js +0 -230
  72. package/dist/entity/agent-execution-record-spec.js.map +0 -1
  73. package/dist/entity/agent-execution-sizes.d.ts +0 -30
  74. package/dist/entity/agent-execution-sizes.d.ts.map +0 -1
  75. package/dist/entity/agent-execution-sizes.js +0 -51
  76. package/dist/entity/agent-execution-sizes.js.map +0 -1
  77. package/dist/entity/agent-execution-transitions.d.ts +0 -72
  78. package/dist/entity/agent-execution-transitions.d.ts.map +0 -1
  79. package/dist/entity/agent-execution-transitions.js +0 -165
  80. package/dist/entity/agent-execution-transitions.js.map +0 -1
  81. package/dist/entity/agent-execution-values.d.ts +0 -143
  82. package/dist/entity/agent-execution-values.d.ts.map +0 -1
  83. package/dist/entity/agent-execution-values.js +0 -251
  84. package/dist/entity/agent-execution-values.js.map +0 -1
  85. package/dist/entity/agent-execution.d.ts +0 -235
  86. package/dist/entity/agent-execution.d.ts.map +0 -1
  87. package/dist/entity/agent-execution.js +0 -15
  88. package/dist/entity/agent-execution.js.map +0 -1
  89. package/dist/internal/agent-execution.d.ts +0 -51
  90. package/dist/internal/agent-execution.d.ts.map +0 -1
  91. package/dist/internal/agent-execution.js +0 -53
  92. package/dist/internal/agent-execution.js.map +0 -1
  93. package/dist/memory/agent-execution-head-index.d.ts +0 -52
  94. package/dist/memory/agent-execution-head-index.d.ts.map +0 -1
  95. package/dist/memory/agent-execution-head-index.js +0 -91
  96. package/dist/memory/agent-execution-head-index.js.map +0 -1
  97. package/dist/memory/in-memory-agent-execution.d.ts +0 -21
  98. package/dist/memory/in-memory-agent-execution.d.ts.map +0 -1
  99. package/dist/memory/in-memory-agent-execution.js +0 -587
  100. package/dist/memory/in-memory-agent-execution.js.map +0 -1
@@ -12,6 +12,7 @@
12
12
  * the License.
13
13
  */
14
14
  import { eventHistorySpec, stateHistorySpec } from "../entity/entity-history-record-spec.js";
15
+ import { eventStoreRecordSpec, EventStoreGroups } from "../event/event-store.js";
15
16
  import { StorageFactory } from "../storage/storage-factory.js";
16
17
  import { TenantBoundary, TenantCatalogReads, } from "../internal/tenancy.js";
17
18
  import { InMemoryStorageBackend } from "./in-memory-storage-backend.js";
@@ -21,9 +22,10 @@ import { MemoryEntityStorageFactory } from "./in-memory-entity-history.js";
21
22
  import { MemoryEntityCommitStorage } from "./in-memory-entity-commit.js";
22
23
  import { EntityCommitStorageFactories, } from "../internal/entity-commit.js";
23
24
  import { AgentHistoryStorageFactories } from "../internal/agent-history.js";
25
+ import { AgentHistoryRecords } from "../entity/agent-history-record-spec.js";
26
+ import { AgentModelPreferences } from "../internal/agent-model-preferences.js";
27
+ import { StoragePreparations, } from "../internal/storage-preparation.js";
24
28
  import { MemoryAgentHistory } from "./in-memory-agent-history.js";
25
- import { AgentExecutionStorageFactories } from "../internal/agent-execution.js";
26
- import { MemoryAgentExecution } from "./in-memory-agent-execution.js";
27
29
  /**
28
30
  * In-memory factory for record storages and framework delegates such as the event store.
29
31
  */
@@ -31,6 +33,8 @@ export class InMemoryStorageFactory extends StorageFactory {
31
33
  #backend;
32
34
  #entities;
33
35
  #catalog;
36
+ #commits = new Set();
37
+ #closing;
34
38
  /**
35
39
  * Creates a factory with a fresh backend, or deliberately shares one.
36
40
  *
@@ -44,12 +48,147 @@ export class InMemoryStorageFactory extends StorageFactory {
44
48
  AgentHistoryStorageFactories.register(this, {
45
49
  createAgentHistoryStorage: (input) => this.createAgentHistoryStorage(input),
46
50
  });
47
- AgentExecutionStorageFactories.register(this, {
48
- createAgentExecutionStorage: (input) => this.createAgentExecutionStorage(input),
49
- });
50
51
  EntityCommitStorageFactories.register(this, {
51
52
  createEntityCommitStorage: (input) => this.createEntityCommitStorage(input),
52
53
  });
54
+ StoragePreparations.register(this, {
55
+ prepareRecord: (context, spec, group) => this.prepareRecord(context, spec, group),
56
+ prepareEntity: (input) => this.prepareEntity(input),
57
+ prepareAgentHistory: (input) => this.prepareAgentHistory(input),
58
+ prepareAgentCommit: (input) => this.prepareAgentCommit(input),
59
+ });
60
+ }
61
+ /**
62
+ * Validates the local memory connection while the factory remains open.
63
+ *
64
+ * @returns Completion without a remote request or tenant admission.
65
+ */
66
+ checkConnection() {
67
+ return this.isOpen()
68
+ ? Promise.resolve()
69
+ : Promise.reject(new Error("StorageFactory is closed."));
70
+ }
71
+ /**
72
+ * Checks one ordinary record definition without constructing a handle.
73
+ *
74
+ * @typeParam I Record identifier type.
75
+ * @typeParam R Record message type.
76
+ * @param context Complete storage scope.
77
+ * @param spec Declarative record family.
78
+ * @param group Optional physical group.
79
+ * @returns Completion after local validation.
80
+ */
81
+ prepareRecord(context, spec, group) {
82
+ try {
83
+ if (!this.isOpen())
84
+ throw new Error("StorageFactory is closed.");
85
+ this.declareRecord(context, spec, group);
86
+ return Promise.resolve();
87
+ }
88
+ catch (error) {
89
+ return Promise.reject(error instanceof Error ? error : new Error("Memory preparation failed.", { cause: error }));
90
+ }
91
+ }
92
+ /**
93
+ * Checks current Entity and enabled histories without constructing handles.
94
+ *
95
+ * @typeParam I Entity identifier type.
96
+ * @typeParam S Entity state type.
97
+ * @param input Declarative Entity layout.
98
+ * @returns Completion after local validation.
99
+ */
100
+ prepareEntity(input) {
101
+ try {
102
+ if (!this.isOpen())
103
+ throw new Error("StorageFactory is closed.");
104
+ this.declareEntity(input);
105
+ return Promise.resolve();
106
+ }
107
+ catch (error) {
108
+ return Promise.reject(error instanceof Error ? error : new Error("Memory preparation failed.", { cause: error }));
109
+ }
110
+ }
111
+ /**
112
+ * Checks the surviving Agent audit family without creating records.
113
+ *
114
+ * @typeParam I Agent identifier type.
115
+ * @param input Agent state type and complete scope.
116
+ * @returns Completion after local validation.
117
+ */
118
+ prepareAgentHistory(input) {
119
+ try {
120
+ if (!this.isOpen())
121
+ throw new Error("StorageFactory is closed.");
122
+ TenantBoundary.of(input.context);
123
+ if (input.stateType.trim().length === 0)
124
+ throw new TypeError("Agent state type is required.");
125
+ return Promise.resolve();
126
+ }
127
+ catch (error) {
128
+ return Promise.reject(error instanceof Error ? error : new Error("Memory preparation failed.", { cause: error }));
129
+ }
130
+ }
131
+ /**
132
+ * Creates the Agent's current, enabled history, audit, and preference families.
133
+ * @param input Complete declarative Agent Entity layout.
134
+ * @returns Completion after local compatibility validation.
135
+ * @typeParam I Typed Agent identifier.
136
+ * @typeParam S Generated Agent state.
137
+ */
138
+ prepareAgentCommit(input) {
139
+ try {
140
+ if (!this.isOpen())
141
+ throw new Error("StorageFactory is closed.");
142
+ this.declareEntity(input);
143
+ this.declareRecord(input.context, AgentHistoryRecords.spec((value) => value), AgentHistoryRecords.group);
144
+ this.declareRecord(input.context, AgentModelPreferences.spec((value) => value), AgentModelPreferences.group);
145
+ if (input.stateSchema.typeName.trim().length === 0)
146
+ throw new TypeError("Agent state type is required.");
147
+ return Promise.resolve();
148
+ }
149
+ catch (error) {
150
+ return Promise.reject(error instanceof Error
151
+ ? error
152
+ : new Error("Memory Agent preparation failed.", { cause: error }));
153
+ }
154
+ }
155
+ /**
156
+ * Records all Entity family definitions without opening tenant slices.
157
+ *
158
+ * @typeParam I Entity identifier type.
159
+ * @typeParam S Entity state type.
160
+ * @param input Declarative Entity layout.
161
+ */
162
+ declareEntity(input) {
163
+ const tenant = TenantBoundary.of(input.context);
164
+ if (!InMemoryStorageBackend.sameColumns(input.columns, input.recordSpec.columns))
165
+ throw new Error("Memory Entity query columns differ from the current record definition.");
166
+ InMemoryStorageBackend.define(this.#backend, "entity", tenant, input.sourceType.typeName, input.recordSpec);
167
+ if (input.stateHistory) {
168
+ const history = stateHistorySpec(input.stateSchema);
169
+ this.declareRecord(input.context, history.spec, history.group);
170
+ }
171
+ if (input.eventHistory) {
172
+ const history = eventHistorySpec(input.stateSchema);
173
+ this.declareRecord(input.context, history.spec, history.group);
174
+ }
175
+ this.declareRecord(input.context, eventStoreRecordSpec, EventStoreGroups.forContext(input.context.name));
176
+ }
177
+ /**
178
+ * Records an ordinary physical family without admitting a tenant.
179
+ *
180
+ * @typeParam I Record identifier type.
181
+ * @typeParam R Record message type.
182
+ * @param context Complete storage scope.
183
+ * @param spec Declarative record layout.
184
+ * @param group Optional physical group.
185
+ */
186
+ declareRecord(context, spec, group) {
187
+ const family = JSON.stringify([
188
+ spec.sourceType.typeName,
189
+ group === undefined ? null : (EventStoreGroups.identity(group) ?? group.name),
190
+ ]);
191
+ InMemoryStorageBackend.define(this.#backend, "record", TenantBoundary.of(context), family, spec);
53
192
  }
54
193
  /**
55
194
  * Returns the factory's view of admitted in-memory tenant slices.
@@ -60,11 +199,39 @@ export class InMemoryStorageFactory extends StorageFactory {
60
199
  return this.#catalog;
61
200
  }
62
201
  /**
63
- * Closes the catalog view and this factory.
202
+ * Closes retained resources after admitted work settles.
203
+ *
204
+ * @returns The repeatable close outcome.
64
205
  */
65
206
  close() {
66
- void this.#catalog.close();
67
- super.close();
207
+ this.fenceClose();
208
+ if (this.#closing !== undefined)
209
+ return this.#closing;
210
+ const commits = [...this.#commits].map((handle) => handle.close());
211
+ return (this.#closing = this.drain(commits));
212
+ }
213
+ /**
214
+ * Waits for commit handles, then reports their and catalog cleanup failures.
215
+ *
216
+ * @param commits The admitted commit completions.
217
+ * @returns Completion after admitted work and cleanup settle.
218
+ */
219
+ async drain(commits) {
220
+ const settled = await Promise.allSettled(commits);
221
+ const failures = [];
222
+ for (const result of settled)
223
+ if (result.status === "rejected")
224
+ failures.push(result.reason);
225
+ try {
226
+ await this.#catalog.close();
227
+ }
228
+ catch (error) {
229
+ failures.push(error);
230
+ }
231
+ if (failures.length === 1)
232
+ throw failures[0];
233
+ if (failures.length)
234
+ throw new AggregateError(failures, "Memory storage factory close failed.");
68
235
  }
69
236
  /**
70
237
  * Creates the internal latest-state/history seam used by framework repositories.
@@ -79,6 +246,7 @@ export class InMemoryStorageFactory extends StorageFactory {
79
246
  if (!this.isOpen())
80
247
  throw new Error("StorageFactory is closed.");
81
248
  const entity = input;
249
+ this.declareEntity(entity);
82
250
  const stateHistory = entity.stateHistory ? stateHistorySpec(entity.stateSchema) : undefined;
83
251
  const eventHistory = entity.eventHistory ? eventHistorySpec(entity.stateSchema) : undefined;
84
252
  return this.#entities.create({
@@ -106,7 +274,10 @@ export class InMemoryStorageFactory extends StorageFactory {
106
274
  createEntityCommitStorage(input) {
107
275
  if (!this.isOpen())
108
276
  throw new Error("StorageFactory is closed.");
109
- return new MemoryEntityCommitStorage(this.#entities, (context, spec, group) => this.tenantRecords(context, spec, group), input);
277
+ this.declareEntity(input);
278
+ const handle = new MemoryEntityCommitStorage(this.#entities, (context, spec, group) => this.tenantRecords(context, spec, group), input, this.#backend, () => this.#commits.delete(handle));
279
+ this.#commits.add(handle);
280
+ return handle;
110
281
  }
111
282
  /**
112
283
  * Creates an indexed Agent history handle for this memory factory.
@@ -118,21 +289,10 @@ export class InMemoryStorageFactory extends StorageFactory {
118
289
  createAgentHistoryStorage(input) {
119
290
  if (!this.isOpen())
120
291
  throw new Error("StorageFactory is closed.");
292
+ if (input.stateType.trim().length === 0)
293
+ throw new TypeError("Agent state type is required.");
121
294
  return MemoryAgentHistory.open(this.#backend, input);
122
295
  }
123
- /**
124
- * Opens a durable Agent execution handle against this shared memory backend.
125
- *
126
- * @typeParam I Typed Agent identifier.
127
- * @typeParam S Generated Agent state.
128
- * @param input Agent repository and Entity layout.
129
- * @returns Independently closeable execution handle.
130
- */
131
- createAgentExecutionStorage(input) {
132
- if (!this.isOpen())
133
- throw new Error("StorageFactory is closed.");
134
- return MemoryAgentExecution.open(this.#backend, this, input);
135
- }
136
296
  /**
137
297
  * Creates an in-memory record storage.
138
298
  *
@@ -144,6 +304,7 @@ export class InMemoryStorageFactory extends StorageFactory {
144
304
  * @returns The created record storage.
145
305
  */
146
306
  onCreateRecordStorage(context, recordSpec, group) {
307
+ this.declareRecord(context, recordSpec, group);
147
308
  return new InMemoryRecordStorage(context, recordSpec, () => this.tenantRecords(context, recordSpec, group));
148
309
  }
149
310
  /**
@@ -158,7 +319,10 @@ export class InMemoryStorageFactory extends StorageFactory {
158
319
  */
159
320
  tenantRecords(context, recordSpec, group) {
160
321
  const tenant = TenantBoundary.of(context);
161
- const family = JSON.stringify([recordSpec.sourceType.typeName, group?.name ?? null]);
322
+ const family = JSON.stringify([
323
+ recordSpec.sourceType.typeName,
324
+ group === undefined ? null : (EventStoreGroups.identity(group) ?? group.name),
325
+ ]);
162
326
  return InMemoryStorageBackend.bind(this.#backend, "record", tenant, family, () => new TenantRecords());
163
327
  }
164
328
  }
@@ -170,13 +334,23 @@ class MemoryTenantCatalog {
170
334
  #cursorIdentity = {};
171
335
  #open = true;
172
336
  /**
173
- * Binds the catalog to its memory backend.
337
+ * Binds explicit membership to the shared memory backend.
174
338
  *
175
- * @param backend Backend retaining tenant boundaries.
339
+ * @param backend Backend retaining registered tenant boundaries.
176
340
  */
177
341
  constructor(backend) {
178
342
  this.backend = backend;
179
343
  }
344
+ /**
345
+ * Checks explicit membership without admitting a storage family.
346
+ *
347
+ * @param boundary Complete tenant boundary to inspect.
348
+ * @returns Whether the boundary was registered through this catalog.
349
+ */
350
+ contains(boundary) {
351
+ this.requireOpen();
352
+ return Promise.resolve(InMemoryStorageBackend.contains(this.backend, boundary));
353
+ }
180
354
  /**
181
355
  * Reads admitted tenant boundaries.
182
356
  *
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-storage-factory.js","sourceRoot":"","sources":["../../src/memory/in-memory-storage-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory-storage-factory.js","sourceRoot":"","sources":["../../src/memory/in-memory-storage-factory.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,11 @@ import type { EntityRecord as EntityRecordValue } from "./entity/entity-record.j
3
3
  * Exports provider-only contracts for implementing a Spine storage adapter.
4
4
  */
5
5
  export * from "./internal/entity-commit.js";
6
+ export * from "./internal/agent-model-preferences.js";
6
7
  export * from "./internal/entity-history.js";
7
8
  export * from "./internal/event-store.js";
8
9
  export * from "./internal/query-values.js";
10
+ export * from "./internal/storage-preparation.js";
9
11
  export * from "./internal/tenancy.js";
10
12
  /**
11
13
  * A persisted entity record supplied to a storage-provider implementation.
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnF;;GAEG;AACH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnF;;GAEG;AACH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC"}
package/dist/provider.js CHANGED
@@ -15,8 +15,10 @@
15
15
  * Exports provider-only contracts for implementing a Spine storage adapter.
16
16
  */
17
17
  export * from "./internal/entity-commit.js";
18
+ export * from "./internal/agent-model-preferences.js";
18
19
  export * from "./internal/entity-history.js";
19
20
  export * from "./internal/event-store.js";
20
21
  export * from "./internal/query-values.js";
22
+ export * from "./internal/storage-preparation.js";
21
23
  export * from "./internal/tenancy.js";
22
24
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;GAEG;AACH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;GAEG;AACH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC"}
@@ -2,18 +2,34 @@ import type { Message } from "@bufbuild/protobuf";
2
2
  import type { RecordSpec } from "../record/record-spec.js";
3
3
  import type { RecordStorage } from "../record/record-storage.js";
4
4
  import type { StorageGroup } from "../record/storage-group.js";
5
- import type { Storage, StorageContext } from "./storage.js";
5
+ import type { StorageContext } from "./storage.js";
6
6
  /**
7
7
  * Mandatory storage-adapter seam for Spine TS runtime storage.
8
8
  */
9
- export declare abstract class StorageFactory implements Storage {
9
+ export declare abstract class StorageFactory {
10
10
  #private;
11
11
  /**
12
- * Closes the storage factory. Future storage creation fails.
12
+ * Closes retained resources after admitted work settles.
13
+ *
14
+ * @returns The repeatable factory close outcome.
15
+ */
16
+ close(): Promise<void>;
17
+ /**
18
+ * Checks the configured shared destination without preparing record families.
19
+ *
20
+ * Memory validates locally; remote providers perform their documented read-only check.
21
+ * Providers without a connection diagnostic reject explicitly.
22
+ *
23
+ * @returns Completion after the read-only connection check.
13
24
  */
14
- close(): void;
25
+ checkConnection(): Promise<void>;
26
+ /**
27
+ * Stops admitting new factory operations synchronously.
28
+ */
29
+ protected fenceClose(): void;
15
30
  /**
16
31
  * Returns whether the storage factory accepts storage creation.
32
+ *
17
33
  * @returns Whether the factory is open.
18
34
  */
19
35
  isOpen(): boolean;
@@ -28,6 +44,8 @@ export declare abstract class StorageFactory implements Storage {
28
44
  * @param recordSpec Supplies the declarative physical record layout.
29
45
  * @param group Separates records that share one source type.
30
46
  * @returns The independently closeable record storage handle.
47
+ * @typeParam I Entity identifier or record type.
48
+ * @typeParam R Entity identifier or record type.
31
49
  */
32
50
  createRecordStorage<I, R extends Message>(context: StorageContext, recordSpec: RecordSpec<I, R>, group?: StorageGroup): RecordStorage<I, R>;
33
51
  /**
@@ -37,8 +55,13 @@ export declare abstract class StorageFactory implements Storage {
37
55
  * @param recordSpec The record specification.
38
56
  * @param group Separates records that share one source type.
39
57
  * @returns The created record storage.
58
+ * @typeParam I Entity identifier or record type.
59
+ * @typeParam R Entity identifier or record type.
40
60
  */
41
61
  protected abstract onCreateRecordStorage<I, R extends Message>(context: StorageContext, recordSpec: RecordSpec<I, R>, group?: StorageGroup): RecordStorage<I, R>;
62
+ /**
63
+ * Checks that the factory remains open before creating storage.
64
+ */
42
65
  private requireOpen;
43
66
  }
44
67
  //# sourceMappingURL=storage-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-factory.d.ts","sourceRoot":"","sources":["../../src/storage/storage-factory.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE5D;;GAEG;AACH,8BAAsB,cAAe,YAAW,OAAO;;IAGrD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,MAAM,IAAI,OAAO;IAIjB;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EACtC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,KAAK,CAAC,EAAE,YAAY,GACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAKtB;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAC3D,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,KAAK,CAAC,EAAE,YAAY,GACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAEtB,OAAO,CAAC,WAAW;CAKpB"}
1
+ {"version":3,"file":"storage-factory.d.ts","sourceRoot":"","sources":["../../src/storage/storage-factory.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD;;GAEG;AACH,8BAAsB,cAAc;;IAKlC;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB;;;;;;;OAOG;IACH,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAKhC;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,IAAI;IAI5B;;;;OAIG;IACH,MAAM,IAAI,OAAO;IAIjB;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EACtC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,KAAK,CAAC,EAAE,YAAY,GACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAKtB;;;;;;;;;OASG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAC3D,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,KAAK,CAAC,EAAE,YAAY,GACnB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,WAAW;CAKpB"}
@@ -16,14 +16,38 @@
16
16
  */
17
17
  export class StorageFactory {
18
18
  #open = true;
19
+ #closing;
19
20
  /**
20
- * Closes the storage factory. Future storage creation fails.
21
+ * Closes retained resources after admitted work settles.
22
+ *
23
+ * @returns The repeatable factory close outcome.
21
24
  */
22
25
  close() {
26
+ this.fenceClose();
27
+ return (this.#closing ??= Promise.resolve());
28
+ }
29
+ /**
30
+ * Checks the configured shared destination without preparing record families.
31
+ *
32
+ * Memory validates locally; remote providers perform their documented read-only check.
33
+ * Providers without a connection diagnostic reject explicitly.
34
+ *
35
+ * @returns Completion after the read-only connection check.
36
+ */
37
+ checkConnection() {
38
+ if (!this.#open)
39
+ return Promise.reject(new Error("StorageFactory is closed."));
40
+ return Promise.reject(new Error("StorageFactory does not support connection checks."));
41
+ }
42
+ /**
43
+ * Stops admitting new factory operations synchronously.
44
+ */
45
+ fenceClose() {
23
46
  this.#open = false;
24
47
  }
25
48
  /**
26
49
  * Returns whether the storage factory accepts storage creation.
50
+ *
27
51
  * @returns Whether the factory is open.
28
52
  */
29
53
  isOpen() {
@@ -40,11 +64,16 @@ export class StorageFactory {
40
64
  * @param recordSpec Supplies the declarative physical record layout.
41
65
  * @param group Separates records that share one source type.
42
66
  * @returns The independently closeable record storage handle.
67
+ * @typeParam I Entity identifier or record type.
68
+ * @typeParam R Entity identifier or record type.
43
69
  */
44
70
  createRecordStorage(context, recordSpec, group) {
45
71
  this.requireOpen();
46
72
  return this.onCreateRecordStorage(context, recordSpec, group);
47
73
  }
74
+ /**
75
+ * Checks that the factory remains open before creating storage.
76
+ */
48
77
  requireOpen() {
49
78
  if (!this.#open) {
50
79
  throw new Error("StorageFactory is closed.");
@@ -1 +1 @@
1
- {"version":3,"file":"storage-factory.js","sourceRoot":"","sources":["../../src/storage/storage-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH;;GAEG;AACH,MAAM,OAAgB,cAAc;IAClC,KAAK,GAAG,IAAI,CAAC;IAEb;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,mBAAmB,CACjB,OAAuB,EACvB,UAA4B,EAC5B,KAAoB;QAEpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAgBO,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"storage-factory.js","sourceRoot":"","sources":["../../src/storage/storage-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH;;GAEG;AACH,MAAM,OAAgB,cAAc;IAClC,KAAK,GAAG,IAAI,CAAC;IAEb,QAAQ,CAA4B;IAEpC;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;OAOG;IACH,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAC/E,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACO,UAAU;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CACjB,OAAuB,EACvB,UAA4B,EAC5B,KAAoB;QAEpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAkBD;;OAEG;IACK,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Common closeable contract shared by storage factories and concrete storages.
2
+ * Synchronous closeable contract for individual storage handles.
3
+ * Factories expose their separate asynchronous close completion.
3
4
  */
4
5
  export interface Storage {
5
6
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/storage/storage.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAM,WAAW,OAAO;IAGtB;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAG1B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAG3B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GAAG,CACA;IAGE;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B,GACD;IAGE;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CACJ,CAAC;AACF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/storage/storage.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,MAAM,WAAW,OAAO;IAGtB;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAG1B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAG3B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GAAG,CACA;IAGE;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B,GACD;IAGE;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CACJ,CAAC;AACF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC"}