@dereekb/firebase 5.2.1 → 7.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 +39 -0
- package/package.json +5 -5
- package/src/lib/client/firestore/driver.accessor.js +1 -0
- package/src/lib/client/firestore/driver.accessor.js.map +1 -1
- package/src/lib/client/firestore/driver.query.js +5 -1
- package/src/lib/client/firestore/driver.query.js.map +1 -1
- package/src/lib/client/function/function.callable.d.ts +13 -0
- package/src/lib/client/function/function.callable.js +22 -0
- package/src/lib/client/function/function.callable.js.map +1 -0
- package/src/lib/client/function/index.d.ts +2 -0
- package/src/lib/client/function/index.js +2 -0
- package/src/lib/client/function/index.js.map +1 -1
- package/src/lib/client/function/model.function.factory.d.ts +45 -0
- package/src/lib/client/function/model.function.factory.js +41 -0
- package/src/lib/client/function/model.function.factory.js.map +1 -0
- package/src/lib/common/auth/auth.context.d.ts +33 -0
- package/src/lib/common/auth/auth.context.js +3 -0
- package/src/lib/common/auth/auth.context.js.map +1 -0
- package/src/lib/common/auth/auth.d.ts +9 -0
- package/src/lib/common/auth/index.d.ts +1 -0
- package/src/lib/common/auth/index.js +1 -0
- package/src/lib/common/auth/index.js.map +1 -1
- package/src/lib/common/firestore/accessor/document.d.ts +31 -9
- package/src/lib/common/firestore/accessor/document.js +26 -9
- package/src/lib/common/firestore/accessor/document.js.map +1 -1
- package/src/lib/common/firestore/collection/collection.d.ts +96 -0
- package/src/lib/common/firestore/collection/collection.js +14 -1
- package/src/lib/common/firestore/collection/collection.js.map +1 -1
- package/src/lib/common/firestore/driver/accessor.d.ts +2 -0
- package/src/lib/common/firestore/driver/query.d.ts +4 -2
- package/src/lib/common/firestore/driver/query.handler.d.ts +1 -1
- package/src/lib/common/firestore/driver/query.handler.js +3 -2
- package/src/lib/common/firestore/driver/query.handler.js.map +1 -1
- package/src/lib/common/firestore/query/constraint.d.ts +21 -3
- package/src/lib/common/firestore/query/constraint.js +20 -2
- package/src/lib/common/firestore/query/constraint.js.map +1 -1
- package/src/lib/common/firestore/query/constraint.template.d.ts +16 -0
- package/src/lib/common/firestore/query/constraint.template.js +27 -0
- package/src/lib/common/firestore/query/constraint.template.js.map +1 -0
- package/src/lib/common/firestore/query/index.d.ts +1 -0
- package/src/lib/common/firestore/query/index.js +1 -0
- package/src/lib/common/firestore/query/index.js.map +1 -1
- package/src/lib/common/firestore/reference.d.ts +7 -1
- package/src/lib/common/firestore/types.d.ts +8 -5
- package/src/lib/common/firestore/types.js.map +1 -1
- package/src/lib/common/function/action.d.ts +4 -0
- package/src/lib/common/index.d.ts +1 -0
- package/src/lib/common/index.js +1 -0
- package/src/lib/common/index.js.map +1 -1
- package/src/lib/common/model/context.d.ts +16 -0
- package/src/lib/common/model/context.js +3 -0
- package/src/lib/common/model/context.js.map +1 -0
- package/src/lib/common/model/function.d.ts +29 -0
- package/src/lib/common/model/function.js +27 -0
- package/src/lib/common/model/function.js.map +1 -0
- package/src/lib/common/model/index.d.ts +5 -0
- package/src/lib/common/model/index.js +9 -0
- package/src/lib/common/model/index.js.map +1 -0
- package/src/lib/common/model/model/index.d.ts +1 -0
- package/src/lib/common/model/model/index.js +5 -0
- package/src/lib/common/model/model/index.js.map +1 -0
- package/src/lib/common/model/model/model.loader.d.ts +29 -0
- package/src/lib/common/model/model/model.loader.js +21 -0
- package/src/lib/common/model/model/model.loader.js.map +1 -0
- package/src/lib/common/model/model.service.d.ts +77 -0
- package/src/lib/common/model/model.service.js +116 -0
- package/src/lib/common/model/model.service.js.map +1 -0
- package/src/lib/common/model/permission/index.d.ts +4 -0
- package/src/lib/common/model/permission/index.js +8 -0
- package/src/lib/common/model/permission/index.js.map +1 -0
- package/src/lib/common/model/permission/permission.context.d.ts +9 -0
- package/src/lib/common/model/permission/permission.context.js +3 -0
- package/src/lib/common/model/permission/permission.context.js.map +1 -0
- package/src/lib/common/model/permission/permission.d.ts +11 -0
- package/src/lib/common/model/permission/permission.js +3 -0
- package/src/lib/common/model/permission/permission.js.map +1 -0
- package/src/lib/common/model/permission/permission.service.d.ts +24 -0
- package/src/lib/common/model/permission/permission.service.js +48 -0
- package/src/lib/common/model/permission/permission.service.js.map +1 -0
- package/src/lib/common/model/permission/permission.service.role.d.ts +45 -0
- package/src/lib/common/model/permission/permission.service.role.js +88 -0
- package/src/lib/common/model/permission/permission.service.role.js.map +1 -0
- package/test/CHANGELOG.md +27 -0
- package/test/package.json +7 -7
- package/test/src/lib/common/firestore.d.ts +3 -3
- package/test/src/lib/common/firestore.js +2 -2
- package/test/src/lib/common/firestore.mock.item.d.ts +43 -16
- package/test/src/lib/common/firestore.mock.item.fixture.d.ts +3 -1
- package/test/src/lib/common/firestore.mock.item.fixture.js +12 -6
- package/test/src/lib/common/firestore.mock.item.fixture.js.map +1 -1
- package/test/src/lib/common/firestore.mock.item.js +85 -27
- package/test/src/lib/common/firestore.mock.item.js.map +1 -1
- package/test/src/lib/common/firestore.mock.item.query.d.ts +20 -1
- package/test/src/lib/common/firestore.mock.item.query.js +22 -1
- package/test/src/lib/common/firestore.mock.item.query.js.map +1 -1
- package/test/src/lib/common/firestore.mock.item.service.d.ts +40 -0
- package/test/src/lib/common/firestore.mock.item.service.js +62 -0
- package/test/src/lib/common/firestore.mock.item.service.js.map +1 -0
- package/test/src/lib/common/index.d.ts +1 -0
- package/test/src/lib/common/index.js +1 -0
- package/test/src/lib/common/index.js.map +1 -1
- package/test/src/lib/common/test.driver.accessor.js +77 -24
- package/test/src/lib/common/test.driver.accessor.js.map +1 -1
- package/test/src/lib/common/test.driver.query.js +138 -75
- package/test/src/lib/common/test.driver.query.js.map +1 -1
- package/test/src/lib/common/test.iterator.js +1 -0
- package/test/src/lib/common/test.iterator.js.map +1 -1
|
@@ -4,6 +4,102 @@ import { FirestoreItemPageIterationBaseConfig, FirestoreItemPageIterationFactory
|
|
|
4
4
|
import { FirestoreQueryFactory } from '../query/query';
|
|
5
5
|
import { FirestoreDrivers } from '../driver/driver';
|
|
6
6
|
import { FirestoreCollectionQueryFactory } from './collection.query';
|
|
7
|
+
import { ModelKey, ModelTypeString } from '@dereekb/util';
|
|
8
|
+
/**
|
|
9
|
+
* The camelCase model name.
|
|
10
|
+
*/
|
|
11
|
+
export declare type FirestoreModelName = ModelTypeString;
|
|
12
|
+
/**
|
|
13
|
+
* An all lowercase name that references a collection. Is usually the lowercase version of the FirestoreModelName.
|
|
14
|
+
*
|
|
15
|
+
* This is the part of the path that says what the collection is.
|
|
16
|
+
*
|
|
17
|
+
* Each collection name in the app should be unique, as usage of CollectionGroups would cause collections with the same name to be returned.
|
|
18
|
+
*/
|
|
19
|
+
export declare type FirestoreCollectionName = string;
|
|
20
|
+
/**
|
|
21
|
+
* FirestoreCollectionName derived from a FirestoreModelName
|
|
22
|
+
*/
|
|
23
|
+
export declare type FirestoreModelCollectionName<M extends FirestoreModelName> = `${Lowercase<M>}`;
|
|
24
|
+
/**
|
|
25
|
+
* A firestore model's identity
|
|
26
|
+
*/
|
|
27
|
+
export declare type FirestoreModelIdentity<M extends FirestoreModelName = FirestoreModelName> = {
|
|
28
|
+
readonly model: M;
|
|
29
|
+
readonly collection: FirestoreModelCollectionName<M>;
|
|
30
|
+
};
|
|
31
|
+
export declare type FirestoreCollectionNames<I extends FirestoreModelIdentity> = I extends FirestoreModelIdentity<infer M> ? FirestoreModelCollectionName<M> : never;
|
|
32
|
+
export declare type FirestoreModelNames<I extends FirestoreModelIdentity> = I extends FirestoreModelIdentity<infer M> ? M : never;
|
|
33
|
+
/**
|
|
34
|
+
* Creates a FirestoreModelIdentity value.
|
|
35
|
+
*
|
|
36
|
+
* @param modelName
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
export declare function firestoreModelIdentity<M extends FirestoreModelName>(modelName: M): FirestoreModelIdentity<M>;
|
|
40
|
+
/**
|
|
41
|
+
* Reference to a FirestoreCollectionName
|
|
42
|
+
*/
|
|
43
|
+
export interface FirestoreModelNameRef<M extends FirestoreModelName = FirestoreModelName> {
|
|
44
|
+
/**
|
|
45
|
+
* Returns the FirestoreModelName for this context.
|
|
46
|
+
*/
|
|
47
|
+
readonly modelType: M;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Reference to a FirestoreCollectionName
|
|
51
|
+
*/
|
|
52
|
+
export interface FirestoreCollectionNameRef {
|
|
53
|
+
/**
|
|
54
|
+
* Returns the FirestoreCollectionName for this context.
|
|
55
|
+
*/
|
|
56
|
+
readonly collectionName: FirestoreCollectionName;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Reference to a FirestoreModelIdentity
|
|
60
|
+
*/
|
|
61
|
+
export interface FirestoreModelIdentityRef<M extends FirestoreModelName = FirestoreModelName> {
|
|
62
|
+
/**
|
|
63
|
+
* Returns the FirestoreModelIdentity for this context.
|
|
64
|
+
*/
|
|
65
|
+
readonly modelIdentity: FirestoreModelIdentity<M>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The model's id within a collection.
|
|
69
|
+
*
|
|
70
|
+
* Different from the FirestoreModelKey, which is the full path in the databse.
|
|
71
|
+
*
|
|
72
|
+
* Example:
|
|
73
|
+
*
|
|
74
|
+
* 12345
|
|
75
|
+
*/
|
|
76
|
+
export declare type FirestoreModelId = string;
|
|
77
|
+
/**
|
|
78
|
+
* Reference to a FirestoreModelId
|
|
79
|
+
*/
|
|
80
|
+
export interface FirestoreModelIdRef {
|
|
81
|
+
/**
|
|
82
|
+
* Returns the FirestoreModelId for this context.
|
|
83
|
+
*/
|
|
84
|
+
readonly id: FirestoreModelId;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The full path for a model in the Firestore database.
|
|
88
|
+
*
|
|
89
|
+
* Example:
|
|
90
|
+
*
|
|
91
|
+
* collection/12345/subcollection/67890
|
|
92
|
+
*/
|
|
93
|
+
export declare type FirestoreModelKey = ModelKey;
|
|
94
|
+
/**
|
|
95
|
+
* Reference to a FirestoreModelKey
|
|
96
|
+
*/
|
|
97
|
+
export interface FirestoreModelKeyRef {
|
|
98
|
+
/**
|
|
99
|
+
* Returns the FirestoreModelKey for this context.
|
|
100
|
+
*/
|
|
101
|
+
readonly key: FirestoreModelKey;
|
|
102
|
+
}
|
|
7
103
|
/**
|
|
8
104
|
* Instance that provides several accessors for accessing documents of a collection.
|
|
9
105
|
*/
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeFirestoreCollection = void 0;
|
|
3
|
+
exports.makeFirestoreCollection = 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
|
+
/**
|
|
9
|
+
* Creates a FirestoreModelIdentity value.
|
|
10
|
+
*
|
|
11
|
+
* @param modelName
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
function firestoreModelIdentity(modelName) {
|
|
15
|
+
return {
|
|
16
|
+
collection: modelName.toLowerCase(),
|
|
17
|
+
model: modelName
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
exports.firestoreModelIdentity = firestoreModelIdentity;
|
|
8
21
|
/**
|
|
9
22
|
* Creates a new FirestoreCollection from the input config.
|
|
10
23
|
*/
|
|
@@ -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":";;;AACA,mDAc8B;AAC9B,gDAA0L;AAC1L,0CAA8E;AAE9E,yDAAsG;AAiCtG;;;;;GAKG;AACH,SAAgB,sBAAsB,CAA+B,SAAY;IAC/E,OAAO;QACL,UAAU,EAAE,SAAS,CAAC,WAAW,EAAqC;QACtE,KAAK,EAAE,SAAS;KACjB,CAAC;AACJ,CAAC;AALD,wDAKC;AA6GD;;GAEG;AACH,SAAgB,uBAAuB,CAAoC,WAA4C;IACrH,MAAM,MAAM,GAAG,WAAyE,CAAC;IAEzF,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC;IACxE,MAAwD,CAAC,SAAS,GAAG,UAAU,CAAC;IAEjF,MAAM,kBAAkB,GAAiD,IAAA,4CAAiC,EAAC,MAAM,CAAC,CAAC;IACnH,MAAM,gBAAgB,GAAmD,IAAA,2CAAgC,EAAC,MAAM,CAAC,CAAC;IAClH,MAAM,YAAY,GAA6B,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC;IAE7E,MAAM,yBAAyB,GAAG,IAAA,oDAAyC,EAAC,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC3H,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,kDAA+B,EAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;IACnG,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;IAE/B,qCACE,MAAM;QACN,UAAU,EACV,SAAS,EAAE,UAAU,EACrB,gBAAgB,IACb,yBAAyB,KAC5B,kBAAkB;QAClB,KAAK;QACL,aAAa,IACb;AACJ,CAAC;AAxBD,0DAwBC"}
|
|
@@ -8,11 +8,13 @@ export declare type FirestoreAccessorDriverCollectionGroupFunction = <T = Docume
|
|
|
8
8
|
export declare type FirestoreAccessorDriverCollectionRefFunction = <T = DocumentData>(firestore: Firestore, path: string, ...pathSegments: string[]) => CollectionReference<T>;
|
|
9
9
|
export declare type FirestoreAccessorDriverSubcollectionRefFunction = <T = DocumentData>(document: DocumentReference, path: string, ...pathSegments: string[]) => CollectionReference<T>;
|
|
10
10
|
export declare type FirestoreAccessorDriverDocumentRefFunction = <T = DocumentData>(collection: CollectionReference<T>, path?: string, ...pathSegments: string[]) => DocumentReference<T>;
|
|
11
|
+
export declare type FirestoreAccessorDriverFullPathDocumentRefFunction = <T = DocumentData>(firestore: Firestore, fullPath: string) => DocumentReference<T>;
|
|
11
12
|
/**
|
|
12
13
|
* A driver to use for query functionality.
|
|
13
14
|
*/
|
|
14
15
|
export interface FirestoreAccessorDriver extends FirestoreTransactionFactoryDriver, FirestoreWriteBatchFactoryDriver {
|
|
15
16
|
readonly doc: FirestoreAccessorDriverDocumentRefFunction;
|
|
17
|
+
readonly docAtPath: FirestoreAccessorDriverFullPathDocumentRefFunction;
|
|
16
18
|
readonly collectionGroup: FirestoreAccessorDriverCollectionGroupFunction;
|
|
17
19
|
readonly collection: FirestoreAccessorDriverCollectionRefFunction;
|
|
18
20
|
readonly subcollection: FirestoreAccessorDriverSubcollectionRefFunction;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { SnapshotListenOptions, Transaction } from './../types';
|
|
1
|
+
import { FieldPath, SnapshotListenOptions, Transaction } from './../types';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { Query, QuerySnapshot } from '../types';
|
|
4
4
|
import { FirestoreQueryConstraint } from '../query/constraint';
|
|
5
5
|
import { Maybe } from '@dereekb/util';
|
|
6
6
|
export declare type FirestoreQueryDriverQueryFunction = <T>(query: Query<T>, ...queryConstraints: FirestoreQueryConstraint[]) => Query<T>;
|
|
7
|
+
export declare type FirestoreDocumentIdFieldPathAccessor = () => FieldPath;
|
|
7
8
|
export interface FirestoreQueryConstraintFunctionsDriver {
|
|
8
9
|
readonly availableConstraintTypes: Set<string>;
|
|
9
|
-
query: FirestoreQueryDriverQueryFunction;
|
|
10
|
+
readonly query: FirestoreQueryDriverQueryFunction;
|
|
11
|
+
readonly documentIdFieldPath: FirestoreDocumentIdFieldPathAccessor;
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* A driver to use for query functionality.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Query } from '../types';
|
|
2
2
|
import { FirestoreQueryConstraintHandlerMap } from '../query/constraint';
|
|
3
3
|
import { FirestoreQueryConstraintFunctionsDriver } from './query';
|
|
4
|
-
export interface MakeFirestoreQueryConstraintFunctionsDriver<B> {
|
|
4
|
+
export interface MakeFirestoreQueryConstraintFunctionsDriver<B> extends Omit<FirestoreQueryConstraintFunctionsDriver, 'query' | 'availableConstraintTypes'> {
|
|
5
5
|
mapping: FirestoreQueryConstraintHandlerMap<B>;
|
|
6
6
|
init: <T>(query: Query<T>) => B;
|
|
7
7
|
build: <T>(builder: B) => Query<T>;
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.makeFirestoreQueryConstraintFunctionsDriver = void 0;
|
|
4
4
|
const util_1 = require("@dereekb/util");
|
|
5
5
|
function makeFirestoreQueryConstraintFunctionsDriver(config) {
|
|
6
|
-
const { mapping, init, build } = config;
|
|
6
|
+
const { mapping, init, build, documentIdFieldPath } = config;
|
|
7
7
|
const constraintsMap = (0, util_1.objectToMap)(mapping);
|
|
8
8
|
const availableConstraintTypes = new Set(constraintsMap.keys());
|
|
9
9
|
const query = (query, ...queryConstraints) => {
|
|
@@ -19,7 +19,8 @@ function makeFirestoreQueryConstraintFunctionsDriver(config) {
|
|
|
19
19
|
};
|
|
20
20
|
return {
|
|
21
21
|
availableConstraintTypes,
|
|
22
|
-
query
|
|
22
|
+
query,
|
|
23
|
+
documentIdFieldPath
|
|
23
24
|
};
|
|
24
25
|
}
|
|
25
26
|
exports.makeFirestoreQueryConstraintFunctionsDriver = makeFirestoreQueryConstraintFunctionsDriver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.handler.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/driver/query.handler.ts"],"names":[],"mappings":";;;AAAA,wCAA4C;AAW5C,SAAgB,2CAA2C,CAAI,MAAsD;IACnH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"query.handler.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/driver/query.handler.ts"],"names":[],"mappings":";;;AAAA,wCAA4C;AAW5C,SAAgB,2CAA2C,CAAI,MAAsD;IACnH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;IAC7D,MAAM,cAAc,GAAG,IAAA,kBAAW,EAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,wBAAwB,GAAgB,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAsC,CAAI,KAAe,EAAE,GAAG,gBAA4C,EAAE,EAAE;QACvH,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1B,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAA2B,EAAE,EAAE;YACvD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAE3C,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;aACpG;YAED,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO;QACL,wBAAwB;QACxB,KAAK;QACL,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAzBD,kGAyBC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FieldPathOrStringPath } from './../types';
|
|
2
|
+
import { ArrayOrValue, SeparateResult, SortingOrder, Maybe, StringKeyPropertyKeys } from '@dereekb/util';
|
|
2
3
|
import { DocumentSnapshot, DocumentData, FieldPath } from '../types';
|
|
3
4
|
export declare type FirestoreQueryConstraintType = string;
|
|
4
5
|
/**
|
|
@@ -48,15 +49,24 @@ export declare function where(fieldPath: string | FieldPath, opStr: WhereFilterO
|
|
|
48
49
|
export declare const FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE = "order_by";
|
|
49
50
|
export declare type OrderByDirection = SortingOrder;
|
|
50
51
|
export interface OrderByQueryConstraintData {
|
|
51
|
-
fieldPath:
|
|
52
|
+
fieldPath: FieldPathOrStringPath;
|
|
52
53
|
directionStr?: OrderByDirection;
|
|
53
54
|
}
|
|
54
|
-
export declare function orderBy(fieldPath:
|
|
55
|
+
export declare function orderBy<T>(fieldPath: StringKeyPropertyKeys<T>, directionStr?: OrderByDirection): FirestoreQueryConstraint<OrderByQueryConstraintData>;
|
|
56
|
+
export declare function orderBy(fieldPath: FieldPathOrStringPath, directionStr?: OrderByDirection): FirestoreQueryConstraint<OrderByQueryConstraintData>;
|
|
57
|
+
export declare const FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE = "order_by_doc_id";
|
|
58
|
+
export declare type OrderByDocumentIdQueryConstraintData = Pick<OrderByQueryConstraintData, 'directionStr'>;
|
|
59
|
+
export declare function orderByDocumentId(directionStr?: OrderByDirection): FirestoreQueryConstraint<OrderByDocumentIdQueryConstraintData>;
|
|
55
60
|
export declare const FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE = "start_at";
|
|
56
61
|
export interface StartAtQueryConstraintData<T = DocumentData> {
|
|
57
62
|
snapshot: DocumentSnapshot<T>;
|
|
58
63
|
}
|
|
59
64
|
export declare function startAt<T = DocumentData>(snapshot: DocumentSnapshot<T>): FirestoreQueryConstraint<StartAtQueryConstraintData<T>>;
|
|
65
|
+
export declare const FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE = "start_at_path";
|
|
66
|
+
export interface StartAtValueQueryConstraintData {
|
|
67
|
+
fieldValues: unknown[];
|
|
68
|
+
}
|
|
69
|
+
export declare function startAtValue(...fieldValues: unknown[]): FirestoreQueryConstraint<StartAtValueQueryConstraintData>;
|
|
60
70
|
export declare const FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE = "start_after";
|
|
61
71
|
export interface StartAfterQueryConstraintData<T = DocumentData> {
|
|
62
72
|
snapshot: DocumentSnapshot<T>;
|
|
@@ -66,6 +76,11 @@ export declare const FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE = "end_at";
|
|
|
66
76
|
export interface EndAtQueryConstraintData<T = DocumentData> {
|
|
67
77
|
snapshot: DocumentSnapshot<T>;
|
|
68
78
|
}
|
|
79
|
+
export declare const FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE = "end_at_path";
|
|
80
|
+
export interface EndAtValueQueryConstraintData {
|
|
81
|
+
fieldValues: unknown[];
|
|
82
|
+
}
|
|
83
|
+
export declare function endAtValue(...fieldValues: unknown[]): FirestoreQueryConstraint<EndAtValueQueryConstraintData>;
|
|
69
84
|
/**
|
|
70
85
|
*
|
|
71
86
|
* @param snapshot
|
|
@@ -98,9 +113,12 @@ export declare type FullFirestoreQueryConstraintDataMapping = {
|
|
|
98
113
|
[FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE]: WhereQueryConstraintData;
|
|
99
114
|
[FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE]: OffsetQueryConstraintData;
|
|
100
115
|
[FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE]: OrderByQueryConstraintData;
|
|
116
|
+
[FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE]: OrderByDocumentIdQueryConstraintData;
|
|
101
117
|
[FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE]: StartAtQueryConstraintData;
|
|
118
|
+
[FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE]: StartAtValueQueryConstraintData;
|
|
102
119
|
[FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE]: StartAfterQueryConstraintData;
|
|
103
120
|
[FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE]: EndAtQueryConstraintData;
|
|
121
|
+
[FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE]: EndAtValueQueryConstraintData;
|
|
104
122
|
[FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE]: EndBeforeQueryConstraintData;
|
|
105
123
|
};
|
|
106
124
|
export declare type FullFirestoreQueryConstraintMapping = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.separateConstraints = exports.replaceConstraints = exports.filterConstraintsOfType = exports.addOrReplaceLimitInConstraints = exports.endBefore = exports.FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE = exports.endAt = exports.FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE = exports.startAfter = exports.FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE = exports.startAt = exports.FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE = exports.orderBy = exports.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE = exports.where = exports.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE = exports.offset = exports.FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE = exports.limitToLast = exports.FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE = exports.limit = exports.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE = exports.firestoreQueryConstraintFactory = exports.firestoreQueryConstraint = void 0;
|
|
3
|
+
exports.separateConstraints = exports.replaceConstraints = exports.filterConstraintsOfType = exports.addOrReplaceLimitInConstraints = exports.endBefore = exports.FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE = exports.endAt = exports.endAtValue = exports.FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE = exports.FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE = exports.startAfter = exports.FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE = exports.startAtValue = exports.FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE = exports.startAt = exports.FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE = exports.orderByDocumentId = exports.FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE = exports.orderBy = exports.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE = exports.where = exports.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE = exports.offset = exports.FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE = exports.limitToLast = exports.FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE = exports.limit = exports.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE = exports.firestoreQueryConstraintFactory = exports.firestoreQueryConstraint = void 0;
|
|
4
4
|
const util_1 = require("@dereekb/util");
|
|
5
5
|
function firestoreQueryConstraint(type, data) {
|
|
6
6
|
return {
|
|
@@ -51,15 +51,27 @@ exports.where = where;
|
|
|
51
51
|
// MARK: OrderBy
|
|
52
52
|
exports.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE = 'order_by';
|
|
53
53
|
function orderBy(fieldPath, directionStr) {
|
|
54
|
-
return firestoreQueryConstraint(exports.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE, { fieldPath, directionStr });
|
|
54
|
+
return firestoreQueryConstraint(exports.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE, { fieldPath: fieldPath, directionStr });
|
|
55
55
|
}
|
|
56
56
|
exports.orderBy = orderBy;
|
|
57
|
+
// MARK: OrderBy
|
|
58
|
+
exports.FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE = 'order_by_doc_id';
|
|
59
|
+
function orderByDocumentId(directionStr) {
|
|
60
|
+
return firestoreQueryConstraint(exports.FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, { directionStr });
|
|
61
|
+
}
|
|
62
|
+
exports.orderByDocumentId = orderByDocumentId;
|
|
57
63
|
// MARK: Start At
|
|
58
64
|
exports.FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE = 'start_at';
|
|
59
65
|
function startAt(snapshot) {
|
|
60
66
|
return firestoreQueryConstraint(exports.FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE, { snapshot });
|
|
61
67
|
}
|
|
62
68
|
exports.startAt = startAt;
|
|
69
|
+
// MARK: Start At Value
|
|
70
|
+
exports.FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE = 'start_at_path';
|
|
71
|
+
function startAtValue(...fieldValues) {
|
|
72
|
+
return firestoreQueryConstraint(exports.FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE, { fieldValues });
|
|
73
|
+
}
|
|
74
|
+
exports.startAtValue = startAtValue;
|
|
63
75
|
// MARK: Start After
|
|
64
76
|
exports.FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE = 'start_after';
|
|
65
77
|
function startAfter(snapshot) {
|
|
@@ -68,6 +80,12 @@ function startAfter(snapshot) {
|
|
|
68
80
|
exports.startAfter = startAfter;
|
|
69
81
|
// MARK: End At
|
|
70
82
|
exports.FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE = 'end_at';
|
|
83
|
+
// MARK: End At Value
|
|
84
|
+
exports.FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE = 'end_at_path';
|
|
85
|
+
function endAtValue(...fieldValues) {
|
|
86
|
+
return firestoreQueryConstraint(exports.FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE, { fieldValues });
|
|
87
|
+
}
|
|
88
|
+
exports.endAtValue = endAtValue;
|
|
71
89
|
/**
|
|
72
90
|
*
|
|
73
91
|
* @param snapshot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/constraint.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/constraint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DocumentReference } from '../types';
|
|
2
|
+
import { FirestoreQueryConstraint } from './constraint';
|
|
3
|
+
/**
|
|
4
|
+
* Use with a CollectionGroup query to return all child documents that are under a given parent.
|
|
5
|
+
*
|
|
6
|
+
* @param parentRef U
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare function allChildDocumentsUnderParent<P>(parentRef: DocumentReference<P>): FirestoreQueryConstraint[];
|
|
10
|
+
/**
|
|
11
|
+
* Use with a CollectionGroup query to return all child documents that are under a given path.
|
|
12
|
+
*
|
|
13
|
+
* @param parentPath
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export declare function allChildDocumentsUnderParentPath(parentPath: string): FirestoreQueryConstraint[];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.allChildDocumentsUnderParentPath = exports.allChildDocumentsUnderParent = void 0;
|
|
4
|
+
const constraint_1 = require("./constraint");
|
|
5
|
+
/**
|
|
6
|
+
* Use with a CollectionGroup query to return all child documents that are under a given parent.
|
|
7
|
+
*
|
|
8
|
+
* @param parentRef U
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
function allChildDocumentsUnderParent(parentRef) {
|
|
12
|
+
return allChildDocumentsUnderParentPath(parentRef.path);
|
|
13
|
+
}
|
|
14
|
+
exports.allChildDocumentsUnderParent = allChildDocumentsUnderParent;
|
|
15
|
+
/**
|
|
16
|
+
* Use with a CollectionGroup query to return all child documents that are under a given path.
|
|
17
|
+
*
|
|
18
|
+
* @param parentPath
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
function allChildDocumentsUnderParentPath(parentPath) {
|
|
22
|
+
// https://medium.com/firebase-developers/how-to-query-collections-in-firestore-under-a-certain-path-6a0d686cebd2
|
|
23
|
+
// https://medium.com/firelayer/save-money-on-the-list-query-in-firestore-26ef9bee5474 for restricting
|
|
24
|
+
return [(0, constraint_1.orderByDocumentId)(), (0, constraint_1.startAtValue)(parentPath), (0, constraint_1.endAtValue)(parentPath + '\u0000')];
|
|
25
|
+
}
|
|
26
|
+
exports.allChildDocumentsUnderParentPath = allChildDocumentsUnderParentPath;
|
|
27
|
+
//# sourceMappingURL=constraint.template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraint.template.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/constraint.template.ts"],"names":[],"mappings":";;;AACA,6CAAqG;AAErG;;;;;GAKG;AACH,SAAgB,4BAA4B,CAAI,SAA+B;IAC7E,OAAO,gCAAgC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAFD,oEAEC;AAED;;;;;GAKG;AACH,SAAgB,gCAAgC,CAAC,UAAkB;IACjE,iHAAiH;IACjH,sGAAsG;IACtG,OAAO,CAAC,IAAA,8BAAiB,GAAE,EAAE,IAAA,yBAAY,EAAC,UAAU,CAAC,EAAE,IAAA,uBAAU,EAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC5F,CAAC;AAJD,4EAIC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./accumulator"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./constraint"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./constraint.template"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./iterator"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./query"), exports);
|
|
8
9
|
tslib_1.__exportStar(require("./query.util"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,uDAA6B;AAC7B,qDAA2B;AAC3B,kDAAwB;AACxB,uDAA6B;AAC7B,oDAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,uDAA6B;AAC7B,gEAAsC;AACtC,qDAA2B;AAC3B,kDAAwB;AACxB,uDAA6B;AAC7B,oDAA0B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FirestoreContext } from './context';
|
|
2
|
-
import { CollectionReference, DocumentReference, Firestore, Query } from './types';
|
|
2
|
+
import { CollectionReference, DocumentReference, Firestore, Query, Transaction } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Contains a reference to a Query.
|
|
5
5
|
*/
|
|
@@ -24,3 +24,9 @@ export interface DocumentReferenceRef<T> {
|
|
|
24
24
|
export interface FirestoreContextReference<F extends Firestore = Firestore> {
|
|
25
25
|
readonly firestoreContext: FirestoreContext<F>;
|
|
26
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Contains contextual information about the current Transaction, if available.
|
|
29
|
+
*/
|
|
30
|
+
export interface FirebaseTransactionContext {
|
|
31
|
+
readonly transaction?: Transaction;
|
|
32
|
+
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { StringKeyPropertyKeys } from '@dereekb/util';
|
|
2
|
+
import { UnionToIntersection } from 'ts-essentials';
|
|
1
3
|
export declare type FirebaseFirestoreLikeFirestore = {
|
|
2
4
|
type: string;
|
|
3
5
|
};
|
|
@@ -18,7 +20,6 @@ export declare type PartialWithFieldValue<T> = Partial<T> | (T extends Primitive
|
|
|
18
20
|
export declare type WithFieldValue<T> = T | (T extends Primitive ? T : T extends {} ? {
|
|
19
21
|
[K in keyof T]: WithFieldValue<T[K]> | FieldValue;
|
|
20
22
|
} : never);
|
|
21
|
-
export declare type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
22
23
|
export declare type AddPrefixToKeys<Prefix extends string, T extends Record<string, unknown>> = {
|
|
23
24
|
[K in keyof T & string as `${Prefix}.${K}`]+?: T[K];
|
|
24
25
|
};
|
|
@@ -32,6 +33,8 @@ export declare type UpdateData<T> = T extends Primitive ? T : T extends {} ? {
|
|
|
32
33
|
export interface FieldPath {
|
|
33
34
|
isEqual(other: FieldPath): boolean;
|
|
34
35
|
}
|
|
36
|
+
export declare type FieldPathOrStringPath = string | FieldPath;
|
|
37
|
+
export declare type FieldPathOrStringPathOf<T = object> = StringKeyPropertyKeys<T> | FieldPath;
|
|
35
38
|
export declare function asTopLevelFieldPaths(input: (string | FieldPath)[]): string[];
|
|
36
39
|
export declare function asTopLevelFieldPath(input: string | FieldPath): string;
|
|
37
40
|
export interface Timestamp {
|
|
@@ -88,13 +91,13 @@ export interface DocumentReference<T = DocumentData> {
|
|
|
88
91
|
withConverter<U>(converter: FirestoreDataConverter<U>): DocumentReference<U>;
|
|
89
92
|
withConverter(converter: null): DocumentReference<DocumentData>;
|
|
90
93
|
}
|
|
91
|
-
export interface CollectionReference<T = DocumentData> extends Query<T> {
|
|
94
|
+
export interface CollectionReference<T = DocumentData, P = DocumentData> extends Query<T> {
|
|
92
95
|
readonly type?: 'collection';
|
|
93
96
|
readonly id: string;
|
|
94
97
|
readonly path: string;
|
|
95
|
-
readonly parent: DocumentReference<
|
|
96
|
-
withConverter<U>(converter: FirestoreDataConverter<U>): CollectionReference<U>;
|
|
97
|
-
withConverter(converter: null): CollectionReference<DocumentData>;
|
|
98
|
+
readonly parent: DocumentReference<P> | null;
|
|
99
|
+
withConverter<U, P = DocumentData>(converter: FirestoreDataConverter<U>): CollectionReference<U, P>;
|
|
100
|
+
withConverter<P = DocumentData>(converter: null): CollectionReference<DocumentData, P>;
|
|
98
101
|
}
|
|
99
102
|
export interface CollectionGroup<T = DocumentData> extends Query<T> {
|
|
100
103
|
readonly type?: 'query';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/firestore/types.ts"],"names":[],"mappings":";AAAA,0GAA0G;AAC1G,oBAAoB;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/firestore/types.ts"],"names":[],"mappings":";AAAA,0GAA0G;AAC1G,oBAAoB;;;AAsCpB,SAAgB,oBAAoB,CAAC,KAA6B;IAChE,OAAO,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACxC,CAAC;AAFD,oDAEC;AAED,SAAgB,mBAAmB,CAAC,KAAyB;IAC3D,IAAI,IAAY,CAAC;IAEjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,IAAI,GAAG,KAAK,CAAC;KACd;SAAM;QACL,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/B;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,kDAWC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { TransformAndValidateFunctionResult } from '@dereekb/model';
|
|
2
|
+
export declare type FirebaseFunctionCreateAction<P extends object, T> = TransformAndValidateFunctionResult<P, () => Promise<T>>;
|
|
3
|
+
export declare type AsyncFirebaseFunctionCreateAction<P extends object, T> = Promise<FirebaseFunctionCreateAction<P, T>>;
|
|
2
4
|
export declare type FirebaseFunctionUpdateAction<P extends object, T> = TransformAndValidateFunctionResult<P, (document: T) => Promise<T>>;
|
|
3
5
|
export declare type AsyncFirebaseFunctionUpdateAction<P extends object, T> = Promise<FirebaseFunctionUpdateAction<P, T>>;
|
|
6
|
+
export declare type FirebaseFunctionDeleteAction<P extends object, T> = TransformAndValidateFunctionResult<P, (document: T) => Promise<void>>;
|
|
7
|
+
export declare type AsyncFirebaseFunctionDeleteAction<P extends object, T> = Promise<FirebaseFunctionUpdateAction<P, T>>;
|
package/src/lib/common/index.js
CHANGED
|
@@ -4,4 +4,5 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
tslib_1.__exportStar(require("./auth"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./firestore"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./function"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./model"), exports);
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/common/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,sDAA4B;AAC5B,qDAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/common/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,sDAA4B;AAC5B,qDAA2B;AAC3B,kDAAwB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FirebaseAuthContext } from '../auth/auth.context';
|
|
2
|
+
import { FirebasePermissionContext, FirebasePermissionErrorContext } from './permission';
|
|
3
|
+
/**
|
|
4
|
+
* A base model context that contains info about what is current occuring.
|
|
5
|
+
*/
|
|
6
|
+
export interface FirebaseModelContext extends FirebasePermissionContext, FirebasePermissionErrorContext, FirebaseAuthContext {
|
|
7
|
+
/**
|
|
8
|
+
* Whether or not to return all role checks for models as true if the auth context shows the current user as an admin.
|
|
9
|
+
*
|
|
10
|
+
* Is false by default.
|
|
11
|
+
*/
|
|
12
|
+
readonly adminGetsAllowAllRoles?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface FirebaseAppModelContext<C> extends FirebaseModelContext {
|
|
15
|
+
readonly app: C;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/model/context.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ArrayOrValue } from '@dereekb/util';
|
|
2
|
+
import { DocumentReferenceRef } from '../firestore/reference';
|
|
3
|
+
import { FirestoreModelKey, FirestoreModelNameRef } from '../firestore/collection/collection';
|
|
4
|
+
export interface OnCallTypedModelParams<T = unknown> extends FirestoreModelNameRef {
|
|
5
|
+
data: T;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Key used on the front-end and backend that refers to a specific function for creating models.
|
|
9
|
+
*/
|
|
10
|
+
export declare const CREATE_MODEL_APP_FUNCTION_KEY = "createModel";
|
|
11
|
+
export declare type OnCallCreateModelParams<T = unknown> = OnCallTypedModelParams<T>;
|
|
12
|
+
/**
|
|
13
|
+
* Key used on the front-end and backend that refers to a specific function for updating models.
|
|
14
|
+
*/
|
|
15
|
+
export declare const UPDATE_MODEL_APP_FUNCTION_KEY = "updateModel";
|
|
16
|
+
export declare type OnCallUpdateModelParams<T = unknown> = OnCallTypedModelParams<T>;
|
|
17
|
+
/**
|
|
18
|
+
* Key used on the front-end and backend that refers to a specific function for deleting models.
|
|
19
|
+
*/
|
|
20
|
+
export declare const DELETE_MODEL_APP_FUNCTION_KEY = "deleteModel";
|
|
21
|
+
export declare type OnCallDeleteModelParams<T = unknown> = OnCallTypedModelParams<T>;
|
|
22
|
+
export interface OnCallCreateModelResult {
|
|
23
|
+
/**
|
|
24
|
+
* Key(s)/Paths of the created object(s)
|
|
25
|
+
*/
|
|
26
|
+
modelKeys: ArrayOrValue<FirestoreModelKey>;
|
|
27
|
+
}
|
|
28
|
+
export declare function onCallCreateModelResultWithDocs(result: ArrayOrValue<DocumentReferenceRef<unknown>>): OnCallCreateModelResult;
|
|
29
|
+
export declare function onCallCreateModelResult(modelKeys: ArrayOrValue<FirestoreModelKey>): OnCallCreateModelResult;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
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;
|
|
4
|
+
const util_1 = require("@dereekb/util");
|
|
5
|
+
/**
|
|
6
|
+
* Key used on the front-end and backend that refers to a specific function for creating models.
|
|
7
|
+
*/
|
|
8
|
+
exports.CREATE_MODEL_APP_FUNCTION_KEY = 'createModel';
|
|
9
|
+
/**
|
|
10
|
+
* Key used on the front-end and backend that refers to a specific function for updating models.
|
|
11
|
+
*/
|
|
12
|
+
exports.UPDATE_MODEL_APP_FUNCTION_KEY = 'updateModel';
|
|
13
|
+
/**
|
|
14
|
+
* Key used on the front-end and backend that refers to a specific function for deleting models.
|
|
15
|
+
*/
|
|
16
|
+
exports.DELETE_MODEL_APP_FUNCTION_KEY = 'deleteModel';
|
|
17
|
+
function onCallCreateModelResultWithDocs(result) {
|
|
18
|
+
return onCallCreateModelResult((0, util_1.asArray)(result).map((x) => x.documentRef.path));
|
|
19
|
+
}
|
|
20
|
+
exports.onCallCreateModelResultWithDocs = onCallCreateModelResultWithDocs;
|
|
21
|
+
function onCallCreateModelResult(modelKeys) {
|
|
22
|
+
return {
|
|
23
|
+
modelKeys: (0, util_1.asArray)(modelKeys)
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.onCallCreateModelResult = onCallCreateModelResult;
|
|
27
|
+
//# sourceMappingURL=function.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -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("./model"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./permission"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./context"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./function"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./model.service"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/model/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,uDAA6B;AAC7B,oDAA0B;AAC1B,qDAA2B;AAC3B,0DAAgC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './model.loader';
|