@rio-cloud/cdk-v2-constructs 6.20.0 → 6.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ import { CloudFormationCustomResourceEvent, Context } from 'aws-lambda';
2
+ export declare function handler(event: CloudFormationCustomResourceEvent, _context: Context): Promise<{
3
+ PhysicalResourceId: string | undefined;
4
+ }>;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handler = handler;
4
+ const secrets_1 = require("@aws-lambda-powertools/parameters/secrets");
5
+ const datadog_api_client_1 = require("@datadog/datadog-api-client");
6
+ async function handler(event, _context) {
7
+ const { apiKey, appKey, site: datadogSite } = await getDatadogSecret();
8
+ const configuration = datadog_api_client_1.client.createConfiguration({
9
+ authMethods: {
10
+ apiKeyAuth: apiKey,
11
+ appKeyAuth: appKey,
12
+ },
13
+ });
14
+ configuration.setServerVariables({ site: datadogSite });
15
+ const apiInstance = new datadog_api_client_1.v1.SyntheticsApi(configuration);
16
+ try {
17
+ switch (event.RequestType) {
18
+ case 'Create':
19
+ return await createSyntheticsTest(apiInstance, event);
20
+ case 'Update':
21
+ return await updateSyntheticsTest(apiInstance, event);
22
+ case 'Delete':
23
+ return await deleteSyntheticsTest(apiInstance, event);
24
+ default:
25
+ // noinspection ExceptionCaughtLocallyJS
26
+ throw new Error(`Unsupported request type ${event}`);
27
+ }
28
+ }
29
+ catch (error) {
30
+ console.error(error);
31
+ throw new Error(`Failed to process request: ${error}`);
32
+ }
33
+ }
34
+ const getDatadogSecret = async () => {
35
+ const datadogSecretArn = process.env.DATADOG_SECRET_ARN;
36
+ if (!datadogSecretArn) {
37
+ throw new Error('Datadog secret ARN must be set in the DATADOG_SECRET_ARN environment');
38
+ }
39
+ const secretString = await (0, secrets_1.getSecret)(datadogSecretArn);
40
+ const secret = JSON.parse(secretString);
41
+ return {
42
+ apiKey: secret.ApiKey,
43
+ appKey: secret.ApplicationKey,
44
+ site: secret.Site,
45
+ };
46
+ };
47
+ async function createSyntheticsTest(apiInstance, event) {
48
+ const testConfig = JSON.parse(event.ResourceProperties.TestConfig);
49
+ let response;
50
+ switch (testConfig.type) {
51
+ case 'api':
52
+ response = await apiInstance.createSyntheticsAPITest({ body: testConfig });
53
+ break;
54
+ case 'browser':
55
+ response = await apiInstance.createSyntheticsBrowserTest({ body: testConfig });
56
+ break;
57
+ case 'mobile':
58
+ response = await apiInstance.createSyntheticsMobileTest({ body: testConfig });
59
+ break;
60
+ default:
61
+ throw new Error(`Unsupported test type ${testConfig.type}`);
62
+ }
63
+ return { PhysicalResourceId: response.publicId };
64
+ }
65
+ async function updateSyntheticsTest(apiInstance, event) {
66
+ const testId = event.PhysicalResourceId;
67
+ const testConfig = JSON.parse(event.ResourceProperties.TestConfig);
68
+ switch (testConfig.type) {
69
+ case 'api':
70
+ await apiInstance.updateAPITest({
71
+ publicId: testId,
72
+ body: testConfig,
73
+ });
74
+ break;
75
+ case 'browser':
76
+ await apiInstance.updateBrowserTest({
77
+ publicId: testId,
78
+ body: testConfig,
79
+ });
80
+ break;
81
+ case 'mobile':
82
+ await apiInstance.updateMobileTest({
83
+ publicId: testId,
84
+ body: testConfig,
85
+ });
86
+ break;
87
+ default:
88
+ throw new Error(`Unsupported test type ${testConfig.type}`);
89
+ }
90
+ return { PhysicalResourceId: testId };
91
+ }
92
+ async function deleteSyntheticsTest(apiInstance, event) {
93
+ const testId = event.PhysicalResourceId;
94
+ await apiInstance.deleteTests({
95
+ body: {
96
+ publicIds: [testId],
97
+ },
98
+ });
99
+ return { PhysicalResourceId: testId };
100
+ }
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9kYXRhZG9nLXN5bnRoZXRpY3MvZGF0YWRvZy1zeW50aGV0aWNzLXRlc3QtY3VzdG9tLXJlc291cmNlL2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSwwQkE4QkM7QUExQ0QsdUVBQXNFO0FBQ3RFLG9FQUF3RTtBQVdqRSxLQUFLLFVBQVUsT0FBTyxDQUFDLEtBQXdDLEVBQUUsUUFBaUI7SUFFdkYsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQztJQUV2RSxNQUFNLGFBQWEsR0FBRywyQkFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQy9DLFdBQVcsRUFBRTtZQUNYLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFVBQVUsRUFBRSxNQUFNO1NBQ25CO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFeEQsTUFBTSxXQUFXLEdBQUcsSUFBSSx1QkFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUV4RCxJQUFJLENBQUM7UUFDSCxRQUFRLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMxQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxNQUFNLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN4RCxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxNQUFNLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN4RCxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxNQUFNLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN4RDtnQkFDRSx3Q0FBd0M7Z0JB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QyxDQUFDLENBQUM7WUFDSCxNQUFNO1FBQ1I7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ3hDLENBQUM7QUFFRCxLQUFLLFVBQVUsb0JBQW9CLENBQUMsV0FBNkIsRUFBRSxLQUE4QztJQUMvRyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUM7SUFDeEMsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDO1FBQzVCLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQztTQUNwQjtLQUNGLENBQUMsQ0FBQztJQUNILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0U2VjcmV0IH0gZnJvbSAnQGF3cy1sYW1iZGEtcG93ZXJ0b29scy9wYXJhbWV0ZXJzL3NlY3JldHMnO1xuaW1wb3J0IHsgY2xpZW50LCB2MSBhcyBkYXRhZG9nLCB2MSB9IGZyb20gJ0BkYXRhZG9nL2RhdGFkb2ctYXBpLWNsaWVudCc7XG5pbXBvcnQge1xuICBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlQ3JlYXRlRXZlbnQsXG4gIENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VEZWxldGVFdmVudCxcbiAgQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUV2ZW50LFxuICBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlVXBkYXRlRXZlbnQsXG4gIENvbnRleHQsXG59IGZyb20gJ2F3cy1sYW1iZGEnO1xuXG50eXBlIFN5bnRoZXRpY3NUZXN0ID0gZGF0YWRvZy5TeW50aGV0aWNzQVBJVGVzdCB8IGRhdGFkb2cuU3ludGhldGljc0Jyb3dzZXJUZXN0IHwgZGF0YWRvZy5TeW50aGV0aWNzTW9iaWxlVGVzdDtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VFdmVudCwgX2NvbnRleHQ6IENvbnRleHQpIHtcblxuICBjb25zdCB7IGFwaUtleSwgYXBwS2V5LCBzaXRlOiBkYXRhZG9nU2l0ZSB9ID0gYXdhaXQgZ2V0RGF0YWRvZ1NlY3JldCgpO1xuXG4gIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBjbGllbnQuY3JlYXRlQ29uZmlndXJhdGlvbih7XG4gICAgYXV0aE1ldGhvZHM6IHtcbiAgICAgIGFwaUtleUF1dGg6IGFwaUtleSxcbiAgICAgIGFwcEtleUF1dGg6IGFwcEtleSxcbiAgICB9LFxuICB9KTtcbiAgY29uZmlndXJhdGlvbi5zZXRTZXJ2ZXJWYXJpYWJsZXMoeyBzaXRlOiBkYXRhZG9nU2l0ZSB9KTtcblxuICBjb25zdCBhcGlJbnN0YW5jZSA9IG5ldyB2MS5TeW50aGV0aWNzQXBpKGNvbmZpZ3VyYXRpb24pO1xuXG4gIHRyeSB7XG4gICAgc3dpdGNoIChldmVudC5SZXF1ZXN0VHlwZSkge1xuICAgICAgY2FzZSAnQ3JlYXRlJzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNyZWF0ZVN5bnRoZXRpY3NUZXN0KGFwaUluc3RhbmNlLCBldmVudCk7XG4gICAgICBjYXNlICdVcGRhdGUnOlxuICAgICAgICByZXR1cm4gYXdhaXQgdXBkYXRlU3ludGhldGljc1Rlc3QoYXBpSW5zdGFuY2UsIGV2ZW50KTtcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XG4gICAgICAgIHJldHVybiBhd2FpdCBkZWxldGVTeW50aGV0aWNzVGVzdChhcGlJbnN0YW5jZSwgZXZlbnQpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gbm9pbnNwZWN0aW9uIEV4Y2VwdGlvbkNhdWdodExvY2FsbHlKU1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHJlcXVlc3QgdHlwZSAke2V2ZW50fWApO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBwcm9jZXNzIHJlcXVlc3Q6ICR7ZXJyb3J9YCk7XG4gIH1cbn1cblxuY29uc3QgZ2V0RGF0YWRvZ1NlY3JldCA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgZGF0YWRvZ1NlY3JldEFybiA9IHByb2Nlc3MuZW52LkRBVEFET0dfU0VDUkVUX0FSTjtcblxuICBpZiAoIWRhdGFkb2dTZWNyZXRBcm4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGFkb2cgc2VjcmV0IEFSTiBtdXN0IGJlIHNldCBpbiB0aGUgREFUQURPR19TRUNSRVRfQVJOIGVudmlyb25tZW50Jyk7XG4gIH1cbiAgY29uc3Qgc2VjcmV0U3RyaW5nID0gYXdhaXQgZ2V0U2VjcmV0KGRhdGFkb2dTZWNyZXRBcm4pO1xuICBjb25zdCBzZWNyZXQgPSBKU09OLnBhcnNlKHNlY3JldFN0cmluZyEgYXMgc3RyaW5nKTtcbiAgcmV0dXJuIHtcbiAgICBhcGlLZXk6IHNlY3JldC5BcGlLZXksXG4gICAgYXBwS2V5OiBzZWNyZXQuQXBwbGljYXRpb25LZXksXG4gICAgc2l0ZTogc2VjcmV0LlNpdGUsXG4gIH07XG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVTeW50aGV0aWNzVGVzdChhcGlJbnN0YW5jZTogdjEuU3ludGhldGljc0FwaSwgZXZlbnQ6IENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VDcmVhdGVFdmVudCkge1xuICBjb25zdCB0ZXN0Q29uZmlnID0gSlNPTi5wYXJzZShldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVGVzdENvbmZpZykgYXMgU3ludGhldGljc1Rlc3Q7XG5cbiAgbGV0IHJlc3BvbnNlO1xuICBzd2l0Y2ggKHRlc3RDb25maWcudHlwZSkge1xuICAgIGNhc2UgJ2FwaSc6XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGFwaUluc3RhbmNlLmNyZWF0ZVN5bnRoZXRpY3NBUElUZXN0KHsgYm9keTogdGVzdENvbmZpZyBhcyB2MS5TeW50aGV0aWNzQVBJVGVzdCB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2Jyb3dzZXInOlxuICAgICAgcmVzcG9uc2UgPSBhd2FpdCBhcGlJbnN0YW5jZS5jcmVhdGVTeW50aGV0aWNzQnJvd3NlclRlc3QoeyBib2R5OiB0ZXN0Q29uZmlnIGFzIHYxLlN5bnRoZXRpY3NCcm93c2VyVGVzdCB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ21vYmlsZSc6XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGFwaUluc3RhbmNlLmNyZWF0ZVN5bnRoZXRpY3NNb2JpbGVUZXN0KHsgYm9keTogdGVzdENvbmZpZyBhcyB2MS5TeW50aGV0aWNzTW9iaWxlVGVzdCB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHRlc3QgdHlwZSAke3Rlc3RDb25maWcudHlwZX1gKTtcbiAgfVxuICByZXR1cm4geyBQaHlzaWNhbFJlc291cmNlSWQ6IHJlc3BvbnNlLnB1YmxpY0lkIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVN5bnRoZXRpY3NUZXN0KGFwaUluc3RhbmNlOiB2MS5TeW50aGV0aWNzQXBpLCBldmVudDogQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZVVwZGF0ZUV2ZW50KSB7XG4gIGNvbnN0IHRlc3RJZCA9IGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZDtcbiAgY29uc3QgdGVzdENvbmZpZyA9IEpTT04ucGFyc2UoZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLlRlc3RDb25maWcpIGFzIFN5bnRoZXRpY3NUZXN0O1xuXG4gIHN3aXRjaCAodGVzdENvbmZpZy50eXBlKSB7XG4gICAgY2FzZSAnYXBpJzpcbiAgICAgIGF3YWl0IGFwaUluc3RhbmNlLnVwZGF0ZUFQSVRlc3Qoe1xuICAgICAgICBwdWJsaWNJZDogdGVzdElkLFxuICAgICAgICBib2R5OiB0ZXN0Q29uZmlnIGFzIHYxLlN5bnRoZXRpY3NBUElUZXN0LFxuICAgICAgfSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdicm93c2VyJzpcbiAgICAgIGF3YWl0IGFwaUluc3RhbmNlLnVwZGF0ZUJyb3dzZXJUZXN0KHtcbiAgICAgICAgcHVibGljSWQ6IHRlc3RJZCxcbiAgICAgICAgYm9keTogdGVzdENvbmZpZyBhcyB2MS5TeW50aGV0aWNzQnJvd3NlclRlc3QsXG4gICAgICB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ21vYmlsZSc6XG4gICAgICBhd2FpdCBhcGlJbnN0YW5jZS51cGRhdGVNb2JpbGVUZXN0KHtcbiAgICAgICAgcHVibGljSWQ6IHRlc3RJZCxcbiAgICAgICAgYm9keTogdGVzdENvbmZpZyBhcyB2MS5TeW50aGV0aWNzTW9iaWxlVGVzdCxcbiAgICAgIH0pO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdGVzdCB0eXBlICR7dGVzdENvbmZpZy50eXBlfWApO1xuICB9XG5cbiAgcmV0dXJuIHsgUGh5c2ljYWxSZXNvdXJjZUlkOiB0ZXN0SWQgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZGVsZXRlU3ludGhldGljc1Rlc3QoYXBpSW5zdGFuY2U6IHYxLlN5bnRoZXRpY3NBcGksIGV2ZW50OiBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRGVsZXRlRXZlbnQpIHtcbiAgY29uc3QgdGVzdElkID0gZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkO1xuICBhd2FpdCBhcGlJbnN0YW5jZS5kZWxldGVUZXN0cyh7XG4gICAgYm9keToge1xuICAgICAgcHVibGljSWRzOiBbdGVzdElkXSxcbiAgICB9LFxuICB9KTtcbiAgcmV0dXJuIHsgUGh5c2ljYWxSZXNvdXJjZUlkOiB0ZXN0SWQgfTtcbn1cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { v1 as datadog } from '@datadog/datadog-api-client';
2
+ import { Construct } from 'constructs';
3
+ type SyntheticsTest = datadog.SyntheticsAPITest | datadog.SyntheticsBrowserTest | datadog.SyntheticsMobileTest;
4
+ export interface DatadogSyntheticsTestProps {
5
+ /**
6
+ * The name of the service to which the test belongs.
7
+ *
8
+ * Used to enhance the test name and apply the `service` tag.
9
+ */
10
+ readonly serviceName: string;
11
+ /**
12
+ * @jsii ignore
13
+ */
14
+ readonly testConfig: SyntheticsTest;
15
+ }
16
+ /**
17
+ * Creates a Datadog Synthetics test via Datadog API through a custom resource.
18
+ *
19
+ * See https://docs.datadoghq.com/api/latest/synthetics/ for more information (especially the typescript examples).
20
+ * Currently, tests of type `api`, `browser` and `mobile` are supported.
21
+ *
22
+ * The resource does the following modification to the passed `testConfig`:
23
+ * - Adds team name and service name to the test name.
24
+ * - Adds the usual tags (account_id, account_name, service, team, team_identifier) to the test tags.
25
+ */
26
+ export declare class DatadogSyntheticsTest extends Construct {
27
+ constructor(scope: Construct, id: string, props: DatadogSyntheticsTestProps);
28
+ }
29
+ export {};
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DatadogSyntheticsTest = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const path_1 = require("path");
7
+ const path = require("path");
8
+ const cdk = require("aws-cdk-lib");
9
+ const lambda = require("aws-cdk-lib/aws-lambda");
10
+ const logs = require("aws-cdk-lib/aws-logs");
11
+ const customResources = require("aws-cdk-lib/custom-resources");
12
+ const constructs_1 = require("constructs");
13
+ const constants_1 = require("../../../constants");
14
+ const datadogv2_1 = require("../../../datadogv2");
15
+ const rio_claidometer_1 = require("../../../rio-claidometer");
16
+ const rio_landing_zone_1 = require("../../../rio-landing-zone");
17
+ /**
18
+ * Creates a Datadog Synthetics test via Datadog API through a custom resource.
19
+ *
20
+ * See https://docs.datadoghq.com/api/latest/synthetics/ for more information (especially the typescript examples).
21
+ * Currently, tests of type `api`, `browser` and `mobile` are supported.
22
+ *
23
+ * The resource does the following modification to the passed `testConfig`:
24
+ * - Adds team name and service name to the test name.
25
+ * - Adds the usual tags (account_id, account_name, service, team, team_identifier) to the test tags.
26
+ */
27
+ class DatadogSyntheticsTest extends constructs_1.Construct {
28
+ constructor(scope, id, props) {
29
+ super(scope, id);
30
+ const datadogSecret = datadogv2_1.DatadogSharedSecret.credentialsSecret(this);
31
+ const teamName = rio_landing_zone_1.RioLandingZone.getTeamNameParameter(this).stringValue;
32
+ const teamIdentifier = rio_landing_zone_1.RioLandingZone.getTeamIdentifierParameter(this).stringValue;
33
+ const accountName = rio_landing_zone_1.RioLandingZone.getAccountNameParameter(this).stringValue;
34
+ const datadogHandler = new lambda.Function(this, 'DatadogSyntheticsHandler', {
35
+ runtime: constants_1.DEFAULT_NODE_RUNTIME,
36
+ code: lambda.Code.fromAsset((0, path_1.join)(__dirname, 'datadog-synthetics-test-custom-resource'), {
37
+ exclude: ['*.js', '*.d.ts'],
38
+ }),
39
+ handler: 'handler.handler',
40
+ environment: {
41
+ DATADOG_SECRET_ARN: datadogSecret.secretArn,
42
+ },
43
+ logRetention: logs.RetentionDays.ONE_WEEK,
44
+ });
45
+ datadogSecret.grantRead(datadogHandler);
46
+ const provider = new customResources.Provider(this, 'DatadogSyntheticsProvider', {
47
+ onEventHandler: datadogHandler,
48
+ });
49
+ const enhancedName = `${teamName} ${props.serviceName} ${props.testConfig.name}`;
50
+ const enhancedTags = [
51
+ ...props.testConfig.tags ?? [],
52
+ `account_id:${cdk.Stack.of(this).account}`,
53
+ `account_name:${accountName}`,
54
+ `service:${props.serviceName}`,
55
+ `team:${teamName}`,
56
+ `team_identifier:${teamIdentifier}`,
57
+ ];
58
+ const enhancedTestConfig = {
59
+ ...props.testConfig,
60
+ name: enhancedName,
61
+ tags: enhancedTags,
62
+ };
63
+ new cdk.CustomResource(this, 'DatadogSyntheticsTestResource', {
64
+ serviceToken: provider.serviceToken,
65
+ properties: {
66
+ TestConfig: JSON.stringify(enhancedTestConfig),
67
+ },
68
+ });
69
+ const [feature, packageName] = __dirname.split(path.sep).reverse();
70
+ new rio_claidometer_1.Claidometer(this, 'Claidometer', {
71
+ product: rio_claidometer_1.ClaidometerProduct.CDK_CONTRIBUTION,
72
+ packageName,
73
+ feature,
74
+ version: '0.0.1',
75
+ });
76
+ }
77
+ }
78
+ exports.DatadogSyntheticsTest = DatadogSyntheticsTest;
79
+ _a = JSII_RTTI_SYMBOL_1;
80
+ DatadogSyntheticsTest[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.DatadogSyntheticsTest", version: "0.0.0" };
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1zeW50aGV0aWNzLXRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLXRyYW5zcG9ydC10d28vZGF0YWRvZy1zeW50aGV0aWNzL2RhdGFkb2ctc3ludGhldGljcy10ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQTRCO0FBQzVCLDZCQUE2QjtBQUU3QixtQ0FBbUM7QUFDbkMsaURBQWlEO0FBQ2pELDZDQUE2QztBQUM3QyxnRUFBZ0U7QUFDaEUsMkNBQXVDO0FBQ3ZDLGtEQUEwRDtBQUMxRCxrREFBeUQ7QUFDekQsOERBQTJFO0FBQzNFLGdFQUEyRDtBQWtCM0Q7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxzQkFBUztJQUNsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxhQUFhLEdBQUcsK0JBQW1CLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEUsTUFBTSxRQUFRLEdBQUcsaUNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDdkUsTUFBTSxjQUFjLEdBQUcsaUNBQWMsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDbkYsTUFBTSxXQUFXLEdBQUcsaUNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFN0UsTUFBTSxjQUFjLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSwwQkFBMEIsRUFBRTtZQUMzRSxPQUFPLEVBQUUsZ0NBQW9CO1lBQzdCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUseUNBQXlDLENBQUMsRUFBRTtnQkFDdEYsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQzthQUM1QixDQUFDO1lBQ0YsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUU7Z0JBQ1gsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLFNBQVM7YUFDNUM7WUFDRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRO1NBQzFDLENBQUMsQ0FBQztRQUNILGFBQWEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSwyQkFBMkIsRUFBRTtZQUMvRSxjQUFjLEVBQUUsY0FBYztTQUMvQixDQUFDLENBQUM7UUFFSCxNQUFNLFlBQVksR0FBRyxHQUFHLFFBQVEsSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakYsTUFBTSxZQUFZLEdBQUc7WUFDbkIsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzlCLGNBQWMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO1lBQzFDLGdCQUFnQixXQUFXLEVBQUU7WUFDN0IsV0FBVyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzlCLFFBQVEsUUFBUSxFQUFFO1lBQ2xCLG1CQUFtQixjQUFjLEVBQUU7U0FDcEMsQ0FBQztRQUNGLE1BQU0sa0JBQWtCLEdBQW1CO1lBQ3pDLEdBQUcsS0FBSyxDQUFDLFVBQVU7WUFDbkIsSUFBSSxFQUFFLFlBQVk7WUFDbEIsSUFBSSxFQUFFLFlBQVk7U0FDbkIsQ0FBQztRQUVGLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsK0JBQStCLEVBQUU7WUFDNUQsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQzthQUMvQztTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkUsSUFBSSw2QkFBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDbkMsT0FBTyxFQUFFLG9DQUFrQixDQUFDLGdCQUFnQjtZQUM1QyxXQUFXO1lBQ1gsT0FBTztZQUNQLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBeERILHNEQXlEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyB2MSBhcyBkYXRhZG9nIH0gZnJvbSAnQGRhdGFkb2cvZGF0YWRvZy1hcGktY2xpZW50JztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIGN1c3RvbVJlc291cmNlcyBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgREVGQVVMVF9OT0RFX1JVTlRJTUUgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRGF0YWRvZ1NoYXJlZFNlY3JldCB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2d2Mic7XG5pbXBvcnQgeyBDbGFpZG9tZXRlciwgQ2xhaWRvbWV0ZXJQcm9kdWN0IH0gZnJvbSAnLi4vLi4vLi4vcmlvLWNsYWlkb21ldGVyJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vLi4vLi4vcmlvLWxhbmRpbmctem9uZSc7XG5cbnR5cGUgU3ludGhldGljc1Rlc3QgPSBkYXRhZG9nLlN5bnRoZXRpY3NBUElUZXN0IHwgZGF0YWRvZy5TeW50aGV0aWNzQnJvd3NlclRlc3QgfCBkYXRhZG9nLlN5bnRoZXRpY3NNb2JpbGVUZXN0O1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFkb2dTeW50aGV0aWNzVGVzdFByb3BzIHtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgdG8gd2hpY2ggdGhlIHRlc3QgYmVsb25ncy5cbiAgICpcbiAgICogVXNlZCB0byBlbmhhbmNlIHRoZSB0ZXN0IG5hbWUgYW5kIGFwcGx5IHRoZSBgc2VydmljZWAgdGFnLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdENvbmZpZzogU3ludGhldGljc1Rlc3Q7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIERhdGFkb2cgU3ludGhldGljcyB0ZXN0IHZpYSBEYXRhZG9nIEFQSSB0aHJvdWdoIGEgY3VzdG9tIHJlc291cmNlLlxuICpcbiAqIFNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9hcGkvbGF0ZXN0L3N5bnRoZXRpY3MvIGZvciBtb3JlIGluZm9ybWF0aW9uIChlc3BlY2lhbGx5IHRoZSB0eXBlc2NyaXB0IGV4YW1wbGVzKS5cbiAqIEN1cnJlbnRseSwgdGVzdHMgb2YgdHlwZSBgYXBpYCwgYGJyb3dzZXJgIGFuZCBgbW9iaWxlYCBhcmUgc3VwcG9ydGVkLlxuICpcbiAqIFRoZSByZXNvdXJjZSBkb2VzIHRoZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9uIHRvIHRoZSBwYXNzZWQgYHRlc3RDb25maWdgOlxuICogLSBBZGRzIHRlYW0gbmFtZSBhbmQgc2VydmljZSBuYW1lIHRvIHRoZSB0ZXN0IG5hbWUuXG4gKiAtIEFkZHMgdGhlIHVzdWFsIHRhZ3MgKGFjY291bnRfaWQsIGFjY291bnRfbmFtZSwgc2VydmljZSwgdGVhbSwgdGVhbV9pZGVudGlmaWVyKSB0byB0aGUgdGVzdCB0YWdzLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YWRvZ1N5bnRoZXRpY3NUZXN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFkb2dTeW50aGV0aWNzVGVzdFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGRhdGFkb2dTZWNyZXQgPSBEYXRhZG9nU2hhcmVkU2VjcmV0LmNyZWRlbnRpYWxzU2VjcmV0KHRoaXMpO1xuXG4gICAgY29uc3QgdGVhbU5hbWUgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtTmFtZVBhcmFtZXRlcih0aGlzKS5zdHJpbmdWYWx1ZTtcbiAgICBjb25zdCB0ZWFtSWRlbnRpZmllciA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1JZGVudGlmaWVyUGFyYW1ldGVyKHRoaXMpLnN0cmluZ1ZhbHVlO1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0QWNjb3VudE5hbWVQYXJhbWV0ZXIodGhpcykuc3RyaW5nVmFsdWU7XG5cbiAgICBjb25zdCBkYXRhZG9nSGFuZGxlciA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgJ0RhdGFkb2dTeW50aGV0aWNzSGFuZGxlcicsIHtcbiAgICAgIHJ1bnRpbWU6IERFRkFVTFRfTk9ERV9SVU5USU1FLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGpvaW4oX19kaXJuYW1lLCAnZGF0YWRvZy1zeW50aGV0aWNzLXRlc3QtY3VzdG9tLXJlc291cmNlJyksIHtcbiAgICAgICAgZXhjbHVkZTogWycqLmpzJywgJyouZC50cyddLFxuICAgICAgfSksXG4gICAgICBoYW5kbGVyOiAnaGFuZGxlci5oYW5kbGVyJyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIERBVEFET0dfU0VDUkVUX0FSTjogZGF0YWRvZ1NlY3JldC5zZWNyZXRBcm4sXG4gICAgICB9LFxuICAgICAgbG9nUmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgfSk7XG4gICAgZGF0YWRvZ1NlY3JldC5ncmFudFJlYWQoZGF0YWRvZ0hhbmRsZXIpO1xuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgY3VzdG9tUmVzb3VyY2VzLlByb3ZpZGVyKHRoaXMsICdEYXRhZG9nU3ludGhldGljc1Byb3ZpZGVyJywge1xuICAgICAgb25FdmVudEhhbmRsZXI6IGRhdGFkb2dIYW5kbGVyLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZW5oYW5jZWROYW1lID0gYCR7dGVhbU5hbWV9ICR7cHJvcHMuc2VydmljZU5hbWV9ICR7cHJvcHMudGVzdENvbmZpZy5uYW1lfWA7XG4gICAgY29uc3QgZW5oYW5jZWRUYWdzID0gW1xuICAgICAgLi4ucHJvcHMudGVzdENvbmZpZy50YWdzID8/IFtdLFxuICAgICAgYGFjY291bnRfaWQ6JHtjZGsuU3RhY2sub2YodGhpcykuYWNjb3VudH1gLFxuICAgICAgYGFjY291bnRfbmFtZToke2FjY291bnROYW1lfWAsXG4gICAgICBgc2VydmljZToke3Byb3BzLnNlcnZpY2VOYW1lfWAsXG4gICAgICBgdGVhbToke3RlYW1OYW1lfWAsXG4gICAgICBgdGVhbV9pZGVudGlmaWVyOiR7dGVhbUlkZW50aWZpZXJ9YCxcbiAgICBdO1xuICAgIGNvbnN0IGVuaGFuY2VkVGVzdENvbmZpZzogU3ludGhldGljc1Rlc3QgPSB7XG4gICAgICAuLi5wcm9wcy50ZXN0Q29uZmlnLFxuICAgICAgbmFtZTogZW5oYW5jZWROYW1lLFxuICAgICAgdGFnczogZW5oYW5jZWRUYWdzLFxuICAgIH07XG5cbiAgICBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsICdEYXRhZG9nU3ludGhldGljc1Rlc3RSZXNvdXJjZScsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBUZXN0Q29uZmlnOiBKU09OLnN0cmluZ2lmeShlbmhhbmNlZFRlc3RDb25maWcpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IFtmZWF0dXJlLCBwYWNrYWdlTmFtZV0gPSBfX2Rpcm5hbWUuc3BsaXQocGF0aC5zZXApLnJldmVyc2UoKTtcbiAgICBuZXcgQ2xhaWRvbWV0ZXIodGhpcywgJ0NsYWlkb21ldGVyJywge1xuICAgICAgcHJvZHVjdDogQ2xhaWRvbWV0ZXJQcm9kdWN0LkNES19DT05UUklCVVRJT04sXG4gICAgICBwYWNrYWdlTmFtZSxcbiAgICAgIGZlYXR1cmUsXG4gICAgICB2ZXJzaW9uOiAnMC4wLjEnLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export * from './datadog-synthetics-test';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./datadog-synthetics-test"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLXRyYW5zcG9ydC10d28vZGF0YWRvZy1zeW50aGV0aWNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0REFBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGFkb2ctc3ludGhldGljcy10ZXN0JztcbiJdfQ==
package/lib/index.d.ts CHANGED
@@ -18,6 +18,7 @@ export * as datadog from './datadog';
18
18
  export * as datadogv2 from './datadogv2';
19
19
  export * from './contributions/cop-frontend/cloudfront';
20
20
  export * from './contributions/team-transport-two/datadog';
21
+ export * from './contributions/team-transport-two/datadog-synthetics';
21
22
  export * from './contributions/team-transport-two/pipeline';
22
23
  export * from './contributions/team-claid/aws-backup-monitoring';
23
24
  export * from './contributions/team-claid/datadog-usage-monitoring';
package/lib/index.js CHANGED
@@ -35,6 +35,7 @@ exports.datadog = require("./datadog");
35
35
  exports.datadogv2 = require("./datadogv2");
36
36
  __exportStar(require("./contributions/cop-frontend/cloudfront"), exports);
37
37
  __exportStar(require("./contributions/team-transport-two/datadog"), exports);
38
+ __exportStar(require("./contributions/team-transport-two/datadog-synthetics"), exports);
38
39
  __exportStar(require("./contributions/team-transport-two/pipeline"), exports);
39
40
  __exportStar(require("./contributions/team-claid/aws-backup-monitoring"), exports);
40
41
  __exportStar(require("./contributions/team-claid/datadog-usage-monitoring"), exports);
@@ -44,4 +45,4 @@ exports.backup = require("./backup");
44
45
  exports.ecr = require("./ecr");
45
46
  __exportStar(require("./test"), exports);
46
47
  __exportStar(require("./contributions/smart-route/gitlab-runner"), exports);
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMkI7QUFFM0IsNkNBQTJDO0FBRTNDLHFEQUFtQztBQUNuQyxzREFBb0M7QUFDcEMsb0RBQWtDO0FBRWxDLGdFQUE4QztBQUM5QyxpRkFBK0Q7QUFDL0QsdUNBQXFDO0FBRXJDLHlFQUF1RDtBQUN2RCw4RUFBNEQ7QUFDNUQsK0RBQTZDO0FBRTdDLDBDQUF3QjtBQUN4QixtQ0FBaUM7QUFFakMsd0NBQXNCO0FBQ3RCLCtCQUE2QjtBQUU3Qiw0Q0FBMEI7QUFDMUIsdUNBQXFDO0FBQ3JDLDJDQUF5QztBQUV6QywwRUFBd0Q7QUFFeEQsNkVBQTJEO0FBQzNELDhFQUE0RDtBQUU1RCxtRkFBaUU7QUFDakUsc0ZBQW9FO0FBRXBFLDRHQUEwRjtBQUUxRiwyQ0FBeUI7QUFDekIscUNBQW1DO0FBRW5DLCtCQUE2QjtBQUM3Qix5Q0FBdUI7QUFFdkIsNEVBQTBEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi93YXRjaGZ1bCc7XG5cbmV4cG9ydCAqIGFzIHdhdGNoZnVsdjIgZnJvbSAnLi93YXRjaGZ1bHYyJztcblxuZXhwb3J0ICogZnJvbSAnLi9yaW8tbGFuZGluZy16b25lJztcbmV4cG9ydCAqIGZyb20gJy4vcmlvLWxvYWQtYmFsYW5jZXInO1xuZXhwb3J0ICogZnJvbSAnLi9yaW8tY2xhaWRvbWV0ZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2ZhcmdhdGUvcmlvLWZhcmdhdGUtc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZhcmdhdGUvcmlvLWZhcmdhdGUtc2VydmljZS1ibHVlLWdyZWVuLWFscGhhJztcbmV4cG9ydCAqIGFzIGZhcmdhdGUgZnJvbSAnLi9mYXJnYXRlJztcblxuZXhwb3J0ICogZnJvbSAnLi9waXBlbGluZS9yaW8tYml0YnVja2V0LXNvdXJjZS1hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlbGluZS9yaW8tYmFja3VwLXNlY3JldHMtcmVzdG9yZS1zdGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVsaW5lL3Jpby1waXBlbGluZS10eXBlJztcblxuZXhwb3J0ICogZnJvbSAnLi9rYWZrYSc7XG5leHBvcnQgKiBhcyBrYWZrYSBmcm9tICcuL2thZmthJztcblxuZXhwb3J0ICogZnJvbSAnLi9zZXMnO1xuZXhwb3J0ICogYXMgc2VzIGZyb20gJy4vc2VzJztcblxuZXhwb3J0ICogZnJvbSAnLi9kYXRhZG9nJztcbmV4cG9ydCAqIGFzIGRhdGFkb2cgZnJvbSAnLi9kYXRhZG9nJztcbmV4cG9ydCAqIGFzIGRhdGFkb2d2MiBmcm9tICcuL2RhdGFkb2d2Mic7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJpYnV0aW9ucy9jb3AtZnJvbnRlbmQvY2xvdWRmcm9udCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJpYnV0aW9ucy90ZWFtLXRyYW5zcG9ydC10d28vZGF0YWRvZyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRyaWJ1dGlvbnMvdGVhbS10cmFuc3BvcnQtdHdvL3BpcGVsaW5lJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cmlidXRpb25zL3RlYW0tY2xhaWQvYXdzLWJhY2t1cC1tb25pdG9yaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vY29udHJpYnV0aW9ucy90ZWFtLWNsYWlkL2RhdGFkb2ctdXNhZ2UtbW9uaXRvcmluZyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJpYnV0aW9ucy90ZWFtLW91dGJvdW5kLW9yZGVyLWJvb2svYXdzLWVjcy1hYnJ1cHRseS1zdG9wcGVkLW1vbml0b3InO1xuXG5leHBvcnQgKiBmcm9tICcuL2JhY2t1cCc7XG5leHBvcnQgKiBhcyBiYWNrdXAgZnJvbSAnLi9iYWNrdXAnO1xuXG5leHBvcnQgKiBhcyBlY3IgZnJvbSAnLi9lY3InO1xuZXhwb3J0ICogZnJvbSAnLi90ZXN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cmlidXRpb25zL3NtYXJ0LXJvdXRlL2dpdGxhYi1ydW5uZXInO1xuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMkI7QUFFM0IsNkNBQTJDO0FBRTNDLHFEQUFtQztBQUNuQyxzREFBb0M7QUFDcEMsb0RBQWtDO0FBRWxDLGdFQUE4QztBQUM5QyxpRkFBK0Q7QUFDL0QsdUNBQXFDO0FBRXJDLHlFQUF1RDtBQUN2RCw4RUFBNEQ7QUFDNUQsK0RBQTZDO0FBRTdDLDBDQUF3QjtBQUN4QixtQ0FBaUM7QUFFakMsd0NBQXNCO0FBQ3RCLCtCQUE2QjtBQUU3Qiw0Q0FBMEI7QUFDMUIsdUNBQXFDO0FBQ3JDLDJDQUF5QztBQUV6QywwRUFBd0Q7QUFFeEQsNkVBQTJEO0FBQzNELHdGQUFzRTtBQUN0RSw4RUFBNEQ7QUFFNUQsbUZBQWlFO0FBQ2pFLHNGQUFvRTtBQUVwRSw0R0FBMEY7QUFFMUYsMkNBQXlCO0FBQ3pCLHFDQUFtQztBQUVuQywrQkFBNkI7QUFDN0IseUNBQXVCO0FBRXZCLDRFQUEwRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vd2F0Y2hmdWwnO1xuXG5leHBvcnQgKiBhcyB3YXRjaGZ1bHYyIGZyb20gJy4vd2F0Y2hmdWx2Mic7XG5cbmV4cG9ydCAqIGZyb20gJy4vcmlvLWxhbmRpbmctem9uZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jpby1sb2FkLWJhbGFuY2VyJztcbmV4cG9ydCAqIGZyb20gJy4vcmlvLWNsYWlkb21ldGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9mYXJnYXRlL3Jpby1mYXJnYXRlLXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mYXJnYXRlL3Jpby1mYXJnYXRlLXNlcnZpY2UtYmx1ZS1ncmVlbi1hbHBoYSc7XG5leHBvcnQgKiBhcyBmYXJnYXRlIGZyb20gJy4vZmFyZ2F0ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcGlwZWxpbmUvcmlvLWJpdGJ1Y2tldC1zb3VyY2UtYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZWxpbmUvcmlvLWJhY2t1cC1zZWNyZXRzLXJlc3RvcmUtc3RhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlbGluZS9yaW8tcGlwZWxpbmUtdHlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4va2Fma2EnO1xuZXhwb3J0ICogYXMga2Fma2EgZnJvbSAnLi9rYWZrYSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2VzJztcbmV4cG9ydCAqIGFzIHNlcyBmcm9tICcuL3Nlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZGF0YWRvZyc7XG5leHBvcnQgKiBhcyBkYXRhZG9nIGZyb20gJy4vZGF0YWRvZyc7XG5leHBvcnQgKiBhcyBkYXRhZG9ndjIgZnJvbSAnLi9kYXRhZG9ndjInO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyaWJ1dGlvbnMvY29wLWZyb250ZW5kL2Nsb3VkZnJvbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyaWJ1dGlvbnMvdGVhbS10cmFuc3BvcnQtdHdvL2RhdGFkb2cnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9kYXRhZG9nLXN5bnRoZXRpY3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9waXBlbGluZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJpYnV0aW9ucy90ZWFtLWNsYWlkL2F3cy1iYWNrdXAtbW9uaXRvcmluZyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRyaWJ1dGlvbnMvdGVhbS1jbGFpZC9kYXRhZG9nLXVzYWdlLW1vbml0b3JpbmcnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyaWJ1dGlvbnMvdGVhbS1vdXRib3VuZC1vcmRlci1ib29rL2F3cy1lY3MtYWJydXB0bHktc3RvcHBlZC1tb25pdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9iYWNrdXAnO1xuZXhwb3J0ICogYXMgYmFja3VwIGZyb20gJy4vYmFja3VwJztcblxuZXhwb3J0ICogYXMgZWNyIGZyb20gJy4vZWNyJztcbmV4cG9ydCAqIGZyb20gJy4vdGVzdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJpYnV0aW9ucy9zbWFydC1yb3V0ZS9naXRsYWItcnVubmVyJztcbiJdfQ==
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "main": "lib/index.js",
17
17
  "license": "Apache-2.0",
18
- "version": "6.20.0",
18
+ "version": "6.21.1",
19
19
  "types": "lib/index.d.ts",
20
20
  "stability": "stable",
21
21
  "exports": {
package/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "6.20.0"
2
+ "version": "6.21.1"
3
3
  }