@dereekb/firebase 13.32.0 → 13.34.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/eslint/package.json +3 -3
- package/index.cjs.js +1077 -551
- package/index.esm.js +1048 -552
- package/package.json +5 -5
- package/src/lib/common/firestore/snapshot/snapshot.field.d.ts +59 -4
- package/src/lib/model/index.d.ts +1 -0
- package/src/lib/model/system/system.d.ts +61 -3
- package/src/lib/model/userexternalconnection/index.d.ts +6 -0
- package/src/lib/model/userexternalconnection/userexternalconnection.action.d.ts +21 -0
- package/src/lib/model/userexternalconnection/userexternalconnection.api.d.ts +120 -0
- package/src/lib/model/userexternalconnection/userexternalconnection.d.ts +191 -0
- package/src/lib/model/userexternalconnection/userexternalconnection.id.d.ts +51 -0
- package/src/lib/model/userexternalconnection/userexternalconnection.query.d.ts +19 -0
- package/src/lib/model/userexternalconnection/userexternalconnection.util.d.ts +149 -0
- package/test/index.cjs.js +371 -50
- package/test/index.esm.js +362 -51
- package/test/package.json +6 -6
- package/test/src/lib/client/firebase.rules.d.ts +114 -0
- package/test/src/lib/client/index.d.ts +1 -0
package/test/index.esm.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { performAsyncTasks, cachedGetter, bitwiseObjectDencoder, modelFieldConversions, compareStrings, waitForMs, isEvenNumber, unique, arrayFactory, mapGetter, randomNumberFactory, randomFromArrayFactory, idBatchFactory, arrayContainsDuplicateValue, useCallback, readableStreamToBuffer, SLASH_PATH_SEPARATOR } from '@dereekb/util';
|
|
2
2
|
import { initializeTestEnvironment } from '@firebase/rules-unit-testing';
|
|
3
|
+
export { assertFails, assertSucceeds } from '@firebase/rules-unit-testing';
|
|
3
4
|
import { firebaseStorageContextFactory, firestoreContextFactory, firebaseFirestoreClientDrivers, firebaseStorageClientDrivers, firestoreModelIdentity, snapshotConverterFunctions, firestoreBoolean, optionalFirestoreNumber, optionalFirestoreDate, optionalFirestoreArray, optionalFirestoreString, firestoreDate, firestoreBitwiseObjectMap, firestoreUniqueStringArray, firestoreNumber, firestoreString, firestoreUID, copyUserRelatedDataAccessorFactoryFunction, firestoreSubObject, defaultPagedItemPageDataConverter, AbstractFirestoreDocument, AbstractFirestoreDocumentWithParent, firebaseModelServiceFactory, grantFullAccessIfAdmin, firebaseModelsService, systemStateFirestoreCollection, allChildDocumentsUnderParent, where, makeDocuments, getDocumentSnapshotPairs, useDocumentSnapshot, useDocumentSnapshotData, firestoreIdBatchVerifierFactory, limit, orderBy, limitToLast, whereDocumentId, loadAllFirestoreDocumentSnapshotPairs, loadAllFirestoreDocumentSnapshot, iterateFirestoreDocumentSnapshotPairs, iterateFirestoreDocumentSnapshots, iterateFirestoreDocumentSnapshotPairBatches, iterateFirestoreDocumentSnapshotBatches, whereStringHasRootIdentityModelKey, whereStringValueHasPrefix, whereDateIsAfterWithSort, whereDateIsBeforeWithSort, whereDateIsOnOrAfterWithSort, whereDateIsOnOrBeforeWithSort, whereDateIsInRange, whereDateIsBetween, startAt, orderByDocumentId, startAtValue, startAfter, endAt, endAtValue, endBefore, streamFromOnSnapshot, latestSnapshotsFromDocuments, newDocuments, loadDocumentsForDocumentReferences, loadDocumentsForDocumentReferencesFromValues, loadDocumentsForKeys, loadDocumentsForKeysFromValues, loadDocumentsForIds, loadDocumentsForIdsFromValues, firestoreDocumentLoader, setIdAndKeyFromKeyIdRefOnDocumentData, firestoreModelIdFromDocument, firestoreModelIdsFromDocuments, firestoreModelKeyFromDocument, firestoreModelKeysFromDocuments, documentReferenceFromDocument, documentReferencesFromDocuments, limitedFirestoreDocumentAccessorSnapshotCache, mapLatestSnapshotsFromDocuments, streamDocumentSnapshotsData, dataFromDocumentSnapshots, streamDocumentSnapshotDataPairs, streamDocumentSnapshotDataPairsWithData, getDocumentSnapshots, getDocumentSnapshotPair, getDocumentSnapshotDataPair, getDocumentSnapshotDataPairs, getDocumentSnapshotDataPairsWithData, getDocumentSnapshotDataTuples, getDocumentSnapshotData, getDocumentSnapshotsData, getDataFromDocumentSnapshots, loadDocumentsForSnapshots, firestoreDocumentSnapshotPairsLoader, documentData, documentDataFunction, documentDataWithIdAndKey, setIdAndKeyFromSnapshotOnDocumentData, firebaseQuerySnapshotAccumulator, firebaseQueryItemAccumulator, uploadFileWithStream, iterateStorageListFilesByEachFile } from '@dereekb/firebase';
|
|
4
5
|
import { setLogLevel } from 'firebase/firestore';
|
|
5
6
|
import { AbstractTestContextFixture, instanceWrapTestContextFactory, AbstractWrappedFixtureWithInstance, itShouldFail, callbackTest, expectFail } from '@dereekb/util/test';
|
|
7
|
+
import { existsSync, readFileSync, createReadStream } from 'node:fs';
|
|
8
|
+
import { dirname, join } from 'node:path';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
6
10
|
import { firstValueFrom, filter, skip, from, first, map, switchMap } from 'rxjs';
|
|
7
11
|
import { SubscriptionObject, isLoadingStateFinishedLoading, flattenAccumulatorResultItemArray, iteratorNextPageUntilPage, accumulatorCurrentPageListLoadingState, accumulatorFlattenPageListLoadingState } from '@dereekb/rxjs';
|
|
8
12
|
import { addDays, startOfDay, addHours } from 'date-fns';
|
|
9
13
|
import { DateRangeType } from '@dereekb/date';
|
|
10
14
|
import { Readable } from 'node:stream';
|
|
11
|
-
import { createReadStream } from 'node:fs';
|
|
12
15
|
|
|
13
16
|
function _array_like_to_array$2(arr, len) {
|
|
14
17
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -21,7 +24,7 @@ function _array_with_holes$1(arr) {
|
|
|
21
24
|
function _array_without_holes$2(arr) {
|
|
22
25
|
if (Array.isArray(arr)) return _array_like_to_array$2(arr);
|
|
23
26
|
}
|
|
24
|
-
function asyncGeneratorStep$
|
|
27
|
+
function asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, key, arg) {
|
|
25
28
|
try {
|
|
26
29
|
var info = gen[key](arg);
|
|
27
30
|
var value = info.value;
|
|
@@ -35,22 +38,22 @@ function asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
35
38
|
Promise.resolve(value).then(_next, _throw);
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
|
-
function _async_to_generator$
|
|
41
|
+
function _async_to_generator$7(fn) {
|
|
39
42
|
return function() {
|
|
40
43
|
var self = this, args = arguments;
|
|
41
44
|
return new Promise(function(resolve, reject) {
|
|
42
45
|
var gen = fn.apply(self, args);
|
|
43
46
|
function _next(value) {
|
|
44
|
-
asyncGeneratorStep$
|
|
47
|
+
asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, "next", value);
|
|
45
48
|
}
|
|
46
49
|
function _throw(err) {
|
|
47
|
-
asyncGeneratorStep$
|
|
50
|
+
asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, "throw", err);
|
|
48
51
|
}
|
|
49
52
|
_next(undefined);
|
|
50
53
|
});
|
|
51
54
|
};
|
|
52
55
|
}
|
|
53
|
-
function _define_property$
|
|
56
|
+
function _define_property$a(obj, key, value) {
|
|
54
57
|
if (key in obj) {
|
|
55
58
|
Object.defineProperty(obj, key, {
|
|
56
59
|
value: value,
|
|
@@ -96,7 +99,7 @@ function _non_iterable_rest$1() {
|
|
|
96
99
|
function _non_iterable_spread$2() {
|
|
97
100
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
98
101
|
}
|
|
99
|
-
function _object_spread$
|
|
102
|
+
function _object_spread$4(target) {
|
|
100
103
|
for(var i = 1; i < arguments.length; i++){
|
|
101
104
|
var source = arguments[i] != null ? arguments[i] : {};
|
|
102
105
|
var ownKeys = Object.keys(source);
|
|
@@ -106,7 +109,7 @@ function _object_spread$3(target) {
|
|
|
106
109
|
}));
|
|
107
110
|
}
|
|
108
111
|
ownKeys.forEach(function(key) {
|
|
109
|
-
_define_property$
|
|
112
|
+
_define_property$a(target, key, source[key]);
|
|
110
113
|
});
|
|
111
114
|
}
|
|
112
115
|
return target;
|
|
@@ -144,7 +147,7 @@ function _unsupported_iterable_to_array$2(o, minLen) {
|
|
|
144
147
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
145
148
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$2(o, minLen);
|
|
146
149
|
}
|
|
147
|
-
function _ts_generator$
|
|
150
|
+
function _ts_generator$7(thisArg, body) {
|
|
148
151
|
var f, y, t, _ = {
|
|
149
152
|
label: 0,
|
|
150
153
|
sent: function() {
|
|
@@ -300,7 +303,7 @@ function _ts_generator$6(thisArg, body) {
|
|
|
300
303
|
});
|
|
301
304
|
return fuzzedMap;
|
|
302
305
|
};
|
|
303
|
-
var injectedDriver = _object_spread_props$2(_object_spread$
|
|
306
|
+
var injectedDriver = _object_spread_props$2(_object_spread$4({}, driver), {
|
|
304
307
|
collection: fuzzedCollection,
|
|
305
308
|
collectionGroup: fuzzedCollectionGroup,
|
|
306
309
|
subcollection: fuzzedSubcollection,
|
|
@@ -318,7 +321,7 @@ function _ts_generator$6(thisArg, body) {
|
|
|
318
321
|
* @param drivers - The base Firestore drivers to wrap.
|
|
319
322
|
* @returns A {@link TestingFirestoreDrivers} marked with `firestoreDriverType: 'testing'` and a wrapped accessor driver from {@link makeTestingFirestoreAccesorDriver}.
|
|
320
323
|
*/ function makeTestingFirestoreDrivers(drivers) {
|
|
321
|
-
return _object_spread_props$2(_object_spread$
|
|
324
|
+
return _object_spread_props$2(_object_spread$4({}, drivers), {
|
|
322
325
|
firestoreDriverType: 'testing',
|
|
323
326
|
firestoreAccessorDriver: makeTestingFirestoreAccesorDriver(drivers.firestoreAccessorDriver)
|
|
324
327
|
});
|
|
@@ -331,9 +334,9 @@ function _ts_generator$6(thisArg, body) {
|
|
|
331
334
|
* @param context - The test context whose fuzzed collections should be cleared.
|
|
332
335
|
* @param clearCollection - Callback that performs the actual deletion for a single collection.
|
|
333
336
|
*/ function clearTestFirestoreContextCollections(context, clearCollection) {
|
|
334
|
-
return _async_to_generator$
|
|
337
|
+
return _async_to_generator$7(function() {
|
|
335
338
|
var names, tuples;
|
|
336
|
-
return _ts_generator$
|
|
339
|
+
return _ts_generator$7(this, function(_state) {
|
|
337
340
|
switch(_state.label){
|
|
338
341
|
case 0:
|
|
339
342
|
names = context.drivers.firestoreAccessorDriver.getFuzzedCollectionsNameMap();
|
|
@@ -355,7 +358,7 @@ function _ts_generator$6(thisArg, body) {
|
|
|
355
358
|
})();
|
|
356
359
|
}
|
|
357
360
|
|
|
358
|
-
function _define_property$
|
|
361
|
+
function _define_property$9(obj, key, value) {
|
|
359
362
|
if (key in obj) {
|
|
360
363
|
Object.defineProperty(obj, key, {
|
|
361
364
|
value: value,
|
|
@@ -368,7 +371,7 @@ function _define_property$8(obj, key, value) {
|
|
|
368
371
|
}
|
|
369
372
|
return obj;
|
|
370
373
|
}
|
|
371
|
-
function _object_spread$
|
|
374
|
+
function _object_spread$3(target) {
|
|
372
375
|
for(var i = 1; i < arguments.length; i++){
|
|
373
376
|
var source = arguments[i] != null ? arguments[i] : {};
|
|
374
377
|
var ownKeys = Object.keys(source);
|
|
@@ -378,7 +381,7 @@ function _object_spread$2(target) {
|
|
|
378
381
|
}));
|
|
379
382
|
}
|
|
380
383
|
ownKeys.forEach(function(key) {
|
|
381
|
-
_define_property$
|
|
384
|
+
_define_property$9(target, key, source[key]);
|
|
382
385
|
});
|
|
383
386
|
}
|
|
384
387
|
return target;
|
|
@@ -421,7 +424,7 @@ var bucketTestNameKey = 0;
|
|
|
421
424
|
var random = Math.ceil(Math.random() * 999999) % 999999;
|
|
422
425
|
return "test-bucket-".concat(time, "-").concat(random, "-").concat(bucketTestNameKey += 1);
|
|
423
426
|
}) : driver.getDefaultBucket;
|
|
424
|
-
var injectedDriver = _object_spread_props$1(_object_spread$
|
|
427
|
+
var injectedDriver = _object_spread_props$1(_object_spread$3({}, driver), {
|
|
425
428
|
getDefaultBucket: defaultBucket
|
|
426
429
|
});
|
|
427
430
|
return injectedDriver;
|
|
@@ -433,7 +436,7 @@ var bucketTestNameKey = 0;
|
|
|
433
436
|
* @param config - Optional config forwarded to {@link makeTestingFirebaseStorageAccesorDriver}; controls test-bucket override behavior.
|
|
434
437
|
* @returns A {@link TestingFirebaseStorageDrivers} marked with `storageDriverType: 'testing'` and a wrapped accessor driver.
|
|
435
438
|
*/ function makeTestingFirebaseStorageDrivers(drivers, config) {
|
|
436
|
-
return _object_spread_props$1(_object_spread$
|
|
439
|
+
return _object_spread_props$1(_object_spread$3({}, drivers), {
|
|
437
440
|
storageDriverType: 'testing',
|
|
438
441
|
storageAccessorDriver: makeTestingFirebaseStorageAccesorDriver(drivers.storageAccessorDriver, config)
|
|
439
442
|
});
|
|
@@ -467,7 +470,7 @@ function _create_class$6(Constructor, protoProps, staticProps) {
|
|
|
467
470
|
if (protoProps) _defineProperties$6(Constructor.prototype, protoProps);
|
|
468
471
|
return Constructor;
|
|
469
472
|
}
|
|
470
|
-
function _define_property$
|
|
473
|
+
function _define_property$8(obj, key, value) {
|
|
471
474
|
if (key in obj) {
|
|
472
475
|
Object.defineProperty(obj, key, {
|
|
473
476
|
value: value,
|
|
@@ -533,8 +536,8 @@ function _is_native_reflect_construct$6() {
|
|
|
533
536
|
*/ var TestFirebaseInstance = /*#__PURE__*/ function() {
|
|
534
537
|
function TestFirebaseInstance(firestoreContext, storageContext) {
|
|
535
538
|
_class_call_check$7(this, TestFirebaseInstance);
|
|
536
|
-
_define_property$
|
|
537
|
-
_define_property$
|
|
539
|
+
_define_property$8(this, "firestoreContext", void 0);
|
|
540
|
+
_define_property$8(this, "storageContext", void 0);
|
|
538
541
|
this.firestoreContext = firestoreContext;
|
|
539
542
|
this.storageContext = storageContext;
|
|
540
543
|
}
|
|
@@ -603,7 +606,7 @@ function _assert_this_initialized$5(self) {
|
|
|
603
606
|
}
|
|
604
607
|
return self;
|
|
605
608
|
}
|
|
606
|
-
function asyncGeneratorStep$
|
|
609
|
+
function asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, key, arg) {
|
|
607
610
|
try {
|
|
608
611
|
var info = gen[key](arg);
|
|
609
612
|
var value = info.value;
|
|
@@ -617,16 +620,16 @@ function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
617
620
|
Promise.resolve(value).then(_next, _throw);
|
|
618
621
|
}
|
|
619
622
|
}
|
|
620
|
-
function _async_to_generator$
|
|
623
|
+
function _async_to_generator$6(fn) {
|
|
621
624
|
return function() {
|
|
622
625
|
var self = this, args = arguments;
|
|
623
626
|
return new Promise(function(resolve, reject) {
|
|
624
627
|
var gen = fn.apply(self, args);
|
|
625
628
|
function _next(value) {
|
|
626
|
-
asyncGeneratorStep$
|
|
629
|
+
asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, "next", value);
|
|
627
630
|
}
|
|
628
631
|
function _throw(err) {
|
|
629
|
-
asyncGeneratorStep$
|
|
632
|
+
asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, "throw", err);
|
|
630
633
|
}
|
|
631
634
|
_next(undefined);
|
|
632
635
|
});
|
|
@@ -654,7 +657,7 @@ function _create_class$5(Constructor, protoProps, staticProps) {
|
|
|
654
657
|
if (protoProps) _defineProperties$5(Constructor.prototype, protoProps);
|
|
655
658
|
return Constructor;
|
|
656
659
|
}
|
|
657
|
-
function _define_property$
|
|
660
|
+
function _define_property$7(obj, key, value) {
|
|
658
661
|
if (key in obj) {
|
|
659
662
|
Object.defineProperty(obj, key, {
|
|
660
663
|
value: value,
|
|
@@ -686,7 +689,7 @@ function _inherits$5(subClass, superClass) {
|
|
|
686
689
|
});
|
|
687
690
|
if (superClass) _set_prototype_of$5(subClass, superClass);
|
|
688
691
|
}
|
|
689
|
-
function _object_spread$
|
|
692
|
+
function _object_spread$2(target) {
|
|
690
693
|
for(var i = 1; i < arguments.length; i++){
|
|
691
694
|
var source = arguments[i] != null ? arguments[i] : {};
|
|
692
695
|
var ownKeys = Object.keys(source);
|
|
@@ -696,7 +699,7 @@ function _object_spread$1(target) {
|
|
|
696
699
|
}));
|
|
697
700
|
}
|
|
698
701
|
ownKeys.forEach(function(key) {
|
|
699
|
-
_define_property$
|
|
702
|
+
_define_property$7(target, key, source[key]);
|
|
700
703
|
});
|
|
701
704
|
}
|
|
702
705
|
return target;
|
|
@@ -745,7 +748,7 @@ function _is_native_reflect_construct$5() {
|
|
|
745
748
|
return !!result;
|
|
746
749
|
})();
|
|
747
750
|
}
|
|
748
|
-
function _ts_generator$
|
|
751
|
+
function _ts_generator$6(thisArg, body) {
|
|
749
752
|
var f, y, t, _ = {
|
|
750
753
|
label: 0,
|
|
751
754
|
sent: function() {
|
|
@@ -855,7 +858,7 @@ function _ts_generator$5(thisArg, body) {
|
|
|
855
858
|
* @param rulesTestContext - The per-test rules context (authenticated or unauthenticated) used to obtain the Firestore instance.
|
|
856
859
|
* @returns A {@link RulesUnitTestTestFirestoreContext} that exposes the rules-test environment and context alongside the standard Firestore context.
|
|
857
860
|
*/ function makeRulesTestFirestoreContext(drivers, rulesTestEnvironment, rulesTestContext) {
|
|
858
|
-
var context = _object_spread_props(_object_spread$
|
|
861
|
+
var context = _object_spread_props(_object_spread$2({}, firestoreContextFactory(drivers)(rulesTestContext.firestore())), {
|
|
859
862
|
drivers: drivers,
|
|
860
863
|
rulesTestContext: rulesTestContext,
|
|
861
864
|
rulesTestEnvironment: rulesTestEnvironment
|
|
@@ -873,7 +876,7 @@ function _ts_generator$5(thisArg, body) {
|
|
|
873
876
|
* @param rulesTestContext - The per-test rules context used to obtain the Storage instance.
|
|
874
877
|
* @returns A {@link RulesUnitTestTestFirebaseStorageContext} that exposes the rules-test environment and context alongside the standard Storage context.
|
|
875
878
|
*/ function makeRulesTestFirebaseStorageContext(drivers, rulesTestEnvironment, rulesTestContext) {
|
|
876
|
-
var context = _object_spread_props(_object_spread$
|
|
879
|
+
var context = _object_spread_props(_object_spread$2({}, firebaseStorageContextFactory(drivers)(rulesTestContext.storage())), {
|
|
877
880
|
drivers: drivers,
|
|
878
881
|
rulesTestContext: rulesTestContext,
|
|
879
882
|
rulesTestEnvironment: rulesTestEnvironment
|
|
@@ -890,13 +893,13 @@ function _ts_generator$5(thisArg, body) {
|
|
|
890
893
|
function RulesUnitTestTestFirebaseInstance(drivers, rulesTestEnvironment, rulesTestContext) {
|
|
891
894
|
var _this = this;
|
|
892
895
|
_class_call_check$6(this, RulesUnitTestTestFirebaseInstance);
|
|
893
|
-
_define_property$
|
|
894
|
-
_define_property$
|
|
895
|
-
_define_property$
|
|
896
|
-
_define_property$
|
|
896
|
+
_define_property$7(this, "drivers", void 0);
|
|
897
|
+
_define_property$7(this, "rulesTestEnvironment", void 0);
|
|
898
|
+
_define_property$7(this, "rulesTestContext", void 0);
|
|
899
|
+
_define_property$7(this, "_firestoreContext", cachedGetter(function() {
|
|
897
900
|
return makeRulesTestFirestoreContext(_this.drivers, _this.rulesTestEnvironment, _this.rulesTestContext);
|
|
898
901
|
}));
|
|
899
|
-
_define_property$
|
|
902
|
+
_define_property$7(this, "_storageContext", cachedGetter(function() {
|
|
900
903
|
return makeRulesTestFirebaseStorageContext(_this.drivers, _this.rulesTestEnvironment, _this.rulesTestContext);
|
|
901
904
|
}));
|
|
902
905
|
this.drivers = drivers;
|
|
@@ -970,8 +973,8 @@ function _ts_generator$5(thisArg, body) {
|
|
|
970
973
|
// Initialize the emulator environment once per test suite.
|
|
971
974
|
// This is the expensive operation that hits the emulator's REST API (e.g. PUT /internal/setRules).
|
|
972
975
|
beforeAll(function() {
|
|
973
|
-
return _async_to_generator$
|
|
974
|
-
return _ts_generator$
|
|
976
|
+
return _async_to_generator$6(function() {
|
|
977
|
+
return _ts_generator$6(this, function(_state) {
|
|
975
978
|
switch(_state.label){
|
|
976
979
|
case 0:
|
|
977
980
|
return [
|
|
@@ -989,8 +992,8 @@ function _ts_generator$5(thisArg, body) {
|
|
|
989
992
|
});
|
|
990
993
|
// Clean up the emulator environment once after all tests complete.
|
|
991
994
|
afterAll(function() {
|
|
992
|
-
return _async_to_generator$
|
|
993
|
-
return _ts_generator$
|
|
995
|
+
return _async_to_generator$6(function() {
|
|
996
|
+
return _ts_generator$6(this, function(_state) {
|
|
994
997
|
switch(_state.label){
|
|
995
998
|
case 0:
|
|
996
999
|
if (!rulesTestEnvironment) return [
|
|
@@ -1020,11 +1023,11 @@ function _ts_generator$5(thisArg, body) {
|
|
|
1020
1023
|
// (via makeTestingFirestoreAccesorDriver) to provide data isolation between tests.
|
|
1021
1024
|
var clearInstance = null;
|
|
1022
1025
|
beforeEach(function() {
|
|
1023
|
-
return _async_to_generator$
|
|
1026
|
+
return _async_to_generator$6(function() {
|
|
1024
1027
|
var drivers, rulesTestContext, instance;
|
|
1025
|
-
return _ts_generator$
|
|
1028
|
+
return _ts_generator$6(this, function(_state) {
|
|
1026
1029
|
try {
|
|
1027
|
-
drivers = _object_spread$
|
|
1030
|
+
drivers = _object_spread$2({}, makeTestingFirestoreDrivers(firebaseFirestoreClientDrivers()), makeTestingFirebaseStorageDrivers(firebaseStorageClientDrivers(), {
|
|
1028
1031
|
useTestDefaultBucket: true
|
|
1029
1032
|
}));
|
|
1030
1033
|
if (config.testEnvironment.collectionNames) {
|
|
@@ -1172,7 +1175,7 @@ function _create_class$4(Constructor, protoProps, staticProps) {
|
|
|
1172
1175
|
if (protoProps) _defineProperties$4(Constructor.prototype, protoProps);
|
|
1173
1176
|
return Constructor;
|
|
1174
1177
|
}
|
|
1175
|
-
function _define_property$
|
|
1178
|
+
function _define_property$6(obj, key, value) {
|
|
1176
1179
|
if (key in obj) {
|
|
1177
1180
|
Object.defineProperty(obj, key, {
|
|
1178
1181
|
value: value,
|
|
@@ -1854,7 +1857,7 @@ function _is_native_reflect_construct$4() {
|
|
|
1854
1857
|
*
|
|
1855
1858
|
* Used when creating the mock system state Firestore collection to register
|
|
1856
1859
|
* the {@link MockSystemData} converter under the {@link MOCK_SYSTEM_STATE_TYPE} key.
|
|
1857
|
-
*/ var MOCK_ITEM_SYSTEM_STATE_STORED_DATA_CONVERTER_MAP = _define_property$
|
|
1860
|
+
*/ var MOCK_ITEM_SYSTEM_STATE_STORED_DATA_CONVERTER_MAP = _define_property$6({}, MOCK_SYSTEM_STATE_TYPE, mockItemSystemDataConverter);
|
|
1858
1861
|
|
|
1859
1862
|
function _class_call_check$4(instance, Constructor) {
|
|
1860
1863
|
if (!(instance instanceof Constructor)) {
|
|
@@ -2049,7 +2052,7 @@ function _create_class$3(Constructor, protoProps, staticProps) {
|
|
|
2049
2052
|
if (protoProps) _defineProperties$3(Constructor.prototype, protoProps);
|
|
2050
2053
|
return Constructor;
|
|
2051
2054
|
}
|
|
2052
|
-
function _define_property$
|
|
2055
|
+
function _define_property$5(obj, key, value) {
|
|
2053
2056
|
if (key in obj) {
|
|
2054
2057
|
Object.defineProperty(obj, key, {
|
|
2055
2058
|
value: value,
|
|
@@ -2115,8 +2118,8 @@ function _is_native_reflect_construct$3() {
|
|
|
2115
2118
|
*/ var MockItemCollectionFixtureInstance = /*#__PURE__*/ function() {
|
|
2116
2119
|
function MockItemCollectionFixtureInstance(fixture) {
|
|
2117
2120
|
_class_call_check$3(this, MockItemCollectionFixtureInstance);
|
|
2118
|
-
_define_property$
|
|
2119
|
-
_define_property$
|
|
2121
|
+
_define_property$5(this, "fixture", void 0);
|
|
2122
|
+
_define_property$5(this, "collections", void 0);
|
|
2120
2123
|
this.fixture = fixture;
|
|
2121
2124
|
this.collections = makeMockItemCollections(fixture.parent.firestoreContext);
|
|
2122
2125
|
}
|
|
@@ -2266,7 +2269,7 @@ function _create_class$2(Constructor, protoProps, staticProps) {
|
|
|
2266
2269
|
if (protoProps) _defineProperties$2(Constructor.prototype, protoProps);
|
|
2267
2270
|
return Constructor;
|
|
2268
2271
|
}
|
|
2269
|
-
function _define_property$
|
|
2272
|
+
function _define_property$4(obj, key, value) {
|
|
2270
2273
|
if (key in obj) {
|
|
2271
2274
|
Object.defineProperty(obj, key, {
|
|
2272
2275
|
value: value,
|
|
@@ -2331,7 +2334,7 @@ function _is_native_reflect_construct$2() {
|
|
|
2331
2334
|
*/ var MockItemStorageFixtureInstance = /*#__PURE__*/ function() {
|
|
2332
2335
|
function MockItemStorageFixtureInstance(fixture) {
|
|
2333
2336
|
_class_call_check$2(this, MockItemStorageFixtureInstance);
|
|
2334
|
-
_define_property$
|
|
2337
|
+
_define_property$4(this, "fixture", void 0);
|
|
2335
2338
|
this.fixture = fixture;
|
|
2336
2339
|
}
|
|
2337
2340
|
_create_class$2(MockItemStorageFixtureInstance, [
|
|
@@ -2421,6 +2424,314 @@ function _is_native_reflect_construct$2() {
|
|
|
2421
2424
|
* Uses @firebase/storage. This is ONLY for the client.
|
|
2422
2425
|
*/ var authorizedTestWithMockItemStorage = testWithMockItemStorageFixture()(authorizedFirebaseFactory);
|
|
2423
2426
|
|
|
2427
|
+
function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2428
|
+
try {
|
|
2429
|
+
var info = gen[key](arg);
|
|
2430
|
+
var value = info.value;
|
|
2431
|
+
} catch (error) {
|
|
2432
|
+
reject(error);
|
|
2433
|
+
return;
|
|
2434
|
+
}
|
|
2435
|
+
if (info.done) {
|
|
2436
|
+
resolve(value);
|
|
2437
|
+
} else {
|
|
2438
|
+
Promise.resolve(value).then(_next, _throw);
|
|
2439
|
+
}
|
|
2440
|
+
}
|
|
2441
|
+
function _async_to_generator$5(fn) {
|
|
2442
|
+
return function() {
|
|
2443
|
+
var self = this, args = arguments;
|
|
2444
|
+
return new Promise(function(resolve, reject) {
|
|
2445
|
+
var gen = fn.apply(self, args);
|
|
2446
|
+
function _next(value) {
|
|
2447
|
+
asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "next", value);
|
|
2448
|
+
}
|
|
2449
|
+
function _throw(err) {
|
|
2450
|
+
asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "throw", err);
|
|
2451
|
+
}
|
|
2452
|
+
_next(undefined);
|
|
2453
|
+
});
|
|
2454
|
+
};
|
|
2455
|
+
}
|
|
2456
|
+
function _define_property$3(obj, key, value) {
|
|
2457
|
+
if (key in obj) {
|
|
2458
|
+
Object.defineProperty(obj, key, {
|
|
2459
|
+
value: value,
|
|
2460
|
+
enumerable: true,
|
|
2461
|
+
configurable: true,
|
|
2462
|
+
writable: true
|
|
2463
|
+
});
|
|
2464
|
+
} else {
|
|
2465
|
+
obj[key] = value;
|
|
2466
|
+
}
|
|
2467
|
+
return obj;
|
|
2468
|
+
}
|
|
2469
|
+
function _object_spread$1(target) {
|
|
2470
|
+
for(var i = 1; i < arguments.length; i++){
|
|
2471
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
2472
|
+
var ownKeys = Object.keys(source);
|
|
2473
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
2474
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
2475
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
2476
|
+
}));
|
|
2477
|
+
}
|
|
2478
|
+
ownKeys.forEach(function(key) {
|
|
2479
|
+
_define_property$3(target, key, source[key]);
|
|
2480
|
+
});
|
|
2481
|
+
}
|
|
2482
|
+
return target;
|
|
2483
|
+
}
|
|
2484
|
+
function _ts_generator$5(thisArg, body) {
|
|
2485
|
+
var f, y, t, _ = {
|
|
2486
|
+
label: 0,
|
|
2487
|
+
sent: function() {
|
|
2488
|
+
if (t[0] & 1) throw t[1];
|
|
2489
|
+
return t[1];
|
|
2490
|
+
},
|
|
2491
|
+
trys: [],
|
|
2492
|
+
ops: []
|
|
2493
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
2494
|
+
return d(g, "next", {
|
|
2495
|
+
value: verb(0)
|
|
2496
|
+
}), d(g, "throw", {
|
|
2497
|
+
value: verb(1)
|
|
2498
|
+
}), d(g, "return", {
|
|
2499
|
+
value: verb(2)
|
|
2500
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
2501
|
+
value: function() {
|
|
2502
|
+
return this;
|
|
2503
|
+
}
|
|
2504
|
+
}), g;
|
|
2505
|
+
function verb(n) {
|
|
2506
|
+
return function(v) {
|
|
2507
|
+
return step([
|
|
2508
|
+
n,
|
|
2509
|
+
v
|
|
2510
|
+
]);
|
|
2511
|
+
};
|
|
2512
|
+
}
|
|
2513
|
+
function step(op) {
|
|
2514
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
2515
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
2516
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
2517
|
+
if (y = 0, t) op = [
|
|
2518
|
+
op[0] & 2,
|
|
2519
|
+
t.value
|
|
2520
|
+
];
|
|
2521
|
+
switch(op[0]){
|
|
2522
|
+
case 0:
|
|
2523
|
+
case 1:
|
|
2524
|
+
t = op;
|
|
2525
|
+
break;
|
|
2526
|
+
case 4:
|
|
2527
|
+
_.label++;
|
|
2528
|
+
return {
|
|
2529
|
+
value: op[1],
|
|
2530
|
+
done: false
|
|
2531
|
+
};
|
|
2532
|
+
case 5:
|
|
2533
|
+
_.label++;
|
|
2534
|
+
y = op[1];
|
|
2535
|
+
op = [
|
|
2536
|
+
0
|
|
2537
|
+
];
|
|
2538
|
+
continue;
|
|
2539
|
+
case 7:
|
|
2540
|
+
op = _.ops.pop();
|
|
2541
|
+
_.trys.pop();
|
|
2542
|
+
continue;
|
|
2543
|
+
default:
|
|
2544
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
2545
|
+
_ = 0;
|
|
2546
|
+
continue;
|
|
2547
|
+
}
|
|
2548
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
2549
|
+
_.label = op[1];
|
|
2550
|
+
break;
|
|
2551
|
+
}
|
|
2552
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
2553
|
+
_.label = t[1];
|
|
2554
|
+
t = op;
|
|
2555
|
+
break;
|
|
2556
|
+
}
|
|
2557
|
+
if (t && _.label < t[2]) {
|
|
2558
|
+
_.label = t[2];
|
|
2559
|
+
_.ops.push(op);
|
|
2560
|
+
break;
|
|
2561
|
+
}
|
|
2562
|
+
if (t[2]) _.ops.pop();
|
|
2563
|
+
_.trys.pop();
|
|
2564
|
+
continue;
|
|
2565
|
+
}
|
|
2566
|
+
op = body.call(thisArg, _);
|
|
2567
|
+
} catch (e) {
|
|
2568
|
+
op = [
|
|
2569
|
+
6,
|
|
2570
|
+
e
|
|
2571
|
+
];
|
|
2572
|
+
y = 0;
|
|
2573
|
+
} finally{
|
|
2574
|
+
f = t = 0;
|
|
2575
|
+
}
|
|
2576
|
+
if (op[0] & 5) throw op[1];
|
|
2577
|
+
return {
|
|
2578
|
+
value: op[0] ? op[1] : void 0,
|
|
2579
|
+
done: true
|
|
2580
|
+
};
|
|
2581
|
+
}
|
|
2582
|
+
}
|
|
2583
|
+
/**
|
|
2584
|
+
* Default file name of the workspace's Firestore security rules.
|
|
2585
|
+
*/ var DEFAULT_FIRESTORE_RULES_FILE_NAME = 'firestore.rules';
|
|
2586
|
+
/**
|
|
2587
|
+
* Reads the workspace's Firestore rules file by walking up from the given module/path.
|
|
2588
|
+
*
|
|
2589
|
+
* @param config - The starting location and optional file name.
|
|
2590
|
+
* @returns The contents of the rules file.
|
|
2591
|
+
* @throws {Error} When no rules file is found at or above the starting location.
|
|
2592
|
+
*/ function readFirestoreRulesFile(config) {
|
|
2593
|
+
var from = config.from, _config_fileName = config.fileName, fileName = _config_fileName === void 0 ? DEFAULT_FIRESTORE_RULES_FILE_NAME : _config_fileName;
|
|
2594
|
+
var startPath = from.startsWith('file:') ? dirname(fileURLToPath(from)) : from;
|
|
2595
|
+
var directory = startPath;
|
|
2596
|
+
var found = null;
|
|
2597
|
+
// walk up to the filesystem root looking for the rules file.
|
|
2598
|
+
while(!found){
|
|
2599
|
+
var candidate = join(directory, fileName !== null && fileName !== void 0 ? fileName : DEFAULT_FIRESTORE_RULES_FILE_NAME);
|
|
2600
|
+
if (existsSync(candidate)) {
|
|
2601
|
+
found = candidate;
|
|
2602
|
+
} else {
|
|
2603
|
+
var parent = dirname(directory);
|
|
2604
|
+
if (parent === directory) {
|
|
2605
|
+
break;
|
|
2606
|
+
}
|
|
2607
|
+
directory = parent;
|
|
2608
|
+
}
|
|
2609
|
+
}
|
|
2610
|
+
if (!found) {
|
|
2611
|
+
throw new Error('readFirestoreRulesFile(): could not find "'.concat(fileName, '" at or above "').concat(startPath, '".'));
|
|
2612
|
+
}
|
|
2613
|
+
return readFileSync(found, 'utf8');
|
|
2614
|
+
}
|
|
2615
|
+
/**
|
|
2616
|
+
* Registers vitest hooks that initialize a Firestore security-rules test environment, and invokes
|
|
2617
|
+
* the given callback with a {@link FirestoreRulesTestFixture}.
|
|
2618
|
+
*
|
|
2619
|
+
* The environment is created once per suite (`beforeAll`), torn down once (`afterAll`), and the
|
|
2620
|
+
* Firestore data is cleared between tests (`beforeEach`).
|
|
2621
|
+
*
|
|
2622
|
+
* @param config - The project id and rules to load.
|
|
2623
|
+
* @returns A function that takes the test body builder.
|
|
2624
|
+
*
|
|
2625
|
+
* @example
|
|
2626
|
+
* ```ts
|
|
2627
|
+
* const rulesTest = firestoreRulesTestBuilder({
|
|
2628
|
+
* projectId: 'demo-api-rules-test',
|
|
2629
|
+
* rules: readFirestoreRulesFile({ from: import.meta.url })
|
|
2630
|
+
* });
|
|
2631
|
+
*
|
|
2632
|
+
* describe('firestore.rules', () => {
|
|
2633
|
+
* rulesTest((f) => {
|
|
2634
|
+
* it('allows the owner to read their own document', async () => {
|
|
2635
|
+
* await assertSucceeds(getDoc(doc(f.firestoreForUser('a'), 'uec', 'a')));
|
|
2636
|
+
* });
|
|
2637
|
+
* });
|
|
2638
|
+
* });
|
|
2639
|
+
* ```
|
|
2640
|
+
*/ function firestoreRulesTestBuilder(config) {
|
|
2641
|
+
var projectId = config.projectId, rules = config.rules, firestore = config.firestore;
|
|
2642
|
+
return function(buildTests) {
|
|
2643
|
+
var rulesTestEnvironment;
|
|
2644
|
+
var contextFirestore = function contextFirestore(context) {
|
|
2645
|
+
return context.firestore();
|
|
2646
|
+
};
|
|
2647
|
+
var fixture = {
|
|
2648
|
+
get rulesTestEnvironment () {
|
|
2649
|
+
return rulesTestEnvironment;
|
|
2650
|
+
},
|
|
2651
|
+
firestoreForUser: function firestoreForUser(userId, tokenOptions) {
|
|
2652
|
+
return contextFirestore(rulesTestEnvironment.authenticatedContext(userId, tokenOptions !== null && tokenOptions !== void 0 ? tokenOptions : undefined));
|
|
2653
|
+
},
|
|
2654
|
+
unauthenticatedFirestore: function unauthenticatedFirestore() {
|
|
2655
|
+
return contextFirestore(rulesTestEnvironment.unauthenticatedContext());
|
|
2656
|
+
},
|
|
2657
|
+
withSecurityRulesDisabled: function withSecurityRulesDisabled(fn) {
|
|
2658
|
+
return rulesTestEnvironment.withSecurityRulesDisabled(function(context) {
|
|
2659
|
+
return fn(contextFirestore(context));
|
|
2660
|
+
});
|
|
2661
|
+
}
|
|
2662
|
+
};
|
|
2663
|
+
beforeAll(function() {
|
|
2664
|
+
return _async_to_generator$5(function() {
|
|
2665
|
+
return _ts_generator$5(this, function(_state) {
|
|
2666
|
+
switch(_state.label){
|
|
2667
|
+
case 0:
|
|
2668
|
+
return [
|
|
2669
|
+
4,
|
|
2670
|
+
initializeTestEnvironment({
|
|
2671
|
+
projectId: projectId,
|
|
2672
|
+
firestore: _object_spread$1({
|
|
2673
|
+
rules: rules
|
|
2674
|
+
}, firestore)
|
|
2675
|
+
})
|
|
2676
|
+
];
|
|
2677
|
+
case 1:
|
|
2678
|
+
rulesTestEnvironment = _state.sent();
|
|
2679
|
+
return [
|
|
2680
|
+
2
|
|
2681
|
+
];
|
|
2682
|
+
}
|
|
2683
|
+
});
|
|
2684
|
+
})();
|
|
2685
|
+
});
|
|
2686
|
+
afterAll(function() {
|
|
2687
|
+
return _async_to_generator$5(function() {
|
|
2688
|
+
return _ts_generator$5(this, function(_state) {
|
|
2689
|
+
switch(_state.label){
|
|
2690
|
+
case 0:
|
|
2691
|
+
if (!rulesTestEnvironment) return [
|
|
2692
|
+
3,
|
|
2693
|
+
2
|
|
2694
|
+
];
|
|
2695
|
+
return [
|
|
2696
|
+
4,
|
|
2697
|
+
rulesTestEnvironment.cleanup().catch(function(e) {
|
|
2698
|
+
console.warn('firestoreRulesTestBuilder(): Failed to cleanup rules test environment', e);
|
|
2699
|
+
throw e;
|
|
2700
|
+
})
|
|
2701
|
+
];
|
|
2702
|
+
case 1:
|
|
2703
|
+
_state.sent();
|
|
2704
|
+
_state.label = 2;
|
|
2705
|
+
case 2:
|
|
2706
|
+
return [
|
|
2707
|
+
2
|
|
2708
|
+
];
|
|
2709
|
+
}
|
|
2710
|
+
});
|
|
2711
|
+
})();
|
|
2712
|
+
});
|
|
2713
|
+
beforeEach(function() {
|
|
2714
|
+
return _async_to_generator$5(function() {
|
|
2715
|
+
return _ts_generator$5(this, function(_state) {
|
|
2716
|
+
switch(_state.label){
|
|
2717
|
+
case 0:
|
|
2718
|
+
return [
|
|
2719
|
+
4,
|
|
2720
|
+
rulesTestEnvironment.clearFirestore()
|
|
2721
|
+
];
|
|
2722
|
+
case 1:
|
|
2723
|
+
_state.sent();
|
|
2724
|
+
return [
|
|
2725
|
+
2
|
|
2726
|
+
];
|
|
2727
|
+
}
|
|
2728
|
+
});
|
|
2729
|
+
})();
|
|
2730
|
+
});
|
|
2731
|
+
buildTests(fixture);
|
|
2732
|
+
};
|
|
2733
|
+
}
|
|
2734
|
+
|
|
2424
2735
|
function _assert_this_initialized$1(self) {
|
|
2425
2736
|
if (self === void 0) {
|
|
2426
2737
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
@@ -13685,4 +13996,4 @@ function _ts_generator(thisArg, body) {
|
|
|
13685
13996
|
});
|
|
13686
13997
|
}
|
|
13687
13998
|
|
|
13688
|
-
export { AUTHORIZED_FIRESTORE_RULES, AUTHORIZED_STORAGE_RULES, DEFAULT_MOCK_ITEM_PAGED_MAX_ITEMS_PER_PAGE, MOCK_FIREBASE_MODEL_SERVICE_FACTORIES, MOCK_ITEM_PAGED_ALPHA_DISTRIBUTION_SCHEME, MOCK_ITEM_PAGED_ENTRY_CONVERTER, MOCK_ITEM_SYSTEM_STATE_STORED_DATA_CONVERTER_MAP, MOCK_ITEM_USER_COLLECTION_NAME, MOCK_ITEM_USER_IDENTIFIER, MOCK_SYSTEM_STATE_TYPE, MockItemCollectionFixture, MockItemCollectionFixtureInstance, MockItemCollections, MockItemDocument, MockItemPagedDocument, MockItemPrivateDocument, MockItemSettingsItemEnum, MockItemStorageFixture, MockItemStorageFixtureInstance, MockItemSubItemDeepDocument, MockItemSubItemDocument, MockItemUserDocument, RulesUnitTestFirebaseTestingContextFixture, RulesUnitTestTestFirebaseInstance, TESTING_AUTHORIZED_FIREBASE_USER_ID, TestFirebaseContextFixture, TestFirebaseInstance, TestFirebaseStorageContextFixture, TestFirebaseStorageInstance, TestFirestoreContextFixture, TestFirestoreInstance, allChildMockItemSubItemDeepsWithinMockItem, authorizedFirebaseFactory, authorizedFirestoreOnlyFactory, authorizedTestWithMockItemCollection, authorizedTestWithMockItemStorage, changeFirestoreLogLevelBeforeAndAfterTests, clearTestFirestoreContextCollections, describeFirebaseStorageAccessorDriverTests, describeFirestoreAccessorDriverTests, describeFirestoreDocumentAccessorTests, describeFirestoreDocumentUtilityTests, describeFirestoreIterationTests, describeFirestoreQueryDriverTests, firebaseRulesUnitTestBuilder, makeMockItemCollections, makeRulesTestFirebaseStorageContext, makeRulesTestFirestoreContext, makeTestingFirebaseStorageAccesorDriver, makeTestingFirebaseStorageDrivers, makeTestingFirestoreAccesorDriver, makeTestingFirestoreDrivers, mockFirebaseModelServices, mockItemCollectionReference, mockItemConverter, mockItemFirebaseModelServiceFactory, mockItemFirestoreCollection, mockItemIdentity, mockItemPagedCollectionReference, mockItemPagedFirebaseModelServiceFactory, mockItemPagedFirestoreCollection, mockItemPagedFirestoreCollectionGroup, mockItemPagedIdentity, mockItemPrivateCollectionReference, mockItemPrivateCollectionReferenceFactory, mockItemPrivateConverter, mockItemPrivateFirebaseModelServiceFactory, mockItemPrivateFirestoreCollection, mockItemPrivateFirestoreCollectionGroup, mockItemPrivateIdentity, mockItemSettingsItemDencoder, mockItemSubItemCollectionReference, mockItemSubItemCollectionReferenceFactory, mockItemSubItemConverter, mockItemSubItemDeepCollectionReference, mockItemSubItemDeepCollectionReferenceFactory, mockItemSubItemDeepConverter, mockItemSubItemDeepFirebaseModelServiceFactory, mockItemSubItemDeepFirestoreCollection, mockItemSubItemDeepFirestoreCollectionGroup, mockItemSubItemDeepIdentity, mockItemSubItemFirebaseModelServiceFactory, mockItemSubItemFirestoreCollection, mockItemSubItemFirestoreCollectionGroup, mockItemSubItemIdentity, mockItemSystemDataConverter, mockItemSystemStateFirebaseModelServiceFactory, mockItemUserAccessorFactory, mockItemUserCollectionReference, mockItemUserCollectionReferenceFactory, mockItemUserConverter, mockItemUserFirebaseModelServiceFactory, mockItemUserFirestoreCollection, mockItemUserFirestoreCollectionGroup, mockItemUserIdentity, mockItemWithTestValue, mockItemWithValue, testWithMockItemCollectionFixture, testWithMockItemStorageFixture };
|
|
13999
|
+
export { AUTHORIZED_FIRESTORE_RULES, AUTHORIZED_STORAGE_RULES, DEFAULT_FIRESTORE_RULES_FILE_NAME, DEFAULT_MOCK_ITEM_PAGED_MAX_ITEMS_PER_PAGE, MOCK_FIREBASE_MODEL_SERVICE_FACTORIES, MOCK_ITEM_PAGED_ALPHA_DISTRIBUTION_SCHEME, MOCK_ITEM_PAGED_ENTRY_CONVERTER, MOCK_ITEM_SYSTEM_STATE_STORED_DATA_CONVERTER_MAP, MOCK_ITEM_USER_COLLECTION_NAME, MOCK_ITEM_USER_IDENTIFIER, MOCK_SYSTEM_STATE_TYPE, MockItemCollectionFixture, MockItemCollectionFixtureInstance, MockItemCollections, MockItemDocument, MockItemPagedDocument, MockItemPrivateDocument, MockItemSettingsItemEnum, MockItemStorageFixture, MockItemStorageFixtureInstance, MockItemSubItemDeepDocument, MockItemSubItemDocument, MockItemUserDocument, RulesUnitTestFirebaseTestingContextFixture, RulesUnitTestTestFirebaseInstance, TESTING_AUTHORIZED_FIREBASE_USER_ID, TestFirebaseContextFixture, TestFirebaseInstance, TestFirebaseStorageContextFixture, TestFirebaseStorageInstance, TestFirestoreContextFixture, TestFirestoreInstance, allChildMockItemSubItemDeepsWithinMockItem, authorizedFirebaseFactory, authorizedFirestoreOnlyFactory, authorizedTestWithMockItemCollection, authorizedTestWithMockItemStorage, changeFirestoreLogLevelBeforeAndAfterTests, clearTestFirestoreContextCollections, describeFirebaseStorageAccessorDriverTests, describeFirestoreAccessorDriverTests, describeFirestoreDocumentAccessorTests, describeFirestoreDocumentUtilityTests, describeFirestoreIterationTests, describeFirestoreQueryDriverTests, firebaseRulesUnitTestBuilder, firestoreRulesTestBuilder, makeMockItemCollections, makeRulesTestFirebaseStorageContext, makeRulesTestFirestoreContext, makeTestingFirebaseStorageAccesorDriver, makeTestingFirebaseStorageDrivers, makeTestingFirestoreAccesorDriver, makeTestingFirestoreDrivers, mockFirebaseModelServices, mockItemCollectionReference, mockItemConverter, mockItemFirebaseModelServiceFactory, mockItemFirestoreCollection, mockItemIdentity, mockItemPagedCollectionReference, mockItemPagedFirebaseModelServiceFactory, mockItemPagedFirestoreCollection, mockItemPagedFirestoreCollectionGroup, mockItemPagedIdentity, mockItemPrivateCollectionReference, mockItemPrivateCollectionReferenceFactory, mockItemPrivateConverter, mockItemPrivateFirebaseModelServiceFactory, mockItemPrivateFirestoreCollection, mockItemPrivateFirestoreCollectionGroup, mockItemPrivateIdentity, mockItemSettingsItemDencoder, mockItemSubItemCollectionReference, mockItemSubItemCollectionReferenceFactory, mockItemSubItemConverter, mockItemSubItemDeepCollectionReference, mockItemSubItemDeepCollectionReferenceFactory, mockItemSubItemDeepConverter, mockItemSubItemDeepFirebaseModelServiceFactory, mockItemSubItemDeepFirestoreCollection, mockItemSubItemDeepFirestoreCollectionGroup, mockItemSubItemDeepIdentity, mockItemSubItemFirebaseModelServiceFactory, mockItemSubItemFirestoreCollection, mockItemSubItemFirestoreCollectionGroup, mockItemSubItemIdentity, mockItemSystemDataConverter, mockItemSystemStateFirebaseModelServiceFactory, mockItemUserAccessorFactory, mockItemUserCollectionReference, mockItemUserCollectionReferenceFactory, mockItemUserConverter, mockItemUserFirebaseModelServiceFactory, mockItemUserFirestoreCollection, mockItemUserFirestoreCollectionGroup, mockItemUserIdentity, mockItemWithTestValue, mockItemWithValue, readFirestoreRulesFile, testWithMockItemCollectionFixture, testWithMockItemStorageFixture };
|