@rio-cloud/cdk-v2-constructs 4.1.1 → 4.3.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/.jsii +120 -7
- package/CHANGELOG.md +15 -0
- package/lib/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.d.ts +1 -1
- package/lib/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.js +5 -5
- package/lib/kafka/index.d.ts +1 -0
- package/lib/kafka/index.js +2 -1
- package/lib/kafka/rio-kafka-event-source.d.ts +46 -0
- package/lib/kafka/rio-kafka-event-source.js +58 -0
- package/node_modules/argparse/CHANGELOG.md +216 -0
- package/node_modules/js-yaml/CHANGELOG.md +616 -0
- package/package.json +2 -2
- package/version.json +1 -1
package/.jsii
CHANGED
|
@@ -4376,9 +4376,9 @@
|
|
|
4376
4376
|
"immutable": true,
|
|
4377
4377
|
"locationInModule": {
|
|
4378
4378
|
"filename": "src/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.ts",
|
|
4379
|
-
"line":
|
|
4379
|
+
"line": 17
|
|
4380
4380
|
},
|
|
4381
|
-
"name": "
|
|
4381
|
+
"name": "organization",
|
|
4382
4382
|
"type": {
|
|
4383
4383
|
"primitive": "string"
|
|
4384
4384
|
}
|
|
@@ -4391,9 +4391,9 @@
|
|
|
4391
4391
|
"immutable": true,
|
|
4392
4392
|
"locationInModule": {
|
|
4393
4393
|
"filename": "src/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.ts",
|
|
4394
|
-
"line":
|
|
4394
|
+
"line": 15
|
|
4395
4395
|
},
|
|
4396
|
-
"name": "
|
|
4396
|
+
"name": "serviceName",
|
|
4397
4397
|
"type": {
|
|
4398
4398
|
"primitive": "string"
|
|
4399
4399
|
}
|
|
@@ -4406,9 +4406,10 @@
|
|
|
4406
4406
|
"immutable": true,
|
|
4407
4407
|
"locationInModule": {
|
|
4408
4408
|
"filename": "src/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.ts",
|
|
4409
|
-
"line":
|
|
4409
|
+
"line": 16
|
|
4410
4410
|
},
|
|
4411
|
-
"name": "
|
|
4411
|
+
"name": "alertType",
|
|
4412
|
+
"optional": true,
|
|
4412
4413
|
"type": {
|
|
4413
4414
|
"primitive": "string"
|
|
4414
4415
|
}
|
|
@@ -6493,6 +6494,118 @@
|
|
|
6493
6494
|
],
|
|
6494
6495
|
"symbolId": "src/fargate/rio-fargate-service:RioFargateServiceProps"
|
|
6495
6496
|
},
|
|
6497
|
+
"@rio-cloud/cdk-v2-constructs.RioKafkaEventSource": {
|
|
6498
|
+
"assembly": "@rio-cloud/cdk-v2-constructs",
|
|
6499
|
+
"docs": {
|
|
6500
|
+
"remarks": "```\n const lambda = new nodejs.NodejsFunction(this, 'KafkaConsumerFunction', {\n entry: 'path.to.handler.ts',\n handler: 'handlerName',\n });\n\n const secret = Secret.fromSecretNameV2(this, 'ConsumerSecret', 'kafka-integration/msk-certificate/<FQDN>')\n\n lambda.addEventSource(new RioKafkaEventSource({\n secret,\n topic: '<TOPIC/NAME>',\n startingPosition: StartingPosition.TRIM_HORIZON,\n }));\n```",
|
|
6501
|
+
"stability": "stable",
|
|
6502
|
+
"summary": "Use the Rio Kafka as a streaming source for AWS Lambda."
|
|
6503
|
+
},
|
|
6504
|
+
"fqn": "@rio-cloud/cdk-v2-constructs.RioKafkaEventSource",
|
|
6505
|
+
"initializer": {
|
|
6506
|
+
"docs": {
|
|
6507
|
+
"stability": "stable"
|
|
6508
|
+
},
|
|
6509
|
+
"locationInModule": {
|
|
6510
|
+
"filename": "src/kafka/rio-kafka-event-source.ts",
|
|
6511
|
+
"line": 52
|
|
6512
|
+
},
|
|
6513
|
+
"parameters": [
|
|
6514
|
+
{
|
|
6515
|
+
"name": "props",
|
|
6516
|
+
"type": {
|
|
6517
|
+
"fqn": "@rio-cloud/cdk-v2-constructs.RioKafkaEventSourceProps"
|
|
6518
|
+
}
|
|
6519
|
+
}
|
|
6520
|
+
]
|
|
6521
|
+
},
|
|
6522
|
+
"interfaces": [
|
|
6523
|
+
"aws-cdk-lib.aws_lambda.IEventSource"
|
|
6524
|
+
],
|
|
6525
|
+
"kind": "class",
|
|
6526
|
+
"locationInModule": {
|
|
6527
|
+
"filename": "src/kafka/rio-kafka-event-source.ts",
|
|
6528
|
+
"line": 50
|
|
6529
|
+
},
|
|
6530
|
+
"methods": [
|
|
6531
|
+
{
|
|
6532
|
+
"docs": {
|
|
6533
|
+
"stability": "stable",
|
|
6534
|
+
"summary": "Called by `lambda.addEventSource` to allow the event source to bind to this function."
|
|
6535
|
+
},
|
|
6536
|
+
"locationInModule": {
|
|
6537
|
+
"filename": "src/kafka/rio-kafka-event-source.ts",
|
|
6538
|
+
"line": 55
|
|
6539
|
+
},
|
|
6540
|
+
"name": "bind",
|
|
6541
|
+
"overrides": "aws-cdk-lib.aws_lambda.IEventSource",
|
|
6542
|
+
"parameters": [
|
|
6543
|
+
{
|
|
6544
|
+
"name": "target",
|
|
6545
|
+
"type": {
|
|
6546
|
+
"fqn": "aws-cdk-lib.aws_lambda.IFunction"
|
|
6547
|
+
}
|
|
6548
|
+
}
|
|
6549
|
+
]
|
|
6550
|
+
}
|
|
6551
|
+
],
|
|
6552
|
+
"name": "RioKafkaEventSource",
|
|
6553
|
+
"symbolId": "src/kafka/rio-kafka-event-source:RioKafkaEventSource"
|
|
6554
|
+
},
|
|
6555
|
+
"@rio-cloud/cdk-v2-constructs.RioKafkaEventSourceProps": {
|
|
6556
|
+
"assembly": "@rio-cloud/cdk-v2-constructs",
|
|
6557
|
+
"datatype": true,
|
|
6558
|
+
"docs": {
|
|
6559
|
+
"stability": "stable",
|
|
6560
|
+
"summary": "Properties for RioKafkaEventSource."
|
|
6561
|
+
},
|
|
6562
|
+
"fqn": "@rio-cloud/cdk-v2-constructs.RioKafkaEventSourceProps",
|
|
6563
|
+
"interfaces": [
|
|
6564
|
+
"aws-cdk-lib.aws_lambda_event_sources.BaseStreamEventSourceProps"
|
|
6565
|
+
],
|
|
6566
|
+
"kind": "interface",
|
|
6567
|
+
"locationInModule": {
|
|
6568
|
+
"filename": "src/kafka/rio-kafka-event-source.ts",
|
|
6569
|
+
"line": 14
|
|
6570
|
+
},
|
|
6571
|
+
"name": "RioKafkaEventSourceProps",
|
|
6572
|
+
"properties": [
|
|
6573
|
+
{
|
|
6574
|
+
"abstract": true,
|
|
6575
|
+
"docs": {
|
|
6576
|
+
"remarks": "You can use the `create-and-sign-certificate` script from the `kafka-integration` to create a suitable AWS Secrets Manager secret.\nSimply add the `--fqdn <fqdn> --lambda` parameters to the `create-and-sign-certificate` script and the script generates a secret named `kafka-integration/msk-certificate/<fqdn>` with all relevant data.\n\nPlease note that we do only support the `--lambda` parameter if the `--fqdn` parameter is present.\nWe encourage you to use the `--fqdn` parameter for all your Kafka consumers and producers as this eases the recovery process in the case of a disaster.\n(Otherwise, i.e., if you do not use the `--fqdn` parameter, your certificates CNAME contains the AWS account ID and you need to change all ACLs in case of a corrupted AWS account.)",
|
|
6577
|
+
"stability": "stable",
|
|
6578
|
+
"summary": "The secret with the Kafka credentials, see https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html for details."
|
|
6579
|
+
},
|
|
6580
|
+
"immutable": true,
|
|
6581
|
+
"locationInModule": {
|
|
6582
|
+
"filename": "src/kafka/rio-kafka-event-source.ts",
|
|
6583
|
+
"line": 29
|
|
6584
|
+
},
|
|
6585
|
+
"name": "secret",
|
|
6586
|
+
"type": {
|
|
6587
|
+
"fqn": "aws-cdk-lib.aws_secretsmanager.ISecret"
|
|
6588
|
+
}
|
|
6589
|
+
},
|
|
6590
|
+
{
|
|
6591
|
+
"abstract": true,
|
|
6592
|
+
"docs": {
|
|
6593
|
+
"stability": "stable",
|
|
6594
|
+
"summary": "The Kafka topic to subscribe to."
|
|
6595
|
+
},
|
|
6596
|
+
"immutable": true,
|
|
6597
|
+
"locationInModule": {
|
|
6598
|
+
"filename": "src/kafka/rio-kafka-event-source.ts",
|
|
6599
|
+
"line": 18
|
|
6600
|
+
},
|
|
6601
|
+
"name": "topic",
|
|
6602
|
+
"type": {
|
|
6603
|
+
"primitive": "string"
|
|
6604
|
+
}
|
|
6605
|
+
}
|
|
6606
|
+
],
|
|
6607
|
+
"symbolId": "src/kafka/rio-kafka-event-source:RioKafkaEventSourceProps"
|
|
6608
|
+
},
|
|
6496
6609
|
"@rio-cloud/cdk-v2-constructs.RioLandingZone": {
|
|
6497
6610
|
"assembly": "@rio-cloud/cdk-v2-constructs",
|
|
6498
6611
|
"docs": {
|
|
@@ -8747,5 +8860,5 @@
|
|
|
8747
8860
|
}
|
|
8748
8861
|
},
|
|
8749
8862
|
"version": "0.0.0",
|
|
8750
|
-
"fingerprint": "
|
|
8863
|
+
"fingerprint": "koq2sKi3sfeOmg68p5HP6uEAIbSWACcLslXxuom0/I0="
|
|
8751
8864
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [4.3.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.2.0&sourceBranch=refs%2Ftags%2Fv4.3.0) (2022-12-20)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **contribution:** Allow disabling alerting for Datadog usage monitoring ([f93e3c6](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/f93e3c6eff3fd242b250f1696cfc1ab200dfadd9))
|
|
11
|
+
|
|
12
|
+
## [4.2.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.1.1&sourceBranch=refs%2Ftags%2Fv4.2.0) (2022-12-19)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **RioKafkaEventSource:** add lambda EventSource for RIO Kafka ([7eba488](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/7eba488871fdeccdc5ce9ccc26944d65ea5a5ed9))
|
|
18
|
+
* **RioKafkaEventSource:** add tests and fix jsii compilation ([8c55a30](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/8c55a30a819b79d477dc9e056ae8ff5a5f44ee12))
|
|
19
|
+
|
|
5
20
|
### [4.1.1](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.1.0&sourceBranch=refs%2Ftags%2Fv4.1.1) (2022-11-24)
|
|
6
21
|
|
|
7
22
|
|
|
@@ -3,7 +3,7 @@ import { DatadogOrganization } from '../../../datadog';
|
|
|
3
3
|
import { DatadogAlertType } from '../../../datadog/datadog-monitor';
|
|
4
4
|
export interface DatadogUsageMonitoringProps {
|
|
5
5
|
readonly serviceName: string;
|
|
6
|
-
readonly alertType
|
|
6
|
+
readonly alertType?: DatadogAlertType;
|
|
7
7
|
readonly organization: DatadogOrganization;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
@@ -107,17 +107,17 @@ class DatadogUsageMonitoring extends constructs.Construct {
|
|
|
107
107
|
},
|
|
108
108
|
];
|
|
109
109
|
for (const usageSpikeMonitor of [].concat(infrastructureUsageSpikeMonitors, logManagementUsageSpikeMonitors, apmUsageSpikeMonitors, serverlessUsageSpikeMonitors, syntheticUsageSpikeMonitors)) {
|
|
110
|
-
this.createAnomalyMonitorForSpikes(props.serviceName, teamName, props.alertType
|
|
110
|
+
this.createAnomalyMonitorForSpikes(props.serviceName, teamName, usageSpikeMonitor, props.alertType);
|
|
111
111
|
}
|
|
112
112
|
if (props.organization === 'EU') {
|
|
113
113
|
addClaidometer(this);
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
|
-
createAnomalyMonitorForSpikes(serviceName, teamName,
|
|
116
|
+
createAnomalyMonitorForSpikes(serviceName, teamName, usageSpikeMonitor, alertType) {
|
|
117
117
|
var _b;
|
|
118
118
|
return new datadog_monitor_1.DatadogMonitor(this, usageSpikeMonitor.humanReadableName, {
|
|
119
119
|
serviceName,
|
|
120
|
-
alertTypes: [alertType],
|
|
120
|
+
alertTypes: alertType ? [alertType] : undefined,
|
|
121
121
|
monitor: {
|
|
122
122
|
name: `${usageSpikeMonitor.humanReadableName} spike`,
|
|
123
123
|
type: 'query alert',
|
|
@@ -148,7 +148,7 @@ function addClaidometer(scope) {
|
|
|
148
148
|
product: rio_claidometer_1.ClaidometerProduct.CDK_CONTRIBUTION,
|
|
149
149
|
packageName,
|
|
150
150
|
feature,
|
|
151
|
-
version: '0.0.
|
|
151
|
+
version: '0.0.8',
|
|
152
152
|
});
|
|
153
153
|
}
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvdGVhbS1jbGFpZC9kYXRhZG9nLXVzYWdlLW1vbml0b3JpbmcvZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFDekMsOENBQWlGO0FBQ2pGLHNFQUFvRjtBQUNwRiw4REFBMkU7QUFjM0U7OztHQUdHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxVQUFVLENBQUMsU0FBUztJQUM5RCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQWtDO1FBQ3JGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUMsV0FBVyxDQUFDO1FBRWhILE1BQU0sZ0NBQWdDLEdBQXdCO1lBQzVEO2dCQUNFLGlCQUFpQixFQUFFLHNCQUFzQjtnQkFDekMsS0FBSyxFQUFFLHNDQUFzQzthQUM5QztZQUNEO2dCQUNFLGlCQUFpQixFQUFFLG9EQUFvRDtnQkFDdkUsS0FBSyxFQUFFLDBEQUEwRDthQUNsRTtZQUNELEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSwwQ0FBMEMsRUFBRTtZQUN6RixFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLEtBQUssRUFBRSxrQ0FBa0MsRUFBRTtZQUMxRjtnQkFDRSxpQkFBaUIsRUFBRSxnQkFBZ0I7Z0JBQ25DLEtBQUssRUFBRSwrQ0FBK0M7YUFDdkQ7WUFDRDtnQkFDRSxpQkFBaUIsRUFBRSw4Q0FBOEM7Z0JBQ2pFLEtBQUssRUFBRSxtRUFBbUU7YUFDM0U7U0FDRixDQUFDO1FBRUYs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YyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRTtZQUNuRSxXQUFXO1lBQ1gsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3ZCLE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsUUFBUTtnQkFDcEQsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLEtBQUssRUFBRSwyQkFBMkIsaUJBQWlCLENBQUMsS0FBSyx5SkFBeUo7Z0JBQ2xOLE9BQU8sRUFBRSxRQUFRLGlCQUFpQixDQUFDLGlCQUFpQixnQ0FDbEQsTUFBQSxpQkFBaUIsQ0FBQyxpQkFBaUIsbUNBQUksRUFDekMsRUFBRTtnQkFDRixPQUFPLEVBQUU7b0JBQ1AsWUFBWSxFQUFFLEtBQUs7b0JBQ25CLGNBQWMsRUFBRSxLQUFLO29CQUNyQixpQkFBaUIsRUFBRTt3QkFDakIsY0FBYyxFQUFFLFVBQVU7d0JBQzFCLGVBQWUsRUFBRSxVQUFVO3FCQUM1QjtpQkFDRjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0osV0FBVyxXQUFXLEVBQUU7b0JBQ3hCLFFBQVEsUUFBUSxFQUFFO2lCQUNuQjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF6Skgsd0RBMEpDOzs7QUFFRCxTQUFTLGNBQWMsQ0FBQyxLQUEyQjtJQUNqRCxNQUFNLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25FLElBQUksNkJBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFO1FBQ3BDLE9BQU8sRUFBRSxvQ0FBa0IsQ0FBQyxnQkFBZ0I7UUFDNUMsV0FBVztRQUNYLE9BQU87UUFDUCxPQUFPLEVBQUUsT0FBTztLQUNqQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHNzbSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3NtJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBEYXRhZG9nT3JnYW5pemF0aW9uLCBnZXRPcmdhbml6YXRpb25VcmxQcmVmaXggfSBmcm9tICcuLi8uLi8uLi9kYXRhZG9nJztcbmltcG9ydCB7IERhdGFkb2dBbGVydFR5cGUsIERhdGFkb2dNb25pdG9yIH0gZnJvbSAnLi4vLi4vLi4vZGF0YWRvZy9kYXRhZG9nLW1vbml0b3InO1xuaW1wb3J0IHsgQ2xhaWRvbWV0ZXIsIENsYWlkb21ldGVyUHJvZHVjdCB9IGZyb20gJy4uLy4uLy4uL3Jpby1jbGFpZG9tZXRlcic7XG5cbmludGVyZmFjZSBVc2FnZVNwaWtlTW9uaXRvciB7XG4gIGh1bWFuUmVhZGFibGVOYW1lOiBzdHJpbmc7XG4gIHF1ZXJ5OiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxNZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFkb2dVc2FnZU1vbml0b3JpbmdQcm9wcyB7XG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFsZXJ0VHlwZTogRGF0YWRvZ0FsZXJ0VHlwZTtcbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uOiBEYXRhZG9nT3JnYW5pemF0aW9uO1xufVxuXG4vKipcbiAqIFRoaXMgaXMgYSBiZXRhIGNvbnN0cnVjdCBhbmQgaXMgbGlrZWx5IHRvIGhhdmUgYnJlYWtpbmcgY2hhbmdlcy5cbiAqIFRoZSBjb25zdHJ1Y3QgY3JlYXRlcyBtb25pdG9yaW5nIChiYXNlZCBvbiBhbm9tYWx5IGRldGVjdGlvbikgZm9yIHRoZSB1c2FnZSBvZiB0aGUgbW9zdCByZWxldmFudCBEYXRhZG9nIHJlc291cmNlc1xuICovXG5leHBvcnQgY2xhc3MgRGF0YWRvZ1VzYWdlTW9uaXRvcmluZyBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWRvZ1VzYWdlTW9uaXRvcmluZ1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHRlYW1OYW1lID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZSh0aGlzLCAnVGVhbU5hbWUnLCAnL2NvbmZpZy90ZWFtL25hbWUnKS5zdHJpbmdWYWx1ZTtcblxuICAgIGNvbnN0IGluZnJhc3RydWN0dXJlVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ2luZnJhc3RydWN0dXJlIGhvc3RzJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuaG9zdHN7Kn0nLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6IFwiaW5mcmFzdHJ1Y3R1cmUgaG9zdHMgZm9yICd7e2NoaWxkX29yZ19uYW1lLm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuaG9zdHN7Kn0gYnkge2NoaWxkX29yZ19uYW1lfScsXG4gICAgICB9LFxuICAgICAgeyBodW1hblJlYWRhYmxlTmFtZTogJ0ZhcmdhdGUgdGFza3MnLCBxdWVyeTogJ3N1bTpkYXRhZG9nLmFwbS5mYXJnYXRlX3Rhc2tfaW5zdGFuY2V7Kn0nIH0sXG4gICAgICB7IGh1bWFuUmVhZGFibGVOYW1lOiAncHJvZmlsZWQgRmFyZ2F0ZSB0YXNrcycsIHF1ZXJ5OiAnc3VtOmRhdGFkb2cucHJvZmlsaW5nLmZhcmdhdGV7Kn0nIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnY3VzdG9tIG1ldHJpY3MnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5tZXRyaWNzLmN1c3RvbXsqfScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJjdXN0b20gbWV0cmljcyBmb3IgJ3t7Y2hpbGRfb3JnX25hbWUubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5tZXRyaWNzLmN1c3RvbXsqfSBieSB7Y2hpbGRfb3JnX25hbWV9JyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMgPSBgVGFrZSBhIGxvb2sgYXQgaHR0cHM6Ly8ke2dldE9yZ2FuaXphdGlvblVybFByZWZpeChcbiAgICAgIHByb3BzLm9yZ2FuaXphdGlvbixcbiAgICApfS5kYXRhZG9naHEuZXUvZGFzaC9pbnRlZ3JhdGlvbi80NjUvbG9nLW1hbmFnZW1lbnQtZXN0aW1hdGVkLXVzYWdlIGZvciBtb3JlIGRldGFpbHMuYDtcbiAgICBjb25zdCBhZGRpdGlvbmFsTWVzc2FnZUxvZ01hbmFnZW1lbnRGb3JMb2dJbmRleFNjb3BlZE1vbml0b3JzID0gYFRha2UgYSBsb29rIGF0IGh0dHBzOi8vJHtnZXRPcmdhbml6YXRpb25VcmxQcmVmaXgoXG4gICAgICBwcm9wcy5vcmdhbml6YXRpb24sXG4gICAgKX0uZGF0YWRvZ2hxLmV1L2Rhc2gvaW50ZWdyYXRpb24vNDY1L2xvZy1tYW5hZ2VtZW50LWVzdGltYXRlZC11c2FnZT90cGxfdmFyX2RhdGFkb2dfaW5kZXg9e3tkYXRhZG9nX2luZGV4Lm5hbWV9fSBmb3IgbW9yZSBkZXRhaWxzLmA7XG4gICAgY29uc3QgbG9nTWFuYWdlbWVudFVzYWdlU3Bpa2VNb25pdG9yczogVXNhZ2VTcGlrZU1vbml0b3JbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdsb2cgaW5nZXN0aW9uJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UubG9ncy5pbmdlc3RlZF9ieXRlc3sqfS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJsb2cgaW5nZXN0aW9uIGZvciAne3tkYXRhZG9nX2luZGV4Lm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UubG9ncy5pbmdlc3RlZF9ieXRlc3sqfSBieSB7ZGF0YWRvZ19pbmRleH0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUxvZ01hbmFnZW1lbnRGb3JMb2dJbmRleFNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdsb2cgaW5kZXhpbmcnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5sb2dzLmluZ2VzdGVkX2V2ZW50c3tkYXRhZG9nX2lzX2V4Y2x1ZGVkOmZhbHNlfS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJsb2cgaW5kZXhpbmcgZm9yICd7e2RhdGFkb2dfaW5kZXgubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5sb2dzLmluZ2VzdGVkX2V2ZW50c3tkYXRhZG9nX2lzX2V4Y2x1ZGVkOmZhbHNlfSBieSB7ZGF0YWRvZ19pbmRleH0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUxvZ01hbmFnZW1lbnRGb3JMb2dJbmRleFNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JHbG9iYWxseVNjb3BlZE1vbml0b3JzID0gYFRha2UgYSBsb29rIGF0IGh0dHBzOi8vJHtnZXRPcmdhbml6YXRpb25VcmxQcmVmaXgoXG4gICAgICBwcm9wcy5vcmdhbml6YXRpb24sXG4gICAgKX0uZGF0YWRvZ2hxLmV1L2Rhc2gvaW50ZWdyYXRpb24vNDg5L2FwbS10cmFjZXMtZXN0aW1hdGVkLXVzYWdlIGZvciBtb3JlIGRldGFpbHMuYDtcbiAgICBjb25zdCBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckVudlNjb3BlZE1vbml0b3JzID0gYFRha2UgYSBsb29rIGF0IGh0dHBzOi8vJHtnZXRPcmdhbml6YXRpb25VcmxQcmVmaXgoXG4gICAgICBwcm9wcy5vcmdhbml6YXRpb24sXG4gICAgKX0uZGF0YWRvZ2hxLmV1L2Rhc2gvaW50ZWdyYXRpb24vNDg5L2FwbS10cmFjZXMtZXN0aW1hdGVkLXVzYWdlP3RwbF92YXJfZW52PXt7ZW52Lm5hbWV9fSBmb3IgbW9yZSBkZXRhaWxzLmA7XG4gICAgY29uc3QgYXBtVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAgeyBodW1hblJlYWRhYmxlTmFtZTogJ0FQTSBob3N0cycsIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbV9ob3N0c3sqfScgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6IFwiQVBNIGhvc3RzIGZvciAne3tjaGlsZF9vcmdfbmFtZS5uYW1lfX0nXCIsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbV9ob3N0c3sqfSBieSB7Y2hpbGRfb3JnX25hbWV9JyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlQXBtRm9yR2xvYmFsbHlTY29wZWRNb25pdG9ycyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnc3BhbiBpbmdlc3Rpb24nLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5hcG0uaW5nZXN0ZWRfYnl0ZXN7Kn0uYXNfY291bnQoKScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJzcGFuIGluZ2VzdGlvbiBmb3IgJ3t7ZW52Lm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtLmluZ2VzdGVkX2J5dGVzeyp9IGJ5IHtlbnZ9LmFzX2NvdW50KCknLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JFbnZTY29wZWRNb25pdG9ycyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnc3BhbiBpbmRleGluZycsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbS5pbmRleGVkX3NwYW5zeyp9LmFzX2NvdW50KCknLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JHbG9iYWxseVNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6IFwic3BhbiBpbmRleGluZyBmb3IgJ3t7ZW52Lm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtLmluZGV4ZWRfc3BhbnN7Kn0gYnkge2Vudn0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckVudlNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3Qgc3ludGhldGljVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ1N5bnRoZXRpYyBBUEkgdGVzdHMnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5zeW50aGV0aWNzLmFwaV90ZXN0X3J1bnN7Kn0uYXNfY291bnQoKScsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBzZXJ2ZXJsZXNzVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ3NlcnZlcmxlc3MgZnVuY3Rpb25zJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2Uuc2VydmVybGVzcy5hd3NfbGFtYmRhX2Z1bmN0aW9uc3sqfScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJzZXJ2ZXJsZXNzIGZ1bmN0aW9ucyBmb3IgJ3t7Y2hpbGRfb3JnX25hbWUubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5zZXJ2ZXJsZXNzLmF3c19sYW1iZGFfZnVuY3Rpb25zeyp9IGJ5IHtjaGlsZF9vcmdfbmFtZX0nLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgZm9yIChjb25zdCB1c2FnZVNwaWtlTW9uaXRvciBvZiAoW10gYXMgVXNhZ2VTcGlrZU1vbml0b3JbXSkuY29uY2F0KFxuICAgICAgaW5mcmFzdHJ1Y3R1cmVVc2FnZVNwaWtlTW9uaXRvcnMsXG4gICAgICBsb2dNYW5hZ2VtZW50VXNhZ2VTcGlrZU1vbml0b3JzLFxuICAgICAgYXBtVXNhZ2VTcGlrZU1vbml0b3JzLFxuICAgICAgc2VydmVybGVzc1VzYWdlU3Bpa2VNb25pdG9ycyxcbiAgICAgIHN5bnRoZXRpY1VzYWdlU3Bpa2VNb25pdG9ycyxcbiAgICApKSB7XG4gICAgICB0aGlzLmNyZWF0ZUFub21hbHlNb25pdG9yRm9yU3Bpa2VzKHByb3BzLnNlcnZpY2VOYW1lLCB0ZWFtTmFtZSwgcHJvcHMuYWxlcnRUeXBlLCB1c2FnZVNwaWtlTW9uaXRvcik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLm9yZ2FuaXphdGlvbiA9PT0gJ0VVJykge1xuICAgICAgYWRkQ2xhaWRvbWV0ZXIodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBbm9tYWx5TW9uaXRvckZvclNwaWtlcyhcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nLFxuICAgIHRlYW1OYW1lOiBzdHJpbmcsXG4gICAgYWxlcnRUeXBlOiBEYXRhZG9nQWxlcnRUeXBlLFxuICAgIHVzYWdlU3Bpa2VNb25pdG9yOiBVc2FnZVNwaWtlTW9uaXRvcixcbiAgKTogRGF0YWRvZ01vbml0b3Ige1xuICAgIHJldHVybiBuZXcgRGF0YWRvZ01vbml0b3IodGhpcywgdXNhZ2VTcGlrZU1vbml0b3IuaHVtYW5SZWFkYWJsZU5hbWUsIHtcbiAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgYWxlcnRUeXBlczogW2FsZXJ0VHlwZV0sXG4gICAgICBtb25pdG9yOiB7XG4gICAgICAgIG5hbWU6IGAke3VzYWdlU3Bpa2VNb25pdG9yLmh1bWFuUmVhZGFibGVOYW1lfSBzcGlrZWAsXG4gICAgICAgIHR5cGU6ICdxdWVyeSBhbGVydCcsXG4gICAgICAgIHF1ZXJ5OiBgYXZnKGxhc3RfMTJoKTphbm9tYWxpZXMoJHt1c2FnZVNwaWtlTW9uaXRvci5xdWVyeX0sICdhZ2lsZScsIDMsIGRpcmVjdGlvbj0nYWJvdmUnLCBpbnRlcnZhbD0xMjAsIGFsZXJ0X3dpbmRvdz0nbGFzdF8zMG0nLCBzZWFzb25hbGl0eT0nd2Vla2x5JywgdGltZXpvbmU9J2V1cm9wZS9iZXJsaW4nLCBjb3VudF9kZWZhdWx0X3plcm89J3RydWUnKSA+PSAxYCxcbiAgICAgICAgbWVzc2FnZTogYFtQNF0gJHt1c2FnZVNwaWtlTW9uaXRvci5odW1hblJlYWRhYmxlTmFtZX0gYXJlIGdldHRpbmcgb3V0LW9mLWNvbnRyb2wuICR7XG4gICAgICAgICAgdXNhZ2VTcGlrZU1vbml0b3IuYWRkaXRpb25hbE1lc3NhZ2UgPz8gJydcbiAgICAgICAgfWAsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBpbmNsdWRlX3RhZ3M6IGZhbHNlLFxuICAgICAgICAgIG5vdGlmeV9ub19kYXRhOiBmYWxzZSxcbiAgICAgICAgICB0aHJlc2hvbGRfd2luZG93czoge1xuICAgICAgICAgICAgdHJpZ2dlcl93aW5kb3c6ICdsYXN0XzMwbScsXG4gICAgICAgICAgICByZWNvdmVyeV93aW5kb3c6ICdsYXN0XzE1bScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdGFnczogW1xuICAgICAgICAgIGBzZXJ2aWNlOiR7c2VydmljZU5hbWV9YCxcbiAgICAgICAgICBgdGVhbToke3RlYW1OYW1lfWAsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFkZENsYWlkb21ldGVyKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCkge1xuICBjb25zdCBbZmVhdHVyZSwgcGFja2FnZU5hbWVdID0gX19kaXJuYW1lLnNwbGl0KHBhdGguc2VwKS5yZXZlcnNlKCk7XG4gIG5ldyBDbGFpZG9tZXRlcihzY29wZSwgJ0NsYWlkb21ldGVyJywge1xuICAgIHByb2R1Y3Q6IENsYWlkb21ldGVyUHJvZHVjdC5DREtfQ09OVFJJQlVUSU9OLFxuICAgIHBhY2thZ2VOYW1lLFxuICAgIGZlYXR1cmUsXG4gICAgdmVyc2lvbjogJzAuMC43JyxcbiAgfSk7XG59XG4iXX0=
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvdGVhbS1jbGFpZC9kYXRhZG9nLXVzYWdlLW1vbml0b3JpbmcvZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFDekMsOENBQWlGO0FBQ2pGLHNFQUFvRjtBQUNwRiw4REFBMkU7QUFjM0U7OztHQUdHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxVQUFVLENBQUMsU0FBUztJQUM5RCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQWtDO1FBQ3JGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUMsV0FBVyxDQUFDO1FBRWhILE1BQU0sZ0NBQWdDLEdBQXdCO1lBQzVEO2dCQUNFLGlCQUFpQixFQUFFLHNCQUFzQjtnQkFDekMsS0FBSyxFQUFFLHNDQUFzQzthQUM5QztZQUNEO2dCQUNFLGlCQUFpQixFQUFFLG9EQUFvRDtnQkFDdkUsS0FBSyxFQUFFLDBEQUEwRDthQUNsRTtZQUNELEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSwwQ0FBMEMsRUFBRTtZQUN6RixFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLEtBQUssRUFBRSxrQ0FBa0MsRUFBRTtZQUMxRjtnQkFDRSxpQkFBaUIsRUFBRSxnQkFBZ0I7Z0JBQ25DLEtBQUssRUFBRSwrQ0FBK0M7YUFDdkQ7WUFDRDtnQkFDRSxpQkFBaUIsRUFBRSw4Q0FBOEM7Z0JBQ2pFLEtBQUssRUFBRSxtRUFBbUU7YUFDM0U7U0FDRixDQUFDO1FBRUYs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bSAncGF0aCc7XG5pbXBvcnQgKiBhcyBzc20gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRGF0YWRvZ09yZ2FuaXphdGlvbiwgZ2V0T3JnYW5pemF0aW9uVXJsUHJlZml4IH0gZnJvbSAnLi4vLi4vLi4vZGF0YWRvZyc7XG5pbXBvcnQgeyBEYXRhZG9nQWxlcnRUeXBlLCBEYXRhZG9nTW9uaXRvciB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2cvZGF0YWRvZy1tb25pdG9yJztcbmltcG9ydCB7IENsYWlkb21ldGVyLCBDbGFpZG9tZXRlclByb2R1Y3QgfSBmcm9tICcuLi8uLi8uLi9yaW8tY2xhaWRvbWV0ZXInO1xuXG5pbnRlcmZhY2UgVXNhZ2VTcGlrZU1vbml0b3Ige1xuICBodW1hblJlYWRhYmxlTmFtZTogc3RyaW5nO1xuICBxdWVyeTogc3RyaW5nO1xuICBhZGRpdGlvbmFsTWVzc2FnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nVXNhZ2VNb25pdG9yaW5nUHJvcHMge1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBhbGVydFR5cGU/OiBEYXRhZG9nQWxlcnRUeXBlO1xuICByZWFkb25seSBvcmdhbml6YXRpb246IERhdGFkb2dPcmdhbml6YXRpb247XG59XG5cbi8qKlxuICogVGhpcyBpcyBhIGJldGEgY29uc3RydWN0IGFuZCBpcyBsaWtlbHkgdG8gaGF2ZSBicmVha2luZyBjaGFuZ2VzLlxuICogVGhlIGNvbnN0cnVjdCBjcmVhdGVzIG1vbml0b3JpbmcgKGJhc2VkIG9uIGFub21hbHkgZGV0ZWN0aW9uKSBmb3IgdGhlIHVzYWdlIG9mIHRoZSBtb3N0IHJlbGV2YW50IERhdGFkb2cgcmVzb3VyY2VzXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhZG9nVXNhZ2VNb25pdG9yaW5nIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nVXNhZ2VNb25pdG9yaW5nUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgdGVhbU5hbWUgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHRoaXMsICdUZWFtTmFtZScsICcvY29uZmlnL3RlYW0vbmFtZScpLnN0cmluZ1ZhbHVlO1xuXG4gICAgY29uc3QgaW5mcmFzdHJ1Y3R1cmVVc2FnZVNwaWtlTW9uaXRvcnM6IFVzYWdlU3Bpa2VNb25pdG9yW10gPSBbXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnaW5mcmFzdHJ1Y3R1cmUgaG9zdHMnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5ob3N0c3sqfScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJpbmZyYXN0cnVjdHVyZSBob3N0cyBmb3IgJ3t7Y2hpbGRfb3JnX25hbWUubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5ob3N0c3sqfSBieSB7Y2hpbGRfb3JnX25hbWV9JyxcbiAgICAgIH0sXG4gICAgICB7IGh1bWFuUmVhZGFibGVOYW1lOiAnRmFyZ2F0ZSB0YXNrcycsIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuYXBtLmZhcmdhdGVfdGFza19pbnN0YW5jZXsqfScgfSxcbiAgICAgIHsgaHVtYW5SZWFkYWJsZU5hbWU6ICdwcm9maWxlZCBGYXJnYXRlIHRhc2tzJywgcXVlcnk6ICdzdW06ZGF0YWRvZy5wcm9maWxpbmcuZmFyZ2F0ZXsqfScgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdjdXN0b20gbWV0cmljcycsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLm1ldHJpY3MuY3VzdG9teyp9JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiBcImN1c3RvbSBtZXRyaWNzIGZvciAne3tjaGlsZF9vcmdfbmFtZS5uYW1lfX0nXCIsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLm1ldHJpY3MuY3VzdG9teyp9IGJ5IHtjaGlsZF9vcmdfbmFtZX0nLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgYWRkaXRpb25hbE1lc3NhZ2VMb2dNYW5hZ2VtZW50Rm9yR2xvYmFsbHlTY29wZWRNb25pdG9ycyA9IGBUYWtlIGEgbG9vayBhdCBodHRwczovLyR7Z2V0T3JnYW5pemF0aW9uVXJsUHJlZml4KFxuICAgICAgcHJvcHMub3JnYW5pemF0aW9uLFxuICAgICl9LmRhdGFkb2docS5ldS9kYXNoL2ludGVncmF0aW9uLzQ2NS9sb2ctbWFuYWdlbWVudC1lc3RpbWF0ZWQtdXNhZ2UgZm9yIG1vcmUgZGV0YWlscy5gO1xuICAgIGNvbnN0IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckxvZ0luZGV4U2NvcGVkTW9uaXRvcnMgPSBgVGFrZSBhIGxvb2sgYXQgaHR0cHM6Ly8ke2dldE9yZ2FuaXphdGlvblVybFByZWZpeChcbiAgICAgIHByb3BzLm9yZ2FuaXphdGlvbixcbiAgICApfS5kYXRhZG9naHEuZXUvZGFzaC9pbnRlZ3JhdGlvbi80NjUvbG9nLW1hbmFnZW1lbnQtZXN0aW1hdGVkLXVzYWdlP3RwbF92YXJfZGF0YWRvZ19pbmRleD17e2RhdGFkb2dfaW5kZXgubmFtZX19IGZvciBtb3JlIGRldGFpbHMuYDtcbiAgICBjb25zdCBsb2dNYW5hZ2VtZW50VXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ2xvZyBpbmdlc3Rpb24nLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5sb2dzLmluZ2VzdGVkX2J5dGVzeyp9LmFzX2NvdW50KCknLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VMb2dNYW5hZ2VtZW50Rm9yR2xvYmFsbHlTY29wZWRNb25pdG9ycyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiBcImxvZyBpbmdlc3Rpb24gZm9yICd7e2RhdGFkb2dfaW5kZXgubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5sb2dzLmluZ2VzdGVkX2J5dGVzeyp9IGJ5IHtkYXRhZG9nX2luZGV4fS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckxvZ0luZGV4U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ2xvZyBpbmRleGluZycsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmxvZ3MuaW5nZXN0ZWRfZXZlbnRze2RhdGFkb2dfaXNfZXhjbHVkZWQ6ZmFsc2V9LmFzX2NvdW50KCknLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VMb2dNYW5hZ2VtZW50Rm9yR2xvYmFsbHlTY29wZWRNb25pdG9ycyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiBcImxvZyBpbmRleGluZyBmb3IgJ3t7ZGF0YWRvZ19pbmRleC5uYW1lfX0nXCIsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmxvZ3MuaW5nZXN0ZWRfZXZlbnRze2RhdGFkb2dfaXNfZXhjbHVkZWQ6ZmFsc2V9IGJ5IHtkYXRhZG9nX2luZGV4fS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckxvZ0luZGV4U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMgPSBgVGFrZSBhIGxvb2sgYXQgaHR0cHM6Ly8ke2dldE9yZ2FuaXphdGlvblVybFByZWZpeChcbiAgICAgIHByb3BzLm9yZ2FuaXphdGlvbixcbiAgICApfS5kYXRhZG9naHEuZXUvZGFzaC9pbnRlZ3JhdGlvbi80ODkvYXBtLXRyYWNlcy1lc3RpbWF0ZWQtdXNhZ2UgZm9yIG1vcmUgZGV0YWlscy5gO1xuICAgIGNvbnN0IGFkZGl0aW9uYWxNZXNzYWdlQXBtRm9yRW52U2NvcGVkTW9uaXRvcnMgPSBgVGFrZSBhIGxvb2sgYXQgaHR0cHM6Ly8ke2dldE9yZ2FuaXphdGlvblVybFByZWZpeChcbiAgICAgIHByb3BzLm9yZ2FuaXphdGlvbixcbiAgICApfS5kYXRhZG9naHEuZXUvZGFzaC9pbnRlZ3JhdGlvbi80ODkvYXBtLXRyYWNlcy1lc3RpbWF0ZWQtdXNhZ2U/dHBsX3Zhcl9lbnY9e3tlbnYubmFtZX19IGZvciBtb3JlIGRldGFpbHMuYDtcbiAgICBjb25zdCBhcG1Vc2FnZVNwaWtlTW9uaXRvcnM6IFVzYWdlU3Bpa2VNb25pdG9yW10gPSBbXG4gICAgICB7IGh1bWFuUmVhZGFibGVOYW1lOiAnQVBNIGhvc3RzJywgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtX2hvc3Rzeyp9JyB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJBUE0gaG9zdHMgZm9yICd7e2NoaWxkX29yZ19uYW1lLm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtX2hvc3Rzeyp9IGJ5IHtjaGlsZF9vcmdfbmFtZX0nLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JHbG9iYWxseVNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdzcGFuIGluZ2VzdGlvbicsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbS5pbmdlc3RlZF9ieXRlc3sqfS5hc19jb3VudCgpJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiBcInNwYW4gaW5nZXN0aW9uIGZvciAne3tlbnYubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5hcG0uaW5nZXN0ZWRfYnl0ZXN7Kn0gYnkge2Vudn0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckVudlNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdzcGFuIGluZGV4aW5nJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtLmluZGV4ZWRfc3BhbnN7Kn0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJzcGFuIGluZGV4aW5nIGZvciAne3tlbnYubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5hcG0uaW5kZXhlZF9zcGFuc3sqfSBieSB7ZW52fS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlQXBtRm9yRW52U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBzeW50aGV0aWNVc2FnZVNwaWtlTW9uaXRvcnM6IFVzYWdlU3Bpa2VNb25pdG9yW10gPSBbXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnU3ludGhldGljIEFQSSB0ZXN0cycsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLnN5bnRoZXRpY3MuYXBpX3Rlc3RfcnVuc3sqfS5hc19jb3VudCgpJyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IHNlcnZlcmxlc3NVc2FnZVNwaWtlTW9uaXRvcnM6IFVzYWdlU3Bpa2VNb25pdG9yW10gPSBbXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnc2VydmVybGVzcyBmdW5jdGlvbnMnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5zZXJ2ZXJsZXNzLmF3c19sYW1iZGFfZnVuY3Rpb25zeyp9JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiBcInNlcnZlcmxlc3MgZnVuY3Rpb25zIGZvciAne3tjaGlsZF9vcmdfbmFtZS5uYW1lfX0nXCIsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLnNlcnZlcmxlc3MuYXdzX2xhbWJkYV9mdW5jdGlvbnN7Kn0gYnkge2NoaWxkX29yZ19uYW1lfScsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IHVzYWdlU3Bpa2VNb25pdG9yIG9mIChbXSBhcyBVc2FnZVNwaWtlTW9uaXRvcltdKS5jb25jYXQoXG4gICAgICBpbmZyYXN0cnVjdHVyZVVzYWdlU3Bpa2VNb25pdG9ycyxcbiAgICAgIGxvZ01hbmFnZW1lbnRVc2FnZVNwaWtlTW9uaXRvcnMsXG4gICAgICBhcG1Vc2FnZVNwaWtlTW9uaXRvcnMsXG4gICAgICBzZXJ2ZXJsZXNzVXNhZ2VTcGlrZU1vbml0b3JzLFxuICAgICAgc3ludGhldGljVXNhZ2VTcGlrZU1vbml0b3JzLFxuICAgICkpIHtcbiAgICAgIHRoaXMuY3JlYXRlQW5vbWFseU1vbml0b3JGb3JTcGlrZXMocHJvcHMuc2VydmljZU5hbWUsIHRlYW1OYW1lLCB1c2FnZVNwaWtlTW9uaXRvciwgcHJvcHMuYWxlcnRUeXBlKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMub3JnYW5pemF0aW9uID09PSAnRVUnKSB7XG4gICAgICBhZGRDbGFpZG9tZXRlcih0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUFub21hbHlNb25pdG9yRm9yU3Bpa2VzKFxuICAgIHNlcnZpY2VOYW1lOiBzdHJpbmcsXG4gICAgdGVhbU5hbWU6IHN0cmluZyxcbiAgICB1c2FnZVNwaWtlTW9uaXRvcjogVXNhZ2VTcGlrZU1vbml0b3IsXG4gICAgYWxlcnRUeXBlPzogRGF0YWRvZ0FsZXJ0VHlwZSxcbiAgKTogRGF0YWRvZ01vbml0b3Ige1xuICAgIHJldHVybiBuZXcgRGF0YWRvZ01vbml0b3IodGhpcywgdXNhZ2VTcGlrZU1vbml0b3IuaHVtYW5SZWFkYWJsZU5hbWUsIHtcbiAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgYWxlcnRUeXBlczogYWxlcnRUeXBlID8gW2FsZXJ0VHlwZV0gOiB1bmRlZmluZWQsXG4gICAgICBtb25pdG9yOiB7XG4gICAgICAgIG5hbWU6IGAke3VzYWdlU3Bpa2VNb25pdG9yLmh1bWFuUmVhZGFibGVOYW1lfSBzcGlrZWAsXG4gICAgICAgIHR5cGU6ICdxdWVyeSBhbGVydCcsXG4gICAgICAgIHF1ZXJ5OiBgYXZnKGxhc3RfMTJoKTphbm9tYWxpZXMoJHt1c2FnZVNwaWtlTW9uaXRvci5xdWVyeX0sICdhZ2lsZScsIDMsIGRpcmVjdGlvbj0nYWJvdmUnLCBpbnRlcnZhbD0xMjAsIGFsZXJ0X3dpbmRvdz0nbGFzdF8zMG0nLCBzZWFzb25hbGl0eT0nd2Vla2x5JywgdGltZXpvbmU9J2V1cm9wZS9iZXJsaW4nLCBjb3VudF9kZWZhdWx0X3plcm89J3RydWUnKSA+PSAxYCxcbiAgICAgICAgbWVzc2FnZTogYFtQNF0gJHt1c2FnZVNwaWtlTW9uaXRvci5odW1hblJlYWRhYmxlTmFtZX0gYXJlIGdldHRpbmcgb3V0LW9mLWNvbnRyb2wuICR7XG4gICAgICAgICAgdXNhZ2VTcGlrZU1vbml0b3IuYWRkaXRpb25hbE1lc3NhZ2UgPz8gJydcbiAgICAgICAgfWAsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBpbmNsdWRlX3RhZ3M6IGZhbHNlLFxuICAgICAgICAgIG5vdGlmeV9ub19kYXRhOiBmYWxzZSxcbiAgICAgICAgICB0aHJlc2hvbGRfd2luZG93czoge1xuICAgICAgICAgICAgdHJpZ2dlcl93aW5kb3c6ICdsYXN0XzMwbScsXG4gICAgICAgICAgICByZWNvdmVyeV93aW5kb3c6ICdsYXN0XzE1bScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdGFnczogW1xuICAgICAgICAgIGBzZXJ2aWNlOiR7c2VydmljZU5hbWV9YCxcbiAgICAgICAgICBgdGVhbToke3RlYW1OYW1lfWAsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFkZENsYWlkb21ldGVyKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCkge1xuICBjb25zdCBbZmVhdHVyZSwgcGFja2FnZU5hbWVdID0gX19kaXJuYW1lLnNwbGl0KHBhdGguc2VwKS5yZXZlcnNlKCk7XG4gIG5ldyBDbGFpZG9tZXRlcihzY29wZSwgJ0NsYWlkb21ldGVyJywge1xuICAgIHByb2R1Y3Q6IENsYWlkb21ldGVyUHJvZHVjdC5DREtfQ09OVFJJQlVUSU9OLFxuICAgIHBhY2thZ2VOYW1lLFxuICAgIGZlYXR1cmUsXG4gICAgdmVyc2lvbjogJzAuMC44JyxcbiAgfSk7XG59XG4iXX0=
|
package/lib/kafka/index.d.ts
CHANGED
package/lib/kafka/index.js
CHANGED
|
@@ -12,4 +12,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./kafka-topic"), exports);
|
|
14
14
|
__exportStar(require("./kafka-event-spec"), exports);
|
|
15
|
-
|
|
15
|
+
__exportStar(require("./rio-kafka-event-source"), exports);
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2Fma2EvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLHFEQUFtQztBQUNuQywyREFBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2thZmthLXRvcGljJztcbmV4cG9ydCAqIGZyb20gJy4va2Fma2EtZXZlbnQtc3BlYyc7XG5leHBvcnQgKiBmcm9tICcuL3Jpby1rYWZrYS1ldmVudC1zb3VyY2UnO1xuIl19
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
2
|
+
import * as lambdaEventSource from 'aws-cdk-lib/aws-lambda-event-sources';
|
|
3
|
+
import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
|
|
4
|
+
/**
|
|
5
|
+
* Properties for RioKafkaEventSource
|
|
6
|
+
*/
|
|
7
|
+
export interface RioKafkaEventSourceProps extends lambdaEventSource.BaseStreamEventSourceProps {
|
|
8
|
+
/**
|
|
9
|
+
* The Kafka topic to subscribe to
|
|
10
|
+
*/
|
|
11
|
+
readonly topic: string;
|
|
12
|
+
/**
|
|
13
|
+
* The secret with the Kafka credentials, see https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html for details.
|
|
14
|
+
*
|
|
15
|
+
* You can use the `create-and-sign-certificate` script from the `kafka-integration` to create a suitable AWS Secrets Manager secret.
|
|
16
|
+
* Simply add the `--fqdn <fqdn> --lambda` parameters to the `create-and-sign-certificate` script and the script generates a secret named `kafka-integration/msk-certificate/<fqdn>` with all relevant data.
|
|
17
|
+
*
|
|
18
|
+
* Please note that we do only support the `--lambda` parameter if the `--fqdn` parameter is present.
|
|
19
|
+
* We encourage you to use the `--fqdn` parameter for all your Kafka consumers and producers as this eases the recovery process in the case of a disaster.
|
|
20
|
+
* (Otherwise, i.e., if you do not use the `--fqdn` parameter, your certificates CNAME contains the AWS account ID and you need to change all ACLs in case of a corrupted AWS account.)
|
|
21
|
+
*/
|
|
22
|
+
readonly secret: secretsmanager.ISecret;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Use the Rio Kafka as a streaming source for AWS Lambda.
|
|
26
|
+
*
|
|
27
|
+
* ```
|
|
28
|
+
* const lambda = new nodejs.NodejsFunction(this, 'KafkaConsumerFunction', {
|
|
29
|
+
* entry: 'path.to.handler.ts',
|
|
30
|
+
* handler: 'handlerName',
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* const secret = Secret.fromSecretNameV2(this, 'ConsumerSecret', 'kafka-integration/msk-certificate/<FQDN>')
|
|
34
|
+
*
|
|
35
|
+
* lambda.addEventSource(new RioKafkaEventSource({
|
|
36
|
+
* secret,
|
|
37
|
+
* topic: '<TOPIC/NAME>',
|
|
38
|
+
* startingPosition: StartingPosition.TRIM_HORIZON,
|
|
39
|
+
* }));
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare class RioKafkaEventSource implements lambda.IEventSource {
|
|
43
|
+
private props;
|
|
44
|
+
constructor(props: RioKafkaEventSourceProps);
|
|
45
|
+
bind(target: lambda.IFunction): void;
|
|
46
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.RioKafkaEventSource = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const cdk = require("aws-cdk-lib");
|
|
7
|
+
const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
8
|
+
const iam = require("aws-cdk-lib/aws-iam");
|
|
9
|
+
const lambdaEventSource = require("aws-cdk-lib/aws-lambda-event-sources");
|
|
10
|
+
const ssm = require("aws-cdk-lib/aws-ssm");
|
|
11
|
+
const rio = require("../rio-landing-zone");
|
|
12
|
+
/**
|
|
13
|
+
* Use the Rio Kafka as a streaming source for AWS Lambda.
|
|
14
|
+
*
|
|
15
|
+
* ```
|
|
16
|
+
* const lambda = new nodejs.NodejsFunction(this, 'KafkaConsumerFunction', {
|
|
17
|
+
* entry: 'path.to.handler.ts',
|
|
18
|
+
* handler: 'handlerName',
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* const secret = Secret.fromSecretNameV2(this, 'ConsumerSecret', 'kafka-integration/msk-certificate/<FQDN>')
|
|
22
|
+
*
|
|
23
|
+
* lambda.addEventSource(new RioKafkaEventSource({
|
|
24
|
+
* secret,
|
|
25
|
+
* topic: '<TOPIC/NAME>',
|
|
26
|
+
* startingPosition: StartingPosition.TRIM_HORIZON,
|
|
27
|
+
* }));
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
class RioKafkaEventSource {
|
|
31
|
+
constructor(props) {
|
|
32
|
+
this.props = props;
|
|
33
|
+
}
|
|
34
|
+
bind(target) {
|
|
35
|
+
const bootstrapServersParameter = ssm.StringParameter.fromStringParameterName(target, 'BootstrapServersParameter', '/config/kafka-integration/bootstrap-server');
|
|
36
|
+
const vpc = rio.RioLandingZone.getDefaultVpc(target);
|
|
37
|
+
const securityGroup = new ec2.SecurityGroup(target, 'LambdaSecurityGroup', { vpc });
|
|
38
|
+
const delegate = new lambdaEventSource.SelfManagedKafkaEventSource({
|
|
39
|
+
bootstrapServers: cdk.Fn.split(',', bootstrapServersParameter.stringValue),
|
|
40
|
+
...this.props,
|
|
41
|
+
vpc,
|
|
42
|
+
vpcSubnets: {
|
|
43
|
+
subnets: vpc.privateSubnets,
|
|
44
|
+
},
|
|
45
|
+
securityGroup,
|
|
46
|
+
authenticationMethod: lambdaEventSource.AuthenticationMethod.CLIENT_CERTIFICATE_TLS_AUTH,
|
|
47
|
+
});
|
|
48
|
+
delegate.bind(target);
|
|
49
|
+
this.props.secret.grantRead(target);
|
|
50
|
+
bootstrapServersParameter.grantRead(target);
|
|
51
|
+
const policy = iam.ManagedPolicy.fromManagedPolicyArn(target, 'ManagedAWSLambdaMSKExecutionRole', 'arn:aws:iam::aws:policy/service-role/AWSLambdaMSKExecutionRole');
|
|
52
|
+
target.role.addManagedPolicy(policy);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.RioKafkaEventSource = RioKafkaEventSource;
|
|
56
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
57
|
+
RioKafkaEventSource[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.RioKafkaEventSource", version: "0.0.0" };
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWthZmthLWV2ZW50LXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rYWZrYS9yaW8ta2Fma2EtZXZlbnQtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFFM0MsMEVBQTBFO0FBRTFFLDJDQUEyQztBQUUzQywyQ0FBMkM7QUF1QjNDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQWEsbUJBQW1CO0lBRTlCLFlBQW9CLEtBQStCO1FBQS9CLFVBQUssR0FBTCxLQUFLLENBQTBCO0lBQ25ELENBQUM7SUFFRCxJQUFJLENBQUMsTUFBd0I7UUFDM0IsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSwyQkFBMkIsRUFBRSw0Q0FBNEMsQ0FBQyxDQUFDO1FBRWpLLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXBGLE1BQU0sUUFBUSxHQUFHLElBQUksaUJBQWlCLENBQUMsMkJBQTJCLENBQUM7WUFDakUsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDLFdBQVcsQ0FBQztZQUMxRSxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsR0FBRztZQUNILFVBQVUsRUFBRTtnQkFDVixPQUFPLEVBQUUsR0FBRyxDQUFDLGNBQWM7YUFDNUI7WUFDRCxhQUFhO1lBQ2Isb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsMkJBQTJCO1NBQ3pGLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxrQ0FBa0MsRUFBRSxnRUFBZ0UsQ0FBQyxDQUFDO1FBQ3BLLE1BQU0sQ0FBQyxJQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7QUE3Qkgsa0RBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxhbWJkYUV2ZW50U291cmNlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEtZXZlbnQtc291cmNlcyc7XG5pbXBvcnQgKiBhcyBzZWNyZXRzbWFuYWdlciBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0ICogYXMgc3NtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuXG5pbXBvcnQgKiBhcyByaW8gZnJvbSAnLi4vcmlvLWxhbmRpbmctem9uZSc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgUmlvS2Fma2FFdmVudFNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJpb0thZmthRXZlbnRTb3VyY2VQcm9wcyBleHRlbmRzIGxhbWJkYUV2ZW50U291cmNlLkJhc2VTdHJlYW1FdmVudFNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBLYWZrYSB0b3BpYyB0byBzdWJzY3JpYmUgdG9cbiAgICovXG4gIHJlYWRvbmx5IHRvcGljOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IHdpdGggdGhlIEthZmthIGNyZWRlbnRpYWxzLCBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL21zay9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvbXNrLWF1dGhlbnRpY2F0aW9uLmh0bWwgZm9yIGRldGFpbHMuXG4gICAqXG4gICAqIFlvdSBjYW4gdXNlIHRoZSBgY3JlYXRlLWFuZC1zaWduLWNlcnRpZmljYXRlYCBzY3JpcHQgZnJvbSB0aGUgYGthZmthLWludGVncmF0aW9uYCB0byBjcmVhdGUgYSBzdWl0YWJsZSBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldC5cbiAgICogU2ltcGx5IGFkZCB0aGUgYC0tZnFkbiA8ZnFkbj4gLS1sYW1iZGFgIHBhcmFtZXRlcnMgdG8gdGhlIGBjcmVhdGUtYW5kLXNpZ24tY2VydGlmaWNhdGVgIHNjcmlwdCBhbmQgdGhlIHNjcmlwdCBnZW5lcmF0ZXMgYSBzZWNyZXQgbmFtZWQgYGthZmthLWludGVncmF0aW9uL21zay1jZXJ0aWZpY2F0ZS88ZnFkbj5gIHdpdGggYWxsIHJlbGV2YW50IGRhdGEuXG4gICAqXG4gICAqIFBsZWFzZSBub3RlIHRoYXQgd2UgZG8gb25seSBzdXBwb3J0IHRoZSBgLS1sYW1iZGFgIHBhcmFtZXRlciBpZiB0aGUgYC0tZnFkbmAgcGFyYW1ldGVyIGlzIHByZXNlbnQuXG4gICAqIFdlIGVuY291cmFnZSB5b3UgdG8gdXNlIHRoZSBgLS1mcWRuYCBwYXJhbWV0ZXIgZm9yIGFsbCB5b3VyIEthZmthIGNvbnN1bWVycyBhbmQgcHJvZHVjZXJzIGFzIHRoaXMgZWFzZXMgdGhlIHJlY292ZXJ5IHByb2Nlc3MgaW4gdGhlIGNhc2Ugb2YgYSBkaXNhc3Rlci5cbiAgICogKE90aGVyd2lzZSwgaS5lLiwgaWYgeW91IGRvIG5vdCB1c2UgdGhlIGAtLWZxZG5gIHBhcmFtZXRlciwgeW91ciBjZXJ0aWZpY2F0ZXMgQ05BTUUgY29udGFpbnMgdGhlIEFXUyBhY2NvdW50IElEIGFuZCB5b3UgbmVlZCB0byBjaGFuZ2UgYWxsIEFDTHMgaW4gY2FzZSBvZiBhIGNvcnJ1cHRlZCBBV1MgYWNjb3VudC4pXG4gICAqL1xuICByZWFkb25seSBzZWNyZXQ6IHNlY3JldHNtYW5hZ2VyLklTZWNyZXQ7XG59XG5cbi8qKlxuICogVXNlIHRoZSBSaW8gS2Fma2EgYXMgYSBzdHJlYW1pbmcgc291cmNlIGZvciBBV1MgTGFtYmRhLlxuICpcbiAqIGBgYFxuICogIGNvbnN0IGxhbWJkYSA9IG5ldyBub2RlanMuTm9kZWpzRnVuY3Rpb24odGhpcywgJ0thZmthQ29uc3VtZXJGdW5jdGlvbicsIHtcbiAqICAgICBlbnRyeTogJ3BhdGgudG8uaGFuZGxlci50cycsXG4gKiAgICAgaGFuZGxlcjogJ2hhbmRsZXJOYW1lJyxcbiAqICAgfSk7XG4gKlxuICogICBjb25zdCBzZWNyZXQgPSBTZWNyZXQuZnJvbVNlY3JldE5hbWVWMih0aGlzLCAnQ29uc3VtZXJTZWNyZXQnLCAna2Fma2EtaW50ZWdyYXRpb24vbXNrLWNlcnRpZmljYXRlLzxGUUROPicpXG4gKlxuICogICBsYW1iZGEuYWRkRXZlbnRTb3VyY2UobmV3IFJpb0thZmthRXZlbnRTb3VyY2Uoe1xuICogICAgIHNlY3JldCxcbiAqICAgICB0b3BpYzogJzxUT1BJQy9OQU1FPicsXG4gKiAgICAgc3RhcnRpbmdQb3NpdGlvbjogU3RhcnRpbmdQb3NpdGlvbi5UUklNX0hPUklaT04sXG4gKiAgIH0pKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgUmlvS2Fma2FFdmVudFNvdXJjZSBpbXBsZW1lbnRzIGxhbWJkYS5JRXZlbnRTb3VyY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJvcHM6IFJpb0thZmthRXZlbnRTb3VyY2VQcm9wcykge1xuICB9XG5cbiAgYmluZCh0YXJnZXQ6IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICBjb25zdCBib290c3RyYXBTZXJ2ZXJzUGFyYW1ldGVyID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZSh0YXJnZXQsICdCb290c3RyYXBTZXJ2ZXJzUGFyYW1ldGVyJywgJy9jb25maWcva2Fma2EtaW50ZWdyYXRpb24vYm9vdHN0cmFwLXNlcnZlcicpO1xuXG4gICAgY29uc3QgdnBjID0gcmlvLlJpb0xhbmRpbmdab25lLmdldERlZmF1bHRWcGModGFyZ2V0KTtcbiAgICBjb25zdCBzZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRhcmdldCwgJ0xhbWJkYVNlY3VyaXR5R3JvdXAnLCB7IHZwYyB9KTtcblxuICAgIGNvbnN0IGRlbGVnYXRlID0gbmV3IGxhbWJkYUV2ZW50U291cmNlLlNlbGZNYW5hZ2VkS2Fma2FFdmVudFNvdXJjZSh7XG4gICAgICBib290c3RyYXBTZXJ2ZXJzOiBjZGsuRm4uc3BsaXQoJywnLCBib290c3RyYXBTZXJ2ZXJzUGFyYW1ldGVyLnN0cmluZ1ZhbHVlKSxcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICB2cGMsXG4gICAgICB2cGNTdWJuZXRzOiB7XG4gICAgICAgIHN1Ym5ldHM6IHZwYy5wcml2YXRlU3VibmV0cyxcbiAgICAgIH0sXG4gICAgICBzZWN1cml0eUdyb3VwLFxuICAgICAgYXV0aGVudGljYXRpb25NZXRob2Q6IGxhbWJkYUV2ZW50U291cmNlLkF1dGhlbnRpY2F0aW9uTWV0aG9kLkNMSUVOVF9DRVJUSUZJQ0FURV9UTFNfQVVUSCxcbiAgICB9KTtcblxuICAgIGRlbGVnYXRlLmJpbmQodGFyZ2V0KTtcblxuICAgIHRoaXMucHJvcHMuc2VjcmV0LmdyYW50UmVhZCh0YXJnZXQpO1xuICAgIGJvb3RzdHJhcFNlcnZlcnNQYXJhbWV0ZXIuZ3JhbnRSZWFkKHRhcmdldCk7XG5cbiAgICBjb25zdCBwb2xpY3kgPSBpYW0uTWFuYWdlZFBvbGljeS5mcm9tTWFuYWdlZFBvbGljeUFybih0YXJnZXQsICdNYW5hZ2VkQVdTTGFtYmRhTVNLRXhlY3V0aW9uUm9sZScsICdhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQVdTTGFtYmRhTVNLRXhlY3V0aW9uUm9sZScpO1xuICAgIHRhcmdldC5yb2xlIS5hZGRNYW5hZ2VkUG9saWN5KHBvbGljeSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [2.0.1] - 2020-08-29
|
|
10
|
+
### Fixed
|
|
11
|
+
- Fix issue with `process.argv` when used with interpreters (`coffee`, `ts-node`, etc.), #150.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [2.0.0] - 2020-08-14
|
|
15
|
+
### Changed
|
|
16
|
+
- Full rewrite. Now port from python 3.9.0 & more precise following.
|
|
17
|
+
See [doc](./doc) for difference and migration info.
|
|
18
|
+
- node.js 10+ required
|
|
19
|
+
- Removed most of local docs in favour of original ones.
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [1.0.10] - 2018-02-15
|
|
23
|
+
### Fixed
|
|
24
|
+
- Use .concat instead of + for arrays, #122.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## [1.0.9] - 2016-09-29
|
|
28
|
+
### Changed
|
|
29
|
+
- Rerelease after 1.0.8 - deps cleanup.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## [1.0.8] - 2016-09-29
|
|
33
|
+
### Changed
|
|
34
|
+
- Maintenance (deps bump, fix node 6.5+ tests, coverage report).
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## [1.0.7] - 2016-03-17
|
|
38
|
+
### Changed
|
|
39
|
+
- Teach `addArgument` to accept string arg names. #97, @tomxtobin.
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## [1.0.6] - 2016-02-06
|
|
43
|
+
### Changed
|
|
44
|
+
- Maintenance: moved to eslint & updated CS.
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
## [1.0.5] - 2016-02-05
|
|
48
|
+
### Changed
|
|
49
|
+
- Removed lodash dependency to significantly reduce install size.
|
|
50
|
+
Thanks to @mourner.
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
## [1.0.4] - 2016-01-17
|
|
54
|
+
### Changed
|
|
55
|
+
- Maintenance: lodash update to 4.0.0.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## [1.0.3] - 2015-10-27
|
|
59
|
+
### Fixed
|
|
60
|
+
- Fix parse `=` in args: `--examplepath="C:\myfolder\env=x64"`. #84, @CatWithApple.
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
## [1.0.2] - 2015-03-22
|
|
64
|
+
### Changed
|
|
65
|
+
- Relaxed lodash version dependency.
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
## [1.0.1] - 2015-02-20
|
|
69
|
+
### Changed
|
|
70
|
+
- Changed dependencies to be compatible with ancient nodejs.
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
## [1.0.0] - 2015-02-19
|
|
74
|
+
### Changed
|
|
75
|
+
- Maintenance release.
|
|
76
|
+
- Replaced `underscore` with `lodash`.
|
|
77
|
+
- Bumped version to 1.0.0 to better reflect semver meaning.
|
|
78
|
+
- HISTORY.md -> CHANGELOG.md
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
## [0.1.16] - 2013-12-01
|
|
82
|
+
### Changed
|
|
83
|
+
- Maintenance release. Updated dependencies and docs.
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
## [0.1.15] - 2013-05-13
|
|
87
|
+
### Fixed
|
|
88
|
+
- Fixed #55, @trebor89
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
## [0.1.14] - 2013-05-12
|
|
92
|
+
### Fixed
|
|
93
|
+
- Fixed #62, @maxtaco
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
## [0.1.13] - 2013-04-08
|
|
97
|
+
### Changed
|
|
98
|
+
- Added `.npmignore` to reduce package size
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
## [0.1.12] - 2013-02-10
|
|
102
|
+
### Fixed
|
|
103
|
+
- Fixed conflictHandler (#46), @hpaulj
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## [0.1.11] - 2013-02-07
|
|
107
|
+
### Added
|
|
108
|
+
- Added 70+ tests (ported from python), @hpaulj
|
|
109
|
+
- Added conflictHandler, @applepicke
|
|
110
|
+
- Added fromfilePrefixChar, @hpaulj
|
|
111
|
+
|
|
112
|
+
### Fixed
|
|
113
|
+
- Multiple bugfixes, @hpaulj
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
## [0.1.10] - 2012-12-30
|
|
117
|
+
### Added
|
|
118
|
+
- Added [mutual exclusion](http://docs.python.org/dev/library/argparse.html#mutual-exclusion)
|
|
119
|
+
support, thanks to @hpaulj
|
|
120
|
+
|
|
121
|
+
### Fixed
|
|
122
|
+
- Fixed options check for `storeConst` & `appendConst` actions, thanks to @hpaulj
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
## [0.1.9] - 2012-12-27
|
|
126
|
+
### Fixed
|
|
127
|
+
- Fixed option dest interferens with other options (issue #23), thanks to @hpaulj
|
|
128
|
+
- Fixed default value behavior with `*` positionals, thanks to @hpaulj
|
|
129
|
+
- Improve `getDefault()` behavior, thanks to @hpaulj
|
|
130
|
+
- Improve negative argument parsing, thanks to @hpaulj
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
## [0.1.8] - 2012-12-01
|
|
134
|
+
### Fixed
|
|
135
|
+
- Fixed parser parents (issue #19), thanks to @hpaulj
|
|
136
|
+
- Fixed negative argument parse (issue #20), thanks to @hpaulj
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
## [0.1.7] - 2012-10-14
|
|
140
|
+
### Fixed
|
|
141
|
+
- Fixed 'choices' argument parse (issue #16)
|
|
142
|
+
- Fixed stderr output (issue #15)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
## [0.1.6] - 2012-09-09
|
|
146
|
+
### Fixed
|
|
147
|
+
- Fixed check for conflict of options (thanks to @tomxtobin)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
## [0.1.5] - 2012-09-03
|
|
151
|
+
### Fixed
|
|
152
|
+
- Fix parser #setDefaults method (thanks to @tomxtobin)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
## [0.1.4] - 2012-07-30
|
|
156
|
+
### Fixed
|
|
157
|
+
- Fixed pseudo-argument support (thanks to @CGamesPlay)
|
|
158
|
+
- Fixed addHelp default (should be true), if not set (thanks to @benblank)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
## [0.1.3] - 2012-06-27
|
|
162
|
+
### Fixed
|
|
163
|
+
- Fixed formatter api name: Formatter -> HelpFormatter
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
## [0.1.2] - 2012-05-29
|
|
167
|
+
### Fixed
|
|
168
|
+
- Removed excess whitespace in help
|
|
169
|
+
- Fixed error reporting, when parcer with subcommands
|
|
170
|
+
called with empty arguments
|
|
171
|
+
|
|
172
|
+
### Added
|
|
173
|
+
- Added basic tests
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
## [0.1.1] - 2012-05-23
|
|
177
|
+
### Fixed
|
|
178
|
+
- Fixed line wrapping in help formatter
|
|
179
|
+
- Added better error reporting on invalid arguments
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
## [0.1.0] - 2012-05-16
|
|
183
|
+
### Added
|
|
184
|
+
- First release.
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
[2.0.1]: https://github.com/nodeca/argparse/compare/2.0.0...2.0.1
|
|
188
|
+
[2.0.0]: https://github.com/nodeca/argparse/compare/1.0.10...2.0.0
|
|
189
|
+
[1.0.10]: https://github.com/nodeca/argparse/compare/1.0.9...1.0.10
|
|
190
|
+
[1.0.9]: https://github.com/nodeca/argparse/compare/1.0.8...1.0.9
|
|
191
|
+
[1.0.8]: https://github.com/nodeca/argparse/compare/1.0.7...1.0.8
|
|
192
|
+
[1.0.7]: https://github.com/nodeca/argparse/compare/1.0.6...1.0.7
|
|
193
|
+
[1.0.6]: https://github.com/nodeca/argparse/compare/1.0.5...1.0.6
|
|
194
|
+
[1.0.5]: https://github.com/nodeca/argparse/compare/1.0.4...1.0.5
|
|
195
|
+
[1.0.4]: https://github.com/nodeca/argparse/compare/1.0.3...1.0.4
|
|
196
|
+
[1.0.3]: https://github.com/nodeca/argparse/compare/1.0.2...1.0.3
|
|
197
|
+
[1.0.2]: https://github.com/nodeca/argparse/compare/1.0.1...1.0.2
|
|
198
|
+
[1.0.1]: https://github.com/nodeca/argparse/compare/1.0.0...1.0.1
|
|
199
|
+
[1.0.0]: https://github.com/nodeca/argparse/compare/0.1.16...1.0.0
|
|
200
|
+
[0.1.16]: https://github.com/nodeca/argparse/compare/0.1.15...0.1.16
|
|
201
|
+
[0.1.15]: https://github.com/nodeca/argparse/compare/0.1.14...0.1.15
|
|
202
|
+
[0.1.14]: https://github.com/nodeca/argparse/compare/0.1.13...0.1.14
|
|
203
|
+
[0.1.13]: https://github.com/nodeca/argparse/compare/0.1.12...0.1.13
|
|
204
|
+
[0.1.12]: https://github.com/nodeca/argparse/compare/0.1.11...0.1.12
|
|
205
|
+
[0.1.11]: https://github.com/nodeca/argparse/compare/0.1.10...0.1.11
|
|
206
|
+
[0.1.10]: https://github.com/nodeca/argparse/compare/0.1.9...0.1.10
|
|
207
|
+
[0.1.9]: https://github.com/nodeca/argparse/compare/0.1.8...0.1.9
|
|
208
|
+
[0.1.8]: https://github.com/nodeca/argparse/compare/0.1.7...0.1.8
|
|
209
|
+
[0.1.7]: https://github.com/nodeca/argparse/compare/0.1.6...0.1.7
|
|
210
|
+
[0.1.6]: https://github.com/nodeca/argparse/compare/0.1.5...0.1.6
|
|
211
|
+
[0.1.5]: https://github.com/nodeca/argparse/compare/0.1.4...0.1.5
|
|
212
|
+
[0.1.4]: https://github.com/nodeca/argparse/compare/0.1.3...0.1.4
|
|
213
|
+
[0.1.3]: https://github.com/nodeca/argparse/compare/0.1.2...0.1.3
|
|
214
|
+
[0.1.2]: https://github.com/nodeca/argparse/compare/0.1.1...0.1.2
|
|
215
|
+
[0.1.1]: https://github.com/nodeca/argparse/compare/0.1.0...0.1.1
|
|
216
|
+
[0.1.0]: https://github.com/nodeca/argparse/releases/tag/0.1.0
|
|
@@ -0,0 +1,616 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [4.1.0] - 2021-04-15
|
|
10
|
+
### Added
|
|
11
|
+
- Types are now exported as `yaml.types.XXX`.
|
|
12
|
+
- Every type now has `options` property with original arguments kept as they were
|
|
13
|
+
(see `yaml.types.int.options` as an example).
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
- `Schema.extend()` now keeps old type order in case of conflicts
|
|
17
|
+
(e.g. Schema.extend([ a, b, c ]).extend([ b, a, d ]) is now ordered as `abcd` instead of `cbad`).
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## [4.0.0] - 2021-01-03
|
|
21
|
+
### Changed
|
|
22
|
+
- Check [migration guide](migrate_v3_to_v4.md) to see details for all breaking changes.
|
|
23
|
+
- Breaking: "unsafe" tags `!!js/function`, `!!js/regexp`, `!!js/undefined` are
|
|
24
|
+
moved to [js-yaml-js-types](https://github.com/nodeca/js-yaml-js-types) package.
|
|
25
|
+
- Breaking: removed `safe*` functions. Use `load`, `loadAll`, `dump`
|
|
26
|
+
instead which are all now safe by default.
|
|
27
|
+
- `yaml.DEFAULT_SAFE_SCHEMA` and `yaml.DEFAULT_FULL_SCHEMA` are removed, use
|
|
28
|
+
`yaml.DEFAULT_SCHEMA` instead.
|
|
29
|
+
- `yaml.Schema.create(schema, tags)` is removed, use `schema.extend(tags)` instead.
|
|
30
|
+
- `!!binary` now always mapped to `Uint8Array` on load.
|
|
31
|
+
- Reduced nesting of `/lib` folder.
|
|
32
|
+
- Parse numbers according to YAML 1.2 instead of YAML 1.1 (`01234` is now decimal,
|
|
33
|
+
`0o1234` is octal, `1:23` is parsed as string instead of base60).
|
|
34
|
+
- `dump()` no longer quotes `:`, `[`, `]`, `(`, `)` except when necessary, #470, #557.
|
|
35
|
+
- Line and column in exceptions are now formatted as `(X:Y)` instead of
|
|
36
|
+
`at line X, column Y` (also present in compact format), #332.
|
|
37
|
+
- Code snippet created in exceptions now contains multiple lines with line numbers.
|
|
38
|
+
- `dump()` now serializes `undefined` as `null` in collections and removes keys with
|
|
39
|
+
`undefined` in mappings, #571.
|
|
40
|
+
- `dump()` with `skipInvalid=true` now serializes invalid items in collections as null.
|
|
41
|
+
- Custom tags starting with `!` are now dumped as `!tag` instead of `!<!tag>`, #576.
|
|
42
|
+
- Custom tags starting with `tag:yaml.org,2002:` are now shorthanded using `!!`, #258.
|
|
43
|
+
|
|
44
|
+
### Added
|
|
45
|
+
- Added `.mjs` (es modules) support.
|
|
46
|
+
- Added `quotingType` and `forceQuotes` options for dumper to configure
|
|
47
|
+
string literal style, #290, #529.
|
|
48
|
+
- Added `styles: { '!!null': 'empty' }` option for dumper
|
|
49
|
+
(serializes `{ foo: null }` as "`foo: `"), #570.
|
|
50
|
+
- Added `replacer` option (similar to option in JSON.stringify), #339.
|
|
51
|
+
- Custom `Tag` can now handle all tags or multiple tags with the same prefix, #385.
|
|
52
|
+
|
|
53
|
+
### Fixed
|
|
54
|
+
- Astral characters are no longer encoded by `dump()`, #587.
|
|
55
|
+
- "duplicate mapping key" exception now points at the correct column, #452.
|
|
56
|
+
- Extra commas in flow collections (e.g. `[foo,,bar]`) now throw an exception
|
|
57
|
+
instead of producing null, #321.
|
|
58
|
+
- `__proto__` key no longer overrides object prototype, #164.
|
|
59
|
+
- Removed `bower.json`.
|
|
60
|
+
- Tags are now url-decoded in `load()` and url-encoded in `dump()`
|
|
61
|
+
(previously usage of custom non-ascii tags may have led to invalid YAML that can't be parsed).
|
|
62
|
+
- Anchors now work correctly with empty nodes, #301.
|
|
63
|
+
- Fix incorrect parsing of invalid block mapping syntax, #418.
|
|
64
|
+
- Throw an error if block sequence/mapping indent contains a tab, #80.
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
## [3.14.1] - 2020-12-07
|
|
68
|
+
### Security
|
|
69
|
+
- Fix possible code execution in (already unsafe) `.load()` (in &anchor).
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
## [3.14.0] - 2020-05-22
|
|
73
|
+
### Changed
|
|
74
|
+
- Support `safe/loadAll(input, options)` variant of call.
|
|
75
|
+
- CI: drop outdated nodejs versions.
|
|
76
|
+
- Dev deps bump.
|
|
77
|
+
|
|
78
|
+
### Fixed
|
|
79
|
+
- Quote `=` in plain scalars #519.
|
|
80
|
+
- Check the node type for `!<?>` tag in case user manually specifies it.
|
|
81
|
+
- Verify that there are no null-bytes in input.
|
|
82
|
+
- Fix wrong quote position when writing condensed flow, #526.
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
## [3.13.1] - 2019-04-05
|
|
86
|
+
### Security
|
|
87
|
+
- Fix possible code execution in (already unsafe) `.load()`, #480.
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
## [3.13.0] - 2019-03-20
|
|
91
|
+
### Security
|
|
92
|
+
- Security fix: `safeLoad()` can hang when arrays with nested refs
|
|
93
|
+
used as key. Now throws exception for nested arrays. #475.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
## [3.12.2] - 2019-02-26
|
|
97
|
+
### Fixed
|
|
98
|
+
- Fix `noArrayIndent` option for root level, #468.
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
## [3.12.1] - 2019-01-05
|
|
102
|
+
### Added
|
|
103
|
+
- Added `noArrayIndent` option, #432.
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## [3.12.0] - 2018-06-02
|
|
107
|
+
### Changed
|
|
108
|
+
- Support arrow functions without a block statement, #421.
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
## [3.11.0] - 2018-03-05
|
|
112
|
+
### Added
|
|
113
|
+
- Add arrow functions suport for `!!js/function`.
|
|
114
|
+
|
|
115
|
+
### Fixed
|
|
116
|
+
- Fix dump in bin/octal/hex formats for negative integers, #399.
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
## [3.10.0] - 2017-09-10
|
|
120
|
+
### Fixed
|
|
121
|
+
- Fix `condenseFlow` output (quote keys for sure, instead of spaces), #371, #370.
|
|
122
|
+
- Dump astrals as codepoints instead of surrogate pair, #368.
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
## [3.9.1] - 2017-07-08
|
|
126
|
+
### Fixed
|
|
127
|
+
- Ensure stack is present for custom errors in node 7.+, #351.
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
## [3.9.0] - 2017-07-08
|
|
131
|
+
### Added
|
|
132
|
+
- Add `condenseFlow` option (to create pretty URL query params), #346.
|
|
133
|
+
|
|
134
|
+
### Fixed
|
|
135
|
+
- Support array return from safeLoadAll/loadAll, #350.
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
## [3.8.4] - 2017-05-08
|
|
139
|
+
### Fixed
|
|
140
|
+
- Dumper: prevent space after dash for arrays that wrap, #343.
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
## [3.8.3] - 2017-04-05
|
|
144
|
+
### Fixed
|
|
145
|
+
- Should not allow numbers to begin and end with underscore, #335.
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
## [3.8.2] - 2017-03-02
|
|
149
|
+
### Fixed
|
|
150
|
+
- Fix `!!float 123` (integers) parse, #333.
|
|
151
|
+
- Don't allow leading zeros in floats (except 0, 0.xxx).
|
|
152
|
+
- Allow positive exponent without sign in floats.
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
## [3.8.1] - 2017-02-07
|
|
156
|
+
### Changed
|
|
157
|
+
- Maintenance: update browserified build.
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
## [3.8.0] - 2017-02-07
|
|
161
|
+
### Fixed
|
|
162
|
+
- Fix reported position for `duplicated mapping key` errors.
|
|
163
|
+
Now points to block start instead of block end.
|
|
164
|
+
(#243, thanks to @shockey).
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
## [3.7.0] - 2016-11-12
|
|
168
|
+
### Added
|
|
169
|
+
- Support polymorphism for tags (#300, thanks to @monken).
|
|
170
|
+
|
|
171
|
+
### Fixed
|
|
172
|
+
- Fix parsing of quotes followed by newlines (#304, thanks to @dplepage).
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
## [3.6.1] - 2016-05-11
|
|
176
|
+
### Fixed
|
|
177
|
+
- Fix output cut on a pipe, #286.
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
## [3.6.0] - 2016-04-16
|
|
181
|
+
### Fixed
|
|
182
|
+
- Dumper rewrite, fix multiple bugs with trailing `\n`.
|
|
183
|
+
Big thanks to @aepsilon!
|
|
184
|
+
- Loader: fix leading/trailing newlines in block scalars, @aepsilon.
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
## [3.5.5] - 2016-03-17
|
|
188
|
+
### Fixed
|
|
189
|
+
- Date parse fix: don't allow dates with on digit in month and day, #268.
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
## [3.5.4] - 2016-03-09
|
|
193
|
+
### Added
|
|
194
|
+
- `noCompatMode` for dumper, to disable quoting YAML 1.1 values.
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
## [3.5.3] - 2016-02-11
|
|
198
|
+
### Changed
|
|
199
|
+
- Maintenance release.
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
## [3.5.2] - 2016-01-11
|
|
203
|
+
### Changed
|
|
204
|
+
- Maintenance: missed comma in bower config.
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
## [3.5.1] - 2016-01-11
|
|
208
|
+
### Changed
|
|
209
|
+
- Removed `inherit` dependency, #239.
|
|
210
|
+
- Better browserify workaround for esprima load.
|
|
211
|
+
- Demo rewrite.
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
## [3.5.0] - 2016-01-10
|
|
215
|
+
### Fixed
|
|
216
|
+
- Dumper. Fold strings only, #217.
|
|
217
|
+
- Dumper. `norefs` option, to clone linked objects, #229.
|
|
218
|
+
- Loader. Throw a warning for duplicate keys, #166.
|
|
219
|
+
- Improved browserify support (mark `esprima` & `Buffer` excluded).
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
## [3.4.6] - 2015-11-26
|
|
223
|
+
### Changed
|
|
224
|
+
- Use standalone `inherit` to keep browserified files clear.
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
## [3.4.5] - 2015-11-23
|
|
228
|
+
### Added
|
|
229
|
+
- Added `lineWidth` option to dumper.
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
## [3.4.4] - 2015-11-21
|
|
233
|
+
### Fixed
|
|
234
|
+
- Fixed floats dump (missed dot for scientific format), #220.
|
|
235
|
+
- Allow non-printable characters inside quoted scalars, #192.
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
## [3.4.3] - 2015-10-10
|
|
239
|
+
### Changed
|
|
240
|
+
- Maintenance release - deps bump (esprima, argparse).
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
## [3.4.2] - 2015-09-09
|
|
244
|
+
### Fixed
|
|
245
|
+
- Fixed serialization of duplicated entries in sequences, #205.
|
|
246
|
+
Thanks to @vogelsgesang.
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
## [3.4.1] - 2015-09-05
|
|
250
|
+
### Fixed
|
|
251
|
+
- Fixed stacktrace handling in generated errors, for browsers (FF/IE).
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
## [3.4.0] - 2015-08-23
|
|
255
|
+
### Changed
|
|
256
|
+
- Don't throw on warnings anymore. Use `onWarning` option to catch.
|
|
257
|
+
- Throw error on unknown tags (was warning before).
|
|
258
|
+
- Reworked internals of error class.
|
|
259
|
+
|
|
260
|
+
### Fixed
|
|
261
|
+
- Fixed multiline keys dump, #197. Thanks to @tcr.
|
|
262
|
+
- Fixed heading line breaks in some scalars (regression).
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
## [3.3.1] - 2015-05-13
|
|
266
|
+
### Added
|
|
267
|
+
- Added `.sortKeys` dumper option, thanks to @rjmunro.
|
|
268
|
+
|
|
269
|
+
### Fixed
|
|
270
|
+
- Fixed astral characters support, #191.
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
## [3.3.0] - 2015-04-26
|
|
274
|
+
### Changed
|
|
275
|
+
- Significantly improved long strings formatting in dumper, thanks to @isaacs.
|
|
276
|
+
- Strip BOM if exists.
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
## [3.2.7] - 2015-02-19
|
|
280
|
+
### Changed
|
|
281
|
+
- Maintenance release.
|
|
282
|
+
- Updated dependencies.
|
|
283
|
+
- HISTORY.md -> CHANGELOG.md
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
## [3.2.6] - 2015-02-07
|
|
287
|
+
### Fixed
|
|
288
|
+
- Fixed encoding of UTF-16 surrogate pairs. (e.g. "\U0001F431" CAT FACE).
|
|
289
|
+
- Fixed demo dates dump (#113, thanks to @Hypercubed).
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
## [3.2.5] - 2014-12-28
|
|
293
|
+
### Fixed
|
|
294
|
+
- Fixed resolving of all built-in types on empty nodes.
|
|
295
|
+
- Fixed invalid warning on empty lines within quoted scalars and flow collections.
|
|
296
|
+
- Fixed bug: Tag on an empty node didn't resolve in some cases.
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
## [3.2.4] - 2014-12-19
|
|
300
|
+
### Fixed
|
|
301
|
+
- Fixed resolving of !!null tag on an empty node.
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
## [3.2.3] - 2014-11-08
|
|
305
|
+
### Fixed
|
|
306
|
+
- Implemented dumping of objects with circular and cross references.
|
|
307
|
+
- Partially fixed aliasing of constructed objects. (see issue #141 for details)
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
## [3.2.2] - 2014-09-07
|
|
311
|
+
### Fixed
|
|
312
|
+
- Fixed infinite loop on unindented block scalars.
|
|
313
|
+
- Rewritten base64 encode/decode in binary type, to keep code licence clear.
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
## [3.2.1] - 2014-08-24
|
|
317
|
+
### Fixed
|
|
318
|
+
- Nothig new. Just fix npm publish error.
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
## [3.2.0] - 2014-08-24
|
|
322
|
+
### Added
|
|
323
|
+
- Added input piping support to CLI.
|
|
324
|
+
|
|
325
|
+
### Fixed
|
|
326
|
+
- Fixed typo, that could cause hand on initial indent (#139).
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
## [3.1.0] - 2014-07-07
|
|
330
|
+
### Changed
|
|
331
|
+
- 1.5x-2x speed boost.
|
|
332
|
+
- Removed deprecated `require('xxx.yml')` support.
|
|
333
|
+
- Significant code cleanup and refactoring.
|
|
334
|
+
- Internal API changed. If you used custom types - see updated examples.
|
|
335
|
+
Others are not affected.
|
|
336
|
+
- Even if the input string has no trailing line break character,
|
|
337
|
+
it will be parsed as if it has one.
|
|
338
|
+
- Added benchmark scripts.
|
|
339
|
+
- Moved bower files to /dist folder
|
|
340
|
+
- Bugfixes.
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
## [3.0.2] - 2014-02-27
|
|
344
|
+
### Fixed
|
|
345
|
+
- Fixed bug: "constructor" string parsed as `null`.
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
## [3.0.1] - 2013-12-22
|
|
349
|
+
### Fixed
|
|
350
|
+
- Fixed parsing of literal scalars. (issue #108)
|
|
351
|
+
- Prevented adding unnecessary spaces in object dumps. (issue #68)
|
|
352
|
+
- Fixed dumping of objects with very long (> 1024 in length) keys.
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
## [3.0.0] - 2013-12-16
|
|
356
|
+
### Changed
|
|
357
|
+
- Refactored code. Changed API for custom types.
|
|
358
|
+
- Removed output colors in CLI, dump json by default.
|
|
359
|
+
- Removed big dependencies from browser version (esprima, buffer). Load `esprima` manually, if `!!js/function` needed. `!!bin` now returns Array in browser
|
|
360
|
+
- AMD support.
|
|
361
|
+
- Don't quote dumped strings because of `-` & `?` (if not first char).
|
|
362
|
+
- __Deprecated__ loading yaml files via `require()`, as not recommended
|
|
363
|
+
behaviour for node.
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
## [2.1.3] - 2013-10-16
|
|
367
|
+
### Fixed
|
|
368
|
+
- Fix wrong loading of empty block scalars.
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
## [2.1.2] - 2013-10-07
|
|
372
|
+
### Fixed
|
|
373
|
+
- Fix unwanted line breaks in folded scalars.
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
## [2.1.1] - 2013-10-02
|
|
377
|
+
### Fixed
|
|
378
|
+
- Dumper now respects deprecated booleans syntax from YAML 1.0/1.1
|
|
379
|
+
- Fixed reader bug in JSON-like sequences/mappings.
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
## [2.1.0] - 2013-06-05
|
|
383
|
+
### Added
|
|
384
|
+
- Add standard YAML schemas: Failsafe (`FAILSAFE_SCHEMA`),
|
|
385
|
+
JSON (`JSON_SCHEMA`) and Core (`CORE_SCHEMA`).
|
|
386
|
+
- Add `skipInvalid` dumper option.
|
|
387
|
+
|
|
388
|
+
### Changed
|
|
389
|
+
- Rename `DEFAULT_SCHEMA` to `DEFAULT_FULL_SCHEMA`
|
|
390
|
+
and `SAFE_SCHEMA` to `DEFAULT_SAFE_SCHEMA`.
|
|
391
|
+
- Use `safeLoad` for `require` extension.
|
|
392
|
+
|
|
393
|
+
### Fixed
|
|
394
|
+
- Bug fix: export `NIL` constant from the public interface.
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
## [2.0.5] - 2013-04-26
|
|
398
|
+
### Security
|
|
399
|
+
- Close security issue in !!js/function constructor.
|
|
400
|
+
Big thanks to @nealpoole for security audit.
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
## [2.0.4] - 2013-04-08
|
|
404
|
+
### Changed
|
|
405
|
+
- Updated .npmignore to reduce package size
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
## [2.0.3] - 2013-02-26
|
|
409
|
+
### Fixed
|
|
410
|
+
- Fixed dumping of empty arrays ans objects. ([] and {} instead of null)
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
## [2.0.2] - 2013-02-15
|
|
414
|
+
### Fixed
|
|
415
|
+
- Fixed input validation: tabs are printable characters.
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
## [2.0.1] - 2013-02-09
|
|
419
|
+
### Fixed
|
|
420
|
+
- Fixed error, when options not passed to function cass
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
## [2.0.0] - 2013-02-09
|
|
424
|
+
### Changed
|
|
425
|
+
- Full rewrite. New architecture. Fast one-stage parsing.
|
|
426
|
+
- Changed custom types API.
|
|
427
|
+
- Added YAML dumper.
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
## [1.0.3] - 2012-11-05
|
|
431
|
+
### Fixed
|
|
432
|
+
- Fixed utf-8 files loading.
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
## [1.0.2] - 2012-08-02
|
|
436
|
+
### Fixed
|
|
437
|
+
- Pull out hand-written shims. Use ES5-Shims for old browsers support. See #44.
|
|
438
|
+
- Fix timstamps incorectly parsed in local time when no time part specified.
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
## [1.0.1] - 2012-07-07
|
|
442
|
+
### Fixed
|
|
443
|
+
- Fixes `TypeError: 'undefined' is not an object` under Safari. Thanks Phuong.
|
|
444
|
+
- Fix timestamps incorrectly parsed in local time. Thanks @caolan. Closes #46.
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
## [1.0.0] - 2012-07-01
|
|
448
|
+
### Changed
|
|
449
|
+
- `y`, `yes`, `n`, `no`, `on`, `off` are not converted to Booleans anymore.
|
|
450
|
+
Fixes #42.
|
|
451
|
+
- `require(filename)` now returns a single document and throws an Error if
|
|
452
|
+
file contains more than one document.
|
|
453
|
+
- CLI was merged back from js-yaml.bin
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
## [0.3.7] - 2012-02-28
|
|
457
|
+
### Fixed
|
|
458
|
+
- Fix export of `addConstructor()`. Closes #39.
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
## [0.3.6] - 2012-02-22
|
|
462
|
+
### Changed
|
|
463
|
+
- Removed AMD parts - too buggy to use. Need help to rewrite from scratch
|
|
464
|
+
|
|
465
|
+
### Fixed
|
|
466
|
+
- Removed YUI compressor warning (renamed `double` variable). Closes #40.
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
## [0.3.5] - 2012-01-10
|
|
470
|
+
### Fixed
|
|
471
|
+
- Workagound for .npmignore fuckup under windows. Thanks to airportyh.
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
## [0.3.4] - 2011-12-24
|
|
475
|
+
### Fixed
|
|
476
|
+
- Fixes str[] for oldIEs support.
|
|
477
|
+
- Adds better has change support for browserified demo.
|
|
478
|
+
- improves compact output of Error. Closes #33.
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
## [0.3.3] - 2011-12-20
|
|
482
|
+
### Added
|
|
483
|
+
- adds `compact` stringification of Errors.
|
|
484
|
+
|
|
485
|
+
### Changed
|
|
486
|
+
- jsyaml executable moved to separate module.
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
## [0.3.2] - 2011-12-16
|
|
490
|
+
### Added
|
|
491
|
+
- Added jsyaml executable.
|
|
492
|
+
- Added !!js/function support. Closes #12.
|
|
493
|
+
|
|
494
|
+
### Fixed
|
|
495
|
+
- Fixes ug with block style scalars. Closes #26.
|
|
496
|
+
- All sources are passing JSLint now.
|
|
497
|
+
- Fixes bug in Safari. Closes #28.
|
|
498
|
+
- Fixes bug in Opers. Closes #29.
|
|
499
|
+
- Improves browser support. Closes #20.
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
## [0.3.1] - 2011-11-18
|
|
503
|
+
### Added
|
|
504
|
+
- Added AMD support for browserified version.
|
|
505
|
+
- Added permalinks for online demo YAML snippets. Now we have YPaste service, lol.
|
|
506
|
+
- Added !!js/regexp and !!js/undefined types. Partially solves #12.
|
|
507
|
+
|
|
508
|
+
### Changed
|
|
509
|
+
- Wrapped browserified js-yaml into closure.
|
|
510
|
+
|
|
511
|
+
### Fixed
|
|
512
|
+
- Fixed the resolvement of non-specific tags. Closes #17.
|
|
513
|
+
- Fixed !!set mapping.
|
|
514
|
+
- Fixed month parse in dates. Closes #19.
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
## [0.3.0] - 2011-11-09
|
|
518
|
+
### Added
|
|
519
|
+
- Added browserified version. Closes #13.
|
|
520
|
+
- Added live demo of browserified version.
|
|
521
|
+
- Ported some of the PyYAML tests. See #14.
|
|
522
|
+
|
|
523
|
+
### Fixed
|
|
524
|
+
- Removed JS.Class dependency. Closes #3.
|
|
525
|
+
- Fixed timestamp bug when fraction was given.
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
## [0.2.2] - 2011-11-06
|
|
529
|
+
### Fixed
|
|
530
|
+
- Fixed crash on docs without ---. Closes #8.
|
|
531
|
+
- Fixed multiline string parse
|
|
532
|
+
- Fixed tests/comments for using array as key
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
## [0.2.1] - 2011-11-02
|
|
536
|
+
### Fixed
|
|
537
|
+
- Fixed short file read (<4k). Closes #9.
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
## [0.2.0] - 2011-11-02
|
|
541
|
+
### Changed
|
|
542
|
+
- First public release
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
[4.1.0]: https://github.com/nodeca/js-yaml/compare/4.0.0...4.1.0
|
|
546
|
+
[4.0.0]: https://github.com/nodeca/js-yaml/compare/3.14.0...4.0.0
|
|
547
|
+
[3.14.0]: https://github.com/nodeca/js-yaml/compare/3.13.1...3.14.0
|
|
548
|
+
[3.13.1]: https://github.com/nodeca/js-yaml/compare/3.13.0...3.13.1
|
|
549
|
+
[3.13.0]: https://github.com/nodeca/js-yaml/compare/3.12.2...3.13.0
|
|
550
|
+
[3.12.2]: https://github.com/nodeca/js-yaml/compare/3.12.1...3.12.2
|
|
551
|
+
[3.12.1]: https://github.com/nodeca/js-yaml/compare/3.12.0...3.12.1
|
|
552
|
+
[3.12.0]: https://github.com/nodeca/js-yaml/compare/3.11.0...3.12.0
|
|
553
|
+
[3.11.0]: https://github.com/nodeca/js-yaml/compare/3.10.0...3.11.0
|
|
554
|
+
[3.10.0]: https://github.com/nodeca/js-yaml/compare/3.9.1...3.10.0
|
|
555
|
+
[3.9.1]: https://github.com/nodeca/js-yaml/compare/3.9.0...3.9.1
|
|
556
|
+
[3.9.0]: https://github.com/nodeca/js-yaml/compare/3.8.4...3.9.0
|
|
557
|
+
[3.8.4]: https://github.com/nodeca/js-yaml/compare/3.8.3...3.8.4
|
|
558
|
+
[3.8.3]: https://github.com/nodeca/js-yaml/compare/3.8.2...3.8.3
|
|
559
|
+
[3.8.2]: https://github.com/nodeca/js-yaml/compare/3.8.1...3.8.2
|
|
560
|
+
[3.8.1]: https://github.com/nodeca/js-yaml/compare/3.8.0...3.8.1
|
|
561
|
+
[3.8.0]: https://github.com/nodeca/js-yaml/compare/3.7.0...3.8.0
|
|
562
|
+
[3.7.0]: https://github.com/nodeca/js-yaml/compare/3.6.1...3.7.0
|
|
563
|
+
[3.6.1]: https://github.com/nodeca/js-yaml/compare/3.6.0...3.6.1
|
|
564
|
+
[3.6.0]: https://github.com/nodeca/js-yaml/compare/3.5.5...3.6.0
|
|
565
|
+
[3.5.5]: https://github.com/nodeca/js-yaml/compare/3.5.4...3.5.5
|
|
566
|
+
[3.5.4]: https://github.com/nodeca/js-yaml/compare/3.5.3...3.5.4
|
|
567
|
+
[3.5.3]: https://github.com/nodeca/js-yaml/compare/3.5.2...3.5.3
|
|
568
|
+
[3.5.2]: https://github.com/nodeca/js-yaml/compare/3.5.1...3.5.2
|
|
569
|
+
[3.5.1]: https://github.com/nodeca/js-yaml/compare/3.5.0...3.5.1
|
|
570
|
+
[3.5.0]: https://github.com/nodeca/js-yaml/compare/3.4.6...3.5.0
|
|
571
|
+
[3.4.6]: https://github.com/nodeca/js-yaml/compare/3.4.5...3.4.6
|
|
572
|
+
[3.4.5]: https://github.com/nodeca/js-yaml/compare/3.4.4...3.4.5
|
|
573
|
+
[3.4.4]: https://github.com/nodeca/js-yaml/compare/3.4.3...3.4.4
|
|
574
|
+
[3.4.3]: https://github.com/nodeca/js-yaml/compare/3.4.2...3.4.3
|
|
575
|
+
[3.4.2]: https://github.com/nodeca/js-yaml/compare/3.4.1...3.4.2
|
|
576
|
+
[3.4.1]: https://github.com/nodeca/js-yaml/compare/3.4.0...3.4.1
|
|
577
|
+
[3.4.0]: https://github.com/nodeca/js-yaml/compare/3.3.1...3.4.0
|
|
578
|
+
[3.3.1]: https://github.com/nodeca/js-yaml/compare/3.3.0...3.3.1
|
|
579
|
+
[3.3.0]: https://github.com/nodeca/js-yaml/compare/3.2.7...3.3.0
|
|
580
|
+
[3.2.7]: https://github.com/nodeca/js-yaml/compare/3.2.6...3.2.7
|
|
581
|
+
[3.2.6]: https://github.com/nodeca/js-yaml/compare/3.2.5...3.2.6
|
|
582
|
+
[3.2.5]: https://github.com/nodeca/js-yaml/compare/3.2.4...3.2.5
|
|
583
|
+
[3.2.4]: https://github.com/nodeca/js-yaml/compare/3.2.3...3.2.4
|
|
584
|
+
[3.2.3]: https://github.com/nodeca/js-yaml/compare/3.2.2...3.2.3
|
|
585
|
+
[3.2.2]: https://github.com/nodeca/js-yaml/compare/3.2.1...3.2.2
|
|
586
|
+
[3.2.1]: https://github.com/nodeca/js-yaml/compare/3.2.0...3.2.1
|
|
587
|
+
[3.2.0]: https://github.com/nodeca/js-yaml/compare/3.1.0...3.2.0
|
|
588
|
+
[3.1.0]: https://github.com/nodeca/js-yaml/compare/3.0.2...3.1.0
|
|
589
|
+
[3.0.2]: https://github.com/nodeca/js-yaml/compare/3.0.1...3.0.2
|
|
590
|
+
[3.0.1]: https://github.com/nodeca/js-yaml/compare/3.0.0...3.0.1
|
|
591
|
+
[3.0.0]: https://github.com/nodeca/js-yaml/compare/2.1.3...3.0.0
|
|
592
|
+
[2.1.3]: https://github.com/nodeca/js-yaml/compare/2.1.2...2.1.3
|
|
593
|
+
[2.1.2]: https://github.com/nodeca/js-yaml/compare/2.1.1...2.1.2
|
|
594
|
+
[2.1.1]: https://github.com/nodeca/js-yaml/compare/2.1.0...2.1.1
|
|
595
|
+
[2.1.0]: https://github.com/nodeca/js-yaml/compare/2.0.5...2.1.0
|
|
596
|
+
[2.0.5]: https://github.com/nodeca/js-yaml/compare/2.0.4...2.0.5
|
|
597
|
+
[2.0.4]: https://github.com/nodeca/js-yaml/compare/2.0.3...2.0.4
|
|
598
|
+
[2.0.3]: https://github.com/nodeca/js-yaml/compare/2.0.2...2.0.3
|
|
599
|
+
[2.0.2]: https://github.com/nodeca/js-yaml/compare/2.0.1...2.0.2
|
|
600
|
+
[2.0.1]: https://github.com/nodeca/js-yaml/compare/2.0.0...2.0.1
|
|
601
|
+
[2.0.0]: https://github.com/nodeca/js-yaml/compare/1.0.3...2.0.0
|
|
602
|
+
[1.0.3]: https://github.com/nodeca/js-yaml/compare/1.0.2...1.0.3
|
|
603
|
+
[1.0.2]: https://github.com/nodeca/js-yaml/compare/1.0.1...1.0.2
|
|
604
|
+
[1.0.1]: https://github.com/nodeca/js-yaml/compare/1.0.0...1.0.1
|
|
605
|
+
[1.0.0]: https://github.com/nodeca/js-yaml/compare/0.3.7...1.0.0
|
|
606
|
+
[0.3.7]: https://github.com/nodeca/js-yaml/compare/0.3.6...0.3.7
|
|
607
|
+
[0.3.6]: https://github.com/nodeca/js-yaml/compare/0.3.5...0.3.6
|
|
608
|
+
[0.3.5]: https://github.com/nodeca/js-yaml/compare/0.3.4...0.3.5
|
|
609
|
+
[0.3.4]: https://github.com/nodeca/js-yaml/compare/0.3.3...0.3.4
|
|
610
|
+
[0.3.3]: https://github.com/nodeca/js-yaml/compare/0.3.2...0.3.3
|
|
611
|
+
[0.3.2]: https://github.com/nodeca/js-yaml/compare/0.3.1...0.3.2
|
|
612
|
+
[0.3.1]: https://github.com/nodeca/js-yaml/compare/0.3.0...0.3.1
|
|
613
|
+
[0.3.0]: https://github.com/nodeca/js-yaml/compare/0.2.2...0.3.0
|
|
614
|
+
[0.2.2]: https://github.com/nodeca/js-yaml/compare/0.2.1...0.2.2
|
|
615
|
+
[0.2.1]: https://github.com/nodeca/js-yaml/compare/0.2.0...0.2.1
|
|
616
|
+
[0.2.0]: https://github.com/nodeca/js-yaml/releases/tag/0.2.0
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
],
|
|
16
16
|
"main": "lib/index.js",
|
|
17
17
|
"license": "Apache-2.0",
|
|
18
|
-
"version": "4.
|
|
18
|
+
"version": "4.3.0",
|
|
19
19
|
"types": "lib/index.d.ts",
|
|
20
20
|
"stability": "stable",
|
|
21
21
|
"jsii": {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"release:check-last-commit": "node release-commit-check.js",
|
|
48
48
|
"release:build": "npm run build && npm run bump",
|
|
49
49
|
"release:push": "echo '✅ pushing release' && git push origin master --follow-tags",
|
|
50
|
-
"release": "npm run release:check-last-commit && npm run release:build
|
|
50
|
+
"release": "npm run release:check-last-commit && npm run release:build"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@types/jest": "27.4.1",
|
package/version.json
CHANGED