@mxpicture/gcp-functions-backend 1.1.13 → 1.1.15
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/BackendApi.d.ts +8 -1
- package/dist/api/BackendApi.d.ts.map +1 -1
- package/dist/api/BackendApi.js +46 -7
- package/dist/api/BackendApi.js.map +1 -1
- package/dist/api/IBackendApi.d.ts +5 -3
- package/dist/api/IBackendApi.d.ts.map +1 -1
- package/dist/api/IBackendApi.js +4 -1
- package/dist/api/IBackendApi.js.map +1 -1
- package/dist/function/IBackendFunction.d.ts +1 -1
- package/dist/function/IBackendFunction.d.ts.map +1 -1
- package/dist/function/IBackendFunction.js.map +1 -1
- package/dist/store/Store.d.ts +2 -1
- package/dist/store/Store.d.ts.map +1 -1
- package/dist/store/Store.js +4 -1
- package/dist/store/Store.js.map +1 -1
- package/dist/validation/Validation.d.ts +1 -1
- package/package.json +2 -2
package/dist/api/BackendApi.d.ts
CHANGED
|
@@ -13,7 +13,10 @@ import { IBackendApi } from "./IBackendApi.js";
|
|
|
13
13
|
* @typeParam STORE - The store implementation used for persistence.
|
|
14
14
|
* @typeParam VAL - The validation implementation used for input validation.
|
|
15
15
|
*/
|
|
16
|
-
export declare class BackendApi<
|
|
16
|
+
export declare abstract class BackendApi<STORE_DOC extends DocumentData, DTO extends STORE_DOC, STORE extends Store<STORE_DOC> = Store<STORE_DOC>, VAL extends Validation<DTO> = Validation<DTO>> extends IBackendApi<STORE_DOC, DTO, STORE, VAL> implements ApiFromRoutes<CrudRoutes<DTO>> {
|
|
17
|
+
protected abstract loadVirtualFields(doc: WithKey<STORE_DOC>): Promise<WithKey<DTO>>;
|
|
18
|
+
protected processVirtualFields(doc: WithKey<DTO>): Promise<WithKey<STORE_DOC>>;
|
|
19
|
+
protected processVirtualFieldsPartial(doc: WithKey<Partial<DTO>>): Promise<WithKey<Partial<STORE_DOC>>>;
|
|
17
20
|
/**
|
|
18
21
|
* Delete a document by its key.
|
|
19
22
|
*
|
|
@@ -71,5 +74,9 @@ export declare class BackendApi<DTO extends DocumentData, STORE extends Store<DT
|
|
|
71
74
|
* @throws {@link HttpsError} if validation fails.
|
|
72
75
|
*/
|
|
73
76
|
update(request: WithKey<Partial<DTO>>): Promise<WithKey<DTO>>;
|
|
77
|
+
protected toDto(doc: WithKey<STORE_DOC>): Promise<WithKey<DTO>>;
|
|
78
|
+
protected toDtos(docs: WithKey<STORE_DOC>[]): Promise<WithKey<DTO>[]>;
|
|
79
|
+
protected fromDtoCreate(dto: WithoutKey<DTO>): Promise<WithKey<STORE_DOC>>;
|
|
80
|
+
protected fromDtoUpdate(dto: WithKey<Partial<DTO>>): Promise<WithKey<Partial<STORE_DOC>>>;
|
|
74
81
|
}
|
|
75
82
|
//# sourceMappingURL=BackendApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackendApi.d.ts","sourceRoot":"","sources":["../../src/api/BackendApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EACP,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACV,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"BackendApi.d.ts","sourceRoot":"","sources":["../../src/api/BackendApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EACP,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACV,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAM/C;;;;;;;;;;GAUG;AACH,8BAAsB,UAAU,CAC9B,SAAS,SAAS,YAAY,EAC9B,GAAG,SAAS,SAAS,EACrB,KAAK,SAAS,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,EACjD,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAE7C,SAAQ,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAC9C,YAAW,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEzC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAClC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GACtB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;cAGR,oBAAoB,CAClC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAChB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;cAKd,2BAA2B,CACzC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GACzB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAMvC;;;;;OAKG;IACU,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAKrE;;;;;OAKG;IACU,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAI7D;;;;;OAKG;IACU,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IAIvE;;;;;OAKG;IACU,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1E;;;;;OAKG;IACU,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAIvE;;;;;;OAMG;IACU,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAOpE;;;;;;OAMG;IACU,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;cAO1D,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;cAOrD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;cAI3D,aAAa,CAC3B,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,GACnB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;cAUd,aAAa,CAC3B,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GACzB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;CAKxC"}
|
package/dist/api/BackendApi.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IBackendApi } from "./IBackendApi.js";
|
|
2
|
-
import { toDatesDeep } from "@mxpicture/gcp-functions-common/helper";
|
|
2
|
+
import { toDatesDeep, toTimestampsDeep, } from "@mxpicture/gcp-functions-common/helper";
|
|
3
3
|
/**
|
|
4
4
|
* Backend API providing standard CRUD operations for a document type.
|
|
5
5
|
*
|
|
@@ -12,6 +12,18 @@ import { toDatesDeep } from "@mxpicture/gcp-functions-common/helper";
|
|
|
12
12
|
* @typeParam VAL - The validation implementation used for input validation.
|
|
13
13
|
*/
|
|
14
14
|
export class BackendApi extends IBackendApi {
|
|
15
|
+
// to be redefined
|
|
16
|
+
async processVirtualFields(doc) {
|
|
17
|
+
return (await this.processVirtualFieldsPartial(doc));
|
|
18
|
+
}
|
|
19
|
+
// to be redefined
|
|
20
|
+
async processVirtualFieldsPartial(doc) {
|
|
21
|
+
// default strip object
|
|
22
|
+
for (const { key } of this.virtuals)
|
|
23
|
+
if (doc[key])
|
|
24
|
+
delete doc[key];
|
|
25
|
+
return doc;
|
|
26
|
+
}
|
|
15
27
|
/**
|
|
16
28
|
* Delete a document by its key.
|
|
17
29
|
*
|
|
@@ -29,7 +41,7 @@ export class BackendApi extends IBackendApi {
|
|
|
29
41
|
* @returns The document including its key metadata.
|
|
30
42
|
*/
|
|
31
43
|
async get(request) {
|
|
32
|
-
return
|
|
44
|
+
return this.toDto(await this.store().get(request.id));
|
|
33
45
|
}
|
|
34
46
|
/**
|
|
35
47
|
* Query documents with optional filters.
|
|
@@ -38,7 +50,7 @@ export class BackendApi extends IBackendApi {
|
|
|
38
50
|
* @returns An array of documents matching the filter criteria.
|
|
39
51
|
*/
|
|
40
52
|
async query(request) {
|
|
41
|
-
return
|
|
53
|
+
return this.toDtos(await this.store().query(request?.filters));
|
|
42
54
|
}
|
|
43
55
|
/**
|
|
44
56
|
* Count documents matching optional filter criteria.
|
|
@@ -66,8 +78,10 @@ export class BackendApi extends IBackendApi {
|
|
|
66
78
|
* @throws {@link HttpsError} if validation fails.
|
|
67
79
|
*/
|
|
68
80
|
async create(request) {
|
|
69
|
-
const
|
|
70
|
-
|
|
81
|
+
const validated = this.validation().validate(request);
|
|
82
|
+
const storeDoc = await this.fromDtoCreate(validated);
|
|
83
|
+
const created = await this.store().create(storeDoc);
|
|
84
|
+
return this.toDto(created);
|
|
71
85
|
}
|
|
72
86
|
/**
|
|
73
87
|
* Update an existing document after validating the partial input.
|
|
@@ -77,8 +91,33 @@ export class BackendApi extends IBackendApi {
|
|
|
77
91
|
* @throws {@link HttpsError} if validation fails.
|
|
78
92
|
*/
|
|
79
93
|
async update(request) {
|
|
80
|
-
const
|
|
81
|
-
|
|
94
|
+
const validated = this.validation().validatePartial(request);
|
|
95
|
+
const storeDoc = await this.fromDtoUpdate(validated);
|
|
96
|
+
const updated = await this.store().update(storeDoc.id, storeDoc);
|
|
97
|
+
return this.toDto(updated);
|
|
98
|
+
}
|
|
99
|
+
async toDto(doc) {
|
|
100
|
+
let cloned = toTimestampsDeep(doc, this.datePaths);
|
|
101
|
+
cloned = toDatesDeep(cloned, this.datePaths);
|
|
102
|
+
const loaded = await this.loadVirtualFields(cloned);
|
|
103
|
+
return toDatesDeep(loaded, this.datePaths);
|
|
104
|
+
}
|
|
105
|
+
async toDtos(docs) {
|
|
106
|
+
return Promise.all(docs.map((doc) => this.toDto(doc)));
|
|
107
|
+
}
|
|
108
|
+
async fromDtoCreate(dto) {
|
|
109
|
+
const cloned = toDatesDeep(dto, this.datePaths);
|
|
110
|
+
const id = this.store().createId();
|
|
111
|
+
const loaded = await this.processVirtualFields({
|
|
112
|
+
...cloned,
|
|
113
|
+
id,
|
|
114
|
+
});
|
|
115
|
+
return toTimestampsDeep(loaded, this.datePaths);
|
|
116
|
+
}
|
|
117
|
+
async fromDtoUpdate(dto) {
|
|
118
|
+
const cloned = toDatesDeep(dto, this.datePaths);
|
|
119
|
+
const loaded = await this.processVirtualFieldsPartial(cloned);
|
|
120
|
+
return toTimestampsDeep(loaded, this.datePaths);
|
|
82
121
|
}
|
|
83
122
|
}
|
|
84
123
|
//# sourceMappingURL=BackendApi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackendApi.js","sourceRoot":"","sources":["../../src/api/BackendApi.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"BackendApi.js","sourceRoot":"","sources":["../../src/api/BackendApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DocumentData } from "@mxpicture/gcp-functions-common/types";
|
|
1
|
+
import type { DecoPropertyVirtual, DocumentData } from "@mxpicture/gcp-functions-common/types";
|
|
2
2
|
import { Store } from "../store/Store.js";
|
|
3
3
|
import type { Validation } from "../validation/Validation.js";
|
|
4
4
|
/**
|
|
@@ -10,12 +10,14 @@ import type { Validation } from "../validation/Validation.js";
|
|
|
10
10
|
* validation via {@link IBackendApi.useStore} and {@link IBackendApi.useValidation}.
|
|
11
11
|
*
|
|
12
12
|
* @typeParam DTO - The document data transfer object type.
|
|
13
|
+
* @typeParam STORE_DOC - The store document type.
|
|
13
14
|
* @typeParam STORE - The store implementation used for persistence.
|
|
14
15
|
* @typeParam VAL - The validation implementation used for input validation.
|
|
15
16
|
*/
|
|
16
|
-
export declare abstract class IBackendApi<
|
|
17
|
+
export declare abstract class IBackendApi<STORE_DOC extends DocumentData, DTO extends STORE_DOC, STORE extends Store<STORE_DOC> = Store<STORE_DOC>, VAL extends Validation<DTO> = Validation<DTO>> {
|
|
17
18
|
readonly name: string;
|
|
18
19
|
protected readonly datePaths: string[];
|
|
20
|
+
protected readonly virtuals: DecoPropertyVirtual[];
|
|
19
21
|
protected _store?: STORE;
|
|
20
22
|
protected _validation?: VAL;
|
|
21
23
|
/**
|
|
@@ -24,7 +26,7 @@ export declare abstract class IBackendApi<DTO extends DocumentData, STORE extend
|
|
|
24
26
|
* @param name - A descriptive name for this API, used in error messages.
|
|
25
27
|
* @param datePaths - JSON paths within the response payload that contain date values to convert to Firestore Timestamps.
|
|
26
28
|
*/
|
|
27
|
-
constructor(name: string, datePaths: string[]);
|
|
29
|
+
constructor(name: string, datePaths: string[], virtuals: DecoPropertyVirtual[]);
|
|
28
30
|
/**
|
|
29
31
|
* Inject the store instance used for data persistence.
|
|
30
32
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IBackendApi.d.ts","sourceRoot":"","sources":["../../src/api/IBackendApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"IBackendApi.d.ts","sourceRoot":"","sources":["../../src/api/IBackendApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACb,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D;;;;;;;;;;;;GAYG;AACH,8BAAsB,WAAW,CAC/B,SAAS,SAAS,YAAY,EAC9B,GAAG,SAAS,SAAS,EACrB,KAAK,SAAS,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,EACjD,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;aAY3B,IAAI,EAAE,MAAM;IAC5B,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE;IACtC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE;IAZpD,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACzB,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC;IAE5B;;;;;OAKG;gBAEe,IAAI,EAAE,MAAM,EACT,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,mBAAmB,EAAE;IAGpD;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAInC;;;;OAIG;IACI,aAAa,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI;IAI3C;;;;;OAKG;IACH,SAAS,CAAC,KAAK,IAAI,KAAK;IAQxB;;;;;OAKG;IACH,SAAS,CAAC,UAAU,IAAI,GAAG;CAO5B"}
|
package/dist/api/IBackendApi.js
CHANGED
|
@@ -7,12 +7,14 @@
|
|
|
7
7
|
* validation via {@link IBackendApi.useStore} and {@link IBackendApi.useValidation}.
|
|
8
8
|
*
|
|
9
9
|
* @typeParam DTO - The document data transfer object type.
|
|
10
|
+
* @typeParam STORE_DOC - The store document type.
|
|
10
11
|
* @typeParam STORE - The store implementation used for persistence.
|
|
11
12
|
* @typeParam VAL - The validation implementation used for input validation.
|
|
12
13
|
*/
|
|
13
14
|
export class IBackendApi {
|
|
14
15
|
name;
|
|
15
16
|
datePaths;
|
|
17
|
+
virtuals;
|
|
16
18
|
_store;
|
|
17
19
|
_validation;
|
|
18
20
|
/**
|
|
@@ -21,9 +23,10 @@ export class IBackendApi {
|
|
|
21
23
|
* @param name - A descriptive name for this API, used in error messages.
|
|
22
24
|
* @param datePaths - JSON paths within the response payload that contain date values to convert to Firestore Timestamps.
|
|
23
25
|
*/
|
|
24
|
-
constructor(name, datePaths) {
|
|
26
|
+
constructor(name, datePaths, virtuals) {
|
|
25
27
|
this.name = name;
|
|
26
28
|
this.datePaths = datePaths;
|
|
29
|
+
this.virtuals = virtuals;
|
|
27
30
|
}
|
|
28
31
|
/**
|
|
29
32
|
* Inject the store instance used for data persistence.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IBackendApi.js","sourceRoot":"","sources":["../../src/api/IBackendApi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IBackendApi.js","sourceRoot":"","sources":["../../src/api/IBackendApi.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAgB,WAAW;IAgBb;IACG;IACA;IAZX,MAAM,CAAS;IACf,WAAW,CAAO;IAE5B;;;;;OAKG;IACH,YACkB,IAAY,EACT,SAAmB,EACnB,QAA+B;QAFlC,SAAI,GAAJ,IAAI,CAAQ;QACT,cAAS,GAAT,SAAS,CAAU;QACnB,aAAQ,GAAR,QAAQ,CAAuB;IACjD,CAAC;IAEJ;;;;OAIG;IACI,QAAQ,CAAC,KAAY;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,UAAe;QAClC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACO,KAAK;QACb,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;IAED;;;;;OAKG;IACO,UAAU;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW;YACnB,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,IAAI,uDAAuD,CACpE,CAAC;QACJ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -12,7 +12,7 @@ import { CallableFunction } from "firebase-functions/v2/https";
|
|
|
12
12
|
* @typeParam DTO - The document data transfer object type.
|
|
13
13
|
* @typeParam API - The backend API implementation that handles route logic.
|
|
14
14
|
*/
|
|
15
|
-
export declare abstract class IBackendFunction<
|
|
15
|
+
export declare abstract class IBackendFunction<STORE_DOC extends DocumentData, DTO extends STORE_DOC, API extends BackendApi<STORE_DOC, DTO>> {
|
|
16
16
|
readonly name: string;
|
|
17
17
|
readonly region: string;
|
|
18
18
|
readonly serviceAccount: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IBackendFunction.d.ts","sourceRoot":"","sources":["../../src/function/IBackendFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAEL,gBAAgB,EAEjB,MAAM,6BAA6B,CAAC;AAMrC;;;;;;;;;;GAUG;AACH,8BAAsB,gBAAgB,CACpC,
|
|
1
|
+
{"version":3,"file":"IBackendFunction.d.ts","sourceRoot":"","sources":["../../src/function/IBackendFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAEL,gBAAgB,EAEjB,MAAM,6BAA6B,CAAC;AAMrC;;;;;;;;;;GAUG;AACH,8BAAsB,gBAAgB,CACpC,SAAS,SAAS,YAAY,EAC9B,GAAG,SAAS,SAAS,EACrB,GAAG,SAAS,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;aAcpB,IAAI,EAAE,MAAM;aACZ,MAAM,EAAE,MAAM;aACd,cAAc,EAAE,MAAM;IACtC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE;IAfxC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IACrB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B;;;;;;;OAOG;gBAEe,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EAAE;IAGxC;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAI7B;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE,GAAG,IAAI;IAIpE;;;;;OAKG;IACH,SAAS,CAAC,GAAG,IAAI,GAAG;IAMpB;;;;;OAKG;IACH,SAAS,CAAC,MAAM,IAAI,MAAM,EAAE;IAQ5B;;;;;;;;;;;;;OAaG;IACU,OAAO,CAAC,GAAG,EAAE,GAAG,SAAS,YAAY,EAChD,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,GAC5B,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAsBjC;;;;;;;;OAQG;IACI,aAAa,IAAI,gBAAgB,CAEtC,eAAe,CAAC,GAAG,CAAC,EAEpB,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAC/B;CAMF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IBackendFunction.js","sourceRoot":"","sources":["../../src/function/IBackendFunction.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,MAAM,EAEN,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,WAAW,EACX,gBAAgB,GACjB,MAAM,wCAAwC,CAAC;AAEhD;;;;;;;;;;GAUG;AACH,MAAM,OAAgB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"IBackendFunction.js","sourceRoot":"","sources":["../../src/function/IBackendFunction.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,MAAM,EAEN,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,WAAW,EACX,gBAAgB,GACjB,MAAM,wCAAwC,CAAC;AAEhD;;;;;;;;;;GAUG;AACH,MAAM,OAAgB,gBAAgB;IAiBlB;IACA;IACA;IACG;IAfX,IAAI,CAAO;IACX,OAAO,CAAY;IAE7B;;;;;;;OAOG;IACH,YACkB,IAAY,EACZ,MAAc,EACd,cAAsB,EACnB,SAAmB;QAHtB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAQ;QACnB,cAAS,GAAT,SAAS,CAAU;IACrC,CAAC;IAEJ;;;;OAIG;IACI,MAAM,CAAC,GAAQ;QACpB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,MAA4C;QAC3D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACO,GAAG;QACX,IAAI,CAAC,IAAI,CAAC,IAAI;YACZ,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,yCAAyC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACO,MAAM;QACd,IAAI,CAAC,IAAI,CAAC,OAAO;YACf,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,IAAI,+CAA+C,CAC5D,CAAC;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,KAAK,CAAC,OAAO,CAClB,OAA6B;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC;YAC1C,MAAM,IAAI,UAAU,CAClB,kBAAkB,EAClB,SAAS,OAAO,CAAC,KAAK,gBAAgB,CACvC,CAAC;QAEJ,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAE9D,8DAA8D;YAC9D,MAAM,OAAO,GAAG,MAAO,IAAI,CAAC,GAAG,EAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;YACtE,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,UAAU;gBAAE,MAAM,KAAK,CAAC;YAC7C,8DAA8D;YAC9D,MAAM,IAAI,UAAU,CAAC,UAAU,EAAG,KAAa,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC;YACvE,IAAI;QACN,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACI,aAAa;QAMlB,OAAO,MAAM,CACX,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5D,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CACtC,CAAC;IACJ,CAAC;CACF"}
|
package/dist/store/Store.d.ts
CHANGED
|
@@ -82,7 +82,8 @@ export declare class Store<DTO extends DocumentData> {
|
|
|
82
82
|
* @param doc - The document data to persist.
|
|
83
83
|
* @returns The persisted document including its generated key metadata.
|
|
84
84
|
*/
|
|
85
|
-
create(doc: DTO): Promise<WithKey<DTO>>;
|
|
85
|
+
create(doc: DTO | WithKey<DTO>): Promise<WithKey<DTO>>;
|
|
86
|
+
createId(id?: string): string;
|
|
86
87
|
/**
|
|
87
88
|
* Update an existing document by merging partial data.
|
|
88
89
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../../src/store/Store.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,EACL,aAAa,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,OAAO,EACR,MAAM,uCAAuC,CAAC;AAE/C;;;;;;;;GAQG;AACH,qBAAa,KAAK,CAAC,GAAG,SAAS,YAAY;aAWvB,cAAc,EAAE,MAAM;aACtB,SAAS,EAAE,MAAM;IACjC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,GAAG,CAAC;IAZ5D,SAAS,CAAC,GAAG,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEzC;;;;;;OAMG;gBAEe,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,sBAAsB,CAAC,GAAG,CAAC,YAAA;IAG5D;;;;OAIG;IACI,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC;IAarC;;;;;OAKG;IACU,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IAc/D;;;;;;;;OAQG;cACa,aAAa,CAC3B,CAAC,CAAC,EAAE,cAAc,GACjB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAc9B;;;;;OAKG;IACU,KAAK,CAAC,CAAC,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAS9D;;;;;OAKG;IACI,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC;IAI9C;;;;;;OAMG;IACU,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAWnD;;;;;OAKG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjD;;;;;OAKG;IACU,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../../src/store/Store.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,EACL,aAAa,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,OAAO,EACR,MAAM,uCAAuC,CAAC;AAE/C;;;;;;;;GAQG;AACH,qBAAa,KAAK,CAAC,GAAG,SAAS,YAAY;aAWvB,cAAc,EAAE,MAAM;aACtB,SAAS,EAAE,MAAM;IACjC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,GAAG,CAAC;IAZ5D,SAAS,CAAC,GAAG,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEzC;;;;;;OAMG;gBAEe,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,sBAAsB,CAAC,GAAG,CAAC,YAAA;IAG5D;;;;OAIG;IACI,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC;IAarC;;;;;OAKG;IACU,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IAc/D;;;;;;;;OAQG;cACa,aAAa,CAC3B,CAAC,CAAC,EAAE,cAAc,GACjB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAc9B;;;;;OAKG;IACU,KAAK,CAAC,CAAC,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAS9D;;;;;OAKG;IACI,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC;IAI9C;;;;;;OAMG;IACU,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAWnD;;;;;OAKG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjD;;;;;OAKG;IACU,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAO5D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAIpC;;;;;;OAMG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAMzE;;;;OAIG;IACU,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD;;;;OAIG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM;CAGpC"}
|
package/dist/store/Store.js
CHANGED
|
@@ -139,11 +139,14 @@ export class Store {
|
|
|
139
139
|
* @returns The persisted document including its generated key metadata.
|
|
140
140
|
*/
|
|
141
141
|
async create(doc) {
|
|
142
|
-
const id =
|
|
142
|
+
const id = this.createId(doc.id);
|
|
143
143
|
const ref = this.ref(id);
|
|
144
144
|
await ref.set(doc);
|
|
145
145
|
return this.get(id);
|
|
146
146
|
}
|
|
147
|
+
createId(id) {
|
|
148
|
+
return id ?? uuid.generate();
|
|
149
|
+
}
|
|
147
150
|
/**
|
|
148
151
|
* Update an existing document by merging partial data.
|
|
149
152
|
*
|
package/dist/store/Store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/store/Store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/store/Store.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,7 +71,7 @@ export declare class Validation<DTO extends DocumentData> {
|
|
|
71
71
|
* @returns The parsed and validated partial document data.
|
|
72
72
|
* @throws {@link HttpsError} with `invalid-argument` if validation fails.
|
|
73
73
|
*/
|
|
74
|
-
validatePartial(doc: Partial<
|
|
74
|
+
validatePartial(doc: WithKey<Partial<DTO>>): WithKey<Partial<DTO>>;
|
|
75
75
|
/**
|
|
76
76
|
* Convert Zod validation issues into a structured validation result.
|
|
77
77
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mxpicture/gcp-functions-backend",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.15",
|
|
4
4
|
"description": "Utils for google cloud functions, publishing both CommonJS and ESM builds",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "MXPicture",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@mxpicture/gcp-functions-common": "^1.1.
|
|
36
|
+
"@mxpicture/gcp-functions-common": "^1.1.15",
|
|
37
37
|
"firebase-admin": "^13.7.0",
|
|
38
38
|
"firebase-functions": "^7.0.6",
|
|
39
39
|
"short-uuid": "^6.0.3",
|