aws-cdk 2.32.0 → 2.34.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.
@@ -9,24 +9,51 @@ const OVERRIDE = 'TheOverride';
9
9
  const USE_OVERRIDE = { ParameterKey: PARAM, ParameterValue: OVERRIDE };
10
10
  const USE_PREVIOUS = { ParameterKey: PARAM, UsePreviousValue: true };
11
11
  let sdkProvider;
12
+ let describeStackMock;
13
+ let getTemplateMock;
12
14
  let cfnMocks;
13
15
  let cfn;
14
16
  beforeEach(async () => {
15
17
  sdkProvider = new mock_sdk_1.MockSdkProvider();
18
+ describeStackMock = jest.fn();
19
+ getTemplateMock = jest.fn();
16
20
  cfnMocks = {
17
- describeStacks: jest.fn()
18
- // No stacks exist
19
- .mockImplementation(() => ({ Stacks: [] })),
21
+ describeStacks: describeStackMock,
22
+ getTemplate: getTemplateMock,
20
23
  };
21
24
  sdkProvider.stubCloudFormation(cfnMocks);
22
25
  cfn = (await sdkProvider.forEnvironment()).sdk.cloudFormation();
23
26
  });
24
27
  test('A non-existent stack pretends to have an empty template', async () => {
28
+ // GIVEN
29
+ describeStackMock.mockImplementation(() => ({ Stacks: [] })); // No stacks exist
25
30
  // WHEN
26
31
  const stack = await cloudformation_1.CloudFormationStack.lookup(cfn, 'Dummy');
27
32
  // THEN
28
33
  expect(await stack.template()).toEqual({});
29
34
  });
35
+ test("Retrieving a processed template passes 'Processed' to CloudFormation", async () => {
36
+ // GIVEN
37
+ describeStackMock.mockImplementation(() => ({
38
+ Stacks: [
39
+ {
40
+ StackName: 'Dummy',
41
+ },
42
+ ],
43
+ }));
44
+ getTemplateMock.mockImplementation(() => ({
45
+ TemplateBody: '{}',
46
+ }));
47
+ // WHEN
48
+ const retrieveProcessedTemplate = true;
49
+ const cloudFormationStack = await cloudformation_1.CloudFormationStack.lookup(cfn, 'Dummy', retrieveProcessedTemplate);
50
+ await cloudFormationStack.template();
51
+ // THEN
52
+ expect(getTemplateMock).toHaveBeenCalledWith({
53
+ StackName: 'Dummy',
54
+ TemplateStage: 'Processed',
55
+ });
56
+ });
30
57
  test.each([
31
58
  [false, false],
32
59
  [false, true],
@@ -141,4 +168,4 @@ function makeParams(defaultValue, hasPrevValue, override) {
141
168
  const stackParams = params.updateExisting({ [PARAM]: override ? OVERRIDE : undefined }, prevParams);
142
169
  return { apiParameters: stackParams.apiParameters, changed: stackParams.hasChanges(prevParams) };
143
170
  }
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsb3VkZm9ybWF0aW9uLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0Q0FBeUQ7QUFDekQsc0VBQTRGO0FBQzVGLHlDQUFnRjtBQUVoRixNQUFNLEtBQUssR0FBRyxjQUFjLENBQUM7QUFDN0IsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0FBQzdCLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQztBQUUvQixNQUFNLFlBQVksR0FBRyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQ3ZFLE1BQU0sWUFBWSxHQUFHLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVyRSxJQUFJLFdBQTRCLENBQUM7QUFDakMsSUFBSSxRQUErRCxDQUFDO0FBQ3BFLElBQUksR0FBdUIsQ0FBQztBQUM1QixVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7SUFDcEIsV0FBVyxHQUFHLElBQUksMEJBQWUsRUFBRSxDQUFDO0lBRXBDLFFBQVEsR0FBRztRQUNULGNBQWMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLGtCQUFrQjthQUNqQixrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDOUMsQ0FBQztJQUNGLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFlLENBQUMsQ0FBQztJQUNoRCxHQUFHLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztBQUNsRSxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyx5REFBeUQsRUFBRSxLQUFLLElBQUksRUFBRTtJQUN6RSxPQUFPO0lBQ1AsTUFBTSxLQUFLLEdBQUcsTUFB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QVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRSxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLENBQUMsQ0FBQyxDQUFDO0FBRUgsU0FBUyxVQUFVLENBQUMsWUFBcUIsRUFBRSxZQUFxQixFQUFFLFFBQWlCO0lBQ2pGLE1BQU0sTUFBTSxHQUFHLG1DQUFrQixDQUFDLFlBQVksQ0FBQztRQUM3QyxVQUFVLEVBQUU7WUFDVixDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNQLElBQUksRUFBRSxRQUFRO2dCQUNkLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUzthQUM1QztTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxVQUFVLEdBQTJCLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbEYsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXBHLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO0FBQ25HLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTU01QQVJBTV9OT19JTlZBTElEQVRFIH0gZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB7IENsb3VkRm9ybWF0aW9uU3RhY2ssIFRlbXBsYXRlUGFyYW1ldGVycyB9IGZyb20gJy4uLy4uL2xpYi9hcGkvdXRpbC9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBNb2NrZWRPYmplY3QsIE1vY2tTZGtQcm92aWRlciwgU3luY0hhbmRsZXJTdWJzZXRPZiB9IGZyb20gJy4vbW9jay1zZGsnO1xuXG5jb25zdCBQQVJBTSA9ICdUaGVQYXJhbWV0ZXInO1xuY29uc3QgREVGQVVMVCA9ICdUaGVEZWZhdWx0JztcbmNvbnN0IE9WRVJSSURFID0gJ1RoZU92ZXJyaWRlJztcblxuY29uc3QgVVNFX09WRVJSSURFID0geyBQYXJhbWV0ZXJLZXk6IFBBUkFNLCBQYXJhbWV0ZXJWYWx1ZTogT1ZFUlJJREUgfTtcbmNvbnN0IFVTRV9QUkVWSU9VUyA9IHsgUGFyYW1ldGVyS2V5OiBQQVJBTSwgVXNlUHJldmlvdXNWYWx1ZTogdHJ1ZSB9O1xuXG5sZXQgc2RrUHJvdmlkZXI6IE1vY2tTZGtQcm92aWRlcjtcbmxldCBjZm5Nb2NrczogTW9ja2VkT2JqZWN0PFN5bmNIYW5kbGVyU3Vic2V0T2Y8QVdTLkNsb3VkRm9ybWF0aW9uPj47XG5sZXQgY2ZuOiBBV1MuQ2xvdWRGb3JtYXRpb247XG5iZWZvcmVFYWNoKGFzeW5jICgpID0+IHtcbiAgc2RrUHJvdmlkZXIgPSBuZXcgTW9ja1Nka1Byb3ZpZGVyKCk7XG5cbiAgY2ZuTW9ja3MgPSB7XG4gICAgZGVzY3JpYmVTdGFja3M6IGplc3QuZm4oKVxuICAgICAgLy8gTm8gc3RhY2tzIGV4aXN0XG4gICAgICAubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+ICh7IFN0YWNrczogW10gfSkpLFxuICB9O1xuICBzZGtQcm92aWRlci5zdHViQ2xvdWRGb3JtYXRpb24oY2ZuTW9ja3MgYXMgYW55KTtcbiAgY2ZuID0gKGF3YWl0IHNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KCkpLnNkay5jbG91ZEZvcm1hdGlvbigpO1xufSk7XG5cbnRlc3QoJ0Egbm9uLWV4aXN0ZW50IHN0YWNrIHByZXRlbmRzIHRvIGhhdmUgYW4gZW1wdHkgdGVtcGxhdGUnLCBhc3luYyAoKSA9PiB7XG4gIC8vIFdIRU5cbiAgY29uc3Qgc3RhY2sgPSBhd2FpdCBDbG91ZEZvcm1hdGlvblN0YWNrLmxvb2t1cChjZm4sICdEdW1teScpO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KGF3YWl0IHN0YWNrLnRlbXBsYXRlKCkpLnRvRXF1YWwoe30pO1xufSk7XG5cbnRlc3QuZWFjaChbXG4gIFtmYWxzZSwgZmFsc2VdLFxuICBbZmFsc2UsIHRydWVdLFxuICBbdHJ1ZSwgZmFsc2VdLFxuICBbdHJ1ZSwgdHJ1ZV0sXG5dKSgnZ2l2ZW4gb3ZlcnJpZGUsIGFsd2F5cyB1c2UgdGhlIG92ZXJyaWRlIChwYXJhbWV0ZXIgaGFzIGEgZGVmYXVsdDogJXAsIHBhcmFtZXRlciBwcmV2aW91c2x5IHN1cHBsaWVkOiAlcCknLFxuICAoaGF2ZURlZmF1bHQsIGhhdmVQcmV2aW91cykgPT4ge1xuICAgIGV4cGVjdChtYWtlUGFyYW1zKGhhdmVEZWZhdWx0LCBoYXZlUHJldmlvdXMsIHRydWUpKS50b0VxdWFsKHtcbiAgICAgIGFwaVBhcmFtZXRlcnM6IFtVU0VfT1ZFUlJJREVdLFxuICAgICAgY2hhbmdlZDogdHJ1ZSxcbiAgICB9KTtcbiAgfSk7XG5cbnRlc3QoJ25vIGRlZmF1bHQsIG5vIHByZXYsIG5vIG92ZXJyaWRlID0+IGVycm9yJywgKCkgPT4ge1xuICBleHBlY3QoKCkgPT4gbWFrZVBhcmFtcyhmYWxzZSwgZmFsc2UsIGZhbHNlKSkudG9UaHJvdygvbWlzc2luZyBhIHZhbHVlOiBUaGVQYXJhbWV0ZXIvKTtcbn0pO1xuXG50ZXN0KCdubyBkZWZhdWx0LCB5ZXMgcHJldiwgbm8gb3ZlcnJpZGUgPT4gdXNlIHByZXZpb3VzJywgKCkgPT4ge1xuICBleHBlY3QobWFrZVBhcmFtcyhmYWxzZSwgdHJ1ZSwgZmFsc2UpKS50b0VxdWFsKHtcbiAgICBhcGlQYXJhbWV0ZXJzOiBbVVNFX1BSRVZJT1VTXSxcbiAgICBjaGFuZ2VkOiBmYWxzZSxcbiAgfSk7XG59KTtcblxudGVzdCgnZGVmYXVsdCwgbm8gcHJldiwgbm8gb3ZlcnJpZGUgPT4gZW1wdHkgcGFyYW0gc2V0IChhbmQgb2J2aW91c2x5IGNoYW5nZXMgdG8gYmUgYXBwbGllZCknLCAoKSA9PiB7XG4gIGV4cGVjdChtYWtlUGFyYW1zKHRydWUsIGZhbHNlLCBmYWxzZSkpLnRvRXF1YWwoe1xuICAgIGFwaVBhcmFtZXRlcnM6IFtdLFxuICAgIGNoYW5nZWQ6IHRydWUsXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2RlZmF1bHQsIHByZXYsIG5vIG92ZXJyaWRlID0+IHVzZSBwcmV2aW91cycsICgpID0+IHtcbiAgZXhwZWN0KG1ha2VQYXJhbXModHJ1ZSwgdHJ1ZSwgZmFsc2UpKS50b0VxdWFsKHtcbiAgICBhcGlQYXJhbWV0ZXJzOiBbVVNFX1BSRVZJT1VTXSxcbiAgICBjaGFuZ2VkOiBmYWxzZSxcbiAgfSk7XG59KTtcblxudGVzdCgnaWYgYSBwYXJhbWV0ZXIgaXMgcmV0cmlldmVkIGZyb20gU1NNLCB0aGUgcGFyYW1ldGVycyBhbHdheXMgY291bnQgYXMgY2hhbmdlZCcsICgpID0+IHtcbiAgY29uc3QgcGFyYW1zID0gVGVtcGxhdGVQYXJhbWV0ZXJzLmZyb21UZW1wbGF0ZSh7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgRm9vOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlNTTTo6UGFyYW1ldGVyOjpOYW1lJyxcbiAgICAgICAgRGVmYXVsdDogJy9Tb21lL0tleScsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBjb25zdCBvbGRWYWx1ZXMgPSB7IEZvbzogJy9Tb21lL0tleScgfTtcblxuICAvLyBJZiB3ZSBkb24ndCBwYXNzIGEgbmV3IHZhbHVlXG4gIGV4cGVjdChwYXJhbXMudXBkYXRlRXhpc3Rpbmcoe30sIG9sZFZhbHVlcykuaGFzQ2hhbmdlcyhvbGRWYWx1ZXMpKS50b0VxdWFsKCdzc20nKTtcblxuICAvLyBJZiB3ZSBkbyBwYXNzIGEgbmV3IHZhbHVlIGJ1dCBpdCdzIHRoZSBzYW1lIGFzIHRoZSBvbGQgb25lXG4gIGV4cGVjdChwYXJhbXMudXBkYXRlRXhpc3RpbmcoeyBGb286ICcvU29tZS9LZXknIH0sIG9sZFZhbHVlcykuaGFzQ2hhbmdlcyhvbGRWYWx1ZXMpKS50b0VxdWFsKCdzc20nKTtcbn0pO1xuXG50ZXN0KCdpZiBhIHBhcmFtZXRlciBpcyByZXRyaWV2ZWQgZnJvbSBTU00sIHRoZSBwYXJhbWV0ZXJzIGRvZXNudCBjb3VudCBhcyBjaGFuZ2VkIGlmIGl0IGhhcyB0aGUgbWFnaWMgbWFya2VyJywgKCkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSBUZW1wbGF0ZVBhcmFtZXRlcnMuZnJvbVRlbXBsYXRlKHtcbiAgICBQYXJhbWV0ZXJzOiB7XG4gICAgICBGb286IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6U1NNOjpQYXJhbWV0ZXI6Ok5hbWUnLFxuICAgICAgICBEZWZhdWx0OiAnL1NvbWUvS2V5JyxcbiAgICAgICAgRGVzY3JpcHRpb246IGBibGFibGEgJHtTU01QQVJBTV9OT19JTlZBTElEQVRFfWAsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBjb25zdCBvbGRWYWx1ZXMgPSB7IEZvbzogJy9Tb21lL0tleScgfTtcblxuICAvLyBJZiB3ZSBkb24ndCBwYXNzIGEgbmV3IHZhbHVlXG4gIGV4cGVjdChwYXJhbXMudXBkYXRlRXhpc3Rpbmcoe30sIG9sZFZhbHVlcykuaGFzQ2hhbmdlcyhvbGRWYWx1ZXMpKS50b0VxdWFsKGZhbHNlKTtcblxuICAvLyBJZiB3ZSBkbyBwYXNzIGEgbmV3IHZhbHVlIGJ1dCBpdCdzIHRoZSBzYW1lIGFzIHRoZSBvbGQgb25lXG4gIGV4cGVjdChwYXJhbXMudXBkYXRlRXhpc3RpbmcoeyBGb286ICcvU29tZS9LZXknIH0sIG9sZFZhbHVlcykuaGFzQ2hhbmdlcyhvbGRWYWx1ZXMpKS50b0VxdWFsKGZhbHNlKTtcblxuICAvLyBJZiB3ZSBkbyBwYXNzIGEgbmV3IHZhbHVlIGFuZCBpdCdzIGRpZmZlcmVudFxuICBleHBlY3QocGFyYW1zLnVwZGF0ZUV4aXN0aW5nKHsgRm9vOiAnL09USEVSL0tleScgfSwgb2xkVmFsdWVzKS5oYXNDaGFuZ2VzKG9sZFZhbHVlcykpLnRvRXF1YWwodHJ1ZSk7XG59KTtcblxudGVzdCgnZW1wdHkgc3RyaW5nIGlzIGEgdmFsaWQgdXBkYXRlIHZhbHVlJywgKCkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSBUZW1wbGF0ZVBhcmFtZXRlcnMuZnJvbVRlbXBsYXRlKHtcbiAgICBQYXJhbWV0ZXJzOiB7XG4gICAgICBGb286IHsgVHlwZTogJ1N0cmluZycsIERlZmF1bHQ6ICdGb28nIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgZXhwZWN0KHBhcmFtcy51cGRhdGVFeGlzdGluZyh7IEZvbzogJycgfSwgeyBGb286ICdUaGlzSXNPbGQnIH0pLmFwaVBhcmFtZXRlcnMpLnRvRXF1YWwoW1xuICAgIHsgUGFyYW1ldGVyS2V5OiAnRm9vJywgUGFyYW1ldGVyVmFsdWU6ICcnIH0sXG4gIF0pO1xufSk7XG5cbnRlc3QoJ3Vua25vd24gcGFyYW1ldGVyIGluIG92ZXJyaWRlcywgcGFzcyBpdCBhbnl3YXknLCAoKSA9PiB7XG4gIC8vIE5vdCBzdXJlIGlmIHdlIHJlYWxseSB3YW50IHRoaXMuIEl0IHNlZW1zIGxpa2UgaXQgd291bGQgYmUgbmljZVxuICAvLyB0byBub3QgcGFzcyBwYXJhbWV0ZXJzIHRoYXQgYXJlbid0IGV4cGVjdGVkLCBnaXZlbiB0aGF0IENGTiB3aWxsXG4gIC8vIGp1c3QgZXJyb3Igb3V0LiBCdXQgbWF5YmUgd2Ugd2FudCB0byBiZSB3YXJuZWQgb2YgdHlwb3MuLi5cbiAgY29uc3QgcGFyYW1zID0gVGVtcGxhdGVQYXJhbWV0ZXJzLmZyb21UZW1wbGF0ZSh7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgRm9vOiB7IFR5cGU6ICdTdHJpbmcnLCBEZWZhdWx0OiAnRm9vJyB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIGV4cGVjdChwYXJhbXMudXBkYXRlRXhpc3RpbmcoeyBCYXI6ICdCYXInIH0sIHt9KS5hcGlQYXJhbWV0ZXJzKS50b0VxdWFsKFtcbiAgICB7IFBhcmFtZXRlcktleTogJ0JhcicsIFBhcmFtZXRlclZhbHVlOiAnQmFyJyB9LFxuICBdKTtcbn0pO1xuXG50ZXN0KCdpZiBhbiB1bnN1cHBsaWVkIHBhcmFtZXRlciByZXZlcnRzIHRvIGl0cyBkZWZhdWx0LCBpdCBjYW4gc3RpbGwgYmUgZGlydHknLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHRlbXBsYXRlUGFyYW1zID0gVGVtcGxhdGVQYXJhbWV0ZXJzLmZyb21UZW1wbGF0ZSh7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgRm9vOiB7IFR5cGU6ICdTdHJpbmcnLCBEZWZhdWx0OiAnRm9vJyB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgY29uc3Qgc3RhY2tQYXJhbXMgPSB0ZW1wbGF0ZVBhcmFtcy5zdXBwbHlBbGwoe30pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHN0YWNrUGFyYW1zLmhhc0NoYW5nZXMoeyBGb286ICdOb25TdGFuZGFyZCcgfSkpLnRvRXF1YWwodHJ1ZSk7XG4gIGV4cGVjdChzdGFja1BhcmFtcy5oYXNDaGFuZ2VzKHsgRm9vOiAnRm9vJyB9KSkudG9FcXVhbChmYWxzZSk7XG59KTtcblxuZnVuY3Rpb24gbWFrZVBhcmFtcyhkZWZhdWx0VmFsdWU6IGJvb2xlYW4sIGhhc1ByZXZWYWx1ZTogYm9vbGVhbiwgb3ZlcnJpZGU6IGJvb2xlYW4pIHtcbiAgY29uc3QgcGFyYW1zID0gVGVtcGxhdGVQYXJhbWV0ZXJzLmZyb21UZW1wbGF0ZSh7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgW1BBUkFNXToge1xuICAgICAgICBUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgRGVmYXVsdDogZGVmYXVsdFZhbHVlID8gREVGQVVMVCA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IHByZXZQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBoYXNQcmV2VmFsdWUgPyB7IFtQQVJBTV06ICdGb28nIH0gOiB7fTtcbiAgY29uc3Qgc3RhY2tQYXJhbXMgPSBwYXJhbXMudXBkYXRlRXhpc3RpbmcoeyBbUEFSQU1dOiBvdmVycmlkZSA/IE9WRVJSSURFIDogdW5kZWZpbmVkIH0sIHByZXZQYXJhbXMpO1xuXG4gIHJldHVybiB7IGFwaVBhcmFtZXRlcnM6IHN0YWNrUGFyYW1zLmFwaVBhcmFtZXRlcnMsIGNoYW5nZWQ6IHN0YWNrUGFyYW1zLmhhc0NoYW5nZXMocHJldlBhcmFtcykgfTtcbn1cbiJdfQ==
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmb3JtYXRpb24udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsb3VkZm9ybWF0aW9uLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0Q0FBeUQ7QUFDekQsc0VBQTRGO0FBQzVGLHlDQUFnRjtBQUVoRixNQUFNLEtBQUssR0FBRyxjQUFjLENBQUM7QUFDN0IsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0FBQzdCLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQztBQUUvQixNQUFNLFlBQVksR0FBRyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQ3ZFLE1BQU0sWUFBWSxHQUFHLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVyRSxJQUFJLFdBQTRCLENBQUM7QUFDakMsSUFBSSxpQkFBNEIsQ0FBQztBQUNqQyxJQUFJLGVBQTBCLENBQUM7QUFDL0IsSUFBSSxRQUErRCxDQUFDO0FBQ3BFLElBQUksR0FBdUIsQ0FBQztBQUM1QixVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7SUFDcEIsV0FBVyxHQUFHLElBQUksMEJBQWUsRUFBRSxDQUFDO0lBRXBDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUM5QixlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzVCLFFBQVEsR0FBRztRQUNULGNBQWMsRUFBRSxpQkFBaUI7UUFDakMsV0FBVyxFQUFFLGVBQWU7S0FDN0IsQ0FBQztJQUNGLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFlLENBQUMsQ0FBQztJQUNoRCxHQUFHLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztBQUNsRSxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyx5REFBeUQsRUFB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QUFDLENBQUM7QUFDaEUsQ0FBQyxDQUFDLENBQUM7QUFFSCxTQUFTLFVBQVUsQ0FBQyxZQUFxQixFQUFFLFlBQXFCLEVBQUUsUUFBaUI7SUFDakYsTUFBTSxNQUFNLEdBQUcsbUNBQWtCLENBQUMsWUFBWSxDQUFDO1FBQzdDLFVBQVUsRUFBRTtZQUNWLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQzVDO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFDSCxNQUFNLFVBQVUsR0FBMkIsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNsRixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7QUFDbkcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNTTVBBUkFNX05PX0lOVkFMSURBVEUgfSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHsgQ2xvdWRGb3JtYXRpb25TdGFjaywgVGVtcGxhdGVQYXJhbWV0ZXJzIH0gZnJvbSAnLi4vLi4vbGliL2FwaS91dGlsL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IE1vY2tlZE9iamVjdCwgTW9ja1Nka1Byb3ZpZGVyLCBTeW5jSGFuZGxlclN1YnNldE9mIH0gZnJvbSAnLi9tb2NrLXNkayc7XG5cbmNvbnN0IFBBUkFNID0gJ1RoZVBhcmFtZXRlcic7XG5jb25zdCBERUZBVUxUID0gJ1RoZURlZmF1bHQnO1xuY29uc3QgT1ZFUlJJREUgPSAnVGhlT3ZlcnJpZGUnO1xuXG5jb25zdCBVU0VfT1ZFUlJJREUgPSB7IFBhcmFtZXRlcktleTogUEFSQU0sIFBhcmFtZXRlclZhbHVlOiBPVkVSUklERSB9O1xuY29uc3QgVVNFX1BSRVZJT1VTID0geyBQYXJhbWV0ZXJLZXk6IFBBUkFNLCBVc2VQcmV2aW91c1ZhbHVlOiB0cnVlIH07XG5cbmxldCBzZGtQcm92aWRlcjogTW9ja1Nka1Byb3ZpZGVyO1xubGV0IGRlc2NyaWJlU3RhY2tNb2NrOiBqZXN0Lk1vY2s7XG5sZXQgZ2V0VGVtcGxhdGVNb2NrOiBqZXN0Lk1vY2s7XG5sZXQgY2ZuTW9ja3M6IE1vY2tlZE9iamVjdDxTeW5jSGFuZGxlclN1YnNldE9mPEFXUy5DbG91ZEZvcm1hdGlvbj4+O1xubGV0IGNmbjogQVdTLkNsb3VkRm9ybWF0aW9uO1xuYmVmb3JlRWFjaChhc3luYyAoKSA9PiB7XG4gIHNka1Byb3ZpZGVyID0gbmV3IE1vY2tTZGtQcm92aWRlcigpO1xuXG4gIGRlc2NyaWJlU3RhY2tNb2NrID0gamVzdC5mbigpO1xuICBnZXRUZW1wbGF0ZU1vY2sgPSBqZXN0LmZuKCk7XG4gIGNmbk1vY2tzID0ge1xuICAgIGRlc2NyaWJlU3RhY2tzOiBkZXNjcmliZVN0YWNrTW9jayxcbiAgICBnZXRUZW1wbGF0ZTogZ2V0VGVtcGxhdGVNb2NrLFxuICB9O1xuICBzZGtQcm92aWRlci5zdHViQ2xvdWRGb3JtYXRpb24oY2ZuTW9ja3MgYXMgYW55KTtcbiAgY2ZuID0gKGF3YWl0IHNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KCkpLnNkay5jbG91ZEZvcm1hdGlvbigpO1xufSk7XG5cbnRlc3QoJ0Egbm9uLWV4aXN0ZW50IHN0YWNrIHByZXRlbmRzIHRvIGhhdmUgYW4gZW1wdHkgdGVtcGxhdGUnLCBhc3luYyAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGRlc2NyaWJlU3RhY2tNb2NrLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiAoeyBTdGFja3M6IFtdIH0pKTsgLy8gTm8gc3RhY2tzIGV4aXN0XG5cbiAgLy8gV0hFTlxuICBjb25zdCBzdGFjayA9IGF3YWl0IENsb3VkRm9ybWF0aW9uU3RhY2subG9va3VwKGNmbiwgJ0R1bW15Jyk7XG5cbiAgLy8gVEhFTlxuICBleHBlY3QoYXdhaXQgc3RhY2sudGVtcGxhdGUoKSkudG9FcXVhbCh7fSk7XG59KTtcblxudGVzdChcIlJldHJpZXZpbmcgYSBwcm9jZXNzZWQgdGVtcGxhdGUgcGFzc2VzICdQcm9jZXNzZWQnIHRvIENsb3VkRm9ybWF0aW9uXCIsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgZGVzY3JpYmVTdGFja01vY2subW9ja0ltcGxlbWVudGF0aW9uKCgpID0+ICh7XG4gICAgU3RhY2tzOiBbXG4gICAgICB7XG4gICAgICAgIFN0YWNrTmFtZTogJ0R1bW15JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSkpO1xuICBnZXRUZW1wbGF0ZU1vY2subW9ja0ltcGxlbWVudGF0aW9uKCgpID0+ICh7XG4gICAgVGVtcGxhdGVCb2R5OiAne30nLFxuICB9KSk7XG5cbiAgLy8gV0hFTlxuICBjb25zdCByZXRyaWV2ZVByb2Nlc3NlZFRlbXBsYXRlID0gdHJ1ZTtcbiAgY29uc3QgY2xvdWRGb3JtYXRpb25TdGFjayA9IGF3YWl0IENsb3VkRm9ybWF0aW9uU3RhY2subG9va3VwKGNmbiwgJ0R1bW15JywgcmV0cmlldmVQcm9jZXNzZWRUZW1wbGF0ZSk7XG4gIGF3YWl0IGNsb3VkRm9ybWF0aW9uU3RhY2sudGVtcGxhdGUoKTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChnZXRUZW1wbGF0ZU1vY2spLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICBTdGFja05hbWU6ICdEdW1teScsXG4gICAgVGVtcGxhdGVTdGFnZTogJ1Byb2Nlc3NlZCcsXG4gIH0pO1xufSk7XG5cbnRlc3QuZWFjaChbXG4gIFtmYWxzZSwgZmFsc2VdLFxuICBbZmFsc2UsIHRydWVdLFxuICBbdHJ1ZSwgZmFsc2VdLFxuICBbdHJ1ZSwgdHJ1ZV0sXG5dKSgnZ2l2ZW4gb3ZlcnJpZGUsIGFsd2F5cyB1c2UgdGhlIG92ZXJyaWRlIChwYXJhbWV0ZXIgaGFzIGEgZGVmYXVsdDogJXAsIHBhcmFtZXRlciBwcmV2aW91c2x5IHN1cHBsaWVkOiAlcCknLFxuICAoaGF2ZURlZmF1bHQsIGhhdmVQcmV2aW91cykgPT4ge1xuICAgIGV4cGVjdChtYWtlUGFyYW1zKGhhdmVEZWZhdWx0LCBoYXZlUHJldmlvdXMsIHRydWUpKS50b0VxdWFsKHtcbiAgICAgIGFwaVBhcmFtZXRlcnM6IFtVU0VfT1ZFUlJJREVdLFxuICAgICAgY2hhbmdlZDogdHJ1ZSxcbiAgICB9KTtcbiAgfSk7XG5cbnRlc3QoJ25vIGRlZmF1bHQsIG5vIHByZXYsIG5vIG92ZXJyaWRlID0+IGVycm9yJywgKCkgPT4ge1xuICBleHBlY3QoKCkgPT4gbWFrZVBhcmFtcyhmYWxzZSwgZmFsc2UsIGZhbHNlKSkudG9UaHJvdygvbWlzc2luZyBhIHZhbHVlOiBUaGVQYXJhbWV0ZXIvKTtcbn0pO1xuXG50ZXN0KCdubyBkZWZhdWx0LCB5ZXMgcHJldiwgbm8gb3ZlcnJpZGUgPT4gdXNlIHByZXZpb3VzJywgKCkgPT4ge1xuICBleHBlY3QobWFrZVBhcmFtcyhmYWxzZSwgdHJ1ZSwgZmFsc2UpKS50b0VxdWFsKHtcbiAgICBhcGlQYXJhbWV0ZXJzOiBbVVNFX1BSRVZJT1VTXSxcbiAgICBjaGFuZ2VkOiBmYWxzZSxcbiAgfSk7XG59KTtcblxudGVzdCgnZGVmYXVsdCwgbm8gcHJldiwgbm8gb3ZlcnJpZGUgPT4gZW1wdHkgcGFyYW0gc2V0IChhbmQgb2J2aW91c2x5IGNoYW5nZXMgdG8gYmUgYXBwbGllZCknLCAoKSA9PiB7XG4gIGV4cGVjdChtYWtlUGFyYW1zKHRydWUsIGZhbHNlLCBmYWxzZSkpLnRvRXF1YWwoe1xuICAgIGFwaVBhcmFtZXRlcnM6IFtdLFxuICAgIGNoYW5nZWQ6IHRydWUsXG4gIH0pO1xufSk7XG5cbnRlc3QoJ2RlZmF1bHQsIHByZXYsIG5vIG92ZXJyaWRlID0+IHVzZSBwcmV2aW91cycsICgpID0+IHtcbiAgZXhwZWN0KG1ha2VQYXJhbXModHJ1ZSwgdHJ1ZSwgZmFsc2UpKS50b0VxdWFsKHtcbiAgICBhcGlQYXJhbWV0ZXJzOiBbVVNFX1BSRVZJT1VTXSxcbiAgICBjaGFuZ2VkOiBmYWxzZSxcbiAgfSk7XG59KTtcblxudGVzdCgnaWYgYSBwYXJhbWV0ZXIgaXMgcmV0cmlldmVkIGZyb20gU1NNLCB0aGUgcGFyYW1ldGVycyBhbHdheXMgY291bnQgYXMgY2hhbmdlZCcsICgpID0+IHtcbiAgY29uc3QgcGFyYW1zID0gVGVtcGxhdGVQYXJhbWV0ZXJzLmZyb21UZW1wbGF0ZSh7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgRm9vOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OlNTTTo6UGFyYW1ldGVyOjpOYW1lJyxcbiAgICAgICAgRGVmYXVsdDogJy9Tb21lL0tleScsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBjb25zdCBvbGRWYWx1ZXMgPSB7IEZvbzogJy9Tb21lL0tleScgfTtcblxuICAvLyBJZiB3ZSBkb24ndCBwYXNzIGEgbmV3IHZhbHVlXG4gIGV4cGVjdChwYXJhbXMudXBkYXRlRXhpc3Rpbmcoe30sIG9sZFZhbHVlcykuaGFzQ2hhbmdlcyhvbGRWYWx1ZXMpKS50b0VxdWFsKCdzc20nKTtcblxuICAvLyBJZiB3ZSBkbyBwYXNzIGEgbmV3IHZhbHVlIGJ1dCBpdCdzIHRoZSBzYW1lIGFzIHRoZSBvbGQgb25lXG4gIGV4cGVjdChwYXJhbXMudXBkYXRlRXhpc3RpbmcoeyBGb286ICcvU29tZS9LZXknIH0sIG9sZFZhbHVlcykuaGFzQ2hhbmdlcyhvbGRWYWx1ZXMpKS50b0VxdWFsKCdzc20nKTtcbn0pO1xuXG50ZXN0KCdpZiBhIHBhcmFtZXRlciBpcyByZXRyaWV2ZWQgZnJvbSBTU00sIHRoZSBwYXJhbWV0ZXJzIGRvZXNudCBjb3VudCBhcyBjaGFuZ2VkIGlmIGl0IGhhcyB0aGUgbWFnaWMgbWFya2VyJywgKCkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSBUZW1wbGF0ZVBhcmFtZXRlcnMuZnJvbVRlbXBsYXRlKHtcbiAgICBQYXJhbWV0ZXJzOiB7XG4gICAgICBGb286IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6U1NNOjpQYXJhbWV0ZXI6Ok5hbWUnLFxuICAgICAgICBEZWZhdWx0OiAnL1NvbWUvS2V5JyxcbiAgICAgICAgRGVzY3JpcHRpb246IGBibGFibGEgJHtTU01QQVJBTV9OT19JTlZBTElEQVRFfWAsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBjb25zdCBvbGRWYWx1ZXMgPSB7IEZvbzogJy9Tb21lL0tleScgfTtcblxuICAvLyBJZiB3ZSBkb24ndCBwYXNzIGEgbmV3IHZhbHVlXG4gIGV4cGVjdChwYXJhbXMudXBkYXRlRXhpc3Rpbmcoe30sIG9sZFZhbHVlcykuaGFzQ2hhbmdlcyhvbGRWYWx1ZXMpKS50b0VxdWFsKGZhbHNlKTtcblxuICAvLyBJZiB3ZSBkbyBwYXNzIGEgbmV3IHZhbHVlIGJ1dCBpdCdzIHRoZSBzYW1lIGFzIHRoZSBvbGQgb25lXG4gIGV4cGVjdChwYXJhbXMudXBkYXRlRXhpc3RpbmcoeyBGb286ICcvU29tZS9LZXknIH0sIG9sZFZhbHVlcykuaGFzQ2hhbmdlcyhvbGRWYWx1ZXMpKS50b0VxdWFsKGZhbHNlKTtcblxuICAvLyBJZiB3ZSBkbyBwYXNzIGEgbmV3IHZhbHVlIGFuZCBpdCdzIGRpZmZlcmVudFxuICBleHBlY3QocGFyYW1zLnVwZGF0ZUV4aXN0aW5nKHsgRm9vOiAnL09USEVSL0tleScgfSwgb2xkVmFsdWVzKS5oYXNDaGFuZ2VzKG9sZFZhbHVlcykpLnRvRXF1YWwodHJ1ZSk7XG59KTtcblxudGVzdCgnZW1wdHkgc3RyaW5nIGlzIGEgdmFsaWQgdXBkYXRlIHZhbHVlJywgKCkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSBUZW1wbGF0ZVBhcmFtZXRlcnMuZnJvbVRlbXBsYXRlKHtcbiAgICBQYXJhbWV0ZXJzOiB7XG4gICAgICBGb286IHsgVHlwZTogJ1N0cmluZycsIERlZmF1bHQ6ICdGb28nIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgZXhwZWN0KHBhcmFtcy51cGRhdGVFeGlzdGluZyh7IEZvbzogJycgfSwgeyBGb286ICdUaGlzSXNPbGQnIH0pLmFwaVBhcmFtZXRlcnMpLnRvRXF1YWwoW1xuICAgIHsgUGFyYW1ldGVyS2V5OiAnRm9vJywgUGFyYW1ldGVyVmFsdWU6ICcnIH0sXG4gIF0pO1xufSk7XG5cbnRlc3QoJ3Vua25vd24gcGFyYW1ldGVyIGluIG92ZXJyaWRlcywgcGFzcyBpdCBhbnl3YXknLCAoKSA9PiB7XG4gIC8vIE5vdCBzdXJlIGlmIHdlIHJlYWxseSB3YW50IHRoaXMuIEl0IHNlZW1zIGxpa2UgaXQgd291bGQgYmUgbmljZVxuICAvLyB0byBub3QgcGFzcyBwYXJhbWV0ZXJzIHRoYXQgYXJlbid0IGV4cGVjdGVkLCBnaXZlbiB0aGF0IENGTiB3aWxsXG4gIC8vIGp1c3QgZXJyb3Igb3V0LiBCdXQgbWF5YmUgd2Ugd2FudCB0byBiZSB3YXJuZWQgb2YgdHlwb3MuLi5cbiAgY29uc3QgcGFyYW1zID0gVGVtcGxhdGVQYXJhbWV0ZXJzLmZyb21UZW1wbGF0ZSh7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgRm9vOiB7IFR5cGU6ICdTdHJpbmcnLCBEZWZhdWx0OiAnRm9vJyB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIGV4cGVjdChwYXJhbXMudXBkYXRlRXhpc3RpbmcoeyBCYXI6ICdCYXInIH0sIHt9KS5hcGlQYXJhbWV0ZXJzKS50b0VxdWFsKFtcbiAgICB7IFBhcmFtZXRlcktleTogJ0JhcicsIFBhcmFtZXRlclZhbHVlOiAnQmFyJyB9LFxuICBdKTtcbn0pO1xuXG50ZXN0KCdpZiBhbiB1bnN1cHBsaWVkIHBhcmFtZXRlciByZXZlcnRzIHRvIGl0cyBkZWZhdWx0LCBpdCBjYW4gc3RpbGwgYmUgZGlydHknLCAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIGNvbnN0IHRlbXBsYXRlUGFyYW1zID0gVGVtcGxhdGVQYXJhbWV0ZXJzLmZyb21UZW1wbGF0ZSh7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgRm9vOiB7IFR5cGU6ICdTdHJpbmcnLCBEZWZhdWx0OiAnRm9vJyB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgY29uc3Qgc3RhY2tQYXJhbXMgPSB0ZW1wbGF0ZVBhcmFtcy5zdXBwbHlBbGwoe30pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHN0YWNrUGFyYW1zLmhhc0NoYW5nZXMoeyBGb286ICdOb25TdGFuZGFyZCcgfSkpLnRvRXF1YWwodHJ1ZSk7XG4gIGV4cGVjdChzdGFja1BhcmFtcy5oYXNDaGFuZ2VzKHsgRm9vOiAnRm9vJyB9KSkudG9FcXVhbChmYWxzZSk7XG59KTtcblxuZnVuY3Rpb24gbWFrZVBhcmFtcyhkZWZhdWx0VmFsdWU6IGJvb2xlYW4sIGhhc1ByZXZWYWx1ZTogYm9vbGVhbiwgb3ZlcnJpZGU6IGJvb2xlYW4pIHtcbiAgY29uc3QgcGFyYW1zID0gVGVtcGxhdGVQYXJhbWV0ZXJzLmZyb21UZW1wbGF0ZSh7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgW1BBUkFNXToge1xuICAgICAgICBUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgRGVmYXVsdDogZGVmYXVsdFZhbHVlID8gREVGQVVMVCA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IHByZXZQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBoYXNQcmV2VmFsdWUgPyB7IFtQQVJBTV06ICdGb28nIH0gOiB7fTtcbiAgY29uc3Qgc3RhY2tQYXJhbXMgPSBwYXJhbXMudXBkYXRlRXhpc3RpbmcoeyBbUEFSQU1dOiBvdmVycmlkZSA/IE9WRVJSSURFIDogdW5kZWZpbmVkIH0sIHByZXZQYXJhbXMpO1xuXG4gIHJldHVybiB7IGFwaVBhcmFtZXRlcnM6IHN0YWNrUGFyYW1zLmFwaVBhcmFtZXRlcnMsIGNoYW5nZWQ6IHN0YWNrUGFyYW1zLmhhc0NoYW5nZXMocHJldlBhcmFtcykgfTtcbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const validate_notification_arn_1 = require("../../lib/util/validate-notification-arn");
4
+ describe('validate sns arns', () => {
5
+ test('empty string', () => {
6
+ const arn = '';
7
+ expect(validate_notification_arn_1.validateSnsTopicArn(arn)).toEqual(false);
8
+ });
9
+ test('colon in topic name', () => {
10
+ const arn = 'arn:aws:sns:eu-west-1:abc:foo';
11
+ expect(validate_notification_arn_1.validateSnsTopicArn(arn)).toEqual(false);
12
+ });
13
+ test('missing :aws: in arn', () => {
14
+ const arn = 'arn:sns:eu-west-1:foobar';
15
+ expect(validate_notification_arn_1.validateSnsTopicArn(arn)).toEqual(false);
16
+ });
17
+ test('dash in topic name', () => {
18
+ const arn = 'arn:aws:sns:eu-west-1:123456789876:foo-bar';
19
+ expect(validate_notification_arn_1.validateSnsTopicArn(arn)).toEqual(true);
20
+ });
21
+ test('underscore in topic name', () => {
22
+ const arn = 'arn:aws:sns:eu-west-1:123456789876:foo-bar_baz';
23
+ expect(validate_notification_arn_1.validateSnsTopicArn(arn)).toEqual(true);
24
+ });
25
+ });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtbm90aWZpY2F0aW9uLWFybi50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFsaWRhdGUtbm90aWZpY2F0aW9uLWFybi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0ZBQStFO0FBRS9FLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDakMsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7UUFDeEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLCtDQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtRQUMvQixNQUFNLEdBQUcsR0FBRywrQkFBK0IsQ0FBQztRQUM1QyxNQUFNLENBQUMsK0NBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLDBCQUEwQixDQUFDO1FBQ3ZDLE1BQU0sQ0FBQywrQ0FBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7UUFDOUIsTUFBTSxHQUFHLEdBQUcsNENBQTRDLENBQUM7UUFDekQsTUFBTSxDQUFDLCtDQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtRQUNwQyxNQUFNLEdBQUcsR0FBRyxnREFBZ0QsQ0FBQztRQUM3RCxNQUFNLENBQUMsK0NBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZhbGlkYXRlU25zVG9waWNBcm4gfSBmcm9tICcuLi8uLi9saWIvdXRpbC92YWxpZGF0ZS1ub3RpZmljYXRpb24tYXJuJztcblxuZGVzY3JpYmUoJ3ZhbGlkYXRlIHNucyBhcm5zJywgKCkgPT4ge1xuICB0ZXN0KCdlbXB0eSBzdHJpbmcnLCAoKSA9PiB7XG4gICAgY29uc3QgYXJuID0gJyc7XG4gICAgZXhwZWN0KHZhbGlkYXRlU25zVG9waWNBcm4oYXJuKSkudG9FcXVhbChmYWxzZSk7XG4gIH0pO1xuXG4gIHRlc3QoJ2NvbG9uIGluIHRvcGljIG5hbWUnLCAoKSA9PiB7XG4gICAgY29uc3QgYXJuID0gJ2Fybjphd3M6c25zOmV1LXdlc3QtMTphYmM6Zm9vJztcbiAgICBleHBlY3QodmFsaWRhdGVTbnNUb3BpY0Fybihhcm4pKS50b0VxdWFsKGZhbHNlKTtcbiAgfSk7XG5cbiAgdGVzdCgnbWlzc2luZyA6YXdzOiBpbiBhcm4nLCAoKSA9PiB7XG4gICAgY29uc3QgYXJuID0gJ2FybjpzbnM6ZXUtd2VzdC0xOmZvb2Jhcic7XG4gICAgZXhwZWN0KHZhbGlkYXRlU25zVG9waWNBcm4oYXJuKSkudG9FcXVhbChmYWxzZSk7XG4gIH0pO1xuXG4gIHRlc3QoJ2Rhc2ggaW4gdG9waWMgbmFtZScsICgpID0+IHtcbiAgICBjb25zdCBhcm4gPSAnYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjEyMzQ1Njc4OTg3Njpmb28tYmFyJztcbiAgICBleHBlY3QodmFsaWRhdGVTbnNUb3BpY0Fybihhcm4pKS50b0VxdWFsKHRydWUpO1xuICB9KTtcblxuICB0ZXN0KCd1bmRlcnNjb3JlIGluIHRvcGljIG5hbWUnLCAoKSA9PiB7XG4gICAgY29uc3QgYXJuID0gJ2Fybjphd3M6c25zOmV1LXdlc3QtMToxMjM0NTY3ODk4NzY6Zm9vLWJhcl9iYXonO1xuICAgIGV4cGVjdCh2YWxpZGF0ZVNuc1RvcGljQXJuKGFybikpLnRvRXF1YWwodHJ1ZSk7XG4gIH0pO1xufSk7XG5cbiJdfQ==