@dereekb/firebase 0.0.1

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.
Files changed (59) hide show
  1. package/README.md +15 -0
  2. package/package.json +16 -0
  3. package/src/index.d.ts +2 -0
  4. package/src/index.js +6 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/firestore/accessor.batch.d.ts +23 -0
  7. package/src/lib/firestore/accessor.batch.js +46 -0
  8. package/src/lib/firestore/accessor.batch.js.map +1 -0
  9. package/src/lib/firestore/accessor.d.ts +62 -0
  10. package/src/lib/firestore/accessor.default.d.ts +22 -0
  11. package/src/lib/firestore/accessor.default.js +42 -0
  12. package/src/lib/firestore/accessor.default.js.map +1 -0
  13. package/src/lib/firestore/accessor.js +29 -0
  14. package/src/lib/firestore/accessor.js.map +1 -0
  15. package/src/lib/firestore/accessor.transaction.d.ts +23 -0
  16. package/src/lib/firestore/accessor.transaction.js +45 -0
  17. package/src/lib/firestore/accessor.transaction.js.map +1 -0
  18. package/src/lib/firestore/context.batch.d.ts +9 -0
  19. package/src/lib/firestore/context.batch.js +19 -0
  20. package/src/lib/firestore/context.batch.js.map +1 -0
  21. package/src/lib/firestore/context.d.ts +24 -0
  22. package/src/lib/firestore/context.default.d.ts +2 -0
  23. package/src/lib/firestore/context.default.js +13 -0
  24. package/src/lib/firestore/context.default.js.map +1 -0
  25. package/src/lib/firestore/context.js +15 -0
  26. package/src/lib/firestore/context.js.map +1 -0
  27. package/src/lib/firestore/context.transaction.d.ts +9 -0
  28. package/src/lib/firestore/context.transaction.js +19 -0
  29. package/src/lib/firestore/context.transaction.js.map +1 -0
  30. package/src/lib/firestore/document.d.ts +69 -0
  31. package/src/lib/firestore/document.js +49 -0
  32. package/src/lib/firestore/document.js.map +1 -0
  33. package/src/lib/firestore/firestore.d.ts +29 -0
  34. package/src/lib/firestore/firestore.js +37 -0
  35. package/src/lib/firestore/firestore.js.map +1 -0
  36. package/src/lib/firestore/index.d.ts +12 -0
  37. package/src/lib/firestore/index.js +16 -0
  38. package/src/lib/firestore/index.js.map +1 -0
  39. package/src/lib/firestore/iterator.d.ts +49 -0
  40. package/src/lib/firestore/iterator.js +91 -0
  41. package/src/lib/firestore/iterator.js.map +1 -0
  42. package/src/lib/firestore/reference.d.ts +13 -0
  43. package/src/lib/firestore/reference.js +3 -0
  44. package/src/lib/firestore/reference.js.map +1 -0
  45. package/src/lib/index.d.ts +1 -0
  46. package/src/lib/index.js +5 -0
  47. package/src/lib/index.js.map +1 -0
  48. package/src/test/firebase.context.d.ts +5 -0
  49. package/src/test/firebase.context.item.d.ts +41 -0
  50. package/src/test/firebase.context.item.js +75 -0
  51. package/src/test/firebase.context.item.js.map +1 -0
  52. package/src/test/firebase.context.js +23 -0
  53. package/src/test/firebase.context.js.map +1 -0
  54. package/src/test/firebase.d.ts +29 -0
  55. package/src/test/firebase.js +67 -0
  56. package/src/test/firebase.js.map +1 -0
  57. package/src/test/index.d.ts +3 -0
  58. package/src/test/index.js +7 -0
  59. package/src/test/index.js.map +1 -0
@@ -0,0 +1,29 @@
1
+ import { CollectionReference } from "@firebase/firestore";
2
+ import { FirestoreDocument, FirestoreDocumentAccessor, FirestoreDocumentAccessorFactory, FirestoreDocumentAccessorFactoryFunction, FirestoreDocumentAccessorInstanceConfig } from "./document";
3
+ import { FirestoreItemPageIterationBaseConfig, FirestoreItemPageIterationFactory, FirestoreItemPageIterationFactoryFunction, FirestoreItemPageIterationInstance, FirestoreItemPageIteratorFilter } from "./iterator";
4
+ import { FirestoreDocumentContext } from "./context";
5
+ import { FirestoreCollectionReference } from "./reference";
6
+ /**
7
+ * FirestoreCollection configuration
8
+ */
9
+ export interface FirestoreCollectionConfig<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends FirestoreItemPageIterationBaseConfig<T>, FirestoreDocumentAccessorInstanceConfig<T, D> {
10
+ }
11
+ /**
12
+ * Instance that provides several accessors for accessing documents of a collection.
13
+ */
14
+ export declare class FirestoreCollection<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> implements FirestoreCollectionReference<T>, FirestoreItemPageIterationFactory<T>, FirestoreDocumentAccessorFactory<T, D> {
15
+ readonly config: FirestoreCollectionConfig<T, D>;
16
+ protected readonly _iterationFactory: FirestoreItemPageIterationFactoryFunction<T>;
17
+ protected readonly _documentAccessorFactory: FirestoreDocumentAccessorFactoryFunction<T, D>;
18
+ constructor(config: FirestoreCollectionConfig<T, D>);
19
+ get collection(): CollectionReference<T>;
20
+ firestoreIteration(filter?: FirestoreItemPageIteratorFilter): FirestoreItemPageIterationInstance<T>;
21
+ documentAccessor(context?: FirestoreDocumentContext<T>): FirestoreDocumentAccessor<T, D>;
22
+ }
23
+ /**
24
+ * Creates a new FirestoreCollection instance from the input config.
25
+ *
26
+ * @param config
27
+ * @returns
28
+ */
29
+ export declare function makeFirestoreCollection<T, D extends FirestoreDocument<T>>(config: FirestoreCollectionConfig<T, D>): FirestoreCollection<T, D>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeFirestoreCollection = exports.FirestoreCollection = void 0;
4
+ const document_1 = require("./document");
5
+ const iterator_1 = require("./iterator");
6
+ /**
7
+ * Instance that provides several accessors for accessing documents of a collection.
8
+ */
9
+ class FirestoreCollection {
10
+ constructor(config) {
11
+ this.config = config;
12
+ this._iterationFactory = (0, iterator_1.firestoreItemPageIterationFactory)(this.config);
13
+ this._documentAccessorFactory = (0, document_1.firestoreDocumentAccessorFactory)(this.config);
14
+ }
15
+ get collection() {
16
+ return this.config.collection;
17
+ }
18
+ // MARK: FirestoreItemPageIterationFactory<T>
19
+ firestoreIteration(filter) {
20
+ return this._iterationFactory(filter);
21
+ }
22
+ documentAccessor(context) {
23
+ return this._documentAccessorFactory(context);
24
+ }
25
+ }
26
+ exports.FirestoreCollection = FirestoreCollection;
27
+ /**
28
+ * Creates a new FirestoreCollection instance from the input config.
29
+ *
30
+ * @param config
31
+ * @returns
32
+ */
33
+ function makeFirestoreCollection(config) {
34
+ return new FirestoreCollection(config);
35
+ }
36
+ exports.makeFirestoreCollection = makeFirestoreCollection;
37
+ //# sourceMappingURL=firestore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/firestore.ts"],"names":[],"mappings":";;;AACA,yCAAiO;AACjO,yCAAwP;AAUxP;;GAEG;AACH,MAAa,mBAAmB;IAM9B,YAAqB,MAAuC;QAAvC,WAAM,GAAN,MAAM,CAAiC;QAHzC,sBAAiB,GAAiD,IAAA,4CAAiC,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjH,6BAAwB,GAAmD,IAAA,2CAAgC,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5E,CAAC;IAEjE,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAED,6CAA6C;IAC7C,kBAAkB,CAAC,MAAwC;QACzD,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,gBAAgB,CAAC,OAAqC;QACpD,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;CAEF;AArBD,kDAqBC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAoC,MAAuC;IAChH,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAFD,0DAEC"}
@@ -0,0 +1,12 @@
1
+ export * from './accessor';
2
+ export * from './accessor.batch';
3
+ export * from './accessor.default';
4
+ export * from './accessor.transaction';
5
+ export * from './document';
6
+ export * from './reference';
7
+ export * from './context.batch';
8
+ export * from './context.default';
9
+ export * from './context.transaction';
10
+ export * from './context';
11
+ export * from './firestore';
12
+ export * from './iterator';
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./accessor"), exports);
5
+ (0, tslib_1.__exportStar)(require("./accessor.batch"), exports);
6
+ (0, tslib_1.__exportStar)(require("./accessor.default"), exports);
7
+ (0, tslib_1.__exportStar)(require("./accessor.transaction"), exports);
8
+ (0, tslib_1.__exportStar)(require("./document"), exports);
9
+ (0, tslib_1.__exportStar)(require("./reference"), exports);
10
+ (0, tslib_1.__exportStar)(require("./context.batch"), exports);
11
+ (0, tslib_1.__exportStar)(require("./context.default"), exports);
12
+ (0, tslib_1.__exportStar)(require("./context.transaction"), exports);
13
+ (0, tslib_1.__exportStar)(require("./context"), exports);
14
+ (0, tslib_1.__exportStar)(require("./firestore"), exports);
15
+ (0, tslib_1.__exportStar)(require("./iterator"), exports);
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/index.ts"],"names":[],"mappings":";;;AAAA,0DAA2B;AAC3B,gEAAiC;AACjC,kEAAmC;AACnC,sEAAuC;AACvC,0DAA2B;AAC3B,2DAA4B;AAC5B,+DAAgC;AAChC,iEAAkC;AAClC,qEAAsC;AACtC,yDAA0B;AAC1B,2DAA4B;AAC5B,0DAA2B"}
@@ -0,0 +1,49 @@
1
+ import { PageLoadingState, ItemPageIterator, ItemPageIterationInstance, ItemPageIterationConfig, ItemPageIteratorDelegate, MappedPageItemIterationInstance } from '@dereekb/rxjs';
2
+ import { QueryDocumentSnapshot, QueryConstraint, QuerySnapshot } from "@firebase/firestore";
3
+ import { Maybe } from '@dereekb/util';
4
+ import { FirestoreCollectionReference } from './reference';
5
+ export interface FirestoreItemPageIteratorFilter {
6
+ queryConstraints?: Maybe<QueryConstraint[]>;
7
+ }
8
+ export interface FirestoreItemPageIterationBaseConfig<T> extends FirestoreCollectionReference<T> {
9
+ itemsPerPage: number;
10
+ }
11
+ export interface FirestoreItemPageIterationConfig<T> extends FirestoreItemPageIterationBaseConfig<T>, ItemPageIterationConfig<FirestoreItemPageIteratorFilter> {
12
+ }
13
+ export interface FirestoreItemPageQueryResult<T> {
14
+ /**
15
+ * The relevant docs for this page result. This value will omit the cursor.
16
+ */
17
+ docs: QueryDocumentSnapshot<T>[];
18
+ /**
19
+ * The raw snapshot returned from the query.
20
+ */
21
+ snapshot: QuerySnapshot<T>;
22
+ }
23
+ export declare type FirestoreItemPageIteratorDelegate<T> = ItemPageIteratorDelegate<FirestoreItemPageQueryResult<T>, FirestoreItemPageIteratorFilter, FirestoreItemPageIterationConfig<T>>;
24
+ export declare type InternalFirestoreItemPageIterationInstance<T> = ItemPageIterationInstance<FirestoreItemPageQueryResult<T>, FirestoreItemPageIteratorFilter, FirestoreItemPageIterationConfig<T>>;
25
+ export declare function makeFirestoreItemPageIteratorDelegate<T>(): FirestoreItemPageIteratorDelegate<T>;
26
+ export declare class FirestoreItemPageIterationInstance<T> extends MappedPageItemIterationInstance<QueryDocumentSnapshot<T>[], FirestoreItemPageQueryResult<T>, PageLoadingState<QueryDocumentSnapshot<T>[]>, PageLoadingState<FirestoreItemPageQueryResult<T>>, InternalFirestoreItemPageIterationInstance<T>> {
27
+ constructor(snapshotIteration: InternalFirestoreItemPageIterationInstance<T>);
28
+ get snapshotIteration(): InternalFirestoreItemPageIterationInstance<T>;
29
+ }
30
+ /**
31
+ * FirestoreItemPageIteration factory.
32
+ */
33
+ export interface FirestoreItemPageIterationFactory<T> {
34
+ firestoreIteration(filter?: FirestoreItemPageIteratorFilter): FirestoreItemPageIterationInstance<T>;
35
+ }
36
+ /**
37
+ * Function that creates a FirestoreItemPageIterationInstance from the input filter.
38
+ */
39
+ export declare type FirestoreItemPageIterationFactoryFunction<T> = (filter?: FirestoreItemPageIteratorFilter) => FirestoreItemPageIterationInstance<T>;
40
+ /**
41
+ * Creates a new factory function that can build FirestoreItemPageIterationInstance values from just the input filter.
42
+ *
43
+ * @param baseConfig
44
+ * @returns FirestoreItemPageIterationInstance
45
+ */
46
+ export declare function firestoreItemPageIterationFactory<T>(baseConfig: FirestoreItemPageIterationBaseConfig<T>): FirestoreItemPageIterationFactoryFunction<T>;
47
+ export declare const FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE: FirestoreItemPageIteratorDelegate<any>;
48
+ export declare const FIRESTORE_ITEM_PAGE_ITERATOR: ItemPageIterator<FirestoreItemPageQueryResult<any>, FirestoreItemPageIteratorFilter, FirestoreItemPageIterationConfig<any>>;
49
+ export declare function firestoreItemPageIteration<T>(config: FirestoreItemPageIterationConfig<T>): FirestoreItemPageIterationInstance<T>;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firestoreItemPageIteration = exports.FIRESTORE_ITEM_PAGE_ITERATOR = exports.FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE = exports.firestoreItemPageIterationFactory = exports.FirestoreItemPageIterationInstance = exports.makeFirestoreItemPageIteratorDelegate = void 0;
4
+ const rxjs_1 = require("@dereekb/rxjs");
5
+ const firestore_1 = require("@firebase/firestore");
6
+ const util_1 = require("@dereekb/util");
7
+ const rxjs_2 = require("rxjs");
8
+ function makeFirestoreItemPageIteratorDelegate() {
9
+ return {
10
+ loadItemsForPage: (request) => {
11
+ const { page, iteratorConfig } = request;
12
+ const lastQueryResult$ = (page > 0) ? request.lastItem$ : (0, rxjs_2.of)(undefined);
13
+ const { collection, itemsPerPage, filter } = iteratorConfig;
14
+ return lastQueryResult$.pipe((0, rxjs_2.exhaustMap)((lastResult) => {
15
+ if ((lastResult === null || lastResult === void 0 ? void 0 : lastResult.snapshot.empty) === true) { // TODO: Shouldn't happen. Remove this later.
16
+ return (0, rxjs_2.of)({ end: true });
17
+ }
18
+ else {
19
+ const constraints = [];
20
+ // Add filter constraints
21
+ if (filter === null || filter === void 0 ? void 0 : filter.queryConstraints) {
22
+ (0, util_1.mergeIntoArray)(constraints, filter.queryConstraints);
23
+ }
24
+ // Add cursor
25
+ const cursorDocument = (lastResult) ? (0, util_1.lastValue)(lastResult.docs) : undefined;
26
+ const startsAtFilter = (cursorDocument) ? (0, firestore_1.startAt)(cursorDocument) : undefined;
27
+ if (startsAtFilter) {
28
+ constraints.push(startsAtFilter);
29
+ }
30
+ // Add Limit
31
+ constraints.push((0, firestore_1.limit)(itemsPerPage + ((startsAtFilter) ? 1 : 0))); // Add 1 for cursor, since results will start at our cursor.
32
+ const batchQuery = (0, firestore_1.query)(collection, ...constraints);
33
+ const resultPromise = (0, firestore_1.getDocs)(batchQuery).then((snapshot) => {
34
+ let docs = snapshot.docs;
35
+ // Remove the cursor document from the results.
36
+ if (cursorDocument && docs[0].id === cursorDocument.id) {
37
+ docs = docs.slice(1);
38
+ }
39
+ const result = {
40
+ value: {
41
+ docs,
42
+ snapshot
43
+ },
44
+ end: snapshot.empty
45
+ };
46
+ return result;
47
+ });
48
+ return (0, rxjs_2.from)(resultPromise);
49
+ }
50
+ }));
51
+ }
52
+ };
53
+ }
54
+ exports.makeFirestoreItemPageIteratorDelegate = makeFirestoreItemPageIteratorDelegate;
55
+ class FirestoreItemPageIterationInstance extends rxjs_1.MappedPageItemIterationInstance {
56
+ constructor(snapshotIteration) {
57
+ super(snapshotIteration, {
58
+ forwardDestroy: true,
59
+ mapValue: (x) => x.docs
60
+ });
61
+ }
62
+ get snapshotIteration() {
63
+ return this.itemIterator;
64
+ }
65
+ }
66
+ exports.FirestoreItemPageIterationInstance = FirestoreItemPageIterationInstance;
67
+ /**
68
+ * Creates a new factory function that can build FirestoreItemPageIterationInstance values from just the input filter.
69
+ *
70
+ * @param baseConfig
71
+ * @returns FirestoreItemPageIterationInstance
72
+ */
73
+ function firestoreItemPageIterationFactory(baseConfig) {
74
+ return (filter) => {
75
+ const result = firestoreItemPageIteration({
76
+ collection: baseConfig.collection,
77
+ itemsPerPage: baseConfig.itemsPerPage,
78
+ filter
79
+ });
80
+ return result;
81
+ };
82
+ }
83
+ exports.firestoreItemPageIterationFactory = firestoreItemPageIterationFactory;
84
+ exports.FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE = makeFirestoreItemPageIteratorDelegate();
85
+ exports.FIRESTORE_ITEM_PAGE_ITERATOR = new rxjs_1.ItemPageIterator(exports.FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE);
86
+ function firestoreItemPageIteration(config) {
87
+ const iterator = exports.FIRESTORE_ITEM_PAGE_ITERATOR.instance(config);
88
+ return new FirestoreItemPageIterationInstance(iterator);
89
+ }
90
+ exports.firestoreItemPageIteration = firestoreItemPageIteration;
91
+ //# sourceMappingURL=iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterator.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/iterator.ts"],"names":[],"mappings":";;;AAAA,wCAAmO;AACnO,mDAA4H;AAC5H,wCAAiE;AACjE,+BAAwD;AA2BxD,SAAgB,qCAAqC;IACnD,OAAO;QACL,gBAAgB,EAAE,CAAC,OAAuI,EAAuE,EAAE;YACjO,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;YACzC,MAAM,gBAAgB,GAAuD,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,SAAE,EAAC,SAAS,CAAC,CAAC;YAE5H,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;YAE5D,OAAO,gBAAgB,CAAC,IAAI,CAC1B,IAAA,iBAAU,EAAC,CAAC,UAAU,EAAE,EAAE;gBACxB,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,KAAK,MAAK,IAAI,EAAE,EAAG,6CAA6C;oBACvF,OAAO,IAAA,SAAE,EAA0D,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;iBACnF;qBAAM;oBACL,MAAM,WAAW,GAAsB,EAAE,CAAC;oBAE1C,yBAAyB;oBACzB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,EAAE;wBAC5B,IAAA,qBAAc,EAAC,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;qBACtD;oBAED,aAAa;oBACb,MAAM,cAAc,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAA,gBAAS,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC7E,MAAM,cAAc,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAO,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAE9E,IAAI,cAAc,EAAE;wBAClB,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;qBAClC;oBAED,YAAY;oBACZ,WAAW,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,YAAY,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAG,4DAA4D;oBAElI,MAAM,UAAU,GAAG,IAAA,iBAAK,EAAI,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC;oBACxD,MAAM,aAAa,GAAqE,IAAA,mBAAO,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;wBAC5H,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;wBAEzB,+CAA+C;wBAC/C,IAAI,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,EAAE;4BACtD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;yBACtB;wBAED,MAAM,MAAM,GAA4D;4BACtE,KAAK,EAAE;gCACL,IAAI;gCACJ,QAAQ;6BACT;4BACD,GAAG,EAAE,QAAQ,CAAC,KAAK;yBACpB,CAAC;wBAEF,OAAO,MAAM,CAAC;oBAChB,CAAC,CAAC,CAAC;oBACH,OAAO,IAAA,WAAI,EAAC,aAAa,CAAC,CAAC;iBAC5B;YACH,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAA;AACH,CAAC;AAxDD,sFAwDC;AAED,MAAa,kCAAsC,SAAQ,sCAM1D;IAEC,YAAY,iBAAgE;QAC1E,KAAK,CAAC,iBAAiB,EAAE;YACvB,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,CAAC,CAAkC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;SACzD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CAEF;AAnBD,gFAmBC;AAeD;;;;;GAKG;AACH,SAAgB,iCAAiC,CAAI,UAAmD;IACtG,OAAO,CAAC,MAAwC,EAAE,EAAE;QAClD,MAAM,MAAM,GAA0C,0BAA0B,CAAI;YAClF,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,MAAM;SACP,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAVD,8EAUC;AAEY,QAAA,qCAAqC,GAA2C,qCAAqC,EAAS,CAAC;AAC/H,QAAA,4BAA4B,GAAG,IAAI,uBAAgB,CAA4G,6CAAqC,CAAC,CAAC;AAEnN,SAAgB,0BAA0B,CAAI,MAA2C;IACvF,MAAM,QAAQ,GAAkD,oCAA4B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9G,OAAO,IAAI,kCAAkC,CAAI,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAHD,gEAGC"}
@@ -0,0 +1,13 @@
1
+ import { CollectionReference, DocumentReference } from "@firebase/firestore";
2
+ /**
3
+ * Contains a reference to a CollectionReference.
4
+ */
5
+ export interface FirestoreCollectionReference<T> {
6
+ readonly collection: CollectionReference<T>;
7
+ }
8
+ /**
9
+ * Contains a reference to a DocumentReference.
10
+ */
11
+ export interface FirestoreDocumentReference<T> {
12
+ readonly documentRef: DocumentReference<T>;
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/reference.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from './firestore';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./firestore"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/firebase/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,2DAA4B"}
@@ -0,0 +1,5 @@
1
+ import { JestTestContextFactory } from '@dereekb/util';
2
+ import { FirebaseTestingContextFixture } from './firebase';
3
+ export declare const TESTING_AUTHORIZED_FIREBASE_USER_ID = "0";
4
+ export declare type FirebaseTestContextFactory = JestTestContextFactory<FirebaseTestingContextFixture>;
5
+ export declare const authorizedFirebase: FirebaseTestContextFactory;
@@ -0,0 +1,41 @@
1
+ import { AbstractWrappedFixtureWithInstance, JestTestWrappedContextFactoryBuilder, Maybe } from '@dereekb/util';
2
+ import { Firestore, CollectionReference } from 'firebase/firestore';
3
+ import { FirebaseTestingContextFixture } from './firebase';
4
+ import { AbstractFirestoreDocument } from '../lib/firestore/document';
5
+ import { FirestoreCollection } from '../lib/firestore/firestore';
6
+ /**
7
+ * Data for a test item in our firestore collection.
8
+ */
9
+ export interface TestItem {
10
+ test?: boolean;
11
+ value?: Maybe<string>;
12
+ }
13
+ export declare class TestItemDocument extends AbstractFirestoreDocument<TestItem> {
14
+ }
15
+ export declare const testItemCollectionPath = "test";
16
+ /**
17
+ * A way to build a testItemCollection from a firestore instance.
18
+ *
19
+ * @param firestore
20
+ * @returns
21
+ */
22
+ export declare function testItemCollection(firestore: Firestore): CollectionReference<TestItem>;
23
+ export declare type TestItemFirestoreCollection = FirestoreCollection<TestItem, TestItemDocument>;
24
+ export declare function testItemFirestoreCollection(firestore: Firestore): TestItemFirestoreCollection;
25
+ export declare class TestItemCollectionFixtureInstance {
26
+ readonly fixture: TestItemCollectionFixture;
27
+ readonly testItemCollection: CollectionReference<TestItem>;
28
+ constructor(fixture: TestItemCollectionFixture);
29
+ }
30
+ /**
31
+ * Used to expose a CollectionReference to TestItem for simple tests.
32
+ */
33
+ export declare class TestItemCollectionFixture extends AbstractWrappedFixtureWithInstance<TestItemCollectionFixtureInstance, FirebaseTestingContextFixture> {
34
+ }
35
+ export interface TestItemCollectionFirebaseContextConfig {
36
+ }
37
+ export declare function testWithTestItemFixture(config?: TestItemCollectionFirebaseContextConfig): JestTestWrappedContextFactoryBuilder<TestItemCollectionFixture, FirebaseTestingContextFixture>;
38
+ /**
39
+ * Tests within an authorized context.
40
+ */
41
+ export declare const authorizedTestWithTestItemCollection: import("@dereekb/util").JestTestContextFactory<TestItemCollectionFixture>;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authorizedTestWithTestItemCollection = exports.testWithTestItemFixture = exports.TestItemCollectionFixture = exports.TestItemCollectionFixtureInstance = exports.testItemFirestoreCollection = exports.testItemCollection = exports.testItemCollectionPath = exports.TestItemDocument = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ const firestore_1 = require("firebase/firestore");
6
+ const firebase_context_1 = require("./firebase.context");
7
+ const document_1 = require("../lib/firestore/document");
8
+ const firestore_2 = require("../lib/firestore/firestore");
9
+ class TestItemDocument extends document_1.AbstractFirestoreDocument {
10
+ }
11
+ exports.TestItemDocument = TestItemDocument;
12
+ exports.testItemCollectionPath = 'test';
13
+ /**
14
+ * A way to build a testItemCollection from a firestore instance.
15
+ *
16
+ * @param firestore
17
+ * @returns
18
+ */
19
+ function testItemCollection(firestore) {
20
+ return (0, firestore_1.collection)(firestore, exports.testItemCollectionPath).withConverter({
21
+ toFirestore(modelObject) {
22
+ return {
23
+ test: modelObject.test || false,
24
+ value: modelObject.value || null
25
+ };
26
+ },
27
+ fromFirestore(snapshot, options) {
28
+ const data = snapshot.data();
29
+ const result = {
30
+ test: data['test'] || false,
31
+ value: data['value'] || null
32
+ };
33
+ return result;
34
+ }
35
+ });
36
+ }
37
+ exports.testItemCollection = testItemCollection;
38
+ function testItemFirestoreCollection(firestore) {
39
+ return (0, firestore_2.makeFirestoreCollection)({
40
+ itemsPerPage: 50,
41
+ collection: testItemCollection(firestore),
42
+ makeDocument: (x) => new TestItemDocument(x)
43
+ });
44
+ }
45
+ exports.testItemFirestoreCollection = testItemFirestoreCollection;
46
+ // MARK: Test Item Testing Fixture
47
+ class TestItemCollectionFixtureInstance {
48
+ constructor(fixture) {
49
+ this.fixture = fixture;
50
+ this.testItemCollection = testItemCollection(this.fixture.parent.firestore);
51
+ }
52
+ }
53
+ exports.TestItemCollectionFixtureInstance = TestItemCollectionFixtureInstance;
54
+ /**
55
+ * Used to expose a CollectionReference to TestItem for simple tests.
56
+ */
57
+ class TestItemCollectionFixture extends util_1.AbstractWrappedFixtureWithInstance {
58
+ }
59
+ exports.TestItemCollectionFixture = TestItemCollectionFixture;
60
+ function testWithTestItemFixture(config) {
61
+ return (0, util_1.instanceWrapJestTestContextFactory)({
62
+ wrapFixture: (fixture) => new TestItemCollectionFixture(fixture),
63
+ makeInstance: (wrap) => new TestItemCollectionFixtureInstance(wrap),
64
+ teardownInstance: (instance) => {
65
+ // instance.fixture.parent.instance.clearFirestore();
66
+ }
67
+ // TODO: Utilize config here using the setup/teardown later if needed.
68
+ });
69
+ }
70
+ exports.testWithTestItemFixture = testWithTestItemFixture;
71
+ /**
72
+ * Tests within an authorized context.
73
+ */
74
+ exports.authorizedTestWithTestItemCollection = testWithTestItemFixture()(firebase_context_1.authorizedFirebase);
75
+ //# sourceMappingURL=firebase.context.item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firebase.context.item.js","sourceRoot":"","sources":["../../../../../packages/firebase/src/test/firebase.context.item.ts"],"names":[],"mappings":";;;AAAA,wCAAoJ;AACpJ,kDAAsJ;AAEtJ,yDAAwD;AACxD,wDAAsE;AACtE,0DAA0F;AAY1F,MAAa,gBAAiB,SAAQ,oCAAmC;CAAI;AAA7E,4CAA6E;AAEhE,QAAA,sBAAsB,GAAG,MAAM,CAAC;AAE7C;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,SAAoB;IACrD,OAAO,IAAA,sBAAU,EAAC,SAAS,EAAE,8BAAsB,CAAC,CAAC,aAAa,CAAW;QAC3E,WAAW,CAAC,WAAqC;YAC/C,OAAO;gBACL,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,KAAK;gBAC/B,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,IAAI;aACjC,CAAC;QACJ,CAAC;QACD,aAAa,CAAC,QAA6C,EAAE,OAAyB;YACpF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAa;gBACvB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK;gBAC3B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;aAC7B,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAjBD,gDAiBC;AAID,SAAgB,2BAA2B,CAAC,SAAoB;IAC9D,OAAO,IAAA,mCAAuB,EAAC;QAC7B,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,kBAAkB,CAAC,SAAS,CAAC;QACzC,YAAY,EAAE,CAAC,CAA0C,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC;KACtF,CAAC,CAAC;AACL,CAAC;AAND,kEAMC;AAED,kCAAkC;AAClC,MAAa,iCAAiC;IAI5C,YAAqB,OAAkC;QAAlC,YAAO,GAAP,OAAO,CAA2B;QAF9C,uBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAErB,CAAC;CAE7D;AAND,8EAMC;AAED;;GAEG;AACH,MAAa,yBAA0B,SAAQ,yCAAoG;CAAI;AAAvJ,8DAAuJ;AAIvJ,SAAgB,uBAAuB,CAAC,MAAgD;IACtF,OAAO,IAAA,yCAAkC,EAAC;QACxC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,yBAAyB,CAAC,OAAO,CAAC;QAChE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,iCAAiC,CAAC,IAAI,CAAC;QACnE,gBAAgB,EAAE,CAAC,QAA2C,EAAE,EAAE;YAChE,qDAAqD;QACvD,CAAC;QACD,sEAAsE;KACvE,CAAC,CAAC;AACL,CAAC;AATD,0DASC;AAED;;GAEG;AACU,QAAA,oCAAoC,GAAG,uBAAuB,EAAE,CAAC,qCAAkB,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authorizedFirebase = exports.TESTING_AUTHORIZED_FIREBASE_USER_ID = void 0;
4
+ const firebase_1 = require("./firebase");
5
+ exports.TESTING_AUTHORIZED_FIREBASE_USER_ID = '0';
6
+ exports.authorizedFirebase = (0, firebase_1.firebaseTestBuilder)({
7
+ testEnvironment: {
8
+ firestore: {
9
+ rules: `
10
+ rules_version = '2';
11
+ service cloud.firestore {
12
+ match /databases/{database}/documents {
13
+ match /{document=**} {
14
+ allow read, write: if true;
15
+ }
16
+ }
17
+ }
18
+ `
19
+ }
20
+ },
21
+ rulesContext: { userId: exports.TESTING_AUTHORIZED_FIREBASE_USER_ID }
22
+ });
23
+ //# sourceMappingURL=firebase.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firebase.context.js","sourceRoot":"","sources":["../../../../../packages/firebase/src/test/firebase.context.ts"],"names":[],"mappings":";;;AACA,yCAAgF;AAEnE,QAAA,mCAAmC,GAAG,GAAG,CAAC;AAI1C,QAAA,kBAAkB,GAA+B,IAAA,8BAAmB,EAAC;IAChF,eAAe,EAAE;QACf,SAAS,EAAE;YACT,KAAK,EAAE;;;;;;;;;OASN;SACF;KACF;IACD,YAAY,EAAE,EAAE,MAAM,EAAE,2CAAmC,EAAE;CAC9D,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { Firestore } from '@firebase/firestore';
2
+ import { TestEnvironmentConfig, RulesTestEnvironment, RulesTestContext, TokenOptions } from "@firebase/rules-unit-testing";
3
+ import { AbstractJestTestContextFixture, Maybe } from "@dereekb/util";
4
+ export interface FirebaseTestingRulesContextConfig {
5
+ userId: string;
6
+ tokenOptions?: Maybe<TokenOptions>;
7
+ }
8
+ export interface FirebaseTestingConfig {
9
+ testEnvironment: TestEnvironmentConfig;
10
+ rulesContext?: Maybe<FirebaseTestingRulesContextConfig>;
11
+ retainFirestoreBetweenTests?: boolean;
12
+ }
13
+ export declare class FirebaseTestInstance {
14
+ readonly rulesTestEnvironment: RulesTestEnvironment;
15
+ readonly rulesTestContext: RulesTestContext;
16
+ private readonly _firestore;
17
+ constructor(rulesTestEnvironment: RulesTestEnvironment, rulesTestContext: RulesTestContext);
18
+ get firestore(): Firestore;
19
+ clearFirestore(): Promise<void>;
20
+ }
21
+ export declare class FirebaseTestingContextFixture extends AbstractJestTestContextFixture<FirebaseTestInstance> {
22
+ get firestore(): Firestore;
23
+ }
24
+ /**
25
+ * A JestTestContextBuilderFunction for building firebase test context factories.
26
+ *
27
+ * This can be used to easily build a testing context that sets up RulesTestEnvironment for tests that sets itself up and tears itself down.
28
+ */
29
+ export declare const firebaseTestBuilder: import("@dereekb/util").JestTestContextBuilderFunction<FirebaseTestInstance, FirebaseTestingContextFixture, FirebaseTestingConfig>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firebaseTestBuilder = exports.FirebaseTestingContextFixture = exports.FirebaseTestInstance = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const rules_unit_testing_1 = require("@firebase/rules-unit-testing");
6
+ const util_1 = require("@dereekb/util");
7
+ class FirebaseTestInstance {
8
+ constructor(rulesTestEnvironment, rulesTestContext) {
9
+ this.rulesTestEnvironment = rulesTestEnvironment;
10
+ this.rulesTestContext = rulesTestContext;
11
+ this._firestore = this.rulesTestContext.firestore();
12
+ }
13
+ get firestore() {
14
+ return this._firestore;
15
+ }
16
+ clearFirestore() {
17
+ return this.rulesTestEnvironment.clearFirestore();
18
+ }
19
+ }
20
+ exports.FirebaseTestInstance = FirebaseTestInstance;
21
+ class FirebaseTestingContextFixture extends util_1.AbstractJestTestContextFixture {
22
+ // MARK: From Instance
23
+ get firestore() {
24
+ return this.instance.firestore;
25
+ }
26
+ }
27
+ exports.FirebaseTestingContextFixture = FirebaseTestingContextFixture;
28
+ /**
29
+ * A JestTestContextBuilderFunction for building firebase test context factories.
30
+ *
31
+ * This can be used to easily build a testing context that sets up RulesTestEnvironment for tests that sets itself up and tears itself down.
32
+ */
33
+ exports.firebaseTestBuilder = (0, util_1.jestTestContextBuilder)({
34
+ buildConfig: (input) => {
35
+ var _a;
36
+ const config = {
37
+ testEnvironment: (_a = input === null || input === void 0 ? void 0 : input.testEnvironment) !== null && _a !== void 0 ? _a : {},
38
+ rulesContext: input === null || input === void 0 ? void 0 : input.rulesContext
39
+ };
40
+ return config;
41
+ },
42
+ buildFixture: () => new FirebaseTestingContextFixture(),
43
+ setupInstance: (config) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
44
+ const rulesTestEnv = yield (0, rules_unit_testing_1.initializeTestEnvironment)(config.testEnvironment);
45
+ const rulesTestContext = rulesTestContextForConfig(rulesTestEnv, config.rulesContext);
46
+ return new FirebaseTestInstance(rulesTestEnv, rulesTestContext);
47
+ }),
48
+ teardownInstance: (instance, config) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
49
+ if (config.retainFirestoreBetweenTests !== true) {
50
+ yield instance.clearFirestore(); // Clear the firestore
51
+ }
52
+ yield instance.rulesTestEnvironment.cleanup(); // Cleanup
53
+ })
54
+ });
55
+ // MARK: Internal
56
+ function rulesTestContextForConfig(rulesTestEnv, testingRulesConfig) {
57
+ var _a;
58
+ let rulesTestContext;
59
+ if (testingRulesConfig != null) {
60
+ rulesTestContext = rulesTestEnv.authenticatedContext(testingRulesConfig.userId, (_a = testingRulesConfig.tokenOptions) !== null && _a !== void 0 ? _a : undefined);
61
+ }
62
+ else {
63
+ rulesTestContext = rulesTestEnv.unauthenticatedContext();
64
+ }
65
+ return rulesTestContext;
66
+ }
67
+ //# sourceMappingURL=firebase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firebase.js","sourceRoot":"","sources":["../../../../../packages/firebase/src/test/firebase.ts"],"names":[],"mappings":";;;;AACA,qEAMsC;AAEtC,wCAAsH;AAetH,MAAa,oBAAoB;IAI/B,YAAqB,oBAA0C,EAAW,gBAAkC;QAAvF,yBAAoB,GAApB,oBAAoB,CAAsB;QAAW,qBAAgB,GAAhB,gBAAgB,CAAkB;QAF3F,eAAU,GAAc,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAS,CAAC;IAE8B,CAAC;IAEjH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,CAAC;IACpD,CAAC;CAIF;AAhBD,oDAgBC;AAED,MAAa,6BAA8B,SAAQ,qCAAoD;IAErG,sBAAsB;IACtB,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACjC,CAAC;CAEF;AAPD,sEAOC;AAED;;;;GAIG;AACU,QAAA,mBAAmB,GAAG,IAAA,6BAAsB,EAA6E;IACpI,WAAW,EAAE,CAAC,KAAsC,EAAE,EAAE;;QACtD,MAAM,MAAM,GAA0B;YACpC,eAAe,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,mCAAI,EAAE;YAC7C,YAAY,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY;SAClC,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,6BAA6B,EAAE;IACvD,aAAa,EAAE,CAAO,MAAM,EAAE,EAAE;QAC9B,MAAM,YAAY,GAAG,MAAM,IAAA,8CAAyB,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC7E,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACtF,OAAO,IAAI,oBAAoB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAClE,CAAC,CAAA;IACD,gBAAgB,EAAE,CAAO,QAAQ,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,MAAM,CAAC,2BAA2B,KAAK,IAAI,EAAE;YAC/C,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAE,sBAAsB;SACzD;QAED,MAAM,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAE,UAAU;IAC5D,CAAC,CAAA;CACF,CAAC,CAAC;AAEH,iBAAiB;AACjB,SAAS,yBAAyB,CAAC,YAAkC,EAAE,kBAA6D;;IAClI,IAAI,gBAAkC,CAAC;IAEvC,IAAI,kBAAkB,IAAI,IAAI,EAAE;QAC9B,gBAAgB,GAAG,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAA,kBAAkB,CAAC,YAAY,mCAAI,SAAS,CAAC,CAAC;KAC/H;SAAM;QACL,gBAAgB,GAAG,YAAY,CAAC,sBAAsB,EAAE,CAAC;KAC1D;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './firebase';
2
+ export * from './firebase.context';
3
+ export * from './firebase.context.item';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./firebase"), exports);
5
+ (0, tslib_1.__exportStar)(require("./firebase.context"), exports);
6
+ (0, tslib_1.__exportStar)(require("./firebase.context.item"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/firebase/src/test/index.ts"],"names":[],"mappings":";;;AAAA,0DAA2B;AAC3B,kEAAmC;AACnC,uEAAwC"}