@mxpicture/gcp-functions-backend 2.1.12 → 2.1.14
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/api/BackendStoreApi.d.ts +1 -1
- package/dist/api/BackendStoreApi.d.ts.map +1 -1
- package/dist/api/BackendStoreApi.js.map +1 -1
- package/dist/factory/IBackendFactory.d.ts +22 -4
- package/dist/factory/IBackendFactory.d.ts.map +1 -1
- package/dist/factory/IBackendFactory.js +20 -4
- package/dist/factory/IBackendFactory.js.map +1 -1
- package/dist/factory/IBackendStoreFactory.d.ts +4 -2
- package/dist/factory/IBackendStoreFactory.d.ts.map +1 -1
- package/dist/factory/IBackendStoreFactory.js +13 -4
- package/dist/factory/IBackendStoreFactory.js.map +1 -1
- package/dist/function/IBackendFunction.d.ts +16 -6
- package/dist/function/IBackendFunction.d.ts.map +1 -1
- package/dist/function/IBackendFunction.js +21 -11
- package/dist/function/IBackendFunction.js.map +1 -1
- package/package.json +2 -2
|
@@ -29,6 +29,6 @@ export declare abstract class BackendStoreApi<STORE_DOC extends DocumentKeyAdmin
|
|
|
29
29
|
* @returns The store instance.
|
|
30
30
|
* @throws {@link Error} if no store has been provided via {@link useStore}.
|
|
31
31
|
*/
|
|
32
|
-
|
|
32
|
+
store(): STORE;
|
|
33
33
|
}
|
|
34
34
|
//# sourceMappingURL=BackendStoreApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackendStoreApi.d.ts","sourceRoot":"","sources":["../../src/api/BackendStoreApi.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,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,8BAAsB,eAAe,CACnC,SAAS,SAAS,gBAAgB,EAClC,GAAG,SAAS,SAAS,EACrB,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,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC;IAC9C,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IAEzB;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKnC;;;;;OAKG;
|
|
1
|
+
{"version":3,"file":"BackendStoreApi.d.ts","sourceRoot":"","sources":["../../src/api/BackendStoreApi.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,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,8BAAsB,eAAe,CACnC,SAAS,SAAS,gBAAgB,EAClC,GAAG,SAAS,SAAS,EACrB,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,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC;IAC9C,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IAEzB;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKnC;;;;;OAKG;IACI,KAAK,IAAI,KAAK;CAOtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackendStoreApi.js","sourceRoot":"","sources":["../../src/api/BackendStoreApi.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAgB,eAMpB,SAAQ,cAAsC;IACpC,MAAM,CAAS;IAEzB;;;;OAIG;IACI,QAAQ,CAAC,KAAY;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;
|
|
1
|
+
{"version":3,"file":"BackendStoreApi.js","sourceRoot":"","sources":["../../src/api/BackendStoreApi.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAgB,eAMpB,SAAQ,cAAsC;IACpC,MAAM,CAAS;IAEzB;;;;OAIG;IACI,QAAQ,CAAC,KAAY;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,KAAK;QACV,IAAI,CAAC,IAAI,CAAC,MAAM;YACd,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,IAAI,6CAA6C,CAC1D,CAAC;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -2,11 +2,29 @@ import type { DocumentData } from "@mxpicture/gcp-functions-common/types";
|
|
|
2
2
|
import type { Validation } from "../validation/Validation.js";
|
|
3
3
|
import type { BackendBaseApi } from "../api/BackendBaseApi.js";
|
|
4
4
|
export declare abstract class IBackendFactory<DTO extends DocumentData, API extends BackendBaseApi<DTO, SIDE_EFFECTS, VAL>, SIDE_EFFECTS extends DocumentData = DocumentData, VAL extends Validation<DTO> = Validation<DTO>> {
|
|
5
|
-
readonly
|
|
5
|
+
protected readonly params: {
|
|
6
|
+
name: string;
|
|
7
|
+
projectId: string;
|
|
8
|
+
region: string;
|
|
9
|
+
serviceAccount: string;
|
|
10
|
+
datePaths: string[];
|
|
11
|
+
};
|
|
6
12
|
protected _api: API | null;
|
|
7
|
-
|
|
13
|
+
protected _validation: VAL | null;
|
|
14
|
+
constructor(params: {
|
|
15
|
+
name: string;
|
|
16
|
+
projectId: string;
|
|
17
|
+
region: string;
|
|
18
|
+
serviceAccount: string;
|
|
19
|
+
datePaths: string[];
|
|
20
|
+
});
|
|
21
|
+
get name(): string;
|
|
22
|
+
get projectId(): string;
|
|
23
|
+
get region(): string;
|
|
24
|
+
get serviceAccount(): string;
|
|
8
25
|
api(): API;
|
|
9
|
-
|
|
10
|
-
protected abstract
|
|
26
|
+
validation(): VAL;
|
|
27
|
+
protected abstract _createApi(): API;
|
|
28
|
+
protected abstract _createValidation(): VAL;
|
|
11
29
|
}
|
|
12
30
|
//# sourceMappingURL=IBackendFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IBackendFactory.d.ts","sourceRoot":"","sources":["../../src/factory/IBackendFactory.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,eAAe,CACnC,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;
|
|
1
|
+
{"version":3,"file":"IBackendFactory.d.ts","sourceRoot":"","sources":["../../src/factory/IBackendFactory.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,eAAe,CACnC,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;IAM3C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB;IAVH,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAQ;IAClC,SAAS,CAAC,WAAW,EAAE,GAAG,GAAG,IAAI,CAAQ;gBAGpB,MAAM,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB;IAGH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,cAAc,IAAI,MAAM,CAElC;IAEM,GAAG,IAAI,GAAG;IAIV,UAAU,IAAI,GAAG;IAIxB,SAAS,CAAC,QAAQ,CAAC,UAAU,IAAI,GAAG;IACpC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,GAAG;CAC5C"}
|
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
export class IBackendFactory {
|
|
2
|
-
|
|
2
|
+
params;
|
|
3
3
|
_api = null;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
_validation = null;
|
|
5
|
+
constructor(params) {
|
|
6
|
+
this.params = params;
|
|
7
|
+
}
|
|
8
|
+
get name() {
|
|
9
|
+
return this.params.name;
|
|
10
|
+
}
|
|
11
|
+
get projectId() {
|
|
12
|
+
return this.params.projectId;
|
|
13
|
+
}
|
|
14
|
+
get region() {
|
|
15
|
+
return this.params.region;
|
|
16
|
+
}
|
|
17
|
+
get serviceAccount() {
|
|
18
|
+
return this.params.serviceAccount;
|
|
6
19
|
}
|
|
7
20
|
api() {
|
|
8
|
-
return (this._api ??= this._createApi(
|
|
21
|
+
return (this._api ??= this._createApi().useValidation(this.validation()));
|
|
22
|
+
}
|
|
23
|
+
validation() {
|
|
24
|
+
return (this._validation ??= this._createValidation());
|
|
9
25
|
}
|
|
10
26
|
}
|
|
11
27
|
//# sourceMappingURL=IBackendFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IBackendFactory.js","sourceRoot":"","sources":["../../src/factory/IBackendFactory.ts"],"names":[],"mappings":"AAIA,MAAM,OAAgB,eAAe;
|
|
1
|
+
{"version":3,"file":"IBackendFactory.js","sourceRoot":"","sources":["../../src/factory/IBackendFactory.ts"],"names":[],"mappings":"AAIA,MAAM,OAAgB,eAAe;IAUd;IAJX,IAAI,GAAe,IAAI,CAAC;IACxB,WAAW,GAAe,IAAI,CAAC;IAEzC,YACqB,MAMlB;QANkB,WAAM,GAAN,MAAM,CAMxB;IACA,CAAC;IAEJ,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IACpC,CAAC;IAEM,GAAG;QACR,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEM,UAAU;QACf,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACzD,CAAC;CAIF"}
|
|
@@ -6,9 +6,11 @@ import { IBackendFactory } from "./IBackendFactory.js";
|
|
|
6
6
|
import type { IBackendFunction } from "../function/IBackendFunction.js";
|
|
7
7
|
export declare abstract class IBackendStoreFactory<STORE_DOC extends DocumentKeyAdmin, DTO extends STORE_DOC, API extends BackendStoreApi<STORE_DOC, DTO, SIDE_EFFECTS, STORE, VAL>, FUNC extends IBackendFunction<STORE_DOC, DTO, SIDE_EFFECTS, API>, SIDE_EFFECTS extends DocumentData = DocumentData, VAL extends Validation<DTO> = Validation<DTO>, STORE extends Store<STORE_DOC> = Store<STORE_DOC>> extends IBackendFactory<DTO, API, SIDE_EFFECTS, VAL> {
|
|
8
8
|
protected _func: FUNC | null;
|
|
9
|
+
protected _store: STORE | null;
|
|
9
10
|
api(): API;
|
|
10
11
|
func(): FUNC;
|
|
11
|
-
|
|
12
|
-
protected abstract
|
|
12
|
+
store(): STORE;
|
|
13
|
+
protected abstract _createFunc(): FUNC;
|
|
14
|
+
protected abstract _createStore(): STORE;
|
|
13
15
|
}
|
|
14
16
|
//# sourceMappingURL=IBackendStoreFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IBackendStoreFactory.d.ts","sourceRoot":"","sources":["../../src/factory/IBackendStoreFactory.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,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE,8BAAsB,oBAAoB,CACxC,SAAS,SAAS,gBAAgB,EAClC,GAAG,SAAS,SAAS,EACrB,GAAG,SAAS,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,EACrE,IAAI,SAAS,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,EAChE,YAAY,SAAS,YAAY,GAAG,YAAY,EAChD,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAC7C,KAAK,SAAS,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CACjD,SAAQ,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC;IACpD,SAAS,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAQ;
|
|
1
|
+
{"version":3,"file":"IBackendStoreFactory.d.ts","sourceRoot":"","sources":["../../src/factory/IBackendStoreFactory.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,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE,8BAAsB,oBAAoB,CACxC,SAAS,SAAS,gBAAgB,EAClC,GAAG,SAAS,SAAS,EACrB,GAAG,SAAS,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,EACrE,IAAI,SAAS,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,EAChE,YAAY,SAAS,YAAY,GAAG,YAAY,EAChD,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAC7C,KAAK,SAAS,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CACjD,SAAQ,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC;IACpD,SAAS,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAQ;IACpC,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IAEtB,GAAG,IAAI,GAAG;IAUnB,IAAI,IAAI,IAAI;IAIZ,KAAK,IAAI,KAAK;IAIrB,SAAS,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI;IACtC,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,KAAK;CACzC"}
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { IBackendFactory } from "./IBackendFactory.js";
|
|
2
2
|
export class IBackendStoreFactory extends IBackendFactory {
|
|
3
3
|
_func = null;
|
|
4
|
+
_store = null;
|
|
4
5
|
api() {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
.
|
|
6
|
+
const a = super.api();
|
|
7
|
+
try {
|
|
8
|
+
a.store();
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
a.useStore(this.store());
|
|
12
|
+
}
|
|
13
|
+
return a;
|
|
8
14
|
}
|
|
9
15
|
func() {
|
|
10
|
-
return (this._func ??= this._createFunc(
|
|
16
|
+
return (this._func ??= this._createFunc().useApi(this.api()));
|
|
17
|
+
}
|
|
18
|
+
store() {
|
|
19
|
+
return (this._store ??= this._createStore());
|
|
11
20
|
}
|
|
12
21
|
}
|
|
13
22
|
//# sourceMappingURL=IBackendStoreFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IBackendStoreFactory.js","sourceRoot":"","sources":["../../src/factory/IBackendStoreFactory.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,OAAgB,oBAQpB,SAAQ,eAA4C;IAC1C,KAAK,GAAgB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"IBackendStoreFactory.js","sourceRoot":"","sources":["../../src/factory/IBackendStoreFactory.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,OAAgB,oBAQpB,SAAQ,eAA4C;IAC1C,KAAK,GAAgB,IAAI,CAAC;IAC1B,MAAM,GAAiB,IAAI,CAAC;IAEtB,GAAG;QACjB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,CAAC,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAEM,IAAI;QACT,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAEM,KAAK;QACV,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/C,CAAC;CAIF"}
|
|
@@ -2,6 +2,14 @@ import type { DocumentData, DocumentKeyAdmin, FunctionRequest, FunctionResponse
|
|
|
2
2
|
import type { CallableFunction, HttpsFunction } from "firebase-functions/v2/https";
|
|
3
3
|
import type { ExpressAuthHandler } from "../types/types.express.js";
|
|
4
4
|
import type { BackendBaseApi } from "../api/BackendBaseApi.js";
|
|
5
|
+
export interface BackendFunctionParams {
|
|
6
|
+
name: string;
|
|
7
|
+
projectId: string;
|
|
8
|
+
region: string;
|
|
9
|
+
serviceAccount: string;
|
|
10
|
+
datePaths: string[];
|
|
11
|
+
functionName?: string;
|
|
12
|
+
}
|
|
5
13
|
/**
|
|
6
14
|
* Abstract base class for Firebase callable backend functions.
|
|
7
15
|
*
|
|
@@ -14,11 +22,7 @@ import type { BackendBaseApi } from "../api/BackendBaseApi.js";
|
|
|
14
22
|
* @typeParam API - The backend API implementation that handles route logic.
|
|
15
23
|
*/
|
|
16
24
|
export declare abstract class IBackendFunction<STORE_DOC extends DocumentKeyAdmin, DTO extends STORE_DOC, SIDE_EFFECTS extends DocumentData, API extends BackendBaseApi<DTO, SIDE_EFFECTS>> {
|
|
17
|
-
readonly
|
|
18
|
-
readonly projectId: string;
|
|
19
|
-
readonly region: string;
|
|
20
|
-
readonly serviceAccount: string;
|
|
21
|
-
protected readonly datePaths: string[];
|
|
25
|
+
protected readonly params: BackendFunctionParams;
|
|
22
26
|
protected _api?: API;
|
|
23
27
|
/**
|
|
24
28
|
* Create a new backend function instance.
|
|
@@ -28,8 +32,14 @@ export declare abstract class IBackendFunction<STORE_DOC extends DocumentKeyAdmi
|
|
|
28
32
|
* @param serviceAccount - The service account email used to run the function.
|
|
29
33
|
* @param datePaths - JSON paths within the response payload that contain date values to convert to Firestore Timestamps.
|
|
30
34
|
*/
|
|
31
|
-
constructor(
|
|
35
|
+
constructor(params: BackendFunctionParams);
|
|
32
36
|
get url(): string;
|
|
37
|
+
get name(): string;
|
|
38
|
+
get projectId(): string;
|
|
39
|
+
get region(): string;
|
|
40
|
+
get serviceAccount(): string;
|
|
41
|
+
protected get datePaths(): string[];
|
|
42
|
+
get functionName(): string | undefined;
|
|
33
43
|
/**
|
|
34
44
|
* Inject the backend API instance that handles route logic.
|
|
35
45
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IBackendFunction.d.ts","sourceRoot":"","sources":["../../src/function/IBackendFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EACjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D;;;;;;;;;;GAUG;AACH,8BAAsB,gBAAgB,CACpC,SAAS,SAAS,gBAAgB,EAClC,GAAG,SAAS,SAAS,EACrB,YAAY,SAAS,YAAY,EACjC,GAAG,SAAS,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"IBackendFunction.d.ts","sourceRoot":"","sources":["../../src/function/IBackendFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EACjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,8BAAsB,gBAAgB,CACpC,SAAS,SAAS,gBAAgB,EAClC,GAAG,SAAS,SAAS,EACrB,YAAY,SAAS,YAAY,EACjC,GAAG,SAAS,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC;IAY1B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB;IAVnE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IAErB;;;;;;;OAOG;gBACmC,MAAM,EAAE,qBAAqB;IAEnE,IAAW,GAAG,IAAI,MAAM,CAEvB;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;IACD,IAAW,SAAS,IAAI,MAAM,CAE7B;IACD,IAAW,MAAM,IAAI,MAAM,CAE1B;IACD,IAAW,cAAc,IAAI,MAAM,CAElC;IACD,SAAS,KAAK,SAAS,IAAI,MAAM,EAAE,CAElC;IACD,IAAW,YAAY,IAAI,MAAM,GAAG,SAAS,CAE5C;IAED;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAM7B;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE,GAAG,IAAI;IAKpE;;;;;OAKG;IACH,IAAW,GAAG,IAAI,GAAG,CAIpB;IAED;;;;;OAKG;IACH,IAAW,MAAM,IAAI,MAAM,EAAE,CAE5B;IAED;;;;;;;;;;;;;OAaG;IACU,OAAO,CAAC,GAAG,EAAE,GAAG,SAAS,YAAY,EAChD,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,EAC7B,eAAe,EAAE,OAAO,GACvB,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAejC;;;;;;;;OAQG;IACI,qBAAqB,IAAI,gBAAgB,CAE9C,eAAe,CAAC,GAAG,CAAC,EAEpB,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAC/B;IAOD;;;;;;;;OAQG;IACI,kBAAkB,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAAG,aAAa;CAmD3E"}
|
|
@@ -13,11 +13,7 @@ import { buildCheckServiceAuth } from "../firebase/firebase.express.js";
|
|
|
13
13
|
* @typeParam API - The backend API implementation that handles route logic.
|
|
14
14
|
*/
|
|
15
15
|
export class IBackendFunction {
|
|
16
|
-
|
|
17
|
-
projectId;
|
|
18
|
-
region;
|
|
19
|
-
serviceAccount;
|
|
20
|
-
datePaths;
|
|
16
|
+
params;
|
|
21
17
|
_api;
|
|
22
18
|
/**
|
|
23
19
|
* Create a new backend function instance.
|
|
@@ -27,16 +23,30 @@ export class IBackendFunction {
|
|
|
27
23
|
* @param serviceAccount - The service account email used to run the function.
|
|
28
24
|
* @param datePaths - JSON paths within the response payload that contain date values to convert to Firestore Timestamps.
|
|
29
25
|
*/
|
|
30
|
-
constructor(
|
|
31
|
-
this.
|
|
32
|
-
this.projectId = projectId;
|
|
33
|
-
this.region = region;
|
|
34
|
-
this.serviceAccount = serviceAccount;
|
|
35
|
-
this.datePaths = datePaths;
|
|
26
|
+
constructor(params) {
|
|
27
|
+
this.params = params;
|
|
36
28
|
}
|
|
37
29
|
get url() {
|
|
38
30
|
return `https://${this.region}-${this.projectId}.cloudfunctions.net/${this.name}`;
|
|
39
31
|
}
|
|
32
|
+
get name() {
|
|
33
|
+
return this.params.name;
|
|
34
|
+
}
|
|
35
|
+
get projectId() {
|
|
36
|
+
return this.params.projectId;
|
|
37
|
+
}
|
|
38
|
+
get region() {
|
|
39
|
+
return this.params.region;
|
|
40
|
+
}
|
|
41
|
+
get serviceAccount() {
|
|
42
|
+
return this.params.serviceAccount;
|
|
43
|
+
}
|
|
44
|
+
get datePaths() {
|
|
45
|
+
return this.params.datePaths;
|
|
46
|
+
}
|
|
47
|
+
get functionName() {
|
|
48
|
+
return this.params.functionName;
|
|
49
|
+
}
|
|
40
50
|
/**
|
|
41
51
|
* Inject the backend API instance that handles route logic.
|
|
42
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IBackendFunction.js","sourceRoot":"","sources":["../../src/function/IBackendFunction.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"IBackendFunction.js","sourceRoot":"","sources":["../../src/function/IBackendFunction.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mxpicture/gcp-functions-backend",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.14",
|
|
4
4
|
"description": "Utils for google cloud functions, publishing both CommonJS and ESM builds",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "MXPicture",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
60
|
"@google-cloud/tasks": "^6.2.1",
|
|
61
|
-
"@mxpicture/gcp-functions-common": "^2.1.
|
|
61
|
+
"@mxpicture/gcp-functions-common": "^2.1.14",
|
|
62
62
|
"express": "^5.2.1",
|
|
63
63
|
"firebase-admin": "^13.7.0",
|
|
64
64
|
"firebase-functions": "^7.0.6",
|