awscdk-construct-scte-scheduler 0.0.12 → 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 CHANGED
@@ -3826,7 +3826,7 @@
3826
3826
  },
3827
3827
  "name": "awscdk-construct-scte-scheduler",
3828
3828
  "readme": {
3829
- "markdown": "# awscdk-construct-scte-scheduler\n[![View on Construct Hub](https://constructs.dev/badge?awscdk-construct-scte-scheduler)](https://constructs.dev/packages/awscdk-construct-scte-scheduler)\n\nAWS CDK Construct for scheduling SCTE-35 events using the MediaLive schedule API\n* Input:\n * MediaLive channel id\n * SCTE event duration (seconds)\n * Repeat interval (minutes)\n* Output:\n * Lambda function for calling MediaLive schedule API\n * EventBridge rule for periodically invoking the function\n\n## Install\n[![NPM](https://nodei.co/npm/awscdk-construct-scte-scheduler.png?mini=true)](https://nodei.co/npm/awscdk-construct-scte-scheduler/)\n\n## Usage\n```ts\nimport { Stack, StackProps, CfnOutput } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { LiveChannelFromMp4 } from 'awscdk-construct-live-channel-from-mp4-file';\nimport { ScteScheduler } from 'awscdk-construct-scte-scheduler';\n\nexport class ExampleStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n\n // Create a live channel (MediaLive + MediaPackage)\n const {eml, emp} = new LiveChannelFromMp4(this, 'LiveChannelFromMp4', {\n sourceUrl: 's3ssl://example_bucket/test.mp4',\n timecodeBurninPrefix: 'Ch1',\n autoStart: true,\n });\n\n // Schedule a 30-sec ad break every minute\n new ScteScheduler(this, 'ScteScheduler', {\n channelId: eml.channel.ref,\n scteDurationInSeconds: 30,\n intervalInMinutes: 1,\n });\n\n // Print MediaPackage endpoint URL (HLS)\n new CfnOutput(this, \"MediaPackageEndpointURL\", {\n value: emp.endpoints.hls.attrUrl,\n exportName: \"MediaPackageEndpointURL\",\n description: \"MediaPackage endpoint URL\",\n });\n }\n}\n```\n"
3829
+ "markdown": "# awscdk-construct-scte-scheduler\n[![View on Construct Hub](https://constructs.dev/badge?awscdk-construct-scte-scheduler)](https://constructs.dev/packages/awscdk-construct-scte-scheduler)\n\nAWS CDK Construct for scheduling SCTE-35 events using the MediaLive schedule API\n* Input:\n * MediaLive channel id\n * SCTE event duration (seconds)\n * Repeat interval (minutes)\n * Repeat count (optional)\n * Lambda function to be called after the repeat (optional)\n* Output:\n * Lambda function for calling MediaLive schedule API\n * EventBridge rule or Stepfunctions state machine for periodically invoking the function\n\n## Install\n[![NPM](https://nodei.co/npm/awscdk-construct-scte-scheduler.png?mini=true)](https://nodei.co/npm/awscdk-construct-scte-scheduler/)\n\n## Usage\n```ts\nimport { Stack, StackProps, CfnOutput } from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { LiveChannelFromMp4 } from 'awscdk-construct-live-channel-from-mp4-file';\nimport { ScteScheduler } from 'awscdk-construct-scte-scheduler';\n\nexport class ExampleStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n\n // Create a live channel (MediaLive + MediaPackage)\n const {eml, emp} = new LiveChannelFromMp4(this, 'LiveChannelFromMp4', {\n sourceUrl: 's3ssl://example_bucket/test.mp4',\n timecodeBurninPrefix: 'Ch1',\n autoStart: true,\n });\n\n // Schedule a 30-sec ad break every minute\n new ScteScheduler(this, 'ScteScheduler', {\n channelId: eml.channel.ref,\n scteDurationInSeconds: 30,\n intervalInMinutes: 1,\n repeqtCount: 5,\n });\n\n // Print MediaPackage endpoint URL (HLS)\n new CfnOutput(this, \"MediaPackageEndpointURL\", {\n value: emp.endpoints.hls.attrUrl,\n exportName: \"MediaPackageEndpointURL\",\n description: \"MediaPackage endpoint URL\",\n });\n }\n}\n```\n"
3830
3830
  },
3831
3831
  "repository": {
3832
3832
  "type": "git",
@@ -3920,11 +3920,11 @@
3920
3920
  "immutable": true,
3921
3921
  "locationInModule": {
3922
3922
  "filename": "src/EventBridgeSchedule.ts",
3923
- "line": 8
3923
+ "line": 9
3924
3924
  },
3925
- "name": "func",
3925
+ "name": "schedule",
3926
3926
  "type": {
3927
- "fqn": "aws-cdk-lib.aws_lambda_nodejs.NodejsFunction"
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": 9
3938
+ "line": 8
3939
3939
  },
3940
- "name": "intervalInMinutes",
3940
+ "name": "target",
3941
3941
  "type": {
3942
- "primitive": "number"
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": 15
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": 11
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": 12
4114
+ "line": 29
4106
4115
  },
4107
4116
  "name": "lambda",
4108
4117
  "type": {
@@ -4116,7 +4125,7 @@
4116
4125
  "immutable": true,
4117
4126
  "locationInModule": {
4118
4127
  "filename": "src/ScteScheduler.ts",
4119
- "line": 13
4128
+ "line": 30
4120
4129
  },
4121
4130
  "name": "schedule",
4122
4131
  "type": {
@@ -4136,7 +4145,7 @@
4136
4145
  "kind": "interface",
4137
4146
  "locationInModule": {
4138
4147
  "filename": "src/ScteScheduler.ts",
4139
- "line": 5
4148
+ "line": 20
4140
4149
  },
4141
4150
  "name": "ScteSchedulerProps",
4142
4151
  "properties": [
@@ -4148,7 +4157,7 @@
4148
4157
  "immutable": true,
4149
4158
  "locationInModule": {
4150
4159
  "filename": "src/ScteScheduler.ts",
4151
- "line": 6
4160
+ "line": 21
4152
4161
  },
4153
4162
  "name": "channelId",
4154
4163
  "type": {
@@ -4163,7 +4172,7 @@
4163
4172
  "immutable": true,
4164
4173
  "locationInModule": {
4165
4174
  "filename": "src/ScteScheduler.ts",
4166
- "line": 8
4175
+ "line": 23
4167
4176
  },
4168
4177
  "name": "intervalInMinutes",
4169
4178
  "type": {
@@ -4178,17 +4187,49 @@
4178
4187
  "immutable": true,
4179
4188
  "locationInModule": {
4180
4189
  "filename": "src/ScteScheduler.ts",
4181
- "line": 7
4190
+ "line": 22
4182
4191
  },
4183
4192
  "name": "scteDurationInSeconds",
4184
4193
  "type": {
4185
4194
  "primitive": "number"
4186
4195
  }
4196
+ },
4197
+ {
4198
+ "abstract": true,
4199
+ "docs": {
4200
+ "stability": "stable"
4201
+ },
4202
+ "immutable": true,
4203
+ "locationInModule": {
4204
+ "filename": "src/ScteScheduler.ts",
4205
+ "line": 25
4206
+ },
4207
+ "name": "callback",
4208
+ "optional": true,
4209
+ "type": {
4210
+ "fqn": "aws-cdk-lib.aws_lambda.IFunction"
4211
+ }
4212
+ },
4213
+ {
4214
+ "abstract": true,
4215
+ "docs": {
4216
+ "stability": "stable"
4217
+ },
4218
+ "immutable": true,
4219
+ "locationInModule": {
4220
+ "filename": "src/ScteScheduler.ts",
4221
+ "line": 24
4222
+ },
4223
+ "name": "repeatCount",
4224
+ "optional": true,
4225
+ "type": {
4226
+ "primitive": "number"
4227
+ }
4187
4228
  }
4188
4229
  ],
4189
4230
  "symbolId": "src/ScteScheduler:ScteSchedulerProps"
4190
4231
  }
4191
4232
  },
4192
- "version": "0.0.12",
4193
- "fingerprint": "gZ4qxmres2SC2GAA5MPWZYQ/j9yYlGRJizJ8myxBvIQ="
4233
+ "version": "0.0.14",
4234
+ "fingerprint": "49VXpkvR0bd8X5Q0o7XhHRsg+BJgms/7dLm9igEKWtQ="
4194
4235
  }
package/API.md CHANGED
@@ -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.func">func</a></code> | <code>aws-cdk-lib.aws_lambda_nodejs.NodejsFunction</code> | *No description.* |
405
- | <code><a href="#awscdk-construct-scte-scheduler.EventBridgeScheduleProps.property.intervalInMinutes">intervalInMinutes</a></code> | <code>number</code> | *No description.* |
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
- ##### `func`<sup>Required</sup> <a name="func" id="awscdk-construct-scte-scheduler.EventBridgeScheduleProps.property.func"></a>
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 func: NodejsFunction;
412
+ public readonly schedule: Schedule;
413
413
  ```
414
414
 
415
- - *Type:* aws-cdk-lib.aws_lambda_nodejs.NodejsFunction
415
+ - *Type:* aws-cdk-lib.aws_events.Schedule
416
416
 
417
417
  ---
418
418
 
419
- ##### `intervalInMinutes`<sup>Required</sup> <a name="intervalInMinutes" id="awscdk-construct-scte-scheduler.EventBridgeScheduleProps.property.intervalInMinutes"></a>
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 intervalInMinutes: number;
422
+ public readonly target: NodejsFunction | StateMachine;
423
423
  ```
424
424
 
425
- - *Type:* number
425
+ - *Type:* aws-cdk-lib.aws_lambda_nodejs.NodejsFunction | aws-cdk-lib.aws_stepfunctions.StateMachine
426
426
 
427
427
  ---
428
428
 
@@ -482,6 +482,8 @@ const scteSchedulerProps: ScteSchedulerProps = { ... }
482
482
  | <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.channelId">channelId</a></code> | <code>string</code> | *No description.* |
483
483
  | <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.intervalInMinutes">intervalInMinutes</a></code> | <code>number</code> | *No description.* |
484
484
  | <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.scteDurationInSeconds">scteDurationInSeconds</a></code> | <code>number</code> | *No description.* |
485
+ | <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.callback">callback</a></code> | <code>aws-cdk-lib.aws_lambda.IFunction</code> | *No description.* |
486
+ | <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.repeatCount">repeatCount</a></code> | <code>number</code> | *No description.* |
485
487
 
486
488
  ---
487
489
 
@@ -515,5 +517,25 @@ public readonly scteDurationInSeconds: number;
515
517
 
516
518
  ---
517
519
 
520
+ ##### `callback`<sup>Optional</sup> <a name="callback" id="awscdk-construct-scte-scheduler.ScteSchedulerProps.property.callback"></a>
521
+
522
+ ```typescript
523
+ public readonly callback: IFunction;
524
+ ```
525
+
526
+ - *Type:* aws-cdk-lib.aws_lambda.IFunction
527
+
528
+ ---
529
+
530
+ ##### `repeatCount`<sup>Optional</sup> <a name="repeatCount" id="awscdk-construct-scte-scheduler.ScteSchedulerProps.property.repeatCount"></a>
531
+
532
+ ```typescript
533
+ public readonly repeatCount: number;
534
+ ```
535
+
536
+ - *Type:* number
537
+
538
+ ---
539
+
518
540
 
519
541
 
package/README.md CHANGED
@@ -6,9 +6,11 @@ AWS CDK Construct for scheduling SCTE-35 events using the MediaLive schedule API
6
6
  * MediaLive channel id
7
7
  * SCTE event duration (seconds)
8
8
  * Repeat interval (minutes)
9
+ * Repeat count (optional)
10
+ * Lambda function to be called after the repeat (optional)
9
11
  * Output:
10
12
  * Lambda function for calling MediaLive schedule API
11
- * EventBridge rule for periodically invoking the function
13
+ * EventBridge rule or Stepfunctions state machine for periodically invoking the function
12
14
 
13
15
  ## Install
14
16
  [![NPM](https://nodei.co/npm/awscdk-construct-scte-scheduler.png?mini=true)](https://nodei.co/npm/awscdk-construct-scte-scheduler/)
@@ -36,6 +38,7 @@ export class ExampleStack extends Stack {
36
38
  channelId: eml.channel.ref,
37
39
  scteDurationInSeconds: 30,
38
40
  intervalInMinutes: 1,
41
+ repeqtCount: 5,
39
42
  });
40
43
 
41
44
  // Print MediaPackage endpoint URL (HLS)
@@ -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 func: NodejsFunction;
6
- readonly intervalInMinutes: number;
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 { func, intervalInMinutes } = props;
13
+ const { target, schedule } = props;
14
14
  this.rule = new aws_events_1.Rule(this, 'InvokeFunctionEveryXMinutes', {
15
- schedule: aws_events_1.Schedule.rate(cdk.Duration.minutes(intervalInMinutes)),
15
+ schedule,
16
16
  });
17
- this.rule.addTarget(new aws_events_targets_1.LambdaFunction(func));
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.12" };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRCcmlkZ2VTY2hlZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9FdmVudEJyaWRnZVNjaGVkdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLHVEQUF3RDtBQUN4RCx1RUFBZ0U7QUFFaEUsMkNBQXVDO0FBT3ZDLE1BQWEsbUJBQW9CLFNBQVEsc0JBQVM7SUFHaEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFMUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGlCQUFJLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFO1lBQ3hELFFBQVEsRUFBRSxxQkFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ2pFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUNqQixJQUFJLG1DQUFjLENBQUMsSUFBSSxDQUFDLENBQ3pCLENBQUM7SUFDSixDQUFDOztBQWZILGtEQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBSdWxlLCBTY2hlZHVsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudEJyaWRnZVNjaGVkdWxlUHJvcHMge1xuICByZWFkb25seSBmdW5jOiBOb2RlanNGdW5jdGlvbjtcbiAgcmVhZG9ubHkgaW50ZXJ2YWxJbk1pbnV0ZXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEV2ZW50QnJpZGdlU2NoZWR1bGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcnVsZTogUnVsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXZlbnRCcmlkZ2VTY2hlZHVsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgZnVuYywgaW50ZXJ2YWxJbk1pbnV0ZXMgfSA9IHByb3BzO1xuXG4gICAgdGhpcy5ydWxlID0gbmV3IFJ1bGUodGhpcywgJ0ludm9rZUZ1bmN0aW9uRXZlcnlYTWludXRlcycsIHtcbiAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5yYXRlKGNkay5EdXJhdGlvbi5taW51dGVzKGludGVydmFsSW5NaW51dGVzKSksXG4gICAgfSk7XG5cbiAgICB0aGlzLnJ1bGUuYWRkVGFyZ2V0KFxuICAgICAgbmV3IExhbWJkYUZ1bmN0aW9uKGZ1bmMpLFxuICAgICk7XG4gIH1cbn0iXX0=
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.12" };
44
+ Lambda[_a] = { fqn: "awscdk-construct-scte-scheduler.Lambda", version: "0.0.14" };
45
45
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0xhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsNkNBQXlEO0FBQ3pELGlEQUFzRDtBQUN0RCx1REFBaUQ7QUFDakQscUVBQStEO0FBQy9ELDJDQUF1QztBQU92QyxNQUFhLE1BQU8sU0FBUSxzQkFBUztJQUduQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtCO1FBQzFELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUVuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxrQ0FBYyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7WUFDcEQsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztZQUM1QixLQUFLLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ3BELDhDQUE4QztZQUM5Qyx3RUFBd0U7WUFDeEUsT0FBTyxFQUFFLFNBQVM7WUFDbEIsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBa0I7Z0JBQ3hDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUE0QjtnQkFDaEQsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLFlBQVksRUFBRSxHQUFHLHFCQUFxQixFQUFFO2FBQ3pDO1lBQ0QsWUFBWSxFQUFFLHNCQUFJLENBQUMsYUFBYSxDQUFDLFNBQVM7U0FDM0MsQ0FBQyxDQUFDO1FBQ0gsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUN2Qix5QkFBZSxDQUFDLFFBQVEsQ0FBQztZQUN2QixNQUFNLEVBQUUsT0FBTztZQUNmLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLFFBQVEsRUFBRSxHQUFHO1NBQ2QsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztBQWxDSCx3QkFtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRHVyYXRpb24sIGF3c19sb2dzIGFzIGxvZ3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhUHJvcHMge1xuICByZWFkb25seSBjaGFubmVsSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2N0ZUR1cmF0aW9uSW5TZWNvbmRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGEgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgZnVuYzogTm9kZWpzRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IExhbWJkYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgY2hhbm5lbElkLCBzY3RlRHVyYXRpb25JblNlY29uZHMgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgVFNfRU5UUlkgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnY29kZScsICdpbmRleC50cycpO1xuICAgIGNvbnN0IEpTX0VOVFJZID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2NvZGUnLCAnaW5kZXguanMnKTtcblxuICAgIHRoaXMuZnVuYyA9IG5ldyBOb2RlanNGdW5jdGlvbihzY29wZSwgJ1NjaGVkdWxlU0NURScsIHtcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICBlbnRyeTogZnMuZXhpc3RzU3luYyhUU19FTlRSWSkgPyBUU19FTlRSWSA6IEpTX0VOVFJZLFxuICAgICAgLy8gcHJvamVjdFJvb3Q6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicpLFxuICAgICAgLy8gZGVwc0xvY2tGaWxlUGF0aDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJ3BhY2thZ2UtbG9jay5qc29uJyksXG4gICAgICBoYW5kbGVyOiAnaGFuZGxlcicsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIE5PREVfRU5WOiBwcm9jZXNzLmVudi5OT0RFX0VOViBhcyBzdHJpbmcsXG4gICAgICAgIFJFR0lPTjogcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfUkVHSU9OIGFzIHN0cmluZyxcbiAgICAgICAgQ0hBTk5FTF9JRDogY2hhbm5lbElkLFxuICAgICAgICBBVkFJTF9MRU5HVEg6IGAke3NjdGVEdXJhdGlvbkluU2Vjb25kc31gLFxuICAgICAgfSxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLlRXT19XRUVLUyxcbiAgICB9KTtcbiAgICAvLyBBZGQgYSBzdGF0ZW1lbnQgdG8gY2FsbCBNZWRpYUxpdmUgc2NoZWR1bGUgQVBJXG4gICAgdGhpcy5mdW5jLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIFBvbGljeVN0YXRlbWVudC5mcm9tSnNvbih7XG4gICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgQWN0aW9uOiAnbWVkaWFsaXZlOionLFxuICAgICAgICBSZXNvdXJjZTogJyonLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufSJdfQ==
@@ -1,3 +1,4 @@
1
+ import { IFunction } from 'aws-cdk-lib/aws-lambda';
1
2
  import { Construct } from 'constructs';
2
3
  import { EventBridgeSchedule } from './EventBridgeSchedule';
3
4
  import { Lambda } from './Lambda';
@@ -5,6 +6,8 @@ export interface ScteSchedulerProps {
5
6
  readonly channelId: string;
6
7
  readonly scteDurationInSeconds: number;
7
8
  readonly intervalInMinutes: number;
9
+ readonly repeatCount?: number;
10
+ readonly callback?: IFunction;
8
11
  }
9
12
  export declare class ScteScheduler extends Construct {
10
13
  readonly lambda: Lambda;
@@ -3,26 +3,68 @@ var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.ScteScheduler = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
7
+ const aws_events_1 = require("aws-cdk-lib/aws-events");
8
+ const aws_stepfunctions_1 = require("aws-cdk-lib/aws-stepfunctions");
9
+ const aws_stepfunctions_tasks_1 = require("aws-cdk-lib/aws-stepfunctions-tasks");
6
10
  const constructs_1 = require("constructs");
7
11
  const EventBridgeSchedule_1 = require("./EventBridgeSchedule");
8
12
  const Lambda_1 = require("./Lambda");
9
13
  class ScteScheduler extends constructs_1.Construct {
10
14
  constructor(scope, id, props) {
11
15
  super(scope, id);
12
- const { channelId, scteDurationInSeconds, intervalInMinutes } = props;
16
+ const { channelId, scteDurationInSeconds, intervalInMinutes, repeatCount = 0, // 0 means infinite loop
17
+ callback, } = props;
13
18
  // Create Lambda function to insert SCTE message using the MediaLive schedule API
14
19
  this.lambda = new Lambda_1.Lambda(this, 'LambdaFunction', {
15
20
  channelId,
16
21
  scteDurationInSeconds,
17
22
  });
18
- // Create EventBridge rule to invoke the Lambda function every N minutes
19
- this.schedule = new EventBridgeSchedule_1.EventBridgeSchedule(this, 'EventBridgeSchedule', {
20
- func: this.lambda.func,
21
- intervalInMinutes,
22
- });
23
+ if (repeatCount <= 0) {
24
+ // Create EventBridge rule to invoke the Lambda function every N minutes
25
+ this.schedule = new EventBridgeSchedule_1.EventBridgeSchedule(this, 'EventBridgeSchedule', {
26
+ target: this.lambda.func,
27
+ schedule: aws_events_1.Schedule.rate(aws_cdk_lib_1.Duration.minutes(intervalInMinutes)),
28
+ });
29
+ }
30
+ else {
31
+ // Create Step Functions state machine to invoke the Lambda function N times
32
+ const invoke = new aws_stepfunctions_tasks_1.LambdaInvoke(this, 'Invoke SCTE scheduler Lambda function', {
33
+ lambdaFunction: this.lambda.func,
34
+ inputPath: '$.Payload',
35
+ });
36
+ const wait = new aws_stepfunctions_1.Wait(this, 'Wait', {
37
+ time: aws_stepfunctions_1.WaitTime.duration(aws_cdk_lib_1.Duration.minutes(intervalInMinutes)),
38
+ });
39
+ const lastTask = callback ? new aws_stepfunctions_tasks_1.LambdaInvoke(this, 'Callback', {
40
+ lambdaFunction: callback,
41
+ }) : new aws_stepfunctions_1.Succeed(this, 'Done');
42
+ const stateMachine = new aws_stepfunctions_1.StateMachine(this, 'StateMachine', {
43
+ definitionBody: aws_stepfunctions_1.DefinitionBody.fromChainable(aws_stepfunctions_1.Chain.start(new aws_stepfunctions_1.Pass(this, 'Start', { parameters: { Payload: { i: 0 } } }))
44
+ .next(wait)
45
+ .next(invoke)
46
+ .next(new aws_stepfunctions_1.Choice(this, 'Choice')
47
+ .when(aws_stepfunctions_1.Condition.numberLessThan('$.Payload.i', repeatCount), wait)
48
+ .otherwise(lastTask))),
49
+ });
50
+ this.schedule = new EventBridgeSchedule_1.EventBridgeSchedule(this, 'EventBridgeSchedule', {
51
+ target: stateMachine,
52
+ schedule: cronNow(),
53
+ });
54
+ }
23
55
  }
24
56
  }
25
57
  exports.ScteScheduler = ScteScheduler;
26
58
  _a = JSII_RTTI_SYMBOL_1;
27
- ScteScheduler[_a] = { fqn: "awscdk-construct-scte-scheduler.ScteScheduler", version: "0.0.12" };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2N0ZVNjaGVkdWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TY3RlU2NoZWR1bGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQXVDO0FBQ3ZDLCtEQUE0RDtBQUM1RCxxQ0FBa0M7QUFRbEMsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFJMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFdEUsaUZBQWlGO1FBQ2pGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQy9DLFNBQVM7WUFDVCxxQkFBcUI7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx5Q0FBbUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7WUFDbkUsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUN0QixpQkFBaUI7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFwQkgsc0NBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBFdmVudEJyaWRnZVNjaGVkdWxlIH0gZnJvbSAnLi9FdmVudEJyaWRnZVNjaGVkdWxlJztcbmltcG9ydCB7IExhbWJkYSB9IGZyb20gJy4vTGFtYmRhJztcblxuZXhwb3J0IGludGVyZmFjZSBTY3RlU2NoZWR1bGVyUHJvcHMge1xuICByZWFkb25seSBjaGFubmVsSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2N0ZUR1cmF0aW9uSW5TZWNvbmRzOiBudW1iZXI7XG4gIHJlYWRvbmx5IGludGVydmFsSW5NaW51dGVzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBTY3RlU2NoZWR1bGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGxhbWJkYTogTGFtYmRhO1xuICBwdWJsaWMgcmVhZG9ubHkgc2NoZWR1bGU6IEV2ZW50QnJpZGdlU2NoZWR1bGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNjdGVTY2hlZHVsZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7IGNoYW5uZWxJZCwgc2N0ZUR1cmF0aW9uSW5TZWNvbmRzLCBpbnRlcnZhbEluTWludXRlcyB9ID0gcHJvcHM7XG5cbiAgICAvLyBDcmVhdGUgTGFtYmRhIGZ1bmN0aW9uIHRvIGluc2VydCBTQ1RFIG1lc3NhZ2UgdXNpbmcgdGhlIE1lZGlhTGl2ZSBzY2hlZHVsZSBBUElcbiAgICB0aGlzLmxhbWJkYSA9IG5ldyBMYW1iZGEodGhpcywgJ0xhbWJkYUZ1bmN0aW9uJywge1xuICAgICAgY2hhbm5lbElkLFxuICAgICAgc2N0ZUR1cmF0aW9uSW5TZWNvbmRzLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIEV2ZW50QnJpZGdlIHJ1bGUgdG8gaW52b2tlIHRoZSBMYW1iZGEgZnVuY3Rpb24gZXZlcnkgTiBtaW51dGVzXG4gICAgdGhpcy5zY2hlZHVsZSA9IG5ldyBFdmVudEJyaWRnZVNjaGVkdWxlKHRoaXMsICdFdmVudEJyaWRnZVNjaGVkdWxlJywge1xuICAgICAgZnVuYzogdGhpcy5sYW1iZGEuZnVuYyxcbiAgICAgIGludGVydmFsSW5NaW51dGVzLFxuICAgIH0pO1xuICB9XG59Il19
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
@@ -1 +1,3 @@
1
- export declare function handler(): Promise<void>;
1
+ export declare function handler(event: any): Promise<{
2
+ i: any;
3
+ }>;
package/lib/code/index.js CHANGED
@@ -7,10 +7,11 @@ const CHANNEL_ID = process.env.CHANNEL_ID;
7
7
  const OFFSET = 30;
8
8
  const AVAIL_LENGTH = process.env.AVAIL_LENGTH;
9
9
  // Lambda function to insert SCTE-35 splice_insert() message using the MediaLive schedule API
10
- async function handler() {
10
+ async function handler(event) {
11
11
  await deleteSchedules();
12
12
  const startTime = new Date(Date.now() + (OFFSET * 1000));
13
13
  await scheduleEvent(Math.floor(startTime.getTime() / 1000), startTime);
14
+ return { i: event.i + 1 };
14
15
  }
15
16
  exports.handler = handler;
16
17
  function deleteSchedules() {
@@ -43,4 +44,4 @@ function createScteCommand(eventId, start, durationInSeconds) {
43
44
  ],
44
45
  };
45
46
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnRUFLbUM7QUFFbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxrQ0FBZSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUVuRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQW9CLENBQUM7QUFDcEQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBaUMsQ0FBQztBQUVuRSw2RkFBNkY7QUFDdEYsS0FBSyxVQUFVLE9BQU87SUFDM0IsTUFBTSxlQUFlLEVBQUUsQ0FBQztJQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RCxNQUFNLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBSkQsMEJBSUM7QUFFRCxTQUFTLGVBQWU7SUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSx3Q0FBcUIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsS0FBSyxVQUFVLGFBQWEsQ0FBQyxPQUFlLEVBQUUsS0FBVztJQUN2RCxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzdELE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQTBCLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxLQUFXLEVBQUUsaUJBQXlCO0lBQ2hGLE9BQU87UUFDTCxlQUFlLEVBQUU7WUFDZjtnQkFDRSxVQUFVLEVBQUUsd0JBQXdCLE9BQU8sRUFBRTtnQkFDN0Msc0JBQXNCLEVBQUU7b0JBQ3RCLDBCQUEwQixFQUFFO3dCQUMxQixhQUFhLEVBQUUsT0FBTzt3QkFDdEIsUUFBUSxFQUFFLGlCQUFpQixHQUFHLEtBQU0sRUFBRSxRQUFRO3FCQUMvQztpQkFDRjtnQkFDRCwyQkFBMkIsRUFBRTtvQkFDM0Isb0NBQW9DLEVBQUU7d0JBQ3BDLElBQUksRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFO3FCQUMxQjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1lZGlhTGl2ZUNsaWVudCxcbiAgQmF0Y2hVcGRhdGVTY2hlZHVsZUNvbW1hbmQsXG4gIEJhdGNoU2NoZWR1bGVBY3Rpb25DcmVhdGVSZXF1ZXN0LFxuICBEZWxldGVTY2hlZHVsZUNvbW1hbmQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1tZWRpYWxpdmUnO1xuXG5jb25zdCBjbGllbnQgPSBuZXcgTWVkaWFMaXZlQ2xpZW50KHsgcmVnaW9uOiBwcm9jZXNzLmVudi5SRUdJT04gfSk7XG5cbmNvbnN0IENIQU5ORUxfSUQgPSBwcm9jZXNzLmVudi5DSEFOTkVMX0lEIGFzIHN0cmluZztcbmNvbnN0IE9GRlNFVCA9IDMwO1xuY29uc3QgQVZBSUxfTEVOR1RIID0gcHJvY2Vzcy5lbnYuQVZBSUxfTEVOR1RIIGFzIHVua25vd24gYXMgbnVtYmVyO1xuXG4vLyBMYW1iZGEgZnVuY3Rpb24gdG8gaW5zZXJ0IFNDVEUtMzUgc3BsaWNlX2luc2VydCgpIG1lc3NhZ2UgdXNpbmcgdGhlIE1lZGlhTGl2ZSBzY2hlZHVsZSBBUElcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKCkge1xuICBhd2FpdCBkZWxldGVTY2hlZHVsZXMoKTtcbiAgY29uc3Qgc3RhcnRUaW1lID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIChPRkZTRVQgKiAxMDAwKSk7XG4gIGF3YWl0IHNjaGVkdWxlRXZlbnQoTWF0aC5mbG9vcihzdGFydFRpbWUuZ2V0VGltZSgpIC8gMTAwMCksIHN0YXJ0VGltZSk7XG59XG5cbmZ1bmN0aW9uIGRlbGV0ZVNjaGVkdWxlcygpIHtcbiAgY29uc3QgY29tbWFuZCA9IG5ldyBEZWxldGVTY2hlZHVsZUNvbW1hbmQoeyBDaGFubmVsSWQ6IENIQU5ORUxfSUQgfSk7XG4gIHJldHVybiBjbGllbnQuc2VuZChjb21tYW5kKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2NoZWR1bGVFdmVudChldmVudElkOiBudW1iZXIsIHN0YXJ0OiBEYXRlKSB7XG4gIGNvbnN0IHNjdGUgPSBjcmVhdGVTY3RlQ29tbWFuZChldmVudElkLCBzdGFydCwgQVZBSUxfTEVOR1RIKTtcbiAgY29uc3QgY29tbWFuZCA9IG5ldyBCYXRjaFVwZGF0ZVNjaGVkdWxlQ29tbWFuZCh7IENoYW5uZWxJZDogQ0hBTk5FTF9JRCwgQ3JlYXRlczogc2N0ZSB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc2VuZChjb21tYW5kKTtcbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UsIG51bGwsIDIpKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU2N0ZUNvbW1hbmQoZXZlbnRJZDogbnVtYmVyLCBzdGFydDogRGF0ZSwgZHVyYXRpb25JblNlY29uZHM6IG51bWJlcik6IEJhdGNoU2NoZWR1bGVBY3Rpb25DcmVhdGVSZXF1ZXN0IHtcbiAgcmV0dXJuIHtcbiAgICBTY2hlZHVsZUFjdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgQWN0aW9uTmFtZTogYFNDVEUzNV9zcGxpY2UtaW5zZXJ0XyR7ZXZlbnRJZH1gLFxuICAgICAgICBTY2hlZHVsZUFjdGlvblNldHRpbmdzOiB7XG4gICAgICAgICAgU2N0ZTM1U3BsaWNlSW5zZXJ0U2V0dGluZ3M6IHtcbiAgICAgICAgICAgIFNwbGljZUV2ZW50SWQ6IGV2ZW50SWQsXG4gICAgICAgICAgICBEdXJhdGlvbjogZHVyYXRpb25JblNlY29uZHMgKiA5MF8wMDAsIC8vIDkwa0h6XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgU2NoZWR1bGVBY3Rpb25TdGFydFNldHRpbmdzOiB7XG4gICAgICAgICAgRml4ZWRNb2RlU2NoZWR1bGVBY3Rpb25TdGFydFNldHRpbmdzOiB7XG4gICAgICAgICAgICBUaW1lOiBzdGFydC50b0lTT1N0cmluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG59XG5cblxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnRUFLbUM7QUFFbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxrQ0FBZSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUVuRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQW9CLENBQUM7QUFDcEQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBaUMsQ0FBQztBQUVuRSw2RkFBNkY7QUFDdEYsS0FBSyxVQUFVLE9BQU8sQ0FBQyxLQUFVO0lBQ3RDLE1BQU0sZUFBZSxFQUFFLENBQUM7SUFDeEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFMRCwwQkFLQztBQUVELFNBQVMsZUFBZTtJQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLHdDQUFxQixDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDckUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRCxLQUFLLFVBQVUsYUFBYSxDQUFDLE9BQWUsRUFBRSxLQUFXO0lBQ3ZELE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSw2Q0FBMEIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekYsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsT0FBZSxFQUFFLEtBQVcsRUFBRSxpQkFBeUI7SUFDaEYsT0FBTztRQUNMLGVBQWUsRUFBRTtZQUNmO2dCQUNFLFVBQVUsRUFBRSx3QkFBd0IsT0FBTyxFQUFFO2dCQUM3QyxzQkFBc0IsRUFBRTtvQkFDdEIsMEJBQTBCLEVBQUU7d0JBQzFCLGFBQWEsRUFBRSxPQUFPO3dCQUN0QixRQUFRLEVBQUUsaUJBQWlCLEdBQUcsS0FBTSxFQUFFLFFBQVE7cUJBQy9DO2lCQUNGO2dCQUNELDJCQUEyQixFQUFFO29CQUMzQixvQ0FBb0MsRUFBRTt3QkFDcEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUU7cUJBQzFCO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTWVkaWFMaXZlQ2xpZW50LFxuICBCYXRjaFVwZGF0ZVNjaGVkdWxlQ29tbWFuZCxcbiAgQmF0Y2hTY2hlZHVsZUFjdGlvbkNyZWF0ZVJlcXVlc3QsXG4gIERlbGV0ZVNjaGVkdWxlQ29tbWFuZCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LW1lZGlhbGl2ZSc7XG5cbmNvbnN0IGNsaWVudCA9IG5ldyBNZWRpYUxpdmVDbGllbnQoeyByZWdpb246IHByb2Nlc3MuZW52LlJFR0lPTiB9KTtcblxuY29uc3QgQ0hBTk5FTF9JRCA9IHByb2Nlc3MuZW52LkNIQU5ORUxfSUQgYXMgc3RyaW5nO1xuY29uc3QgT0ZGU0VUID0gMzA7XG5jb25zdCBBVkFJTF9MRU5HVEggPSBwcm9jZXNzLmVudi5BVkFJTF9MRU5HVEggYXMgdW5rbm93biBhcyBudW1iZXI7XG5cbi8vIExhbWJkYSBmdW5jdGlvbiB0byBpbnNlcnQgU0NURS0zNSBzcGxpY2VfaW5zZXJ0KCkgbWVzc2FnZSB1c2luZyB0aGUgTWVkaWFMaXZlIHNjaGVkdWxlIEFQSVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IGFueSkge1xuICBhd2FpdCBkZWxldGVTY2hlZHVsZXMoKTtcbiAgY29uc3Qgc3RhcnRUaW1lID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIChPRkZTRVQgKiAxMDAwKSk7XG4gIGF3YWl0IHNjaGVkdWxlRXZlbnQoTWF0aC5mbG9vcihzdGFydFRpbWUuZ2V0VGltZSgpIC8gMTAwMCksIHN0YXJ0VGltZSk7XG4gIHJldHVybiB7IGk6IGV2ZW50LmkgKyAxIH07XG59XG5cbmZ1bmN0aW9uIGRlbGV0ZVNjaGVkdWxlcygpIHtcbiAgY29uc3QgY29tbWFuZCA9IG5ldyBEZWxldGVTY2hlZHVsZUNvbW1hbmQoeyBDaGFubmVsSWQ6IENIQU5ORUxfSUQgfSk7XG4gIHJldHVybiBjbGllbnQuc2VuZChjb21tYW5kKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2NoZWR1bGVFdmVudChldmVudElkOiBudW1iZXIsIHN0YXJ0OiBEYXRlKSB7XG4gIGNvbnN0IHNjdGUgPSBjcmVhdGVTY3RlQ29tbWFuZChldmVudElkLCBzdGFydCwgQVZBSUxfTEVOR1RIKTtcbiAgY29uc3QgY29tbWFuZCA9IG5ldyBCYXRjaFVwZGF0ZVNjaGVkdWxlQ29tbWFuZCh7IENoYW5uZWxJZDogQ0hBTk5FTF9JRCwgQ3JlYXRlczogc2N0ZSB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc2VuZChjb21tYW5kKTtcbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UsIG51bGwsIDIpKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU2N0ZUNvbW1hbmQoZXZlbnRJZDogbnVtYmVyLCBzdGFydDogRGF0ZSwgZHVyYXRpb25JblNlY29uZHM6IG51bWJlcik6IEJhdGNoU2NoZWR1bGVBY3Rpb25DcmVhdGVSZXF1ZXN0IHtcbiAgcmV0dXJuIHtcbiAgICBTY2hlZHVsZUFjdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgQWN0aW9uTmFtZTogYFNDVEUzNV9zcGxpY2UtaW5zZXJ0XyR7ZXZlbnRJZH1gLFxuICAgICAgICBTY2hlZHVsZUFjdGlvblNldHRpbmdzOiB7XG4gICAgICAgICAgU2N0ZTM1U3BsaWNlSW5zZXJ0U2V0dGluZ3M6IHtcbiAgICAgICAgICAgIFNwbGljZUV2ZW50SWQ6IGV2ZW50SWQsXG4gICAgICAgICAgICBEdXJhdGlvbjogZHVyYXRpb25JblNlY29uZHMgKiA5MF8wMDAsIC8vIDkwa0h6XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgU2NoZWR1bGVBY3Rpb25TdGFydFNldHRpbmdzOiB7XG4gICAgICAgICAgRml4ZWRNb2RlU2NoZWR1bGVBY3Rpb25TdGFydFNldHRpbmdzOiB7XG4gICAgICAgICAgICBUaW1lOiBzdGFydC50b0lTT1N0cmluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG59XG5cblxuIl19
package/package.json CHANGED
@@ -80,7 +80,7 @@
80
80
  "publishConfig": {
81
81
  "access": "public"
82
82
  },
83
- "version": "0.0.12",
83
+ "version": "0.0.14",
84
84
  "jest": {
85
85
  "coverageProvider": "v8",
86
86
  "testMatch": [