@intuitionrobotics/firebase 2.0.12 → 2.1.1
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/app-backend/FirebaseModule.d.ts +2 -2
- package/dist/app-backend/FirebaseModule.d.ts.map +1 -1
- package/dist/app-backend/FirebaseModule.js +14 -9
- package/dist/app-backend/FirebaseModule.js.map +1 -1
- package/dist/app-backend/functions/firebase-function-core.d.ts +105 -0
- package/dist/app-backend/functions/firebase-function-core.d.ts.map +1 -0
- package/dist/app-backend/functions/firebase-function-core.js +162 -0
- package/dist/app-backend/functions/firebase-function-core.js.map +1 -0
- package/dist/app-backend/functions/firebase-function-database.d.ts +10 -0
- package/dist/app-backend/functions/firebase-function-database.d.ts.map +1 -0
- package/dist/app-backend/functions/firebase-function-database.js +30 -0
- package/dist/app-backend/functions/firebase-function-database.js.map +1 -0
- package/dist/app-backend/functions/firebase-function-express.d.ts +18 -0
- package/dist/app-backend/functions/firebase-function-express.d.ts.map +1 -0
- package/dist/app-backend/functions/firebase-function-express.js +46 -0
- package/dist/app-backend/functions/firebase-function-express.js.map +1 -0
- package/dist/app-backend/functions/firebase-function-firestore.d.ts +13 -0
- package/dist/app-backend/functions/firebase-function-firestore.d.ts.map +1 -0
- package/dist/app-backend/functions/firebase-function-firestore.js +28 -0
- package/dist/app-backend/functions/firebase-function-firestore.js.map +1 -0
- package/dist/app-backend/functions/firebase-function-https.d.ts +8 -0
- package/dist/app-backend/functions/firebase-function-https.d.ts.map +1 -0
- package/dist/app-backend/functions/firebase-function-https.js +16 -0
- package/dist/app-backend/functions/firebase-function-https.js.map +1 -0
- package/dist/app-backend/functions/firebase-function-pubsub.d.ts +15 -0
- package/dist/app-backend/functions/firebase-function-pubsub.d.ts.map +1 -0
- package/dist/app-backend/functions/firebase-function-pubsub.js +51 -0
- package/dist/app-backend/functions/firebase-function-pubsub.js.map +1 -0
- package/dist/app-backend/functions/firebase-function-scheduled.d.ts +14 -0
- package/dist/app-backend/functions/firebase-function-scheduled.d.ts.map +1 -0
- package/dist/app-backend/functions/firebase-function-scheduled.js +41 -0
- package/dist/app-backend/functions/firebase-function-scheduled.js.map +1 -0
- package/dist/app-backend/functions/firebase-function-storage.d.ts +24 -0
- package/dist/app-backend/functions/firebase-function-storage.d.ts.map +1 -0
- package/dist/app-backend/functions/firebase-function-storage.js +32 -0
- package/dist/app-backend/functions/firebase-function-storage.js.map +1 -0
- package/dist/app-backend/functions/firebase-function.d.ts +8 -94
- package/dist/app-backend/functions/firebase-function.d.ts.map +1 -1
- package/dist/app-backend/functions/firebase-function.js +18 -349
- package/dist/app-backend/functions/firebase-function.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { onMessagePublished } from "firebase-functions/v2/pubsub";
|
|
2
|
+
import { __stringify, dispatch_onServerError, ServerErrorSeverity } from "@intuitionrobotics/ts-common";
|
|
3
|
+
import { FirebaseFunction, toV2Options, v1Builder } from "./firebase-function-core.js";
|
|
4
|
+
export class Firebase_PubSubFunction extends FirebaseFunction {
|
|
5
|
+
topic;
|
|
6
|
+
constructor(topic, name, onStart, onDestroy) {
|
|
7
|
+
super(name, onStart, onDestroy);
|
|
8
|
+
this.topic = topic;
|
|
9
|
+
}
|
|
10
|
+
_onPublish = async (object, originalMessage, context) => {
|
|
11
|
+
try {
|
|
12
|
+
return await this.onPublish(object, originalMessage, context);
|
|
13
|
+
}
|
|
14
|
+
catch (e) {
|
|
15
|
+
const _message = `Error publishing pub/sub message` + __stringify(object) +
|
|
16
|
+
"\n" + ` to topic ${this.topic}` + "\n with attributes: " + __stringify(originalMessage.attributes) + "\n" + __stringify(e);
|
|
17
|
+
this.logError(_message);
|
|
18
|
+
try {
|
|
19
|
+
await dispatch_onServerError.dispatchModuleAsync(ServerErrorSeverity.Critical, _message);
|
|
20
|
+
}
|
|
21
|
+
catch (_e) {
|
|
22
|
+
this.logError("Error while handing pubsub error", _e);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
parseData(originalMessage) {
|
|
27
|
+
try {
|
|
28
|
+
return JSON.parse(Buffer.from(originalMessage.data, "base64").toString());
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
this.logError(`Error parsing the data attribute from pub/sub message to topic ${this.topic}` +
|
|
32
|
+
"\n" + __stringify(originalMessage.data) + "\n" + __stringify(e));
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
getFunction = () => {
|
|
37
|
+
const labels = this.labels("pubsub-topic-publish");
|
|
38
|
+
if (this.generation === "v1")
|
|
39
|
+
return v1Builder(this.options, labels).pubsub.topic(this.topic).onPublish(async (message, context) => this.runLifecycle(async () => {
|
|
40
|
+
const originalMessage = message.toJSON();
|
|
41
|
+
return this._onPublish(this.parseData(originalMessage), originalMessage, context);
|
|
42
|
+
}));
|
|
43
|
+
return onMessagePublished({ ...toV2Options(this.options, labels), topic: this.topic }, async (event) => this.runLifecycle(async () => {
|
|
44
|
+
const message = event.data.message;
|
|
45
|
+
const originalMessage = { data: message.data, attributes: message.attributes };
|
|
46
|
+
const context = { eventId: event.id, timestamp: event.time };
|
|
47
|
+
return this._onPublish(this.parseData(originalMessage), originalMessage, context);
|
|
48
|
+
}));
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=firebase-function-pubsub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase-function-pubsub.js","sourceRoot":"","sources":["../../../src/main/app-backend/functions/firebase-function-pubsub.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type DeployableFunction, FirebaseFunction } from "./firebase-function-core.js";
|
|
2
|
+
export type ScheduledConfig = {
|
|
3
|
+
timeZone?: string;
|
|
4
|
+
};
|
|
5
|
+
export declare abstract class FirebaseScheduledFunction<Config extends ScheduledConfig = any> extends FirebaseFunction<Config> {
|
|
6
|
+
private schedule?;
|
|
7
|
+
private runningCondition;
|
|
8
|
+
addRunningCondition(runningCondition: () => Promise<boolean>): this;
|
|
9
|
+
setSchedule(schedule: string): this;
|
|
10
|
+
abstract onScheduledEvent(): Promise<any>;
|
|
11
|
+
private runIfConditionsPass;
|
|
12
|
+
getFunction: () => DeployableFunction;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=firebase-function-scheduled.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase-function-scheduled.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/functions/firebase-function-scheduled.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,kBAAkB,EAAE,gBAAgB,EAAyB,MAAM,6BAA6B,CAAC;AAE9G,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,CAAC;AAEF,8BAAsB,yBAAyB,CAAC,MAAM,SAAS,eAAe,GAAG,GAAG,CAChF,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAkC;IAE1D,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC;IAK5D,WAAW,CAAC,QAAQ,EAAE,MAAM;IAK5B,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC;IAEzC,OAAO,CAAC,mBAAmB,CAUpB;IAEP,WAAW,QAAO,kBAAkB,CAoBlC;CACL"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { onSchedule } from "firebase-functions/v2/scheduler";
|
|
2
|
+
import { addItemToArray, ImplementationMissingException } from "@intuitionrobotics/ts-common";
|
|
3
|
+
import { FirebaseFunction, toV2Options, v1Builder } from "./firebase-function-core.js";
|
|
4
|
+
export class FirebaseScheduledFunction extends FirebaseFunction {
|
|
5
|
+
schedule;
|
|
6
|
+
runningCondition = [];
|
|
7
|
+
addRunningCondition(runningCondition) {
|
|
8
|
+
addItemToArray(this.runningCondition, runningCondition);
|
|
9
|
+
return this;
|
|
10
|
+
}
|
|
11
|
+
setSchedule(schedule) {
|
|
12
|
+
this.schedule = schedule;
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
runIfConditionsPass = () => this.runLifecycle(async () => {
|
|
16
|
+
const results = await Promise.all(this.runningCondition.map(condition => condition()));
|
|
17
|
+
if (results.includes(false)) {
|
|
18
|
+
this.logDebug("will not execute backup.. running conditions didn't pass: ", results);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
return this.onScheduledEvent();
|
|
22
|
+
});
|
|
23
|
+
getFunction = () => {
|
|
24
|
+
if (!this.schedule)
|
|
25
|
+
throw new ImplementationMissingException("MUST set schedule !!");
|
|
26
|
+
const labels = this.labels("pubsub-schedule");
|
|
27
|
+
const timeZone = this.config?.timeZone || "Etc/UTC";
|
|
28
|
+
if (this.generation === "v1")
|
|
29
|
+
return v1Builder(this.options, labels)
|
|
30
|
+
.pubsub
|
|
31
|
+
.schedule(this.schedule)
|
|
32
|
+
.timeZone(timeZone)
|
|
33
|
+
.onRun(async () => {
|
|
34
|
+
await this.runIfConditionsPass();
|
|
35
|
+
});
|
|
36
|
+
return onSchedule({ ...toV2Options(this.options, labels), schedule: this.schedule, timeZone }, async () => {
|
|
37
|
+
await this.runIfConditionsPass();
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=firebase-function-scheduled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase-function-scheduled.js","sourceRoot":"","sources":["../../../src/main/app-backend/functions/firebase-function-scheduled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAE,8BAA8B,EAAC,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAA0B,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,6BAA6B,CAAC;AAM9G,MAAM,OAAgB,yBAClB,SAAQ,gBAAwB;IAExB,QAAQ,CAAU;IAClB,gBAAgB,GAA+B,EAAE,CAAC;IAE1D,mBAAmB,CAAC,gBAAwC;QACxD,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,QAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAIO,mBAAmB,GAAG,GAAG,EAAE,CAC/B,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,OAAO,GAAc,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAElG,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,4DAA4D,EAAE,OAAO,CAAC,CAAC;YACrF,OAAO;QACX,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEP,WAAW,GAAG,GAAuB,EAAE;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ;YACd,MAAM,IAAI,8BAA8B,CAAC,sBAAsB,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,SAAS,CAAC;QAEpD,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;YACxB,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;iBACjC,MAAM;iBACN,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACvB,QAAQ,CAAC,QAAQ,CAAC;iBAClB,KAAK,CAAC,KAAK,IAAI,EAAE;gBACd,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;QAEX,OAAO,UAAU,CAAC,EAAC,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAC,EACvF,KAAK,IAAI,EAAE;YACP,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;CACL"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type DeployableFunction, type FirebaseEventContext, FirebaseFunction } from "./firebase-function-core.js";
|
|
2
|
+
export type BucketConfigs = {
|
|
3
|
+
bucketName?: string;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Neutral storage-object payload — superset of v1 `ObjectMetadata` and v2
|
|
7
|
+
* `StorageObjectData`, so `onFinalize` implementations compile against both.
|
|
8
|
+
*/
|
|
9
|
+
export type StorageObjectInfo = {
|
|
10
|
+
name?: string;
|
|
11
|
+
bucket?: string;
|
|
12
|
+
contentType?: string;
|
|
13
|
+
size?: string | number;
|
|
14
|
+
metadata?: {
|
|
15
|
+
[key: string]: string;
|
|
16
|
+
};
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
};
|
|
19
|
+
export declare abstract class Firebase_StorageFunction<Config extends BucketConfigs = BucketConfigs> extends FirebaseFunction<Config> {
|
|
20
|
+
abstract onFinalize(object: StorageObjectInfo, context: FirebaseEventContext): Promise<any>;
|
|
21
|
+
private safeOnFinalize;
|
|
22
|
+
getFunction: () => DeployableFunction;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=firebase-function-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase-function-storage.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/functions/firebase-function-storage.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,gBAAgB,EAInB,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAC;AAEF,8BAAsB,wBAAwB,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa,CACvF,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IAEhC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAE3F,OAAO,CAAC,cAAc,CAapB;IAEF,WAAW,QAAO,kBAAkB,CAgBlC;CACL"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import {} from "firebase-functions/v1";
|
|
2
|
+
import { onObjectFinalized } from "firebase-functions/v2/storage";
|
|
3
|
+
import { __stringify, dispatch_onServerError, ServerErrorSeverity } from "@intuitionrobotics/ts-common";
|
|
4
|
+
import { FirebaseFunction, toV2Options, v1Builder } from "./firebase-function-core.js";
|
|
5
|
+
export class Firebase_StorageFunction extends FirebaseFunction {
|
|
6
|
+
safeOnFinalize = async (object, context) => {
|
|
7
|
+
try {
|
|
8
|
+
return await this.onFinalize(object, context);
|
|
9
|
+
}
|
|
10
|
+
catch (e) {
|
|
11
|
+
const _message = `Error handling callback to onFinalize bucket listener method` +
|
|
12
|
+
"\n" + `File changed ${object?.name}` + "\n with attributes: " + __stringify(context) + "\n" + __stringify(e);
|
|
13
|
+
this.logError(_message);
|
|
14
|
+
try {
|
|
15
|
+
await dispatch_onServerError.dispatchModuleAsync(ServerErrorSeverity.Critical, _message);
|
|
16
|
+
}
|
|
17
|
+
catch (_e) {
|
|
18
|
+
this.logError("Error while handing bucket listener error", _e);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
getFunction = () => {
|
|
23
|
+
this.logInfo(`Initializing ${this.getName()} with configs ${JSON.stringify(this.config)}`);
|
|
24
|
+
// Storage handlers default to a generous timeout/memory unless overridden.
|
|
25
|
+
const options = { timeoutSeconds: 300, memory: "2GiB", ...this.options };
|
|
26
|
+
const labels = this.labels("storage");
|
|
27
|
+
if (this.generation === "v1")
|
|
28
|
+
return v1Builder(options, labels).storage.bucket(this.config.bucketName).object().onFinalize(async (object, context) => this.runLifecycle(async () => this.safeOnFinalize(object, context)));
|
|
29
|
+
return onObjectFinalized({ ...toV2Options(options, labels), bucket: this.config.bucketName }, async (event) => this.runLifecycle(async () => this.safeOnFinalize(event.data, { eventId: event.id, timestamp: event.time })));
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=firebase-function-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase-function-storage.js","sourceRoot":"","sources":["../../../src/main/app-backend/functions/firebase-function-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAC,WAAW,EAAE,sBAAsB,EAAE,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACtG,OAAO,EAGH,gBAAgB,EAEhB,WAAW,EACX,SAAS,EACZ,MAAM,6BAA6B,CAAC;AAmBrC,MAAM,OAAgB,wBAClB,SAAQ,gBAAwB;IAIxB,cAAc,GAAG,KAAK,EAAE,MAAyB,EAAE,OAA6B,EAAE,EAAE;QACxF,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,QAAQ,GAAG,8DAA8D;gBAC3E,IAAI,GAAG,gBAAgB,MAAM,EAAE,IAAI,EAAE,GAAG,sBAAsB,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAClH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxB,IAAI,CAAC;gBACD,MAAM,sBAAsB,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC7F,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACV,IAAI,CAAC,QAAQ,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,WAAW,GAAG,GAAuB,EAAE;QACnC,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,EAAE,iBAAiB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAE1F,2EAA2E;QAC3E,MAAM,OAAO,GAA4B,EAAC,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAC,CAAC;QAChG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;YACxB,OAAO,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CACxF,KAAK,EAAE,MAAsB,EAAE,OAAqB,EAAE,EAAE,CACpD,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAEjF,OAAO,iBAAiB,CAAC,EAAC,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAC,EACtF,KAAK,EAAE,KAAK,EAAE,EAAE,CACZ,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CACzB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,EAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC,CAAC;CACL"}
|
|
@@ -1,95 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
addOnStart(onStart: () => Promise<void>): void;
|
|
10
|
-
addOnDestroy(onDestroy: () => Promise<void>): void;
|
|
11
|
-
}
|
|
12
|
-
export declare abstract class FirebaseFunction<Config = any> extends Module<Config> implements FirebaseFunctionInterface {
|
|
13
|
-
onDestroy: (() => Promise<void>)[];
|
|
14
|
-
onStart: (() => Promise<void>)[];
|
|
15
|
-
protected runtimeOptions: RuntimeOptions;
|
|
16
|
-
constructor(name: string, onStart?: () => Promise<void>, onDestroy?: () => Promise<void>, runtimeOptions?: RuntimeOptions);
|
|
17
|
-
abstract getFunction(): HttpsFunction;
|
|
18
|
-
addOnStart(onStart: () => Promise<void>): void;
|
|
19
|
-
addOnDestroy(onDestroy: () => Promise<void>): void;
|
|
20
|
-
}
|
|
21
|
-
export declare class Firebase_ExpressFunction implements FirebaseFunctionInterface {
|
|
22
|
-
private readonly express;
|
|
23
|
-
private function;
|
|
24
|
-
private readonly name;
|
|
25
|
-
static config: RuntimeOptions;
|
|
26
|
-
onDestroy: (() => Promise<void>)[];
|
|
27
|
-
onStart: (() => Promise<void>)[];
|
|
28
|
-
constructor(_express: Express, name?: string, onStart?: () => Promise<void>, onDestroy?: () => Promise<void>);
|
|
29
|
-
static setConfig(config: RuntimeOptions): void;
|
|
30
|
-
addOnStart(onStart: () => Promise<void>): void;
|
|
31
|
-
addOnDestroy(onDestroy: () => Promise<void>): void;
|
|
32
|
-
getName(): string;
|
|
33
|
-
getFunction: () => functions.HttpsFunction;
|
|
34
|
-
}
|
|
35
|
-
export declare abstract class Firebase_HttpsFunction<Config = any> extends FirebaseFunction<Config> {
|
|
36
|
-
private function;
|
|
37
|
-
abstract process(req: Request, res: Response): Promise<any>;
|
|
38
|
-
getFunction: () => functions.HttpsFunction;
|
|
39
|
-
onFunctionReady: () => Promise<void>;
|
|
40
|
-
}
|
|
41
|
-
export declare abstract class FirebaseFunctionModule<DataType = any, Config = any> extends FirebaseFunction<Config> {
|
|
42
|
-
private readonly listeningPath;
|
|
43
|
-
private function;
|
|
44
|
-
protected constructor(listeningPath: string, name: string, onStart?: () => Promise<void>, onDestroy?: () => Promise<void>);
|
|
45
|
-
abstract processChanges(before: DataType, after: DataType, params: {
|
|
46
|
-
[param: string]: any;
|
|
47
|
-
}): Promise<any>;
|
|
48
|
-
getFunction: () => functions.CloudFunction<functions.Change<database.DataSnapshot>>;
|
|
49
|
-
}
|
|
50
|
-
export type FirestoreConfigs = {
|
|
51
|
-
configs: any;
|
|
52
|
-
};
|
|
53
|
-
export declare abstract class FirestoreFunctionModule<DataType extends object, Config extends FirestoreConfigs = FirestoreConfigs> extends FirebaseFunction<Config> {
|
|
54
|
-
private readonly collectionName;
|
|
55
|
-
private function;
|
|
56
|
-
protected constructor(collectionName: string, name: string, onStart?: () => Promise<void>, onDestroy?: () => Promise<void>);
|
|
57
|
-
abstract processChanges(params: {
|
|
58
|
-
[param: string]: any;
|
|
59
|
-
}, before?: DataType, after?: DataType): Promise<any>;
|
|
60
|
-
getFunction: () => functions.CloudFunction<functions.Change<firestore.DocumentSnapshot>>;
|
|
61
|
-
}
|
|
62
|
-
export type ScheduledConfig = {
|
|
63
|
-
timeZone?: string;
|
|
64
|
-
};
|
|
65
|
-
export declare abstract class FirebaseScheduledFunction<Config extends ScheduledConfig = any> extends FirebaseFunction<Config> {
|
|
66
|
-
private function;
|
|
67
|
-
private schedule?;
|
|
68
|
-
private runningCondition;
|
|
69
|
-
addRunningCondition(runningCondition: () => Promise<boolean>): this;
|
|
70
|
-
setSchedule(schedule: string): this;
|
|
71
|
-
abstract onScheduledEvent(): Promise<any>;
|
|
72
|
-
getFunction: () => functions.CloudFunction<functions.Change<database.DataSnapshot>>;
|
|
73
|
-
}
|
|
74
|
-
export type BucketConfigs = {
|
|
75
|
-
bucketName?: string;
|
|
76
|
-
};
|
|
77
|
-
export declare abstract class Firebase_StorageFunction<Config extends BucketConfigs = BucketConfigs> extends FirebaseFunction<Config> {
|
|
78
|
-
private function;
|
|
79
|
-
abstract onFinalize(object: ObjectMetadata, context: EventContext): Promise<any>;
|
|
80
|
-
getFunction: () => functions.CloudFunction<functions.storage.ObjectMetadata>;
|
|
81
|
-
}
|
|
82
|
-
export type FirebaseEventContext = EventContext;
|
|
83
|
-
export type TopicMessage = {
|
|
84
|
-
data: string;
|
|
85
|
-
attributes: StringMap;
|
|
86
|
-
};
|
|
87
|
-
export declare abstract class Firebase_PubSubFunction<T, Config = any> extends FirebaseFunction<Config> {
|
|
88
|
-
private function;
|
|
89
|
-
private readonly topic;
|
|
90
|
-
protected constructor(topic: string, name: string, onStart?: () => Promise<void>, onDestroy?: () => Promise<void>);
|
|
91
|
-
abstract onPublish(object: T | undefined, originalMessage: TopicMessage, context: FirebaseEventContext): Promise<any>;
|
|
92
|
-
private _onPublish;
|
|
93
|
-
getFunction: () => functions.CloudFunction<functions.pubsub.Message>;
|
|
94
|
-
}
|
|
1
|
+
export { FirebaseFunction, configureFirebaseFunctionsRuntime, getDefaultFunctionGeneration, setDefaultFunctionGeneration, type DeployableFunction, type FirebaseEventContext, type FirebaseFunctionInterface, type FirebaseFunctionMemory, type FirebaseFunctionOptions, type FirebaseFunctionsRuntimeConfig, type FunctionGeneration } from "./firebase-function-core.js";
|
|
2
|
+
export * from "./firebase-function-express.js";
|
|
3
|
+
export * from "./firebase-function-https.js";
|
|
4
|
+
export * from "./firebase-function-database.js";
|
|
5
|
+
export * from "./firebase-function-firestore.js";
|
|
6
|
+
export * from "./firebase-function-scheduled.js";
|
|
7
|
+
export * from "./firebase-function-storage.js";
|
|
8
|
+
export * from "./firebase-function-pubsub.js";
|
|
95
9
|
//# sourceMappingURL=firebase-function.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase-function.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/functions/firebase-function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"firebase-function.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/functions/firebase-function.ts"],"names":[],"mappings":"AAUA,OAAO,EACH,gBAAgB,EAChB,iCAAiC,EACjC,4BAA4B,EAC5B,4BAA4B,EAC5B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EAC1B,MAAM,6BAA6B,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC"}
|