@dereekb/firebase 9.10.4 → 9.11.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 +9 -0
- package/package.json +5 -5
- package/src/lib/common/firestore/accessor/converter.d.ts +10 -0
- package/src/lib/common/firestore/accessor/converter.js +3 -0
- package/src/lib/common/firestore/accessor/converter.js.map +1 -0
- package/src/lib/common/firestore/accessor/document.d.ts +9 -0
- package/src/lib/common/firestore/accessor/document.js +6 -2
- package/src/lib/common/firestore/accessor/document.js.map +1 -1
- 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/model/index.d.ts +1 -0
- package/src/lib/model/index.js +1 -0
- package/src/lib/model/index.js.map +1 -1
- package/src/lib/model/system/index.d.ts +1 -0
- package/src/lib/model/system/index.js +5 -0
- package/src/lib/model/system/index.js.map +1 -0
- package/src/lib/model/system/system.d.ts +49 -0
- package/src/lib/model/system/system.js +52 -0
- package/src/lib/model/system/system.js.map +1 -0
- package/test/CHANGELOG.md +4 -0
- package/test/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
# [9.11.0](https://github.com/dereekb/dbx-components/compare/v9.10.4-dev...v9.11.0) (2022-10-09)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* added SystemStateDocument ([d4a0fcf](https://github.com/dereekb/dbx-components/commit/d4a0fcf53e4e98c91ec8915e9122b7af9ded35f7))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
5
14
|
## [9.10.4](https://github.com/dereekb/dbx-components/compare/v9.10.3-dev...v9.10.4) (2022-10-07)
|
|
6
15
|
|
|
7
16
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.11.0",
|
|
4
4
|
"devDependencies": {
|
|
5
5
|
"@firebase/rules-unit-testing": "^2.0.0"
|
|
6
6
|
},
|
|
@@ -22,17 +22,17 @@
|
|
|
22
22
|
"peerDependencies": {
|
|
23
23
|
"rxjs": "^7.5.0",
|
|
24
24
|
"firebase": "^9.9.2",
|
|
25
|
-
"@dereekb/util": "9.
|
|
25
|
+
"@dereekb/util": "9.11.0",
|
|
26
26
|
"lodash.isequal": "^4.5.0",
|
|
27
27
|
"make-error": "^1.3.0",
|
|
28
28
|
"class-validator": "^0.13.2",
|
|
29
29
|
"ts-essentials": "^9.1.2",
|
|
30
30
|
"extra-set": "^2.2.11",
|
|
31
31
|
"class-transformer": "^0.5.1",
|
|
32
|
-
"@dereekb/rxjs": "9.
|
|
32
|
+
"@dereekb/rxjs": "9.11.0",
|
|
33
33
|
"ms": "^3.0.0-canary.1",
|
|
34
|
-
"@dereekb/model": "9.
|
|
35
|
-
"@dereekb/date": "9.
|
|
34
|
+
"@dereekb/model": "9.11.0",
|
|
35
|
+
"@dereekb/date": "9.11.0",
|
|
36
36
|
"date-fns": "^2.29.0",
|
|
37
37
|
"date-fns-tz": "^1.3.0",
|
|
38
38
|
"rrule": "git+https://git@github.com/dereekb/rrule#2b13b1ea881059ba2ecfec380e12ef244ef54570",
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FactoryWithInput, FactoryWithRequiredInput, Maybe } from '@dereekb/util';
|
|
2
|
+
import { DocumentReference, FirestoreDataConverter } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Factory used to provide an FirestoreDataConverter based on the input reference.
|
|
5
|
+
*/
|
|
6
|
+
export declare type FirestoreDataConverterFactory<T> = FactoryWithInput<FirestoreDataConverter<T>, DocumentReference<T>>;
|
|
7
|
+
/**
|
|
8
|
+
* Factory used to provide an optional custom FirestoreDataConverter based on the input reference.
|
|
9
|
+
*/
|
|
10
|
+
export declare type InterceptFirestoreDataConverterFactory<T> = FactoryWithRequiredInput<Maybe<FirestoreDataConverter<T>>, DocumentReference<T>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/converter.ts"],"names":[],"mappings":""}
|
|
@@ -8,6 +8,7 @@ import { FirestoreDocumentContext } from './context';
|
|
|
8
8
|
import { Maybe } from '@dereekb/util';
|
|
9
9
|
import { FirestoreModelTypeRef, FirestoreModelIdentity, FirestoreModelTypeModelIdentityRef } from '../collection/collection';
|
|
10
10
|
import { InterceptAccessorFactoryFunction } from './accessor.wrap';
|
|
11
|
+
import { FirestoreDataConverterFactory, InterceptFirestoreDataConverterFactory } from './converter';
|
|
11
12
|
export interface FirestoreDocument<T, I extends FirestoreModelIdentity = FirestoreModelIdentity> extends FirestoreDataConverterRef<T>, DocumentReferenceRef<T>, CollectionReferenceRef<T>, FirestoreModelIdentityRef<I>, FirestoreModelTypeRef<FirestoreModelIdentityModelType<I>>, FirestoreCollectionNameRef<FirestoreModelIdentityCollectionName<I>>, FirestoreModelKeyRef, FirestoreModelIdRef {
|
|
12
13
|
readonly accessor: FirestoreDocumentDataAccessor<T>;
|
|
13
14
|
readonly id: string;
|
|
@@ -112,6 +113,10 @@ export interface LimitedFirestoreDocumentAccessor<T, D extends FirestoreDocument
|
|
|
112
113
|
* @param ref
|
|
113
114
|
*/
|
|
114
115
|
documentRefForKey(fullPath: FirestoreModelKey): DocumentReference<T>;
|
|
116
|
+
/**
|
|
117
|
+
* Returns the converter factory for this accessor.
|
|
118
|
+
*/
|
|
119
|
+
readonly converterFactory: FirestoreDataConverterFactory<T>;
|
|
115
120
|
}
|
|
116
121
|
export interface FirestoreDocumentAccessor<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends LimitedFirestoreDocumentAccessor<T, D>, CollectionReferenceRef<T>, FirestoreAccessorDriverRef {
|
|
117
122
|
readonly databaseContext: FirestoreDocumentContext<T>;
|
|
@@ -160,6 +165,10 @@ export interface LimitedFirestoreDocumentAccessorFactoryConfig<T, D extends Fire
|
|
|
160
165
|
* Optional InterceptAccessorFactoryFunction to intercept/return a modified accessor factory.
|
|
161
166
|
*/
|
|
162
167
|
readonly accessorFactory?: InterceptAccessorFactoryFunction<T>;
|
|
168
|
+
/**
|
|
169
|
+
* Optional InterceptFirestoreDataConverterFactory to return a modified converter.
|
|
170
|
+
*/
|
|
171
|
+
readonly converterFactory?: InterceptFirestoreDataConverterFactory<T>;
|
|
163
172
|
readonly makeDocument: FirestoreDocumentFactoryFunction<T, D>;
|
|
164
173
|
}
|
|
165
174
|
export declare function limitedFirestoreDocumentAccessorFactory<T, D extends FirestoreDocument<T> = FirestoreDocument<T>>(config: LimitedFirestoreDocumentAccessorFactoryConfig<T, D>): LimitedFirestoreDocumentAccessorFactoryFunction<T, D>;
|
|
@@ -95,8 +95,9 @@ class AbstractFirestoreDocument {
|
|
|
95
95
|
}
|
|
96
96
|
exports.AbstractFirestoreDocument = AbstractFirestoreDocument;
|
|
97
97
|
function limitedFirestoreDocumentAccessorFactory(config) {
|
|
98
|
-
const { firestoreContext, firestoreAccessorDriver, makeDocument, accessorFactory: interceptAccessorFactory, converter, modelIdentity } = config;
|
|
98
|
+
const { firestoreContext, firestoreAccessorDriver, makeDocument, accessorFactory: interceptAccessorFactory, converter: inputConverter, converterFactory: inputConverterFactory, modelIdentity } = config;
|
|
99
99
|
const expectedCollectionName = firestoreAccessorDriver.fuzzedPathForPath ? firestoreAccessorDriver.fuzzedPathForPath(modelIdentity.collectionName) : modelIdentity.collectionName;
|
|
100
|
+
const converterFactory = inputConverterFactory ? (ref) => { var _a; return (ref ? (_a = inputConverterFactory(ref)) !== null && _a !== void 0 ? _a : inputConverter : inputConverter); } : () => inputConverter;
|
|
100
101
|
return (context) => {
|
|
101
102
|
const databaseContext = context !== null && context !== void 0 ? context : config.firestoreAccessorDriver.defaultContextFactory();
|
|
102
103
|
const dataAccessorFactory = interceptAccessorFactory ? interceptAccessorFactory(databaseContext.accessorFactory) : databaseContext.accessorFactory;
|
|
@@ -104,6 +105,7 @@ function limitedFirestoreDocumentAccessorFactory(config) {
|
|
|
104
105
|
if (!ref) {
|
|
105
106
|
throw new Error('ref must be defined.');
|
|
106
107
|
}
|
|
108
|
+
const converter = converterFactory(ref);
|
|
107
109
|
const accessor = dataAccessorFactory.accessorFor(ref.withConverter(converter));
|
|
108
110
|
return makeDocument(accessor, documentAccessor);
|
|
109
111
|
}
|
|
@@ -113,6 +115,7 @@ function limitedFirestoreDocumentAccessorFactory(config) {
|
|
|
113
115
|
if (((_a = ref.parent) === null || _a === void 0 ? void 0 : _a.id) !== expectedCollectionName) {
|
|
114
116
|
throw new Error(`unexpected key/path "${fullPath}" for expected type "${modelIdentity.collectionName}"/"${modelIdentity.modelType}".`);
|
|
115
117
|
}
|
|
118
|
+
const converter = converterFactory(ref);
|
|
116
119
|
return ref.withConverter(converter);
|
|
117
120
|
}
|
|
118
121
|
function loadDocumentForKey(fullPath) {
|
|
@@ -120,7 +123,8 @@ function limitedFirestoreDocumentAccessorFactory(config) {
|
|
|
120
123
|
return loadDocument(ref);
|
|
121
124
|
}
|
|
122
125
|
const documentAccessor = {
|
|
123
|
-
converter,
|
|
126
|
+
converter: inputConverter,
|
|
127
|
+
converterFactory,
|
|
124
128
|
modelIdentity,
|
|
125
129
|
loadDocumentFrom(document) {
|
|
126
130
|
return loadDocument(document.documentRef);
|
|
@@ -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;;;AAE1G,wCAAyC;AAKzC,yCAAkM;AAGlM,
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export * from './context.batch';
|
|
|
8
8
|
export * from './context.default';
|
|
9
9
|
export * from './context.transaction';
|
|
10
10
|
export * from './context';
|
|
11
|
+
export * from './converter';
|
|
11
12
|
export * from './document';
|
|
12
13
|
export * from './document.utility';
|
|
13
14
|
export * from './document.rxjs';
|
|
@@ -11,6 +11,7 @@ tslib_1.__exportStar(require("./context.batch"), exports);
|
|
|
11
11
|
tslib_1.__exportStar(require("./context.default"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./context.transaction"), exports);
|
|
13
13
|
tslib_1.__exportStar(require("./context"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./converter"), exports);
|
|
14
15
|
tslib_1.__exportStar(require("./document"), exports);
|
|
15
16
|
tslib_1.__exportStar(require("./document.utility"), exports);
|
|
16
17
|
tslib_1.__exportStar(require("./document.rxjs"), exports);
|
|
@@ -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;AACnC,0DAAgC;AAChC,sDAA4B"}
|
|
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,sDAA4B;AAC5B,qDAA2B;AAC3B,6DAAmC;AACnC,0DAAgC;AAChC,sDAA4B"}
|
package/src/lib/model/index.d.ts
CHANGED
package/src/lib/model/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/model/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/model/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,mDAAyB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './system';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/model/system/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { GrantedSysAdminRole } from '@dereekb/model';
|
|
2
|
+
import { AbstractFirestoreDocument } from '../../common/firestore/accessor/document';
|
|
3
|
+
import { FirestoreCollection } from '../../common/firestore/collection/collection';
|
|
4
|
+
import { FirestoreContext } from '../../common/firestore/context';
|
|
5
|
+
import { CollectionReference } from '../../common/firestore/types';
|
|
6
|
+
import { ModelFieldMapFunctionsConfig } from '@dereekb/util';
|
|
7
|
+
export interface SystemStateFirestoreCollections {
|
|
8
|
+
readonly systemStateCollection: SystemStateFirestoreCollection;
|
|
9
|
+
}
|
|
10
|
+
export declare type SystemStateTypes = typeof systemStateIdentity;
|
|
11
|
+
export declare const systemStateIdentity: import("../../common/firestore/collection/collection").RootFirestoreModelIdentity<"systemState", "sys">;
|
|
12
|
+
/**
|
|
13
|
+
* Used to identify a SystemStateId.
|
|
14
|
+
*/
|
|
15
|
+
export declare type SystemStateTypeIdentifier = string;
|
|
16
|
+
/**
|
|
17
|
+
* Used to identify a SystemStateId.
|
|
18
|
+
*/
|
|
19
|
+
export declare type SystemStateId = SystemStateTypeIdentifier;
|
|
20
|
+
/**
|
|
21
|
+
* Arbitrary data stored within a SystemState. Stored values should always be either a string, number, or boolean.
|
|
22
|
+
*/
|
|
23
|
+
export declare type SystemStateStoredData = Record<string, any>;
|
|
24
|
+
/**
|
|
25
|
+
* A collection used for recording the current state of system subcomponents. System states for a given identifier are treated as a system-wide singleton/state/setting.
|
|
26
|
+
*
|
|
27
|
+
* For example, a SystemState with a specific SystemStateId may be relied on for information about the previous update, etc.
|
|
28
|
+
*/
|
|
29
|
+
export interface SystemState<T extends SystemStateStoredData = SystemStateStoredData> {
|
|
30
|
+
data: T;
|
|
31
|
+
}
|
|
32
|
+
export declare type SystemStateRoles = GrantedSysAdminRole;
|
|
33
|
+
/**
|
|
34
|
+
* Refers to a singleton SystemState based on this model's identifier.
|
|
35
|
+
*/
|
|
36
|
+
export declare class SystemStateDocument<T extends SystemStateStoredData = SystemStateStoredData> extends AbstractFirestoreDocument<SystemState<T>, SystemStateDocument<T>, typeof systemStateIdentity> {
|
|
37
|
+
get modelIdentity(): import("../../common/firestore/collection/collection").RootFirestoreModelIdentity<"systemState", "sys">;
|
|
38
|
+
}
|
|
39
|
+
export declare const systemStateConverter: import("../..").SnapshotConverterFunctions<SystemState<SystemStateStoredData>, Partial<import("@dereekb/util").ReplaceType<SystemState<SystemStateStoredData>, import("@dereekb/util").MaybeMap<object>, any>>>;
|
|
40
|
+
export declare function systemStateCollectionReference(context: FirestoreContext): CollectionReference<SystemState>;
|
|
41
|
+
export declare type SystemStateFirestoreCollection = FirestoreCollection<SystemState, SystemStateDocument>;
|
|
42
|
+
/**
|
|
43
|
+
* A ModelFieldMapFunctionsConfig used for data conversion.
|
|
44
|
+
*/
|
|
45
|
+
export declare type SystemStateStoredDataFieldConverterConfig<T extends SystemStateStoredData = SystemStateStoredData> = ModelFieldMapFunctionsConfig<T, any>;
|
|
46
|
+
export declare type SystemStateStoredDataConverterMap = {
|
|
47
|
+
[key: string]: SystemStateStoredDataFieldConverterConfig<any>;
|
|
48
|
+
};
|
|
49
|
+
export declare function systemStateFirestoreCollection(firestoreContext: FirestoreContext, converters: SystemStateStoredDataConverterMap): SystemStateFirestoreCollection;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.systemStateFirestoreCollection = exports.systemStateCollectionReference = exports.systemStateConverter = exports.SystemStateDocument = exports.systemStateIdentity = void 0;
|
|
4
|
+
const document_1 = require("../../common/firestore/accessor/document");
|
|
5
|
+
const collection_1 = require("../../common/firestore/collection/collection");
|
|
6
|
+
const snapshot_1 = require("../../common/firestore/snapshot/snapshot");
|
|
7
|
+
const snapshot_field_1 = require("../../common/firestore/snapshot/snapshot.field");
|
|
8
|
+
const util_1 = require("@dereekb/util");
|
|
9
|
+
// MARK: Mock Item
|
|
10
|
+
exports.systemStateIdentity = (0, collection_1.firestoreModelIdentity)('systemState', 'sys');
|
|
11
|
+
/**
|
|
12
|
+
* Refers to a singleton SystemState based on this model's identifier.
|
|
13
|
+
*/
|
|
14
|
+
class SystemStateDocument extends document_1.AbstractFirestoreDocument {
|
|
15
|
+
get modelIdentity() {
|
|
16
|
+
return exports.systemStateIdentity;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.SystemStateDocument = SystemStateDocument;
|
|
20
|
+
exports.systemStateConverter = (0, snapshot_1.snapshotConverterFunctions)({
|
|
21
|
+
fields: {
|
|
22
|
+
data: (0, snapshot_field_1.firestorePassThroughField)()
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
function systemStateCollectionReference(context) {
|
|
26
|
+
return context.collection(exports.systemStateIdentity.collectionName);
|
|
27
|
+
}
|
|
28
|
+
exports.systemStateCollectionReference = systemStateCollectionReference;
|
|
29
|
+
function systemStateFirestoreCollection(firestoreContext, converters) {
|
|
30
|
+
const mappedConvertersGetter = (0, util_1.cachedGetter)(() => (0, util_1.mapObjectMap)(converters, (dataConverter) => {
|
|
31
|
+
return (0, snapshot_1.snapshotConverterFunctions)({
|
|
32
|
+
fields: {
|
|
33
|
+
data: dataConverter
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}));
|
|
37
|
+
return firestoreContext.firestoreCollection({
|
|
38
|
+
converter: exports.systemStateConverter,
|
|
39
|
+
converterFactory: (ref) => {
|
|
40
|
+
const type = ref.id;
|
|
41
|
+
return mappedConvertersGetter()[type];
|
|
42
|
+
},
|
|
43
|
+
modelIdentity: exports.systemStateIdentity,
|
|
44
|
+
collection: systemStateCollectionReference(firestoreContext),
|
|
45
|
+
makeDocument: (a, d) => {
|
|
46
|
+
return new SystemStateDocument(a, d);
|
|
47
|
+
},
|
|
48
|
+
firestoreContext
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
exports.systemStateFirestoreCollection = systemStateFirestoreCollection;
|
|
52
|
+
//# sourceMappingURL=system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/model/system/system.ts"],"names":[],"mappings":";;;AACA,uEAAqF;AACrF,6EAA2G;AAE3G,uEAAsF;AAEtF,mFAA2F;AAC3F,wCAAyF;AASzF,kBAAkB;AACL,QAAA,mBAAmB,GAAG,IAAA,mCAAsB,EAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AA4BhF;;GAEG;AACH,MAAa,mBAA6E,SAAQ,oCAA6F;IAC7L,IAAI,aAAa;QACf,OAAO,2BAAmB,CAAC;IAC7B,CAAC;CACF;AAJD,kDAIC;AAEY,QAAA,oBAAoB,GAAG,IAAA,qCAA0B,EAAc;IAC1E,MAAM,EAAE;QACN,IAAI,EAAE,IAAA,0CAAyB,GAAE;KAClC;CACF,CAAC,CAAC;AAEH,SAAgB,8BAA8B,CAAC,OAAyB;IACtE,OAAO,OAAO,CAAC,UAAU,CAAC,2BAAmB,CAAC,cAAc,CAAC,CAAC;AAChE,CAAC;AAFD,wEAEC;AAaD,SAAgB,8BAA8B,CAAC,gBAAkC,EAAE,UAA6C;IAC9H,MAAM,sBAAsB,GAAG,IAAA,mBAAY,EAAC,GAAG,EAAE,CAC/C,IAAA,mBAAY,EAAC,UAAU,EAAE,CAAC,aAAa,EAAE,EAAE;QACzC,OAAO,IAAA,qCAA0B,EAAc;YAC7C,MAAM,EAAE;gBACN,IAAI,EAAE,aAAa;aACpB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,gBAAgB,CAAC,mBAAmB,CAAC;QAC1C,SAAS,EAAE,4BAAoB;QAC/B,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,MAAM,IAAI,GAA8B,GAAG,CAAC,EAAE,CAAC;YAC/C,OAAO,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,aAAa,EAAE,2BAAmB;QAClC,UAAU,EAAE,8BAA8B,CAAC,gBAAgB,CAAC;QAC5D,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,OAAO,IAAI,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,gBAAgB;KACjB,CAAC,CAAC;AACL,CAAC;AAxBD,wEAwBC"}
|
package/test/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
# [9.11.0](https://github.com/dereekb/dbx-components/compare/v9.10.4-dev...v9.11.0) (2022-10-09)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
5
9
|
## [9.10.4](https://github.com/dereekb/dbx-components/compare/v9.10.3-dev...v9.10.4) (2022-10-07)
|
|
6
10
|
|
|
7
11
|
|
package/test/package.json
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase/test",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.11.0",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"typings": "./src/index.d.ts",
|
|
7
7
|
"dependencies": {},
|
|
8
8
|
"peerDependencies": {
|
|
9
|
-
"@dereekb/util/test": "9.
|
|
10
|
-
"@dereekb/util": "9.
|
|
9
|
+
"@dereekb/util/test": "9.11.0",
|
|
10
|
+
"@dereekb/util": "9.11.0",
|
|
11
11
|
"lodash.isequal": "^4.5.0",
|
|
12
12
|
"make-error": "^1.3.0",
|
|
13
13
|
"class-validator": "^0.13.2",
|
|
14
14
|
"ts-essentials": "^9.1.2",
|
|
15
15
|
"extra-set": "^2.2.11",
|
|
16
|
-
"@dereekb/firebase": "9.
|
|
16
|
+
"@dereekb/firebase": "9.11.0",
|
|
17
17
|
"rxjs": "^7.5.0",
|
|
18
18
|
"firebase": "^9.9.2",
|
|
19
19
|
"class-transformer": "^0.5.1",
|
|
20
|
-
"@dereekb/rxjs": "9.
|
|
20
|
+
"@dereekb/rxjs": "9.11.0",
|
|
21
21
|
"ms": "^3.0.0-canary.1",
|
|
22
|
-
"@dereekb/model": "9.
|
|
23
|
-
"@dereekb/date": "9.
|
|
22
|
+
"@dereekb/model": "9.11.0",
|
|
23
|
+
"@dereekb/date": "9.11.0",
|
|
24
24
|
"date-fns": "^2.29.0",
|
|
25
25
|
"date-fns-tz": "^1.3.0",
|
|
26
26
|
"rrule": "git+https://git@github.com/dereekb/rrule#2b13b1ea881059ba2ecfec380e12ef244ef54570",
|