@lossless.org/client 1.0.0 → 1.2.0
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/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/nosqldb/classes.atomicupdate.d.ts +21 -0
- package/dist_ts/nosqldb/classes.atomicupdate.js +41 -1
- package/dist_ts/nosqldb/classes.collection.d.ts +31 -0
- package/dist_ts/nosqldb/classes.collection.js +203 -32
- package/dist_ts/nosqldb/classes.collectiontopology.d.ts +11 -0
- package/dist_ts/nosqldb/classes.collectiontopology.js +16 -1
- package/dist_ts/nosqldb/classes.doc.d.ts +66 -0
- package/dist_ts/nosqldb/classes.doc.js +313 -24
- package/dist_ts/nosqldb/classes.exactpersistence.js +10 -2
- package/dist_ts/nosqldb/classes.ordinarypersistence.d.ts +6 -0
- package/dist_ts/nosqldb/classes.ordinarypersistence.js +7 -1
- package/dist_ts/nosqldb/classes.persistence.d.ts +6 -0
- package/dist_ts/nosqldb/classes.persistence.js +13 -1
- package/package.json +1 -1
- package/readme.md +11 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/nosqldb/classes.atomicupdate.ts +67 -0
- package/ts/nosqldb/classes.collection.ts +313 -37
- package/ts/nosqldb/classes.collectiontopology.ts +25 -0
- package/ts/nosqldb/classes.doc.ts +575 -21
- package/ts/nosqldb/classes.exactpersistence.ts +9 -1
- package/ts/nosqldb/classes.ordinarypersistence.ts +8 -0
- package/ts/nosqldb/classes.persistence.ts +17 -0
|
@@ -2,17 +2,17 @@ import * as plugins from './plugins.js';
|
|
|
2
2
|
import { LosslessClientError } from '../core/classes.error.js';
|
|
3
3
|
import { runCursorOperation } from './classes.cursoroperation.js';
|
|
4
4
|
import { CollectionPreparationBudget, prepareBoundCollection, } from './classes.collectionpreparation.js';
|
|
5
|
-
import { getOrdinaryPersistencePolicy, validateOrdinaryStoredDocument, } from './classes.ordinarypersistence.js';
|
|
5
|
+
import { getOrdinaryPersistencePolicy, hasExactPersistencePolicy, validateOrdinaryStoredDocument, } from './classes.ordinarypersistence.js';
|
|
6
6
|
import { SmartdataDb } from './classes.db.js';
|
|
7
7
|
import { SmartdataDbCursor } from './classes.cursor.js';
|
|
8
8
|
import { SmartDataDbDoc, } from './classes.doc.js';
|
|
9
9
|
import { SmartdataDbWatcher } from './classes.watcher.js';
|
|
10
10
|
import { CollectionFactory } from './classes.collectionfactory.js';
|
|
11
11
|
import { logger } from './logging.js';
|
|
12
|
-
import { SmartdataPersistenceError, normalizeOrdinaryPersistenceError, } from './classes.persistence.js';
|
|
12
|
+
import { SmartdataPersistenceError, isMongoIndexConflictError, normalizeOrdinaryPersistenceError, } from './classes.persistence.js';
|
|
13
13
|
import { notifyCollectionReconnect } from './classes.collectionlifecycle.js';
|
|
14
14
|
import { runWithOrdinarySmartdataSession, } from './classes.session.js';
|
|
15
|
-
import { collectionModelSchemaResolverSymbol, collectionTopologyDbInspectionSymbol, getExpectedCollectionTopologyForSchema, compareSmartdataTopologyStrings, } from './classes.collectiontopology.js';
|
|
15
|
+
import { collectionModelSchemaResolverSymbol, collectionTopologyDbInspectionSymbol, getExpectedCollectionTopologyForSchema, getIdentityIndexName, isIdentityIndexFor, compareSmartdataTopologyStrings, } from './classes.collectiontopology.js';
|
|
16
16
|
const collectionFactory = new CollectionFactory();
|
|
17
17
|
const unsafeFieldNames = new Set(['__proto__', 'prototype', 'constructor']);
|
|
18
18
|
const automaticTextIndexName = 'smartdata_text_index';
|
|
@@ -102,6 +102,7 @@ const normalizeCollectionModelSchema = (configArg, allowExtendedIndexOptionsArg
|
|
|
102
102
|
'persistedFields',
|
|
103
103
|
'numericFields',
|
|
104
104
|
'identityFields',
|
|
105
|
+
'identityAsDocumentId',
|
|
105
106
|
'searchableFields',
|
|
106
107
|
'indexes',
|
|
107
108
|
]);
|
|
@@ -152,6 +153,16 @@ const normalizeCollectionModelSchema = (configArg, allowExtendedIndexOptionsArg
|
|
|
152
153
|
identityFields.push(field);
|
|
153
154
|
}
|
|
154
155
|
}
|
|
156
|
+
const identityAsDocumentId = configArg.identityAsDocumentId;
|
|
157
|
+
if (identityAsDocumentId !== undefined) {
|
|
158
|
+
if (typeof identityAsDocumentId !== 'string' ||
|
|
159
|
+
!identityFields.includes(identityAsDocumentId)) {
|
|
160
|
+
throw new SmartdataPersistenceError('invalid_configuration', 'Collection model identityAsDocumentId must name a declared identity field.');
|
|
161
|
+
}
|
|
162
|
+
if (ordinaryPolicyArg?.idType === 'string') {
|
|
163
|
+
throw new SmartdataPersistenceError('invalid_configuration', `Identity field "${identityAsDocumentId}" cannot own the document _id together with a string ordinary persistence _id.`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
155
166
|
const identityValueTypes = {};
|
|
156
167
|
for (const field of Object.keys(identityValueTypesArg || {})) {
|
|
157
168
|
if (!identityFields.includes(field)) {
|
|
@@ -249,10 +260,20 @@ const normalizeCollectionModelSchema = (configArg, allowExtendedIndexOptionsArg
|
|
|
249
260
|
}));
|
|
250
261
|
}
|
|
251
262
|
for (const identityField of identityFields) {
|
|
252
|
-
const hasIdentityIndex = [...indexesByName.values()].some((indexArg) => indexArg
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
263
|
+
const hasIdentityIndex = [...indexesByName.values()].some((indexArg) => isIdentityIndexFor(indexArg, identityField));
|
|
264
|
+
if (identityField === identityAsDocumentId) {
|
|
265
|
+
// The primary key is the only uniqueness authority for this field. A
|
|
266
|
+
// second unique index would have to be built on a live collection and
|
|
267
|
+
// could disagree with _id, so the declaration is refused rather than
|
|
268
|
+
// silently ignored.
|
|
269
|
+
if (hasIdentityIndex) {
|
|
270
|
+
throw new SmartdataPersistenceError('invalid_configuration', `Identity field "${identityField}" owns the document _id and must not declare its own unique index.`);
|
|
271
|
+
}
|
|
272
|
+
if (identityValueTypes[identityField] !== 'string') {
|
|
273
|
+
throw new SmartdataPersistenceError('invalid_configuration', `Identity field "${identityField}" must be a string identity to own the document _id.`);
|
|
274
|
+
}
|
|
275
|
+
continue;
|
|
276
|
+
}
|
|
256
277
|
if (!hasIdentityIndex) {
|
|
257
278
|
throw new SmartdataPersistenceError('invalid_configuration', `Identity field "${identityField}" requires an explicit single-field ascending unique index.`);
|
|
258
279
|
}
|
|
@@ -263,6 +284,7 @@ const normalizeCollectionModelSchema = (configArg, allowExtendedIndexOptionsArg
|
|
|
263
284
|
persistedFields: Object.freeze([...persistedFields]),
|
|
264
285
|
numericFields: Object.freeze([...numericFields]),
|
|
265
286
|
identityFields: Object.freeze([...identityFields]),
|
|
287
|
+
...(identityAsDocumentId !== undefined ? { identityAsDocumentId } : {}),
|
|
266
288
|
identityValueTypes: Object.freeze({ ...identityValueTypes }),
|
|
267
289
|
searchableFields: Object.freeze([...searchableFields]),
|
|
268
290
|
indexes: Object.freeze([...indexesByName.values()]),
|
|
@@ -277,6 +299,7 @@ const normalizeCollectionModelSchema = (configArg, allowExtendedIndexOptionsArg
|
|
|
277
299
|
persistedFields: [...persistedFields].sort(compareSmartdataTopologyStrings),
|
|
278
300
|
numericFields: [...numericFields].sort(compareSmartdataTopologyStrings),
|
|
279
301
|
identityFields: [...identityFields].sort(compareSmartdataTopologyStrings),
|
|
302
|
+
...(identityAsDocumentId !== undefined ? { identityAsDocumentId } : {}),
|
|
280
303
|
identityValueTypes,
|
|
281
304
|
searchableFields: [...searchableFields].sort(compareSmartdataTopologyStrings),
|
|
282
305
|
indexes: [...indexesByName.values()].sort((leftArg, rightArg) => compareSmartdataTopologyStrings(leftArg.name, rightArg.name)),
|
|
@@ -303,15 +326,20 @@ const mergeStringArrays = (...arrays) => {
|
|
|
303
326
|
}
|
|
304
327
|
return merged;
|
|
305
328
|
};
|
|
306
|
-
|
|
329
|
+
/**
|
|
330
|
+
* Merges a per-identity-field declaration across an inheritance chain.
|
|
331
|
+
* Divergence is refused instead of resolved by declaration order, because
|
|
332
|
+
* either winner would silently change a subclass's stored contract.
|
|
333
|
+
*/
|
|
334
|
+
const mergeIdentityDeclarations = (declarationArg, ...declarationMapsArg) => {
|
|
307
335
|
const merged = {};
|
|
308
|
-
for (const
|
|
309
|
-
for (const [field,
|
|
336
|
+
for (const declarationMap of declarationMapsArg) {
|
|
337
|
+
for (const [field, declaration] of Object.entries(declarationMap || {})) {
|
|
310
338
|
const existing = merged[field];
|
|
311
|
-
if (existing && existing !==
|
|
312
|
-
throw new SmartdataPersistenceError('invalid_configuration', `Identity field "${field}" has divergent inherited
|
|
339
|
+
if (existing && existing !== declaration) {
|
|
340
|
+
throw new SmartdataPersistenceError('invalid_configuration', `Identity field "${field}" has divergent inherited ${declarationArg} declarations.`);
|
|
313
341
|
}
|
|
314
|
-
merged[field] =
|
|
342
|
+
merged[field] = declaration;
|
|
315
343
|
}
|
|
316
344
|
}
|
|
317
345
|
return merged;
|
|
@@ -378,7 +406,8 @@ const mergeDecoratorMetadata = (...metadataArgs) => {
|
|
|
378
406
|
merged.globalSaveableProperties = mergeStringArrays(...metadataArgs.map((metadataArg) => getOwnMetadataValue(metadataArg, 'globalSaveableProperties')));
|
|
379
407
|
merged.saveableProperties = mergeStringArrays(...metadataArgs.map((metadataArg) => getOwnMetadataValue(metadataArg, 'saveableProperties')));
|
|
380
408
|
merged.uniqueIndexes = mergeStringArrays(...metadataArgs.map((metadataArg) => getOwnMetadataValue(metadataArg, 'uniqueIndexes')));
|
|
381
|
-
merged.identityValueTypes =
|
|
409
|
+
merged.identityValueTypes = mergeIdentityDeclarations('valueType', ...metadataArgs.map((metadataArg) => getOwnMetadataValue(metadataArg, 'identityValueTypes')));
|
|
410
|
+
merged.identityIndexNames = mergeIdentityDeclarations('indexName', ...metadataArgs.map((metadataArg) => getOwnMetadataValue(metadataArg, 'identityIndexNames')));
|
|
382
411
|
merged.searchableFields = mergeStringArrays(...metadataArgs.map((metadataArg) => getOwnMetadataValue(metadataArg, 'searchableFields')));
|
|
383
412
|
merged.regularIndexes = mergeRegularIndexes(...metadataArgs.map((metadataArg) => getOwnMetadataValue(metadataArg, 'regularIndexes')));
|
|
384
413
|
merged.compoundIndexes = mergeCompoundIndexes(...metadataArgs.map((metadataArg) => getOwnMetadataValue(metadataArg, 'compoundIndexes')));
|
|
@@ -444,7 +473,7 @@ function initializeDecoratorMetadata(constructor, metadata) {
|
|
|
444
473
|
}
|
|
445
474
|
}
|
|
446
475
|
const definedModelSchemaSymbol = Symbol.for('@push.rocks/smartdata.definedCollectionModelSchema');
|
|
447
|
-
const schemaFromDecoratorMetadata = (constructorArg, collectionNameArg) => {
|
|
476
|
+
const schemaFromDecoratorMetadata = (constructorArg, collectionNameArg, identityAsDocumentIdArg) => {
|
|
448
477
|
const ownMetadata = Object.prototype.hasOwnProperty.call(constructorArg, Symbol.metadata)
|
|
449
478
|
? constructorArg[Symbol.metadata]
|
|
450
479
|
: undefined;
|
|
@@ -462,8 +491,17 @@ const schemaFromDecoratorMetadata = (constructorArg, collectionNameArg) => {
|
|
|
462
491
|
.map(([fieldArg]) => fieldArg);
|
|
463
492
|
const indexes = [];
|
|
464
493
|
for (const uniqueField of metadata.uniqueIndexes || []) {
|
|
494
|
+
const declaredIndexName = metadata.identityIndexNames?.[uniqueField];
|
|
495
|
+
if (uniqueField === identityAsDocumentIdArg) {
|
|
496
|
+
// The document _id enforces this identity; a derived unique index would
|
|
497
|
+
// duplicate the primary key and require an index build on live data.
|
|
498
|
+
if (declaredIndexName !== undefined) {
|
|
499
|
+
throw new SmartdataPersistenceError('invalid_configuration', `Identity field "${uniqueField}" owns the document _id and must not name a unique index.`);
|
|
500
|
+
}
|
|
501
|
+
continue;
|
|
502
|
+
}
|
|
465
503
|
indexes.push({
|
|
466
|
-
name: `${uniqueField}_1`,
|
|
504
|
+
name: declaredIndexName ?? `${uniqueField}_1`,
|
|
467
505
|
key: { [uniqueField]: 1 },
|
|
468
506
|
options: { unique: true },
|
|
469
507
|
});
|
|
@@ -494,10 +532,32 @@ const schemaFromDecoratorMetadata = (constructorArg, collectionNameArg) => {
|
|
|
494
532
|
persistedFields,
|
|
495
533
|
numericFields,
|
|
496
534
|
identityFields: metadata.uniqueIndexes || [],
|
|
535
|
+
...(identityAsDocumentIdArg !== undefined
|
|
536
|
+
? { identityAsDocumentId: identityAsDocumentIdArg }
|
|
537
|
+
: {}),
|
|
497
538
|
searchableFields: metadata.searchableFields || [],
|
|
498
539
|
indexes,
|
|
499
540
|
}, true, metadata.identityValueTypes, getOrdinaryPersistencePolicy(constructorArg));
|
|
500
541
|
};
|
|
542
|
+
/**
|
|
543
|
+
* Exact persistence owns the stored `_id` as a MongoDB ObjectId, so a model
|
|
544
|
+
* cannot also hand the primary key to a declared identity field.
|
|
545
|
+
*/
|
|
546
|
+
const assertIdentityDocumentIdIsOrdinary = (modelArg, identityAsDocumentIdArg) => {
|
|
547
|
+
if (hasExactPersistencePolicy(modelArg)) {
|
|
548
|
+
throw new SmartdataPersistenceError('invalid_configuration', `Identity field "${identityAsDocumentIdArg}" cannot own the document _id for an exact-persistence model.`);
|
|
549
|
+
}
|
|
550
|
+
};
|
|
551
|
+
/**
|
|
552
|
+
* Returns the declared identity field a model stores as its document `_id`.
|
|
553
|
+
* Reading the bound schema resolver never resolves a database.
|
|
554
|
+
*/
|
|
555
|
+
export const getIdentityDocumentIdField = (modelArg) => {
|
|
556
|
+
const resolver = modelArg?.[collectionModelSchemaResolverSymbol];
|
|
557
|
+
return typeof resolver === 'function'
|
|
558
|
+
? resolver().identityAsDocumentId
|
|
559
|
+
: undefined;
|
|
560
|
+
};
|
|
501
561
|
const installCollectionBinding = (constructorArg, dbResolverArg, schemaResolverArg) => {
|
|
502
562
|
const getCollection = (receiverArg) => {
|
|
503
563
|
const db = dbResolverArg(receiverArg);
|
|
@@ -547,6 +607,10 @@ export function defineCollectionModel(modelArg, dbArg, configArg) {
|
|
|
547
607
|
const inheritedPrototype = Object.getPrototypeOf(modelArg.prototype);
|
|
548
608
|
const inheritedConstructor = Object.getPrototypeOf(modelArg);
|
|
549
609
|
const inheritedSchema = inheritedConstructor?.[definedModelSchemaSymbol];
|
|
610
|
+
const identityAsDocumentId = configArg.identityAsDocumentId ?? inheritedSchema?.identityAsDocumentId;
|
|
611
|
+
if (identityAsDocumentId !== undefined) {
|
|
612
|
+
assertIdentityDocumentIdIsOrdinary(modelArg, identityAsDocumentId);
|
|
613
|
+
}
|
|
550
614
|
const normalizedSchema = normalizeCollectionModelSchema({
|
|
551
615
|
...configArg,
|
|
552
616
|
persistedFields: [
|
|
@@ -561,6 +625,9 @@ export function defineCollectionModel(modelArg, dbArg, configArg) {
|
|
|
561
625
|
...(inheritedSchema?.identityFields || []),
|
|
562
626
|
...(configArg.identityFields || []),
|
|
563
627
|
],
|
|
628
|
+
...(identityAsDocumentId !== undefined
|
|
629
|
+
? { identityAsDocumentId: identityAsDocumentId }
|
|
630
|
+
: {}),
|
|
564
631
|
searchableFields: [
|
|
565
632
|
...(inheritedSchema?.searchableFields || []),
|
|
566
633
|
...(configArg.searchableFields || []),
|
|
@@ -721,8 +788,16 @@ export function Collection(dbArg, optionsArg) {
|
|
|
721
788
|
const constructor = value;
|
|
722
789
|
initializeDecoratorMetadata(constructor, context.metadata);
|
|
723
790
|
const collectionName = normalizeCollectionName(optionsArg?.collectionName ?? constructor.name);
|
|
791
|
+
const identityAsDocumentId = optionsArg?.identityAsDocumentId;
|
|
792
|
+
if (identityAsDocumentId !== undefined
|
|
793
|
+
&& (typeof identityAsDocumentId !== 'string' || identityAsDocumentId.length === 0)) {
|
|
794
|
+
throw new SmartdataPersistenceError('invalid_configuration', 'Collection identityAsDocumentId must name a declared @unI() identity field.');
|
|
795
|
+
}
|
|
724
796
|
return installCollectionBinding(constructor, () => (dbArg instanceof SmartdataDb ? dbArg : dbArg()), () => {
|
|
725
|
-
|
|
797
|
+
if (identityAsDocumentId !== undefined) {
|
|
798
|
+
assertIdentityDocumentIdIsOrdinary(constructor, identityAsDocumentId);
|
|
799
|
+
}
|
|
800
|
+
return schemaFromDecoratorMetadata(constructor, collectionName, identityAsDocumentId);
|
|
726
801
|
});
|
|
727
802
|
};
|
|
728
803
|
}
|
|
@@ -787,6 +862,56 @@ export function managed(managerOrOptionsArg, optionsArg) {
|
|
|
787
862
|
* @dpecrecated use @managed instead
|
|
788
863
|
*/
|
|
789
864
|
export const Manager = managed;
|
|
865
|
+
/**
|
|
866
|
+
* The index properties MongoDB weighs besides the key when it decides whether
|
|
867
|
+
* two indexes collide. An existing index over the declared key that differs in
|
|
868
|
+
* any of them is not interchangeable with the declaration, so adopting its name
|
|
869
|
+
* would only collide again.
|
|
870
|
+
*/
|
|
871
|
+
const indexEquivalenceSignature = (indexArg) => stableValue({
|
|
872
|
+
unique: indexArg.unique === true,
|
|
873
|
+
sparse: indexArg.sparse === true,
|
|
874
|
+
expireAfterSeconds: indexArg.expireAfterSeconds ?? null,
|
|
875
|
+
partialFilterExpression: indexArg.partialFilterExpression ?? null,
|
|
876
|
+
});
|
|
877
|
+
/**
|
|
878
|
+
* MongoDB reports an index collision without naming the index already in the
|
|
879
|
+
* namespace, yet the remedy depends on it: adopt that name in the declaration
|
|
880
|
+
* or drop the index. Only the collision path pays for the extra catalog read.
|
|
881
|
+
*/
|
|
882
|
+
const describeIndexCollision = async (targetCollectionArg, collectionNameArg, expectedArg, errorArg) => {
|
|
883
|
+
if (!isMongoIndexConflictError(errorArg)) {
|
|
884
|
+
return errorArg;
|
|
885
|
+
}
|
|
886
|
+
let actualIndexes;
|
|
887
|
+
try {
|
|
888
|
+
actualIndexes = await targetCollectionArg.listIndexes().toArray();
|
|
889
|
+
}
|
|
890
|
+
catch {
|
|
891
|
+
// Without the catalog the collision cannot be attributed, and the driver's
|
|
892
|
+
// own error stays the best evidence the caller can act on.
|
|
893
|
+
return errorArg;
|
|
894
|
+
}
|
|
895
|
+
const equivalentIndex = actualIndexes.find((actualArg) => actualArg.name !== expectedArg.name &&
|
|
896
|
+
stableValue(Object.entries(actualArg.key || {})) ===
|
|
897
|
+
stableValue(expectedArg.key) &&
|
|
898
|
+
indexEquivalenceSignature(actualArg) ===
|
|
899
|
+
indexEquivalenceSignature(expectedArg.options));
|
|
900
|
+
if (equivalentIndex) {
|
|
901
|
+
return new SmartdataPersistenceError('invalid_configuration', `Collection "${collectionNameArg}" already carries the equivalent index ` +
|
|
902
|
+
`"${equivalentIndex.name}", so declared index "${expectedArg.name}" ` +
|
|
903
|
+
'cannot be created. Declare the existing name — an identity declares ' +
|
|
904
|
+
'it with @unI({ indexName }) — or drop the existing index.', { cause: errorArg });
|
|
905
|
+
}
|
|
906
|
+
if (actualIndexes.some((actualArg) => actualArg.name === expectedArg.name)) {
|
|
907
|
+
return new SmartdataPersistenceError('invalid_configuration', `Collection "${collectionNameArg}" already carries an index named ` +
|
|
908
|
+
`"${expectedArg.name}" with a different key or options.`, { cause: errorArg });
|
|
909
|
+
}
|
|
910
|
+
// An index over the same key that is not interchangeable with the
|
|
911
|
+
// declaration cannot be adopted by name, and MongoDB's own error already
|
|
912
|
+
// reports the options that differ.
|
|
913
|
+
return errorArg;
|
|
914
|
+
};
|
|
790
915
|
export class SmartdataCollection {
|
|
791
916
|
/**
|
|
792
917
|
* the collection that is used
|
|
@@ -988,10 +1113,15 @@ export class SmartdataCollection {
|
|
|
988
1113
|
return;
|
|
989
1114
|
}
|
|
990
1115
|
for (const index of modelSchema.indexes) {
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
1116
|
+
try {
|
|
1117
|
+
await targetCollection.createIndex(Object.fromEntries(index.key), {
|
|
1118
|
+
...index.options,
|
|
1119
|
+
name: index.name,
|
|
1120
|
+
});
|
|
1121
|
+
}
|
|
1122
|
+
catch (errorArg) {
|
|
1123
|
+
throw await describeIndexCollision(targetCollection, this.collectionName, index, errorArg);
|
|
1124
|
+
}
|
|
995
1125
|
}
|
|
996
1126
|
const actualIndexes = await targetCollection.listIndexes().toArray();
|
|
997
1127
|
for (const expected of modelSchema.indexes) {
|
|
@@ -1068,11 +1198,18 @@ export class SmartdataCollection {
|
|
|
1068
1198
|
*/
|
|
1069
1199
|
async markUniqueIndexes(keyArrayArg = []) {
|
|
1070
1200
|
for (const key of keyArrayArg) {
|
|
1201
|
+
if (key === this.modelSchema?.identityAsDocumentId) {
|
|
1202
|
+
// The primary key already enforces this identity; building a second
|
|
1203
|
+
// unique index on a live collection is exactly what the option avoids.
|
|
1204
|
+
continue;
|
|
1205
|
+
}
|
|
1071
1206
|
if (!this.uniqueIndexes.includes(key)) {
|
|
1072
1207
|
try {
|
|
1073
1208
|
await this.mongoDbCollection.createIndex({ [key]: 1 }, {
|
|
1074
1209
|
unique: true,
|
|
1075
|
-
|
|
1210
|
+
// A bound model may back its identity with a differently named
|
|
1211
|
+
// index; creating `<field>_1` would duplicate that key.
|
|
1212
|
+
name: getIdentityIndexName(this.modelSchema, key) ?? `${key}_1`,
|
|
1076
1213
|
});
|
|
1077
1214
|
this.uniqueIndexes.push(key);
|
|
1078
1215
|
}
|
|
@@ -1249,6 +1386,7 @@ export class SmartdataCollection {
|
|
|
1249
1386
|
* create an object in the database
|
|
1250
1387
|
*/
|
|
1251
1388
|
prepareOrdinaryInsert(documentArg) {
|
|
1389
|
+
documentArg = this.applyIdentityDocumentId(documentArg);
|
|
1252
1390
|
const policy = this.modelSchema?.ordinaryPersistence;
|
|
1253
1391
|
if (!policy)
|
|
1254
1392
|
return documentArg;
|
|
@@ -1257,8 +1395,32 @@ export class SmartdataCollection {
|
|
|
1257
1395
|
}
|
|
1258
1396
|
return validateOrdinaryStoredDocument(documentArg, policy, this.modelSchema.persistedFields);
|
|
1259
1397
|
}
|
|
1398
|
+
/**
|
|
1399
|
+
* Keys a stored document by its declared identity when the model opted into
|
|
1400
|
+
* `identityAsDocumentId`. The identity keeps its own stored field, but reads
|
|
1401
|
+
* address `_id`, so a document written before the option was declared is
|
|
1402
|
+
* reachable only if its `_id` already equals that identity.
|
|
1403
|
+
*/
|
|
1404
|
+
applyIdentityDocumentId(documentArg) {
|
|
1405
|
+
const identityField = this.modelSchema?.identityAsDocumentId;
|
|
1406
|
+
if (!identityField)
|
|
1407
|
+
return documentArg;
|
|
1408
|
+
const identityValue = documentArg?.[identityField];
|
|
1409
|
+
if (typeof identityValue !== 'string' || identityValue.trim().length === 0) {
|
|
1410
|
+
throw new SmartdataPersistenceError('invalid_argument', `Identity field "${identityField}" must contain a non-empty string identity value to key the document.`);
|
|
1411
|
+
}
|
|
1412
|
+
if (Object.prototype.hasOwnProperty.call(documentArg, '_id')
|
|
1413
|
+
&& documentArg._id !== identityValue) {
|
|
1414
|
+
throw new SmartdataPersistenceError('invalid_argument', `Identity field "${identityField}" owns the document _id and cannot be stored with a divergent _id.`);
|
|
1415
|
+
}
|
|
1416
|
+
return { ...documentArg, _id: identityValue };
|
|
1417
|
+
}
|
|
1418
|
+
/** True when stored documents need SmartData-owned preparation before a write. */
|
|
1419
|
+
get preparesStoredDocuments() {
|
|
1420
|
+
return Boolean(this.modelSchema?.ordinaryPersistence || this.modelSchema?.identityAsDocumentId);
|
|
1421
|
+
}
|
|
1260
1422
|
async insert(dbDocArg, opts) {
|
|
1261
|
-
const preparedObject = this.
|
|
1423
|
+
const preparedObject = this.preparesStoredDocuments
|
|
1262
1424
|
? this.prepareOrdinaryInsert(await dbDocArg.createSavableObject()) : undefined;
|
|
1263
1425
|
return this.runWithOrdinarySession(opts?.session, true, async (rawSessionArg) => {
|
|
1264
1426
|
await this.init();
|
|
@@ -1311,7 +1473,7 @@ export class SmartdataCollection {
|
|
|
1311
1473
|
if (!Array.isArray(dbDocsArg) || dbDocsArg.length === 0) {
|
|
1312
1474
|
throw new SmartdataPersistenceError('invalid_argument', `insertMany requires a non-empty document batch for collection "${this.collectionName}".`);
|
|
1313
1475
|
}
|
|
1314
|
-
const preparedObjects = this.
|
|
1476
|
+
const preparedObjects = this.preparesStoredDocuments ? [] : undefined;
|
|
1315
1477
|
if (preparedObjects) {
|
|
1316
1478
|
for (const dbDocArg of dbDocsArg) {
|
|
1317
1479
|
preparedObjects.push(this.prepareOrdinaryInsert(await dbDocArg.createSavableObject()));
|
|
@@ -1366,14 +1528,23 @@ export class SmartdataCollection {
|
|
|
1366
1528
|
const first = documentsArg[0];
|
|
1367
1529
|
await this.markUniqueIndexes(first.uniqueIndexes);
|
|
1368
1530
|
await this.createRegularIndexes(first.regularIndexes || []);
|
|
1531
|
+
// A document keyed by its identity is addressed through _id, and the
|
|
1532
|
+
// seeded body must not repeat the immutable primary key: MongoDB derives
|
|
1533
|
+
// it from the filter's equality condition on the insert branch.
|
|
1534
|
+
const documentIdIdentity = this.modelSchema?.identityAsDocumentId === identityFieldArg;
|
|
1369
1535
|
try {
|
|
1370
|
-
const result = await this.mongoDbCollection.bulkWrite(prepared.map((document) =>
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1536
|
+
const result = await this.mongoDbCollection.bulkWrite(prepared.map((document) => {
|
|
1537
|
+
const { _id: storedId, ...body } = document;
|
|
1538
|
+
return {
|
|
1539
|
+
updateOne: {
|
|
1540
|
+
filter: documentIdIdentity
|
|
1541
|
+
? { _id: storedId }
|
|
1542
|
+
: { [identityFieldArg]: document[identityFieldArg] },
|
|
1543
|
+
update: { $setOnInsert: documentIdIdentity ? body : document },
|
|
1544
|
+
upsert: true,
|
|
1545
|
+
},
|
|
1546
|
+
};
|
|
1547
|
+
}), { ordered: false, session: rawSessionArg, timeoutMS: optsArg.timeoutMS });
|
|
1377
1548
|
if (result.upsertedCount + result.matchedCount !== prepared.length) {
|
|
1378
1549
|
throw new SmartdataPersistenceError('unsupported_operation', 'insertManyIfAbsent requires an acknowledged result for every identity.');
|
|
1379
1550
|
}
|
|
@@ -1565,4 +1736,4 @@ export class SmartdataCollection {
|
|
|
1565
1736
|
return done.promise;
|
|
1566
1737
|
}
|
|
1567
1738
|
}
|
|
1568
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbm9zcWxkYi9jbGFzc2VzLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUNMLDJCQUEyQixFQUFFLHNCQUFzQixHQUVwRCxNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFDTCw0QkFBNEIsRUFBRSw4QkFBOEIsR0FFN0QsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUNMLGNBQWMsR0FJZixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixpQ0FBaUMsR0FDbEMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsK0JBQStCLEdBRWhDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxvQ0FBb0MsRUFDcEMsc0NBQXNDLEVBQ3RDLCtCQUErQixHQUNoQyxNQUFNLGlDQUFpQyxDQUFDO0FBZXpDLE1BQU0saUJBQWlCLEdBQUcsSUFB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
|
|
1739
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbm9zcWxkYi9jbGFzc2VzLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUNMLDJCQUEyQixFQUFFLHNCQUFzQixHQUVwRCxNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFDTCw0QkFBNEIsRUFBRSx5QkFBeUIsRUFDdkQsOEJBQThCLEdBRS9CLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxjQUFjLEdBSWYsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLGlDQUFpQyxHQUNsQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdFLE9BQU8sRUFDTCwrQkFBK0IsR0FFaEMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQyxzQ0FBc0MsRUFDdEMsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQiwrQkFB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
|