@dereekb/firebase 8.4.0 → 8.5.2
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 +22 -0
- package/package.json +5 -5
- package/src/lib/client/function/function.callable.d.ts +8 -0
- package/src/lib/client/function/function.callable.js +16 -11
- package/src/lib/client/function/function.callable.js.map +1 -1
- package/src/lib/client/function/function.factory.js +4 -1
- package/src/lib/client/function/function.factory.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/firestore/accessor/accessor.wrap.modify.js +1 -0
- package/src/lib/common/firestore/accessor/accessor.wrap.modify.js.map +1 -1
- package/src/lib/common/firestore/accessor/document.rxjs.d.ts +6 -0
- package/src/lib/common/firestore/accessor/document.rxjs.js +18 -0
- package/src/lib/common/firestore/accessor/document.rxjs.js.map +1 -0
- package/src/lib/common/firestore/accessor/index.d.ts +1 -0
- package/src/lib/common/firestore/accessor/index.js +1 -0
- package/src/lib/common/firestore/accessor/index.js.map +1 -1
- package/src/lib/common/firestore/collection/collection.d.ts +34 -1
- package/src/lib/common/firestore/collection/collection.js +65 -1
- package/src/lib/common/firestore/collection/collection.js.map +1 -1
- package/src/lib/common/model/model/index.d.ts +1 -0
- package/src/lib/common/model/model/index.js +1 -0
- package/src/lib/common/model/model/index.js.map +1 -1
- package/src/lib/common/model/model/model.param.js +2 -1
- package/src/lib/common/model/model/model.param.js.map +1 -1
- package/src/lib/common/model/model/model.validator.d.ts +10 -0
- package/src/lib/common/model/model/model.validator.js +46 -0
- package/src/lib/common/model/model/model.validator.js.map +1 -0
- package/test/CHANGELOG.md +12 -0
- package/test/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [8.5.2](https://github.com/dereekb/dbx-components/compare/v8.5.1-dev...v8.5.2) (2022-06-22)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [8.5.1](https://github.com/dereekb/dbx-components/compare/v8.5.0-dev...v8.5.1) (2022-06-22)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* fixed function factory ([f722fb5](https://github.com/dereekb/dbx-components/commit/f722fb55c6948feb75d69eb1a7dc1eee6d731cb4))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# [8.5.0](https://github.com/dereekb/dbx-components/compare/v8.4.0-dev...v8.5.0) (2022-06-22)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
* added firestore key validators ([9d090db](https://github.com/dereekb/dbx-components/commit/9d090db1e84b97f11cc2b751dcbe7d2724960b2b))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
5
27
|
# [8.4.0](https://github.com/dereekb/dbx-components/compare/v8.3.0-dev...v8.4.0) (2022-06-21)
|
|
6
28
|
|
|
7
29
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.5.2",
|
|
4
4
|
"devDependencies": {
|
|
5
5
|
"@firebase/rules-unit-testing": "^2.0.0"
|
|
6
6
|
},
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
"rxfire": "^6.0.3",
|
|
24
24
|
"rxjs": "^7.0.0",
|
|
25
25
|
"firebase": "^9.8.0",
|
|
26
|
-
"@dereekb/util": "8.
|
|
26
|
+
"@dereekb/util": "8.5.2",
|
|
27
27
|
"make-error": "^1.3.0",
|
|
28
28
|
"ts-essentials": "^9.1.2",
|
|
29
29
|
"extra-set": "^2.2.11",
|
|
30
|
-
"@dereekb/rxjs": "8.
|
|
30
|
+
"@dereekb/rxjs": "8.5.2",
|
|
31
31
|
"ms": "^3.0.0-canary.1",
|
|
32
|
-
"@dereekb/model": "8.
|
|
32
|
+
"@dereekb/model": "8.5.2",
|
|
33
33
|
"class-transformer": "^0.5.1",
|
|
34
34
|
"class-validator": "^0.13.2",
|
|
35
|
-
"@dereekb/date": "8.
|
|
35
|
+
"@dereekb/date": "8.5.2",
|
|
36
36
|
"date-fns": "^2.28.0",
|
|
37
37
|
"date-fns-tz": "^1.3.0",
|
|
38
38
|
"rrule": "2.7.0",
|
|
@@ -11,3 +11,11 @@ export interface MapHttpsCallable<I, O, A, B> {
|
|
|
11
11
|
* @returns
|
|
12
12
|
*/
|
|
13
13
|
export declare function mapHttpsCallable<I, O, A, B = unknown>(callable: HttpsCallable<A, B>, wrap: MapHttpsCallable<I, O, A, B>): HttpsCallable<I, O>;
|
|
14
|
+
export declare function mapHttpsCallable<I, O, A, B = unknown>(callable: HttpsCallable<A, B>, wrap: MapHttpsCallable<I, O, A, B>, directData: false): HttpsCallable<I, O>;
|
|
15
|
+
export declare function mapHttpsCallable<I, O, A, B = unknown>(callable: HttpsCallable<A, B>, wrap: MapHttpsCallable<I, O, A, B>, directData: true): DirectDataHttpsCallable<HttpsCallable<I, O>>;
|
|
16
|
+
export declare function mapHttpsCallable<I, O, A, B = unknown>(callable: HttpsCallable<A, B>, wrap: MapHttpsCallable<I, O, A, B>, directData?: boolean): HttpsCallable<I, O> | DirectDataHttpsCallable<HttpsCallable<I, O>>;
|
|
17
|
+
/**
|
|
18
|
+
* Wraps an HttpsCallable value so it returns only the data from the result, rather than an object with data attached.
|
|
19
|
+
*/
|
|
20
|
+
export declare type DirectDataHttpsCallable<C extends HttpsCallable<any, any>> = C extends HttpsCallable<infer I, infer O> ? (data?: I | null) => Promise<O> : never;
|
|
21
|
+
export declare function directDataHttpsCallable<I, O, C extends HttpsCallable<I, O> = HttpsCallable<I, O>>(callable: C): DirectDataHttpsCallable<C>;
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
// The use of any here does not degrade the type-safety. The correct type is inferred in most cases.
|
|
2
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mapHttpsCallable = void 0;
|
|
5
|
+
exports.directDataHttpsCallable = exports.mapHttpsCallable = void 0;
|
|
4
6
|
const tslib_1 = require("tslib");
|
|
5
|
-
|
|
6
|
-
* Maps input and output values for an
|
|
7
|
-
* @param callable
|
|
8
|
-
* @param wrap
|
|
9
|
-
* @returns
|
|
10
|
-
*/
|
|
11
|
-
function mapHttpsCallable(callable, wrap) {
|
|
7
|
+
function mapHttpsCallable(callable, wrap, directData = false) {
|
|
12
8
|
const { mapInput = (x) => x, mapOutput = (x) => x } = wrap;
|
|
13
|
-
return (inputData) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
9
|
+
return ((inputData) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
14
10
|
const data = yield mapInput(inputData);
|
|
15
11
|
const result = yield callable(data);
|
|
16
12
|
const resultData = result.data;
|
|
17
13
|
const mappedResultData = yield mapOutput(resultData);
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
if (directData) {
|
|
15
|
+
return mappedResultData;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return Object.assign(Object.assign({}, result), { data: mappedResultData });
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
20
21
|
}
|
|
21
22
|
exports.mapHttpsCallable = mapHttpsCallable;
|
|
23
|
+
function directDataHttpsCallable(callable) {
|
|
24
|
+
return ((data) => callable(data).then((x) => x.data));
|
|
25
|
+
}
|
|
26
|
+
exports.directDataHttpsCallable = directDataHttpsCallable;
|
|
22
27
|
//# sourceMappingURL=function.callable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.callable.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/function/function.callable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"function.callable.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/function/function.callable.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,oGAAoG;;;;AAoBpG,SAAgB,gBAAgB,CAAuB,QAA6B,EAAE,IAAkC,EAAE,UAAU,GAAG,KAAK;IAC1I,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAiB,EAAE,SAAS,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAiB,EAAE,GAAG,IAAI,CAAC;IAE/G,OAAO,CAAC,CAAO,SAAoB,EAAuC,EAAE;QAC1E,MAAM,IAAI,GAAM,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE1C,MAAM,MAAM,GAA2B,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAa,MAAM,CAAC,IAAI,CAAC;QACzC,MAAM,gBAAgB,GAAM,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;QAExD,IAAI,UAAU,EAAE;YACd,OAAO,gBAAgB,CAAC;SACzB;aAAM;YACL,uCACK,MAAM,KACT,IAAI,EAAE,gBAAgB,IACtB;SACH;IACH,CAAC,CAAA,CAAuE,CAAC;AAC3E,CAAC;AAnBD,4CAmBC;AAOD,SAAgB,uBAAuB,CAA4D,QAAW;IAC5G,OAAO,CAAC,CAAC,IAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAA+B,CAAC;AACzF,CAAC;AAFD,0DAEC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
// The use of any here does not degrade the type-safety. The correct type is inferred in most cases.
|
|
2
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
5
|
exports.lazyFirebaseFunctionsFactory = exports.firebaseFunctionMapFactory = void 0;
|
|
4
6
|
const util_1 = require("@dereekb/util");
|
|
5
7
|
const functions_1 = require("firebase/functions");
|
|
8
|
+
const function_callable_1 = require("./function.callable");
|
|
6
9
|
function firebaseFunctionMapFactory(configMap) {
|
|
7
10
|
return (functionsInstance) => {
|
|
8
11
|
const mapFn = (config, key) => {
|
|
@@ -10,7 +13,7 @@ function firebaseFunctionMapFactory(configMap) {
|
|
|
10
13
|
if (config) {
|
|
11
14
|
httpCallableOptions = config.options;
|
|
12
15
|
}
|
|
13
|
-
const fn = (0, functions_1.httpsCallable)(functionsInstance, key, httpCallableOptions);
|
|
16
|
+
const fn = (0, function_callable_1.directDataHttpsCallable)((0, functions_1.httpsCallable)(functionsInstance, key, httpCallableOptions));
|
|
14
17
|
return fn;
|
|
15
18
|
};
|
|
16
19
|
const result = (0, util_1.mapObjectMap)(configMap, mapFn);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.factory.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/function/function.factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"function.factory.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/function/function.factory.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,oGAAoG;;;AAEpG,wCAAyF;AACzF,kDAAoF;AAEpF,2DAA8D;AAgB9D,SAAgB,0BAA0B,CAAoC,SAA2C;IACvH,OAAO,CAAC,iBAA4B,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,CAAoB,MAA2C,EAAE,GAAM,EAAE,EAAE;YACvF,IAAI,mBAAqD,CAAC;YAE1D,IAAI,MAAM,EAAE;gBACV,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC;aACtC;YAED,MAAM,EAAE,GAAsC,IAAA,2CAAuB,EAAmB,IAAA,yBAAa,EAAmB,iBAAiB,EAAE,GAAa,EAAE,mBAAmB,CAAC,CAAC,CAAC;YAChL,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAmC,SAAS,EAAE,KAAK,CAA2B,CAAC;QAC1G,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAhBD,gEAgBC;AA+BD,SAAgB,4BAA4B,CAA0G,SAAY;IAChK,OAAO,CAAC,SAAoB,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,CAAoB,MAA6C,EAAE,GAAM,EAAE,EAAE;YACzF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,OAAO,GAAqC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAA4C,CAAC;YACjG,MAAM,CAAC,KAAK,GAAG,IAA2B,CAAC;YAC3C,MAAM,CAAC,IAAI,GAAG,GAAa,CAAC;YAC5B,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,MAAM,GAA6B,IAAA,mBAAY,EAAC,SAAS,EAAE,KAAY,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAdD,oEAcC"}
|
|
@@ -23,13 +23,13 @@ function modelFirebaseFunctionMapFactory(configMap, crudConfigMap) {
|
|
|
23
23
|
const crudFunctions = new Set(config);
|
|
24
24
|
const modelTypeCruds = {};
|
|
25
25
|
if (crudFunctions.has('create')) {
|
|
26
|
-
modelTypeCruds[`create${modelTypeSuffix}`] = (0, function_callable_1.mapHttpsCallable)(_createFn(), { mapInput: (data) => (0, common_1.onCallTypedModelParams)(modelType, data) });
|
|
26
|
+
modelTypeCruds[`create${modelTypeSuffix}`] = (0, function_callable_1.mapHttpsCallable)(_createFn(), { mapInput: (data) => (0, common_1.onCallTypedModelParams)(modelType, data) }, true);
|
|
27
27
|
}
|
|
28
28
|
if (crudFunctions.has('update')) {
|
|
29
|
-
modelTypeCruds[`update${modelTypeSuffix}`] = (0, function_callable_1.mapHttpsCallable)(_updateFn(), { mapInput: (data) => (0, common_1.onCallTypedModelParams)(modelType, data) });
|
|
29
|
+
modelTypeCruds[`update${modelTypeSuffix}`] = (0, function_callable_1.mapHttpsCallable)(_updateFn(), { mapInput: (data) => (0, common_1.onCallTypedModelParams)(modelType, data) }, true);
|
|
30
30
|
}
|
|
31
31
|
if (crudFunctions.has('delete')) {
|
|
32
|
-
modelTypeCruds[`delete${modelTypeSuffix}`] = (0, function_callable_1.mapHttpsCallable)(_deleteFn(), { mapInput: (data) => (0, common_1.onCallTypedModelParams)(modelType, data) });
|
|
32
|
+
modelTypeCruds[`delete${modelTypeSuffix}`] = (0, function_callable_1.mapHttpsCallable)(_deleteFn(), { mapInput: (data) => (0, common_1.onCallTypedModelParams)(modelType, data) }, true);
|
|
33
33
|
}
|
|
34
34
|
// tslint:disable-next-line
|
|
35
35
|
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,uDAAuD;AACvD,oGAAoG;;;AAEpG,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;
|
|
1
|
+
{"version":3,"file":"model.function.factory.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/function/model.function.factory.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,oGAAoG;;;AAEpG,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,EAAE,IAAI,CAAC,CAAC;qBACvL;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,EAAE,IAAI,CAAC,CAAC;qBACvL;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,EAAE,IAAI,CAAC,CAAC;qBACvL;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"}
|
|
@@ -63,6 +63,7 @@ exports.ModifyBeforeSetFirestoreDocumentDataAccessorWrapper = ModifyBeforeSetFir
|
|
|
63
63
|
*/
|
|
64
64
|
function copyDocumentIdToFieldModifierFunction(fieldName) {
|
|
65
65
|
return ({ data, documentRef }) => {
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
66
67
|
data[fieldName] = documentRef.id; // copy the id to the target field
|
|
67
68
|
};
|
|
68
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessor.wrap.modify.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/accessor.wrap.modify.ts"],"names":[],"mappings":";;;AAAA,wCAAsG;AAKtG,mDAAmJ;AAgCnJ;;GAEG;AACH,MAAa,mDAAwF,SAAQ,4DAAkD;IAI7J,YAAY,QAA6C,EAAW,MAAgC;QAClG,KAAK,CAAC,QAAQ,CAAC,CAAC;QADkD,WAAM,GAAN,MAAM,CAA0B;QAElG,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAA,qBAAc,EAAC,IAAA,cAAO,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEzD,IAAI,KAAkD,CAAC;QAEvD,MAAM,YAAY,GAAgD,CAAC,IAAkD,EAAE,OAAoB,EAAE,EAAE;YAC7I,MAAM,IAAI,qBAAQ,IAAI,CAAE,CAAC;YACzB,MAAM,KAAK,GAA+C;gBACxD,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,OAAO;aACR,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAqB,CAAC,CAAC;QACtD,CAAC,CAAC;QAEF,QAAQ,IAAI,EAAE;YACZ,KAAK,QAAQ;gBACX,KAAK,GAAG,YAAY,CAAC;gBACrB,MAAM;YACR,KAAK,KAAK;gBACR,KAAK,GAAG,CAAC,IAAkD,EAAE,OAAoB,EAAE,EAAE;oBACnF,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;oBAC3C,IAAI,gBAAgB,EAAE;wBACpB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;qBAC3B;yBAAM;wBACL,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAqB,CAAC,CAAC;qBAC/C;gBACH,CAAC,CAAC;gBACF,MAAM;YACR,KAAK,QAAQ;gBACX,KAAK,GAAG,CAAC,IAAkD,EAAE,OAAoB,EAAE,EAAE;oBACnF,MAAM,wBAAwB,GAAG,OAAO,IAAI,CAAC,OAAO,CAAE,OAAiC,CAAC,WAAW,CAAC,IAAI,OAAO,CAAE,OAA2B,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrJ,IAAI,wBAAwB,EAAE;wBAC5B,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;qBAC3B;yBAAM;wBACL,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAqB,CAAC,CAAC;qBAC/C;gBACH,CAAC,CAAC;gBACF,MAAM;SACT;QAED,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;IACnB,CAAC;CACF;AAnDD,kHAmDC;AAED,2BAA2B;AAC3B;;;;;GAKG;AACH,SAAgB,qCAAqC,CAAmB,SAAkB;IACxF,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"accessor.wrap.modify.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/accessor.wrap.modify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Observable, OperatorFunction } from 'rxjs';
|
|
2
|
+
import { DocumentDataWithId, DocumentSnapshot } from '../types';
|
|
3
|
+
import { FirestoreDocument } from './document';
|
|
4
|
+
export declare function streamDocumentSnapshots<T, D extends FirestoreDocument<T>>(documents: D[]): Observable<DocumentSnapshot<T>[]>;
|
|
5
|
+
export declare function streamDocumentData<T, D extends FirestoreDocument<T>>(documents: D[]): Observable<DocumentDataWithId<T>[]>;
|
|
6
|
+
export declare function dataFromDocumentSnapshots<T>(): OperatorFunction<DocumentSnapshot<T>[], DocumentDataWithId<T>[]>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dataFromDocumentSnapshots = exports.streamDocumentData = exports.streamDocumentSnapshots = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const document_utility_1 = require("./document.utility");
|
|
6
|
+
function streamDocumentSnapshots(documents) {
|
|
7
|
+
return (0, rxjs_1.combineLatest)(documents.map((x) => x.accessor.stream())).pipe((0, rxjs_1.shareReplay)(1));
|
|
8
|
+
}
|
|
9
|
+
exports.streamDocumentSnapshots = streamDocumentSnapshots;
|
|
10
|
+
function streamDocumentData(documents) {
|
|
11
|
+
return streamDocumentSnapshots(documents).pipe(dataFromDocumentSnapshots(), (0, rxjs_1.shareReplay)(1));
|
|
12
|
+
}
|
|
13
|
+
exports.streamDocumentData = streamDocumentData;
|
|
14
|
+
function dataFromDocumentSnapshots() {
|
|
15
|
+
return (0, rxjs_1.map)((x) => (0, document_utility_1.getDataFromDocumentSnapshots)(x));
|
|
16
|
+
}
|
|
17
|
+
exports.dataFromDocumentSnapshots = dataFromDocumentSnapshots;
|
|
18
|
+
//# sourceMappingURL=document.rxjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.rxjs.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/document.rxjs.ts"],"names":[],"mappings":";;;AAAA,+BAAqF;AAGrF,yDAAkE;AAElE,SAAgB,uBAAuB,CAAoC,SAAc;IACvF,OAAO,IAAA,oBAAa,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,kBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAFD,0DAEC;AAED,SAAgB,kBAAkB,CAAoC,SAAc;IAClF,OAAO,uBAAuB,CAAO,SAAS,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,IAAA,kBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;AACpG,CAAC;AAFD,gDAEC;AAED,SAAgB,yBAAyB;IACvC,OAAO,IAAA,UAAG,EAAC,CAAC,CAAwB,EAAE,EAAE,CAAC,IAAA,+CAA4B,EAAI,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AAFD,8DAEC"}
|
|
@@ -13,4 +13,5 @@ tslib_1.__exportStar(require("./context.transaction"), exports);
|
|
|
13
13
|
tslib_1.__exportStar(require("./context"), exports);
|
|
14
14
|
tslib_1.__exportStar(require("./document"), exports);
|
|
15
15
|
tslib_1.__exportStar(require("./document.utility"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./document.rxjs"), exports);
|
|
16
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,6DAAmC;AACnC,iEAAuC;AACvC,0DAAgC;AAChC,iEAAuC;AACvC,qDAA2B;AAC3B,0DAAgC;AAChC,4DAAkC;AAClC,gEAAsC;AACtC,oDAA0B;AAC1B,qDAA2B;AAC3B,6DAAmC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,6DAAmC;AACnC,iEAAuC;AACvC,0DAAgC;AAChC,iEAAuC;AACvC,qDAA2B;AAC3B,0DAAgC;AAChC,4DAAkC;AAClC,gEAAsC;AACtC,oDAA0B;AAC1B,qDAA2B;AAC3B,6DAAmC;AACnC,0DAAgC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CollectionReferenceRef, FirestoreContextReference, QueryLikeReferenceRef } from '../reference';
|
|
1
|
+
import { CollectionReferenceRef, DocumentReferenceRef, FirestoreContextReference, QueryLikeReferenceRef } from '../reference';
|
|
2
2
|
import { FirestoreDocument, FirestoreDocumentAccessorFactory, FirestoreDocumentAccessorFactoryConfig, FirestoreDocumentAccessorForTransactionFactory, FirestoreDocumentAccessorForWriteBatchFactory, LimitedFirestoreDocumentAccessorFactory, LimitedFirestoreDocumentAccessorForTransactionFactory, LimitedFirestoreDocumentAccessorForWriteBatchFactory, LimitedFirestoreDocumentAccessor, FirestoreDocumentAccessor } from '../accessor/document';
|
|
3
3
|
import { FirestoreItemPageIterationBaseConfig, FirestoreItemPageIterationFactory } from '../query/iterator';
|
|
4
4
|
import { FirestoreQueryFactory } from '../query/query';
|
|
@@ -119,6 +119,25 @@ export interface FirestoreModelIdentityRef<I extends FirestoreModelIdentity> {
|
|
|
119
119
|
* 12345
|
|
120
120
|
*/
|
|
121
121
|
export declare type FirestoreModelId = string;
|
|
122
|
+
/**
|
|
123
|
+
* Reads a firestoreModelId from the input.
|
|
124
|
+
*
|
|
125
|
+
* @param input
|
|
126
|
+
* @returns
|
|
127
|
+
*/
|
|
128
|
+
export declare function firestoreModelId(input: FirestoreModelId | FirestoreModelKey | DocumentReferenceRef<unknown> | FirestoreModelKeyRef | FirestoreModelIdRef): FirestoreModelId;
|
|
129
|
+
/**
|
|
130
|
+
* Firestore Model Id Regex
|
|
131
|
+
*
|
|
132
|
+
* https://stackoverflow.com/questions/52850099/what-is-the-reg-expression-for-firestore-constraints-on-document-ids
|
|
133
|
+
*/
|
|
134
|
+
export declare const FIRESTORE_MODEL_ID_REGEX: RegExp;
|
|
135
|
+
/**
|
|
136
|
+
* Returns true if the input string is a FirestoreModelId.
|
|
137
|
+
*
|
|
138
|
+
* @param input
|
|
139
|
+
*/
|
|
140
|
+
export declare function isFirestoreModelId(input: string | FirestoreModelId): input is FirestoreModelId;
|
|
122
141
|
/**
|
|
123
142
|
* Reference to a FirestoreModelId
|
|
124
143
|
*/
|
|
@@ -136,6 +155,20 @@ export interface FirestoreModelIdRef {
|
|
|
136
155
|
* collection/12345/subcollection/67890
|
|
137
156
|
*/
|
|
138
157
|
export declare type FirestoreModelKey = ModelKey;
|
|
158
|
+
/**
|
|
159
|
+
* Firestore Model Key Regex that checks for pairs.
|
|
160
|
+
*/
|
|
161
|
+
export declare const FIRESTORE_MODEL_KEY_REGEX: RegExp;
|
|
162
|
+
/**
|
|
163
|
+
* Firestore Model Key Regex that is more strict
|
|
164
|
+
*/
|
|
165
|
+
export declare const FIRESTORE_MODEL_KEY_REGEX_STRICT: RegExp;
|
|
166
|
+
/**
|
|
167
|
+
* Returns true if the input string is a FirestoreModelKey.
|
|
168
|
+
*
|
|
169
|
+
* @param input
|
|
170
|
+
*/
|
|
171
|
+
export declare function isFirestoreModelKey(input: string | FirestoreModelKey): input is FirestoreModelKey;
|
|
139
172
|
/**
|
|
140
173
|
* A part of a FirestoreModelKey.
|
|
141
174
|
*/
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeFirestoreCollection = exports.childFirestoreModelKeyPath = exports.firestoreModelKeyPath = exports.firestoreModelKeys = exports.firestoreModelKey = exports.firestoreModelKeyPart = exports.firestoreModelType = exports.firestoreModelIdentity = void 0;
|
|
3
|
+
exports.makeFirestoreCollection = exports.childFirestoreModelKeyPath = exports.firestoreModelKeyPath = exports.firestoreModelKeys = exports.firestoreModelKey = exports.firestoreModelKeyPart = exports.isFirestoreModelKey = exports.FIRESTORE_MODEL_KEY_REGEX_STRICT = exports.FIRESTORE_MODEL_KEY_REGEX = exports.isFirestoreModelId = exports.FIRESTORE_MODEL_ID_REGEX = exports.firestoreModelId = exports.firestoreModelType = exports.firestoreModelIdentity = void 0;
|
|
4
4
|
const document_1 = require("../accessor/document");
|
|
5
5
|
const iterator_1 = require("../query/iterator");
|
|
6
6
|
const query_1 = require("../query/query");
|
|
7
7
|
const collection_query_1 = require("./collection.query");
|
|
8
|
+
const util_1 = require("@dereekb/util");
|
|
8
9
|
function firestoreModelIdentity(parentOrModelName, collectionNameOrModelName, inputCollectionName) {
|
|
9
10
|
var _a, _b;
|
|
10
11
|
if (typeof parentOrModelName === 'object') {
|
|
@@ -44,6 +45,69 @@ function firestoreModelType(modelTypeInput) {
|
|
|
44
45
|
return modelType;
|
|
45
46
|
}
|
|
46
47
|
exports.firestoreModelType = firestoreModelType;
|
|
48
|
+
/**
|
|
49
|
+
* Reads a firestoreModelId from the input.
|
|
50
|
+
*
|
|
51
|
+
* @param input
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
function firestoreModelId(input) {
|
|
55
|
+
let key = '';
|
|
56
|
+
let id;
|
|
57
|
+
if (typeof input === 'object') {
|
|
58
|
+
if (input.id) {
|
|
59
|
+
id = input.id;
|
|
60
|
+
}
|
|
61
|
+
else if (input.key) {
|
|
62
|
+
key = input.key;
|
|
63
|
+
}
|
|
64
|
+
else if (input.documentRef != null) {
|
|
65
|
+
id = input.documentRef.id;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
key = input;
|
|
70
|
+
}
|
|
71
|
+
if (id) {
|
|
72
|
+
return id;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
return (0, util_1.lastValue)(key.split('/'));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.firestoreModelId = firestoreModelId;
|
|
79
|
+
/**
|
|
80
|
+
* Firestore Model Id Regex
|
|
81
|
+
*
|
|
82
|
+
* https://stackoverflow.com/questions/52850099/what-is-the-reg-expression-for-firestore-constraints-on-document-ids
|
|
83
|
+
*/
|
|
84
|
+
exports.FIRESTORE_MODEL_ID_REGEX = /^(?!\.\.?$)(?!.*__.*__)([^\s/]{1,1500})$/;
|
|
85
|
+
/**
|
|
86
|
+
* Returns true if the input string is a FirestoreModelId.
|
|
87
|
+
*
|
|
88
|
+
* @param input
|
|
89
|
+
*/
|
|
90
|
+
function isFirestoreModelId(input) {
|
|
91
|
+
return exports.FIRESTORE_MODEL_ID_REGEX.test(input);
|
|
92
|
+
}
|
|
93
|
+
exports.isFirestoreModelId = isFirestoreModelId;
|
|
94
|
+
/**
|
|
95
|
+
* Firestore Model Key Regex that checks for pairs.
|
|
96
|
+
*/
|
|
97
|
+
exports.FIRESTORE_MODEL_KEY_REGEX = /^(?:([^\s/]+)\/([^\s/]+))(?:\/(?:([^\s/]+))\/(?:([^\s/]+)))*$/;
|
|
98
|
+
/**
|
|
99
|
+
* Firestore Model Key Regex that is more strict
|
|
100
|
+
*/
|
|
101
|
+
exports.FIRESTORE_MODEL_KEY_REGEX_STRICT = /^(?:(?:(?!\.\.?$)(?!.*__.*__)([^\s/]+))\/(?:(?!\.\.?$)(?!.*__.*__)([^\s/]+))\/?)(?:\/(?:(?!\.\.?$)(?!.*__.*__)([^\s/]+))\/(?:(?!\.\.?$)(?!.*__.*__)([^\s/]+)))*$/;
|
|
102
|
+
/**
|
|
103
|
+
* Returns true if the input string is a FirestoreModelKey.
|
|
104
|
+
*
|
|
105
|
+
* @param input
|
|
106
|
+
*/
|
|
107
|
+
function isFirestoreModelKey(input) {
|
|
108
|
+
return exports.FIRESTORE_MODEL_KEY_REGEX.test(input);
|
|
109
|
+
}
|
|
110
|
+
exports.isFirestoreModelKey = isFirestoreModelKey;
|
|
47
111
|
/**
|
|
48
112
|
* Creates a firestoreModelKeyPart
|
|
49
113
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/collection.ts"],"names":[],"mappings":";;;AACA,mDAc8B;AAC9B,gDAA0L;AAC1L,0CAA8E;AAE9E,yDAAsG;
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,4 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./model.loader"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./model.param"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./model.validator"), exports);
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/model/model/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,wDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/model/model/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,wDAA8B;AAC9B,4DAAkC"}
|
|
@@ -4,6 +4,7 @@ exports.TargetModelParams = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const class_transformer_1 = require("class-transformer");
|
|
6
6
|
const class_validator_1 = require("class-validator");
|
|
7
|
+
const model_validator_1 = require("./model.validator");
|
|
7
8
|
/**
|
|
8
9
|
* Simple annotated params that implements FirestoreModelKeyRef.
|
|
9
10
|
*/
|
|
@@ -12,7 +13,7 @@ class TargetModelParams {
|
|
|
12
13
|
tslib_1.__decorate([
|
|
13
14
|
(0, class_transformer_1.Expose)(),
|
|
14
15
|
(0, class_validator_1.IsNotEmpty)(),
|
|
15
|
-
(0,
|
|
16
|
+
(0, model_validator_1.IsFirestoreModelKey)(),
|
|
16
17
|
tslib_1.__metadata("design:type", String)
|
|
17
18
|
], TargetModelParams.prototype, "key", void 0);
|
|
18
19
|
exports.TargetModelParams = TargetModelParams;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.param.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/model/model/model.param.ts"],"names":[],"mappings":";;;;AAAA,yDAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"model.param.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/model/model/model.param.ts"],"names":[],"mappings":";;;;AAAA,yDAA2C;AAC3C,qDAA6C;AAE7C,uDAAwD;AAExD;;GAEG;AACH,MAAa,iBAAiB;CAK7B;AADC;IAHC,IAAA,0BAAM,GAAE;IACR,IAAA,4BAAU,GAAE;IACZ,IAAA,qCAAmB,GAAE;;8CACE;AAJ1B,8CAKC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ObjectWithConstructor } from '@dereekb/util';
|
|
2
|
+
import { ValidationOptions } from 'class-validator';
|
|
3
|
+
/**
|
|
4
|
+
* isFirestoreModelKey validator
|
|
5
|
+
*/
|
|
6
|
+
export declare function IsFirestoreModelKey(validationOptions?: ValidationOptions): (object: ObjectWithConstructor, propertyName: string) => void;
|
|
7
|
+
/**
|
|
8
|
+
* isFirestoreModelId validator
|
|
9
|
+
*/
|
|
10
|
+
export declare function IsFirestoreModelId(validationOptions?: ValidationOptions): (object: ObjectWithConstructor, propertyName: string) => void;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IsFirestoreModelId = exports.IsFirestoreModelKey = void 0;
|
|
4
|
+
const class_validator_1 = require("class-validator");
|
|
5
|
+
const collection_1 = require("../../firestore/collection/collection");
|
|
6
|
+
/**
|
|
7
|
+
* isFirestoreModelKey validator
|
|
8
|
+
*/
|
|
9
|
+
function IsFirestoreModelKey(validationOptions) {
|
|
10
|
+
return function (object, propertyName) {
|
|
11
|
+
(0, class_validator_1.registerDecorator)({
|
|
12
|
+
name: 'isFirestoreModelKey',
|
|
13
|
+
target: object.constructor,
|
|
14
|
+
propertyName: propertyName,
|
|
15
|
+
options: validationOptions,
|
|
16
|
+
validator: {
|
|
17
|
+
validate: collection_1.isFirestoreModelKey,
|
|
18
|
+
defaultMessage(args) {
|
|
19
|
+
return `"${args.value}" is not a FirestoreModelKey.`;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
exports.IsFirestoreModelKey = IsFirestoreModelKey;
|
|
26
|
+
/**
|
|
27
|
+
* isFirestoreModelId validator
|
|
28
|
+
*/
|
|
29
|
+
function IsFirestoreModelId(validationOptions) {
|
|
30
|
+
return function (object, propertyName) {
|
|
31
|
+
(0, class_validator_1.registerDecorator)({
|
|
32
|
+
name: 'isFirestoreModelId',
|
|
33
|
+
target: object.constructor,
|
|
34
|
+
propertyName: propertyName,
|
|
35
|
+
options: validationOptions,
|
|
36
|
+
validator: {
|
|
37
|
+
validate: collection_1.isFirestoreModelId,
|
|
38
|
+
defaultMessage(args) {
|
|
39
|
+
return `"${args.value}" is not a FirestoreModelId.`;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
exports.IsFirestoreModelId = IsFirestoreModelId;
|
|
46
|
+
//# sourceMappingURL=model.validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.validator.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/model/model/model.validator.ts"],"names":[],"mappings":";;;AACA,qDAA4F;AAC5F,sEAAgG;AAEhG;;GAEG;AACH,SAAgB,mBAAmB,CAAC,iBAAqC;IACvE,OAAO,UAAU,MAA6B,EAAE,YAAoB;QAClE,IAAA,mCAAiB,EAAC;YAChB,IAAI,EAAE,qBAAqB;YAC3B,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACT,QAAQ,EAAE,gCAAmB;gBAC7B,cAAc,CAAC,IAAyB;oBACtC,OAAO,IAAI,IAAI,CAAC,KAAK,+BAA+B,CAAC;gBACvD,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAfD,kDAeC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,iBAAqC;IACtE,OAAO,UAAU,MAA6B,EAAE,YAAoB;QAClE,IAAA,mCAAiB,EAAC;YAChB,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACT,QAAQ,EAAE,+BAAkB;gBAC5B,cAAc,CAAC,IAAyB;oBACtC,OAAO,IAAI,IAAI,CAAC,KAAK,8BAA8B,CAAC;gBACtD,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAfD,gDAeC"}
|
package/test/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [8.5.2](https://github.com/dereekb/dbx-components/compare/v8.5.1-dev...v8.5.2) (2022-06-22)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [8.5.1](https://github.com/dereekb/dbx-components/compare/v8.5.0-dev...v8.5.1) (2022-06-22)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# [8.5.0](https://github.com/dereekb/dbx-components/compare/v8.4.0-dev...v8.5.0) (2022-06-22)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
5
17
|
# [8.4.0](https://github.com/dereekb/dbx-components/compare/v8.3.0-dev...v8.4.0) (2022-06-21)
|
|
6
18
|
|
|
7
19
|
|
package/test/package.json
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase/test",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.5.2",
|
|
4
4
|
"main": "./src/index.js",
|
|
5
5
|
"typings": "./src/index.d.ts",
|
|
6
6
|
"dependencies": {},
|
|
7
7
|
"peerDependencies": {
|
|
8
|
-
"@dereekb/util/test": "8.
|
|
9
|
-
"@dereekb/util": "8.
|
|
8
|
+
"@dereekb/util/test": "8.5.2",
|
|
9
|
+
"@dereekb/util": "8.5.2",
|
|
10
10
|
"make-error": "^1.3.0",
|
|
11
11
|
"ts-essentials": "^9.1.2",
|
|
12
12
|
"extra-set": "^2.2.11",
|
|
13
|
-
"@dereekb/firebase": "8.
|
|
13
|
+
"@dereekb/firebase": "8.5.2",
|
|
14
14
|
"rxfire": "^6.0.3",
|
|
15
15
|
"rxjs": "^7.0.0",
|
|
16
16
|
"firebase": "^9.8.0",
|
|
17
|
-
"@dereekb/rxjs": "8.
|
|
17
|
+
"@dereekb/rxjs": "8.5.2",
|
|
18
18
|
"ms": "^3.0.0-canary.1",
|
|
19
|
-
"@dereekb/model": "8.
|
|
19
|
+
"@dereekb/model": "8.5.2",
|
|
20
20
|
"class-transformer": "^0.5.1",
|
|
21
21
|
"class-validator": "^0.13.2",
|
|
22
|
-
"@dereekb/date": "8.
|
|
22
|
+
"@dereekb/date": "8.5.2",
|
|
23
23
|
"date-fns": "^2.28.0",
|
|
24
24
|
"date-fns-tz": "^1.3.0",
|
|
25
25
|
"rrule": "2.7.0",
|