@dereekb/firebase-server 3.0.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/CHANGELOG.md +15 -0
- package/README.md +7 -0
- package/package.json +34 -0
- package/src/index.d.ts +2 -0
- package/src/index.js +6 -0
- package/src/index.js.map +1 -0
- package/src/lib/auth/auth.nest.d.ts +28 -0
- package/src/lib/auth/auth.nest.js +56 -0
- package/src/lib/auth/auth.nest.js.map +1 -0
- package/src/lib/auth/auth.service.d.ts +161 -0
- package/src/lib/auth/auth.service.js +125 -0
- package/src/lib/auth/auth.service.js.map +1 -0
- package/src/lib/auth/auth.user.d.ts +0 -0
- package/src/lib/auth/auth.user.js +2 -0
- package/src/lib/auth/auth.user.js.map +1 -0
- package/src/lib/auth/index.d.ts +2 -0
- package/src/lib/auth/index.js +7 -0
- package/src/lib/auth/index.js.map +1 -0
- package/src/lib/firebase/firebase.nest.d.ts +7 -0
- package/src/lib/firebase/firebase.nest.js +17 -0
- package/src/lib/firebase/firebase.nest.js.map +1 -0
- package/src/lib/firebase/index.d.ts +1 -0
- package/src/lib/firebase/index.js +5 -0
- package/src/lib/firebase/index.js.map +1 -0
- package/src/lib/firestore/driver.accessor.batch.d.ts +31 -0
- package/src/lib/firestore/driver.accessor.batch.js +65 -0
- package/src/lib/firestore/driver.accessor.batch.js.map +1 -0
- package/src/lib/firestore/driver.accessor.d.ts +11 -0
- package/src/lib/firestore/driver.accessor.default.d.ts +15 -0
- package/src/lib/firestore/driver.accessor.default.js +45 -0
- package/src/lib/firestore/driver.accessor.default.js.map +1 -0
- package/src/lib/firestore/driver.accessor.js +53 -0
- package/src/lib/firestore/driver.accessor.js.map +1 -0
- package/src/lib/firestore/driver.accessor.transaction.d.ts +31 -0
- package/src/lib/firestore/driver.accessor.transaction.js +64 -0
- package/src/lib/firestore/driver.accessor.transaction.js.map +1 -0
- package/src/lib/firestore/driver.d.ts +4 -0
- package/src/lib/firestore/driver.js +15 -0
- package/src/lib/firestore/driver.js.map +1 -0
- package/src/lib/firestore/driver.query.d.ts +6 -0
- package/src/lib/firestore/driver.query.js +40 -0
- package/src/lib/firestore/driver.query.js.map +1 -0
- package/src/lib/firestore/firestore.d.ts +5 -0
- package/src/lib/firestore/firestore.js +10 -0
- package/src/lib/firestore/firestore.js.map +1 -0
- package/src/lib/firestore/firestore.nest.d.ts +44 -0
- package/src/lib/firestore/firestore.nest.js +81 -0
- package/src/lib/firestore/firestore.nest.js.map +1 -0
- package/src/lib/firestore/index.d.ts +5 -0
- package/src/lib/firestore/index.js +9 -0
- package/src/lib/firestore/index.js.map +1 -0
- package/src/lib/function/assert.d.ts +2 -0
- package/src/lib/function/assert.js +12 -0
- package/src/lib/function/assert.js.map +1 -0
- package/src/lib/function/context.d.ts +4 -0
- package/src/lib/function/context.js +16 -0
- package/src/lib/function/context.js.map +1 -0
- package/src/lib/function/error.d.ts +4 -0
- package/src/lib/function/error.js +17 -0
- package/src/lib/function/error.js.map +1 -0
- package/src/lib/function/index.d.ts +4 -0
- package/src/lib/function/index.js +8 -0
- package/src/lib/function/index.js.map +1 -0
- package/src/lib/function/type.d.ts +5 -0
- package/src/lib/function/type.js +3 -0
- package/src/lib/function/type.js.map +1 -0
- package/src/lib/index.d.ts +5 -0
- package/src/lib/index.js +9 -0
- package/src/lib/index.js.map +1 -0
- package/src/lib/nest/app.d.ts +36 -0
- package/src/lib/nest/app.js +71 -0
- package/src/lib/nest/app.js.map +1 -0
- package/src/lib/nest/function/context.d.ts +12 -0
- package/src/lib/nest/function/context.js +12 -0
- package/src/lib/nest/function/context.js.map +1 -0
- package/src/lib/nest/function/index.d.ts +4 -0
- package/src/lib/nest/function/index.js +8 -0
- package/src/lib/nest/function/index.js.map +1 -0
- package/src/lib/nest/function/nest.d.ts +91 -0
- package/src/lib/nest/function/nest.js +74 -0
- package/src/lib/nest/function/nest.js.map +1 -0
- package/src/lib/nest/function/nest.utility.d.ts +10 -0
- package/src/lib/nest/function/nest.utility.js +23 -0
- package/src/lib/nest/function/nest.utility.js.map +1 -0
- package/src/lib/nest/function/transform.d.ts +10 -0
- package/src/lib/nest/function/transform.js +27 -0
- package/src/lib/nest/function/transform.js.map +1 -0
- package/src/lib/nest/index.d.ts +2 -0
- package/src/lib/nest/index.js +6 -0
- package/src/lib/nest/index.js.map +1 -0
- package/src/test/firebase/firebase.admin.auth.d.ts +132 -0
- package/src/test/firebase/firebase.admin.auth.js +168 -0
- package/src/test/firebase/firebase.admin.auth.js.map +1 -0
- package/src/test/firebase/firebase.admin.collection.d.ts +57 -0
- package/src/test/firebase/firebase.admin.collection.js +61 -0
- package/src/test/firebase/firebase.admin.collection.js.map +1 -0
- package/src/test/firebase/firebase.admin.d.ts +73 -0
- package/src/test/firebase/firebase.admin.function.d.ts +46 -0
- package/src/test/firebase/firebase.admin.function.js +116 -0
- package/src/test/firebase/firebase.admin.function.js.map +1 -0
- package/src/test/firebase/firebase.admin.js +142 -0
- package/src/test/firebase/firebase.admin.js.map +1 -0
- package/src/test/firebase/firebase.admin.nest.d.ts +62 -0
- package/src/test/firebase/firebase.admin.nest.function.context.d.ts +22 -0
- package/src/test/firebase/firebase.admin.nest.function.context.js +35 -0
- package/src/test/firebase/firebase.admin.nest.function.context.js.map +1 -0
- package/src/test/firebase/firebase.admin.nest.function.d.ts +25 -0
- package/src/test/firebase/firebase.admin.nest.function.js +50 -0
- package/src/test/firebase/firebase.admin.nest.function.js.map +1 -0
- package/src/test/firebase/firebase.admin.nest.js +86 -0
- package/src/test/firebase/firebase.admin.nest.js.map +1 -0
- package/src/test/firebase/firebase.admin.test.server.d.ts +3 -0
- package/src/test/firebase/firebase.admin.test.server.js +39 -0
- package/src/test/firebase/firebase.admin.test.server.js.map +1 -0
- package/src/test/firebase/firebase.d.ts +30 -0
- package/src/test/firebase/firebase.js +76 -0
- package/src/test/firebase/firebase.js.map +1 -0
- package/src/test/firebase/index.d.ts +8 -0
- package/src/test/firebase/index.js +12 -0
- package/src/test/firebase/index.js.map +1 -0
- package/src/test/firestore/firestore.admin.d.ts +9 -0
- package/src/test/firestore/firestore.admin.js +14 -0
- package/src/test/firestore/firestore.admin.js.map +1 -0
- package/src/test/firestore/firestore.d.ts +22 -0
- package/src/test/firestore/firestore.fixture.admin.d.ts +6 -0
- package/src/test/firestore/firestore.fixture.admin.js +12 -0
- package/src/test/firestore/firestore.fixture.admin.js.map +1 -0
- package/src/test/firestore/firestore.js +57 -0
- package/src/test/firestore/firestore.js.map +1 -0
- package/src/test/firestore/index.d.ts +2 -0
- package/src/test/firestore/index.js +7 -0
- package/src/test/firestore/index.js.map +1 -0
- package/src/test/index.d.ts +2 -0
- package/src/test/index.js +6 -0
- package/src/test/index.js.map +1 -0
- package/test-setup.d.ts +0 -0
- package/test-setup.js +6 -0
- package/test-setup.js.map +1 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DocumentReference, WriteResult as GoogleCloudWriteResult, DocumentSnapshot } from "@google-cloud/firestore";
|
|
2
|
+
import { Observable } from "rxjs";
|
|
3
|
+
import { WithFieldValue, UpdateData, FirestoreDocumentContext, FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory, FirestoreDocumentDeleteParams, FirestoreDocumentUpdateParams, SetOptions } from "@dereekb/firebase";
|
|
4
|
+
export declare class DefaultFirestoreDocumentDataAccessor<T> implements FirestoreDocumentDataAccessor<T> {
|
|
5
|
+
readonly documentRef: DocumentReference<T>;
|
|
6
|
+
constructor(documentRef: DocumentReference<T>);
|
|
7
|
+
stream(): Observable<DocumentSnapshot<T>>;
|
|
8
|
+
exists(): Promise<boolean>;
|
|
9
|
+
get(): Promise<DocumentSnapshot<T>>;
|
|
10
|
+
delete(params: FirestoreDocumentDeleteParams): Promise<GoogleCloudWriteResult>;
|
|
11
|
+
set(data: WithFieldValue<T>, options?: SetOptions): Promise<GoogleCloudWriteResult>;
|
|
12
|
+
update(data: UpdateData<T>, params?: FirestoreDocumentUpdateParams): Promise<GoogleCloudWriteResult>;
|
|
13
|
+
}
|
|
14
|
+
export declare function defaultFirestoreAccessorFactory<T>(): FirestoreDocumentDataAccessorFactory<T>;
|
|
15
|
+
export declare function defaultFirestoreDocumentContext<T>(): FirestoreDocumentContext<T>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultFirestoreDocumentContext = exports.defaultFirestoreAccessorFactory = exports.DefaultFirestoreDocumentDataAccessor = void 0;
|
|
4
|
+
const firebase_1 = require("@dereekb/firebase");
|
|
5
|
+
// MARK: Accessor
|
|
6
|
+
class DefaultFirestoreDocumentDataAccessor {
|
|
7
|
+
constructor(documentRef) {
|
|
8
|
+
this.documentRef = documentRef;
|
|
9
|
+
}
|
|
10
|
+
stream() {
|
|
11
|
+
return (0, firebase_1.streamFromOnSnapshot)(({ next, error }) => this.documentRef.onSnapshot(next, error));
|
|
12
|
+
}
|
|
13
|
+
exists() {
|
|
14
|
+
return this.get().then(x => x.exists);
|
|
15
|
+
}
|
|
16
|
+
get() {
|
|
17
|
+
return this.documentRef.get();
|
|
18
|
+
}
|
|
19
|
+
delete(params) {
|
|
20
|
+
return this.documentRef.delete(params === null || params === void 0 ? void 0 : params.precondition);
|
|
21
|
+
}
|
|
22
|
+
set(data, options) {
|
|
23
|
+
return (options) ? this.documentRef.set(data, options) : this.documentRef.set(data);
|
|
24
|
+
}
|
|
25
|
+
update(data, params) {
|
|
26
|
+
var _a;
|
|
27
|
+
return this.documentRef.update(data, (_a = params === null || params === void 0 ? void 0 : params.precondition) !== null && _a !== void 0 ? _a : {});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.DefaultFirestoreDocumentDataAccessor = DefaultFirestoreDocumentDataAccessor;
|
|
31
|
+
function defaultFirestoreAccessorFactory() {
|
|
32
|
+
return {
|
|
33
|
+
accessorFor: (ref) => new DefaultFirestoreDocumentDataAccessor(ref)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
exports.defaultFirestoreAccessorFactory = defaultFirestoreAccessorFactory;
|
|
37
|
+
// MARK: Context
|
|
38
|
+
function defaultFirestoreDocumentContext() {
|
|
39
|
+
return {
|
|
40
|
+
contextType: firebase_1.FirestoreDocumentContextType.NONE,
|
|
41
|
+
accessorFactory: defaultFirestoreAccessorFactory()
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
exports.defaultFirestoreDocumentContext = defaultFirestoreDocumentContext;
|
|
45
|
+
//# sourceMappingURL=driver.accessor.default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.accessor.default.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.accessor.default.ts"],"names":[],"mappings":";;;AAEA,gDAAyS;AAEzS,iBAAiB;AACjB,MAAa,oCAAoC;IAE/C,YAAqB,WAAiC;QAAjC,gBAAW,GAAX,WAAW,CAAsB;IAAI,CAAC;IAE3D,MAAM;QACJ,OAAO,IAAA,+BAAoB,EAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,MAAqC;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,IAAuB,EAAE,OAAoB;QAC/C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAS,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,MAAsC;;QAChE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAW,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,mCAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;CAEF;AA5BD,oFA4BC;AAED,SAAgB,+BAA+B;IAC7C,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,oCAAoC,CAAC,GAAG,CAAC;KAC1F,CAAC;AACJ,CAAC;AAJD,0EAIC;AAED,gBAAgB;AAChB,SAAgB,+BAA+B;IAC7C,OAAO;QACL,WAAW,EAAE,uCAA4B,CAAC,IAAI;QAC9C,eAAe,EAAE,+BAA+B,EAAK;KACtD,CAAA;AACH,CAAC;AALD,0EAKC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.firestoreClientAccessorDriver = exports.docRefForPath = exports.collectionRefForPath = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const util_1 = require("@dereekb/util");
|
|
6
|
+
const driver_accessor_batch_1 = require("./driver.accessor.batch");
|
|
7
|
+
const driver_accessor_default_1 = require("./driver.accessor.default");
|
|
8
|
+
const driver_accessor_transaction_1 = require("./driver.accessor.transaction");
|
|
9
|
+
;
|
|
10
|
+
;
|
|
11
|
+
;
|
|
12
|
+
function collectionRefForPath(start, path, pathSegments) {
|
|
13
|
+
let ref = start.collection(path);
|
|
14
|
+
if (pathSegments === null || pathSegments === void 0 ? void 0 : pathSegments.length) {
|
|
15
|
+
if ((pathSegments === null || pathSegments === void 0 ? void 0 : pathSegments.length) % 2 !== 0) {
|
|
16
|
+
throw new Error(`Invalid number of path segments provided for collection. Path: "${path}" + "${pathSegments}"`);
|
|
17
|
+
}
|
|
18
|
+
const batches = (0, util_1.batch)(pathSegments, 2);
|
|
19
|
+
batches.forEach((x) => {
|
|
20
|
+
const [first, second] = x;
|
|
21
|
+
ref = ref.doc(first).collection(second);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return ref;
|
|
25
|
+
}
|
|
26
|
+
exports.collectionRefForPath = collectionRefForPath;
|
|
27
|
+
function docRefForPath(start, path, pathSegments) {
|
|
28
|
+
let doc = ((path) ? start.doc(path) : start.doc());
|
|
29
|
+
if (pathSegments === null || pathSegments === void 0 ? void 0 : pathSegments.length) {
|
|
30
|
+
const batches = (0, util_1.batch)(pathSegments, 2);
|
|
31
|
+
batches.forEach((x) => {
|
|
32
|
+
const [first, second] = x;
|
|
33
|
+
const collection = doc.collection(first);
|
|
34
|
+
doc = (second) ? collection.doc(second) : collection.doc();
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return doc;
|
|
38
|
+
}
|
|
39
|
+
exports.docRefForPath = docRefForPath;
|
|
40
|
+
function firestoreClientAccessorDriver() {
|
|
41
|
+
return {
|
|
42
|
+
doc: (collection, path, ...pathSegments) => docRefForPath(collection, path, pathSegments),
|
|
43
|
+
collection: (firestore, path, ...pathSegments) => collectionRefForPath(firestore, path, pathSegments),
|
|
44
|
+
subcollection: (document, path, ...pathSegments) => collectionRefForPath(document, path, pathSegments),
|
|
45
|
+
transactionFactoryForFirestore: (firestore) => (fn) => tslib_1.__awaiter(this, void 0, void 0, function* () { return yield firestore.runTransaction(fn); }),
|
|
46
|
+
writeBatchFactoryForFirestore: (firestore) => () => firestore.batch(),
|
|
47
|
+
defaultContextFactory: driver_accessor_default_1.defaultFirestoreDocumentContext,
|
|
48
|
+
transactionContextFactory: driver_accessor_transaction_1.transactionDocumentContext,
|
|
49
|
+
writeBatchContextFactory: driver_accessor_batch_1.writeBatchDocumentContext
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
exports.firestoreClientAccessorDriver = firestoreClientAccessorDriver;
|
|
53
|
+
//# sourceMappingURL=driver.accessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.accessor.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.accessor.ts"],"names":[],"mappings":";;;;AACA,wCAAsC;AAEtC,mEAAoE;AACpE,uEAA4E;AAC5E,+EAA2E;AAEF,CAAC;AACe,CAAC;AACO,CAAC;AAElG,SAAgB,oBAAoB,CAAI,KAAgC,EAAE,IAAY,EAAE,YAAuB;IAC7G,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,EAAE;QACxB,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,IAAG,CAAC,KAAK,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,mEAAmE,IAAI,QAAQ,YAAY,GAAG,CAAC,CAAC;SACjH;QAED,MAAM,OAAO,GAAG,IAAA,YAAK,EAAC,YAAY,EAAE,CAAC,CAAuB,CAAC;QAE7D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,GAAG,GAAI,GAA+B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,GAA6B,CAAC;AACvC,CAAC;AAjBD,oDAiBC;AAED,SAAgB,aAAa,CAAI,KAAyB,EAAE,IAAa,EAAE,YAAuB;IAChG,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,KAAwC,CAAC,GAAG,EAAE,CAAiC,CAAC;IAEvH,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,EAAE;QACxB,MAAM,OAAO,GAAG,IAAA,YAAK,EAAC,YAAY,EAAE,CAAC,CAAuB,CAAC;QAE7D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QAC7D,CAAC,CAAC,CAAC;KAEJ;IAED,OAAO,GAA2B,CAAC;AACrC,CAAC;AAfD,sCAeC;AAED,SAAgB,6BAA6B;IAC3C,OAAO;QACL,GAAG,EAAE,CAAI,UAAkC,EAAE,IAAa,EAAE,GAAG,YAAsB,EAAE,EAAE,CAAC,aAAa,CAAC,UAA4C,EAAE,IAAI,EAAE,YAAY,CAAyB;QACjM,UAAU,EAAE,CAAI,SAAoB,EAAE,IAAY,EAAE,GAAG,YAAsB,EAAE,EAAE,CAAC,oBAAoB,CAAE,SAAkC,EAAE,IAAI,EAAE,YAAY,CAA2B;QACzL,aAAa,EAAE,CAAI,QAA2B,EAAE,IAAY,EAAE,GAAG,YAAsB,EAAE,EAAE,CAAC,oBAAoB,CAAE,QAAyC,EAAE,IAAI,EAAE,YAAY,CAA2B;QAC1M,8BAA8B,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAU,EAA0B,EAAE,EAAE,wDAAC,OAAA,MAAO,SAAkC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA,GAAA;QACpJ,6BAA6B,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,CAAE,SAAkC,CAAC,KAAK,EAAE;QAC/F,qBAAqB,EAAE,yDAA+B;QACtD,yBAAyB,EAAE,wDAAiC;QAC5D,wBAAwB,EAAE,iDAAgC;KAC3D,CAAC;AACJ,CAAC;AAXD,sEAWC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { DocumentReference, DocumentSnapshot, Transaction as GoogleCloudTransaction, SetOptions } from "@google-cloud/firestore";
|
|
2
|
+
import { Observable } from "rxjs";
|
|
3
|
+
import { WithFieldValue, UpdateData, FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory, FirestoreDocumentContext, FirestoreDocumentContextType, FirestoreDocumentUpdateParams } from "@dereekb/firebase";
|
|
4
|
+
/**
|
|
5
|
+
* FirestoreDocumentDataAccessor implementation for a transaction.
|
|
6
|
+
*/
|
|
7
|
+
export declare class TransactionFirestoreDocumentDataAccessor<T> implements FirestoreDocumentDataAccessor<T> {
|
|
8
|
+
readonly transaction: GoogleCloudTransaction;
|
|
9
|
+
readonly documentRef: DocumentReference<T>;
|
|
10
|
+
constructor(transaction: GoogleCloudTransaction, documentRef: DocumentReference<T>);
|
|
11
|
+
stream(): Observable<DocumentSnapshot<T>>;
|
|
12
|
+
exists(): Promise<boolean>;
|
|
13
|
+
get(): Promise<DocumentSnapshot<T>>;
|
|
14
|
+
delete(): Promise<void>;
|
|
15
|
+
set(data: WithFieldValue<T>, options?: SetOptions): Promise<void>;
|
|
16
|
+
update(data: UpdateData<T>, params?: FirestoreDocumentUpdateParams): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new FirestoreDocumentDataAccessorFactory for a Transaction.
|
|
20
|
+
*
|
|
21
|
+
* @param transaction
|
|
22
|
+
* @returns
|
|
23
|
+
*/
|
|
24
|
+
export declare function transactionAccessorFactory<T>(transaction: GoogleCloudTransaction): FirestoreDocumentDataAccessorFactory<T>;
|
|
25
|
+
export declare class TransactionFirestoreDocumentContext<T> implements FirestoreDocumentContext<T> {
|
|
26
|
+
readonly transaction: GoogleCloudTransaction;
|
|
27
|
+
readonly contextType = FirestoreDocumentContextType.TRANSACTION;
|
|
28
|
+
readonly accessorFactory: FirestoreDocumentDataAccessorFactory<T>;
|
|
29
|
+
constructor(transaction: GoogleCloudTransaction);
|
|
30
|
+
}
|
|
31
|
+
export declare function transactionDocumentContext<T>(transaction: GoogleCloudTransaction): TransactionFirestoreDocumentContext<T>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transactionDocumentContext = exports.TransactionFirestoreDocumentContext = exports.transactionAccessorFactory = exports.TransactionFirestoreDocumentDataAccessor = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const firebase_1 = require("@dereekb/firebase");
|
|
6
|
+
// MARK: Accessor
|
|
7
|
+
/**
|
|
8
|
+
* FirestoreDocumentDataAccessor implementation for a transaction.
|
|
9
|
+
*/
|
|
10
|
+
class TransactionFirestoreDocumentDataAccessor {
|
|
11
|
+
constructor(transaction, documentRef) {
|
|
12
|
+
this.transaction = transaction;
|
|
13
|
+
this.documentRef = documentRef;
|
|
14
|
+
}
|
|
15
|
+
stream() {
|
|
16
|
+
return (0, rxjs_1.from)(this.get());
|
|
17
|
+
}
|
|
18
|
+
exists() {
|
|
19
|
+
return this.get().then(x => x.exists);
|
|
20
|
+
}
|
|
21
|
+
get() {
|
|
22
|
+
return this.transaction.get(this.documentRef);
|
|
23
|
+
}
|
|
24
|
+
delete() {
|
|
25
|
+
this.transaction.delete(this.documentRef);
|
|
26
|
+
return Promise.resolve();
|
|
27
|
+
}
|
|
28
|
+
set(data, options) {
|
|
29
|
+
this.transaction.set(this.documentRef, data, options);
|
|
30
|
+
return Promise.resolve();
|
|
31
|
+
}
|
|
32
|
+
update(data, params) {
|
|
33
|
+
var _a;
|
|
34
|
+
this.transaction.update(this.documentRef, data, (_a = params === null || params === void 0 ? void 0 : params.precondition) !== null && _a !== void 0 ? _a : {});
|
|
35
|
+
return Promise.resolve();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.TransactionFirestoreDocumentDataAccessor = TransactionFirestoreDocumentDataAccessor;
|
|
39
|
+
/**
|
|
40
|
+
* Creates a new FirestoreDocumentDataAccessorFactory for a Transaction.
|
|
41
|
+
*
|
|
42
|
+
* @param transaction
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
function transactionAccessorFactory(transaction) {
|
|
46
|
+
return {
|
|
47
|
+
accessorFor: (ref) => new TransactionFirestoreDocumentDataAccessor(transaction, ref)
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
exports.transactionAccessorFactory = transactionAccessorFactory;
|
|
51
|
+
// MARK: Context
|
|
52
|
+
class TransactionFirestoreDocumentContext {
|
|
53
|
+
constructor(transaction) {
|
|
54
|
+
this.transaction = transaction;
|
|
55
|
+
this.contextType = firebase_1.FirestoreDocumentContextType.TRANSACTION;
|
|
56
|
+
this.accessorFactory = transactionAccessorFactory(this.transaction);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.TransactionFirestoreDocumentContext = TransactionFirestoreDocumentContext;
|
|
60
|
+
function transactionDocumentContext(transaction) {
|
|
61
|
+
return new TransactionFirestoreDocumentContext(transaction);
|
|
62
|
+
}
|
|
63
|
+
exports.transactionDocumentContext = transactionDocumentContext;
|
|
64
|
+
//# sourceMappingURL=driver.accessor.transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.accessor.transaction.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.accessor.transaction.ts"],"names":[],"mappings":";;;AACA,+BAAwC;AACxC,gDAA2N;AAE3N,iBAAiB;AACjB;;GAEG;AACH,MAAa,wCAAwC;IAEnD,YAAqB,WAAmC,EAAW,WAAiC;QAA/E,gBAAW,GAAX,WAAW,CAAwB;QAAW,gBAAW,GAAX,WAAW,CAAsB;IAAI,CAAC;IAEzG,MAAM;QACJ,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,IAAuB,EAAE,OAAoB;QAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAW,EAAE,OAAqB,CAAC,CAAC;QAC3E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,MAAsC;;QAChE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAW,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,mCAAI,EAAE,CAAC,CAAC;QACnF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CAEF;AA/BD,4FA+BC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAI,WAAmC;IAC/E,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,wCAAwC,CAAC,WAAW,EAAE,GAAG,CAAC;KAC3G,CAAC;AACJ,CAAC;AAJD,gEAIC;AAED,gBAAgB;AAChB,MAAa,mCAAmC;IAK9C,YAAqB,WAAmC;QAAnC,gBAAW,GAAX,WAAW,CAAwB;QAH/C,gBAAW,GAAG,uCAA4B,CAAC,WAAW,CAAC;QACvD,oBAAe,GAAG,0BAA0B,CAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAEf,CAAC;CAE9D;AAPD,kFAOC;AAED,SAAgB,0BAA0B,CAAI,WAAmC;IAC/E,OAAO,IAAI,mCAAmC,CAAI,WAAW,CAAC,CAAC;AACjE,CAAC;AAFD,gEAEC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.googleCloudFirestoreDrivers = void 0;
|
|
4
|
+
const driver_accessor_1 = require("./driver.accessor");
|
|
5
|
+
const driver_query_1 = require("./driver.query");
|
|
6
|
+
function googleCloudFirestoreDrivers() {
|
|
7
|
+
return {
|
|
8
|
+
driverIdentifier: '@google-cloud/firestore',
|
|
9
|
+
driverType: 'production',
|
|
10
|
+
firestoreAccessorDriver: (0, driver_accessor_1.firestoreClientAccessorDriver)(),
|
|
11
|
+
firestoreQueryDriver: (0, driver_query_1.firestoreClientQueryDriver)()
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
exports.googleCloudFirestoreDrivers = googleCloudFirestoreDrivers;
|
|
15
|
+
//# sourceMappingURL=driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.ts"],"names":[],"mappings":";;;AACA,uDAAkE;AAClE,iDAA4D;AAI5D,SAAgB,2BAA2B;IACzC,OAAO;QACL,gBAAgB,EAAE,yBAAyB;QAC3C,UAAU,EAAE,YAAY;QACxB,uBAAuB,EAAE,IAAA,+CAA6B,GAAE;QACxD,oBAAoB,EAAE,IAAA,yCAA0B,GAAE;KACnD,CAAC;AACJ,CAAC;AAPD,kEAOC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Query as GoogleCloudQuery } from "@google-cloud/firestore";
|
|
2
|
+
import { FullFirestoreQueryConstraintHandlersMapping, FirestoreQueryConstraintFunctionsDriver, FirestoreQueryDriver } from "@dereekb/firebase";
|
|
3
|
+
export declare type FirestoreServerQueryBuilder<T = any> = GoogleCloudQuery<T>;
|
|
4
|
+
export declare const FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING: FullFirestoreQueryConstraintHandlersMapping<FirestoreServerQueryBuilder>;
|
|
5
|
+
export declare function firestoreClientQueryConstraintFunctionsDriver(): FirestoreQueryConstraintFunctionsDriver;
|
|
6
|
+
export declare function firestoreClientQueryDriver(): FirestoreQueryDriver;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.firestoreClientQueryDriver = exports.firestoreClientQueryConstraintFunctionsDriver = exports.FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING = void 0;
|
|
4
|
+
const firebase_1 = require("@dereekb/firebase");
|
|
5
|
+
exports.FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING = {
|
|
6
|
+
[firebase_1.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.limit(data.limit),
|
|
7
|
+
[firebase_1.FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.limitToLast(data.limit),
|
|
8
|
+
[firebase_1.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.orderBy(data.fieldPath, data.directionStr),
|
|
9
|
+
[firebase_1.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.where(data.fieldPath, data.opStr, data.value),
|
|
10
|
+
[firebase_1.FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.offset(data.offset),
|
|
11
|
+
[firebase_1.FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.startAt(data.snapshot),
|
|
12
|
+
[firebase_1.FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.startAfter(data.snapshot),
|
|
13
|
+
[firebase_1.FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.endAt(data.snapshot),
|
|
14
|
+
[firebase_1.FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.endBefore(data.snapshot)
|
|
15
|
+
};
|
|
16
|
+
function firestoreClientQueryConstraintFunctionsDriver() {
|
|
17
|
+
return (0, firebase_1.makeFirestoreQueryConstraintFunctionsDriver)({
|
|
18
|
+
mapping: exports.FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING,
|
|
19
|
+
init: (query) => query,
|
|
20
|
+
build: (query) => query
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
exports.firestoreClientQueryConstraintFunctionsDriver = firestoreClientQueryConstraintFunctionsDriver;
|
|
24
|
+
function firestoreClientQueryDriver() {
|
|
25
|
+
return Object.assign(Object.assign({}, firestoreClientQueryConstraintFunctionsDriver()), { getDocs(query, transaction) {
|
|
26
|
+
let result;
|
|
27
|
+
if (transaction) {
|
|
28
|
+
result = transaction.get(query);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
result = query.get();
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
},
|
|
35
|
+
streamDocs(query) {
|
|
36
|
+
return (0, firebase_1.streamFromOnSnapshot)(({ next, error }) => query.onSnapshot(next, error));
|
|
37
|
+
} });
|
|
38
|
+
}
|
|
39
|
+
exports.firestoreClientQueryDriver = firestoreClientQueryDriver;
|
|
40
|
+
//# sourceMappingURL=driver.query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.query.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.query.ts"],"names":[],"mappings":";;;AACA,gDAA+mB;AAIlmB,QAAA,iDAAiD,GAA6E;IACzI,CAAC,gDAAqC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACrF,CAAC,wDAA6C,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;IACnG,CAAC,mDAAwC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IACjH,CAAC,gDAAqC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;IACjH,CAAC,iDAAsC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACxF,CAAC,mDAAwC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAA4B,CAAC;IACjH,CAAC,sDAA2C,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAA4B,CAAC;IACvH,CAAC,iDAAsC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAA4B,CAAC;IAC7G,CAAC,qDAA0C,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAA4B,CAAC;CACtH,CAAC;AAEF,SAAgB,6CAA6C;IAC3D,OAAO,IAAA,sDAA2C,EAA8B;QAC9E,OAAO,EAAE,yDAAiD;QAC1D,IAAI,EAAE,CAAI,KAAe,EAAE,EAAE,CAAC,KAAuC;QACrE,KAAK,EAAE,CAAI,KAAqC,EAAE,EAAE,CAAC,KAAK;KAC3D,CAAC,CAAC;AACL,CAAC;AAND,sGAMC;AAED,SAAgB,0BAA0B;IACxC,uCACK,6CAA6C,EAAE,KAClD,OAAO,CAAI,KAAe,EAAE,WAAyB;YACnD,IAAI,MAAiC,CAAC;YAEtC,IAAI,WAAW,EAAE;gBACf,MAAM,GAAI,WAAsC,CAAC,GAAG,CAAC,KAA4B,CAAC,CAAC;aACpF;iBAAM;gBACL,MAAM,GAAI,KAAwC,CAAC,GAAG,EAAE,CAAC;aAC1D;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,UAAU,CAAI,KAAe;YAC3B,OAAO,IAAA,+BAAoB,EAAmB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAE,KAAwC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;QACvI,CAAC,IACD;AACJ,CAAC;AAlBD,gEAkBC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.googleCloudFirestoreContextFactory = void 0;
|
|
4
|
+
const firebase_1 = require("@dereekb/firebase");
|
|
5
|
+
const driver_1 = require("./driver");
|
|
6
|
+
/**
|
|
7
|
+
* Creates a FirestoreContextFactory that uses the @firebase/firebase package.
|
|
8
|
+
*/
|
|
9
|
+
exports.googleCloudFirestoreContextFactory = (0, firebase_1.firestoreContextFactory)((0, driver_1.googleCloudFirestoreDrivers)());
|
|
10
|
+
//# sourceMappingURL=firestore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/firestore.ts"],"names":[],"mappings":";;;AAAA,gDAAqF;AACrF,qCAAuD;AAEvD;;GAEG;AACU,QAAA,kCAAkC,GAA4B,IAAA,kCAAuB,EAAC,IAAA,oCAA2B,GAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { InjectionToken, ModuleMetadata, Provider } from "@nestjs/common";
|
|
2
|
+
import { FirestoreContext } from '@dereekb/firebase';
|
|
3
|
+
import { ClassLikeType } from '@dereekb/util';
|
|
4
|
+
/**
|
|
5
|
+
* Token to access the Firestore.
|
|
6
|
+
*/
|
|
7
|
+
export declare const FIREBASE_FIRESTORE_TOKEN: InjectionToken;
|
|
8
|
+
/**
|
|
9
|
+
* Token to access the root FirestoreContext for a server.
|
|
10
|
+
*/
|
|
11
|
+
export declare const FIREBASE_FIRESTORE_CONTEXT_TOKEN: InjectionToken;
|
|
12
|
+
/**
|
|
13
|
+
* Nest provider module for Firebase that provides a firestore, etc. from the firestore token.
|
|
14
|
+
*/
|
|
15
|
+
export declare class FirebaseServerFirestoreModule {
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Nest provider module for firebase that includes the FirebaseServerFirestoreModule and provides a value for FIRESTORE_CONTEXT_TOKEN using the googleCloudFirestoreContextFactory.
|
|
19
|
+
*/
|
|
20
|
+
export declare class FirebaseServerFirestoreContextModule {
|
|
21
|
+
}
|
|
22
|
+
export declare type ProvideAppFirestoreCollectionsFactory<T> = (context: FirestoreContext) => T;
|
|
23
|
+
export interface ProvideAppFirestoreCollectionsConfig<T> {
|
|
24
|
+
provide: ClassLikeType<T>;
|
|
25
|
+
useFactory: ProvideAppFirestoreCollectionsFactory<T>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Used to configure a Nestjs provider for a FirestoreCollections-type object that is initialized with a FirestoreContext.
|
|
29
|
+
*
|
|
30
|
+
* @param type
|
|
31
|
+
* @param useFactory
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
export declare function provideAppFirestoreCollections<T>({ provide, useFactory }: ProvideAppFirestoreCollectionsConfig<T>): [Provider<T>];
|
|
35
|
+
export interface ProvideAppFirestoreModuleMetadataConfig<T> extends ProvideAppFirestoreCollectionsConfig<T>, Pick<ModuleMetadata, 'imports' | 'exports' | 'providers'> {
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Convenience function used to generate ModuleMetadata for an app's Firestore related modules and an appFirestoreCollection
|
|
39
|
+
*
|
|
40
|
+
* @param provide
|
|
41
|
+
* @param useFactory
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
export declare function appFirestoreModuleMetadata<T>(config: ProvideAppFirestoreModuleMetadataConfig<T>): ModuleMetadata;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.appFirestoreModuleMetadata = exports.provideAppFirestoreCollections = exports.FirebaseServerFirestoreContextModule = exports.FirebaseServerFirestoreModule = exports.FIREBASE_FIRESTORE_CONTEXT_TOKEN = exports.FIREBASE_FIRESTORE_TOKEN = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const firestore_1 = require("../firestore/firestore");
|
|
7
|
+
const firebase_nest_1 = require("../firebase/firebase.nest");
|
|
8
|
+
// MARK: Tokens
|
|
9
|
+
/**
|
|
10
|
+
* Token to access the Firestore.
|
|
11
|
+
*/
|
|
12
|
+
exports.FIREBASE_FIRESTORE_TOKEN = 'FIREBASE_FIRESTORE_TOKEN';
|
|
13
|
+
/**
|
|
14
|
+
* Token to access the root FirestoreContext for a server.
|
|
15
|
+
*/
|
|
16
|
+
exports.FIREBASE_FIRESTORE_CONTEXT_TOKEN = 'FIREBASE_FIRESTORE_CONTEXT_TOKEN';
|
|
17
|
+
/**
|
|
18
|
+
* Nest provider module for Firebase that provides a firestore, etc. from the firestore token.
|
|
19
|
+
*/
|
|
20
|
+
let FirebaseServerFirestoreModule = class FirebaseServerFirestoreModule {
|
|
21
|
+
};
|
|
22
|
+
FirebaseServerFirestoreModule = tslib_1.__decorate([
|
|
23
|
+
(0, common_1.Module)({
|
|
24
|
+
providers: [{
|
|
25
|
+
provide: exports.FIREBASE_FIRESTORE_TOKEN,
|
|
26
|
+
useFactory: (app) => app.firestore(),
|
|
27
|
+
inject: [firebase_nest_1.FIREBASE_APP_TOKEN]
|
|
28
|
+
}],
|
|
29
|
+
exports: [exports.FIREBASE_FIRESTORE_TOKEN]
|
|
30
|
+
})
|
|
31
|
+
], FirebaseServerFirestoreModule);
|
|
32
|
+
exports.FirebaseServerFirestoreModule = FirebaseServerFirestoreModule;
|
|
33
|
+
/**
|
|
34
|
+
* Nest provider module for firebase that includes the FirebaseServerFirestoreModule and provides a value for FIRESTORE_CONTEXT_TOKEN using the googleCloudFirestoreContextFactory.
|
|
35
|
+
*/
|
|
36
|
+
let FirebaseServerFirestoreContextModule = class FirebaseServerFirestoreContextModule {
|
|
37
|
+
};
|
|
38
|
+
FirebaseServerFirestoreContextModule = tslib_1.__decorate([
|
|
39
|
+
(0, common_1.Module)({
|
|
40
|
+
imports: [FirebaseServerFirestoreModule],
|
|
41
|
+
providers: [{
|
|
42
|
+
provide: exports.FIREBASE_FIRESTORE_CONTEXT_TOKEN,
|
|
43
|
+
useFactory: firestore_1.googleCloudFirestoreContextFactory,
|
|
44
|
+
inject: [exports.FIREBASE_FIRESTORE_TOKEN]
|
|
45
|
+
}],
|
|
46
|
+
exports: [FirebaseServerFirestoreModule, exports.FIREBASE_FIRESTORE_CONTEXT_TOKEN]
|
|
47
|
+
})
|
|
48
|
+
], FirebaseServerFirestoreContextModule);
|
|
49
|
+
exports.FirebaseServerFirestoreContextModule = FirebaseServerFirestoreContextModule;
|
|
50
|
+
/**
|
|
51
|
+
* Used to configure a Nestjs provider for a FirestoreCollections-type object that is initialized with a FirestoreContext.
|
|
52
|
+
*
|
|
53
|
+
* @param type
|
|
54
|
+
* @param useFactory
|
|
55
|
+
* @returns
|
|
56
|
+
*/
|
|
57
|
+
function provideAppFirestoreCollections({ provide, useFactory }) {
|
|
58
|
+
return [{
|
|
59
|
+
provide,
|
|
60
|
+
useFactory,
|
|
61
|
+
inject: [exports.FIREBASE_FIRESTORE_CONTEXT_TOKEN]
|
|
62
|
+
}];
|
|
63
|
+
}
|
|
64
|
+
exports.provideAppFirestoreCollections = provideAppFirestoreCollections;
|
|
65
|
+
/**
|
|
66
|
+
* Convenience function used to generate ModuleMetadata for an app's Firestore related modules and an appFirestoreCollection
|
|
67
|
+
*
|
|
68
|
+
* @param provide
|
|
69
|
+
* @param useFactory
|
|
70
|
+
* @returns
|
|
71
|
+
*/
|
|
72
|
+
function appFirestoreModuleMetadata(config) {
|
|
73
|
+
var _a, _b, _c;
|
|
74
|
+
return {
|
|
75
|
+
imports: [FirebaseServerFirestoreContextModule, ...((_a = config.imports) !== null && _a !== void 0 ? _a : [])],
|
|
76
|
+
exports: [FirebaseServerFirestoreContextModule, config.provide, ...((_b = config.exports) !== null && _b !== void 0 ? _b : [])],
|
|
77
|
+
providers: [...provideAppFirestoreCollections(config), ...((_c = config.providers) !== null && _c !== void 0 ? _c : [])]
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
exports.appFirestoreModuleMetadata = appFirestoreModuleMetadata;
|
|
81
|
+
//# sourceMappingURL=firestore.nest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firestore.nest.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/firestore.nest.ts"],"names":[],"mappings":";;;;AACA,2CAAkF;AAGlF,sDAA4E;AAC5E,6DAA+D;AAE/D,eAAe;AACf;;GAEG;AACU,QAAA,wBAAwB,GAAmB,0BAA0B,CAAC;AAEnF;;GAEG;AACU,QAAA,gCAAgC,GAAmB,kCAAkC,CAAC;AAEnG;;GAEG;AASH,IAAa,6BAA6B,GAA1C,MAAa,6BAA6B;CAAI,CAAA;AAAjC,6BAA6B;IARzC,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC;gBACV,OAAO,EAAE,gCAAwB;gBACjC,UAAU,EAAE,CAAC,GAAkB,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE;gBACnD,MAAM,EAAE,CAAC,kCAAkB,CAAC;aAC7B,CAAC;QACF,OAAO,EAAE,CAAC,gCAAwB,CAAC;KACpC,CAAC;GACW,6BAA6B,CAAI;AAAjC,sEAA6B;AAE1C;;GAEG;AAUH,IAAa,oCAAoC,GAAjD,MAAa,oCAAoC;CAAI,CAAA;AAAxC,oCAAoC;IAThD,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,6BAA6B,CAAC;QACxC,SAAS,EAAE,CAAC;gBACV,OAAO,EAAE,wCAAgC;gBACzC,UAAU,EAAE,8CAAkC;gBAC9C,MAAM,EAAE,CAAC,gCAAwB,CAAC;aACnC,CAAC;QACF,OAAO,EAAE,CAAC,6BAA6B,EAAE,wCAAgC,CAAC;KAC3E,CAAC;GACW,oCAAoC,CAAI;AAAxC,oFAAoC;AAUjD;;;;;;GAMG;AACH,SAAgB,8BAA8B,CAAI,EAAE,OAAO,EAAE,UAAU,EAA2C;IAChH,OAAO,CAAC;YACN,OAAO;YACP,UAAU;YACV,MAAM,EAAE,CAAC,wCAAgC,CAAC;SAC3C,CAAC,CAAC;AACL,CAAC;AAND,wEAMC;AAKD;;;;;;GAMG;AACH,SAAgB,0BAA0B,CAAI,MAAkD;;IAC9F,OAAO;QACL,OAAO,EAAE,CAAC,oCAAoC,EAAE,GAAG,CAAC,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,CAAC,oCAAoC,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC;QAC1F,SAAS,EAAE,CAAC,GAAG,8BAA8B,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAA,MAAM,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAC;KACpF,CAAC;AACJ,CAAC;AAND,gEAMC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./driver"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./driver.accessor"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./driver.query"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./firestore"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./firestore.nest"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,4DAAkC;AAClC,yDAA+B;AAC/B,sDAA4B;AAC5B,2DAAiC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertContextHasAuth = void 0;
|
|
4
|
+
const context_1 = require("./context");
|
|
5
|
+
const error_1 = require("./error");
|
|
6
|
+
function assertContextHasAuth(context) {
|
|
7
|
+
if (!(0, context_1.isContextWithAuthData)(context)) {
|
|
8
|
+
throw (0, error_1.unauthenticatedContextHasNoUidError)();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.assertContextHasAuth = assertContextHasAuth;
|
|
12
|
+
//# sourceMappingURL=assert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/function/assert.ts"],"names":[],"mappings":";;;AACA,uCAAkD;AAClD,mCAA8D;AAE9D,SAAgB,oBAAoB,CAAC,OAAwC;IAC3E,IAAI,CAAC,IAAA,+BAAqB,EAAC,OAAO,CAAC,EAAE;QACnC,MAAM,IAAA,2CAAmC,GAAE,CAAC;KAC7C;AACH,CAAC;AAJD,oDAIC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as functions from 'firebase-functions';
|
|
2
|
+
export declare type CallableContextWithAuthData = Omit<functions.https.CallableContext, 'auth'> & Required<Pick<functions.https.CallableContext, 'auth'>>;
|
|
3
|
+
export declare function isContextWithAuthData(context: functions.https.CallableContext): context is CallableContextWithAuthData;
|
|
4
|
+
export declare function assertIsContextWithAuthData(context: functions.https.CallableContext): asserts context is CallableContextWithAuthData;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertIsContextWithAuthData = exports.isContextWithAuthData = void 0;
|
|
4
|
+
const error_1 = require("./error");
|
|
5
|
+
function isContextWithAuthData(context) {
|
|
6
|
+
var _a;
|
|
7
|
+
return Boolean((context.auth) !== null && ((_a = context.auth) === null || _a === void 0 ? void 0 : _a.uid));
|
|
8
|
+
}
|
|
9
|
+
exports.isContextWithAuthData = isContextWithAuthData;
|
|
10
|
+
function assertIsContextWithAuthData(context) {
|
|
11
|
+
if (!isContextWithAuthData(context)) {
|
|
12
|
+
throw (0, error_1.unauthenticatedContextHasNoAuthData)();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.assertIsContextWithAuthData = assertIsContextWithAuthData;
|
|
16
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/function/context.ts"],"names":[],"mappings":";;;AACA,mCAA8D;AAI9D,SAAgB,qBAAqB,CAAC,OAAwC;;IAC5E,OAAO,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,KAAI,MAAA,OAAO,CAAC,IAAI,0CAAE,GAAG,CAAA,CAAC,CAAC;AAC/D,CAAC;AAFD,sDAEC;AAED,SAAgB,2BAA2B,CAAC,OAAwC;IAClF,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE;QACnC,MAAM,IAAA,2CAAmC,GAAE,CAAC;KAC7C;AACH,CAAC;AAJD,kEAIC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as functions from 'firebase-functions';
|
|
2
|
+
export declare function unauthenticatedContextHasNoAuthData(): functions.auth.HttpsError;
|
|
3
|
+
export declare function unauthenticatedContextHasNoUidError(): functions.auth.HttpsError;
|
|
4
|
+
export declare function preconditionConflictError(message: string): functions.auth.HttpsError;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.preconditionConflictError = exports.unauthenticatedContextHasNoUidError = exports.unauthenticatedContextHasNoAuthData = void 0;
|
|
4
|
+
const functions = require("firebase-functions");
|
|
5
|
+
function unauthenticatedContextHasNoAuthData() {
|
|
6
|
+
return new functions.https.HttpsError('unauthenticated', 'expected authentication');
|
|
7
|
+
}
|
|
8
|
+
exports.unauthenticatedContextHasNoAuthData = unauthenticatedContextHasNoAuthData;
|
|
9
|
+
function unauthenticatedContextHasNoUidError() {
|
|
10
|
+
return new functions.https.HttpsError('unauthenticated', 'User has no uid.');
|
|
11
|
+
}
|
|
12
|
+
exports.unauthenticatedContextHasNoUidError = unauthenticatedContextHasNoUidError;
|
|
13
|
+
function preconditionConflictError(message) {
|
|
14
|
+
return new functions.https.HttpsError('failed-precondition', message);
|
|
15
|
+
}
|
|
16
|
+
exports.preconditionConflictError = preconditionConflictError;
|
|
17
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/function/error.ts"],"names":[],"mappings":";;;AAAA,gDAAgD;AAEhD,SAAgB,mCAAmC;IACjD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;AACtF,CAAC;AAFD,kFAEC;AAED,SAAgB,mCAAmC;IACjD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;AAC/E,CAAC;AAFD,kFAEC;AAED,SAAgB,yBAAyB,CAAC,OAAe;IACvD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC;AAFD,8DAEC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./context"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./assert"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./error"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./type"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/function/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,mDAAyB;AACzB,kDAAwB;AACxB,iDAAuB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/function/type.ts"],"names":[],"mappings":""}
|
package/src/lib/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./auth"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./firebase"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./firestore"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./function"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./nest"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/firebase-server/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,qDAA2B;AAC3B,sDAA4B;AAC5B,qDAA2B;AAC3B,iDAAuB"}
|