awscdk-construct-scte-scheduler 0.0.13 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +28 -28
- package/API.md +11 -11
- package/lib/EventBridgeSchedule.d.ts +4 -3
- package/lib/EventBridgeSchedule.js +14 -6
- package/lib/Lambda.js +1 -1
- package/lib/ScteScheduler.d.ts +1 -2
- package/lib/ScteScheduler.js +21 -6
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -3920,11 +3920,11 @@
|
|
|
3920
3920
|
"immutable": true,
|
|
3921
3921
|
"locationInModule": {
|
|
3922
3922
|
"filename": "src/EventBridgeSchedule.ts",
|
|
3923
|
-
"line":
|
|
3923
|
+
"line": 9
|
|
3924
3924
|
},
|
|
3925
|
-
"name": "
|
|
3925
|
+
"name": "schedule",
|
|
3926
3926
|
"type": {
|
|
3927
|
-
"fqn": "aws-cdk-lib.
|
|
3927
|
+
"fqn": "aws-cdk-lib.aws_events.Schedule"
|
|
3928
3928
|
}
|
|
3929
3929
|
},
|
|
3930
3930
|
{
|
|
@@ -3935,11 +3935,20 @@
|
|
|
3935
3935
|
"immutable": true,
|
|
3936
3936
|
"locationInModule": {
|
|
3937
3937
|
"filename": "src/EventBridgeSchedule.ts",
|
|
3938
|
-
"line":
|
|
3938
|
+
"line": 8
|
|
3939
3939
|
},
|
|
3940
|
-
"name": "
|
|
3940
|
+
"name": "target",
|
|
3941
3941
|
"type": {
|
|
3942
|
-
"
|
|
3942
|
+
"union": {
|
|
3943
|
+
"types": [
|
|
3944
|
+
{
|
|
3945
|
+
"fqn": "aws-cdk-lib.aws_lambda_nodejs.NodejsFunction"
|
|
3946
|
+
},
|
|
3947
|
+
{
|
|
3948
|
+
"fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine"
|
|
3949
|
+
}
|
|
3950
|
+
]
|
|
3951
|
+
}
|
|
3943
3952
|
}
|
|
3944
3953
|
}
|
|
3945
3954
|
],
|
|
@@ -4065,7 +4074,7 @@
|
|
|
4065
4074
|
},
|
|
4066
4075
|
"locationInModule": {
|
|
4067
4076
|
"filename": "src/ScteScheduler.ts",
|
|
4068
|
-
"line":
|
|
4077
|
+
"line": 32
|
|
4069
4078
|
},
|
|
4070
4079
|
"parameters": [
|
|
4071
4080
|
{
|
|
@@ -4091,7 +4100,7 @@
|
|
|
4091
4100
|
"kind": "class",
|
|
4092
4101
|
"locationInModule": {
|
|
4093
4102
|
"filename": "src/ScteScheduler.ts",
|
|
4094
|
-
"line":
|
|
4103
|
+
"line": 28
|
|
4095
4104
|
},
|
|
4096
4105
|
"name": "ScteScheduler",
|
|
4097
4106
|
"properties": [
|
|
@@ -4102,7 +4111,7 @@
|
|
|
4102
4111
|
"immutable": true,
|
|
4103
4112
|
"locationInModule": {
|
|
4104
4113
|
"filename": "src/ScteScheduler.ts",
|
|
4105
|
-
"line":
|
|
4114
|
+
"line": 29
|
|
4106
4115
|
},
|
|
4107
4116
|
"name": "lambda",
|
|
4108
4117
|
"type": {
|
|
@@ -4116,20 +4125,11 @@
|
|
|
4116
4125
|
"immutable": true,
|
|
4117
4126
|
"locationInModule": {
|
|
4118
4127
|
"filename": "src/ScteScheduler.ts",
|
|
4119
|
-
"line":
|
|
4128
|
+
"line": 30
|
|
4120
4129
|
},
|
|
4121
4130
|
"name": "schedule",
|
|
4122
4131
|
"type": {
|
|
4123
|
-
"
|
|
4124
|
-
"types": [
|
|
4125
|
-
{
|
|
4126
|
-
"fqn": "awscdk-construct-scte-scheduler.EventBridgeSchedule"
|
|
4127
|
-
},
|
|
4128
|
-
{
|
|
4129
|
-
"fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine"
|
|
4130
|
-
}
|
|
4131
|
-
]
|
|
4132
|
-
}
|
|
4132
|
+
"fqn": "awscdk-construct-scte-scheduler.EventBridgeSchedule"
|
|
4133
4133
|
}
|
|
4134
4134
|
}
|
|
4135
4135
|
],
|
|
@@ -4145,7 +4145,7 @@
|
|
|
4145
4145
|
"kind": "interface",
|
|
4146
4146
|
"locationInModule": {
|
|
4147
4147
|
"filename": "src/ScteScheduler.ts",
|
|
4148
|
-
"line":
|
|
4148
|
+
"line": 20
|
|
4149
4149
|
},
|
|
4150
4150
|
"name": "ScteSchedulerProps",
|
|
4151
4151
|
"properties": [
|
|
@@ -4157,7 +4157,7 @@
|
|
|
4157
4157
|
"immutable": true,
|
|
4158
4158
|
"locationInModule": {
|
|
4159
4159
|
"filename": "src/ScteScheduler.ts",
|
|
4160
|
-
"line":
|
|
4160
|
+
"line": 21
|
|
4161
4161
|
},
|
|
4162
4162
|
"name": "channelId",
|
|
4163
4163
|
"type": {
|
|
@@ -4172,7 +4172,7 @@
|
|
|
4172
4172
|
"immutable": true,
|
|
4173
4173
|
"locationInModule": {
|
|
4174
4174
|
"filename": "src/ScteScheduler.ts",
|
|
4175
|
-
"line":
|
|
4175
|
+
"line": 23
|
|
4176
4176
|
},
|
|
4177
4177
|
"name": "intervalInMinutes",
|
|
4178
4178
|
"type": {
|
|
@@ -4187,7 +4187,7 @@
|
|
|
4187
4187
|
"immutable": true,
|
|
4188
4188
|
"locationInModule": {
|
|
4189
4189
|
"filename": "src/ScteScheduler.ts",
|
|
4190
|
-
"line":
|
|
4190
|
+
"line": 22
|
|
4191
4191
|
},
|
|
4192
4192
|
"name": "scteDurationInSeconds",
|
|
4193
4193
|
"type": {
|
|
@@ -4202,7 +4202,7 @@
|
|
|
4202
4202
|
"immutable": true,
|
|
4203
4203
|
"locationInModule": {
|
|
4204
4204
|
"filename": "src/ScteScheduler.ts",
|
|
4205
|
-
"line":
|
|
4205
|
+
"line": 25
|
|
4206
4206
|
},
|
|
4207
4207
|
"name": "callback",
|
|
4208
4208
|
"optional": true,
|
|
@@ -4218,7 +4218,7 @@
|
|
|
4218
4218
|
"immutable": true,
|
|
4219
4219
|
"locationInModule": {
|
|
4220
4220
|
"filename": "src/ScteScheduler.ts",
|
|
4221
|
-
"line":
|
|
4221
|
+
"line": 24
|
|
4222
4222
|
},
|
|
4223
4223
|
"name": "repeatCount",
|
|
4224
4224
|
"optional": true,
|
|
@@ -4230,6 +4230,6 @@
|
|
|
4230
4230
|
"symbolId": "src/ScteScheduler:ScteSchedulerProps"
|
|
4231
4231
|
}
|
|
4232
4232
|
},
|
|
4233
|
-
"version": "0.0.
|
|
4234
|
-
"fingerprint": "
|
|
4233
|
+
"version": "0.0.14",
|
|
4234
|
+
"fingerprint": "49VXpkvR0bd8X5Q0o7XhHRsg+BJgms/7dLm9igEKWtQ="
|
|
4235
4235
|
}
|
package/API.md
CHANGED
|
@@ -348,7 +348,7 @@ Any object.
|
|
|
348
348
|
| --- | --- | --- |
|
|
349
349
|
| <code><a href="#awscdk-construct-scte-scheduler.ScteScheduler.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
|
|
350
350
|
| <code><a href="#awscdk-construct-scte-scheduler.ScteScheduler.property.lambda">lambda</a></code> | <code><a href="#awscdk-construct-scte-scheduler.Lambda">Lambda</a></code> | *No description.* |
|
|
351
|
-
| <code><a href="#awscdk-construct-scte-scheduler.ScteScheduler.property.schedule">schedule</a></code> | <code><a href="#awscdk-construct-scte-scheduler.EventBridgeSchedule">EventBridgeSchedule</a
|
|
351
|
+
| <code><a href="#awscdk-construct-scte-scheduler.ScteScheduler.property.schedule">schedule</a></code> | <code><a href="#awscdk-construct-scte-scheduler.EventBridgeSchedule">EventBridgeSchedule</a></code> | *No description.* |
|
|
352
352
|
|
|
353
353
|
---
|
|
354
354
|
|
|
@@ -377,10 +377,10 @@ public readonly lambda: Lambda;
|
|
|
377
377
|
##### `schedule`<sup>Required</sup> <a name="schedule" id="awscdk-construct-scte-scheduler.ScteScheduler.property.schedule"></a>
|
|
378
378
|
|
|
379
379
|
```typescript
|
|
380
|
-
public readonly schedule: EventBridgeSchedule
|
|
380
|
+
public readonly schedule: EventBridgeSchedule;
|
|
381
381
|
```
|
|
382
382
|
|
|
383
|
-
- *Type:* <a href="#awscdk-construct-scte-scheduler.EventBridgeSchedule">EventBridgeSchedule</a>
|
|
383
|
+
- *Type:* <a href="#awscdk-construct-scte-scheduler.EventBridgeSchedule">EventBridgeSchedule</a>
|
|
384
384
|
|
|
385
385
|
---
|
|
386
386
|
|
|
@@ -401,28 +401,28 @@ const eventBridgeScheduleProps: EventBridgeScheduleProps = { ... }
|
|
|
401
401
|
|
|
402
402
|
| **Name** | **Type** | **Description** |
|
|
403
403
|
| --- | --- | --- |
|
|
404
|
-
| <code><a href="#awscdk-construct-scte-scheduler.EventBridgeScheduleProps.property.
|
|
405
|
-
| <code><a href="#awscdk-construct-scte-scheduler.EventBridgeScheduleProps.property.
|
|
404
|
+
| <code><a href="#awscdk-construct-scte-scheduler.EventBridgeScheduleProps.property.schedule">schedule</a></code> | <code>aws-cdk-lib.aws_events.Schedule</code> | *No description.* |
|
|
405
|
+
| <code><a href="#awscdk-construct-scte-scheduler.EventBridgeScheduleProps.property.target">target</a></code> | <code>aws-cdk-lib.aws_lambda_nodejs.NodejsFunction \| aws-cdk-lib.aws_stepfunctions.StateMachine</code> | *No description.* |
|
|
406
406
|
|
|
407
407
|
---
|
|
408
408
|
|
|
409
|
-
##### `
|
|
409
|
+
##### `schedule`<sup>Required</sup> <a name="schedule" id="awscdk-construct-scte-scheduler.EventBridgeScheduleProps.property.schedule"></a>
|
|
410
410
|
|
|
411
411
|
```typescript
|
|
412
|
-
public readonly
|
|
412
|
+
public readonly schedule: Schedule;
|
|
413
413
|
```
|
|
414
414
|
|
|
415
|
-
- *Type:* aws-cdk-lib.
|
|
415
|
+
- *Type:* aws-cdk-lib.aws_events.Schedule
|
|
416
416
|
|
|
417
417
|
---
|
|
418
418
|
|
|
419
|
-
##### `
|
|
419
|
+
##### `target`<sup>Required</sup> <a name="target" id="awscdk-construct-scte-scheduler.EventBridgeScheduleProps.property.target"></a>
|
|
420
420
|
|
|
421
421
|
```typescript
|
|
422
|
-
public readonly
|
|
422
|
+
public readonly target: NodejsFunction | StateMachine;
|
|
423
423
|
```
|
|
424
424
|
|
|
425
|
-
- *Type:*
|
|
425
|
+
- *Type:* aws-cdk-lib.aws_lambda_nodejs.NodejsFunction | aws-cdk-lib.aws_stepfunctions.StateMachine
|
|
426
426
|
|
|
427
427
|
---
|
|
428
428
|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Rule } from 'aws-cdk-lib/aws-events';
|
|
1
|
+
import { Rule, Schedule } from 'aws-cdk-lib/aws-events';
|
|
2
2
|
import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
|
|
3
|
+
import { StateMachine } from 'aws-cdk-lib/aws-stepfunctions';
|
|
3
4
|
import { Construct } from 'constructs';
|
|
4
5
|
export interface EventBridgeScheduleProps {
|
|
5
|
-
readonly
|
|
6
|
-
readonly
|
|
6
|
+
readonly target: NodejsFunction | StateMachine;
|
|
7
|
+
readonly schedule: Schedule;
|
|
7
8
|
}
|
|
8
9
|
export declare class EventBridgeSchedule extends Construct {
|
|
9
10
|
rule: Rule;
|
|
@@ -3,21 +3,29 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.EventBridgeSchedule = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
-
const cdk = require("aws-cdk-lib");
|
|
7
6
|
const aws_events_1 = require("aws-cdk-lib/aws-events");
|
|
8
7
|
const aws_events_targets_1 = require("aws-cdk-lib/aws-events-targets");
|
|
8
|
+
const aws_lambda_nodejs_1 = require("aws-cdk-lib/aws-lambda-nodejs");
|
|
9
9
|
const constructs_1 = require("constructs");
|
|
10
10
|
class EventBridgeSchedule extends constructs_1.Construct {
|
|
11
11
|
constructor(scope, id, props) {
|
|
12
12
|
super(scope, id);
|
|
13
|
-
const {
|
|
13
|
+
const { target, schedule } = props;
|
|
14
14
|
this.rule = new aws_events_1.Rule(this, 'InvokeFunctionEveryXMinutes', {
|
|
15
|
-
schedule
|
|
15
|
+
schedule,
|
|
16
16
|
});
|
|
17
|
-
|
|
17
|
+
if (isFunction(target)) {
|
|
18
|
+
this.rule.addTarget(new aws_events_targets_1.LambdaFunction(target));
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
this.rule.addTarget(new aws_events_targets_1.SfnStateMachine(target));
|
|
22
|
+
}
|
|
18
23
|
}
|
|
19
24
|
}
|
|
20
25
|
exports.EventBridgeSchedule = EventBridgeSchedule;
|
|
21
26
|
_a = JSII_RTTI_SYMBOL_1;
|
|
22
|
-
EventBridgeSchedule[_a] = { fqn: "awscdk-construct-scte-scheduler.EventBridgeSchedule", version: "0.0.
|
|
23
|
-
|
|
27
|
+
EventBridgeSchedule[_a] = { fqn: "awscdk-construct-scte-scheduler.EventBridgeSchedule", version: "0.0.14" };
|
|
28
|
+
function isFunction(target) {
|
|
29
|
+
return target instanceof aws_lambda_nodejs_1.NodejsFunction;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRCcmlkZ2VTY2hlZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9FdmVudEJyaWRnZVNjaGVkdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdURBQXdEO0FBQ3hELHVFQUFpRjtBQUNqRixxRUFBK0Q7QUFFL0QsMkNBQXVDO0FBT3ZDLE1BQWEsbUJBQW9CLFNBQVEsc0JBQVM7SUFHaEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRW5DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxpQkFBSSxDQUFDLElBQUksRUFBRSw2QkFBNkIsRUFBRTtZQUN4RCxRQUFRO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDakIsSUFBSSxtQ0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUMzQixDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDakIsSUFBSSxvQ0FBZSxDQUFDLE1BQU0sQ0FBQyxDQUM1QixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7O0FBckJILGtEQXNCQzs7O0FBRUQsU0FBUyxVQUFVLENBQUMsTUFBVztJQUM3QixPQUFPLE1BQU0sWUFBWSxrQ0FBYyxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSdWxlLCBTY2hlZHVsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24sIFNmblN0YXRlTWFjaGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBOb2RlanNGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzJztcbmltcG9ydCB7IFN0YXRlTWFjaGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnJpZGdlU2NoZWR1bGVQcm9wcyB7XG4gIHJlYWRvbmx5IHRhcmdldDogTm9kZWpzRnVuY3Rpb24gfCBTdGF0ZU1hY2hpbmU7XG4gIHJlYWRvbmx5IHNjaGVkdWxlOiBTY2hlZHVsZTtcbn1cblxuZXhwb3J0IGNsYXNzIEV2ZW50QnJpZGdlU2NoZWR1bGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcnVsZTogUnVsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXZlbnRCcmlkZ2VTY2hlZHVsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgdGFyZ2V0LCBzY2hlZHVsZSB9ID0gcHJvcHM7XG5cbiAgICB0aGlzLnJ1bGUgPSBuZXcgUnVsZSh0aGlzLCAnSW52b2tlRnVuY3Rpb25FdmVyeVhNaW51dGVzJywge1xuICAgICAgc2NoZWR1bGUsXG4gICAgfSk7XG5cbiAgICBpZiAoaXNGdW5jdGlvbih0YXJnZXQpKSB7XG4gICAgICB0aGlzLnJ1bGUuYWRkVGFyZ2V0KFxuICAgICAgICBuZXcgTGFtYmRhRnVuY3Rpb24odGFyZ2V0KSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucnVsZS5hZGRUYXJnZXQoXG4gICAgICAgIG5ldyBTZm5TdGF0ZU1hY2hpbmUodGFyZ2V0KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odGFyZ2V0OiBhbnkpOiB0YXJnZXQgaXMgTm9kZWpzRnVuY3Rpb24ge1xuICByZXR1cm4gdGFyZ2V0IGluc3RhbmNlb2YgTm9kZWpzRnVuY3Rpb247XG59XG4iXX0=
|
package/lib/Lambda.js
CHANGED
|
@@ -41,5 +41,5 @@ class Lambda extends constructs_1.Construct {
|
|
|
41
41
|
}
|
|
42
42
|
exports.Lambda = Lambda;
|
|
43
43
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
-
Lambda[_a] = { fqn: "awscdk-construct-scte-scheduler.Lambda", version: "0.0.
|
|
44
|
+
Lambda[_a] = { fqn: "awscdk-construct-scte-scheduler.Lambda", version: "0.0.14" };
|
|
45
45
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0xhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsNkNBQXlEO0FBQ3pELGlEQUFzRDtBQUN0RCx1REFBaUQ7QUFDakQscUVBQStEO0FBQy9ELDJDQUF1QztBQU92QyxNQUFhLE1BQU8sU0FBUSxzQkFBUztJQUduQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtCO1FBQzFELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUVuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxrQ0FBYyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7WUFDcEQsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztZQUM1QixLQUFLLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ3BELDhDQUE4QztZQUM5Qyx3RUFBd0U7WUFDeEUsT0FBTyxFQUFFLFNBQVM7WUFDbEIsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBa0I7Z0JBQ3hDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUE0QjtnQkFDaEQsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLFlBQVksRUFBRSxHQUFHLHFCQUFxQixFQUFFO2FBQ3pDO1lBQ0QsWUFBWSxFQUFFLHNCQUFJLENBQUMsYUFBYSxDQUFDLFNBQVM7U0FDM0MsQ0FBQyxDQUFDO1FBQ0gsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUN2Qix5QkFBZSxDQUFDLFFBQVEsQ0FBQztZQUN2QixNQUFNLEVBQUUsT0FBTztZQUNmLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLFFBQVEsRUFBRSxHQUFHO1NBQ2QsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztBQWxDSCx3QkFtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRHVyYXRpb24sIGF3c19sb2dzIGFzIGxvZ3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhUHJvcHMge1xuICByZWFkb25seSBjaGFubmVsSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2N0ZUR1cmF0aW9uSW5TZWNvbmRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGEgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgZnVuYzogTm9kZWpzRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IExhbWJkYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgY2hhbm5lbElkLCBzY3RlRHVyYXRpb25JblNlY29uZHMgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgVFNfRU5UUlkgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnY29kZScsICdpbmRleC50cycpO1xuICAgIGNvbnN0IEpTX0VOVFJZID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2NvZGUnLCAnaW5kZXguanMnKTtcblxuICAgIHRoaXMuZnVuYyA9IG5ldyBOb2RlanNGdW5jdGlvbihzY29wZSwgJ1NjaGVkdWxlU0NURScsIHtcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICBlbnRyeTogZnMuZXhpc3RzU3luYyhUU19FTlRSWSkgPyBUU19FTlRSWSA6IEpTX0VOVFJZLFxuICAgICAgLy8gcHJvamVjdFJvb3Q6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicpLFxuICAgICAgLy8gZGVwc0xvY2tGaWxlUGF0aDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJ3BhY2thZ2UtbG9jay5qc29uJyksXG4gICAgICBoYW5kbGVyOiAnaGFuZGxlcicsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIE5PREVfRU5WOiBwcm9jZXNzLmVudi5OT0RFX0VOViBhcyBzdHJpbmcsXG4gICAgICAgIFJFR0lPTjogcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfUkVHSU9OIGFzIHN0cmluZyxcbiAgICAgICAgQ0hBTk5FTF9JRDogY2hhbm5lbElkLFxuICAgICAgICBBVkFJTF9MRU5HVEg6IGAke3NjdGVEdXJhdGlvbkluU2Vjb25kc31gLFxuICAgICAgfSxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLlRXT19XRUVLUyxcbiAgICB9KTtcbiAgICAvLyBBZGQgYSBzdGF0ZW1lbnQgdG8gY2FsbCBNZWRpYUxpdmUgc2NoZWR1bGUgQVBJXG4gICAgdGhpcy5mdW5jLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIFBvbGljeVN0YXRlbWVudC5mcm9tSnNvbih7XG4gICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgQWN0aW9uOiAnbWVkaWFsaXZlOionLFxuICAgICAgICBSZXNvdXJjZTogJyonLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufSJdfQ==
|
package/lib/ScteScheduler.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { IFunction } from 'aws-cdk-lib/aws-lambda';
|
|
2
|
-
import { StateMachine } from 'aws-cdk-lib/aws-stepfunctions';
|
|
3
2
|
import { Construct } from 'constructs';
|
|
4
3
|
import { EventBridgeSchedule } from './EventBridgeSchedule';
|
|
5
4
|
import { Lambda } from './Lambda';
|
|
@@ -12,6 +11,6 @@ export interface ScteSchedulerProps {
|
|
|
12
11
|
}
|
|
13
12
|
export declare class ScteScheduler extends Construct {
|
|
14
13
|
readonly lambda: Lambda;
|
|
15
|
-
readonly schedule: EventBridgeSchedule
|
|
14
|
+
readonly schedule: EventBridgeSchedule;
|
|
16
15
|
constructor(scope: Construct, id: string, props: ScteSchedulerProps);
|
|
17
16
|
}
|
package/lib/ScteScheduler.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.ScteScheduler = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
|
+
const aws_events_1 = require("aws-cdk-lib/aws-events");
|
|
7
8
|
const aws_stepfunctions_1 = require("aws-cdk-lib/aws-stepfunctions");
|
|
8
9
|
const aws_stepfunctions_tasks_1 = require("aws-cdk-lib/aws-stepfunctions-tasks");
|
|
9
10
|
const constructs_1 = require("constructs");
|
|
@@ -22,13 +23,13 @@ class ScteScheduler extends constructs_1.Construct {
|
|
|
22
23
|
if (repeatCount <= 0) {
|
|
23
24
|
// Create EventBridge rule to invoke the Lambda function every N minutes
|
|
24
25
|
this.schedule = new EventBridgeSchedule_1.EventBridgeSchedule(this, 'EventBridgeSchedule', {
|
|
25
|
-
|
|
26
|
-
intervalInMinutes,
|
|
26
|
+
target: this.lambda.func,
|
|
27
|
+
schedule: aws_events_1.Schedule.rate(aws_cdk_lib_1.Duration.minutes(intervalInMinutes)),
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
30
|
else {
|
|
30
31
|
// Create Step Functions state machine to invoke the Lambda function N times
|
|
31
|
-
const invoke = new aws_stepfunctions_tasks_1.LambdaInvoke(this, 'Invoke
|
|
32
|
+
const invoke = new aws_stepfunctions_tasks_1.LambdaInvoke(this, 'Invoke SCTE scheduler Lambda function', {
|
|
32
33
|
lambdaFunction: this.lambda.func,
|
|
33
34
|
inputPath: '$.Payload',
|
|
34
35
|
});
|
|
@@ -38,7 +39,7 @@ class ScteScheduler extends constructs_1.Construct {
|
|
|
38
39
|
const lastTask = callback ? new aws_stepfunctions_tasks_1.LambdaInvoke(this, 'Callback', {
|
|
39
40
|
lambdaFunction: callback,
|
|
40
41
|
}) : new aws_stepfunctions_1.Succeed(this, 'Done');
|
|
41
|
-
|
|
42
|
+
const stateMachine = new aws_stepfunctions_1.StateMachine(this, 'StateMachine', {
|
|
42
43
|
definitionBody: aws_stepfunctions_1.DefinitionBody.fromChainable(aws_stepfunctions_1.Chain.start(new aws_stepfunctions_1.Pass(this, 'Start', { parameters: { Payload: { i: 0 } } }))
|
|
43
44
|
.next(wait)
|
|
44
45
|
.next(invoke)
|
|
@@ -46,10 +47,24 @@ class ScteScheduler extends constructs_1.Construct {
|
|
|
46
47
|
.when(aws_stepfunctions_1.Condition.numberLessThan('$.Payload.i', repeatCount), wait)
|
|
47
48
|
.otherwise(lastTask))),
|
|
48
49
|
});
|
|
50
|
+
this.schedule = new EventBridgeSchedule_1.EventBridgeSchedule(this, 'EventBridgeSchedule', {
|
|
51
|
+
target: stateMachine,
|
|
52
|
+
schedule: cronNow(),
|
|
53
|
+
});
|
|
49
54
|
}
|
|
50
55
|
}
|
|
51
56
|
}
|
|
52
57
|
exports.ScteScheduler = ScteScheduler;
|
|
53
58
|
_a = JSII_RTTI_SYMBOL_1;
|
|
54
|
-
ScteScheduler[_a] = { fqn: "awscdk-construct-scte-scheduler.ScteScheduler", version: "0.0.
|
|
55
|
-
|
|
59
|
+
ScteScheduler[_a] = { fqn: "awscdk-construct-scte-scheduler.ScteScheduler", version: "0.0.14" };
|
|
60
|
+
function cronNow() {
|
|
61
|
+
const now = new Date();
|
|
62
|
+
return aws_events_1.Schedule.cron({
|
|
63
|
+
year: `${now.getUTCFullYear()}`,
|
|
64
|
+
month: `${now.getUTCMonth() + 1}`,
|
|
65
|
+
day: `${now.getUTCDate()}`,
|
|
66
|
+
hour: `${now.getUTCHours()}`,
|
|
67
|
+
minute: `${now.getUTCMinutes() + 1}`,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2N0ZVNjaGVkdWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TY3RlU2NoZWR1bGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQXVDO0FBQ3ZDLHVEQUFrRDtBQUVsRCxxRUFVdUM7QUFDdkMsaUZBQW1FO0FBQ25FLDJDQUF1QztBQUN2QywrREFBNEQ7QUFDNUQscUNBQWtDO0FBVWxDLE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBSTFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQ0osU0FBUyxFQUNULHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsV0FBVyxHQUFHLENBQUMsRUFBRSx3QkFBd0I7UUFDekMsUUFBUSxHQUNULEdBQUcsS0FBSyxDQUFDO1FBRVYsaUZBQWlGO1FBQ2pGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQy9DLFNBQVM7WUFDVCxxQkFBcUI7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckIsd0VBQXdFO1lBQ3hFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx5Q0FBbUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7Z0JBQ25FLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7Z0JBQ3hCLFFBQVEsRUFBRSxxQkFBUSxDQUFDLElBQUksQ0FBQyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQzdELENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sNEVBQTRFO1lBQzVFLE1BQU0sTUFBTSxHQUFHLElBQUksc0NBQVksQ0FBQyxJQUFJLEVBQUUsdUNBQXVDLEVBQUU7Z0JBQzdFLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7Z0JBQ2hDLFNBQVMsRUFBRSxXQUFXO2FBQ3ZCLENBQUMsQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLElBQUksd0JBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNsQyxJQUFJLEVBQUUsNEJBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUM3RCxDQUFDLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksc0NBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUM3RCxjQUFjLEVBQUUsUUFBUTthQUN6QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksMkJBQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxnQ0FBWSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7Z0JBQzFELGNBQWMsRUFBRSxrQ0FBYyxDQUFDLGFBQWEsQ0FDMUMseUJBQUssQ0FBQyxLQUFLLENBQ1QsSUFBSSx3QkFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQy9EO3FCQUNFLElBQUksQ0FBQyxJQUFJLENBQUM7cUJBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQztxQkFDWixJQUFJLENBQ0gsSUFBSSwwQkFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7cUJBQ3ZCLElBQUksQ0FDSCw2QkFBUyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLEVBQ3BELElBQUksQ0FDTDtxQkFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQ3ZCLENBQ0o7YUFDRixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkseUNBQW1CLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFO2dCQUNuRSxNQUFNLEVBQUUsWUFBWTtnQkFDcEIsUUFBUSxFQUFFLE9BQU8sRUFBRTthQUNwQixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUE3REgsc0NBOERDOzs7QUFFRCxTQUFTLE9BQU87SUFDZCxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3ZCLE9BQU8scUJBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbkIsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWMsRUFBRSxFQUFFO1FBQy9CLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDakMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQzFCLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUM1QixNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxFQUFFO0tBQ3JDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFNjaGVkdWxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgeyBJRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7XG4gIFN0YXRlTWFjaGluZSxcbiAgRGVmaW5pdGlvbkJvZHksXG4gIENoYWluLFxuICBDaG9pY2UsXG4gIENvbmRpdGlvbixcbiAgV2FpdCxcbiAgV2FpdFRpbWUsXG4gIFBhc3MsXG4gIFN1Y2NlZWQsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCB7IExhbWJkYUludm9rZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRXZlbnRCcmlkZ2VTY2hlZHVsZSB9IGZyb20gJy4vRXZlbnRCcmlkZ2VTY2hlZHVsZSc7XG5pbXBvcnQgeyBMYW1iZGEgfSBmcm9tICcuL0xhbWJkYSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2N0ZVNjaGVkdWxlclByb3BzIHtcbiAgcmVhZG9ubHkgY2hhbm5lbElkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNjdGVEdXJhdGlvbkluU2Vjb25kczogbnVtYmVyO1xuICByZWFkb25seSBpbnRlcnZhbEluTWludXRlczogbnVtYmVyO1xuICByZWFkb25seSByZXBlYXRDb3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgY2FsbGJhY2s/OiBJRnVuY3Rpb247XG59XG5cbmV4cG9ydCBjbGFzcyBTY3RlU2NoZWR1bGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGxhbWJkYTogTGFtYmRhO1xuICBwdWJsaWMgcmVhZG9ubHkgc2NoZWR1bGU6IEV2ZW50QnJpZGdlU2NoZWR1bGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNjdGVTY2hlZHVsZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7XG4gICAgICBjaGFubmVsSWQsXG4gICAgICBzY3RlRHVyYXRpb25JblNlY29uZHMsXG4gICAgICBpbnRlcnZhbEluTWludXRlcyxcbiAgICAgIHJlcGVhdENvdW50ID0gMCwgLy8gMCBtZWFucyBpbmZpbml0ZSBsb29wXG4gICAgICBjYWxsYmFjayxcbiAgICB9ID0gcHJvcHM7XG5cbiAgICAvLyBDcmVhdGUgTGFtYmRhIGZ1bmN0aW9uIHRvIGluc2VydCBTQ1RFIG1lc3NhZ2UgdXNpbmcgdGhlIE1lZGlhTGl2ZSBzY2hlZHVsZSBBUElcbiAgICB0aGlzLmxhbWJkYSA9IG5ldyBMYW1iZGEodGhpcywgJ0xhbWJkYUZ1bmN0aW9uJywge1xuICAgICAgY2hhbm5lbElkLFxuICAgICAgc2N0ZUR1cmF0aW9uSW5TZWNvbmRzLFxuICAgIH0pO1xuXG4gICAgaWYgKHJlcGVhdENvdW50IDw9IDApIHtcbiAgICAgIC8vIENyZWF0ZSBFdmVudEJyaWRnZSBydWxlIHRvIGludm9rZSB0aGUgTGFtYmRhIGZ1bmN0aW9uIGV2ZXJ5IE4gbWludXRlc1xuICAgICAgdGhpcy5zY2hlZHVsZSA9IG5ldyBFdmVudEJyaWRnZVNjaGVkdWxlKHRoaXMsICdFdmVudEJyaWRnZVNjaGVkdWxlJywge1xuICAgICAgICB0YXJnZXQ6IHRoaXMubGFtYmRhLmZ1bmMsXG4gICAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5yYXRlKER1cmF0aW9uLm1pbnV0ZXMoaW50ZXJ2YWxJbk1pbnV0ZXMpKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDcmVhdGUgU3RlcCBGdW5jdGlvbnMgc3RhdGUgbWFjaGluZSB0byBpbnZva2UgdGhlIExhbWJkYSBmdW5jdGlvbiBOIHRpbWVzXG4gICAgICBjb25zdCBpbnZva2UgPSBuZXcgTGFtYmRhSW52b2tlKHRoaXMsICdJbnZva2UgU0NURSBzY2hlZHVsZXIgTGFtYmRhIGZ1bmN0aW9uJywge1xuICAgICAgICBsYW1iZGFGdW5jdGlvbjogdGhpcy5sYW1iZGEuZnVuYyxcbiAgICAgICAgaW5wdXRQYXRoOiAnJC5QYXlsb2FkJyxcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgd2FpdCA9IG5ldyBXYWl0KHRoaXMsICdXYWl0Jywge1xuICAgICAgICB0aW1lOiBXYWl0VGltZS5kdXJhdGlvbihEdXJhdGlvbi5taW51dGVzKGludGVydmFsSW5NaW51dGVzKSksXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGxhc3RUYXNrID0gY2FsbGJhY2sgPyBuZXcgTGFtYmRhSW52b2tlKHRoaXMsICdDYWxsYmFjaycsIHtcbiAgICAgICAgbGFtYmRhRnVuY3Rpb246IGNhbGxiYWNrLFxuICAgICAgfSkgOiBuZXcgU3VjY2VlZCh0aGlzLCAnRG9uZScpO1xuICAgICAgY29uc3Qgc3RhdGVNYWNoaW5lID0gbmV3IFN0YXRlTWFjaGluZSh0aGlzLCAnU3RhdGVNYWNoaW5lJywge1xuICAgICAgICBkZWZpbml0aW9uQm9keTogRGVmaW5pdGlvbkJvZHkuZnJvbUNoYWluYWJsZShcbiAgICAgICAgICBDaGFpbi5zdGFydChcbiAgICAgICAgICAgIG5ldyBQYXNzKHRoaXMsICdTdGFydCcsIHsgcGFyYW1ldGVyczogeyBQYXlsb2FkOiB7IGk6IDAgfSB9IH0pLFxuICAgICAgICAgIClcbiAgICAgICAgICAgIC5uZXh0KHdhaXQpXG4gICAgICAgICAgICAubmV4dChpbnZva2UpXG4gICAgICAgICAgICAubmV4dChcbiAgICAgICAgICAgICAgbmV3IENob2ljZSh0aGlzLCAnQ2hvaWNlJylcbiAgICAgICAgICAgICAgICAud2hlbihcbiAgICAgICAgICAgICAgICAgIENvbmRpdGlvbi5udW1iZXJMZXNzVGhhbignJC5QYXlsb2FkLmknLCByZXBlYXRDb3VudCksXG4gICAgICAgICAgICAgICAgICB3YWl0LFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAub3RoZXJ3aXNlKGxhc3RUYXNrKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2NoZWR1bGUgPSBuZXcgRXZlbnRCcmlkZ2VTY2hlZHVsZSh0aGlzLCAnRXZlbnRCcmlkZ2VTY2hlZHVsZScsIHtcbiAgICAgICAgdGFyZ2V0OiBzdGF0ZU1hY2hpbmUsXG4gICAgICAgIHNjaGVkdWxlOiBjcm9uTm93KCksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY3Jvbk5vdygpOiBTY2hlZHVsZSB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIHJldHVybiBTY2hlZHVsZS5jcm9uKHtcbiAgICB5ZWFyOiBgJHtub3cuZ2V0VVRDRnVsbFllYXIoKX1gLFxuICAgIG1vbnRoOiBgJHtub3cuZ2V0VVRDTW9udGgoKSArIDF9YCxcbiAgICBkYXk6IGAke25vdy5nZXRVVENEYXRlKCl9YCxcbiAgICBob3VyOiBgJHtub3cuZ2V0VVRDSG91cnMoKX1gLFxuICAgIG1pbnV0ZTogYCR7bm93LmdldFVUQ01pbnV0ZXMoKSArIDF9YCxcbiAgfSk7XG59Il19
|