@mxpicture/gcp-functions-backend 1.3.88 → 2.1.3
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/dist/factory/IApiFactory.d.ts +10 -0
- package/dist/factory/IApiFactory.d.ts.map +1 -0
- package/dist/factory/IApiFactory.js +9 -0
- package/dist/factory/IApiFactory.js.map +1 -0
- package/dist/factory/IApiStoreFactory.d.ts +10 -0
- package/dist/factory/IApiStoreFactory.d.ts.map +1 -0
- package/dist/factory/IApiStoreFactory.js +10 -0
- package/dist/factory/IApiStoreFactory.js.map +1 -0
- package/dist/factory/index.d.ts +3 -0
- package/dist/factory/index.d.ts.map +1 -0
- package/dist/factory/index.js +4 -0
- package/dist/factory/index.js.map +1 -0
- package/dist/firebase/FirebaseTaskSetup.d.ts.map +1 -1
- package/dist/firebase/FirebaseTaskSetup.js +1 -1
- package/dist/firebase/FirebaseTaskSetup.js.map +1 -1
- package/dist/firebase/firebase.express.d.ts.map +1 -1
- package/dist/firebase/firebase.express.js +3 -3
- package/dist/firebase/firebase.express.js.map +1 -1
- package/dist/function/CompositeBackendFunction.d.ts +39 -0
- package/dist/function/CompositeBackendFunction.d.ts.map +1 -0
- package/dist/function/CompositeBackendFunction.js +103 -0
- package/dist/function/CompositeBackendFunction.js.map +1 -0
- package/dist/function/index.d.ts +1 -0
- package/dist/function/index.d.ts.map +1 -1
- package/dist/function/index.js +1 -0
- package/dist/function/index.js.map +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DocumentData } from "@mxpicture/gcp-functions-common/types";
|
|
2
|
+
import type { Validation } from "../validation/Validation.js";
|
|
3
|
+
import type { BackendBaseApi } from "../api/BackendBaseApi.js";
|
|
4
|
+
export declare abstract class IApiFactory<DTO extends DocumentData, API extends BackendBaseApi<DTO, SIDE_EFFECTS, VAL>, SIDE_EFFECTS extends DocumentData = DocumentData, VAL extends Validation<DTO> = Validation<DTO>> {
|
|
5
|
+
constructor();
|
|
6
|
+
create(): API;
|
|
7
|
+
protected abstract _createApi(): API;
|
|
8
|
+
protected abstract _createValidation(): VAL;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=IApiFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IApiFactory.d.ts","sourceRoot":"","sources":["../../src/factory/IApiFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,8BAAsB,WAAW,CAC/B,GAAG,SAAS,YAAY,EACxB,GAAG,SAAS,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,EAClD,YAAY,SAAS,YAAY,GAAG,YAAY,EAChD,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;;IAItC,MAAM,IAAI,GAAG;IAMpB,SAAS,CAAC,QAAQ,CAAC,UAAU,IAAI,GAAG;IACpC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,GAAG;CAC5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IApiFactory.js","sourceRoot":"","sources":["../../src/factory/IApiFactory.ts"],"names":[],"mappings":"AAIA,MAAM,OAAgB,WAAW;IAM/B,gBAAsB,CAAC;IAEhB,MAAM;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC5C,OAAO,GAAG,CAAC;IACb,CAAC;CAIF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DocumentData, DocumentKeyAdmin } from "@mxpicture/gcp-functions-common/types";
|
|
2
|
+
import type { Store } from "../store/Store.js";
|
|
3
|
+
import type { Validation } from "../validation/Validation.js";
|
|
4
|
+
import type { BackendStoreApi } from "../api/BackendStoreApi.js";
|
|
5
|
+
import { IApiFactory } from "./IApiFactory.js";
|
|
6
|
+
export declare abstract class IApiStoreFactory<STORE_DOC extends DocumentKeyAdmin, DTO extends STORE_DOC, API extends BackendStoreApi<STORE_DOC, DTO, SIDE_EFFECTS, STORE, VAL>, SIDE_EFFECTS extends DocumentData = DocumentData, STORE extends Store<STORE_DOC> = Store<STORE_DOC>, VAL extends Validation<DTO> = Validation<DTO>> extends IApiFactory<DTO, API, SIDE_EFFECTS, VAL> {
|
|
7
|
+
create(): API;
|
|
8
|
+
protected abstract _createStore(): STORE;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=IApiStoreFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IApiStoreFactory.d.ts","sourceRoot":"","sources":["../../src/factory/IApiStoreFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EACjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,8BAAsB,gBAAgB,CACpC,SAAS,SAAS,gBAAgB,EAClC,GAAG,SAAS,SAAS,EACrB,GAAG,SAAS,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,EACrE,YAAY,SAAS,YAAY,GAAG,YAAY,EAChD,KAAK,SAAS,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,EACjD,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAC7C,SAAQ,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC;IAChC,MAAM,IAAI,GAAG;IAO7B,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,KAAK;CACzC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IApiFactory } from "./IApiFactory.js";
|
|
2
|
+
export class IApiStoreFactory extends IApiFactory {
|
|
3
|
+
create() {
|
|
4
|
+
const api = this._createApi();
|
|
5
|
+
api.useStore(this._createStore());
|
|
6
|
+
api.useValidation(this._createValidation());
|
|
7
|
+
return api;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=IApiStoreFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IApiStoreFactory.js","sourceRoot":"","sources":["../../src/factory/IApiStoreFactory.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAgB,gBAOpB,SAAQ,WAAwC;IAChC,MAAM;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAClC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC5C,OAAO,GAAG,CAAC;IACb,CAAC;CAGF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseTaskSetup.d.ts","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskSetup.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"FirebaseTaskSetup.d.ts","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskSetup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// not usable / untested!!!!!!!
|
|
2
|
+
export {};
|
|
2
3
|
// import { CloudTasksClient } from "@google-cloud/tasks";
|
|
3
4
|
// import {
|
|
4
5
|
// GeneratorEnv,
|
|
@@ -6,7 +7,6 @@
|
|
|
6
7
|
// TaskParams,
|
|
7
8
|
// } from "../common/types.common.js";
|
|
8
9
|
// import { google } from "googleapis";
|
|
9
|
-
export {};
|
|
10
10
|
// export class FirebaseTaskSetup {
|
|
11
11
|
// protected config: TaskConfig;
|
|
12
12
|
// public constructor(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseTaskSetup.js","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskSetup.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,0DAA0D;AAC1D,WAAW;AACX,kBAAkB;AAClB,gBAAgB;AAChB,gBAAgB;AAChB,sCAAsC;AACtC,uCAAuC
|
|
1
|
+
{"version":3,"file":"FirebaseTaskSetup.js","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskSetup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.express.d.ts","sourceRoot":"","sources":["../../src/firebase/firebase.express.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,IAAI,CAAC,EAAE;gBACL,GAAG,CAAC,EAAE,MAAM,CAAC;gBACb,OAAO,CAAC,EAAE,OAAO,CAAC;gBAClB,KAAK,CAAC,EAAE,MAAM,CAAC;gBACf,KAAK,CAAC,EAAE,cAAc,CAAC;aACxB,CAAC;SACH;KACF;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAgB/B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,GAChC,WAAW,MAAM,GAAG,IAAI,EACxB,SAAS,MAAM,EAAE,GAAG,IAAI,KACvB,
|
|
1
|
+
{"version":3,"file":"firebase.express.d.ts","sourceRoot":"","sources":["../../src/firebase/firebase.express.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,IAAI,CAAC,EAAE;gBACL,GAAG,CAAC,EAAE,MAAM,CAAC;gBACb,OAAO,CAAC,EAAE,OAAO,CAAC;gBAClB,KAAK,CAAC,EAAE,MAAM,CAAC;gBACf,KAAK,CAAC,EAAE,cAAc,CAAC;aACxB,CAAC;SACH;KACF;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAgB/B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,GAChC,WAAW,MAAM,GAAG,IAAI,EACxB,SAAS,MAAM,EAAE,GAAG,IAAI,KACvB,kBA0DF,CAAC"}
|
|
@@ -84,12 +84,12 @@ export const buildCheckServiceAuth = (audience, routes) => {
|
|
|
84
84
|
return res.status(403).send("Caller service account not allowed");
|
|
85
85
|
}
|
|
86
86
|
req.auth = { service: true, email: payload.email };
|
|
87
|
-
next();
|
|
87
|
+
return next();
|
|
88
88
|
}
|
|
89
89
|
catch (e) {
|
|
90
90
|
console.error("checkServiceAuth Unauthorized", e);
|
|
91
|
-
|
|
92
|
-
res.status(401).send(`Unauthorized: ${
|
|
91
|
+
const message = e instanceof Error ? e.message : typeof e === "string" ? e : String(e);
|
|
92
|
+
return res.status(401).send(`Unauthorized: ${message}`);
|
|
93
93
|
}
|
|
94
94
|
};
|
|
95
95
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.express.js","sourceRoot":"","sources":["../../src/firebase/firebase.express.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"firebase.express.js","sourceRoot":"","sources":["../../src/firebase/firebase.express.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { CompositeFunctionRequest, DocumentData, DocumentKeyAdmin, FunctionResponse } from "@mxpicture/gcp-functions-common/types";
|
|
2
|
+
import type { CallableFunction as ZCallableFunction, HttpsFunction } from "firebase-functions/v2/https";
|
|
3
|
+
import type { ExpressAuthHandler } from "../types/types.express.js";
|
|
4
|
+
import type { BackendBaseApi } from "../api/BackendBaseApi.js";
|
|
5
|
+
import type { IBackendFunction } from "./IBackendFunction.js";
|
|
6
|
+
/**
|
|
7
|
+
* Composite backend function that hosts multiple per-topic {@link IBackendFunction}s
|
|
8
|
+
* behind a single deployed Cloud Function.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* Adds one dispatch level (topic) above the per-topic route dispatch:
|
|
12
|
+
* - Callable envelope: `{ topic, route, data }`.
|
|
13
|
+
* - HTTPS path: `POST /{topic}/{route}` with body `data`.
|
|
14
|
+
*
|
|
15
|
+
* Each registered per-topic function keeps its own routes, auth, and error handling.
|
|
16
|
+
* The composite is purely a topic-level forwarder.
|
|
17
|
+
*/
|
|
18
|
+
export declare class CompositeBackendFunction {
|
|
19
|
+
readonly name: string;
|
|
20
|
+
readonly projectId: string;
|
|
21
|
+
readonly region: string;
|
|
22
|
+
readonly serviceAccount: string;
|
|
23
|
+
protected readonly funcs: Map<string, IBackendFunction<any, any, any, any>>;
|
|
24
|
+
constructor(name: string, projectId: string, region: string, serviceAccount: string);
|
|
25
|
+
get url(): string;
|
|
26
|
+
/**
|
|
27
|
+
* Register a per-topic function under the given topic key.
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* Sets the per-topic API's `functionUrl` to `${this.url}/${topic}` so per-topic code
|
|
31
|
+
* (e.g., Cloud Tasks integration) can derive correct callback URLs.
|
|
32
|
+
*/
|
|
33
|
+
useTopic<STORE_DOC extends DocumentKeyAdmin, DTO extends STORE_DOC, SIDE_EFFECTS extends DocumentData, API extends BackendBaseApi<DTO, SIDE_EFFECTS>>(topic: string, func: IBackendFunction<STORE_DOC, DTO, SIDE_EFFECTS, API>): this;
|
|
34
|
+
/** Flattened `topic/route` strings used by `buildCheckServiceAuth` audience derivation. */
|
|
35
|
+
get routes(): string[];
|
|
36
|
+
buildCallableFunction(): ZCallableFunction<CompositeFunctionRequest<any>, Promise<FunctionResponse<any>>>;
|
|
37
|
+
buildHttpsFunction(auth?: ExpressAuthHandler | null): HttpsFunction;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=CompositeBackendFunction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompositeBackendFunction.d.ts","sourceRoot":"","sources":["../../src/function/CompositeBackendFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EACV,gBAAgB,IAAI,iBAAiB,EACrC,aAAa,EACd,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,qBAAa,wBAAwB;aAKjB,IAAI,EAAE,MAAM;aACZ,SAAS,EAAE,MAAM;aACjB,MAAM,EAAE,MAAM;aACd,cAAc,EAAE,MAAM;IANxC,SAAS,CAAC,QAAQ,CAAC,KAAK,oDAA2D;gBAGjE,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM;IAGxC,IAAW,GAAG,IAAI,MAAM,CAEvB;IAED;;;;;;OAMG;IACI,QAAQ,CACb,SAAS,SAAS,gBAAgB,EAClC,GAAG,SAAS,SAAS,EACrB,YAAY,SAAS,YAAY,EACjC,GAAG,SAAS,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC,EAC7C,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,GAAG,IAAI;IAMjF,2FAA2F;IAC3F,IAAW,MAAM,IAAI,MAAM,EAAE,CAK5B;IAEM,qBAAqB,IAAI,iBAAiB,CAE/C,wBAAwB,CAAC,GAAG,CAAC,EAE7B,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAC/B;IAaM,kBAAkB,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAAG,aAAa;CAqD3E"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { HttpsError, onCall, onRequest } from "firebase-functions/v2/https";
|
|
2
|
+
import express from "express";
|
|
3
|
+
import { buildCheckServiceAuth } from "../firebase/firebase.express.js";
|
|
4
|
+
/**
|
|
5
|
+
* Composite backend function that hosts multiple per-topic {@link IBackendFunction}s
|
|
6
|
+
* behind a single deployed Cloud Function.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* Adds one dispatch level (topic) above the per-topic route dispatch:
|
|
10
|
+
* - Callable envelope: `{ topic, route, data }`.
|
|
11
|
+
* - HTTPS path: `POST /{topic}/{route}` with body `data`.
|
|
12
|
+
*
|
|
13
|
+
* Each registered per-topic function keeps its own routes, auth, and error handling.
|
|
14
|
+
* The composite is purely a topic-level forwarder.
|
|
15
|
+
*/
|
|
16
|
+
export class CompositeBackendFunction {
|
|
17
|
+
name;
|
|
18
|
+
projectId;
|
|
19
|
+
region;
|
|
20
|
+
serviceAccount;
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
+
funcs = new Map();
|
|
23
|
+
constructor(name, projectId, region, serviceAccount) {
|
|
24
|
+
this.name = name;
|
|
25
|
+
this.projectId = projectId;
|
|
26
|
+
this.region = region;
|
|
27
|
+
this.serviceAccount = serviceAccount;
|
|
28
|
+
}
|
|
29
|
+
get url() {
|
|
30
|
+
return `https://${this.region}-${this.projectId}.cloudfunctions.net/${this.name}`;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Register a per-topic function under the given topic key.
|
|
34
|
+
*
|
|
35
|
+
* @remarks
|
|
36
|
+
* Sets the per-topic API's `functionUrl` to `${this.url}/${topic}` so per-topic code
|
|
37
|
+
* (e.g., Cloud Tasks integration) can derive correct callback URLs.
|
|
38
|
+
*/
|
|
39
|
+
useTopic(topic, func) {
|
|
40
|
+
this.funcs.set(topic, func);
|
|
41
|
+
func.api.useFunctionUrl(`${this.url}/${topic}`);
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
/** Flattened `topic/route` strings used by `buildCheckServiceAuth` audience derivation. */
|
|
45
|
+
get routes() {
|
|
46
|
+
const out = [];
|
|
47
|
+
for (const [topic, func] of this.funcs)
|
|
48
|
+
for (const route of func.routes)
|
|
49
|
+
out.push(`${topic}/${route}`);
|
|
50
|
+
return out;
|
|
51
|
+
}
|
|
52
|
+
buildCallableFunction() {
|
|
53
|
+
return onCall({ region: this.region, serviceAccount: this.serviceAccount }, async (req) => {
|
|
54
|
+
const { topic, route, data } = req.data;
|
|
55
|
+
const func = this.funcs.get(topic);
|
|
56
|
+
if (!func)
|
|
57
|
+
throw new HttpsError("invalid-argument", `Topic ${topic} not available`);
|
|
58
|
+
return func.ingress({ route, data }, !!req.auth);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
buildHttpsFunction(auth) {
|
|
62
|
+
const app = express();
|
|
63
|
+
app.use(express.json());
|
|
64
|
+
if (auth === undefined)
|
|
65
|
+
auth = buildCheckServiceAuth(this.url, this.routes);
|
|
66
|
+
const isEmulator = process.env.FUNCTIONS_EMULATOR === "true";
|
|
67
|
+
if (!isEmulator && auth)
|
|
68
|
+
app.use(auth);
|
|
69
|
+
app.use(async (req, res, next) => {
|
|
70
|
+
if (req.method !== "POST")
|
|
71
|
+
return next();
|
|
72
|
+
try {
|
|
73
|
+
// Path: /{topic}/{route}
|
|
74
|
+
const segments = req.path.split("/").filter((s) => s.length > 0);
|
|
75
|
+
if (segments.length !== 2)
|
|
76
|
+
throw new HttpsError("invalid-argument", `Invalid path "${req.path}"; expected /{topic}/{route}`);
|
|
77
|
+
const [topic, route] = segments;
|
|
78
|
+
const func = this.funcs.get(topic);
|
|
79
|
+
if (!func)
|
|
80
|
+
throw new HttpsError("invalid-argument", `Topic ${topic} not available`);
|
|
81
|
+
const result = await func.ingress({ data: req.body, route }, !!req.auth || isEmulator);
|
|
82
|
+
res.json(result.data);
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
if (error instanceof HttpsError) {
|
|
86
|
+
console.error("CompositeBackendFunction failed (http)", error);
|
|
87
|
+
res
|
|
88
|
+
.status(error.httpErrorCode.status)
|
|
89
|
+
.json({ error: error.toJSON() });
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
93
|
+
console.error("CompositeBackendFunction failed (other)", error);
|
|
94
|
+
res.status(500).json({
|
|
95
|
+
error: { code: "", status: "INTERNAL", message },
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
return onRequest({ region: this.region, serviceAccount: this.serviceAccount }, app);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=CompositeBackendFunction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompositeBackendFunction.js","sourceRoot":"","sources":["../../src/function/CompositeBackendFunction.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAGxE;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,wBAAwB;IAKjB;IACA;IACA;IACA;IAPlB,8DAA8D;IAC3C,KAAK,GAAG,IAAI,GAAG,EAAgD,CAAC;IAEnF,YACkB,IAAY,EACZ,SAAiB,EACjB,MAAc,EACd,cAAsB;QAHtB,SAAI,GAAJ,IAAI,CAAQ;QACZ,cAAS,GAAT,SAAS,CAAQ;QACjB,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAQ;IACrC,CAAC;IAEJ,IAAW,GAAG;QACZ,OAAO,WAAW,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,uBAAuB,IAAI,CAAC,IAAI,EAAE,CAAC;IACpF,CAAC;IAED;;;;;;OAMG;IACI,QAAQ,CAKb,KAAa,EAAE,IAAyD;QACxE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2FAA2F;IAC3F,IAAW,MAAM;QACf,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YACpC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;QACjE,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,qBAAqB;QAM1B,OAAO,MAAM,CACX,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5D,KAAK,EAAE,GAAG,EAAE,EAAE;YACZ,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI;gBACP,MAAM,IAAI,UAAU,CAAC,kBAAkB,EAAE,SAAS,KAAK,gBAAgB,CAAC,CAAC;YAC3E,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,kBAAkB,CAAC,IAAgC;QACxD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAExB,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE5E,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,CAAC;QAC7D,IAAI,CAAC,UAAU,IAAI,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEvC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO,IAAI,EAAE,CAAC;YAEzC,IAAI,CAAC;gBACH,yBAAyB;gBACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBACvB,MAAM,IAAI,UAAU,CAClB,kBAAkB,EAClB,iBAAiB,GAAG,CAAC,IAAI,8BAA8B,CACxD,CAAC;gBACJ,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC;gBAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,CAAC,IAAI;oBACP,MAAM,IAAI,UAAU,CAAC,kBAAkB,EAAE,SAAS,KAAK,gBAAgB,CAAC,CAAC;gBAE3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EACzB,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,UAAU,CACzB,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;oBAChC,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;oBAC/D,GAAG;yBACA,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;yBAClC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzD,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;oBAChE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACnB,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE;qBACjD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CACd,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5D,GAAG,CACJ,CAAC;IACJ,CAAC;CACF"}
|
package/dist/function/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/function/index.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/function/index.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC"}
|
package/dist/function/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/function/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/function/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mxpicture/gcp-functions-backend",
|
|
3
|
-
"version": "1.3
|
|
3
|
+
"version": "2.1.3",
|
|
4
4
|
"description": "Utils for google cloud functions, publishing both CommonJS and ESM builds",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "MXPicture",
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"default": "./dist/api/index.js"
|
|
16
16
|
},
|
|
17
17
|
"./package.json": "./package.json",
|
|
18
|
+
"./factory": {
|
|
19
|
+
"types": "./src/factory/index.ts",
|
|
20
|
+
"default": "./dist/factory/index.js"
|
|
21
|
+
},
|
|
18
22
|
"./firebase": {
|
|
19
23
|
"types": "./src/firebase/index.ts",
|
|
20
24
|
"default": "./dist/firebase/index.js"
|
|
@@ -54,7 +58,7 @@
|
|
|
54
58
|
},
|
|
55
59
|
"dependencies": {
|
|
56
60
|
"@google-cloud/tasks": "^6.2.1",
|
|
57
|
-
"@mxpicture/gcp-functions-common": "^1.3
|
|
61
|
+
"@mxpicture/gcp-functions-common": "^2.1.3",
|
|
58
62
|
"express": "^5.2.1",
|
|
59
63
|
"firebase-admin": "^13.7.0",
|
|
60
64
|
"firebase-functions": "^7.0.6",
|