@aws-cdk-testing/cli-integ 3.32.6 → 3.33.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.
Files changed (29) hide show
  1. package/npm-shrinkwrap.json +175 -263
  2. package/package.json +8 -8
  3. package/resources/cdk-apps/app/app.js +26 -0
  4. package/resources/cdk-apps/validate-app/app.js +94 -0
  5. package/resources/cdk-apps/validate-app/cdk.json +8 -0
  6. package/resources/cdk-apps/validate-online-app/app.js +94 -0
  7. package/resources/cdk-apps/validate-online-app/cdk.json +7 -0
  8. package/resources/cdk-apps/validate-passing-app/app.js +36 -0
  9. package/resources/cdk-apps/validate-passing-app/cdk.json +8 -0
  10. package/tests/cli-integ-tests/deploy/cdk-deploy-docker-asset-multi-dest.integtest.d.ts +1 -0
  11. package/tests/cli-integ-tests/deploy/cdk-deploy-docker-asset-multi-dest.integtest.js +7 -0
  12. package/tests/cli-integ-tests/deploy/cdk-deploy-docker-asset-multi-region.integtest.d.ts +1 -0
  13. package/tests/cli-integ-tests/deploy/cdk-deploy-docker-asset-multi-region.integtest.js +18 -0
  14. package/tests/cli-integ-tests/doctor/cdk-doctor.integtest.js +2 -2
  15. package/tests/cli-integ-tests/validate/cdk-validate-passes-clean-app.integtest.d.ts +1 -0
  16. package/tests/cli-integ-tests/validate/cdk-validate-passes-clean-app.integtest.js +8 -0
  17. package/tests/cli-integ-tests/validate/cdk-validate-reports-violations.integtest.d.ts +1 -0
  18. package/tests/cli-integ-tests/validate/cdk-validate-reports-violations.integtest.js +17 -0
  19. package/tests/cli-integ-tests/validate-online/cdk-validate-no-online-skips-cfn.integtest.d.ts +1 -0
  20. package/tests/cli-integ-tests/validate-online/cdk-validate-no-online-skips-cfn.integtest.js +19 -0
  21. package/tests/cli-integ-tests/validate-online/cdk-validate-online-catches-bucket-conflict.integtest.d.ts +1 -0
  22. package/tests/cli-integ-tests/validate-online/cdk-validate-online-catches-bucket-conflict.integtest.js +19 -0
  23. package/tests/cli-integ-tests/validate-online/cdk-validate-online-combined-offline-and-online.integtest.d.ts +1 -0
  24. package/tests/cli-integ-tests/validate-online/cdk-validate-online-combined-offline-and-online.integtest.js +24 -0
  25. package/tests/cli-integ-tests/validate-online/cdk-validate-online-passes-valid-template.integtest.d.ts +1 -0
  26. package/tests/cli-integ-tests/validate-online/cdk-validate-online-passes-valid-template.integtest.js +8 -0
  27. package/tests/telemetry-integ-tests/cdk-deploy-sequential-errors.d.ts +1 -0
  28. package/tests/telemetry-integ-tests/cdk-deploy-sequential-errors.js +45 -0
  29. package/tests/telemetry-integ-tests/cdk-deploy-telemetry.integtest.js +29 -3
@@ -26,6 +26,21 @@ const lib_1 = require("../../lib");
26
26
  eventId: expect.stringContaining(':1'),
27
27
  }),
28
28
  }),
29
+ expect.objectContaining({
30
+ counters: expect.objectContaining({
31
+ buildAsset_cnt: expect.any(Number),
32
+ buildAsset_ms: expect.any(Number),
33
+ fileAsset: 1,
34
+ publishAsset_cnt: expect.any(Number),
35
+ publishAsset_ms: expect.any(Number),
36
+ }),
37
+ identifiers: expect.objectContaining({
38
+ eventId: expect.stringContaining(':2'),
39
+ }),
40
+ event: expect.objectContaining({
41
+ eventType: 'ASSET',
42
+ }),
43
+ }),
29
44
  expect.objectContaining({
30
45
  event: expect.objectContaining({
31
46
  command: expect.objectContaining({
@@ -35,7 +50,10 @@ const lib_1 = require("../../lib");
35
50
  eventType: 'DEPLOY',
36
51
  }),
37
52
  identifiers: expect.objectContaining({
38
- eventId: expect.stringContaining(':2'),
53
+ eventId: expect.stringContaining(':3'),
54
+ }),
55
+ counters: expect.objectContaining({
56
+ sequentialDeploymentFailures: 0,
39
57
  }),
40
58
  }),
41
59
  expect.objectContaining({
@@ -47,10 +65,18 @@ const lib_1 = require("../../lib");
47
65
  eventType: 'INVOKE',
48
66
  }),
49
67
  identifiers: expect.objectContaining({
50
- eventId: expect.stringContaining(':3'),
68
+ eventId: expect.stringContaining(':4'),
69
+ }),
70
+ counters: expect.objectContaining({
71
+ init_ms: expect.any(Number),
72
+ load_ms: expect.any(Number),
73
+ publishAssetST_ms: expect.any(Number),
74
+ totalDeployTime_ms: expect.any(Number),
75
+ totalDeployedResources: expect.any(Number),
76
+ totalDeployedStacks: expect.any(Number),
51
77
  }),
52
78
  }),
53
79
  ]);
54
80
  fs.unlinkSync(telemetryFile);
55
81
  }));
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS10ZWxlbWV0cnkuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWRlcGxveS10ZWxlbWV0cnkuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQixtQ0FBMEQ7QUFFMUQsSUFBQSxlQUFTLEVBQ1AsZ0NBQWdDLEVBQ2hDLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXhFLDBDQUEwQztJQUMxQyxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1FBQ3JELGFBQWE7UUFDYixZQUFZLEVBQUUsQ0FBQyxFQUFFLGFBQWE7S0FDL0IsQ0FBQyxDQUFDO0lBRUgsMkRBQTJEO0lBQzNELE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUU5RCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9CLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7aUJBQzlCLENBQUM7Z0JBQ0YsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLFNBQVMsRUFBRSxPQUFPO2FBQ25CLENBQUM7WUFDRixXQUFXLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuQyxPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUN2QyxDQUFDO1NBQ0gsQ0FBQztRQUNGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztZQUN0QixLQUFLLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUM3QixPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO29CQUMvQixJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO2lCQUM5QixDQUFDO2dCQUNGLEtBQUssRUFBRSxXQUFXO2dCQUNsQixTQUFTLEVBQUUsUUFBUTthQUNwQixDQUFDO1lBQ0YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDbkMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7YUFDdkMsQ0FBQztTQUNILENBQUM7UUFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDL0IsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQztpQkFDOUIsQ0FBQztnQkFDRixLQUFLLEVBQUUsV0FBVztnQkFDbEIsU0FBUyxFQUFFLFFBQVE7YUFDcEIsQ0FBQztZQUNGLFdBQVcsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ25DLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2FBQ3ZDLENBQUM7U0FDSCxDQUFDO0tBQ0gsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vbGliJztcblxuaW50ZWdUZXN0KFxuICAnY2RrIGRlcGxveSB3aXRoIHRlbGVtZXRyeSBkYXRhJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3QgdGVsZW1ldHJ5RmlsZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ3RlbGVtZXRyeS5qc29uJyk7XG5cbiAgICAvLyBEZXBsb3kgc3RhY2sgd2hpbGUgY29sbGVjdGluZyB0ZWxlbWV0cnlcbiAgICBjb25zdCBkZXBsb3lPdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgndGVzdC0xJywge1xuICAgICAgdGVsZW1ldHJ5RmlsZSxcbiAgICAgIHZlcmJvc2VMZXZlbDogMywgLy8gdHJhY2UgbW9kZVxuICAgIH0pO1xuXG4gICAgLy8gQ2hlY2sgdGhlIHRyYWNlIHRoYXQgdGVsZW1ldHJ5IHdhcyBleGVjdXRlZCBzdWNjZXNzZnVsbHlcbiAgICBleHBlY3QoZGVwbG95T3V0cHV0KS50b0NvbnRhaW4oJ1RlbGVtZXRyeSBTZW50IFN1Y2Nlc3NmdWxseScpO1xuXG4gICAgY29uc3QganNvbiA9IGZzLnJlYWRKU09OU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgICBleHBlY3QoanNvbikudG9FcXVhbChbXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydkZXBsb3knLCAnJFNUQUNLU18xJ10sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3RhdGU6ICdTVUNDRUVERUQnLFxuICAgICAgICAgIGV2ZW50VHlwZTogJ1NZTlRIJyxcbiAgICAgICAgfSksXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgZXZlbnRJZDogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJzoxJyksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydkZXBsb3knLCAnJFNUQUNLU18xJ10sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3RhdGU6ICdTVUNDRUVERUQnLFxuICAgICAgICAgIGV2ZW50VHlwZTogJ0RFUExPWScsXG4gICAgICAgIH0pLFxuICAgICAgICBpZGVudGlmaWVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGV2ZW50SWQ6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCc6MicpLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBldmVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvbW1hbmQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIHBhdGg6IFsnZGVwbG95JywgJyRTVEFDS1NfMSddLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdJTlZPS0UnLFxuICAgICAgICB9KSxcbiAgICAgICAgaWRlbnRpZmllcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjMnKSxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICBdKTtcbiAgICBmcy51bmxpbmtTeW5jKHRlbGVtZXRyeUZpbGUpO1xuICB9KSxcbik7XG4iXX0=
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS10ZWxlbWV0cnkuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWRlcGxveS10ZWxlbWV0cnkuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQixtQ0FBMEQ7QUFFMUQsSUFBQSxlQUFTLEVBQ1AsZ0NBQWdDLEVBQ2hDLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXhFLDBDQUEwQztJQUMxQyxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1FBQ3JELGFBQWE7UUFDYixZQUFZLEVBQUUsQ0FBQyxFQUFFLGFBQWE7S0FDL0IsQ0FBQyxDQUFDO0lBRUgsMkRBQTJEO0lBQzNELE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUU5RCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9CLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7aUJBQzlCLENBQUM7Z0JBQ0YsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLFNBQVMsRUFBRSxPQUFPO2FBQ25CLENBQUM7WUFDRixXQUFXLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuQyxPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUN2QyxDQUFDO1NBQ0gsQ0FBQztRQUNGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztZQUN0QixRQUFRLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNoQyxjQUFjLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xDLGFBQWEsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztnQkFDakMsU0FBUyxFQUFFLENBQUM7Z0JBQ1osZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7Z0JBQ3BDLGVBQWUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQzthQUNwQyxDQUFDO1lBQ0YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDbkMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7YUFDdkMsQ0FBQztZQUNGLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLFNBQVMsRUFBRSxPQUFPO2FBQ25CLENBQUM7U0FDSCxDQUFDO1FBQ0YsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9CLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7aUJBQzlCLENBQUM7Z0JBQ0YsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLFNBQVMsRUFBRSxRQUFRO2FBQ3BCLENBQUM7WUFDRixXQUFXLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuQyxPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUN2QyxDQUFDO1lBQ0YsUUFBUSxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDaEMsNEJBQTRCLEVBQUUsQ0FBQzthQUNoQyxDQUFDO1NBQ0gsQ0FBQztRQUNGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztZQUN0QixLQUFLLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUM3QixPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO29CQUMvQixJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO2lCQUM5QixDQUFDO2dCQUNGLEtBQUssRUFBRSxXQUFXO2dCQUNsQixTQUFTLEVBQUUsUUFBUTthQUNwQixDQUFDO1lBQ0YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDbkMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7YUFDdkMsQ0FBQztZQUNGLFFBQVEsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2hDLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztnQkFDM0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO2dCQUMzQixpQkFBaUIsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztnQkFDckMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7Z0JBQ3RDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO2dCQUMxQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQzthQUN4QyxDQUFDO1NBQ0gsQ0FBQztLQUNILENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmludGVnVGVzdChcbiAgJ2NkayBkZXBsb3kgd2l0aCB0ZWxlbWV0cnkgZGF0YScsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHRlbGVtZXRyeUZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICd0ZWxlbWV0cnkuanNvbicpO1xuXG4gICAgLy8gRGVwbG95IHN0YWNrIHdoaWxlIGNvbGxlY3RpbmcgdGVsZW1ldHJ5XG4gICAgY29uc3QgZGVwbG95T3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ3Rlc3QtMScsIHtcbiAgICAgIHRlbGVtZXRyeUZpbGUsXG4gICAgICB2ZXJib3NlTGV2ZWw6IDMsIC8vIHRyYWNlIG1vZGVcbiAgICB9KTtcblxuICAgIC8vIENoZWNrIHRoZSB0cmFjZSB0aGF0IHRlbGVtZXRyeSB3YXMgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5XG4gICAgZXhwZWN0KGRlcGxveU91dHB1dCkudG9Db250YWluKCdUZWxlbWV0cnkgU2VudCBTdWNjZXNzZnVsbHknKTtcblxuICAgIGNvbnN0IGpzb24gPSBmcy5yZWFkSlNPTlN5bmModGVsZW1ldHJ5RmlsZSk7XG4gICAgZXhwZWN0KGpzb24pLnRvRXF1YWwoW1xuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBldmVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvbW1hbmQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIHBhdGg6IFsnZGVwbG95JywgJyRTVEFDS1NfMSddLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdTWU5USCcsXG4gICAgICAgIH0pLFxuICAgICAgICBpZGVudGlmaWVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGV2ZW50SWQ6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCc6MScpLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBjb3VudGVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGJ1aWxkQXNzZXRfY250OiBleHBlY3QuYW55KE51bWJlciksXG4gICAgICAgICAgYnVpbGRBc3NldF9tczogZXhwZWN0LmFueShOdW1iZXIpLFxuICAgICAgICAgIGZpbGVBc3NldDogMSxcbiAgICAgICAgICBwdWJsaXNoQXNzZXRfY250OiBleHBlY3QuYW55KE51bWJlciksXG4gICAgICAgICAgcHVibGlzaEFzc2V0X21zOiBleHBlY3QuYW55KE51bWJlciksXG4gICAgICAgIH0pLFxuICAgICAgICBpZGVudGlmaWVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGV2ZW50SWQ6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCc6MicpLFxuICAgICAgICB9KSxcbiAgICAgICAgZXZlbnQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBldmVudFR5cGU6ICdBU1NFVCcsXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydkZXBsb3knLCAnJFNUQUNLU18xJ10sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3RhdGU6ICdTVUNDRUVERUQnLFxuICAgICAgICAgIGV2ZW50VHlwZTogJ0RFUExPWScsXG4gICAgICAgIH0pLFxuICAgICAgICBpZGVudGlmaWVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGV2ZW50SWQ6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCc6MycpLFxuICAgICAgICB9KSxcbiAgICAgICAgY291bnRlcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBzZXF1ZW50aWFsRGVwbG95bWVudEZhaWx1cmVzOiAwLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBldmVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvbW1hbmQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIHBhdGg6IFsnZGVwbG95JywgJyRTVEFDS1NfMSddLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdJTlZPS0UnLFxuICAgICAgICB9KSxcbiAgICAgICAgaWRlbnRpZmllcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjQnKSxcbiAgICAgICAgfSksXG4gICAgICAgIGNvdW50ZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgaW5pdF9tczogZXhwZWN0LmFueShOdW1iZXIpLFxuICAgICAgICAgIGxvYWRfbXM6IGV4cGVjdC5hbnkoTnVtYmVyKSxcbiAgICAgICAgICBwdWJsaXNoQXNzZXRTVF9tczogZXhwZWN0LmFueShOdW1iZXIpLFxuICAgICAgICAgIHRvdGFsRGVwbG95VGltZV9tczogZXhwZWN0LmFueShOdW1iZXIpLFxuICAgICAgICAgIHRvdGFsRGVwbG95ZWRSZXNvdXJjZXM6IGV4cGVjdC5hbnkoTnVtYmVyKSxcbiAgICAgICAgICB0b3RhbERlcGxveWVkU3RhY2tzOiBleHBlY3QuYW55KE51bWJlciksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgXSk7XG4gICAgZnMudW5saW5rU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgfSksXG4pO1xuIl19