@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.
@@ -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,9 @@
1
+ export class IApiFactory {
2
+ constructor() { }
3
+ create() {
4
+ const api = this._createApi();
5
+ api.useValidation(this._createValidation());
6
+ return api;
7
+ }
8
+ }
9
+ //# sourceMappingURL=IApiFactory.js.map
@@ -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,3 @@
1
+ export * from "./IApiFactory.js";
2
+ export * from "./IApiStoreFactory.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,4 @@
1
+ // This file is auto-generated by build-cli. Do not edit manually.
2
+ export * from "./IApiFactory.js";
3
+ export * from "./IApiStoreFactory.js";
4
+ //# sourceMappingURL=index.js.map
@@ -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":"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"}
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,kBAyDF,CAAC"}
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
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
92
- res.status(401).send(`Unauthorized: ${e?.message ?? String(e)}`);
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":"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"}
@@ -1,2 +1,3 @@
1
+ export * from "./CompositeBackendFunction.js";
1
2
  export * from "./IBackendFunction.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -1,3 +1,4 @@
1
1
  // This file is auto-generated by build-cli. Do not edit manually.
2
+ export * from "./CompositeBackendFunction.js";
2
3
  export * from "./IBackendFunction.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -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.88",
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.88",
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",