@dereekb/firebase-server 5.0.1 → 5.1.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 CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ # [5.1.0](https://github.com/dereekb/dbx-components/compare/v5.0.1-dev...v5.1.0) (2022-05-27)
6
+
7
+
8
+ ### Features
9
+
10
+ * added FirebaseAppCheckMiddleware ([25ddc4e](https://github.com/dereekb/dbx-components/commit/25ddc4e7ae18d6ef96c38ed529c71313884b7544))
11
+
12
+
13
+
5
14
  ## [5.0.1](https://github.com/dereekb/dbx-components/compare/v5.0.0-dev...v5.0.1) (2022-05-26)
6
15
 
7
16
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server",
3
- "version": "5.0.1",
3
+ "version": "5.1.0",
4
4
  "devDependencies": {
5
5
  "firebase-functions-test": "2.0.2"
6
6
  },
@@ -21,25 +21,25 @@
21
21
  "peerDependencies": {
22
22
  "firebase-admin": "^10.2.0",
23
23
  "@nestjs/common": "^8.4.0",
24
- "@dereekb/util": "5.0.1",
24
+ "@dereekb/util": "5.1.0",
25
25
  "make-error": "^1.3.0",
26
26
  "extra-set": "^2.2.11",
27
- "@dereekb/nestjs": "5.0.1",
27
+ "@dereekb/nestjs": "5.1.0",
28
28
  "@nestjs/config": "^2.0.1",
29
29
  "firebase-functions": "^3.21.2",
30
- "@dereekb/firebase": "5.0.1",
30
+ "@dereekb/firebase": "5.1.0",
31
31
  "rxjs": "^7.0.0",
32
32
  "rxfire": "^6.0.3",
33
33
  "firebase": "^9.8.0",
34
- "@dereekb/rxjs": "5.0.1",
34
+ "@dereekb/rxjs": "5.1.0",
35
35
  "ms": "^3.0.0-canary.1",
36
- "@dereekb/date": "5.0.1",
36
+ "@dereekb/date": "5.1.0",
37
37
  "class-transformer": "^0.5.1",
38
38
  "date-fns": "^2.28.0",
39
39
  "class-validator": "^0.13.2",
40
40
  "date-fns-tz": "^1.3.0",
41
41
  "rrule": "git+https://git@github.com/dereekb/rrule.git#17adf5708d6567b4d01a3a8afd106261421ea492",
42
- "@dereekb/model": "5.0.1",
42
+ "@dereekb/model": "5.1.0",
43
43
  "@google-cloud/firestore": "^5.0.2",
44
44
  "@nestjs/core": "^8.4.0",
45
45
  "@nestjs/platform-express": "^8.4.0",
@@ -40,6 +40,10 @@ export interface NestServerInstanceConfig<T> {
40
40
  * Whether or not to configure webhook usage. This will configure routes to use
41
41
  */
42
42
  readonly configureWebhooks?: boolean;
43
+ /**
44
+ * Whether or not to verify with app check. Is true by default.
45
+ */
46
+ readonly appCheckEnabled?: boolean;
43
47
  /**
44
48
  * Additional nest application options.
45
49
  */
@@ -8,6 +8,7 @@ const platform_express_1 = require("@nestjs/platform-express");
8
8
  const express = require("express");
9
9
  const firebase_nest_1 = require("../firebase/firebase.nest");
10
10
  const webhook_1 = require("./middleware/webhook");
11
+ const appcheck_module_1 = require("./middleware/appcheck.module");
11
12
  class FirebaseNestServerRootModule {
12
13
  }
13
14
  exports.FirebaseNestServerRootModule = FirebaseNestServerRootModule;
@@ -30,6 +31,9 @@ function nestServerInstance(config) {
30
31
  if (config.configureWebhooks) {
31
32
  imports.push(webhook_1.ConfigureFirebaseWebhookMiddlewareModule);
32
33
  }
34
+ if (config.appCheckEnabled != false) {
35
+ imports.push(appcheck_module_1.ConfigureFirebaseAppCheckMiddlewareModule);
36
+ }
33
37
  const providersModule = {
34
38
  module: FirebaseNestServerRootModule,
35
39
  imports,
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/nest/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/nest/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Request } from 'express';
2
+ export interface AppCheckRequest extends Request {
3
+ skipAppCheck?: boolean;
4
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * nestjs decorator that will instruct FirebaseAppCheckMiddleware to skip AppCheck for related requests.
3
+ */
4
+ export declare const SkipAppCheck: (...dataOrPipes: any[]) => ParameterDecorator;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SkipAppCheck = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ /**
7
+ * nestjs decorator that will instruct FirebaseAppCheckMiddleware to skip AppCheck for related requests.
8
+ */
9
+ exports.SkipAppCheck = (0, common_1.createParamDecorator)((_, context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
10
+ const req = context.switchToHttp().getRequest();
11
+ req.skipAppCheck = true;
12
+ }));
13
+ //# sourceMappingURL=appcheck.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appcheck.decorator.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/middleware/appcheck.decorator.ts"],"names":[],"mappings":";;;;AAEA,2CAAwE;AAExE;;GAEG;AACU,QAAA,YAAY,GAAG,IAAA,6BAAoB,EAAC,CAAO,CAAC,EAAE,OAAyB,EAAE,EAAE;IACtF,MAAM,GAAG,GAAY,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;IACjE,GAAuB,CAAC,YAAY,GAAG,IAAI,CAAC;AAC/C,CAAC,CAAA,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=appcheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appcheck.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/middleware/appcheck.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ import { NestMiddleware } from '@nestjs/common';
2
+ import { Request } from 'firebase-functions/v2/https';
3
+ import { Response } from 'express';
4
+ import { Maybe } from '@dereekb/util';
5
+ /**
6
+ * Middleware that verifies the X-Firebase-AppCheck header using admin.
7
+ *
8
+ * It ignores all webhook paths by default.
9
+ */
10
+ export declare class FirebaseAppCheckMiddleware implements NestMiddleware {
11
+ private readonly logger;
12
+ static isIgnoredRequest(req: Request): boolean;
13
+ static isIgnoredPath(path: string): boolean;
14
+ use(req: Request, res: Response, next: (error?: Error | unknown) => void): Promise<void>;
15
+ }
16
+ /**
17
+ * Verifies the AppCheck parameter. If it fails, a value is returned.
18
+ *
19
+ * @param req
20
+ * @param res
21
+ * @param next
22
+ * @returns
23
+ */
24
+ export declare function verifyAppCheckInRequest(req: Request): Promise<Maybe<Error>>;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var FirebaseAppCheckMiddleware_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.verifyAppCheckInRequest = exports.FirebaseAppCheckMiddleware = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const admin = require("firebase-admin");
7
+ const common_1 = require("@nestjs/common");
8
+ const nestjs_1 = require("@dereekb/nestjs");
9
+ /**
10
+ * Middleware that verifies the X-Firebase-AppCheck header using admin.
11
+ *
12
+ * It ignores all webhook paths by default.
13
+ */
14
+ let FirebaseAppCheckMiddleware = FirebaseAppCheckMiddleware_1 = class FirebaseAppCheckMiddleware {
15
+ constructor() {
16
+ this.logger = new common_1.Logger('FirebaseAppCheckMiddleware');
17
+ }
18
+ static isIgnoredRequest(req) {
19
+ const isIgnoredRoute = req.skipAppCheck || FirebaseAppCheckMiddleware_1.isIgnoredPath(req.baseUrl);
20
+ return isIgnoredRoute;
21
+ }
22
+ static isIgnoredPath(path) {
23
+ return path.startsWith(nestjs_1.DEFAULT_BASE_WEBHOOK_PATH);
24
+ }
25
+ use(req, res, next) {
26
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
27
+ const isIgnoredRoute = FirebaseAppCheckMiddleware_1.isIgnoredRequest(req);
28
+ let error;
29
+ if (!isIgnoredRoute) {
30
+ error = yield verifyAppCheckInRequest(req);
31
+ if (error) {
32
+ this.logger.error('app check token failed verify');
33
+ }
34
+ }
35
+ next(error);
36
+ });
37
+ }
38
+ };
39
+ FirebaseAppCheckMiddleware = FirebaseAppCheckMiddleware_1 = tslib_1.__decorate([
40
+ (0, common_1.Injectable)()
41
+ ], FirebaseAppCheckMiddleware);
42
+ exports.FirebaseAppCheckMiddleware = FirebaseAppCheckMiddleware;
43
+ /**
44
+ * Verifies the AppCheck parameter. If it fails, a value is returned.
45
+ *
46
+ * @param req
47
+ * @param res
48
+ * @param next
49
+ * @returns
50
+ */
51
+ function verifyAppCheckInRequest(req) {
52
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
53
+ const appCheckToken = req.header('X-Firebase-AppCheck');
54
+ let error;
55
+ if (!appCheckToken) {
56
+ error = new common_1.ForbiddenException();
57
+ }
58
+ else {
59
+ // verify the token
60
+ try {
61
+ yield admin.appCheck().verifyToken(appCheckToken);
62
+ }
63
+ catch (e) {
64
+ error = new common_1.ForbiddenException();
65
+ }
66
+ }
67
+ return error;
68
+ });
69
+ }
70
+ exports.verifyAppCheckInRequest = verifyAppCheckInRequest;
71
+ //# sourceMappingURL=appcheck.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appcheck.middleware.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/middleware/appcheck.middleware.ts"],"names":[],"mappings":";;;;;AAAA,wCAAwC;AACxC,2CAAwF;AAKxF,4CAA4D;AAE5D;;;;GAIG;AAEH,IAAa,0BAA0B,kCAAvC,MAAa,0BAA0B;IAAvC;QAEmB,WAAM,GAAG,IAAI,eAAM,CAAC,4BAA4B,CAAC,CAAC;IA2BrE,CAAC;IAzBC,MAAM,CAAC,gBAAgB,CAAC,GAAY;QAClC,MAAM,cAAc,GAAI,GAAuB,CAAC,YAAY,IAAI,4BAA0B,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtH,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,kCAAyB,CAAC,CAAC;IACpD,CAAC;IAEK,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAuC;;YAC5E,MAAM,cAAc,GAAG,4BAA0B,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAExE,IAAI,KAAmB,CAAC;YAExB,IAAI,CAAC,cAAc,EAAE;gBACnB,KAAK,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,CAAC;gBAE3C,IAAI,KAAK,EAAE;oBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;iBACpD;aACF;YAED,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;KAAA;CAEF,CAAA;AA7BY,0BAA0B;IADtC,IAAA,mBAAU,GAAE;GACA,0BAA0B,CA6BtC;AA7BY,gEAA0B;AA+BvC;;;;;;;GAOG;AACH,SAAsB,uBAAuB,CAAC,GAAY;;QACxD,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACxD,IAAI,KAAmB,CAAC;QAExB,IAAI,CAAC,aAAa,EAAE;YAClB,KAAK,GAAG,IAAI,2BAAkB,EAAE,CAAC;SAClC;aAAM;YAEL,mBAAmB;YACnB,IAAI;gBACF,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;aACnD;YAAC,OAAO,CAAC,EAAE;gBACV,KAAK,GAAG,IAAI,2BAAkB,EAAE,CAAC;aAClC;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CAAA;AAjBD,0DAiBC"}
@@ -0,0 +1,8 @@
1
+ import { MiddlewareConsumer } from '@nestjs/common';
2
+ /**
3
+ * Convenience class that mirrors the ConfigureAppCheckMiddlewareModule class in @dereekb/nestjs, but for Firebase apps.
4
+ */
5
+ export declare class ConfigureFirebaseAppCheckMiddlewareModule {
6
+ private readonly logger;
7
+ configure(consumer: MiddlewareConsumer): void;
8
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigureFirebaseAppCheckMiddlewareModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const appcheck_middleware_1 = require("./appcheck.middleware");
7
+ /**
8
+ * Convenience class that mirrors the ConfigureAppCheckMiddlewareModule class in @dereekb/nestjs, but for Firebase apps.
9
+ */
10
+ let ConfigureFirebaseAppCheckMiddlewareModule = class ConfigureFirebaseAppCheckMiddlewareModule {
11
+ constructor() {
12
+ this.logger = new common_1.Logger('ConfigureFirebaseAppCheckMiddlewareModule');
13
+ }
14
+ configure(consumer) {
15
+ consumer.apply(appcheck_middleware_1.FirebaseAppCheckMiddleware).forRoutes('*');
16
+ this.logger.debug('Configured firebase webhook routes with proper middleware.');
17
+ }
18
+ };
19
+ ConfigureFirebaseAppCheckMiddlewareModule = tslib_1.__decorate([
20
+ (0, common_1.Module)({})
21
+ ], ConfigureFirebaseAppCheckMiddlewareModule);
22
+ exports.ConfigureFirebaseAppCheckMiddlewareModule = ConfigureFirebaseAppCheckMiddlewareModule;
23
+ //# sourceMappingURL=appcheck.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appcheck.module.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/middleware/appcheck.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAoE;AACpE,+DAAmE;AAEnE;;GAEG;AAEH,IAAa,yCAAyC,GAAtD,MAAa,yCAAyC;IAAtD;QAEmB,WAAM,GAAG,IAAI,eAAM,CAAC,2CAA2C,CAAC,CAAC;IAOpF,CAAC;IALQ,SAAS,CAAC,QAA4B;QAC3C,QAAQ,CAAC,KAAK,CAAC,gDAA0B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;CAEF,CAAA;AATY,yCAAyC;IADrD,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,yCAAyC,CASrD;AATY,8FAAyC"}
@@ -1,2 +1,6 @@
1
+ export * from './appcheck';
2
+ export * from './appcheck.middleware';
3
+ export * from './appcheck.module';
4
+ export * from './appcheck.decorator';
1
5
  export * from './rawbody.middleware';
2
6
  export * from './webhook';
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./appcheck"), exports);
5
+ tslib_1.__exportStar(require("./appcheck.middleware"), exports);
6
+ tslib_1.__exportStar(require("./appcheck.module"), exports);
7
+ tslib_1.__exportStar(require("./appcheck.decorator"), exports);
4
8
  tslib_1.__exportStar(require("./rawbody.middleware"), exports);
5
9
  tslib_1.__exportStar(require("./webhook"), exports);
6
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/middleware/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC;AACrC,oDAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/middleware/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,gEAAsC;AACtC,4DAAkC;AAClC,+DAAqC;AACrC,+DAAqC;AACrC,oDAA0B"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConfigureFirebaseWebhookMiddlewareModule = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const nestjs_1 = require("@dereekb/nestjs");
5
6
  const common_1 = require("@nestjs/common");
6
7
  const rawbody_middleware_1 = require("./rawbody.middleware");
7
8
  /**
@@ -14,10 +15,7 @@ let ConfigureFirebaseWebhookMiddlewareModule = class ConfigureFirebaseWebhookMid
14
15
  this.logger = new common_1.Logger('ConfigureFirebaseWebhookMiddlewareModule');
15
16
  }
16
17
  configure(consumer) {
17
- consumer.apply(rawbody_middleware_1.FirebaseRawBodyMiddleware).forRoutes({
18
- path: '/webhook/*',
19
- method: common_1.RequestMethod.POST
20
- });
18
+ consumer.apply(rawbody_middleware_1.FirebaseRawBodyMiddleware).forRoutes(nestjs_1.DEFAULT_WEBHOOK_MIDDLEWARE_ROUTE_INFO);
21
19
  this.logger.debug('Configured firebase webhook routes with proper middleware.');
22
20
  }
23
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/middleware/webhook.ts"],"names":[],"mappings":";;;;AAAA,2CAAmF;AACnF,6DAAiE;AAEjE;;;;GAIG;AAEH,IAAa,wCAAwC,GAArD,MAAa,wCAAwC;IAArD;QACmB,WAAM,GAAG,IAAI,eAAM,CAAC,0CAA0C,CAAC,CAAC;IAUnF,CAAC;IARQ,SAAS,CAAC,QAA4B;QAC3C,QAAQ,CAAC,KAAK,CAAC,8CAAyB,CAAC,CAAC,SAAS,CAAC;YAClD,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,sBAAa,CAAC,IAAI;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;CACF,CAAA;AAXY,wCAAwC;IADpD,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,wCAAwC,CAWpD;AAXY,4FAAwC"}
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/middleware/webhook.ts"],"names":[],"mappings":";;;;AAAA,4CAAwE;AACxE,2CAAmF;AACnF,6DAAiE;AAEjE;;;;GAIG;AAEH,IAAa,wCAAwC,GAArD,MAAa,wCAAwC;IAArD;QAEmB,WAAM,GAAG,IAAI,eAAM,CAAC,0CAA0C,CAAC,CAAC;IAOnF,CAAC;IALQ,SAAS,CAAC,QAA4B;QAC3C,QAAQ,CAAC,KAAK,CAAC,8CAAyB,CAAC,CAAC,SAAS,CAAC,8CAAqC,CAAC,CAAC;QAC3F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;CAEF,CAAA;AATY,wCAAwC;IADpD,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,wCAAwC,CASpD;AATY,4FAAwC"}
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
+ # [5.1.0](https://github.com/dereekb/dbx-components/compare/v5.0.1-dev...v5.1.0) (2022-05-27)
6
+
7
+
8
+
5
9
  ## [5.0.1](https://github.com/dereekb/dbx-components/compare/v5.0.0-dev...v5.0.1) (2022-05-26)
6
10
 
7
11
 
package/test/package.json CHANGED
@@ -1,35 +1,35 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/test",
3
- "version": "5.0.1",
3
+ "version": "5.1.0",
4
4
  "main": "./src/index.js",
5
5
  "typings": "./src/index.d.ts",
6
6
  "dependencies": {},
7
7
  "peerDependencies": {
8
- "@dereekb/firebase": "5.0.1",
8
+ "@dereekb/firebase": "5.1.0",
9
9
  "rxjs": "^7.0.0",
10
10
  "rxfire": "^6.0.3",
11
11
  "firebase": "^9.8.0",
12
- "@dereekb/util": "5.0.1",
12
+ "@dereekb/util": "5.1.0",
13
13
  "make-error": "^1.3.0",
14
14
  "extra-set": "^2.2.11",
15
- "@dereekb/rxjs": "5.0.1",
15
+ "@dereekb/rxjs": "5.1.0",
16
16
  "ms": "^3.0.0-canary.1",
17
- "@dereekb/date": "5.0.1",
17
+ "@dereekb/date": "5.1.0",
18
18
  "class-transformer": "^0.5.1",
19
19
  "date-fns": "^2.28.0",
20
20
  "class-validator": "^0.13.2",
21
21
  "date-fns-tz": "^1.3.0",
22
22
  "rrule": "git+https://git@github.com/dereekb/rrule.git#17adf5708d6567b4d01a3a8afd106261421ea492",
23
- "@dereekb/model": "5.0.1",
24
- "@dereekb/util/test": "5.0.1",
23
+ "@dereekb/model": "5.1.0",
24
+ "@dereekb/util/test": "5.1.0",
25
25
  "firebase-admin": "^10.2.0",
26
26
  "jsonwebtoken": "^8.0.0",
27
27
  "firebase-functions": "^3.21.2",
28
28
  "@nestjs/common": "^8.4.0",
29
29
  "@google-cloud/firestore": "^5.0.2",
30
- "@dereekb/firebase/test": "5.0.1",
31
- "@dereekb/firebase-server": "5.0.1",
32
- "@dereekb/nestjs": "5.0.1",
30
+ "@dereekb/firebase/test": "5.1.0",
31
+ "@dereekb/firebase-server": "5.1.0",
32
+ "@dereekb/nestjs": "5.1.0",
33
33
  "@nestjs/config": "^2.0.1",
34
34
  "@nestjs/core": "^8.4.0",
35
35
  "@nestjs/platform-express": "^8.4.0",