@spine-event-engine/storage-datastore 2.0.0-snapshot.10
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/LICENSE +201 -0
- package/README.md +262 -0
- package/REFERENCE.md +147 -0
- package/dist/datastore/column-mapping.d.ts +28 -0
- package/dist/datastore/column-mapping.d.ts.map +1 -0
- package/dist/datastore/column-mapping.js +141 -0
- package/dist/datastore/column-mapping.js.map +1 -0
- package/dist/datastore/delivery-cleanup.d.ts +31 -0
- package/dist/datastore/delivery-cleanup.d.ts.map +1 -0
- package/dist/datastore/delivery-cleanup.js +111 -0
- package/dist/datastore/delivery-cleanup.js.map +1 -0
- package/dist/datastore/entity-history.d.ts +82 -0
- package/dist/datastore/entity-history.d.ts.map +1 -0
- package/dist/datastore/entity-history.js +541 -0
- package/dist/datastore/entity-history.js.map +1 -0
- package/dist/datastore/id-column.d.ts +34 -0
- package/dist/datastore/id-column.d.ts.map +1 -0
- package/dist/datastore/id-column.js +103 -0
- package/dist/datastore/id-column.js.map +1 -0
- package/dist/datastore/namespace.d.ts +81 -0
- package/dist/datastore/namespace.d.ts.map +1 -0
- package/dist/datastore/namespace.js +123 -0
- package/dist/datastore/namespace.js.map +1 -0
- package/dist/datastore/record-storage.d.ts +223 -0
- package/dist/datastore/record-storage.d.ts.map +1 -0
- package/dist/datastore/record-storage.js +855 -0
- package/dist/datastore/record-storage.js.map +1 -0
- package/dist/datastore/storage-factory.d.ts +200 -0
- package/dist/datastore/storage-factory.d.ts.map +1 -0
- package/dist/datastore/storage-factory.js +224 -0
- package/dist/datastore/storage-factory.js.map +1 -0
- package/dist/datastore/tenant-catalog.d.ts +50 -0
- package/dist/datastore/tenant-catalog.d.ts.map +1 -0
- package/dist/datastore/tenant-catalog.js +154 -0
- package/dist/datastore/tenant-catalog.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/index.yaml +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-storage.js","sourceRoot":"","sources":["../../src/datastore/record-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import type { Message } from "@bufbuild/protobuf";
|
|
2
|
+
import type { GenMessage } from "@bufbuild/protobuf/codegenv2";
|
|
3
|
+
import { Datastore } from "@google-cloud/datastore";
|
|
4
|
+
import { StringifierRegistry } from "@spine-event-engine/core";
|
|
5
|
+
import { RecordStorage, StorageFactory, type RecordSpec, type StorageContext, type StorageGroup } from "@spine-event-engine/storage";
|
|
6
|
+
import { type TenantCatalog, type TenantCatalogProvider } from "@spine-event-engine/storage/provider";
|
|
7
|
+
import type { EntityCommitStorage, EntityEventHistoryPort, EntityRecordStorage, EntityStateHistoryPort, EntityStorageInput } from "@spine-event-engine/storage/provider";
|
|
8
|
+
import { type NamespaceConverter } from "./namespace.js";
|
|
9
|
+
/**
|
|
10
|
+
* Describes the physical Datastore kind used for a record family.
|
|
11
|
+
*/
|
|
12
|
+
export interface RecordLayout {
|
|
13
|
+
/**
|
|
14
|
+
* Names the physical Datastore kind.
|
|
15
|
+
*/
|
|
16
|
+
readonly kind: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Creates a customized provider for one record family.
|
|
20
|
+
*
|
|
21
|
+
* A custom provider owns tenant, ID, and column mapping. Builder-configured
|
|
22
|
+
* namespace converters and stringifiers are not passed to this callback.
|
|
23
|
+
*
|
|
24
|
+
* @param context The storage context.
|
|
25
|
+
* @param recordSpec The record-family contract.
|
|
26
|
+
* @param client The caller-owned Datastore client.
|
|
27
|
+
* @param maxClientSideScan The finite reconciliation bound.
|
|
28
|
+
* @returns The customized storage handle.
|
|
29
|
+
*/
|
|
30
|
+
export type CreateRecordStorage<R extends Message = Message> = <I>(context: StorageContext, recordSpec: RecordSpec<I, R>, client: Datastore, maxClientSideScan: number) => RecordStorage<I, R>;
|
|
31
|
+
/**
|
|
32
|
+
* Creates a coherent customized persistence provider for one Entity type.
|
|
33
|
+
*
|
|
34
|
+
* A custom provider owns tenant, ID, and column mapping. Builder-configured
|
|
35
|
+
* namespace converters and stringifiers are not passed to this callback.
|
|
36
|
+
*
|
|
37
|
+
* @param input The Entity storage contract.
|
|
38
|
+
* @param client The caller-owned Datastore client.
|
|
39
|
+
* @returns The customized Entity storage handle.
|
|
40
|
+
*/
|
|
41
|
+
export type CreateEntityStorage<S extends Message = Message> = <I>(input: EntityStorageInput<I, S>, client: Datastore) => DatastoreEntityStorageHandle<I, S>;
|
|
42
|
+
/**
|
|
43
|
+
* Groups the current state, histories, and commits for one Entity type.
|
|
44
|
+
*/
|
|
45
|
+
export interface DatastoreEntityStorageHandle<I, S extends Message> {
|
|
46
|
+
/**
|
|
47
|
+
* Provides current Entity record access.
|
|
48
|
+
*/
|
|
49
|
+
readonly current: EntityRecordStorage<I>;
|
|
50
|
+
/**
|
|
51
|
+
* Provides retained state history access.
|
|
52
|
+
*/
|
|
53
|
+
readonly states: EntityStateHistoryPort<I, S>;
|
|
54
|
+
/**
|
|
55
|
+
* Provides retained diagnostic event history access.
|
|
56
|
+
*/
|
|
57
|
+
readonly events: EntityEventHistoryPort<I>;
|
|
58
|
+
/**
|
|
59
|
+
* Provides atomic Entity commit access.
|
|
60
|
+
*/
|
|
61
|
+
readonly commits: EntityCommitStorage;
|
|
62
|
+
/**
|
|
63
|
+
* Returns whether the handle remains open.
|
|
64
|
+
*
|
|
65
|
+
* @returns `true` while operations are accepted.
|
|
66
|
+
*/
|
|
67
|
+
isOpen(): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Closes the handle.
|
|
70
|
+
*/
|
|
71
|
+
close(): void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Configures a Datastore storage factory before it is built.
|
|
75
|
+
*/
|
|
76
|
+
export interface DatastoreStorageFactoryBuilder {
|
|
77
|
+
/**
|
|
78
|
+
* Sets the caller-owned Datastore client.
|
|
79
|
+
*
|
|
80
|
+
* @param client Supplies the Datastore client.
|
|
81
|
+
* @returns Returns this builder.
|
|
82
|
+
*/
|
|
83
|
+
setClient(client: Datastore): this;
|
|
84
|
+
/**
|
|
85
|
+
* Sets the reversible converter used for multitenant native namespaces.
|
|
86
|
+
*
|
|
87
|
+
* @param converter Converts complete tenants to and from owned namespaces.
|
|
88
|
+
* @returns Returns this builder.
|
|
89
|
+
*/
|
|
90
|
+
setNamespaceConverter(converter: NamespaceConverter): this;
|
|
91
|
+
/**
|
|
92
|
+
* Sets custom reversible message stringifiers used by IDs and columns.
|
|
93
|
+
*
|
|
94
|
+
* @param registry Supplies schema-bound message stringifiers.
|
|
95
|
+
* @returns Returns this builder.
|
|
96
|
+
*/
|
|
97
|
+
setStringifierRegistry(registry: StringifierRegistry): this;
|
|
98
|
+
/**
|
|
99
|
+
* Sets a physical kind for every use of a record type.
|
|
100
|
+
*
|
|
101
|
+
* @param recordType The record type that receives the layout.
|
|
102
|
+
* @param layout The selected physical layout.
|
|
103
|
+
* @returns This builder.
|
|
104
|
+
*/
|
|
105
|
+
organizeRecords<R extends Message>(recordType: GenMessage<R>, layout: RecordLayout): this;
|
|
106
|
+
/**
|
|
107
|
+
* Sets a physical kind for one source and record-type pair.
|
|
108
|
+
*
|
|
109
|
+
* @param sourceType The Entity state type that owns the records.
|
|
110
|
+
* @param recordType The record type that receives the layout.
|
|
111
|
+
* @param layout The selected physical layout.
|
|
112
|
+
* @returns This builder.
|
|
113
|
+
*/
|
|
114
|
+
organizeRecords<S extends Message, R extends Message>(sourceType: GenMessage<S>, recordType: GenMessage<R>, layout: RecordLayout): this;
|
|
115
|
+
/**
|
|
116
|
+
* Sets a custom provider for every use of a record type.
|
|
117
|
+
*
|
|
118
|
+
* @param recordType The record type served by the provider.
|
|
119
|
+
* @param creator The custom record-storage provider.
|
|
120
|
+
* @returns This builder.
|
|
121
|
+
*/
|
|
122
|
+
useRecordStorage<R extends Message>(recordType: GenMessage<R>, creator: CreateRecordStorage<R>): this;
|
|
123
|
+
/**
|
|
124
|
+
* Sets a custom provider for one source and record-type pair.
|
|
125
|
+
*
|
|
126
|
+
* @param sourceType The Entity state type that owns the records.
|
|
127
|
+
* @param recordType The record type served by the provider.
|
|
128
|
+
* @param creator The custom record-storage provider.
|
|
129
|
+
* @returns This builder.
|
|
130
|
+
*/
|
|
131
|
+
useRecordStorage<S extends Message, R extends Message>(sourceType: GenMessage<S>, recordType: GenMessage<R>, creator: CreateRecordStorage<R>): this;
|
|
132
|
+
/**
|
|
133
|
+
* Sets a custom persistence provider for one Entity state type.
|
|
134
|
+
*
|
|
135
|
+
* @param sourceType The Entity state type served by the provider.
|
|
136
|
+
* @param creator The custom Entity persistence provider.
|
|
137
|
+
* @returns This builder.
|
|
138
|
+
*/
|
|
139
|
+
useEntityStorage<S extends Message>(sourceType: GenMessage<S>, creator: CreateEntityStorage<S>): this;
|
|
140
|
+
/**
|
|
141
|
+
* Builds a Datastore storage factory from this configuration.
|
|
142
|
+
*
|
|
143
|
+
* @returns The configured storage factory.
|
|
144
|
+
*/
|
|
145
|
+
build(): DatastoreStorageFactory;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* A Google Cloud Datastore-backed implementation of the Spine TS storage port.
|
|
149
|
+
*/
|
|
150
|
+
export declare class DatastoreStorageFactory extends StorageFactory implements TenantCatalogProvider {
|
|
151
|
+
#private;
|
|
152
|
+
/**
|
|
153
|
+
* Starts a mutable factory configuration.
|
|
154
|
+
*
|
|
155
|
+
* @returns A new factory builder.
|
|
156
|
+
*/
|
|
157
|
+
static newBuilder(): DatastoreStorageFactoryBuilder;
|
|
158
|
+
/**
|
|
159
|
+
* Creates a factory from resolved dependencies.
|
|
160
|
+
*
|
|
161
|
+
* @param client The caller-owned Datastore client.
|
|
162
|
+
* @param recordCreators Custom record-storage providers by record family.
|
|
163
|
+
* @param layouts Physical record layouts by record family.
|
|
164
|
+
* @param entityCreators Custom Entity persistence providers by Entity type.
|
|
165
|
+
* @param namespaceConverter Converts complete tenants to native namespaces.
|
|
166
|
+
* @param stringifiers Converts message-valued IDs and columns.
|
|
167
|
+
* @internal
|
|
168
|
+
*/
|
|
169
|
+
private constructor();
|
|
170
|
+
/**
|
|
171
|
+
* Creates the selected Entity provider bundle.
|
|
172
|
+
*
|
|
173
|
+
* @param input The Entity persistence contract.
|
|
174
|
+
* @returns The coherent Entity storage handle.
|
|
175
|
+
*/
|
|
176
|
+
createEntityStorage<I, S extends Message>(input: EntityStorageInput<I, S>): DatastoreEntityStorageHandle<I, S>;
|
|
177
|
+
/**
|
|
178
|
+
* Creates provider-specific Datastore record storage.
|
|
179
|
+
*
|
|
180
|
+
* @param context The storage context.
|
|
181
|
+
* @param recordSpec The record specification.
|
|
182
|
+
* @param group Separates records that share one source type.
|
|
183
|
+
* @returns The created Datastore record storage.
|
|
184
|
+
*/
|
|
185
|
+
protected onCreateRecordStorage<I, R extends Message>(context: StorageContext, recordSpec: RecordSpec<I, R>, group?: StorageGroup): RecordStorage<I, R>;
|
|
186
|
+
private createEntityRecordStorage;
|
|
187
|
+
private cleanupStorage;
|
|
188
|
+
private resolve;
|
|
189
|
+
/**
|
|
190
|
+
* Returns the provider-owned native namespace catalog.
|
|
191
|
+
*
|
|
192
|
+
* @returns The Datastore tenant catalog.
|
|
193
|
+
*/
|
|
194
|
+
tenantCatalog(): TenantCatalog;
|
|
195
|
+
/**
|
|
196
|
+
* Closes the factory and its native tenant catalog.
|
|
197
|
+
*/
|
|
198
|
+
close(): void;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=storage-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-factory.d.ts","sourceRoot":"","sources":["../../src/datastore/storage-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026, CodeMatters. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
|
5
|
+
* in compliance with the License. You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
|
10
|
+
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
|
11
|
+
* or implied. See the License for the specific language governing permissions and limitations under
|
|
12
|
+
* the License.
|
|
13
|
+
*/
|
|
14
|
+
import { Datastore } from "@google-cloud/datastore";
|
|
15
|
+
import { StringifierRegistry } from "@spine-event-engine/core";
|
|
16
|
+
import { RecordStorage, StorageFactory, } from "@spine-event-engine/storage";
|
|
17
|
+
import {} from "@spine-event-engine/storage/provider";
|
|
18
|
+
import { EntityCommitStorageFactories } from "@spine-event-engine/storage/provider";
|
|
19
|
+
import { DeliveryCleanupStorageFactories } from "@spine-event-engine/storage/provider";
|
|
20
|
+
import { DatastoreEntityCommitStorage, DatastoreEntityStorage, } from "./entity-history.js";
|
|
21
|
+
import { DatastoreRecordStorage } from "./record-storage.js";
|
|
22
|
+
import { DatastoreDeliveryCleanupStorage } from "./delivery-cleanup.js";
|
|
23
|
+
import { DefaultNamespaceConverter, NamespaceAssignments, } from "./namespace.js";
|
|
24
|
+
import { DatastoreTenantCatalog } from "./tenant-catalog.js";
|
|
25
|
+
const maxClientSideScan = 1_000;
|
|
26
|
+
/**
|
|
27
|
+
* A Google Cloud Datastore-backed implementation of the Spine TS storage port.
|
|
28
|
+
*/
|
|
29
|
+
export class DatastoreStorageFactory extends StorageFactory {
|
|
30
|
+
#client;
|
|
31
|
+
#recordCreators;
|
|
32
|
+
#layouts;
|
|
33
|
+
#entityCreators;
|
|
34
|
+
#namespaceConverter;
|
|
35
|
+
#stringifiers;
|
|
36
|
+
#catalog;
|
|
37
|
+
/**
|
|
38
|
+
* Starts a mutable factory configuration.
|
|
39
|
+
*
|
|
40
|
+
* @returns A new factory builder.
|
|
41
|
+
*/
|
|
42
|
+
static newBuilder() {
|
|
43
|
+
return new Builder((client, recordCreators, layouts, entityCreators, namespaceConverter, stringifiers) => new DatastoreStorageFactory(client, recordCreators, layouts, entityCreators, namespaceConverter, stringifiers));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Creates a factory from resolved dependencies.
|
|
47
|
+
*
|
|
48
|
+
* @param client The caller-owned Datastore client.
|
|
49
|
+
* @param recordCreators Custom record-storage providers by record family.
|
|
50
|
+
* @param layouts Physical record layouts by record family.
|
|
51
|
+
* @param entityCreators Custom Entity persistence providers by Entity type.
|
|
52
|
+
* @param namespaceConverter Converts complete tenants to native namespaces.
|
|
53
|
+
* @param stringifiers Converts message-valued IDs and columns.
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
constructor(client, recordCreators, layouts, entityCreators, namespaceConverter, stringifiers) {
|
|
57
|
+
super();
|
|
58
|
+
this.#client = client;
|
|
59
|
+
this.#recordCreators = recordCreators;
|
|
60
|
+
this.#layouts = layouts;
|
|
61
|
+
this.#entityCreators = entityCreators;
|
|
62
|
+
this.#namespaceConverter = new NamespaceAssignments(namespaceConverter);
|
|
63
|
+
this.#stringifiers = new StringifierRegistry(stringifiers);
|
|
64
|
+
this.#catalog = new DatastoreTenantCatalog(client, this.#namespaceConverter);
|
|
65
|
+
EntityCommitStorageFactories.register(this, {
|
|
66
|
+
createEntityCommitStorage: (input) => this.createEntityStorage(input).commits,
|
|
67
|
+
});
|
|
68
|
+
DeliveryCleanupStorageFactories.register(this, {
|
|
69
|
+
createDeliveryCleanupStorage: () => new DatastoreDeliveryCleanupStorage((context, spec) => this.cleanupStorage(context, spec)),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Creates the selected Entity provider bundle.
|
|
74
|
+
*
|
|
75
|
+
* @param input The Entity persistence contract.
|
|
76
|
+
* @returns The coherent Entity storage handle.
|
|
77
|
+
*/
|
|
78
|
+
createEntityStorage(input) {
|
|
79
|
+
if (!this.isOpen())
|
|
80
|
+
throw new Error("StorageFactory is closed.");
|
|
81
|
+
const custom = this.#entityCreators.get(input.sourceType.typeName);
|
|
82
|
+
if (custom !== undefined)
|
|
83
|
+
return custom(input, this.#client);
|
|
84
|
+
const openRecords = (recordSpec, group) => this.createEntityRecordStorage(input.context, recordSpec, group);
|
|
85
|
+
const storage = new DatastoreEntityStorage(input, openRecords);
|
|
86
|
+
const commits = new DatastoreEntityCommitStorage(input, openRecords);
|
|
87
|
+
return new DefaultEntityHandle(storage, commits);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Creates provider-specific Datastore record storage.
|
|
91
|
+
*
|
|
92
|
+
* @param context The storage context.
|
|
93
|
+
* @param recordSpec The record specification.
|
|
94
|
+
* @param group Separates records that share one source type.
|
|
95
|
+
* @returns The created Datastore record storage.
|
|
96
|
+
*/
|
|
97
|
+
onCreateRecordStorage(context, recordSpec, group) {
|
|
98
|
+
const resolved = this.resolve(recordSpec, group, true);
|
|
99
|
+
const creator = resolved.creator;
|
|
100
|
+
if (creator !== undefined)
|
|
101
|
+
return creator(context, recordSpec, this.#client, maxClientSideScan);
|
|
102
|
+
return new DatastoreRecordStorage(context, recordSpec, this.#client, maxClientSideScan, group, resolved.layout?.kind, this.#namespaceConverter, this.#stringifiers);
|
|
103
|
+
}
|
|
104
|
+
createEntityRecordStorage(context, recordSpec, group) {
|
|
105
|
+
const resolved = this.resolve(recordSpec, group, false);
|
|
106
|
+
return new DatastoreRecordStorage(context, recordSpec, this.#client, maxClientSideScan, group, resolved.layout?.kind, this.#namespaceConverter, this.#stringifiers);
|
|
107
|
+
}
|
|
108
|
+
cleanupStorage(context, recordSpec) {
|
|
109
|
+
const resolved = this.resolve(recordSpec, undefined, false);
|
|
110
|
+
return new DatastoreRecordStorage(context, recordSpec, this.#client, maxClientSideScan, undefined, resolved.layout?.kind, this.#namespaceConverter, this.#stringifiers);
|
|
111
|
+
}
|
|
112
|
+
resolve(recordSpec, group, includeCreator) {
|
|
113
|
+
const source = recordSpec.sourceType.typeName;
|
|
114
|
+
const record = recordSpec.recordType.typeName;
|
|
115
|
+
const exact = key(group?.name ?? source, record);
|
|
116
|
+
const fallback = key(group === undefined ? source : record, group === undefined ? source : record);
|
|
117
|
+
return {
|
|
118
|
+
creator: includeCreator
|
|
119
|
+
? (this.#recordCreators.get(exact) ?? this.#recordCreators.get(fallback))
|
|
120
|
+
: undefined,
|
|
121
|
+
layout: this.#layouts.get(exact) ?? this.#layouts.get(fallback),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Returns the provider-owned native namespace catalog.
|
|
126
|
+
*
|
|
127
|
+
* @returns The Datastore tenant catalog.
|
|
128
|
+
*/
|
|
129
|
+
tenantCatalog() {
|
|
130
|
+
return this.#catalog;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Closes the factory and its native tenant catalog.
|
|
134
|
+
*/
|
|
135
|
+
close() {
|
|
136
|
+
super.close();
|
|
137
|
+
void this.#catalog.close();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
class Builder {
|
|
141
|
+
create;
|
|
142
|
+
#client;
|
|
143
|
+
#recordCreators = new Map();
|
|
144
|
+
#layouts = new Map();
|
|
145
|
+
#entityCreators = new Map();
|
|
146
|
+
#namespaceConverter = new DefaultNamespaceConverter();
|
|
147
|
+
#stringifiers = new StringifierRegistry();
|
|
148
|
+
constructor(create) {
|
|
149
|
+
this.create = create;
|
|
150
|
+
}
|
|
151
|
+
setClient(client) {
|
|
152
|
+
this.#client = client;
|
|
153
|
+
return this;
|
|
154
|
+
}
|
|
155
|
+
setNamespaceConverter(converter) {
|
|
156
|
+
this.#namespaceConverter = converter;
|
|
157
|
+
return this;
|
|
158
|
+
}
|
|
159
|
+
setStringifierRegistry(registry) {
|
|
160
|
+
this.#stringifiers = new StringifierRegistry(registry);
|
|
161
|
+
return this;
|
|
162
|
+
}
|
|
163
|
+
organizeRecords(first, second, third) {
|
|
164
|
+
const [source, record, layout] = third === undefined ? [undefined, first, second] : [first, second, third];
|
|
165
|
+
this.#layouts.set(key(source?.typeName ?? record.typeName, record.typeName), checkedLayout(layout));
|
|
166
|
+
return this;
|
|
167
|
+
}
|
|
168
|
+
useRecordStorage(first, second, third) {
|
|
169
|
+
const [source, record, creator] = third === undefined
|
|
170
|
+
? [undefined, first, second]
|
|
171
|
+
: [first, second, third];
|
|
172
|
+
this.#recordCreators.set(key(source?.typeName ?? record.typeName, record.typeName), creator);
|
|
173
|
+
return this;
|
|
174
|
+
}
|
|
175
|
+
useEntityStorage(sourceType, creator) {
|
|
176
|
+
this.#entityCreators.set(sourceType.typeName, creator);
|
|
177
|
+
return this;
|
|
178
|
+
}
|
|
179
|
+
build() {
|
|
180
|
+
if (this.#client === undefined)
|
|
181
|
+
throw new Error("DatastoreStorageFactory builder requires a client.");
|
|
182
|
+
rejectKindCollisions(this.#layouts);
|
|
183
|
+
return this.create(this.#client, new Map(this.#recordCreators), new Map(this.#layouts), new Map(this.#entityCreators), this.#namespaceConverter, this.#stringifiers);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
class DefaultEntityHandle {
|
|
187
|
+
current;
|
|
188
|
+
states;
|
|
189
|
+
events;
|
|
190
|
+
commits;
|
|
191
|
+
#storage;
|
|
192
|
+
constructor(storage, commits) {
|
|
193
|
+
this.#storage = storage;
|
|
194
|
+
this.current = storage.current;
|
|
195
|
+
this.states = storage.states;
|
|
196
|
+
this.events = storage.events;
|
|
197
|
+
this.commits = commits;
|
|
198
|
+
}
|
|
199
|
+
isOpen() {
|
|
200
|
+
return this.#storage.isOpen();
|
|
201
|
+
}
|
|
202
|
+
close() {
|
|
203
|
+
this.#storage.close();
|
|
204
|
+
this.commits.close();
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
function key(source, record) {
|
|
208
|
+
return `${source}\u0000${record}`;
|
|
209
|
+
}
|
|
210
|
+
function checkedLayout(layout) {
|
|
211
|
+
if (layout.kind.trim().length === 0 || Buffer.byteLength(layout.kind, "utf8") > 1_500)
|
|
212
|
+
throw new Error("Datastore record kind must be non-blank and at most 1,500 bytes.");
|
|
213
|
+
return Object.freeze({ kind: layout.kind });
|
|
214
|
+
}
|
|
215
|
+
function rejectKindCollisions(layouts) {
|
|
216
|
+
const identities = new Map();
|
|
217
|
+
for (const [identity, layout] of layouts) {
|
|
218
|
+
const previous = identities.get(layout.kind);
|
|
219
|
+
if (previous !== undefined && previous !== identity)
|
|
220
|
+
throw new Error("Distinct Datastore registrations cannot claim the same custom kind.");
|
|
221
|
+
identities.set(layout.kind, identity);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=storage-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-factory.js","sourceRoot":"","sources":["../../src/datastore/storage-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Datastore } from "@google-cloud/datastore";
|
|
2
|
+
import { type TenantBoundary as TenantBoundaryValue, type TenantCatalog } from "@spine-event-engine/storage/provider";
|
|
3
|
+
import { type NamespaceConverter } from "./namespace.js";
|
|
4
|
+
interface EarlyTenantOptions {
|
|
5
|
+
readonly now?: () => number;
|
|
6
|
+
readonly earlyTenantTtlMs?: number;
|
|
7
|
+
readonly maxEarlyTenants?: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Discovers Spine tenants from Datastore's native namespace metadata.
|
|
11
|
+
*/
|
|
12
|
+
export declare class DatastoreTenantCatalog implements TenantCatalog {
|
|
13
|
+
#private;
|
|
14
|
+
private readonly client;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a native namespace catalog.
|
|
17
|
+
*
|
|
18
|
+
* @param client The caller-owned Datastore client.
|
|
19
|
+
* @param converter Converts owned native namespaces to tenant identifiers.
|
|
20
|
+
* @param options Internal deterministic early-admission cache controls.
|
|
21
|
+
*/
|
|
22
|
+
constructor(client: Datastore, converter: NamespaceConverter, options?: EarlyTenantOptions);
|
|
23
|
+
/**
|
|
24
|
+
* Lists tenant boundaries represented by owned native namespaces.
|
|
25
|
+
*
|
|
26
|
+
* @returns The discovered and early-admitted tenant boundaries.
|
|
27
|
+
*/
|
|
28
|
+
all(): Promise<readonly TenantBoundaryValue[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Records an admitted tenant until native metadata becomes visible.
|
|
31
|
+
*
|
|
32
|
+
* No record is written. Datastore creates namespace metadata when the first
|
|
33
|
+
* application entity is persisted in that namespace.
|
|
34
|
+
*
|
|
35
|
+
* @param boundary The admitted multitenant boundary.
|
|
36
|
+
* @returns Completion of the in-memory catalog update.
|
|
37
|
+
*/
|
|
38
|
+
keep(boundary: TenantBoundaryValue): Promise<void>;
|
|
39
|
+
private keepNow;
|
|
40
|
+
/**
|
|
41
|
+
* Closes this catalog without closing the caller-owned Datastore client.
|
|
42
|
+
*
|
|
43
|
+
* @returns Completion of catalog closure.
|
|
44
|
+
*/
|
|
45
|
+
close(): Promise<void>;
|
|
46
|
+
private requireOpen;
|
|
47
|
+
private purgeExpired;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=tenant-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-catalog.d.ts","sourceRoot":"","sources":["../../src/datastore/tenant-catalog.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAEL,KAAK,cAAc,IAAI,mBAAmB,EAC1C,KAAK,aAAa,EACnB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAK/E,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,sBAAuB,YAAW,aAAa;;IAmBxD,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB;;;;;;OAMG;gBAEgB,MAAM,EAAE,SAAS,EAClC,SAAS,EAAE,kBAAkB,EAC7B,OAAO,GAAE,kBAAuB;IAalC;;;;OAIG;IACG,GAAG,IAAI,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC;IAqCpD;;;;;;;;OAQG;IACH,IAAI,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlD,OAAO,CAAC,OAAO;IAiBf;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;CAMrB"}
|