@dereekb/firebase-server 12.1.4 → 12.1.6
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 +8 -0
- package/mailgun/package.json +1 -1
- package/model/package.json +1 -1
- package/package.json +1 -1
- package/src/lib/nest/app.js +8 -0
- package/src/lib/nest/app.js.map +1 -1
- package/src/lib/nest/middleware/appcheck.middleware.d.ts +6 -2
- package/src/lib/nest/middleware/appcheck.middleware.js +20 -11
- package/src/lib/nest/middleware/appcheck.middleware.js.map +1 -1
- package/src/lib/nest/middleware/globalprefix.d.ts +7 -0
- package/src/lib/nest/middleware/globalprefix.js +11 -0
- package/src/lib/nest/middleware/globalprefix.js.map +1 -0
- package/test/package.json +1 -1
- package/zoho/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [12.1.6](https://github.com/dereekb/dbx-components/compare/v12.1.5-dev...v12.1.6) (2025-06-04)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [12.1.5](https://github.com/dereekb/dbx-components/compare/v12.1.4-dev...v12.1.5) (2025-05-30)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
5
13
|
## [12.1.4](https://github.com/dereekb/dbx-components/compare/v12.1.3-dev...v12.1.4) (2025-05-22)
|
|
6
14
|
|
|
7
15
|
|
package/mailgun/package.json
CHANGED
package/model/package.json
CHANGED
package/package.json
CHANGED
package/src/lib/nest/app.js
CHANGED
|
@@ -12,6 +12,7 @@ const storage_module_1 = require("./storage/storage.module");
|
|
|
12
12
|
const env_service_1 = require("../env/env.service");
|
|
13
13
|
const env_1 = require("./env");
|
|
14
14
|
const nestjs_1 = require("@dereekb/nestjs");
|
|
15
|
+
const globalprefix_1 = require("./middleware/globalprefix");
|
|
15
16
|
class FirebaseNestServerRootModule {
|
|
16
17
|
}
|
|
17
18
|
exports.FirebaseNestServerRootModule = FirebaseNestServerRootModule;
|
|
@@ -57,6 +58,13 @@ function nestServerInstance(config) {
|
|
|
57
58
|
forceBucket: forceStorageBucket
|
|
58
59
|
}));
|
|
59
60
|
}
|
|
61
|
+
// provide the global prefix config to the app
|
|
62
|
+
providers.push({
|
|
63
|
+
provide: globalprefix_1.GlobalRoutePrefixConfig,
|
|
64
|
+
useValue: {
|
|
65
|
+
globalApiRoutePrefix
|
|
66
|
+
}
|
|
67
|
+
});
|
|
60
68
|
const providersModule = {
|
|
61
69
|
module: FirebaseNestServerRootModule,
|
|
62
70
|
imports,
|
package/src/lib/nest/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/nest/app.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/nest/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,16 +2,20 @@ import { type NestMiddleware } from '@nestjs/common';
|
|
|
2
2
|
import { type Request } from 'firebase-functions/v2/https';
|
|
3
3
|
import { type Response } from 'express';
|
|
4
4
|
import { type Maybe } from '@dereekb/util';
|
|
5
|
+
import { GlobalRoutePrefixConfig } from './globalprefix';
|
|
5
6
|
/**
|
|
6
7
|
* Middleware that verifies the X-Firebase-AppCheck header using admin.
|
|
7
8
|
*
|
|
8
9
|
* It ignores all webhook paths by default.
|
|
9
10
|
*/
|
|
10
11
|
export declare class FirebaseAppCheckMiddleware implements NestMiddleware {
|
|
12
|
+
private readonly globalRoutePrefixConfig?;
|
|
11
13
|
private readonly logger;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
private readonly _ignoredWebhookPath;
|
|
15
|
+
constructor(globalRoutePrefixConfig?: Maybe<GlobalRoutePrefixConfig>);
|
|
14
16
|
use(req: Request, res: Response, next: (error?: Error | unknown) => void): Promise<void>;
|
|
17
|
+
isIgnoredRequest(req: Request): boolean;
|
|
18
|
+
isIgnoredPath(path: string): boolean;
|
|
15
19
|
}
|
|
16
20
|
/**
|
|
17
21
|
* Verifies the AppCheck parameter. If it fails, a value is returned.
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var FirebaseAppCheckMiddleware_1;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.FirebaseAppCheckMiddleware = void 0;
|
|
5
4
|
exports.verifyAppCheckInRequest = verifyAppCheckInRequest;
|
|
@@ -7,22 +6,22 @@ const tslib_1 = require("tslib");
|
|
|
7
6
|
const admin = require("firebase-admin");
|
|
8
7
|
const common_1 = require("@nestjs/common");
|
|
9
8
|
const nestjs_1 = require("@dereekb/nestjs");
|
|
9
|
+
const globalprefix_1 = require("./globalprefix");
|
|
10
10
|
/**
|
|
11
11
|
* Middleware that verifies the X-Firebase-AppCheck header using admin.
|
|
12
12
|
*
|
|
13
13
|
* It ignores all webhook paths by default.
|
|
14
14
|
*/
|
|
15
|
-
let FirebaseAppCheckMiddleware =
|
|
15
|
+
let FirebaseAppCheckMiddleware = class FirebaseAppCheckMiddleware {
|
|
16
|
+
globalRoutePrefixConfig;
|
|
16
17
|
logger = new common_1.Logger('FirebaseAppCheckMiddleware');
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
static isIgnoredPath(path) {
|
|
22
|
-
return path.startsWith(nestjs_1.DEFAULT_BASE_WEBHOOK_PATH);
|
|
18
|
+
_ignoredWebhookPath;
|
|
19
|
+
constructor(globalRoutePrefixConfig) {
|
|
20
|
+
this.globalRoutePrefixConfig = globalRoutePrefixConfig;
|
|
21
|
+
this._ignoredWebhookPath = this.globalRoutePrefixConfig?.globalApiRoutePrefix ? `${this.globalRoutePrefixConfig.globalApiRoutePrefix}${nestjs_1.DEFAULT_BASE_WEBHOOK_PATH}` : nestjs_1.DEFAULT_BASE_WEBHOOK_PATH;
|
|
23
22
|
}
|
|
24
23
|
async use(req, res, next) {
|
|
25
|
-
const isIgnoredRoute =
|
|
24
|
+
const isIgnoredRoute = this.isIgnoredRequest(req);
|
|
26
25
|
let error;
|
|
27
26
|
if (!isIgnoredRoute) {
|
|
28
27
|
error = await verifyAppCheckInRequest(req);
|
|
@@ -32,10 +31,20 @@ let FirebaseAppCheckMiddleware = FirebaseAppCheckMiddleware_1 = class FirebaseAp
|
|
|
32
31
|
}
|
|
33
32
|
next(error);
|
|
34
33
|
}
|
|
34
|
+
isIgnoredRequest(req) {
|
|
35
|
+
const isIgnoredRoute = req.skipAppCheck || this.isIgnoredPath(req.baseUrl);
|
|
36
|
+
return isIgnoredRoute;
|
|
37
|
+
}
|
|
38
|
+
isIgnoredPath(path) {
|
|
39
|
+
return path.startsWith(this._ignoredWebhookPath);
|
|
40
|
+
}
|
|
35
41
|
};
|
|
36
42
|
exports.FirebaseAppCheckMiddleware = FirebaseAppCheckMiddleware;
|
|
37
|
-
exports.FirebaseAppCheckMiddleware = FirebaseAppCheckMiddleware =
|
|
38
|
-
(0, common_1.Injectable)()
|
|
43
|
+
exports.FirebaseAppCheckMiddleware = FirebaseAppCheckMiddleware = tslib_1.__decorate([
|
|
44
|
+
(0, common_1.Injectable)(),
|
|
45
|
+
tslib_1.__param(0, (0, common_1.Optional)()),
|
|
46
|
+
tslib_1.__param(0, (0, common_1.Inject)(globalprefix_1.GlobalRoutePrefixConfig)),
|
|
47
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
39
48
|
], FirebaseAppCheckMiddleware);
|
|
40
49
|
/**
|
|
41
50
|
* Verifies the AppCheck parameter. If it fails, a value is returned.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appcheck.middleware.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/middleware/appcheck.middleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"appcheck.middleware.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/middleware/appcheck.middleware.ts"],"names":[],"mappings":";;;AA0DA,0DAgBC;;AA1ED,wCAAwC;AACxC,2CAA+G;AAK/G,4CAA4D;AAC5D,iDAAyD;AAEzD;;;;GAIG;AAEI,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAKqC;IAJzD,MAAM,GAAG,IAAI,eAAM,CAAC,4BAA4B,CAAC,CAAC;IAElD,mBAAmB,CAAY;IAEhD,YAA0E,uBAAwD;QAAxD,4BAAuB,GAAvB,uBAAuB,CAAiC;QAChI,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,GAAG,kCAAyB,EAAE,CAAC,CAAC,CAAC,kCAAyB,CAAC;IACjM,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAuC;QAC5E,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,KAAmB,CAAC;QAExB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,KAAK,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,CAAC;YAE3C,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,GAAY;QAC3B,MAAM,cAAc,GAAI,GAAuB,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChG,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACnD,CAAC;CACF,CAAA;AAjCY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;IAME,mBAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,mBAAA,IAAA,eAAM,EAAC,sCAAuB,CAAC,CAAA;;GAL7C,0BAA0B,CAiCtC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,uBAAuB,CAAC,GAAY;IACxD,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACxD,IAAI,KAAmB,CAAC;IAExB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,KAAK,GAAG,IAAI,2BAAkB,EAAE,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,2BAAkB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GlobalRoutePrefixConfig = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Can be injected to retrieve information about the global prefix configured for the app.
|
|
6
|
+
*/
|
|
7
|
+
class GlobalRoutePrefixConfig {
|
|
8
|
+
globalApiRoutePrefix;
|
|
9
|
+
}
|
|
10
|
+
exports.GlobalRoutePrefixConfig = GlobalRoutePrefixConfig;
|
|
11
|
+
//# sourceMappingURL=globalprefix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalprefix.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/middleware/globalprefix.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAsB,uBAAuB;IAClC,oBAAoB,CAAiB;CAC/C;AAFD,0DAEC"}
|
package/test/package.json
CHANGED