@sprucelabs/data-stores 28.3.276 → 28.3.278
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.
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Database, IndexWithFilter, TestConnect } from '../types/database.types';
|
2
2
|
import { DataStore } from '../types/stores.types';
|
3
|
-
declare const methods: readonly ["assertThrowsWithInvalidConnectionString", "assertThrowsWhenCantConnect", "assertThrowsWithBadDatabaseName", "assertKnowsIfConnectionClosed", "assertCanSortDesc", "assertCanSortAsc", "assertCanSortById", "assertCanQueryWithOr", "assertGeneratesIdDifferentEachTime", "assertInsertingGeneratesId", "assertCanCreateMany", "assertCanCreateWithObjectField", "assertCanCountOnId", "assertCanCount", "assertThrowsWhenUpdatingRecordNotFound", "assertCanUpdate", "assertCanUpdateMany", "assertCanPushOntoArrayValue", "assertCanUpdateWithObjectField", "assertCanUpdateFieldInObjectFieldWithTargettedWhere", "assertCanSaveAndGetNullAndUndefined", "assertUpdateReturnsMatchedCounts", "assertCanUpsertOne", "assertCanUpsertNull", "assertCanPushToArrayOnUpsert", "assertCanSyncUniqueIndexesWithFilterExpression", "assertEmptyDatabaseReturnsEmptyArray", "assertFindOneOnEmptyDatabaseReturnsNull", "assertCanLimitResults", "assertCanLimitResultsToZero", "assertCanFindWithBooleanField", "assertCanQueryByGtLtGteLteNe", "assertCanQueryPathWithDotSyntax", "assertCanReturnOnlySelectFields", "assertCanSearchByRegex", "assertCanFindWithNe", "assertCanFindWithIn", "assertCanDeleteRecord", "assertCanDeleteOne", "assertHasNoUniqueIndexToStart", "assertCanCreateUniqueIndex", "assertCanCreateMultiFieldUniqueIndex", "assertCantCreateUniqueIndexTwice", "assertCanDropUniqueIndex", "assertCanDropCompoundUniqueIndex", "assertCantDropUniqueIndexThatDoesntExist", "assertCantDropIndexWhenNoIndexExists", "assertCantDropCompoundUniqueIndexThatDoesntExist", "
|
3
|
+
declare const methods: readonly ["assertThrowsWithInvalidConnectionString", "assertThrowsWhenCantConnect", "assertThrowsWithBadDatabaseName", "assertKnowsIfConnectionClosed", "assertCanSortDesc", "assertCanSortAsc", "assertCanSortById", "assertCanQueryWithOr", "assertGeneratesIdDifferentEachTime", "assertInsertingGeneratesId", "assertCanCreateMany", "assertCanCreateWithObjectField", "assertCanCountOnId", "assertCanCount", "assertThrowsWhenUpdatingRecordNotFound", "assertCanUpdate", "assertCanUpdateMany", "assertCanPushOntoArrayValue", "assertCanUpdateWithObjectField", "assertCanUpdateFieldInObjectFieldWithTargettedWhere", "assertCanSaveAndGetNullAndUndefined", "assertUpdateReturnsMatchedCounts", "assertCanUpsertOne", "assertCanUpsertNull", "assertCanPushToArrayOnUpsert", "assertCanSyncUniqueIndexesWithFilterExpression", "assertEmptyDatabaseReturnsEmptyArray", "assertFindOneOnEmptyDatabaseReturnsNull", "assertCanLimitResults", "assertCanLimitResultsToZero", "assertCanFindWithBooleanField", "assertCanQueryByGtLtGteLteNe", "assertCanQueryPathWithDotSyntax", "assertCanReturnOnlySelectFields", "assertCanSearchByRegex", "assertCanFindWithNe", "assertCanFindWithIn", "assertCanDeleteRecord", "assertCanDeleteOne", "assertHasNoUniqueIndexToStart", "assertCanCreateUniqueIndex", "assertCanCreateMultiFieldUniqueIndex", "assertCantCreateUniqueIndexTwice", "assertCanDropUniqueIndex", "assertCanDropCompoundUniqueIndex", "assertCantDropUniqueIndexThatDoesntExist", "assertCantDropIndexWhenNoIndexExists", "assertCantDropCompoundUniqueIndexThatDoesntExist", "assertSyncingUniqueIndexesAddsMissingIndexes", "assertSyncingUniqueIndexesSkipsExistingIndexes", "assertSyncingUniqueIndexesRemovesExtraIndexes", "assertSyncingUniqueIndexesIsRaceProof", "assertSyncingIndexesDoesNotAddAndRemove", "assertUniqueIndexBlocksDuplicates", "assertDuplicateKeyThrowsOnInsert", "assertSettingUniqueIndexViolationThrowsSpruceError", "assertCanCreateUniqueIndexOnNestedField", "assertUpsertWithUniqueIndex", "assertNestedFieldIndexUpdates", "assertHasNoIndexToStart", "assertCanCreateIndex", "assertCantCreateSameIndexTwice", "assertCanCreateMultiFieldIndex", "assertCanDropIndex", "assertCanDropCompoundIndex", "assertCantDropCompoundIndexThatDoesNotExist", "assertSyncIndexesSkipsExisting", "assertSyncIndexesRemovesExtraIndexes", "assertSyncIndexesHandlesRaceConditions", "assertSyncIndexesDoesNotRemoveExisting", "assertDuplicateFieldsWithMultipleUniqueIndexesWorkAsExpected", "assertCanSyncIndexesWithoutPartialThenAgainWithProperlyUpdates"];
|
4
4
|
type OriginalMethods = (typeof methods)[number];
|
5
5
|
type BangMethods = `!${OriginalMethods}`;
|
6
6
|
export type DatabaseAssertionName = OriginalMethods | BangMethods;
|
@@ -39,8 +39,8 @@ declare const databaseAssertUtil: {
|
|
39
39
|
assertDuplicateKeyThrowsOnInsert(connect: TestConnect): Promise<void>;
|
40
40
|
assertSyncingIndexesDoesNotAddAndRemove(connect: TestConnect): Promise<void>;
|
41
41
|
assertSyncingUniqueIndexesRemovesExtraIndexes(connect: TestConnect): Promise<void>;
|
42
|
-
|
43
|
-
|
42
|
+
assertSyncingUniqueIndexesSkipsExistingIndexes(connect: TestConnect): Promise<void>;
|
43
|
+
assertSyncingUniqueIndexesAddsMissingIndexes(connect: TestConnect): Promise<void>;
|
44
44
|
assertCantDropCompoundUniqueIndexThatDoesntExist(connect: TestConnect): Promise<void>;
|
45
45
|
assertCantDropIndexWhenNoIndexExists(connect: TestConnect): Promise<void>;
|
46
46
|
assertCantDropUniqueIndexThatDoesntExist(connect: TestConnect): Promise<void>;
|
@@ -68,8 +68,8 @@ const methods = [
|
|
68
68
|
'assertCantDropUniqueIndexThatDoesntExist',
|
69
69
|
'assertCantDropIndexWhenNoIndexExists',
|
70
70
|
'assertCantDropCompoundUniqueIndexThatDoesntExist',
|
71
|
-
'
|
72
|
-
'
|
71
|
+
'assertSyncingUniqueIndexesAddsMissingIndexes',
|
72
|
+
'assertSyncingUniqueIndexesSkipsExistingIndexes',
|
73
73
|
'assertSyncingUniqueIndexesRemovesExtraIndexes',
|
74
74
|
'assertSyncingUniqueIndexesIsRaceProof',
|
75
75
|
'assertSyncingIndexesDoesNotAddAndRemove',
|
@@ -795,11 +795,11 @@ const databaseAssertUtil = {
|
|
795
795
|
},
|
796
796
|
]);
|
797
797
|
indexes = yield db.getUniqueIndexes(this.collectionName);
|
798
|
-
assert.isLength(indexes, 2, `Syncing unique
|
798
|
+
assert.isLength(indexes, 2, `Syncing unique indexes with filter is not removing extra indexes.`);
|
799
799
|
yield this.shutdown(db);
|
800
800
|
});
|
801
801
|
},
|
802
|
-
|
802
|
+
assertSyncingUniqueIndexesSkipsExistingIndexes(connect) {
|
803
803
|
return __awaiter(this, void 0, void 0, function* () {
|
804
804
|
const db = yield connectToDabatase(connect);
|
805
805
|
yield db.syncUniqueIndexes(this.collectionName, [['uniqueField']]);
|
@@ -815,7 +815,7 @@ const databaseAssertUtil = {
|
|
815
815
|
yield this.shutdown(db);
|
816
816
|
});
|
817
817
|
},
|
818
|
-
|
818
|
+
assertSyncingUniqueIndexesAddsMissingIndexes(connect) {
|
819
819
|
return __awaiter(this, void 0, void 0, function* () {
|
820
820
|
const db = yield connectToDabatase(connect);
|
821
821
|
yield db.syncUniqueIndexes(this.collectionName, [['uniqueField']]);
|
@@ -829,7 +829,7 @@ const databaseAssertUtil = {
|
|
829
829
|
['someField'],
|
830
830
|
]);
|
831
831
|
indexes = yield db.getUniqueIndexes(this.collectionName);
|
832
|
-
assert.isLength(indexes, 2, 'There should still be 2 indexes after this
|
832
|
+
assert.isLength(indexes, 2, 'There should still be 2 indexes after this syncUniqueIndexes(). First sync was a single field unique index, second sync was two indexes, but one was already there. So one should have been ignored, one should have been added.');
|
833
833
|
yield this.shutdown(db);
|
834
834
|
});
|
835
835
|
},
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Database, IndexWithFilter, TestConnect } from '../types/database.types';
|
2
2
|
import { DataStore } from '../types/stores.types';
|
3
|
-
declare const methods: readonly ["assertThrowsWithInvalidConnectionString", "assertThrowsWhenCantConnect", "assertThrowsWithBadDatabaseName", "assertKnowsIfConnectionClosed", "assertCanSortDesc", "assertCanSortAsc", "assertCanSortById", "assertCanQueryWithOr", "assertGeneratesIdDifferentEachTime", "assertInsertingGeneratesId", "assertCanCreateMany", "assertCanCreateWithObjectField", "assertCanCountOnId", "assertCanCount", "assertThrowsWhenUpdatingRecordNotFound", "assertCanUpdate", "assertCanUpdateMany", "assertCanPushOntoArrayValue", "assertCanUpdateWithObjectField", "assertCanUpdateFieldInObjectFieldWithTargettedWhere", "assertCanSaveAndGetNullAndUndefined", "assertUpdateReturnsMatchedCounts", "assertCanUpsertOne", "assertCanUpsertNull", "assertCanPushToArrayOnUpsert", "assertCanSyncUniqueIndexesWithFilterExpression", "assertEmptyDatabaseReturnsEmptyArray", "assertFindOneOnEmptyDatabaseReturnsNull", "assertCanLimitResults", "assertCanLimitResultsToZero", "assertCanFindWithBooleanField", "assertCanQueryByGtLtGteLteNe", "assertCanQueryPathWithDotSyntax", "assertCanReturnOnlySelectFields", "assertCanSearchByRegex", "assertCanFindWithNe", "assertCanFindWithIn", "assertCanDeleteRecord", "assertCanDeleteOne", "assertHasNoUniqueIndexToStart", "assertCanCreateUniqueIndex", "assertCanCreateMultiFieldUniqueIndex", "assertCantCreateUniqueIndexTwice", "assertCanDropUniqueIndex", "assertCanDropCompoundUniqueIndex", "assertCantDropUniqueIndexThatDoesntExist", "assertCantDropIndexWhenNoIndexExists", "assertCantDropCompoundUniqueIndexThatDoesntExist", "
|
3
|
+
declare const methods: readonly ["assertThrowsWithInvalidConnectionString", "assertThrowsWhenCantConnect", "assertThrowsWithBadDatabaseName", "assertKnowsIfConnectionClosed", "assertCanSortDesc", "assertCanSortAsc", "assertCanSortById", "assertCanQueryWithOr", "assertGeneratesIdDifferentEachTime", "assertInsertingGeneratesId", "assertCanCreateMany", "assertCanCreateWithObjectField", "assertCanCountOnId", "assertCanCount", "assertThrowsWhenUpdatingRecordNotFound", "assertCanUpdate", "assertCanUpdateMany", "assertCanPushOntoArrayValue", "assertCanUpdateWithObjectField", "assertCanUpdateFieldInObjectFieldWithTargettedWhere", "assertCanSaveAndGetNullAndUndefined", "assertUpdateReturnsMatchedCounts", "assertCanUpsertOne", "assertCanUpsertNull", "assertCanPushToArrayOnUpsert", "assertCanSyncUniqueIndexesWithFilterExpression", "assertEmptyDatabaseReturnsEmptyArray", "assertFindOneOnEmptyDatabaseReturnsNull", "assertCanLimitResults", "assertCanLimitResultsToZero", "assertCanFindWithBooleanField", "assertCanQueryByGtLtGteLteNe", "assertCanQueryPathWithDotSyntax", "assertCanReturnOnlySelectFields", "assertCanSearchByRegex", "assertCanFindWithNe", "assertCanFindWithIn", "assertCanDeleteRecord", "assertCanDeleteOne", "assertHasNoUniqueIndexToStart", "assertCanCreateUniqueIndex", "assertCanCreateMultiFieldUniqueIndex", "assertCantCreateUniqueIndexTwice", "assertCanDropUniqueIndex", "assertCanDropCompoundUniqueIndex", "assertCantDropUniqueIndexThatDoesntExist", "assertCantDropIndexWhenNoIndexExists", "assertCantDropCompoundUniqueIndexThatDoesntExist", "assertSyncingUniqueIndexesAddsMissingIndexes", "assertSyncingUniqueIndexesSkipsExistingIndexes", "assertSyncingUniqueIndexesRemovesExtraIndexes", "assertSyncingUniqueIndexesIsRaceProof", "assertSyncingIndexesDoesNotAddAndRemove", "assertUniqueIndexBlocksDuplicates", "assertDuplicateKeyThrowsOnInsert", "assertSettingUniqueIndexViolationThrowsSpruceError", "assertCanCreateUniqueIndexOnNestedField", "assertUpsertWithUniqueIndex", "assertNestedFieldIndexUpdates", "assertHasNoIndexToStart", "assertCanCreateIndex", "assertCantCreateSameIndexTwice", "assertCanCreateMultiFieldIndex", "assertCanDropIndex", "assertCanDropCompoundIndex", "assertCantDropCompoundIndexThatDoesNotExist", "assertSyncIndexesSkipsExisting", "assertSyncIndexesRemovesExtraIndexes", "assertSyncIndexesHandlesRaceConditions", "assertSyncIndexesDoesNotRemoveExisting", "assertDuplicateFieldsWithMultipleUniqueIndexesWorkAsExpected", "assertCanSyncIndexesWithoutPartialThenAgainWithProperlyUpdates"];
|
4
4
|
type OriginalMethods = (typeof methods)[number];
|
5
5
|
type BangMethods = `!${OriginalMethods}`;
|
6
6
|
export type DatabaseAssertionName = OriginalMethods | BangMethods;
|
@@ -39,8 +39,8 @@ declare const databaseAssertUtil: {
|
|
39
39
|
assertDuplicateKeyThrowsOnInsert(connect: TestConnect): Promise<void>;
|
40
40
|
assertSyncingIndexesDoesNotAddAndRemove(connect: TestConnect): Promise<void>;
|
41
41
|
assertSyncingUniqueIndexesRemovesExtraIndexes(connect: TestConnect): Promise<void>;
|
42
|
-
|
43
|
-
|
42
|
+
assertSyncingUniqueIndexesSkipsExistingIndexes(connect: TestConnect): Promise<void>;
|
43
|
+
assertSyncingUniqueIndexesAddsMissingIndexes(connect: TestConnect): Promise<void>;
|
44
44
|
assertCantDropCompoundUniqueIndexThatDoesntExist(connect: TestConnect): Promise<void>;
|
45
45
|
assertCantDropIndexWhenNoIndexExists(connect: TestConnect): Promise<void>;
|
46
46
|
assertCantDropUniqueIndexThatDoesntExist(connect: TestConnect): Promise<void>;
|
@@ -64,8 +64,8 @@ const methods = [
|
|
64
64
|
'assertCantDropUniqueIndexThatDoesntExist',
|
65
65
|
'assertCantDropIndexWhenNoIndexExists',
|
66
66
|
'assertCantDropCompoundUniqueIndexThatDoesntExist',
|
67
|
-
'
|
68
|
-
'
|
67
|
+
'assertSyncingUniqueIndexesAddsMissingIndexes',
|
68
|
+
'assertSyncingUniqueIndexesSkipsExistingIndexes',
|
69
69
|
'assertSyncingUniqueIndexesRemovesExtraIndexes',
|
70
70
|
'assertSyncingUniqueIndexesIsRaceProof',
|
71
71
|
'assertSyncingIndexesDoesNotAddAndRemove',
|
@@ -728,10 +728,10 @@ const databaseAssertUtil = {
|
|
728
728
|
},
|
729
729
|
]);
|
730
730
|
indexes = await db.getUniqueIndexes(this.collectionName);
|
731
|
-
test_utils_1.assert.isLength(indexes, 2, `Syncing unique
|
731
|
+
test_utils_1.assert.isLength(indexes, 2, `Syncing unique indexes with filter is not removing extra indexes.`);
|
732
732
|
await this.shutdown(db);
|
733
733
|
},
|
734
|
-
async
|
734
|
+
async assertSyncingUniqueIndexesSkipsExistingIndexes(connect) {
|
735
735
|
const db = await connectToDabatase(connect);
|
736
736
|
await db.syncUniqueIndexes(this.collectionName, [['uniqueField']]);
|
737
737
|
let indexes = await db.getUniqueIndexes(this.collectionName);
|
@@ -745,7 +745,7 @@ const databaseAssertUtil = {
|
|
745
745
|
test_utils_1.assert.isLength(indexes, 3);
|
746
746
|
await this.shutdown(db);
|
747
747
|
},
|
748
|
-
async
|
748
|
+
async assertSyncingUniqueIndexesAddsMissingIndexes(connect) {
|
749
749
|
const db = await connectToDabatase(connect);
|
750
750
|
await db.syncUniqueIndexes(this.collectionName, [['uniqueField']]);
|
751
751
|
let indexes = await db.getUniqueIndexes(this.collectionName);
|
@@ -758,7 +758,7 @@ const databaseAssertUtil = {
|
|
758
758
|
['someField'],
|
759
759
|
]);
|
760
760
|
indexes = await db.getUniqueIndexes(this.collectionName);
|
761
|
-
test_utils_1.assert.isLength(indexes, 2, 'There should still be 2 indexes after this
|
761
|
+
test_utils_1.assert.isLength(indexes, 2, 'There should still be 2 indexes after this syncUniqueIndexes(). First sync was a single field unique index, second sync was two indexes, but one was already there. So one should have been ignored, one should have been added.');
|
762
762
|
await this.shutdown(db);
|
763
763
|
},
|
764
764
|
async assertCantDropCompoundUniqueIndexThatDoesntExist(connect) {
|
package/package.json
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
"publishConfig": {
|
4
4
|
"access": "public"
|
5
5
|
},
|
6
|
-
"version": "28.3.
|
6
|
+
"version": "28.3.278",
|
7
7
|
"files": [
|
8
8
|
"build/**/*",
|
9
9
|
"!build/__tests__",
|
@@ -67,8 +67,8 @@
|
|
67
67
|
"@seald-io/nedb": "^4.0.4",
|
68
68
|
"@sprucelabs/error": "^6.0.556",
|
69
69
|
"@sprucelabs/globby": "^2.0.501",
|
70
|
-
"@sprucelabs/schema": "^30.
|
71
|
-
"@sprucelabs/spruce-skill-utils": "^31.1.
|
70
|
+
"@sprucelabs/schema": "^30.2.0",
|
71
|
+
"@sprucelabs/spruce-skill-utils": "^31.1.7",
|
72
72
|
"just-clone": "^6.2.0",
|
73
73
|
"lodash": "^4.17.21",
|
74
74
|
"mongodb": "^6.12.0"
|