@dereekb/firebase 7.13.0 → 7.15.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 +27 -0
- package/package.json +5 -5
- package/src/lib/client/firestore/driver.accessor.batch.d.ts +1 -0
- package/src/lib/client/firestore/driver.accessor.batch.js +4 -0
- package/src/lib/client/firestore/driver.accessor.batch.js.map +1 -1
- package/src/lib/client/firestore/driver.accessor.create.d.ts +3 -0
- package/src/lib/client/firestore/driver.accessor.create.js +17 -0
- package/src/lib/client/firestore/driver.accessor.create.js.map +1 -0
- package/src/lib/client/firestore/driver.accessor.default.d.ts +1 -0
- package/src/lib/client/firestore/driver.accessor.default.js +4 -0
- package/src/lib/client/firestore/driver.accessor.default.js.map +1 -1
- package/src/lib/client/firestore/driver.accessor.transaction.d.ts +1 -0
- package/src/lib/client/firestore/driver.accessor.transaction.js +4 -0
- package/src/lib/client/firestore/driver.accessor.transaction.js.map +1 -1
- package/src/lib/client/function/model.function.factory.js +3 -3
- package/src/lib/client/function/model.function.factory.js.map +1 -1
- package/src/lib/common/auth/auth.context.d.ts +0 -12
- package/src/lib/common/auth/auth.context.js.map +1 -1
- package/src/lib/common/firestore/accessor/accessor.d.ts +4 -0
- package/src/lib/common/firestore/accessor/accessor.js.map +1 -1
- package/src/lib/common/firestore/accessor/accessor.wrap.d.ts +1 -0
- package/src/lib/common/firestore/accessor/accessor.wrap.js +3 -0
- package/src/lib/common/firestore/accessor/accessor.wrap.js.map +1 -1
- package/src/lib/common/firestore/accessor/document.d.ts +2 -17
- package/src/lib/common/firestore/accessor/document.js +12 -5
- package/src/lib/common/firestore/accessor/document.js.map +1 -1
- package/src/lib/common/firestore/driver/accessor.d.ts +8 -0
- package/src/lib/common/model/function.d.ts +9 -1
- package/src/lib/common/model/function.js +15 -1
- package/src/lib/common/model/function.js.map +1 -1
- package/src/lib/common/model/permission/permission.service.grant.d.ts +15 -15
- package/src/lib/common/model/permission/permission.service.grant.js +31 -28
- package/src/lib/common/model/permission/permission.service.grant.js.map +1 -1
- package/test/CHANGELOG.md +22 -0
- package/test/package.json +7 -7
- package/test/src/lib/common/firestore.js +2 -1
- package/test/src/lib/common/firestore.js.map +1 -1
- package/test/src/lib/common/firestore.mock.item.js +9 -0
- package/test/src/lib/common/firestore.mock.item.js.map +1 -1
- package/test/src/lib/common/test.driver.accessor.js +41 -9
- package/test/src/lib/common/test.driver.accessor.js.map +1 -1
- package/test/src/lib/common/test.driver.query.js +4 -4
- package/test/src/lib/common/test.driver.query.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
# [7.15.0](https://github.com/dereekb/dbx-components/compare/v7.14.0-dev...v7.15.0) (2022-06-16)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* added create to FirestoreDocumentDataAccessor ([9211975](https://github.com/dereekb/dbx-components/commit/921197542b80e6fd98245349c9cee98126d6c75b))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [7.14.0](https://github.com/dereekb/dbx-components/compare/v7.13.1-dev...v7.14.0) (2022-06-15)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* added firestoreDocumentAccessor path validation ([b82fad1](https://github.com/dereekb/dbx-components/commit/b82fad123728cc9feb9ca450e9418467b6805f23))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## [7.13.1](https://github.com/dereekb/dbx-components/compare/v7.13.0-dev...v7.13.1) (2022-06-15)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* fixed issue with permission.service.grant.ts declaration order ([b607404](https://github.com/dereekb/dbx-components/commit/b6074041cfeb69b9d17c39a4923fcae742defbab))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
5
32
|
# [7.13.0](https://github.com/dereekb/dbx-components/compare/v7.12.0-dev...v7.13.0) (2022-06-14)
|
|
6
33
|
|
|
7
34
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.15.0",
|
|
4
4
|
"devDependencies": {
|
|
5
5
|
"@firebase/rules-unit-testing": "^2.0.0"
|
|
6
6
|
},
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
"rxjs": "^7.0.0",
|
|
24
24
|
"rxfire": "^6.0.3",
|
|
25
25
|
"firebase": "^9.8.0",
|
|
26
|
-
"@dereekb/util": "7.
|
|
26
|
+
"@dereekb/util": "7.15.0",
|
|
27
27
|
"make-error": "^1.3.0",
|
|
28
28
|
"ts-essentials": "^9.1.2",
|
|
29
29
|
"extra-set": "^2.2.11",
|
|
30
|
-
"@dereekb/rxjs": "7.
|
|
30
|
+
"@dereekb/rxjs": "7.15.0",
|
|
31
31
|
"ms": "^3.0.0-canary.1",
|
|
32
|
-
"@dereekb/model": "7.
|
|
32
|
+
"@dereekb/model": "7.15.0",
|
|
33
33
|
"class-transformer": "^0.5.1",
|
|
34
34
|
"class-validator": "^0.13.2",
|
|
35
|
-
"@dereekb/date": "7.
|
|
35
|
+
"@dereekb/date": "7.15.0",
|
|
36
36
|
"date-fns": "^2.28.0",
|
|
37
37
|
"date-fns-tz": "^1.3.0",
|
|
38
38
|
"rrule": "2.7.0",
|
|
@@ -9,6 +9,7 @@ export declare class WriteBatchFirestoreDocumentDataAccessor<T> implements Fires
|
|
|
9
9
|
readonly documentRef: DocumentReference<T>;
|
|
10
10
|
constructor(batch: FirebaseFirestoreWriteBatch, documentRef: DocumentReference<T>);
|
|
11
11
|
stream(): Observable<DocumentSnapshot<T>>;
|
|
12
|
+
create(data: WithFieldValue<T>): Promise<void>;
|
|
12
13
|
exists(): Promise<boolean>;
|
|
13
14
|
get(): Promise<DocumentSnapshot<T>>;
|
|
14
15
|
delete(): Promise<void>;
|
|
@@ -4,6 +4,7 @@ exports.writeBatchDocumentContext = exports.WriteBatchFirestoreDocumentContext =
|
|
|
4
4
|
const firestore_1 = require("@firebase/firestore");
|
|
5
5
|
const rxjs_1 = require("rxjs");
|
|
6
6
|
const firestore_2 = require("../../common/firestore");
|
|
7
|
+
const driver_accessor_create_1 = require("./driver.accessor.create");
|
|
7
8
|
// MARK: Accessor
|
|
8
9
|
/**
|
|
9
10
|
* FirestoreDocumentDataAccessor implementation for a batch.
|
|
@@ -16,6 +17,9 @@ class WriteBatchFirestoreDocumentDataAccessor {
|
|
|
16
17
|
stream() {
|
|
17
18
|
return (0, rxjs_1.from)(this.get());
|
|
18
19
|
}
|
|
20
|
+
create(data) {
|
|
21
|
+
return (0, driver_accessor_create_1.createWithAccessor)(this)(data);
|
|
22
|
+
}
|
|
19
23
|
exists() {
|
|
20
24
|
return this.get().then((x) => x.exists());
|
|
21
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.accessor.batch.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/firestore/driver.accessor.batch.ts"],"names":[],"mappings":";;;AAAA,mDAAgK;AAChK,+BAAwC;AACxC,sDAA6M;
|
|
1
|
+
{"version":3,"file":"driver.accessor.batch.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/firestore/driver.accessor.batch.ts"],"names":[],"mappings":";;;AAAA,mDAAgK;AAChK,+BAAwC;AACxC,sDAA6M;AAC7M,qEAA8D;AAE9D,iBAAiB;AACjB;;GAEG;AACH,MAAa,uCAAuC;IAClD,YAAqB,KAAkC,EAAW,WAAiC;QAA9E,UAAK,GAAL,KAAK,CAA6B;QAAW,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;IAEvG,MAAM;QACJ,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,OAAO,IAAA,2CAAkB,EAAC,IAAI,CAAC,CAAC,IAAI,CAAkB,CAAC;IACzD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG;QACD,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,IAAuB,EAAE,OAAoB;QAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,OAAqB,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAyB;QAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAA8B,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAjCD,0FAiCC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAI,UAAuC;IAClF,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,uCAAuC,CAAC,UAAU,EAAE,GAAG,CAAC;KACzG,CAAC;AACJ,CAAC;AAJD,8DAIC;AAED,gBAAgB;AAChB,MAAa,kCAAkC;IAI7C,YAAqB,KAAkC;QAAlC,UAAK,GAAL,KAAK,CAA6B;QAH9C,gBAAW,GAAG,wCAA4B,CAAC,KAAK,CAAC;QACjD,oBAAe,GAAG,yBAAyB,CAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAEV,CAAC;CAC5D;AALD,gFAKC;AAED,SAAgB,yBAAyB,CAAI,KAAkC;IAC7E,OAAO,IAAI,kCAAkC,CAAI,KAAK,CAAC,CAAC;AAC1D,CAAC;AAFD,8DAEC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { FirestoreDocumentDataAccessor } from '../../common/firestore/accessor/accessor';
|
|
2
|
+
import { WithFieldValue, WriteResult } from '../../common/firestore/types';
|
|
3
|
+
export declare function createWithAccessor<T>(accessor: FirestoreDocumentDataAccessor<T>): (data: WithFieldValue<T>) => Promise<void | WriteResult>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createWithAccessor = void 0;
|
|
4
|
+
function createWithAccessor(accessor) {
|
|
5
|
+
return (data) => {
|
|
6
|
+
return accessor.exists().then((exists) => {
|
|
7
|
+
if (exists) {
|
|
8
|
+
throw new Error('document exists');
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return accessor.set(data);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
exports.createWithAccessor = createWithAccessor;
|
|
17
|
+
//# sourceMappingURL=driver.accessor.create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.accessor.create.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/firestore/driver.accessor.create.ts"],"names":[],"mappings":";;;AAGA,SAAgB,kBAAkB,CAAI,QAA0C;IAC9E,OAAO,CAAC,IAAuB,EAAE,EAAE;QACjC,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,IAAI,MAAM,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;aACpC;iBAAM;gBACL,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC3B;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAVD,gDAUC"}
|
|
@@ -5,6 +5,7 @@ export declare class DefaultFirestoreDocumentDataAccessor<T> implements Firestor
|
|
|
5
5
|
readonly documentRef: DocumentReference<T>;
|
|
6
6
|
constructor(documentRef: DocumentReference<T>);
|
|
7
7
|
stream(): Observable<DocumentSnapshot<T>>;
|
|
8
|
+
create(data: WithFieldValue<T>): Promise<void>;
|
|
8
9
|
exists(): Promise<boolean>;
|
|
9
10
|
get(): Promise<DocumentSnapshot<T>>;
|
|
10
11
|
delete(): Promise<void>;
|
|
@@ -4,6 +4,7 @@ exports.defaultFirestoreDocumentContext = exports.defaultFirestoreAccessorFactor
|
|
|
4
4
|
const firestore_1 = require("@firebase/firestore");
|
|
5
5
|
const firestore_2 = require("rxfire/firestore");
|
|
6
6
|
const firestore_3 = require("../../common/firestore");
|
|
7
|
+
const driver_accessor_create_1 = require("./driver.accessor.create");
|
|
7
8
|
// MARK: Accessor
|
|
8
9
|
class DefaultFirestoreDocumentDataAccessor {
|
|
9
10
|
constructor(documentRef) {
|
|
@@ -12,6 +13,9 @@ class DefaultFirestoreDocumentDataAccessor {
|
|
|
12
13
|
stream() {
|
|
13
14
|
return (0, firestore_2.fromRef)(this.documentRef);
|
|
14
15
|
}
|
|
16
|
+
create(data) {
|
|
17
|
+
return (0, driver_accessor_create_1.createWithAccessor)(this)(data);
|
|
18
|
+
}
|
|
15
19
|
exists() {
|
|
16
20
|
return this.get().then((x) => x.exists());
|
|
17
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.accessor.default.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/firestore/driver.accessor.default.ts"],"names":[],"mappings":";;;AAAA,mDAA4I;AAC5I,gDAA2C;AAE3C,sDAAiL;
|
|
1
|
+
{"version":3,"file":"driver.accessor.default.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/firestore/driver.accessor.default.ts"],"names":[],"mappings":";;;AAAA,mDAA4I;AAC5I,gDAA2C;AAE3C,sDAAiL;AACjL,qEAA8D;AAE9D,iBAAiB;AACjB,MAAa,oCAAoC;IAC/C,YAAqB,WAAiC;QAAjC,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;IAE1D,MAAM;QACJ,OAAO,IAAA,mBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,OAAO,IAAA,2CAAkB,EAAC,IAAI,CAAC,CAAC,IAAI,CAAkB,CAAC;IACzD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG;QACD,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,IAAA,qBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,GAAG,CAAC,IAAuB,EAAE,OAAoB;QAC/C,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,OAAqB,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,IAAyB;QAC9B,OAAO,IAAA,qBAAS,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF;AA9BD,oFA8BC;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,wCAA4B,CAAC,IAAI;QAC9C,eAAe,EAAE,+BAA+B,EAAK;KACtD,CAAC;AACJ,CAAC;AALD,0EAKC"}
|
|
@@ -9,6 +9,7 @@ export declare class TransactionFirestoreDocumentDataAccessor<T> implements Fire
|
|
|
9
9
|
readonly documentRef: DocumentReference<T>;
|
|
10
10
|
constructor(transaction: FirebaseFirestoreTransaction, documentRef: DocumentReference<T>);
|
|
11
11
|
stream(): Observable<DocumentSnapshot<T>>;
|
|
12
|
+
create(data: WithFieldValue<T>): Promise<void>;
|
|
12
13
|
exists(): Promise<boolean>;
|
|
13
14
|
get(): Promise<DocumentSnapshot<T>>;
|
|
14
15
|
delete(): Promise<void>;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.transactionDocumentContext = exports.TransactionFirestoreDocumentContext = exports.transactionAccessorFactory = exports.TransactionFirestoreDocumentDataAccessor = void 0;
|
|
4
4
|
const rxjs_1 = require("rxjs");
|
|
5
5
|
const firestore_1 = require("../../common/firestore");
|
|
6
|
+
const driver_accessor_create_1 = require("./driver.accessor.create");
|
|
6
7
|
// MARK: Accessor
|
|
7
8
|
/**
|
|
8
9
|
* FirestoreDocumentDataAccessor implementation for a transaction.
|
|
@@ -15,6 +16,9 @@ class TransactionFirestoreDocumentDataAccessor {
|
|
|
15
16
|
stream() {
|
|
16
17
|
return (0, rxjs_1.from)(this.get());
|
|
17
18
|
}
|
|
19
|
+
create(data) {
|
|
20
|
+
return (0, driver_accessor_create_1.createWithAccessor)(this)(data);
|
|
21
|
+
}
|
|
18
22
|
exists() {
|
|
19
23
|
return this.get().then((x) => x.exists());
|
|
20
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.accessor.transaction.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/firestore/driver.accessor.transaction.ts"],"names":[],"mappings":";;;AACA,+BAAwC;AACxC,sDAAiL;
|
|
1
|
+
{"version":3,"file":"driver.accessor.transaction.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/firestore/driver.accessor.transaction.ts"],"names":[],"mappings":";;;AACA,+BAAwC;AACxC,sDAAiL;AACjL,qEAA8D;AAE9D,iBAAiB;AACjB;;GAEG;AACH,MAAa,wCAAwC;IACnD,YAAqB,WAAyC,EAAW,WAAiC;QAArF,gBAAW,GAAX,WAAW,CAA8B;QAAW,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;IAE9G,MAAM;QACJ,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,OAAO,IAAA,2CAAkB,EAAC,IAAI,CAAC,CAAC,IAAI,CAAkB,CAAC;IACzD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,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,IAAI,EAAE,OAAqB,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAyB;QAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAjCD,4FAiCC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAI,WAAyC;IACrF,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;IAI9C,YAAqB,WAAyC;QAAzC,gBAAW,GAAX,WAAW,CAA8B;QAHrD,gBAAW,GAAG,wCAA4B,CAAC,WAAW,CAAC;QACvD,oBAAe,GAAG,0BAA0B,CAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAEV,CAAC;CACnE;AALD,kFAKC;AAED,SAAgB,0BAA0B,CAAI,WAAyC;IACrF,OAAO,IAAI,mCAAmC,CAAI,WAAW,CAAC,CAAC;AACjE,CAAC;AAFD,gEAEC"}
|
|
@@ -21,13 +21,13 @@ function modelFirebaseFunctionMapFactory(configMap, crudConfigMap) {
|
|
|
21
21
|
const crudFunctions = new Set(config);
|
|
22
22
|
const modelTypeCruds = {};
|
|
23
23
|
if (crudFunctions.has('create')) {
|
|
24
|
-
modelTypeCruds[`create${modelTypeSuffix}`] = (0, function_callable_1.mapHttpsCallable)(_createFn(), { mapInput: (data) => (
|
|
24
|
+
modelTypeCruds[`create${modelTypeSuffix}`] = (0, function_callable_1.mapHttpsCallable)(_createFn(), { mapInput: (data) => (0, common_1.onCallTypedModelParams)(modelType, data) });
|
|
25
25
|
}
|
|
26
26
|
if (crudFunctions.has('update')) {
|
|
27
|
-
modelTypeCruds[`update${modelTypeSuffix}`] = (0, function_callable_1.mapHttpsCallable)(_updateFn(), { mapInput: (data) => (
|
|
27
|
+
modelTypeCruds[`update${modelTypeSuffix}`] = (0, function_callable_1.mapHttpsCallable)(_updateFn(), { mapInput: (data) => (0, common_1.onCallTypedModelParams)(modelType, data) });
|
|
28
28
|
}
|
|
29
29
|
if (crudFunctions.has('delete')) {
|
|
30
|
-
modelTypeCruds[`delete${modelTypeSuffix}`] = (0, function_callable_1.mapHttpsCallable)(_deleteFn(), { mapInput: (data) => (
|
|
30
|
+
modelTypeCruds[`delete${modelTypeSuffix}`] = (0, function_callable_1.mapHttpsCallable)(_deleteFn(), { mapInput: (data) => (0, common_1.onCallTypedModelParams)(modelType, data) });
|
|
31
31
|
}
|
|
32
32
|
// tslint:disable-next-line
|
|
33
33
|
x[modelType] = modelTypeCruds;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.function.factory.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/function/model.function.factory.ts"],"names":[],"mappings":";;;AAAA,gDAA+D;AAC/D,wCAAqF;AACrF,kDAA8D;AAE9D,
|
|
1
|
+
{"version":3,"file":"model.function.factory.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/function/model.function.factory.ts"],"names":[],"mappings":";;;AAAA,gDAA+D;AAC/D,wCAAqF;AACrF,kDAA8D;AAE9D,yCAA2Q;AAE3Q,2DAAuD;AAwDvD,SAAgB,+BAA+B,CAAgF,SAA2C,EAAE,aAA4E;IACtP,MAAM,eAAe,GAAG,IAAA,qCAA0B,EAAC,SAAS,CAAC,CAAC;IAE9D,OAAO,CAAC,iBAA4B,EAAE,EAAE;QACtC,MAAM,WAAW,GAA2B,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAE/E,MAAM,SAAS,GAAG,IAAA,mBAAY,EAAC,GAAG,EAAE,CAAC,IAAA,yBAAa,EAAC,iBAAiB,EAAE,sCAA6B,CAAC,CAAC,CAAC;QACtG,MAAM,SAAS,GAAG,IAAA,mBAAY,EAAC,GAAG,EAAE,CAAC,IAAA,yBAAa,EAAC,iBAAiB,EAAE,sCAA6B,CAAC,CAAC,CAAC;QACtG,MAAM,SAAS,GAAG,IAAA,mBAAY,EAAC,GAAG,EAAE,CAAC,IAAA,yBAAa,EAAC,iBAAiB,EAAE,sCAA6B,CAAC,CAAC,CAAC;QAEtG,MAAM,MAAM,GAAG,IAAA,YAAK,EAAiC;YACnD,IAAI,EAAE,WAAwD;YAC9D,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;gBACX,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE;oBAC5D,MAAM,eAAe,GAAG,IAAA,4BAAqB,EAAC,SAAS,CAAC,CAAC;oBACzD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAkB,CAAC,CAAC;oBAClD,MAAM,cAAc,GAAG,EAAE,CAAC;oBAE1B,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;wBAC9B,cAAsB,CAAC,SAAS,eAAe,EAAE,CAAC,GAAG,IAAA,oCAAgB,EAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,+BAAsB,EAAC,SAAS,EAAE,IAAI,CAA4B,EAAE,CAAC,CAAC;qBACjL;oBAED,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;wBAC9B,cAAsB,CAAC,SAAS,eAAe,EAAE,CAAC,GAAG,IAAA,oCAAgB,EAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,+BAAsB,EAAC,SAAS,EAAE,IAAI,CAA4B,EAAE,CAAC,CAAC;qBACjL;oBAED,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;wBAC9B,cAAsB,CAAC,SAAS,eAAe,EAAE,CAAC,GAAG,IAAA,oCAAgB,EAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,+BAAsB,EAAC,SAAS,EAAE,IAAI,CAA4B,EAAE,CAAC,CAAC;qBACjL;oBAED,2BAA2B;oBAC1B,CAAS,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC;gBACzC,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAtCD,0EAsCC"}
|
|
@@ -26,18 +26,6 @@ export interface FirebaseAuthContextInfo {
|
|
|
26
26
|
* The auth roles provided by the token in this context.
|
|
27
27
|
*/
|
|
28
28
|
getAuthRoles(): AuthRoleSet;
|
|
29
|
-
/**
|
|
30
|
-
* Retrieves the claims in the context.
|
|
31
|
-
*
|
|
32
|
-
* @deprecated Claims are now available synchronously.
|
|
33
|
-
*/
|
|
34
|
-
loadClaims<T extends AuthClaimsObject = AuthClaimsObject>(): Promise<AuthClaims<T>>;
|
|
35
|
-
/**
|
|
36
|
-
* The auth roles provided by the token in this context.
|
|
37
|
-
*
|
|
38
|
-
* @deprecated Auth role set is now available synchronously.
|
|
39
|
-
*/
|
|
40
|
-
loadAuthRoles(): Promise<AuthRoleSet>;
|
|
41
29
|
/**
|
|
42
30
|
* The token in the context.
|
|
43
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.context.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/auth/auth.context.ts"],"names":[],"mappings":";;;AAAA,wCAAiI;
|
|
1
|
+
{"version":3,"file":"auth.context.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/auth/auth.context.ts"],"names":[],"mappings":";;;AAAA,wCAAiI;AA0CpH,QAAA,cAAc,GAAoE,IAAA,wBAAiB,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnH,QAAA,iBAAiB,GAA+D,IAAA,wBAAiB,EAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,IAAI,0CAAE,GAAG,CAAA,EAAA,CAAC,CAAC"}
|
|
@@ -16,6 +16,10 @@ export interface FirestoreDocumentDataAccessor<T, D = DocumentData> extends Docu
|
|
|
16
16
|
* Returns a database stream of DocumentSnapshots.
|
|
17
17
|
*/
|
|
18
18
|
stream(): Observable<DocumentSnapshot<T>>;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a document if it does not exist.
|
|
21
|
+
*/
|
|
22
|
+
create(data: WithFieldValue<T>): Promise<WriteResult | void>;
|
|
19
23
|
/**
|
|
20
24
|
* Returns the current snapshot.
|
|
21
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessor.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/accessor.ts"],"names":[],"mappings":";;;AAAA,wCAA4C;AAC5C,wCAA6D;AAE7D,+BAAyD;
|
|
1
|
+
{"version":3,"file":"accessor.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/accessor.ts"],"names":[],"mappings":";;;AAAA,wCAA4C;AAC5C,wCAA6D;AAE7D,+BAAyD;AAoEzD,gBAAgB;AAChB;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CAAI,MAAuC,EAAE,OAAyB;IAC1G,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,IAAA,kBAAW,GAAE,CAAC,CAAC;AAClE,CAAC;AAFD,wDAEC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAI,OAAyB;IAC9D,OAAO,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,CAAC;AAFD,kDAEC;AAcD,SAAgB,6BAA6B,CAAI,QAA0C;IACzF,OAAO,CAAC,IAAgB,EAAE,EAAE;QAC1B,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,IAAI,MAAM,EAAE;gBACV,MAAM,MAAM,GAAG,IAAA,4BAAqB,EAAC,IAAI,CAAC,CAAC;gBAC3C,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;aAC9C;iBAAM;gBACL,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAyB,CAAC,CAAC;aAChD;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAXD,sEAWC"}
|
|
@@ -11,6 +11,7 @@ export declare abstract class AbstractFirestoreDocumentDataAccessorWrapper<T, D
|
|
|
11
11
|
constructor(accessor: FirestoreDocumentDataAccessor<T, D>);
|
|
12
12
|
get documentRef(): DocumentReference<T>;
|
|
13
13
|
stream(): Observable<DocumentSnapshot<T>>;
|
|
14
|
+
create(data: WithFieldValue<T>): Promise<WriteResult | void>;
|
|
14
15
|
get(): Promise<DocumentSnapshot<T>>;
|
|
15
16
|
exists(): Promise<boolean>;
|
|
16
17
|
delete(params?: FirestoreDocumentDeleteParams): Promise<void | WriteResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessor.wrap.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/accessor.wrap.ts"],"names":[],"mappings":";;;AAIA,yBAAyB;AACzB;;;;GAIG;AACH,MAAsB,4CAA4C;IAChE,YAAqB,QAA6C;QAA7C,aAAQ,GAAR,QAAQ,CAAqC;IAAG,CAAC;IAEtE,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,MAAsC;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAID,GAAG,CAAC,IAAkD,EAAE,OAAoB;QAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAqB,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,MAAsC;QAChE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"accessor.wrap.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/accessor.wrap.ts"],"names":[],"mappings":";;;AAIA,yBAAyB;AACzB;;;;GAIG;AACH,MAAsB,4CAA4C;IAChE,YAAqB,QAA6C;QAA7C,aAAQ,GAAR,QAAQ,CAAqC;IAAG,CAAC;IAEtE,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,MAAsC;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAID,GAAG,CAAC,IAAkD,EAAE,OAAoB;QAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAqB,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,MAAsC;QAChE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;CACF;AApCD,oGAoCC;AAMD,SAAgB,gCAAgC,CAAsB,IAAqD;IACzH,OAAO,CAAC,KAAiD,EAAE,EAAE,CAAC,CAAC;QAC7D,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;KACnD,CAAC,CAAC;AACL,CAAC;AAJD,4EAIC"}
|
|
@@ -41,7 +41,7 @@ export interface LimitedFirestoreDocumentAccessorRef<T, D extends FirestoreDocum
|
|
|
41
41
|
readonly documentAccessor: A;
|
|
42
42
|
}
|
|
43
43
|
export declare type FirestoreDocumentAccessorRef<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> = LimitedFirestoreDocumentAccessorRef<T, D, FirestoreDocumentAccessor<T, D>>;
|
|
44
|
-
export interface LimitedFirestoreDocumentAccessor<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends FirestoreAccessorDriverRef {
|
|
44
|
+
export interface LimitedFirestoreDocumentAccessor<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends FirestoreModelIdentityRef, FirestoreAccessorDriverRef {
|
|
45
45
|
readonly databaseContext: FirestoreDocumentContext<T>;
|
|
46
46
|
/**
|
|
47
47
|
* Loads a document from the datastore.
|
|
@@ -87,21 +87,6 @@ export interface FirestoreDocumentAccessor<T, D extends FirestoreDocument<T> = F
|
|
|
87
87
|
* @param pathSegments
|
|
88
88
|
*/
|
|
89
89
|
documentRefForId(id: FirestoreModelId): DocumentReference<T>;
|
|
90
|
-
/**
|
|
91
|
-
* Loads a document from the datastore with the given id/path.
|
|
92
|
-
*
|
|
93
|
-
* @deprecated use loadDocumentForId instead. Will be removed in the future.
|
|
94
|
-
* @param ref
|
|
95
|
-
*/
|
|
96
|
-
loadDocumentForPath(id: FirestoreModelId): D;
|
|
97
|
-
/**
|
|
98
|
-
* Creates a document ref relative to the current context and given the input path.
|
|
99
|
-
*
|
|
100
|
-
* @deprecated use documentRefForId instead. Will be removed in the future.
|
|
101
|
-
* @param path
|
|
102
|
-
* @param pathSegments
|
|
103
|
-
*/
|
|
104
|
-
documentRefForPath(id: FirestoreModelId): DocumentReference<T>;
|
|
105
90
|
}
|
|
106
91
|
/**
|
|
107
92
|
* Used to generate a FirestoreDocument from an input FirestoreDocumentDataAccessor instance.
|
|
@@ -125,7 +110,7 @@ export interface LimitedFirestoreDocumentAccessorFactory<T, D extends FirestoreD
|
|
|
125
110
|
/**
|
|
126
111
|
* FirestoreDocumentAccessor configuration.
|
|
127
112
|
*/
|
|
128
|
-
export interface LimitedFirestoreDocumentAccessorFactoryConfig<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends FirestoreContextReference, FirestoreAccessorDriverRef {
|
|
113
|
+
export interface LimitedFirestoreDocumentAccessorFactoryConfig<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends FirestoreModelIdentityRef, FirestoreContextReference, FirestoreAccessorDriverRef {
|
|
129
114
|
/**
|
|
130
115
|
* Optional InterceptAccessorFactoryFunction to intercept/return a modified accessor factory.
|
|
131
116
|
*/
|
|
@@ -48,22 +48,32 @@ class AbstractFirestoreDocument {
|
|
|
48
48
|
}
|
|
49
49
|
exports.AbstractFirestoreDocument = AbstractFirestoreDocument;
|
|
50
50
|
function limitedFirestoreDocumentAccessorFactory(config) {
|
|
51
|
-
const { firestoreContext, firestoreAccessorDriver, makeDocument, accessorFactory: interceptAccessorFactory } = config;
|
|
51
|
+
const { firestoreContext, firestoreAccessorDriver, makeDocument, accessorFactory: interceptAccessorFactory, modelIdentity } = config;
|
|
52
|
+
const expectedCollectionName = firestoreAccessorDriver.fuzzedPathForPath ? firestoreAccessorDriver.fuzzedPathForPath(modelIdentity.collection) : modelIdentity.collection;
|
|
52
53
|
return (context) => {
|
|
53
54
|
const databaseContext = context !== null && context !== void 0 ? context : config.firestoreAccessorDriver.defaultContextFactory();
|
|
54
55
|
const dataAccessorFactory = interceptAccessorFactory ? interceptAccessorFactory(databaseContext.accessorFactory) : databaseContext.accessorFactory;
|
|
55
56
|
function loadDocument(ref) {
|
|
57
|
+
if (!ref) {
|
|
58
|
+
throw new Error('ref must be defined.');
|
|
59
|
+
}
|
|
56
60
|
const accessor = dataAccessorFactory.accessorFor(ref);
|
|
57
61
|
return makeDocument(accessor, documentAccessor);
|
|
58
62
|
}
|
|
59
63
|
function documentRefForKey(fullPath) {
|
|
60
|
-
|
|
64
|
+
var _a;
|
|
65
|
+
const ref = firestoreAccessorDriver.docAtPath(firestoreContext.firestore, fullPath);
|
|
66
|
+
if (((_a = ref.parent) === null || _a === void 0 ? void 0 : _a.id) !== expectedCollectionName) {
|
|
67
|
+
throw new Error(`unexpected key/path "${fullPath}" for expected type "${modelIdentity.collection}"/"${modelIdentity.model}".`);
|
|
68
|
+
}
|
|
69
|
+
return ref;
|
|
61
70
|
}
|
|
62
71
|
function loadDocumentForKey(fullPath) {
|
|
63
72
|
const ref = documentRefForKey(fullPath);
|
|
64
73
|
return loadDocument(ref);
|
|
65
74
|
}
|
|
66
75
|
const documentAccessor = {
|
|
76
|
+
modelIdentity,
|
|
67
77
|
loadDocumentFrom(document) {
|
|
68
78
|
return loadDocument(document.documentRef);
|
|
69
79
|
},
|
|
@@ -99,9 +109,6 @@ function firestoreDocumentAccessorFactory(config) {
|
|
|
99
109
|
}
|
|
100
110
|
return documentAccessor.loadDocument(documentRefForId(path, ...pathSegments));
|
|
101
111
|
};
|
|
102
|
-
// TODO: Remove later
|
|
103
|
-
x.documentRefForPath = x.documentRefForId;
|
|
104
|
-
x.loadDocumentForPath = x.loadDocumentForId;
|
|
105
112
|
}
|
|
106
113
|
});
|
|
107
114
|
return documentAccessor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/document.ts"],"names":[],"mappings":";AAAA,mDAAmD;AACnD,0GAA0G;;;AAM1G,yCAAkH;AAGlH,
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FirestoreCollectionName } from './../collection/collection';
|
|
1
2
|
import { DocumentData, CollectionReference, CollectionGroup, DocumentReference, Firestore } from '../types';
|
|
2
3
|
import { DefaultFirestoreDocumentContextFactory } from '../accessor/context.default';
|
|
3
4
|
import { WriteBatchFirestoreDocumentContextFactory } from '../accessor/context.batch';
|
|
@@ -9,6 +10,7 @@ export declare type FirestoreAccessorDriverCollectionRefFunction = <T = Document
|
|
|
9
10
|
export declare type FirestoreAccessorDriverSubcollectionRefFunction = <T = DocumentData>(document: DocumentReference, path: string, ...pathSegments: string[]) => CollectionReference<T>;
|
|
10
11
|
export declare type FirestoreAccessorDriverDocumentRefFunction = <T = DocumentData>(collection: CollectionReference<T>, path?: string, ...pathSegments: string[]) => DocumentReference<T>;
|
|
11
12
|
export declare type FirestoreAccessorDriverFullPathDocumentRefFunction = <T = DocumentData>(firestore: Firestore, fullPath: string) => DocumentReference<T>;
|
|
13
|
+
export declare type FirestoreAccessorPathFuzzerFunction = (path: FirestoreCollectionName) => FirestoreCollectionName;
|
|
12
14
|
/**
|
|
13
15
|
* A driver to use for query functionality.
|
|
14
16
|
*/
|
|
@@ -21,6 +23,12 @@ export interface FirestoreAccessorDriver extends FirestoreTransactionFactoryDriv
|
|
|
21
23
|
readonly defaultContextFactory: DefaultFirestoreDocumentContextFactory;
|
|
22
24
|
readonly writeBatchContextFactory: WriteBatchFirestoreDocumentContextFactory;
|
|
23
25
|
readonly transactionContextFactory: TransactionFirestoreDocumentContextFactory;
|
|
26
|
+
/**
|
|
27
|
+
* Optional function that when made available communicates that paths are being fuzzed.
|
|
28
|
+
*
|
|
29
|
+
* This is usually only available within testing environments.
|
|
30
|
+
*/
|
|
31
|
+
readonly fuzzedPathForPath?: FirestoreAccessorPathFuzzerFunction;
|
|
24
32
|
}
|
|
25
33
|
/**
|
|
26
34
|
* Ref to a FirestoreAccessorDriver.
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { ArrayOrValue } from '@dereekb/util';
|
|
2
2
|
import { DocumentReferenceRef } from '../firestore/reference';
|
|
3
|
-
import { FirestoreModelKey, FirestoreModelNameRef } from '../firestore/collection/collection';
|
|
3
|
+
import { FirestoreModelKey, FirestoreModelName, FirestoreModelNameRef } from '../firestore/collection/collection';
|
|
4
4
|
export interface OnCallTypedModelParams<T = unknown> extends FirestoreModelNameRef {
|
|
5
5
|
data: T;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* Creates a OnCallTypedModelParams
|
|
9
|
+
*
|
|
10
|
+
* @param modelType
|
|
11
|
+
* @param data
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export declare function onCallTypedModelParams<T extends unknown>(modelType: FirestoreModelName, data: T): OnCallTypedModelParams<T>;
|
|
7
15
|
/**
|
|
8
16
|
* Key used on the front-end and backend that refers to a specific function for creating models.
|
|
9
17
|
*/
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.onCallCreateModelResult = exports.onCallCreateModelResultWithDocs = exports.DELETE_MODEL_APP_FUNCTION_KEY = exports.UPDATE_MODEL_APP_FUNCTION_KEY = exports.CREATE_MODEL_APP_FUNCTION_KEY = void 0;
|
|
3
|
+
exports.onCallCreateModelResult = exports.onCallCreateModelResultWithDocs = exports.DELETE_MODEL_APP_FUNCTION_KEY = exports.UPDATE_MODEL_APP_FUNCTION_KEY = exports.CREATE_MODEL_APP_FUNCTION_KEY = exports.onCallTypedModelParams = void 0;
|
|
4
4
|
const util_1 = require("@dereekb/util");
|
|
5
|
+
/**
|
|
6
|
+
* Creates a OnCallTypedModelParams
|
|
7
|
+
*
|
|
8
|
+
* @param modelType
|
|
9
|
+
* @param data
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
function onCallTypedModelParams(modelType, data) {
|
|
13
|
+
return {
|
|
14
|
+
modelType,
|
|
15
|
+
data
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.onCallTypedModelParams = onCallTypedModelParams;
|
|
5
19
|
/**
|
|
6
20
|
* Key used on the front-end and backend that refers to a specific function for creating models.
|
|
7
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/model/function.ts"],"names":[],"mappings":";;;AAAA,wCAAsD;AAQtD;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAI3D;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAG3D;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAY3D,SAAgB,+BAA+B,CAAC,MAAmD;IACjG,OAAO,uBAAuB,CAAC,IAAA,cAAO,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,CAAC;AAFD,0EAEC;AAED,SAAgB,uBAAuB,CAAC,SAA0C;IAChF,OAAO;QACL,SAAS,EAAE,IAAA,cAAO,EAAC,SAAS,CAAC;KAC9B,CAAC;AACJ,CAAC;AAJD,0DAIC"}
|
|
1
|
+
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/model/function.ts"],"names":[],"mappings":";;;AAAA,wCAAsD;AAQtD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAoB,SAA6B,EAAE,IAAO;IAC9F,OAAO;QACL,SAAS;QACT,IAAI;KACL,CAAC;AACJ,CAAC;AALD,wDAKC;AAED;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAI3D;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAG3D;;GAEG;AACU,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAY3D,SAAgB,+BAA+B,CAAC,MAAmD;IACjG,OAAO,uBAAuB,CAAC,IAAA,cAAO,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,CAAC;AAFD,0EAEC;AAED,SAAgB,uBAAuB,CAAC,SAA0C;IAChF,OAAO;QACL,SAAS,EAAE,IAAA,cAAO,EAAC,SAAS,CAAC;KAC9B,CAAC;AACJ,CAAC;AAJD,0DAIC"}
|
|
@@ -4,10 +4,12 @@ import { AsyncDecisionFunction, Getter, GetterOrValue, Maybe, PromiseOrValue } f
|
|
|
4
4
|
import { FirebaseModelContext } from '../context';
|
|
5
5
|
import { UserRelated } from '../../../model/user';
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* DecisionFunction for a FirebaseModelContext that checks if the current user is an admin.
|
|
8
|
+
*
|
|
9
|
+
* @param context
|
|
10
|
+
* @returns
|
|
8
11
|
*/
|
|
9
|
-
export declare const
|
|
10
|
-
export declare function grantModelRolesIfAdmin<R extends string = string>(context: FirebaseModelContext, rolesToGrantToAdmin: GetterOrValue<GrantedRoleMap<R>>, otherwise?: GrantRolesOtherwiseFunction<R>): PromiseOrValue<GrantedRoleMap<R>>;
|
|
12
|
+
export declare const isAdminInFirebaseModelContext: AsyncDecisionFunction<FirebaseModelContext>;
|
|
11
13
|
/**
|
|
12
14
|
* Convenience function that checks the input context if the user is an admin or not and grants pre-set admin roles if they are.
|
|
13
15
|
*
|
|
@@ -18,12 +20,10 @@ export declare function grantModelRolesIfAdmin<R extends string = string>(contex
|
|
|
18
20
|
*/
|
|
19
21
|
export declare function grantModelRolesIfAdminFunction<R extends string = string>(rolesToGrantToAdmin: GetterOrValue<GrantedRoleMap<R>>): GrantRolesIfFunction<FirebaseModelContext, R>;
|
|
20
22
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* @param context
|
|
24
|
-
* @returns
|
|
23
|
+
* Convenience function that checks the input context if the user is an admin or grants all roles.
|
|
25
24
|
*/
|
|
26
|
-
export declare const
|
|
25
|
+
export declare const grantFullAccessIfAdmin: GeneralGrantRolesIfFunction<FirebaseModelContext>;
|
|
26
|
+
export declare function grantModelRolesIfAdmin<R extends string = string>(context: FirebaseModelContext, rolesToGrantToAdmin: GetterOrValue<GrantedRoleMap<R>>, otherwise?: GrantRolesOtherwiseFunction<R>): PromiseOrValue<GrantedRoleMap<R>>;
|
|
27
27
|
export declare type UserRelatedModelFirebaseModelContext<T extends UserRelated = UserRelated> = UserRelatedModelFirebaseModelContextModelInput<T> | UserRelatedModelFirebaseModelContextDocumentInput<T>;
|
|
28
28
|
export declare type UserRelatedModelFirebaseModelContextModelInput<T extends UserRelated = UserRelated> = {
|
|
29
29
|
model: T;
|
|
@@ -34,9 +34,12 @@ export declare type UserRelatedModelFirebaseModelContextDocumentInput<T extends
|
|
|
34
34
|
context: FirebaseModelContext;
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
37
|
-
*
|
|
37
|
+
* DecisionFunction for a FirebaseModelContext that checks if the user is related to the model by uid.
|
|
38
|
+
*
|
|
39
|
+
* @param context
|
|
40
|
+
* @returns
|
|
38
41
|
*/
|
|
39
|
-
export declare const
|
|
42
|
+
export declare const isOwnerOfUserRelatedModelInFirebaseModelContext: AsyncDecisionFunction<UserRelatedModelFirebaseModelContext<UserRelated>>;
|
|
40
43
|
/**
|
|
41
44
|
* Creates a GrantRolesIfFunction that grants roles if the user is related to the model by uid.
|
|
42
45
|
*
|
|
@@ -47,12 +50,9 @@ export declare const grantFullAccessIfAuthUserRelated: GeneralGrantRolesIfFuncti
|
|
|
47
50
|
*/
|
|
48
51
|
export declare function grantModelRolesIfAuthUserRelatedModelFunction<T extends UserRelated, R extends string = string>(rolesToGrant: GetterOrValue<GrantedRoleMap<R>>): GrantRolesIfFunction<UserRelatedModelFirebaseModelContext<T>, R>;
|
|
49
52
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* @param context
|
|
53
|
-
* @returns
|
|
53
|
+
* Convenience function that checks the input context if the user is related to the model by uid.
|
|
54
54
|
*/
|
|
55
|
-
export declare const
|
|
55
|
+
export declare const grantFullAccessIfAuthUserRelated: GeneralGrantRolesIfFunction<UserRelatedModelFirebaseModelContext<UserRelated>>;
|
|
56
56
|
/**
|
|
57
57
|
* Grants the configured roles if the decision is made about the context. Otherwise, returns a NoAccessRoleMap.
|
|
58
58
|
*/
|