@dereekb/firebase-server 9.9.5 → 9.10.0
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/CHANGELOG.md +11 -0
- package/mailgun/package.json +12 -11
- package/package.json +10 -9
- package/src/lib/env/env.service.d.ts +1 -0
- package/src/lib/env/env.service.js.map +1 -1
- package/src/lib/nest/development/development.app.function.d.ts +30 -0
- package/src/lib/nest/development/development.app.function.js +38 -0
- package/src/lib/nest/development/development.app.function.js.map +1 -0
- package/src/lib/nest/development/development.assert.function.d.ts +9 -0
- package/src/lib/nest/development/development.assert.function.js +3 -0
- package/src/lib/nest/development/development.assert.function.js.map +1 -0
- package/src/lib/nest/development/development.function.d.ts +20 -0
- package/src/lib/nest/development/development.function.js +38 -0
- package/src/lib/nest/development/development.function.js.map +1 -0
- package/src/lib/nest/development/development.schedule.function.d.ts +7 -0
- package/src/lib/nest/development/development.schedule.function.error.d.ts +6 -0
- package/src/lib/nest/development/development.schedule.function.error.js +35 -0
- package/src/lib/nest/development/development.schedule.function.error.js.map +1 -0
- package/src/lib/nest/development/development.schedule.function.js +56 -0
- package/src/lib/nest/development/development.schedule.function.js.map +1 -0
- package/src/lib/nest/development/index.d.ts +5 -0
- package/src/lib/nest/development/index.js +9 -0
- package/src/lib/nest/development/index.js.map +1 -0
- package/src/lib/nest/env/env.service.d.ts +4 -0
- package/src/lib/nest/env/env.service.js +6 -0
- package/src/lib/nest/env/env.service.js.map +1 -1
- package/src/lib/nest/env/env.util.d.ts +4 -0
- package/src/lib/nest/env/env.util.js +13 -0
- package/src/lib/nest/env/env.util.js.map +1 -0
- package/src/lib/nest/env/index.d.ts +1 -0
- package/src/lib/nest/env/index.js +1 -0
- package/src/lib/nest/env/index.js.map +1 -1
- package/src/lib/nest/function/index.d.ts +2 -0
- package/src/lib/nest/function/index.js +2 -0
- package/src/lib/nest/function/index.js.map +1 -1
- package/src/lib/nest/function/schedule.d.ts +61 -0
- package/src/lib/nest/function/schedule.js +9 -0
- package/src/lib/nest/function/schedule.js.map +1 -0
- package/src/lib/nest/function/schedule.util.d.ts +46 -0
- package/src/lib/nest/function/schedule.util.js +51 -0
- package/src/lib/nest/function/schedule.util.js.map +1 -0
- package/src/lib/nest/function/v1/index.d.ts +1 -0
- package/src/lib/nest/function/v1/index.js +1 -0
- package/src/lib/nest/function/v1/index.js.map +1 -1
- package/src/lib/nest/function/v1/schedule.d.ts +29 -0
- package/src/lib/nest/function/v1/schedule.js +55 -0
- package/src/lib/nest/function/v1/schedule.js.map +1 -0
- package/src/lib/nest/function/v2/index.d.ts +1 -0
- package/src/lib/nest/function/v2/index.js +1 -0
- package/src/lib/nest/function/v2/index.js.map +1 -1
- package/src/lib/nest/function/v2/schedule.d.ts +31 -0
- package/src/lib/nest/function/v2/schedule.js +54 -0
- package/src/lib/nest/function/v2/schedule.js.map +1 -0
- package/src/lib/nest/function/v2/taskqueue.js +1 -0
- package/src/lib/nest/function/v2/taskqueue.js.map +1 -1
- package/src/lib/nest/index.d.ts +1 -0
- package/src/lib/nest/index.js +1 -0
- package/src/lib/nest/index.js.map +1 -1
- package/test/package.json +13 -12
- package/test/src/lib/firebase/firebase.admin.auth.d.ts +5 -3
- package/test/src/lib/firebase/firebase.admin.auth.js.map +1 -1
- package/test/src/lib/firebase/firebase.admin.nest.function.context.d.ts +4 -5
- package/test/src/lib/firebase/firebase.admin.nest.function.context.js.map +1 -1
- package/test/src/lib/firebase/firebase.admin.nest.function.d.ts +8 -4
- package/test/src/lib/firebase/firebase.admin.nest.function.js +0 -1
- package/test/src/lib/firebase/firebase.admin.nest.function.js.map +1 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { AsyncDecisionFunction, CronExpression, MappedObjectMap, Minutes } from '@dereekb/util';
|
|
2
|
+
import { Job, RecurrenceRule } from 'node-schedule';
|
|
3
|
+
import { NestApplicationScheduleConfiguredFunctionMap } from './schedule';
|
|
4
|
+
export declare type NestApplicationScheduleConfiguredFunctionJobMap<T extends NestApplicationScheduleConfiguredFunctionMap> = MappedObjectMap<T, Job>;
|
|
5
|
+
export declare type ScheduledRecurrenceValue = Minutes | CronExpression | RecurrenceRule;
|
|
6
|
+
/**
|
|
7
|
+
* Configuration for initEnvironmentForScheduleConfiguredFunctions()
|
|
8
|
+
*/
|
|
9
|
+
export interface InitEnvironmentForScheduleConfiguredFunctionsConfig<T extends NestApplicationScheduleConfiguredFunctionMap = NestApplicationScheduleConfiguredFunctionMap> {
|
|
10
|
+
/**
|
|
11
|
+
* Function to check whether or not to enable the dev schedule.
|
|
12
|
+
*
|
|
13
|
+
* If not provided, then the initialization is skipped.
|
|
14
|
+
*/
|
|
15
|
+
checkEnabled?: AsyncDecisionFunction<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Runs all cron jobs at the given interval in minutes.
|
|
18
|
+
*/
|
|
19
|
+
overrideAll?: ScheduledRecurrenceValue;
|
|
20
|
+
/**
|
|
21
|
+
* Override specific function's times.
|
|
22
|
+
*/
|
|
23
|
+
override?: Partial<MappedObjectMap<T, ScheduledRecurrenceValue>>;
|
|
24
|
+
/**
|
|
25
|
+
* Runs all jobs that have a readable schedule on the given
|
|
26
|
+
*/
|
|
27
|
+
scheduleCron?: ScheduledRecurrenceValue;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Initializes the current environment to handle the input scheduled functions.
|
|
31
|
+
*
|
|
32
|
+
* - For production, nothing will be configured.
|
|
33
|
+
* - For development,
|
|
34
|
+
*
|
|
35
|
+
* @param input
|
|
36
|
+
* @returns
|
|
37
|
+
*/
|
|
38
|
+
export declare function initEnvironmentForScheduleConfiguredFunctions<T extends NestApplicationScheduleConfiguredFunctionMap>(input: T, config: InitEnvironmentForScheduleConfiguredFunctionsConfig): T;
|
|
39
|
+
/**
|
|
40
|
+
* Initializes jobs for each scheduled task in the input map.
|
|
41
|
+
*
|
|
42
|
+
* @param input
|
|
43
|
+
* @param config
|
|
44
|
+
* @returns
|
|
45
|
+
*/
|
|
46
|
+
export declare function initDevelopmentEnvironmentForScheduleConfiguredFunctions<T extends NestApplicationScheduleConfiguredFunctionMap>(input: T, config: InitEnvironmentForScheduleConfiguredFunctionsConfig<T>): NestApplicationScheduleConfiguredFunctionJobMap<T>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initDevelopmentEnvironmentForScheduleConfiguredFunctions = exports.initEnvironmentForScheduleConfiguredFunctions = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const util_1 = require("@dereekb/util");
|
|
6
|
+
const node_schedule_1 = require("node-schedule");
|
|
7
|
+
/**
|
|
8
|
+
* Initializes the current environment to handle the input scheduled functions.
|
|
9
|
+
*
|
|
10
|
+
* - For production, nothing will be configured.
|
|
11
|
+
* - For development,
|
|
12
|
+
*
|
|
13
|
+
* @param input
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
function initEnvironmentForScheduleConfiguredFunctions(input, config) {
|
|
17
|
+
const { checkEnabled } = config;
|
|
18
|
+
if (checkEnabled != null) {
|
|
19
|
+
setTimeout(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
const isEnabled = yield checkEnabled();
|
|
21
|
+
if (isEnabled) {
|
|
22
|
+
console.log('Initializing scheduled functions for development environment...');
|
|
23
|
+
initDevelopmentEnvironmentForScheduleConfiguredFunctions(input, config);
|
|
24
|
+
}
|
|
25
|
+
}), 100);
|
|
26
|
+
}
|
|
27
|
+
return input;
|
|
28
|
+
}
|
|
29
|
+
exports.initEnvironmentForScheduleConfiguredFunctions = initEnvironmentForScheduleConfiguredFunctions;
|
|
30
|
+
/**
|
|
31
|
+
* Initializes jobs for each scheduled task in the input map.
|
|
32
|
+
*
|
|
33
|
+
* @param input
|
|
34
|
+
* @param config
|
|
35
|
+
* @returns
|
|
36
|
+
*/
|
|
37
|
+
function initDevelopmentEnvironmentForScheduleConfiguredFunctions(input, config) {
|
|
38
|
+
const { overrideAll, override = {}, scheduleCron } = config;
|
|
39
|
+
const result = (0, util_1.mapObjectMap)(input, (entry, key) => {
|
|
40
|
+
var _a, _b, _c;
|
|
41
|
+
const schedule = entry._schedule;
|
|
42
|
+
let cron = (_c = (_b = (_a = overrideAll !== null && overrideAll !== void 0 ? overrideAll : override[key]) !== null && _a !== void 0 ? _a : schedule.cron) !== null && _b !== void 0 ? _b : scheduleCron) !== null && _c !== void 0 ? _c : 1;
|
|
43
|
+
if (typeof cron === 'number') {
|
|
44
|
+
cron = (0, util_1.cronExpressionRepeatingEveryNMinutes)(cron);
|
|
45
|
+
}
|
|
46
|
+
return (0, node_schedule_1.scheduleJob)(cron, entry._runNow);
|
|
47
|
+
});
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
exports.initDevelopmentEnvironmentForScheduleConfiguredFunctions = initDevelopmentEnvironmentForScheduleConfiguredFunctions;
|
|
51
|
+
//# sourceMappingURL=schedule.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.util.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/src/lib/nest/function/schedule.util.ts"],"names":[],"mappings":";;;;AAAA,wCAAoJ;AACpJ,iDAAiE;AAgCjE;;;;;;;;GAQG;AACH,SAAgB,6CAA6C,CAAyD,KAAQ,EAAE,MAA2D;IACzL,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAEhC,IAAI,YAAY,IAAI,IAAI,EAAE;QACxB,UAAU,CAAC,GAAS,EAAE;YACpB,MAAM,SAAS,GAAG,MAAM,YAAY,EAAE,CAAC;YACvC,IAAI,SAAS,EAAE;gBACb,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;gBAC/E,wDAAwD,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACzE;QACH,CAAC,CAAA,EAAE,GAAG,CAAC,CAAC;KACT;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAdD,sGAcC;AAED;;;;;;GAMG;AACH,SAAgB,wDAAwD,CAAyD,KAAQ,EAAE,MAA8D;IACvM,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,EAA2D,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAErH,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;;QAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,IAAI,GAA6B,MAAA,MAAA,MAAA,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,QAAQ,CAAC,GAAG,CAAC,mCAAI,QAAQ,CAAC,IAAI,mCAAI,YAAY,mCAAI,CAAC,CAAC;QAExG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,GAAG,IAAA,2CAAoC,EAAC,IAAI,CAAC,CAAC;SACnD;QAED,OAAO,IAAA,2BAAW,EAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAfD,4HAeC"}
|
|
@@ -3,4 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./call"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./event"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./schedule"), exports);
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase-server/src/lib/nest/function/v1/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,kDAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase-server/src/lib/nest/function/v1/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,kDAAwB;AACxB,qDAA2B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as functions from 'firebase-functions';
|
|
2
|
+
import { INestApplicationContext } from '@nestjs/common';
|
|
3
|
+
import { MakeNestContext } from '../../nest.provider';
|
|
4
|
+
import { NestApplicationScheduleConfiguredFunctionFactory, OnScheduleConfig, OnScheduleWithNestApplication, OnScheduleWithNestApplicationRequest, OnScheduleWithNestContext } from '../schedule';
|
|
5
|
+
export declare function makeOnScheduleWithNestApplicationRequest(nestApplication: INestApplicationContext, scheduleContext?: functions.EventContext): OnScheduleWithNestApplicationRequest<functions.EventContext>;
|
|
6
|
+
export declare type NestApplicationScheduleCloudFunctionFactory<I = unknown> = NestApplicationScheduleConfiguredFunctionFactory<functions.CloudFunction<I>>;
|
|
7
|
+
/**
|
|
8
|
+
* Factory function for generating a NestApplicationFunctionFactory for a HttpsFunctions/Runnable firebase function.
|
|
9
|
+
*/
|
|
10
|
+
export declare type OnScheduleWithNestApplicationFactory = (schedule: OnScheduleConfig, fn: OnScheduleWithNestApplication<functions.EventContext>) => NestApplicationScheduleCloudFunctionFactory;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a factory for generating OnCallWithNestApplication functions.
|
|
13
|
+
*
|
|
14
|
+
* @param nestAppPromiseGetter
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
export declare function onScheduleWithNestApplicationFactory(baseSchedule?: OnScheduleConfig): OnScheduleWithNestApplicationFactory;
|
|
18
|
+
/**
|
|
19
|
+
* Factory function for generating HttpsFunctions/Runnable firebase function that returns the value from the input OnCallWithNestContext function.
|
|
20
|
+
*/
|
|
21
|
+
export declare type OnScheduleWithNestContextFactory<N> = (schedule: OnScheduleConfig, fn: OnScheduleWithNestContext<N, functions.EventContext>) => NestApplicationScheduleCloudFunctionFactory;
|
|
22
|
+
/**
|
|
23
|
+
* Creates a factory for generating OnCallWithNestContext functions with a nest context object that is generated by the input function.
|
|
24
|
+
*
|
|
25
|
+
* @param appFactory
|
|
26
|
+
* @param makeNestContext
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
29
|
+
export declare function onScheduleWithNestContextFactory<N>(appFactory: OnScheduleWithNestApplicationFactory, makeNestContext: MakeNestContext<N>): OnScheduleWithNestContextFactory<N>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.onScheduleWithNestContextFactory = exports.onScheduleWithNestApplicationFactory = exports.makeOnScheduleWithNestApplicationRequest = void 0;
|
|
4
|
+
const functions = require("firebase-functions");
|
|
5
|
+
const schedule_1 = require("../schedule");
|
|
6
|
+
const util_1 = require("@dereekb/util");
|
|
7
|
+
function makeOnScheduleWithNestApplicationRequest(nestApplication, scheduleContext) {
|
|
8
|
+
return {
|
|
9
|
+
nestApplication,
|
|
10
|
+
scheduleContext
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
exports.makeOnScheduleWithNestApplicationRequest = makeOnScheduleWithNestApplicationRequest;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a factory for generating OnCallWithNestApplication functions.
|
|
16
|
+
*
|
|
17
|
+
* @param nestAppPromiseGetter
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
function onScheduleWithNestApplicationFactory(baseSchedule) {
|
|
21
|
+
return (inputSchedule, fn) => {
|
|
22
|
+
const schedule = (0, util_1.mergeObjects)([baseSchedule, inputSchedule]);
|
|
23
|
+
let cron;
|
|
24
|
+
if (!schedule.cron) {
|
|
25
|
+
throw new Error('Missing required "cron" variable for configuration.');
|
|
26
|
+
}
|
|
27
|
+
else if (typeof schedule.cron === 'number') {
|
|
28
|
+
cron = (0, util_1.cronExpressionRepeatingEveryNMinutes)(schedule.cron);
|
|
29
|
+
}
|
|
30
|
+
return (nestAppPromiseGetter) => {
|
|
31
|
+
let builder = functions.pubsub.schedule(schedule.cron).retryConfig(schedule);
|
|
32
|
+
if (schedule.timezone) {
|
|
33
|
+
builder = builder.timeZone(schedule.timezone);
|
|
34
|
+
}
|
|
35
|
+
const runNow = (scheduleContext) => nestAppPromiseGetter().then((x) => fn(makeOnScheduleWithNestApplicationRequest(x, scheduleContext)));
|
|
36
|
+
const fnn = builder.onRun(runNow);
|
|
37
|
+
fnn._schedule = schedule;
|
|
38
|
+
fnn._runNow = runNow;
|
|
39
|
+
return fnn;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
exports.onScheduleWithNestApplicationFactory = onScheduleWithNestApplicationFactory;
|
|
44
|
+
/**
|
|
45
|
+
* Creates a factory for generating OnCallWithNestContext functions with a nest context object that is generated by the input function.
|
|
46
|
+
*
|
|
47
|
+
* @param appFactory
|
|
48
|
+
* @param makeNestContext
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
function onScheduleWithNestContextFactory(appFactory, makeNestContext) {
|
|
52
|
+
return (schedule, fn) => appFactory(schedule, (request) => fn((0, schedule_1.setNestContextOnScheduleRequest)(makeNestContext, request)));
|
|
53
|
+
}
|
|
54
|
+
exports.onScheduleWithNestContextFactory = onScheduleWithNestContextFactory;
|
|
55
|
+
//# sourceMappingURL=schedule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase-server/src/lib/nest/function/v1/schedule.ts"],"names":[],"mappings":";;;AAAA,gDAAgD;AAGhD,0CAA6Q;AAC7Q,wCAAmG;AAGnG,SAAgB,wCAAwC,CAAC,eAAwC,EAAE,eAAwC;IACzI,OAAO;QACL,eAAe;QACf,eAAe;KAChB,CAAC;AACJ,CAAC;AALD,4FAKC;AAaD;;;;;GAKG;AACH,SAAgB,oCAAoC,CAAC,YAA+B;IAClF,OAAO,CAAO,aAA+B,EAAE,EAAyD,EAAE,EAAE;QAC1G,MAAM,QAAQ,GAAG,IAAA,mBAAY,EAAmB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAqB,CAAC;QACnG,IAAI,IAAoB,CAAC;QAEzB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;aAAM,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC5C,IAAI,GAAG,IAAA,2CAAoC,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC5D;QAED,OAAO,CAAC,oBAAkD,EAAE,EAAE;YAC5D,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAc,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEvF,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACrB,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aAC/C;YAED,MAAM,MAAM,GAAG,CAAC,eAAwC,EAAE,EAAE,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,wCAAwC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;YAClK,MAAM,GAAG,GAAoG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnI,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;YACzB,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;YACrB,OAAO,GAAkF,CAAC;QAC5F,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAzBD,oFAyBC;AAOD;;;;;;GAMG;AACH,SAAgB,gCAAgC,CAAI,UAAgD,EAAE,eAAmC;IACvI,OAAO,CAAC,QAA0B,EAAE,EAAwD,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAqE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAA,0CAA+B,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAClQ,CAAC;AAFD,4EAEC"}
|
|
@@ -4,5 +4,6 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
tslib_1.__exportStar(require("./blocking"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./call"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./event"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./schedule"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./taskqueue"), exports);
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase-server/src/lib/nest/function/v2/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,iDAAuB;AACvB,kDAAwB;AACxB,sDAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase-server/src/lib/nest/function/v2/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,iDAAuB;AACvB,kDAAwB;AACxB,qDAA2B;AAC3B,sDAA4B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { GlobalOptions } from 'firebase-functions/v2/options';
|
|
2
|
+
import { scheduler } from 'firebase-functions/v2';
|
|
3
|
+
import { INestApplicationContext } from '@nestjs/common';
|
|
4
|
+
import { MakeNestContext } from '../../nest.provider';
|
|
5
|
+
import { NestApplicationScheduleConfiguredFunctionFactory, OnScheduleConfig, OnScheduleWithNestApplication, OnScheduleWithNestApplicationRequest, OnScheduleWithNestContext } from '../schedule';
|
|
6
|
+
export declare type OnScheduleConfigWithGlobalOptions = OnScheduleConfig & GlobalOptions;
|
|
7
|
+
export declare function makeOnScheduleHandlerWithNestApplicationRequest(nestApplication: INestApplicationContext, scheduleContext?: scheduler.ScheduledEvent): OnScheduleWithNestApplicationRequest<scheduler.ScheduledEvent>;
|
|
8
|
+
export declare type NestApplicationScheduleFunctionFactory = NestApplicationScheduleConfiguredFunctionFactory<scheduler.ScheduleFunction>;
|
|
9
|
+
/**
|
|
10
|
+
* Factory function for generating a NestApplicationFunctionFactory for a HttpsFunctions/Runnable firebase function.
|
|
11
|
+
*/
|
|
12
|
+
export declare type OnScheduleHandlerWithNestApplicationFactory = (schedule: OnScheduleConfig, fn: OnScheduleWithNestApplication<scheduler.ScheduledEvent>) => NestApplicationScheduleFunctionFactory;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a factory for generating OnCallWithNestApplication functions.
|
|
15
|
+
*
|
|
16
|
+
* @param nestAppPromiseGetter
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export declare function onScheduleHandlerWithNestApplicationFactory(baseSchedule?: OnScheduleConfig): OnScheduleHandlerWithNestApplicationFactory;
|
|
20
|
+
/**
|
|
21
|
+
* Factory function for generating HttpsFunctions/Runnable firebase function that returns the value from the input OnCallWithNestContext function.
|
|
22
|
+
*/
|
|
23
|
+
export declare type OnScheduleHandlerWithNestContextFactory<N> = (schedule: OnScheduleConfig, fn: OnScheduleWithNestContext<N, scheduler.ScheduledEvent>) => NestApplicationScheduleFunctionFactory;
|
|
24
|
+
/**
|
|
25
|
+
* Creates a factory for generating OnCallWithNestContext functions with a nest context object that is generated by the input function.
|
|
26
|
+
*
|
|
27
|
+
* @param appFactory
|
|
28
|
+
* @param makeNestContext
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
export declare function onScheduleHandlerWithNestContextFactory<N>(appFactory: OnScheduleHandlerWithNestApplicationFactory, makeNestContext: MakeNestContext<N>): OnScheduleHandlerWithNestContextFactory<N>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.onScheduleHandlerWithNestContextFactory = exports.onScheduleHandlerWithNestApplicationFactory = exports.makeOnScheduleHandlerWithNestApplicationRequest = void 0;
|
|
4
|
+
const v2_1 = require("firebase-functions/v2");
|
|
5
|
+
const schedule_1 = require("../schedule");
|
|
6
|
+
const util_1 = require("@dereekb/util");
|
|
7
|
+
function makeOnScheduleHandlerWithNestApplicationRequest(nestApplication, scheduleContext) {
|
|
8
|
+
return {
|
|
9
|
+
nestApplication,
|
|
10
|
+
scheduleContext
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
exports.makeOnScheduleHandlerWithNestApplicationRequest = makeOnScheduleHandlerWithNestApplicationRequest;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a factory for generating OnCallWithNestApplication functions.
|
|
16
|
+
*
|
|
17
|
+
* @param nestAppPromiseGetter
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
function onScheduleHandlerWithNestApplicationFactory(baseSchedule) {
|
|
21
|
+
return (inputSchedule, fn) => {
|
|
22
|
+
const schedule = (0, util_1.mergeObjects)([baseSchedule, inputSchedule]);
|
|
23
|
+
if (!schedule.schedule) {
|
|
24
|
+
if (schedule.cron) {
|
|
25
|
+
if (typeof schedule.cron === 'number') {
|
|
26
|
+
schedule.schedule = (0, util_1.cronExpressionRepeatingEveryNMinutes)(schedule.cron);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
throw new Error('Missing required "cron" or "schedule" variable for configuration.');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return (nestAppPromiseGetter) => {
|
|
34
|
+
const runNow = (scheduleContext) => nestAppPromiseGetter().then((x) => fn(makeOnScheduleHandlerWithNestApplicationRequest(x, scheduleContext)));
|
|
35
|
+
const fnn = v2_1.scheduler.onSchedule(schedule, runNow);
|
|
36
|
+
fnn._schedule = schedule;
|
|
37
|
+
fnn._runNow = runNow;
|
|
38
|
+
return fnn;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
exports.onScheduleHandlerWithNestApplicationFactory = onScheduleHandlerWithNestApplicationFactory;
|
|
43
|
+
/**
|
|
44
|
+
* Creates a factory for generating OnCallWithNestContext functions with a nest context object that is generated by the input function.
|
|
45
|
+
*
|
|
46
|
+
* @param appFactory
|
|
47
|
+
* @param makeNestContext
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
50
|
+
function onScheduleHandlerWithNestContextFactory(appFactory, makeNestContext) {
|
|
51
|
+
return (schedule, fn) => appFactory(schedule, (request) => fn((0, schedule_1.setNestContextOnScheduleRequest)(makeNestContext, request)));
|
|
52
|
+
}
|
|
53
|
+
exports.onScheduleHandlerWithNestContextFactory = onScheduleHandlerWithNestContextFactory;
|
|
54
|
+
//# sourceMappingURL=schedule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase-server/src/lib/nest/function/v2/schedule.ts"],"names":[],"mappings":";;;AACA,8CAAkD;AAGlD,0CAA6Q;AAC7Q,wCAAmF;AAMnF,SAAgB,+CAA+C,CAAC,eAAwC,EAAE,eAA0C;IAClJ,OAAO;QACL,eAAe;QACf,eAAe;KAChB,CAAC;AACJ,CAAC;AALD,0GAKC;AAUD;;;;;GAKG;AACH,SAAgB,2CAA2C,CAAC,YAA+B;IACzF,OAAO,CAAO,aAA+B,EAAE,EAA2D,EAAE,EAAE;QAC5G,MAAM,QAAQ,GAAG,IAAA,mBAAY,EAAmB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAqB,CAAC;QAEnG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACtB,IAAI,QAAQ,CAAC,IAAI,EAAE;gBACjB,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACrC,QAAQ,CAAC,QAAQ,GAAG,IAAA,2CAAoC,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBACzE;aACF;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;aACtF;SACF;QAED,OAAO,CAAC,oBAAkD,EAAE,EAAE;YAC5D,MAAM,MAAM,GAAG,CAAC,eAA0C,EAAE,EAAE,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,+CAA+C,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;YAC3K,MAAM,GAAG,GAA8F,cAAS,CAAC,UAAU,CAAC,QAA2B,EAAE,MAAM,CAAC,CAAC;YACjK,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;YACzB,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;YACrB,OAAO,GAA4E,CAAC;QACtF,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAtBD,kGAsBC;AAOD;;;;;;GAMG;AACH,SAAgB,uCAAuC,CAAI,UAAuD,EAAE,eAAmC;IACrJ,OAAO,CAAC,QAA0B,EAAE,EAA0D,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAuE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAA,0CAA+B,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACtQ,CAAC;AAFD,0FAEC"}
|
|
@@ -20,4 +20,5 @@ function taskQueueFunctionHandlerWithNestContextFactory(makeNestContext) {
|
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
exports.taskQueueFunctionHandlerWithNestContextFactory = taskQueueFunctionHandlerWithNestContextFactory;
|
|
23
|
+
// TODO: Add factory that also adds onTaskDispatched usage, as the above is incomplete for full usage and only sets up a function for the request.
|
|
23
24
|
//# sourceMappingURL=taskqueue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskqueue.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase-server/src/lib/nest/function/v2/taskqueue.ts"],"names":[],"mappings":";;;AAoBA;;;;;;GAMG;AACH,SAAgB,8CAA8C,CAAI,eAAmC;IACnG,OAAO,CAAc,EAAwD,EAAE,EAAE;QAC/E,OAAO,CAAC,oBAAkD,EAAE,EAAE;YAC5D,MAAM,cAAc,GAAqD,CAAC,OAAkD,EAAE,EAAE;gBAC9H,MAAM,SAAS,GAAgC,CAAC,WAAuB,EAAE,EAAE,CACzE,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE,CAC9C,OAAO,iCACF,WAAW,KACd,IAAI,EAAE,eAAe,CAAC,eAAe,CAAC,IACtC,CACH,CAAC;gBACJ,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YAEF,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAjBD,wGAiBC"}
|
|
1
|
+
{"version":3,"file":"taskqueue.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase-server/src/lib/nest/function/v2/taskqueue.ts"],"names":[],"mappings":";;;AAoBA;;;;;;GAMG;AACH,SAAgB,8CAA8C,CAAI,eAAmC;IACnG,OAAO,CAAc,EAAwD,EAAE,EAAE;QAC/E,OAAO,CAAC,oBAAkD,EAAE,EAAE;YAC5D,MAAM,cAAc,GAAqD,CAAC,OAAkD,EAAE,EAAE;gBAC9H,MAAM,SAAS,GAAgC,CAAC,WAAuB,EAAE,EAAE,CACzE,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE,CAC9C,OAAO,iCACF,WAAW,KACd,IAAI,EAAE,eAAe,CAAC,eAAe,CAAC,IACtC,CACH,CAAC;gBACJ,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YAEF,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAjBD,wGAiBC;AAED,kJAAkJ"}
|
package/src/lib/nest/index.d.ts
CHANGED
package/src/lib/nest/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./auth"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./development"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./env"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./firebase"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./firestore"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/nest/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,gDAAsB;AACtB,qDAA2B;AAC3B,sDAA4B;AAC5B,qDAA2B;AAC3B,uDAA6B;AAC7B,kDAAwB;AACxB,oDAA0B;AAC1B,gDAAsB;AACtB,0DAAgC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/nest/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,wDAA8B;AAC9B,gDAAsB;AACtB,qDAA2B;AAC3B,sDAA4B;AAC5B,qDAA2B;AAC3B,uDAA6B;AAC7B,kDAAwB;AACxB,oDAA0B;AAC1B,gDAAsB;AACtB,0DAAgC"}
|
package/test/package.json
CHANGED
|
@@ -1,41 +1,42 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/firebase-server/test",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.10.0",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"typings": "./src/index.d.ts",
|
|
7
7
|
"dependencies": {},
|
|
8
8
|
"peerDependencies": {
|
|
9
|
-
"@dereekb/firebase": "9.
|
|
9
|
+
"@dereekb/firebase": "9.10.0",
|
|
10
10
|
"rxjs": "^7.5.0",
|
|
11
11
|
"firebase": "^9.9.2",
|
|
12
|
-
"@dereekb/util": "9.
|
|
12
|
+
"@dereekb/util": "9.10.0",
|
|
13
13
|
"lodash.isequal": "^4.5.0",
|
|
14
14
|
"make-error": "^1.3.0",
|
|
15
15
|
"class-validator": "^0.13.2",
|
|
16
16
|
"ts-essentials": "^9.1.2",
|
|
17
17
|
"extra-set": "^2.2.11",
|
|
18
|
-
"@dereekb/rxjs": "9.9.5",
|
|
19
|
-
"ms": "^3.0.0-canary.1",
|
|
20
|
-
"@dereekb/model": "9.9.5",
|
|
21
18
|
"class-transformer": "^0.5.1",
|
|
22
|
-
"@dereekb/
|
|
19
|
+
"@dereekb/rxjs": "9.10.0",
|
|
20
|
+
"ms": "^3.0.0-canary.1",
|
|
21
|
+
"@dereekb/model": "9.10.0",
|
|
22
|
+
"@dereekb/date": "9.10.0",
|
|
23
23
|
"date-fns": "^2.29.0",
|
|
24
24
|
"date-fns-tz": "^1.3.0",
|
|
25
25
|
"rrule": "git+https://git@github.com/dereekb/rrule#2b13b1ea881059ba2ecfec380e12ef244ef54570",
|
|
26
26
|
"@vvo/tzdb": "^6.56.0",
|
|
27
|
-
"@dereekb/util/test": "9.
|
|
27
|
+
"@dereekb/util/test": "9.10.0",
|
|
28
28
|
"firebase-admin": "^11.0.0",
|
|
29
29
|
"jsonwebtoken": "^8.0.0",
|
|
30
|
-
"firebase-functions": "^3.
|
|
30
|
+
"firebase-functions": "^3.24.0",
|
|
31
31
|
"@nestjs/common": "^9.0.0",
|
|
32
32
|
"@google-cloud/firestore": "^5.0.2",
|
|
33
|
-
"@dereekb/firebase/test": "9.
|
|
34
|
-
"@dereekb/firebase-server": "9.
|
|
33
|
+
"@dereekb/firebase/test": "9.10.0",
|
|
34
|
+
"@dereekb/firebase-server": "9.10.0",
|
|
35
35
|
"@nestjs/core": "^9.0.0",
|
|
36
36
|
"@nestjs/platform-express": "^9.0.0",
|
|
37
|
-
"@dereekb/nestjs": "9.
|
|
37
|
+
"@dereekb/nestjs": "9.10.0",
|
|
38
38
|
"@nestjs/config": "^2.0.1",
|
|
39
|
+
"node-schedule": "^2.1.0",
|
|
39
40
|
"tslib": "^2.0.0"
|
|
40
41
|
}
|
|
41
42
|
}
|
|
@@ -10,7 +10,7 @@ import { CallableContextOptions, ContextOptions, WrappedFunction, WrappedSchedul
|
|
|
10
10
|
import { EventContext } from 'firebase-functions/lib/cloud-functions';
|
|
11
11
|
import { AuthData } from 'firebase-functions/lib/common/providers/https';
|
|
12
12
|
export declare type CallCloudFunction<I = any> = WrappedScheduledFunction | WrappedFunction<I>;
|
|
13
|
-
export declare type CallCloudFunctionParams<F> = F extends WrappedFunction<infer I> ? I : unknown;
|
|
13
|
+
export declare type CallCloudFunctionParams<F> = F extends WrappedFunction<infer I> ? I : unknown | undefined | void;
|
|
14
14
|
/**
|
|
15
15
|
* Testing context for a single user.
|
|
16
16
|
*/
|
|
@@ -36,7 +36,8 @@ export declare class AuthorizedUserTestContextFixture<PI extends FirebaseAdminTe
|
|
|
36
36
|
loadIdToken(): Promise<string>;
|
|
37
37
|
loadDecodedIdToken(): Promise<DecodedIdToken>;
|
|
38
38
|
makeContextOptions(): Promise<ContextOptions>;
|
|
39
|
-
callCloudFunction<F extends
|
|
39
|
+
callCloudFunction<F extends WrappedScheduledFunction, O = unknown>(fn: F): Promise<O>;
|
|
40
|
+
callCloudFunction<F extends WrappedFunction<any>, O = unknown>(fn: F, params: CallCloudFunctionParams<F>): Promise<O>;
|
|
40
41
|
}
|
|
41
42
|
export declare type CallEventFunctionEventContext = Partial<Omit<EventContext, 'auth'>>;
|
|
42
43
|
export declare class AuthorizedUserTestContextInstance<PI extends FirebaseAdminTestContext = FirebaseAdminTestContext> implements AuthorizedUserTestContext {
|
|
@@ -51,7 +52,8 @@ export declare class AuthorizedUserTestContextInstance<PI extends FirebaseAdminT
|
|
|
51
52
|
loadIdToken(): Promise<string>;
|
|
52
53
|
loadDecodedIdToken(): Promise<DecodedIdToken>;
|
|
53
54
|
makeContextOptions(): Promise<ContextOptions>;
|
|
54
|
-
callCloudFunction<F extends
|
|
55
|
+
callCloudFunction<F extends WrappedScheduledFunction, O = unknown>(fn: F): Promise<O>;
|
|
56
|
+
callCloudFunction<F extends WrappedFunction<any>, O = unknown>(fn: F, params: CallCloudFunctionParams<F>): Promise<O>;
|
|
55
57
|
callEventCloudFunction<F extends WrappedFunction<any>, O = unknown>(fn: F, params: CallCloudFunctionParams<F>, contextOptions?: CallEventFunctionEventContext): Promise<O>;
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.admin.auth.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/test/src/lib/firebase/firebase.admin.auth.ts"],"names":[],"mappings":";;;;AACA,wCAAiN;AACjN,6CAAwH;AAMxH,+CAAmD;AAqBnD,MAAa,gCAA8P,SAAQ,0CAA0C;IAC3T,8CAA8C;IAC9C,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IAC/C,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IAC5C,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IAC5C,CAAC;
|
|
1
|
+
{"version":3,"file":"firebase.admin.auth.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/test/src/lib/firebase/firebase.admin.auth.ts"],"names":[],"mappings":";;;;AACA,wCAAiN;AACjN,6CAAwH;AAMxH,+CAAmD;AAqBnD,MAAa,gCAA8P,SAAQ,0CAA0C;IAC3T,8CAA8C;IAC9C,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IAC/C,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IAC5C,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IAC5C,CAAC;IAID,iBAAiB,CAA2C,EAAK,EAAE,MAAmC;QACpG,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAoC,CAAC,CAAC;IACnF,CAAC;CACF;AA/BD,4EA+BC;AAID,MAAa,iCAAiC;IAC5C,YAAqB,GAAuB,EAAW,WAAe;QAAjD,QAAG,GAAH,GAAG,CAAoB;QAAW,gBAAW,GAAX,WAAW,CAAI;IAAG,CAAC;IAE1E,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAEK,qBAAqB;;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,KAAe;gBAC7B,KAAK,EAAE,MAAM,CAAC,WAA8B;aAC7C,CAAC;QACJ,CAAC;KAAA;IAED,WAAW;QACT,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,4CAA4C,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7H,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACvE,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,gCAAgC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjH,CAAC;IAID,iBAAiB,CAA2C,EAAK,EAAE,MAAmC;QACpG,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAE,EAA+B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,sBAAsB,CAA8C,EAAK,EAAE,MAAkC,EAAE,cAA8C;QAC3J,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAE,EAA+B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,iCAAM,cAAc,GAAK,OAAO,EAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7J,CAAC;CACF;AApCD,8EAoCC;AAsDD;;GAEG;AACH,SAAgB,qBAAqB,CAAmU,MAAqD,EAAE,UAA0B;IACvb,4BAA4B,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC;AAFD,sDAEC;AAmBY,QAAA,oCAAoC,GAAG,IAAA,yBAAkB,GAAE,CAAC;AAC5D,QAAA,2CAA2C,GAAG,IAAA,+BAAwB,GAAE,CAAC;AAEtF;;GAEG;AACH,SAAgB,4BAA4B,CAC1C,MAA4D;IAE5D,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,GAAG,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,iCAAiC,CAAC,GAAG,EAAE,YAAY,CAAM,EAAE,WAAW,GAAG,CAAC,CAAK,EAAE,EAAE,CAAC,IAAI,gCAAgC,CAAY,CAAC,CAAC,EAAE,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC,EAA+C,CAAA,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACxS,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAA,eAAQ,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,sBAAc,CAAC;IAEjE,OAAO,CAAC,MAAS,EAAE,UAA0B,EAAE,EAAE;QAC/C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;QAE3E,OAAO,IAAA,4BAAqB,EAAO;YACjC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAM;YAC5B,UAAU;YACV,YAAY,EAAE,GAAS,EAAE;gBACvB,MAAM,GAAG,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,KAAI,OAAO,EAAE,CAAC;gBACxC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,yBAAyB,EAAE,mCAAQ,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,GAAK,MAAM,CAAC,QAAQ,CAAE,CAAC;gBAC/H,MAAM,cAAc,GAAG,mBAAmB,IAAI,yBAAyB,CAAC;gBACxE,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAE7B,IAAI,KAA+B,CAAC;gBACpC,IAAI,WAAwC,CAAC;gBAE7C,IAAI,cAAc,EAAE;oBAClB,KAAK,GAAG,IAAA,4CAAoC,GAAE,CAAC;oBAC/C,WAAW,GAAG,IAAA,mDAA2C,GAAE,CAAC;iBAC7D;gBAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,+BACtC,GAAG,EACH,WAAW,EAAE,aAAa,EAC1B,KAAK;oBACL,WAAW,IACR,OAAO,GACP,SAAS,EACZ,CAAC;gBAEH,IAAI,MAAM,EAAE;oBACV,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;iBAC7C;gBAED,MAAM,QAAQ,GAAM,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;gBAE5E,IAAI,QAAQ,EAAE;oBACZ,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;iBAClC;gBAED,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAA;YACD,eAAe,EAAE,CAAO,QAAW,EAAE,EAAE;gBACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC;gBACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;gBACzB,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC,CAAA;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAtDD,oEAsDC;AAED;;;;GAIG;AACU,QAAA,cAAc,GAAgC,IAAA,gBAAS,EAAC,IAAA,gCAAyB,GAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAUzI;;;;;;GAMG;AACH,SAAsB,gCAAgC,CAAC,IAAU,EAAE,UAAsB;;QACvF,MAAM,QAAQ,GAAa,MAAM,iCAAiC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAErF,MAAM,cAAc,GAA2B;YAC7C,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;CAAA;AARD,4EAQC;AAED;;;;;;GAMG;AACH,SAAsB,iCAAiC,CAAC,IAAU,EAAE,UAAsB;;QACxF,MAAM,KAAK,GAAG,MAAM,qCAAqC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAa;YACzB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK;SACN,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;CAAA;AATD,8EASC;AAED;;;;;;GAMG;AACH,SAAgB,qCAAqC,CAAC,IAAU,EAAE,UAAsB;IACtF,OAAO,4CAA4C,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;AACnH,CAAC;AAFD,sFAEC;AAED;;;;;;GAMG;AACH,SAAgB,4CAA4C,CAAC,IAAU,EAAE,UAAsB;IAC7F,4IAA4I;IAE5I,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/F,CAAC;AAJD,oGAIC;AAED,SAAgB,oCAAoC,CAAC,KAAgC;;IACnF,MAAM,OAAO,GAAG,IAAA,qBAAS,EAAC,KAAK,CAA4C,CAAC;IAC5E,MAAM,YAAY,iDACb,OAAO,GACP,OAAO,CAAC,MAAM,KACjB,SAAS,EAAE,OAAO,CAAC,GAAG,EACtB,QAAQ,EAAE,MAAA,MAAA,OAAO,CAAC,MAAM,0CAAE,QAAQ,mCAAI,EAAE,GACzC,CAAC;IAEF,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,yCAAyC;IACrE,OAAO,YAAY,CAAC;AACtB,CAAC;AAXD,oFAWC;AAED,SAAgB,iCAAiC,CAAC,UAAsB;;IACtE,sDAAsD;IACtD,MAAM,UAAU,GAAyC;QACvD,OAAO,EAAE,UAAU,CAAC,QAAQ;QAC5B,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,cAAc,EAAE,MAAA,UAAU,CAAC,aAAa,mCAAI,KAAK;QACjD,QAAQ,EAAE;YACR,gBAAgB,EAAE,+BAA+B;YACjD,UAAU,EAAE,EAAE;SACf;KACF,CAAC;IAEF,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAC7C,MAAM,MAAM,mCACP,YAAY,GACZ,UAAU,CACd,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAnBD,8EAmBC"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { FirebaseAdminFunctionNestTestContext } from './firebase.admin.nest.function';
|
|
1
|
+
import { FirebaseAdminFunctionNestTestContext, WrapCloudFunctionForNestTestsInput } from './firebase.admin.nest.function';
|
|
3
2
|
import { WrappedCloudFunctionV1 } from './firebase.function';
|
|
4
3
|
export interface CloudFunctionTestBaseConfig {
|
|
5
4
|
f: FirebaseAdminFunctionNestTestContext;
|
|
6
5
|
}
|
|
7
6
|
export interface CloudFunctionTestSingleConfig<I> extends CloudFunctionTestBaseConfig {
|
|
8
|
-
fn:
|
|
7
|
+
fn: WrapCloudFunctionForNestTestsInput<I>;
|
|
9
8
|
}
|
|
10
9
|
export declare type CloudFunctionTestSingleFunction<I> = (fn: WrappedCloudFunctionV1<I>) => void;
|
|
11
10
|
export declare type CloudFunctionTestConfigMapObject = {
|
|
12
|
-
[key: string]:
|
|
11
|
+
[key: string]: WrapCloudFunctionForNestTestsInput<any>;
|
|
13
12
|
};
|
|
14
13
|
export interface CloudFunctionTestMultipleConfig<I, T extends CloudFunctionTestConfigMapObject> extends CloudFunctionTestBaseConfig {
|
|
15
14
|
fns: T;
|
|
16
15
|
}
|
|
17
16
|
export declare type CloudFunctionTestMultipleFixture<T extends CloudFunctionTestConfigMapObject> = {
|
|
18
|
-
[K in keyof T as K extends string ? `${K}CloudFn` : never]: T[K] extends
|
|
17
|
+
[K in keyof T as K extends string ? `${K}CloudFn` : never]: T[K] extends WrapCloudFunctionForNestTestsInput<infer I> ? WrappedCloudFunctionV1<I> : never;
|
|
19
18
|
};
|
|
20
19
|
export declare type CloudFunctionTestMultipleFunction<T extends CloudFunctionTestConfigMapObject> = (fn: CloudFunctionTestMultipleFixture<T>) => void;
|
|
21
20
|
export declare function isCloudFunctionTestSingleConfig<I, T extends CloudFunctionTestConfigMapObject>(config: CloudFunctionTestSingleConfig<I> | CloudFunctionTestMultipleConfig<I, T>): config is CloudFunctionTestSingleConfig<I>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.admin.nest.function.context.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/test/src/lib/firebase/firebase.admin.nest.function.context.ts"],"names":[],"mappings":";;;AAAA,6CAAuF;AAEvF,
|
|
1
|
+
{"version":3,"file":"firebase.admin.nest.function.context.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/test/src/lib/firebase/firebase.admin.nest.function.context.ts"],"names":[],"mappings":";;;AAAA,6CAAuF;AAEvF,iFAA+J;AAE/J,wCAA6C;AA2B7C,SAAgB,+BAA+B,CAAgD,MAAgF;IAC7K,MAAM,QAAQ,GAAG,OAAO,CAAE,MAA2C,CAAC,EAAE,CAAC,CAAC;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAHD,0EAGC;AAWD,SAAgB,iBAAiB,CAAgD,MAAgF,EAAE,UAAqF;IACtP,IAAI,+BAA+B,CAAC,MAAM,CAAC,EAAE;QAC3C,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;QACzB,IAAA,6BAAsB,EACpB;YACE,EAAE,EAAE,GAAG,EAAE;gBACP,MAAM,CAAC,GAAG,IAAA,kEAAmC,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,CAAC;YACX,CAAC;SACF,EACD,UAAgD,CACjD,CAAC;KACH;SAAM;QACL,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QACpC,MAAM,SAAS,GAAG,IAAA,mBAAY,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAA,kEAAmC,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACrG,MAAM,GAAG,GAAQ,EAAE,CAAC;QAEpB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACrC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAA,gCAAyB,EACvB;YACE,GAAG;SACJ,EACD,UAAiB,CAClB,CAAC;KACH;AACH,CAAC;AA5BD,8CA4BC;AAYD,SAAgB,yBAAyB,CAAgD,KAAa,EAAE,MAAgF,EAAE,UAAqF;IAC7Q,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,iBAAiB,CAAO,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,8DAIC;AAED,WAAW;AACX,OAAO"}
|
|
@@ -2,14 +2,18 @@ import { Getter } from '@dereekb/util';
|
|
|
2
2
|
import { JestBuildTestsWithContextFunction, JestTestContextFactory, JestTestContextFixture } from '@dereekb/util/test';
|
|
3
3
|
import { FirebaseAdminNestTestConfig, FirebaseAdminNestTestContext, FirebaseAdminNestTestContextFixture, FirebaseAdminNestTestContextInstance } from './firebase.admin.nest';
|
|
4
4
|
import { FirebaseAdminFunctionTestContextInstance } from './firebase.admin.function';
|
|
5
|
-
import { NestApplicationRunnableHttpFunctionFactory } from '@dereekb/firebase-server';
|
|
5
|
+
import { NestApplicationRunnableHttpFunctionFactory, NestApplicationScheduleCloudFunctionFactory } from '@dereekb/firebase-server';
|
|
6
6
|
import { FirebaseAdminCloudFunctionWrapper, FirebaseAdminCloudFunctionWrapperSource, WrappedCloudFunctionV1 } from './firebase.function';
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Input for wrapCloudFunctionForNestTests(). Accepts either v1 onCall() or onSchedule() function factories.
|
|
9
|
+
*/
|
|
10
|
+
export declare type WrapCloudFunctionForNestTestsInput<I> = NestApplicationRunnableHttpFunctionFactory<I> | NestApplicationScheduleCloudFunctionFactory<I>;
|
|
11
|
+
export declare function wrapCloudFunctionForNestTestsGetter<I>(wrapper: FirebaseAdminFunctionNestTestContext, fn: WrapCloudFunctionForNestTestsInput<I>): Getter<WrappedCloudFunctionV1<I>>;
|
|
8
12
|
export interface FirebaseAdminFunctionNestTestContext extends FirebaseAdminNestTestContext, FirebaseAdminCloudFunctionWrapperSource {
|
|
9
13
|
}
|
|
10
14
|
export declare class FirebaseAdminFunctionNestTestContextFixture<PI extends FirebaseAdminFunctionTestContextInstance = FirebaseAdminFunctionTestContextInstance, PF extends JestTestContextFixture<PI> = JestTestContextFixture<PI>, I extends FirebaseAdminFunctionNestTestContextInstance<PI> = FirebaseAdminFunctionNestTestContextInstance<PI>> extends FirebaseAdminNestTestContextFixture<PI, PF, I> implements FirebaseAdminFunctionNestTestContext {
|
|
11
|
-
wrapCloudFunctionForNestTests<I>(fn:
|
|
12
|
-
wrapCloudFunctionForNestTestsGetter<I>(fn:
|
|
15
|
+
wrapCloudFunctionForNestTests<I>(fn: WrapCloudFunctionForNestTestsInput<I>): WrappedCloudFunctionV1<I>;
|
|
16
|
+
wrapCloudFunctionForNestTestsGetter<I>(fn: WrapCloudFunctionForNestTestsInput<I>): Getter<WrappedCloudFunctionV1<I>>;
|
|
13
17
|
get fnWrapper(): FirebaseAdminCloudFunctionWrapper;
|
|
14
18
|
}
|
|
15
19
|
export declare class FirebaseAdminFunctionNestTestContextInstance<PI extends FirebaseAdminFunctionTestContextInstance = FirebaseAdminFunctionTestContextInstance> extends FirebaseAdminNestTestContextInstance<PI> implements FirebaseAdminFunctionNestTestContext {
|
|
@@ -4,7 +4,6 @@ exports.firebaseAdminFunctionNestContextFactory = exports.firebaseAdminFunctionN
|
|
|
4
4
|
const firebase_admin_nest_1 = require("./firebase.admin.nest");
|
|
5
5
|
const firebase_admin_function_1 = require("./firebase.admin.function");
|
|
6
6
|
const firebase_function_1 = require("./firebase.function");
|
|
7
|
-
// MARK: Utility
|
|
8
7
|
function wrapCloudFunctionForNestTestsGetter(wrapper, fn) {
|
|
9
8
|
return (0, firebase_function_1.wrapCloudFunctionV1ForTests)(wrapper.fnWrapper, () => fn(wrapper.nestAppPromiseGetter));
|
|
10
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firebase.admin.nest.function.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/test/src/lib/firebase/firebase.admin.nest.function.ts"],"names":[],"mappings":";;;AAEA,+DAAkN;AAClN,uEAA8H;AAE9H,2DAAsK;
|
|
1
|
+
{"version":3,"file":"firebase.admin.nest.function.js","sourceRoot":"","sources":["../../../../../../../packages/firebase-server/test/src/lib/firebase/firebase.admin.nest.function.ts"],"names":[],"mappings":";;;AAEA,+DAAkN;AAClN,uEAA8H;AAE9H,2DAAsK;AAQtK,SAAgB,mCAAmC,CAAI,OAA6C,EAAE,EAAyC;IAC7I,OAAO,IAAA,+CAA2B,EAAI,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACnG,CAAC;AAFD,kFAEC;AAKD,MAAa,2CAA+T,SAAQ,yDAA8C;IAChY,6CAA6C;IAC7C,6BAA6B,CAAI,EAAyC;QACxE,OAAO,IAAI,CAAC,mCAAmC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxD,CAAC;IAED,mCAAmC,CAAI,EAAyC;QAC9E,OAAO,mCAAmC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,gDAAgD;IAChD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;IACxC,CAAC;CACF;AAdD,kGAcC;AAED,MAAa,4CAA6I,SAAQ,0DAAwC;IACxM,6CAA6C;IAC7C,IAAa,SAAS;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;CACF;AALD,oGAKC;AAMD,SAAgB,uCAAuC,CACrD,MAAyD,EACzD,OAAmC;IAEnC,OAAO,CAAC,UAAgD,EAAE,EAAE;QAC1D,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,2CAA2C,CAAe,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACnG,CAAC,CAAC;AACJ,CAAC;AAPD,0FAOC;AAED,MAAa,mCAAmC;CAAG;AAAnD,kFAAmD;AAEnD,SAAgB,2CAA2C,CACzD,MAAyD,EACzD,CAAK,EACL,UAAgD;IAEhD,MAAM,YAAY,mBAChB,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,2CAA2C,CAAC,MAAM,CAAM,EACrF,YAAY,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,4CAA4C,CAAK,QAAQ,EAAE,IAAI,CAAM,IACxG,MAAM,CACV,CAAC;IAEF,OAAO,IAAA,yDAAmC,EAAe,YAAY,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACxF,CAAC;AAZD,kGAYC;AAED,SAAgB,uCAAuC,CACrD,MAA0J;IAE1J,OAAO,uCAAuC,CAAgH,MAAM,EAAE,iEAAuC,CAAC,CAAC;AACjN,CAAC;AAJD,0FAIC"}
|