@mxpicture/gcp-functions-backend 1.3.4 → 1.3.18
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/firebase/FirebaseTaskHandler.d.ts +3 -4
- package/dist/firebase/FirebaseTaskHandler.d.ts.map +1 -1
- package/dist/firebase/FirebaseTaskHandler.js +4 -13
- package/dist/firebase/FirebaseTaskHandler.js.map +1 -1
- package/dist/firebase/FirebaseTaskQueueHandler.d.ts +3 -4
- package/dist/firebase/FirebaseTaskQueueHandler.d.ts.map +1 -1
- package/dist/firebase/FirebaseTaskQueueHandler.js +3 -4
- package/dist/firebase/FirebaseTaskQueueHandler.js.map +1 -1
- package/dist/firebase/index.d.ts +0 -1
- package/dist/firebase/index.d.ts.map +1 -1
- package/dist/firebase/index.js +0 -1
- package/dist/firebase/index.js.map +1 -1
- package/dist/function/IBackendFunction.d.ts +2 -2
- package/dist/function/IBackendFunction.d.ts.map +1 -1
- package/dist/function/IBackendFunction.js +7 -5
- package/dist/function/IBackendFunction.js.map +1 -1
- package/dist/types/types.tasks.d.ts +0 -27
- package/dist/types/types.tasks.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/firebase/FirebaseTaskCallback.d.ts +0 -29
- package/dist/firebase/FirebaseTaskCallback.d.ts.map +0 -1
- package/dist/firebase/FirebaseTaskCallback.js +0 -69
- package/dist/firebase/FirebaseTaskCallback.js.map +0 -1
|
@@ -24,7 +24,7 @@ export declare class FirebaseTaskHandler {
|
|
|
24
24
|
*
|
|
25
25
|
* @param p - Task parameters including the mandatory `taskId` to reschedule.
|
|
26
26
|
* @param scheduleTime - The new schedule timestamp.
|
|
27
|
-
* @returns The created task's resource name
|
|
27
|
+
* @returns The created task's resource name.
|
|
28
28
|
*/
|
|
29
29
|
reschedule(p: FirebaseTaskParams & {
|
|
30
30
|
taskId: string;
|
|
@@ -32,10 +32,9 @@ export declare class FirebaseTaskHandler {
|
|
|
32
32
|
/**
|
|
33
33
|
* Create a new Cloud Task scheduled for the given time.
|
|
34
34
|
*
|
|
35
|
-
* @param p - Task parameters: target URL, optional payload, optional task ID, queue ID
|
|
36
|
-
* optional `callbackUrl` / `taskRef` for end-of-task notification (see {@link FirebaseTaskCallbackBody}).
|
|
35
|
+
* @param p - Task parameters: target URL, optional payload, optional task ID, queue ID
|
|
37
36
|
* @param scheduleTime - When the task should be dispatched.
|
|
38
|
-
* @returns The created task's resource name
|
|
37
|
+
* @returns The created task's resource name.
|
|
39
38
|
*/
|
|
40
39
|
schedule(p: FirebaseTaskParams, scheduleTime: FirebaseTaskTimestamp): Promise<FirebaseTaskScheduleResult>;
|
|
41
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseTaskHandler.d.ts","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"FirebaseTaskHandler.d.ts","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAOzE;;;;;;GAMG;AACH,qBAAa,mBAAmB;IASX,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe;IAR1D,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACxC,SAAS,CAAC,aAAa,EAAE,wBAAwB,EAAE,CAAM;IAEzD;;;;OAIG;gBACmC,GAAG,EAAE,eAAe;IAInD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB;IAYjE;;;;;;OAMG;IACU,UAAU,CACrB,CAAC,EAAE,kBAAkB,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC1C,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,0BAA0B,CAAC;IAgBtC;;;;;;OAMG;IACU,QAAQ,CACnB,CAAC,EAAE,kBAAkB,EACrB,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,0BAA0B,CAAC;IAiCtC;;;;;OAKG;IACU,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAO/D;;;;;;OAMG;IACU,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAO5E;;;;;;OAMG;IACU,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3E;;;;;;OAMG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IASxD;;;;;OAKG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI;IAW/D;;;;;OAKG;IACI,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQzC;;;;;OAKG;IACI,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI;IAUjE,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY;CAOhE"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CloudTasksClient } from "@google-cloud/tasks";
|
|
2
|
-
import { randomUUID } from "node:crypto";
|
|
3
2
|
import { FirebaseTaskQueueHandler } from "./FirebaseTaskQueueHandler.js";
|
|
4
3
|
const taskPathRegex = /^projects\/([a-zA-Z0-9-_]+)\/locations\/([a-zA-Z0-9-_]+)\/queues\/([a-zA-Z0-9-_]+)\/tasks\/([a-zA-Z0-9-_]+)$/;
|
|
5
4
|
const queuePathRegex = /^projects\/([a-zA-Z0-9-_]+)\/locations\/([a-zA-Z0-9-_]+)\/queues\/([a-zA-Z0-9-_]+)$/;
|
|
@@ -37,7 +36,7 @@ export class FirebaseTaskHandler {
|
|
|
37
36
|
*
|
|
38
37
|
* @param p - Task parameters including the mandatory `taskId` to reschedule.
|
|
39
38
|
* @param scheduleTime - The new schedule timestamp.
|
|
40
|
-
* @returns The created task's resource name
|
|
39
|
+
* @returns The created task's resource name.
|
|
41
40
|
*/
|
|
42
41
|
async reschedule(p, scheduleTime) {
|
|
43
42
|
try {
|
|
@@ -50,17 +49,14 @@ export class FirebaseTaskHandler {
|
|
|
50
49
|
payload: p.payload,
|
|
51
50
|
taskId: p.taskId,
|
|
52
51
|
queueId: p.queueId,
|
|
53
|
-
callbackUrl: p.callbackUrl,
|
|
54
|
-
taskRef: p.taskRef,
|
|
55
52
|
}, scheduleTime);
|
|
56
53
|
}
|
|
57
54
|
/**
|
|
58
55
|
* Create a new Cloud Task scheduled for the given time.
|
|
59
56
|
*
|
|
60
|
-
* @param p - Task parameters: target URL, optional payload, optional task ID, queue ID
|
|
61
|
-
* optional `callbackUrl` / `taskRef` for end-of-task notification (see {@link FirebaseTaskCallbackBody}).
|
|
57
|
+
* @param p - Task parameters: target URL, optional payload, optional task ID, queue ID
|
|
62
58
|
* @param scheduleTime - When the task should be dispatched.
|
|
63
|
-
* @returns The created task's resource name
|
|
59
|
+
* @returns The created task's resource name.
|
|
64
60
|
*/
|
|
65
61
|
async schedule(p, scheduleTime) {
|
|
66
62
|
const queuePath = this.queuePath(p.queueId);
|
|
@@ -71,11 +67,6 @@ export class FirebaseTaskHandler {
|
|
|
71
67
|
body = Buffer.from(p.payload, "utf8").toString("base64");
|
|
72
68
|
headers["Content-Type"] = "application/json";
|
|
73
69
|
}
|
|
74
|
-
const taskRef = p.callbackUrl ? (p.taskRef ?? randomUUID()) : null;
|
|
75
|
-
if (p.callbackUrl && taskRef) {
|
|
76
|
-
headers["X-Task-Callback-Url"] = p.callbackUrl;
|
|
77
|
-
headers["X-Task-Ref"] = taskRef;
|
|
78
|
-
}
|
|
79
70
|
const [task] = await this.tasksClient.createTask({
|
|
80
71
|
parent: queuePath,
|
|
81
72
|
task: {
|
|
@@ -94,7 +85,7 @@ export class FirebaseTaskHandler {
|
|
|
94
85
|
},
|
|
95
86
|
},
|
|
96
87
|
});
|
|
97
|
-
return { name: task.name ?? null
|
|
88
|
+
return { name: task.name ?? null };
|
|
98
89
|
}
|
|
99
90
|
/**
|
|
100
91
|
* List all tasks in a queue.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseTaskHandler.js","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"FirebaseTaskHandler.js","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ export declare class FirebaseTaskQueueHandler {
|
|
|
19
19
|
*
|
|
20
20
|
* @param p - Task parameters including the mandatory `taskId` to reschedule.
|
|
21
21
|
* @param scheduleTime - The new schedule timestamp.
|
|
22
|
-
* @returns The created task's resource name
|
|
22
|
+
* @returns The created task's resource name.
|
|
23
23
|
*/
|
|
24
24
|
reschedule(p: FirebaseTaskQueueParams & {
|
|
25
25
|
taskId: string;
|
|
@@ -27,10 +27,9 @@ export declare class FirebaseTaskQueueHandler {
|
|
|
27
27
|
/**
|
|
28
28
|
* Create a new Cloud Task scheduled for the given time.
|
|
29
29
|
*
|
|
30
|
-
* @param p - Task parameters: target URL, optional payload, optional task ID
|
|
31
|
-
* `callbackUrl` / `taskRef` for end-of-task notification.
|
|
30
|
+
* @param p - Task parameters: target URL, optional payload, optional task ID
|
|
32
31
|
* @param scheduleTime - When the task should be dispatched.
|
|
33
|
-
* @returns The created task's resource name
|
|
32
|
+
* @returns The created task's resource name.
|
|
34
33
|
*/
|
|
35
34
|
schedule(p: FirebaseTaskQueueParams, scheduleTime: FirebaseTaskTimestamp): Promise<FirebaseTaskScheduleResult>;
|
|
36
35
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseTaskQueueHandler.d.ts","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskQueueHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;;;;;GAMG;AACH,qBAAa,wBAAwB;aAIA,OAAO,EAAE,MAAM;IAHlD,SAAS,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAC1D,SAAS,CAAC,aAAa,EAAE,wBAAwB,EAAE,CAAM;gBAEtB,OAAO,EAAE,MAAM;IAElD,IAAW,aAAa,CAAC,OAAO,EAAE,mBAAmB,EAEpD;IAED,IAAW,WAAW,IAAI,mBAAmB,CAI5C;IAED;;;;;;OAMG;IACU,UAAU,CACrB,CAAC,EAAE,uBAAuB,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC/C,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,0BAA0B,CAAC;IAOtC
|
|
1
|
+
{"version":3,"file":"FirebaseTaskQueueHandler.d.ts","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskQueueHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;;;;;GAMG;AACH,qBAAa,wBAAwB;aAIA,OAAO,EAAE,MAAM;IAHlD,SAAS,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAC1D,SAAS,CAAC,aAAa,EAAE,wBAAwB,EAAE,CAAM;gBAEtB,OAAO,EAAE,MAAM;IAElD,IAAW,aAAa,CAAC,OAAO,EAAE,mBAAmB,EAEpD;IAED,IAAW,WAAW,IAAI,mBAAmB,CAI5C;IAED;;;;;;OAMG;IACU,UAAU,CACrB,CAAC,EAAE,uBAAuB,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC/C,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,0BAA0B,CAAC;IAOtC;;;;;;OAMG;IACU,QAAQ,CACnB,CAAC,EAAE,uBAAuB,EAC1B,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,0BAA0B,CAAC;IAOtC;;;;OAIG;IACU,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAIhD;;;;;OAKG;IACU,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI3D;;;;;OAKG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAG3D"}
|
|
@@ -25,7 +25,7 @@ export class FirebaseTaskQueueHandler {
|
|
|
25
25
|
*
|
|
26
26
|
* @param p - Task parameters including the mandatory `taskId` to reschedule.
|
|
27
27
|
* @param scheduleTime - The new schedule timestamp.
|
|
28
|
-
* @returns The created task's resource name
|
|
28
|
+
* @returns The created task's resource name.
|
|
29
29
|
*/
|
|
30
30
|
async reschedule(p, scheduleTime) {
|
|
31
31
|
return await this.taskHandler.reschedule({ ...p, queueId: this.queueId }, scheduleTime);
|
|
@@ -33,10 +33,9 @@ export class FirebaseTaskQueueHandler {
|
|
|
33
33
|
/**
|
|
34
34
|
* Create a new Cloud Task scheduled for the given time.
|
|
35
35
|
*
|
|
36
|
-
* @param p - Task parameters: target URL, optional payload, optional task ID
|
|
37
|
-
* `callbackUrl` / `taskRef` for end-of-task notification.
|
|
36
|
+
* @param p - Task parameters: target URL, optional payload, optional task ID
|
|
38
37
|
* @param scheduleTime - When the task should be dispatched.
|
|
39
|
-
* @returns The created task's resource name
|
|
38
|
+
* @returns The created task's resource name.
|
|
40
39
|
*/
|
|
41
40
|
async schedule(p, scheduleTime) {
|
|
42
41
|
return await this.taskHandler.schedule({ ...p, queueId: this.queueId }, scheduleTime);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseTaskQueueHandler.js","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskQueueHandler.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,MAAM,OAAO,wBAAwB;IAIA;IAHzB,YAAY,GAA+B,IAAI,CAAC;IAChD,aAAa,GAA+B,EAAE,CAAC;IAEzD,YAAmC,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEtD,IAAW,aAAa,CAAC,OAA4B;QACnD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED,IAAW,WAAW;QACpB,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,UAAU,CACrB,CAA+C,EAC/C,YAAmC;QAEnC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CACtC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAC/B,YAAY,CACb,CAAC;IACJ,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"FirebaseTaskQueueHandler.js","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskQueueHandler.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,MAAM,OAAO,wBAAwB;IAIA;IAHzB,YAAY,GAA+B,IAAI,CAAC;IAChD,aAAa,GAA+B,EAAE,CAAC;IAEzD,YAAmC,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEtD,IAAW,aAAa,CAAC,OAA4B;QACnD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED,IAAW,WAAW;QACpB,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,UAAU,CACrB,CAA+C,EAC/C,YAAmC;QAEnC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CACtC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAC/B,YAAY,CACb,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,QAAQ,CACnB,CAA0B,EAC1B,YAAmC;QAEnC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CACpC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAC/B,YAAY,CACb,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,QAAQ;QACnB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,MAAc;QACjC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,WAAW,CAAC,MAAc;QACrC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;CACF"}
|
package/dist/firebase/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/firebase/index.ts"],"names":[],"mappings":"AACA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/firebase/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
|
package/dist/firebase/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/firebase/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/firebase/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
|
|
@@ -49,14 +49,14 @@ export declare abstract class IBackendFunction<STORE_DOC extends DocumentKeyAdmi
|
|
|
49
49
|
* @returns The API instance.
|
|
50
50
|
* @throws {@link Error} if no API has been provided via {@link useApi}.
|
|
51
51
|
*/
|
|
52
|
-
|
|
52
|
+
get api(): API;
|
|
53
53
|
/**
|
|
54
54
|
* Retrieve the registered route names.
|
|
55
55
|
*
|
|
56
56
|
* @returns The array of allowed route names.
|
|
57
57
|
* @throws {@link Error} if no routes have been provided via {@link useRoutes}.
|
|
58
58
|
*/
|
|
59
|
-
|
|
59
|
+
get routes(): string[];
|
|
60
60
|
/**
|
|
61
61
|
* Route an incoming function request to the appropriate API method.
|
|
62
62
|
*
|
|
@@ -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,
|
|
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;AAQrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,8BAAsB,gBAAgB,CACpC,SAAS,SAAS,gBAAgB,EAClC,GAAG,SAAS,SAAS,EACrB,YAAY,SAAS,YAAY,EACjC,GAAG,SAAS,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC;aAcnC,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,IAAW,GAAG,IAAI,GAAG,CAIpB;IAED;;;;;OAKG;IACH,IAAW,MAAM,IAAI,MAAM,EAAE,CAM5B;IAED;;;;;;;;;;;;;OAaG;IACU,OAAO,CAAC,GAAG,EAAE,GAAG,SAAS,YAAY,EAChD,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,GAC5B,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAwBjC;;;;;;;;OAQG;IACI,qBAAqB,IAAI,gBAAgB,CAE9C,eAAe,CAAC,GAAG,CAAC,EAEpB,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAC/B;IAOD;;;;;;;;OAQG;IACI,kBAAkB,CACvB,IAAI,GAAE,kBAAkB,GAAG,IAAuB,GACjD,aAAa;CAkBjB"}
|
|
@@ -56,7 +56,7 @@ export class IBackendFunction {
|
|
|
56
56
|
* @returns The API instance.
|
|
57
57
|
* @throws {@link Error} if no API has been provided via {@link useApi}.
|
|
58
58
|
*/
|
|
59
|
-
api() {
|
|
59
|
+
get api() {
|
|
60
60
|
if (!this._api)
|
|
61
61
|
throw new Error(`${this.name}: api not provided. Use "useApi" method`);
|
|
62
62
|
return this._api;
|
|
@@ -67,7 +67,7 @@ export class IBackendFunction {
|
|
|
67
67
|
* @returns The array of allowed route names.
|
|
68
68
|
* @throws {@link Error} if no routes have been provided via {@link useRoutes}.
|
|
69
69
|
*/
|
|
70
|
-
routes() {
|
|
70
|
+
get routes() {
|
|
71
71
|
if (!this._routes)
|
|
72
72
|
throw new Error(`${this.name}: routes not provided. Use "useRoutes" method`);
|
|
73
73
|
return this._routes;
|
|
@@ -87,14 +87,16 @@ export class IBackendFunction {
|
|
|
87
87
|
* @throws {@link HttpsError} with `internal` if the API method throws an unexpected error.
|
|
88
88
|
*/
|
|
89
89
|
async ingress(request) {
|
|
90
|
-
const routes = this.routes
|
|
90
|
+
const routes = this.routes;
|
|
91
91
|
if (!routes.find((m) => m === request.route))
|
|
92
92
|
throw new HttpsError("invalid-argument", `Route ${request.route} not available`);
|
|
93
93
|
try {
|
|
94
94
|
const requestData = toDatesDeep(request.data, this.datePaths);
|
|
95
95
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
96
|
-
const payload = await this.api
|
|
97
|
-
return {
|
|
96
|
+
const payload = await this.api[request.route](requestData);
|
|
97
|
+
return {
|
|
98
|
+
data: toTimestampsDeep(payload, this.datePaths),
|
|
99
|
+
};
|
|
98
100
|
}
|
|
99
101
|
catch (error) {
|
|
100
102
|
if (error instanceof HttpsError)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IBackendFunction.js","sourceRoot":"","sources":["../../src/function/IBackendFunction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IBackendFunction.js","sourceRoot":"","sources":["../../src/function/IBackendFunction.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,43 +12,16 @@ export interface FirebaseTaskParams {
|
|
|
12
12
|
payload?: string;
|
|
13
13
|
taskId?: string;
|
|
14
14
|
queueId: string;
|
|
15
|
-
/**
|
|
16
|
-
* Fully-qualified URL the worker should POST a {@link FirebaseTaskCallbackBody} to
|
|
17
|
-
* once the task finishes (success or failure). When set, the scheduled task carries
|
|
18
|
-
* the callback URL on the `X-Task-Callback-Url` request header.
|
|
19
|
-
*/
|
|
20
|
-
callbackUrl?: string;
|
|
21
|
-
/**
|
|
22
|
-
* Correlation ID echoed back on the callback. Auto-generated when omitted and
|
|
23
|
-
* `callbackUrl` is set. Travels on the `X-Task-Ref` request header.
|
|
24
|
-
*/
|
|
25
|
-
taskRef?: string;
|
|
26
15
|
}
|
|
27
16
|
export interface FirebaseTaskQueueParams {
|
|
28
17
|
targetUrl: string;
|
|
29
18
|
payload?: string;
|
|
30
19
|
taskId?: string;
|
|
31
|
-
callbackUrl?: string;
|
|
32
|
-
taskRef?: string;
|
|
33
20
|
}
|
|
34
21
|
/** Result of scheduling a task with optional callback metadata. */
|
|
35
22
|
export interface FirebaseTaskScheduleResult {
|
|
36
23
|
/** Full Cloud Tasks resource name, or `null` if the created task has no name. */
|
|
37
24
|
name: string | null;
|
|
38
|
-
/** Resolved callback correlation ID, or `null` if no `callbackUrl` was provided. */
|
|
39
|
-
taskRef: string | null;
|
|
40
|
-
}
|
|
41
|
-
/** Status reported by the worker on task completion. */
|
|
42
|
-
export type FirebaseTaskCallbackStatus = "succeeded" | "failed";
|
|
43
|
-
/** Body posted by the worker to the caller-supplied `callbackUrl`. */
|
|
44
|
-
export interface FirebaseTaskCallbackBody {
|
|
45
|
-
taskRef: string;
|
|
46
|
-
status: FirebaseTaskCallbackStatus;
|
|
47
|
-
result?: unknown;
|
|
48
|
-
error?: {
|
|
49
|
-
message: string;
|
|
50
|
-
stack?: string;
|
|
51
|
-
};
|
|
52
25
|
}
|
|
53
26
|
/** Relative time offset parameters used by {@link taskScheduleTimestamp}. */
|
|
54
27
|
export interface FirebaseTaskDurationParams {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.tasks.d.ts","sourceRoot":"","sources":["../../src/types/types.tasks.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.tasks.d.ts","sourceRoot":"","sources":["../../src/types/types.tasks.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,WAAW,0BAA0B;IACzC,iFAAiF;IACjF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,6EAA6E;AAC7E,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD,6EAA6E;AAC7E,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB;IACnE,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,8EAA8E;AAC9E,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACzC,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wBAAwB;IACxB,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC5C,sBAAsB;IACtB,UAAU,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC1C,4BAA4B;IAC5B,gBAAgB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC/C,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wBAAwB;IACxB,YAAY,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,uBAAuB;IACvB,WAAW,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC1C;AAED,mDAAmD;AACnD,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC5C;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,gFAAgF;AAChF,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEzD,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mxpicture/gcp-functions-backend",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.18",
|
|
4
4
|
"description": "Utils for google cloud functions, publishing both CommonJS and ESM builds",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "MXPicture",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@google-cloud/tasks": "^6.2.1",
|
|
57
|
-
"@mxpicture/gcp-functions-common": "^1.3.
|
|
57
|
+
"@mxpicture/gcp-functions-common": "^1.3.18",
|
|
58
58
|
"express": "^5.2.1",
|
|
59
59
|
"firebase-admin": "^13.7.0",
|
|
60
60
|
"firebase-functions": "^7.0.6",
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { Request } from "express";
|
|
2
|
-
/**
|
|
3
|
-
* Run a Cloud Tasks worker function and POST a {@link FirebaseTaskCallbackBody}
|
|
4
|
-
* to the caller-supplied callback URL when it finishes.
|
|
5
|
-
*
|
|
6
|
-
* @remarks
|
|
7
|
-
* The callback URL and correlation ID are read from the `X-Task-Callback-Url`
|
|
8
|
-
* and `X-Task-Ref` request headers (set by {@link FirebaseTaskHandler.schedule}
|
|
9
|
-
* when `callbackUrl` is provided).
|
|
10
|
-
*
|
|
11
|
-
* Behavior:
|
|
12
|
-
* - On success: POSTs `{ taskRef, status: "succeeded", result }`, then returns the result.
|
|
13
|
-
* - On failure: POSTs `{ taskRef, status: "failed", error }`, then returns `undefined` —
|
|
14
|
-
* the error is **swallowed** so the caller can ack Cloud Tasks with 2xx and avoid retries.
|
|
15
|
-
* The callback delivery is the durable failure signal.
|
|
16
|
-
* - If callback headers are absent: runs `fn` as a passthrough and rethrows on error
|
|
17
|
-
* (backward compatible with workers that don't opt in to callbacks).
|
|
18
|
-
* - If the callback POST itself fails: the error is logged but otherwise ignored;
|
|
19
|
-
* the worker still returns normally so Cloud Tasks does not retry.
|
|
20
|
-
*
|
|
21
|
-
* The callback POST uses an OIDC bearer token whose audience is the callback URL,
|
|
22
|
-
* matching the auth shape that {@link checkServiceAuth} validates.
|
|
23
|
-
*
|
|
24
|
-
* @param req - The Express request the Cloud Task dispatched.
|
|
25
|
-
* @param fn - The worker logic to run.
|
|
26
|
-
* @returns The worker's result, or `undefined` if the worker threw (see above).
|
|
27
|
-
*/
|
|
28
|
-
export declare function runTaskWithCallback<T>(req: Request, fn: () => Promise<T>): Promise<T | undefined>;
|
|
29
|
-
//# sourceMappingURL=FirebaseTaskCallback.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseTaskCallback.d.ts","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskCallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMvC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,GAAG,EAAE,OAAO,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAwCxB"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { GoogleAuth } from "google-auth-library";
|
|
2
|
-
const auth = new GoogleAuth();
|
|
3
|
-
/**
|
|
4
|
-
* Run a Cloud Tasks worker function and POST a {@link FirebaseTaskCallbackBody}
|
|
5
|
-
* to the caller-supplied callback URL when it finishes.
|
|
6
|
-
*
|
|
7
|
-
* @remarks
|
|
8
|
-
* The callback URL and correlation ID are read from the `X-Task-Callback-Url`
|
|
9
|
-
* and `X-Task-Ref` request headers (set by {@link FirebaseTaskHandler.schedule}
|
|
10
|
-
* when `callbackUrl` is provided).
|
|
11
|
-
*
|
|
12
|
-
* Behavior:
|
|
13
|
-
* - On success: POSTs `{ taskRef, status: "succeeded", result }`, then returns the result.
|
|
14
|
-
* - On failure: POSTs `{ taskRef, status: "failed", error }`, then returns `undefined` —
|
|
15
|
-
* the error is **swallowed** so the caller can ack Cloud Tasks with 2xx and avoid retries.
|
|
16
|
-
* The callback delivery is the durable failure signal.
|
|
17
|
-
* - If callback headers are absent: runs `fn` as a passthrough and rethrows on error
|
|
18
|
-
* (backward compatible with workers that don't opt in to callbacks).
|
|
19
|
-
* - If the callback POST itself fails: the error is logged but otherwise ignored;
|
|
20
|
-
* the worker still returns normally so Cloud Tasks does not retry.
|
|
21
|
-
*
|
|
22
|
-
* The callback POST uses an OIDC bearer token whose audience is the callback URL,
|
|
23
|
-
* matching the auth shape that {@link checkServiceAuth} validates.
|
|
24
|
-
*
|
|
25
|
-
* @param req - The Express request the Cloud Task dispatched.
|
|
26
|
-
* @param fn - The worker logic to run.
|
|
27
|
-
* @returns The worker's result, or `undefined` if the worker threw (see above).
|
|
28
|
-
*/
|
|
29
|
-
export async function runTaskWithCallback(req, fn) {
|
|
30
|
-
const callbackUrl = req.header("x-task-callback-url");
|
|
31
|
-
const taskRef = req.header("x-task-ref");
|
|
32
|
-
if (!callbackUrl || !taskRef)
|
|
33
|
-
return await fn();
|
|
34
|
-
let result;
|
|
35
|
-
let body;
|
|
36
|
-
try {
|
|
37
|
-
result = await fn();
|
|
38
|
-
body = { taskRef, status: "succeeded", result };
|
|
39
|
-
}
|
|
40
|
-
catch (err) {
|
|
41
|
-
const e = err;
|
|
42
|
-
body = {
|
|
43
|
-
taskRef,
|
|
44
|
-
status: "failed",
|
|
45
|
-
error: {
|
|
46
|
-
message: e?.message ?? String(err),
|
|
47
|
-
stack: e?.stack,
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
try {
|
|
52
|
-
const client = await auth.getIdTokenClient(callbackUrl);
|
|
53
|
-
await client.request({
|
|
54
|
-
url: callbackUrl,
|
|
55
|
-
method: "POST",
|
|
56
|
-
headers: { "Content-Type": "application/json" },
|
|
57
|
-
data: body,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
console.error("[runTaskWithCallback] callback POST failed", {
|
|
62
|
-
callbackUrl,
|
|
63
|
-
taskRef,
|
|
64
|
-
err,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
return result;
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=FirebaseTaskCallback.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseTaskCallback.js","sourceRoot":"","sources":["../../src/firebase/FirebaseTaskCallback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAY,EACZ,EAAoB;IAEpB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAEzC,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,EAAE,EAAE,CAAC;IAEhD,IAAI,MAAqB,CAAC;IAC1B,IAAI,IAA8B,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QACpB,IAAI,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAAwB,CAAC;QACnC,IAAI,GAAG;YACL,OAAO;YACP,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE;gBACL,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;gBAClC,KAAK,EAAE,CAAC,EAAE,KAAK;aAChB;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,MAAM,CAAC,OAAO,CAAC;YACnB,GAAG,EAAE,WAAW;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE;YAC1D,WAAW;YACX,OAAO;YACP,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|