@spine-event-engine/storage-mysql 2.0.0-snapshot.16 → 2.0.0-snapshot.20

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.
@@ -60,6 +60,14 @@ export class MysqlStorageFactory extends StorageFactory {
60
60
  #databases;
61
61
  #catalog;
62
62
  #closed;
63
+ /**
64
+ * Creates the factory from connected tenant databases.
65
+ *
66
+ * @param databases Supplies configured tenant databases.
67
+ * @param resolver Resolves record-family table names.
68
+ * @param createOperation Creates optional table SQL.
69
+ * @param stringifiers Converts message-valued IDs and columns.
70
+ */
63
71
  constructor(databases, resolver = new MysqlTableResolver(), createOperation, stringifiers = new StringifierRegistry()) {
64
72
  super();
65
73
  this.createOperation = createOperation;
@@ -119,11 +127,24 @@ export class MysqlStorageFactory extends StorageFactory {
119
127
  * @param context Provides the storage context.
120
128
  * @param spec Describes the record family.
121
129
  * @param group Identifies an optional storage group.
122
- * @returns Returns the record-family storage handle.
130
+ * @typeParam I Record identifier type.
131
+ * @typeParam R Stored Protobuf message type.
132
+ * @returns The record-family storage handle.
123
133
  */
124
134
  onCreateRecordStorage(context, spec, group) {
125
135
  return this.createMysqlRecordStorage(context, spec, group);
126
136
  }
137
+ /**
138
+ * Creates a record-family handle for its tenant database.
139
+ *
140
+ * @typeParam I Record identifier type.
141
+ * @typeParam R Stored Protobuf message type.
142
+ * @param context Supplies the storage and tenant context.
143
+ * @param spec Defines the record family.
144
+ * @param group Selects a grouped history family, when present.
145
+ * @param database Supplies the resolved tenant database.
146
+ * @returns The opened MySQL record-storage handle.
147
+ */
127
148
  createMysqlRecordStorage(context, spec, group, database = this.database(context)) {
128
149
  const table = this.#resolver.resolve(spec.sourceType.typeName, group?.name, undefined, spec.recordType.typeName);
129
150
  const tableSpec = resolvedMysqlTableSpec({
@@ -143,8 +164,10 @@ export class MysqlStorageFactory extends StorageFactory {
143
164
  /**
144
165
  * Creates MySQL storage for one Entity family.
145
166
  *
167
+ * @typeParam I Entity identifier type.
168
+ * @typeParam S Entity state message type.
146
169
  * @param input Configures the Entity storage families.
147
- * @returns Returns the MySQL Entity storage handle.
170
+ * @returns The MySQL Entity storage handle.
148
171
  */
149
172
  createEntityStorage(input) {
150
173
  const database = this.database(input.context);
@@ -155,10 +178,14 @@ export class MysqlStorageFactory extends StorageFactory {
155
178
  return handle;
156
179
  }
157
180
  /**
158
- * Creates MySQL storage for atomic Entity commits.
181
+ * Creates MySQL storage for Entity commits. MyISAM and Aria tables may retain
182
+ * partial writes when a commit fails; transactional table engines roll back
183
+ * the commit.
159
184
  *
185
+ * @typeParam I Entity identifier type.
186
+ * @typeParam S Entity state message type.
160
187
  * @param input Configures the Entity storage families.
161
- * @returns Returns the Entity commit storage handle.
188
+ * @returns The Entity commit storage handle.
162
189
  */
163
190
  createEntityCommitStorage(input) {
164
191
  const database = this.database(input.context);
@@ -168,6 +195,12 @@ export class MysqlStorageFactory extends StorageFactory {
168
195
  this.#handles.add(handle);
169
196
  return handle;
170
197
  }
198
+ /**
199
+ * Creates the connection lifecycle for one tenant database.
200
+ *
201
+ * @param database Supplies the tenant database pool.
202
+ * @returns The connection acquisition and release operations.
203
+ */
171
204
  connections(database) {
172
205
  return {
173
206
  databaseName: database.databaseName,
@@ -177,6 +210,12 @@ export class MysqlStorageFactory extends StorageFactory {
177
210
  },
178
211
  };
179
212
  }
213
+ /**
214
+ * Resolves the database configured for a storage context.
215
+ *
216
+ * @param context Supplies the storage and tenant context.
217
+ * @returns The configured tenant database.
218
+ */
180
219
  database(context) {
181
220
  const boundary = TenantBoundary.of(context);
182
221
  const database = this.#databases.get(boundary.key);
@@ -189,7 +228,7 @@ export class MysqlStorageFactory extends StorageFactory {
189
228
  /**
190
229
  * Connects to MySQL and creates an initialized storage factory.
191
230
  *
192
- * @param options Specifies the MySQL connection options.
231
+ * @param entries Supplies the tenant database configurations to connect.
193
232
  * @param resolver Resolves configured record-family table names.
194
233
  * @param createOperation Creates optional table-creation SQL.
195
234
  * @param stringifiers Converts message-valued IDs and columns.
@@ -232,6 +271,9 @@ export class MysqlStorageFactory extends StorageFactory {
232
271
  }
233
272
  }
234
273
  }
274
+ /**
275
+ * Collects MySQL storage settings before opening database pools.
276
+ */
235
277
  class Builder {
236
278
  connect;
237
279
  #options;
@@ -239,6 +281,11 @@ class Builder {
239
281
  #resolver = new MysqlTableResolver();
240
282
  #operation;
241
283
  #stringifiers = new StringifierRegistry();
284
+ /**
285
+ * Creates a builder with its storage-factory connection function.
286
+ *
287
+ * @param connect Connects the configured tenant databases.
288
+ */
242
289
  constructor(connect) {
243
290
  this.connect = connect;
244
291
  }
@@ -329,9 +376,21 @@ async function assertNoRetiredLayout(connection) {
329
376
  }
330
377
  }
331
378
  const MysqlConfigurations = Object.freeze({
379
+ /**
380
+ * Creates a database configuration for single-tenant storage.
381
+ *
382
+ * @param options Supplies the MySQL connection options.
383
+ * @returns The single-tenant database configuration.
384
+ */
332
385
  single(options) {
333
386
  return MysqlConfigurations.parse(TenantBoundary.single, options);
334
387
  },
388
+ /**
389
+ * Creates database configurations for multitenant storage.
390
+ *
391
+ * @param entries Supplies tenant IDs and their database options.
392
+ * @returns The tenant database configurations.
393
+ */
335
394
  multitenant(entries) {
336
395
  if (entries.length === 0) {
337
396
  throw new MysqlStorageConfigurationError("Multitenant MySQL storage requires tenants.");
@@ -351,6 +410,13 @@ const MysqlConfigurations = Object.freeze({
351
410
  }
352
411
  return configured;
353
412
  },
413
+ /**
414
+ * Validates and resolves one tenant database configuration.
415
+ *
416
+ * @param boundary Identifies the tenant boundary.
417
+ * @param options Supplies the MySQL connection options.
418
+ * @returns The resolved database configuration.
419
+ */
354
420
  parse(boundary, options) {
355
421
  let url;
356
422
  try {
@@ -387,6 +453,12 @@ const MysqlConfigurations = Object.freeze({
387
453
  };
388
454
  },
389
455
  });
456
+ /**
457
+ * Commits one MySQL Entity mutation under native transaction or table coordination.
458
+ *
459
+ * @typeParam I Captured Entity identifier type.
460
+ * @typeParam S Captured Entity state type.
461
+ */
390
462
  class MysqlEntityCommitStorage {
391
463
  entity;
392
464
  openStorage;
@@ -395,6 +467,16 @@ class MysqlEntityCommitStorage {
395
467
  databaseName;
396
468
  onClose;
397
469
  #open = true;
470
+ /**
471
+ * Creates a commit handle for one Entity scope and MySQL coordinator.
472
+ *
473
+ * @param entity Defines the captured Entity scope.
474
+ * @param openStorage Opens the current and history families.
475
+ * @param openEvents Opens delivery Event storage.
476
+ * @param coordinator Serializes the provider commit.
477
+ * @param databaseName Identifies the database in lock keys.
478
+ * @param onClose Removes the handle from factory tracking.
479
+ */
398
480
  constructor(entity, openStorage, openEvents, coordinator, databaseName, onClose) {
399
481
  this.entity = entity;
400
482
  this.openStorage = openStorage;
@@ -403,19 +485,16 @@ class MysqlEntityCommitStorage {
403
485
  this.databaseName = databaseName;
404
486
  this.onClose = onClose;
405
487
  }
488
+ /**
489
+ * Commits current state and associated immutable records within provider coordination.
490
+ *
491
+ * @typeParam Id Committed Entity identifier type.
492
+ * @typeParam State Committed Entity state type.
493
+ * @param input Supplies the affected Entity and immutable records.
494
+ * @returns Completion after the provider commit.
495
+ */
406
496
  async commit(input) {
407
- if (!this.#open)
408
- throw new MysqlStorageOperationError("Entity commit storage is closed.");
409
- if (input.entity.sourceType.typeName !== this.entity.sourceType.typeName)
410
- throw new MysqlStorageOperationError("Entity commit source type is incompatible.");
411
- if (!this.accepts(input))
412
- throw new MysqlStorageOperationError("Entity commit context is incompatible.");
413
- if (!this.entity.stateHistory && (input.states?.length ?? 0) > 0)
414
- throw new MysqlStorageOperationError("Entity state history is disabled.");
415
- if (!this.entity.eventHistory && (input.diagnostics?.length ?? 0) > 0)
416
- throw new MysqlStorageOperationError("Entity event history is disabled.");
417
- if ((input.events ?? []).some((event) => event.id === undefined))
418
- throw new MysqlStorageOperationError("Entity commit requires delivery-event IDs.");
497
+ this.validate(input);
419
498
  const storage = this.openStorage();
420
499
  const events = this.openEvents();
421
500
  try {
@@ -427,28 +506,7 @@ class MysqlEntityCommitStorage {
427
506
  entityKey: input.entity.id.key(input.entityId),
428
507
  sourceTypeName: this.entity.sourceType.typeName,
429
508
  });
430
- return await this.coordinator.commit([...families.tableNames(), events.tableName], lockKey, (connection, transactional) => families.withConnection(connection, () => events.withConnection(connection, async () => {
431
- const current = await families.readCurrentLocked(input.entityId);
432
- if (!sameEntity(current, input.expected) && !sameEntity(current, input.next))
433
- return "conflict";
434
- if (!transactional) {
435
- await families.preflightImmutable(input.states ?? [], input.diagnostics ?? []);
436
- for (const event of input.events ?? [])
437
- await events.assertImmutable(event);
438
- }
439
- for (const state of input.states ?? [])
440
- await families.appendStateImmutable(state);
441
- for (const diagnostic of input.diagnostics ?? [])
442
- await families.appendDiagnosticImmutable(diagnostic);
443
- for (const event of input.events ?? []) {
444
- if (event.id === undefined)
445
- throw new MysqlStorageOperationError("Entity commit requires delivery-event IDs.");
446
- await events.writeImmutable(event);
447
- }
448
- if (!sameEntity(current, input.next))
449
- await storage.current.write(input.next);
450
- return "committed";
451
- })));
509
+ await this.coordinator.commit([...families.tableNames(), events.tableName], lockKey, (connection, transactional) => families.withConnection(connection, () => events.withConnection(connection, () => this.apply(input, storage, families, events, transactional))));
452
510
  }
453
511
  catch (error) {
454
512
  throw mysqlError(MysqlStorageOperationError, "MySQL Entity commit failed.", error);
@@ -458,12 +516,72 @@ class MysqlEntityCommitStorage {
458
516
  storage.close();
459
517
  }
460
518
  }
519
+ /**
520
+ * Applies immutable rows before current state on one coordinated connection.
521
+ *
522
+ * @typeParam Id Committed Entity identifier type.
523
+ * @typeParam State Committed Entity state type.
524
+ * @param input Supplies the affected records.
525
+ * @param storage Provides current Entity storage.
526
+ * @param families Provides state and diagnostic history storage.
527
+ * @param events Provides delivery Event storage.
528
+ * @param transactional Whether the connection supports rollback.
529
+ * @returns Completion after associated records and current state are written.
530
+ */
531
+ async apply(input, storage, families, events, transactional) {
532
+ const current = await families.readCurrentLocked(input.entityId);
533
+ if (!transactional) {
534
+ await families.preflightImmutable(input.states ?? [], input.diagnostics ?? []);
535
+ for (const event of input.events ?? [])
536
+ await events.assertImmutable(event);
537
+ }
538
+ for (const state of input.states ?? [])
539
+ await families.appendStateImmutable(state);
540
+ for (const diagnostic of input.diagnostics ?? [])
541
+ await families.appendDiagnosticImmutable(diagnostic);
542
+ for (const event of input.events ?? [])
543
+ await events.writeImmutable(event);
544
+ if (!sameEntity(current, input.next))
545
+ await storage.current.write(input.next);
546
+ }
547
+ /**
548
+ * Validates the commit against this handle's Entity scope and configured histories.
549
+ *
550
+ * @typeParam Id Committed Entity identifier type.
551
+ * @typeParam State Committed Entity state type.
552
+ * @param input Supplies the Entity and Event records to validate.
553
+ */
554
+ validate(input) {
555
+ if (!this.#open)
556
+ throw new MysqlStorageOperationError("Entity commit storage is closed.");
557
+ if (input.entity.sourceType.typeName !== this.entity.sourceType.typeName)
558
+ throw new MysqlStorageOperationError("Entity commit source type is incompatible.");
559
+ if (!this.accepts(input))
560
+ throw new MysqlStorageOperationError("Entity commit context is incompatible.");
561
+ if (!this.entity.stateHistory && (input.states?.length ?? 0) > 0)
562
+ throw new MysqlStorageOperationError("Entity state history is disabled.");
563
+ if (!this.entity.eventHistory && (input.diagnostics?.length ?? 0) > 0)
564
+ throw new MysqlStorageOperationError("Entity event history is disabled.");
565
+ if ((input.events ?? []).some((event) => event.id === undefined))
566
+ throw new MysqlStorageOperationError("Entity commit requires delivery-event IDs.");
567
+ }
568
+ /**
569
+ * Closes this commit handle after work already started settles.
570
+ */
461
571
  close() {
462
572
  if (!this.#open)
463
573
  return;
464
574
  this.#open = false;
465
575
  this.onClose();
466
576
  }
577
+ /**
578
+ * Checks the captured tenant boundary for one commit input.
579
+ *
580
+ * @typeParam Id Committed Entity identifier type.
581
+ * @typeParam State Committed Entity state type.
582
+ * @param input Supplies the requested context.
583
+ * @returns Whether the context matches this handle.
584
+ */
467
585
  accepts(input) {
468
586
  return (input.context.multitenant === this.entity.context.multitenant &&
469
587
  TenantBoundary.of(input.context).key === TenantBoundary.of(this.entity.context).key);
@@ -1 +1 @@
1
- {"version":3,"file":"storage-factory.js","sourceRoot":"","sources":["../../src/mysql/storage-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-factory.js","sourceRoot":"","sources":["../../src/mysql/storage-factory.ts"],"names":[],"mappings":"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"}