cdk-serverless 2.20.0 → 2.21.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 (35) hide show
  1. package/docs/constructs/assets/hierarchy.js +1 -1
  2. package/docs/constructs/assets/navigation.js +1 -1
  3. package/docs/constructs/assets/search.js +1 -1
  4. package/docs/constructs/classes/SingleTableDatastore.html +5 -4
  5. package/docs/constructs/classes/Workflow.html +1 -1
  6. package/docs/constructs/hierarchy.html +1 -1
  7. package/docs/constructs/interfaces/BaseApiProps.html +2 -2
  8. package/docs/constructs/interfaces/GraphQlApiProps.html +2 -2
  9. package/docs/constructs/interfaces/ISingleTableDatastore.html +3 -0
  10. package/docs/constructs/interfaces/RestApiProps.html +2 -2
  11. package/docs/constructs/modules.html +1 -1
  12. package/docs/projen/classes/Datastore.html +1 -1
  13. package/docs/projen/classes/GraphQlApi.html +1 -1
  14. package/docs/projen/classes/RestApi.html +1 -1
  15. package/docs/projen/classes/ServerlessProject.html +7 -4
  16. package/docs/projen/classes/Workflow.html +1 -1
  17. package/docs/projen/interfaces/ServerlessProjectOptions.html +199 -150
  18. package/lib/constructs/authentication.js +8 -9
  19. package/lib/constructs/base-api.d.ts +2 -2
  20. package/lib/constructs/base-api.js +3 -4
  21. package/lib/constructs/func.js +10 -11
  22. package/lib/constructs/graphql.js +6 -10
  23. package/lib/constructs/rest-api.js +2 -3
  24. package/lib/constructs/table.d.ts +8 -1
  25. package/lib/constructs/table.js +12 -4
  26. package/lib/constructs/workflow.js +2 -3
  27. package/lib/lambda/auth.js +6 -8
  28. package/lib/lambda/handler.js +7 -10
  29. package/lib/projen/core.js +3 -4
  30. package/lib/projen/graphql.js +3 -2
  31. package/lib/projen/lazy-textfile.js +2 -3
  32. package/lib/projen/workflow.js +3 -4
  33. package/lib/tests/integ-test-util.js +12 -19
  34. package/lib/tests/lambda-test-utils.js +8 -10
  35. package/package.json +7 -5
@@ -27,22 +27,20 @@ function parseCfnOutputs(output, stackName, config) {
27
27
  }
28
28
  class IntegTestUtil {
29
29
  constructor(options) {
30
- var _a;
31
30
  this.options = options;
32
31
  this.apiTokens = {};
33
32
  this.itemsToDelete = [];
34
33
  process.env.AWS_REGION = options.region;
35
34
  process.env.AWS_DEFAULT_REGION = options.region;
36
- if ((_a = options.datastoreOptions) === null || _a === void 0 ? void 0 : _a.tableName) {
35
+ if (options.datastoreOptions?.tableName) {
37
36
  process.env.TABLE = options.datastoreOptions.tableName;
38
37
  this.tableName = options.datastoreOptions.tableName;
39
38
  }
40
39
  }
41
40
  // AUTH
42
41
  getClient(config) {
43
- var _a;
44
42
  return new axios_1.Axios({
45
- baseURL: (_a = this.options.apiOptions) === null || _a === void 0 ? void 0 : _a.baseURL,
43
+ baseURL: this.options.apiOptions?.baseURL,
46
44
  transformResponse: (data) => {
47
45
  try {
48
46
  return JSON.parse(data);
@@ -63,7 +61,6 @@ class IntegTestUtil {
63
61
  });
64
62
  }
65
63
  async getAuthenticatedClient(email, password, config) {
66
- var _a;
67
64
  if (!this.apiTokens[email]) {
68
65
  if (!password) {
69
66
  throw new Error('No password provided; You can only leave password blank for users created by this utility');
@@ -73,7 +70,7 @@ class IntegTestUtil {
73
70
  return this.getClient({
74
71
  headers: {
75
72
  Authorization: `Bearer ${this.apiTokens[email].token}`,
76
- ...((_a = config === null || config === void 0 ? void 0 : config.headers) !== null && _a !== void 0 ? _a : {}),
73
+ ...(config?.headers ?? {}),
77
74
  },
78
75
  ...config,
79
76
  });
@@ -98,19 +95,17 @@ class IntegTestUtil {
98
95
  }
99
96
  // AUTH
100
97
  getTokenPayload(email) {
101
- var _a;
102
- return (_a = this.apiTokens[email]) === null || _a === void 0 ? void 0 : _a.payload;
98
+ return this.apiTokens[email]?.payload;
103
99
  }
104
100
  async createUser(email, attributes, groups) {
105
- var _a, _b, _c, _d;
106
- if (!((_a = this.options.authOptions) === null || _a === void 0 ? void 0 : _a.userPoolId)) {
101
+ if (!this.options.authOptions?.userPoolId) {
107
102
  throw new Error('No userPoolId configured');
108
103
  }
109
104
  const randomPassword = Math.random().toString(36).slice(-16);
110
105
  const cognitoClient = new client_cognito_identity_provider_1.CognitoIdentityProviderClient({ region: this.options.region });
111
106
  // Create a new user in Cognito
112
107
  await cognitoClient.send(new client_cognito_identity_provider_1.AdminCreateUserCommand({
113
- UserPoolId: (_b = this.options.authOptions) === null || _b === void 0 ? void 0 : _b.userPoolId,
108
+ UserPoolId: this.options.authOptions?.userPoolId,
114
109
  Username: email,
115
110
  MessageAction: client_cognito_identity_provider_1.MessageActionType.SUPPRESS,
116
111
  TemporaryPassword: randomPassword,
@@ -128,7 +123,7 @@ class IntegTestUtil {
128
123
  }));
129
124
  // Make password permanent to get user out of FORCE_CHANGE_PASSWORD
130
125
  await cognitoClient.send(new client_cognito_identity_provider_1.AdminSetUserPasswordCommand({
131
- UserPoolId: (_c = this.options.authOptions) === null || _c === void 0 ? void 0 : _c.userPoolId,
126
+ UserPoolId: this.options.authOptions?.userPoolId,
132
127
  Username: email,
133
128
  Password: randomPassword,
134
129
  Permanent: true,
@@ -136,7 +131,7 @@ class IntegTestUtil {
136
131
  // Add user to groups
137
132
  for (const group of groups) {
138
133
  await cognitoClient.send(new client_cognito_identity_provider_1.AdminAddUserToGroupCommand({
139
- UserPoolId: (_d = this.options.authOptions) === null || _d === void 0 ? void 0 : _d.userPoolId,
134
+ UserPoolId: this.options.authOptions?.userPoolId,
140
135
  Username: email,
141
136
  GroupName: group,
142
137
  }));
@@ -144,20 +139,18 @@ class IntegTestUtil {
144
139
  await this.loginUser(email, randomPassword);
145
140
  }
146
141
  async removeUser(email) {
147
- var _a, _b;
148
- if (!((_a = this.options.authOptions) === null || _a === void 0 ? void 0 : _a.userPoolId)) {
142
+ if (!this.options.authOptions?.userPoolId) {
149
143
  throw new Error('No userPoolId configured');
150
144
  }
151
145
  const cognitoClient = new client_cognito_identity_provider_1.CognitoIdentityProviderClient({ region: this.options.region });
152
146
  await cognitoClient.send(new client_cognito_identity_provider_1.AdminDeleteUserCommand({
153
- UserPoolId: (_b = this.options.authOptions) === null || _b === void 0 ? void 0 : _b.userPoolId,
147
+ UserPoolId: this.options.authOptions?.userPoolId,
154
148
  Username: email,
155
149
  }));
156
150
  delete this.apiTokens[email];
157
151
  }
158
152
  async loginUser(email, password) {
159
- var _a;
160
- if (!((_a = this.options.authOptions) === null || _a === void 0 ? void 0 : _a.userPoolClientId)) {
153
+ if (!this.options.authOptions?.userPoolClientId) {
161
154
  throw new Error('No userPoolClientId configured');
162
155
  }
163
156
  const cognitoClient = new axios_1.Axios({
@@ -187,4 +180,4 @@ class IntegTestUtil {
187
180
  }
188
181
  }
189
182
  exports.IntegTestUtil = IntegTestUtil;
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWctdGVzdC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL2ludGVnLXRlc3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQ0EsMENBZ0JDO0FBcERELGdHQUFzTjtBQUN0Tiw4REFBMEQ7QUFDMUQsd0RBQW9HO0FBQ3BHLGlDQUFrRTtBQUNsRSwrQ0FBa0Q7QUFDbEQsK0NBQThOO0FBK0I5TixTQUFnQixlQUFlLENBQUMsTUFBVyxFQUFFLFNBQWlCLEVBQUUsTUFBdUI7SUFDckYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLE9BQU87UUFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsVUFBVSxFQUFFO1lBQ1YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsdUNBQTZCLEVBQUUsQ0FBQztTQUN0RTtRQUNELFdBQVcsRUFBRTtZQUNYLFVBQVUsRUFBRSxPQUFPLENBQUMsMkNBQWlDLENBQUM7WUFDdEQsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGtEQUF3QyxDQUFDO1lBQ25FLGNBQWMsRUFBRSxPQUFPLENBQUMsZ0RBQXNDLENBQUM7U0FDaEU7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQywrQ0FBcUMsQ0FBQyxFQUFFO1NBQ3RGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFPRCxNQUFhLGFBQWE7SUFPeEIsWUFBc0IsT0FBNkI7O1FBQTdCLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBSDNDLGNBQVMsR0FBbUMsRUFBRSxDQUFDO1FBQy9DLGtCQUFhLEdBQTJDLEVBQUUsQ0FBQztRQUdqRSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtC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QU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQztRQUNqRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHO1lBQ3RCLEtBQUs7WUFDTCxPQUFPLEVBQUUsSUFBQSxxQkFBTSxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFlO1NBQzNELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF6S0Qsc0NBeUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRtaW5BZGRVc2VyVG9Hcm91cENvbW1hbmQsIEFkbWluQ3JlYXRlVXNlckNvbW1hbmQsIEFkbWluRGVsZXRlVXNlckNvbW1hbmQsIEFkbWluU2V0VXNlclBhc3N3b3JkQ29tbWFuZCwgQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQsIE1lc3NhZ2VBY3Rpb25UeXBlIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNvZ25pdG8taWRlbnRpdHktcHJvdmlkZXInO1xuaW1wb3J0IHsgRHluYW1vREJDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtZHluYW1vZGInO1xuaW1wb3J0IHsgRGVsZXRlQ29tbWFuZCwgRHluYW1vREJEb2N1bWVudENsaWVudCwgTmF0aXZlQXR0cmlidXRlVmFsdWUgfSBmcm9tICdAYXdzLXNkay9saWItZHluYW1vZGInO1xuaW1wb3J0IHsgQXhpb3MsIEF4aW9zUmVxdWVzdENvbmZpZywgSHR0cFN0YXR1c0NvZGUgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBkZWNvZGUsIEp3dFBheWxvYWQgfSBmcm9tICdqc29ud2VidG9rZW4nO1xuaW1wb3J0IHsgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9JREVOVElUWVBPT0xfSUQsIENGTl9PVVRQVVRfU1VGRklYX0FVVEhfVVNFUlBPT0xJRCwgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTF9DTElFTlRJRCwgQ0ZOX09VVFBVVF9TVUZGSVhfREFUQVNUT1JFX1RBQkxFTkFNRSwgQ0ZOX09VVFBVVF9TVUZGSVhfUkVTVEFQSV9VUkwgfSBmcm9tICcuLi9zaGFyZWQvb3V0cHV0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdUZXN0VXRpbE9wdGlvbnMge1xuXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGFwaU9wdGlvbnM/OiB7XG4gICAgcmVhZG9ubHkgYmFzZVVSTD86IHN0cmluZztcbiAgfTtcblxuICByZWFkb25seSBhdXRoT3B0aW9ucz86IHtcbiAgICByZWFkb25seSB1c2VyUG9vbElkPzogc3RyaW5nO1xuXG4gICAgcmVhZG9ubHkgdXNlclBvb2xDbGllbnRJZD86IHN0cmluZztcbiAgICByZWFkb25seSB1c2VyUG9vbENsaWVudFNlY3JldD86IHN0cmluZztcblxuICAgIHJlYWRvbmx5IGlkZW50aXR5UG9vbElkPzogc3RyaW5nO1xuICB9O1xuXG4gIHJlYWRvbmx5IGRhdGFzdG9yZU9wdGlvbnM/OiB7XG4gICAgcmVhZG9ubHkgdGFibGVOYW1lPzogc3RyaW5nO1xuICB9O1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuT3V0cHV0Q29uZmlnIHtcbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwaU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZGF0YXN0b3JlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDZm5PdXRwdXRzKG91dHB1dDogYW55LCBzdGFja05hbWU6IHN0cmluZywgY29uZmlnOiBDZm5PdXRwdXRDb25maWcpOiBJbnRlZ1Rlc3RVdGlsT3B0aW9ucyB7XG4gIGNvbnN0IG91dHB1dHMgPSBvdXRwdXRbc3RhY2tOYW1lXTtcbiAgcmV0dXJuIHtcbiAgICByZWdpb246IGNvbmZpZy5yZWdpb24sXG4gICAgYXBpT3B0aW9uczoge1xuICAgICAgYmFzZVVSTDogb3V0cHV0c1tgJHtjb25maWcuYXBpTmFtZX0ke0NGTl9PVVRQVVRfU1VGRklYX1JFU1RBUElfVVJMfWBdLFxuICAgIH0sXG4gICAgYXV0aE9wdGlvbnM6IHtcbiAgICAgIHVzZXJQb29sSWQ6IG91dHB1dHNbQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTElEXSxcbiAgICAgIHVzZXJQb29sQ2xpZW50SWQ6IG91dHB1dHNbQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTF9DTElFTlRJRF0sXG4gICAgICBpZGVudGl0eVBvb2xJZDogb3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9JRF0sXG4gICAgfSxcbiAgICBkYXRhc3RvcmVPcHRpb25zOiB7XG4gICAgICB0YWJsZU5hbWU6IGAke2NvbmZpZy5kYXRhc3RvcmVOYW1lfSR7b3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9EQVRBU1RPUkVfVEFCTEVOQU1FXX1gLFxuICAgIH0sXG4gIH07XG59XG5cbmludGVyZmFjZSBUb2tlbkluZm8ge1xuICByZWFkb25seSB0b2tlbjogc3RyaW5nO1xuICByZWFkb25seSBwYXlsb2FkOiBKd3RQYXlsb2FkO1xufVxuXG5leHBvcnQgY2xhc3MgSW50ZWdUZXN0VXRpbCB7XG5cbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlTmFtZT86IHN0cmluZztcblxuICBwcml2YXRlIGFwaVRva2VuczogeyBbZW1haWw6IHN0cmluZ106IFRva2VuSW5mbyB9ID0ge307XG4gIHByaXZhdGUgaXRlbXNUb0RlbGV0ZTogUmVjb3JkPHN0cmluZywgTmF0aXZlQXR0cmlidXRlVmFsdWU+W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3B0aW9uczogSW50ZWdUZXN0VXRpbE9wdGlvbnMpIHtcbiAgICBwcm9jZXNzLmVudi5BV1NfUkVHSU9OID0gb3B0aW9ucy5yZWdpb247XG4gICAgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUkVHSU9OID0gb3B0aW9ucy5yZWdpb247XG4gICAgaWYgKG9wdGlvbnMuZGF0YXN0b3JlT3B0aW9ucz8udGFibGVOYW1lKSB7XG4gICAgICBwcm9jZXNzLmVudi5UQUJMRSA9IG9wdGlvbnMuZGF0YXN0b3JlT3B0aW9ucy50YWJsZU5hbWU7XG4gICAgICB0aGlzLnRhYmxlTmFtZSA9IG9wdGlvbnMuZGF0YXN0b3JlT3B0aW9ucy50YWJsZU5hbWU7XG4gICAgfVxuICB9XG5cbiAgLy8gQVVUSFxuXG4gIHB1YmxpYyBnZXRDbGllbnQoY29uZmlnPzogQXhpb3NSZXF1ZXN0Q29uZmlnKSB7XG4gICAgcmV0dXJuIG5ldyBBeGlvcyh7XG4gICAgICBiYXNlVVJMOiB0aGlzLm9wdGlvbnMuYXBpT3B0aW9ucz8uYmFzZVVSTCxcbiAgICAgIHRyYW5zZm9ybVJlc3BvbnNlOiAoZGF0YSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdHJhbnNmb3JtUmVxdWVzdDogKGRhdGEpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAuLi5jb25maWcsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0QXV0aGVudGljYXRlZENsaWVudChlbWFpbDogc3RyaW5nLCBwYXNzd29yZD86IHN0cmluZywgY29uZmlnPzogQXhpb3NSZXF1ZXN0Q29uZmlnKSB7XG4gICAgaWYgKCF0aGlzLmFwaVRva2Vuc1tlbWFpbF0pIHtcbiAgICAgIGlmICghcGFzc3dvcmQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBwYXNzd29yZCBwcm92aWRlZDsgWW91IGNhbiBvbmx5IGxlYXZlIHBhc3N3b3JkIGJsYW5rIGZvciB1c2VycyBjcmVhdGVkIGJ5IHRoaXMgdXRpbGl0eScpO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5sb2dpblVzZXIoZW1haWwsIHBhc3N3b3JkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2xpZW50KHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXBpVG9rZW5zW2VtYWlsXS50b2tlbn1gLFxuICAgICAgICAuLi4oY29uZmlnPy5oZWFkZXJzID8/IHt9KSxcbiAgICAgIH0sXG4gICAgICAuLi5jb25maWcsXG4gICAgfSk7XG4gIH1cblxuICAvLyBEQVRBU1RPUkVcblxuICBwdWJsaWMgaW5pdGlhbGl6ZUl0ZW1zVG9DbGVhbnVwKCkge1xuICAgIHRoaXMuaXRlbXNUb0RlbGV0ZSA9IFtdO1xuICB9XG5cbiAgcHVibGljIGFkZEl0ZW1Ub0RlbGV0ZUFmdGVyVGVzdChrZXk6IFJlY29yZDxzdHJpbmcsIE5hdGl2ZUF0dHJpYnV0ZVZhbHVlPikge1xuICAgIHRoaXMuaXRlbXNUb0RlbGV0ZS5wdXNoKGtleSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2xlYW51cEl0ZW1zKCkge1xuICAgIGNvbnN0IGRkYiA9IER5bmFtb0RCRG9jdW1lbnRDbGllbnQuZnJvbShuZXcgRHluYW1vREJDbGllbnQoeyByZWdpb246IHRoaXMub3B0aW9ucy5yZWdpb24gfSkpO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zVG9EZWxldGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGRkYi5zZW5kKG5ldyBEZWxldGVDb21tYW5kKHsgVGFibGVOYW1lOiB0aGlzLnRhYmxlTmFtZSwgS2V5OiBpdGVtIH0pKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBBVVRIXG5cbiAgcHVibGljIGdldFRva2VuUGF5bG9hZChlbWFpbDogc3RyaW5nKTogSnd0UGF5bG9hZCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYXBpVG9rZW5zW2VtYWlsXT8ucGF5bG9hZDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVVc2VyKGVtYWlsOiBzdHJpbmcsIGF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGdyb3Vwczogc3RyaW5nW10pIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB1c2VyUG9vbElkIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCByYW5kb21QYXNzd29yZDogc3RyaW5nID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoLTE2KTtcblxuICAgIGNvbnN0IGNvZ25pdG9DbGllbnQ6IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50ID0gbmV3IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50KHsgcmVnaW9uOiB0aGlzLm9wdGlvbnMucmVnaW9uIH0pO1xuICAgIC8vIENyZWF0ZSBhIG5ldyB1c2VyIGluIENvZ25pdG9cbiAgICBhd2FpdCBjb2duaXRvQ2xpZW50LnNlbmQobmV3IEFkbWluQ3JlYXRlVXNlckNvbW1hbmQoe1xuICAgICAgVXNlclBvb2xJZDogdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkLFxuICAgICAgVXNlcm5hbWU6IGVtYWlsLFxuICAgICAgTWVzc2FnZUFjdGlvbjogTWVzc2FnZUFjdGlvblR5cGUuU1VQUFJFU1MsXG4gICAgICBUZW1wb3JhcnlQYXNzd29yZDogcmFuZG9tUGFzc3dvcmQsXG4gICAgICBVc2VyQXR0cmlidXRlczogW3tcbiAgICAgICAgTmFtZTogJ2VtYWlsJyxcbiAgICAgICAgVmFsdWU6IGVtYWlsLFxuICAgICAgfSwge1xuICAgICAgICBOYW1lOiAnZW1haWxfdmVyaWZpZWQnLFxuICAgICAgICBWYWx1ZTogJ3RydWUnLFxuICAgICAgfSxcbiAgICAgIC4uLk9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpLm1hcCgoYXR0cikgPT4gKHtcbiAgICAgICAgTmFtZTogYXR0clswXSxcbiAgICAgICAgVmFsdWU6IGF0dHJbMV0sXG4gICAgICB9KSldLFxuICAgIH0pKTtcbiAgICAvLyBNYWtlIHBhc3N3b3JkIHBlcm1hbmVudCB0byBnZXQgdXNlciBvdXQgb2YgRk9SQ0VfQ0hBTkdFX1BBU1NXT1JEXG4gICAgYXdhaXQgY29nbml0b0NsaWVudC5zZW5kKG5ldyBBZG1pblNldFVzZXJQYXNzd29yZENvbW1hbmQoe1xuICAgICAgVXNlclBvb2xJZDogdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkLFxuICAgICAgVXNlcm5hbWU6IGVtYWlsLFxuICAgICAgUGFzc3dvcmQ6IHJhbmRvbVBhc3N3b3JkLFxuICAgICAgUGVybWFuZW50OiB0cnVlLFxuICAgIH0pKTtcbiAgICAvLyBBZGQgdXNlciB0byBncm91cHNcbiAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIGdyb3Vwcykge1xuICAgICAgYXdhaXQgY29nbml0b0NsaWVudC5zZW5kKG5ldyBBZG1pbkFkZFVzZXJUb0dyb3VwQ29tbWFuZCh7XG4gICAgICAgIFVzZXJQb29sSWQ6IHRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCxcbiAgICAgICAgVXNlcm5hbWU6IGVtYWlsLFxuICAgICAgICBHcm91cE5hbWU6IGdyb3VwLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMubG9naW5Vc2VyKGVtYWlsLCByYW5kb21QYXNzd29yZCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVtb3ZlVXNlcihlbWFpbDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdXNlclBvb2xJZCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvZ25pdG9DbGllbnQ6IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50ID0gbmV3IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50KHsgcmVnaW9uOiB0aGlzLm9wdGlvbnMucmVnaW9uIH0pO1xuICAgIGF3YWl0IGNvZ25pdG9DbGllbnQuc2VuZChuZXcgQWRtaW5EZWxldGVVc2VyQ29tbWFuZCh7XG4gICAgICBVc2VyUG9vbElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQsXG4gICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgfSkpO1xuICAgIGRlbGV0ZSB0aGlzLmFwaVRva2Vuc1tlbWFpbF07XG4gIH1cblxuXG4gIHByb3RlY3RlZCBhc3luYyBsb2dpblVzZXIoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbENsaWVudElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHVzZXJQb29sQ2xpZW50SWQgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICBjb25zdCBjb2duaXRvQ2xpZW50ID0gbmV3IEF4aW9zKHtcbiAgICAgIGJhc2VVUkw6IGBodHRwczovL2NvZ25pdG8taWRwLiR7dGhpcy5vcHRpb25zLnJlZ2lvbn0uYW1hem9uYXdzLmNvbS9gLFxuICAgIH0pO1xuICAgIGNvbnN0IGF1dGggPSBhd2FpdCBjb2duaXRvQ2xpZW50LnBvc3QoJy8nLCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBBdXRoUGFyYW1ldGVyczoge1xuICAgICAgICBVU0VSTkFNRTogZW1haWwsXG4gICAgICAgIFBBU1NXT1JEOiBwYXNzd29yZCxcbiAgICAgIH0sXG4gICAgICBBdXRoRmxvdzogJ1VTRVJfUEFTU1dPUkRfQVVUSCcsXG4gICAgICBDbGllbnRJZDogdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zLnVzZXJQb29sQ2xpZW50SWQsXG4gICAgfSksIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LWFtei1qc29uLTEuMScsXG4gICAgICAgICdYLUFtei1UYXJnZXQnOiAnQVdTQ29nbml0b0lkZW50aXR5UHJvdmlkZXJTZXJ2aWNlLkluaXRpYXRlQXV0aCcsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmIChhdXRoLnN0YXR1cyAhPT0gSHR0cFN0YXR1c0NvZGUuT2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGF1dGhlbnRpY2F0ZSB1c2VyICR7ZW1haWx9YCk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gSlNPTi5wYXJzZShhdXRoLmRhdGEpLkF1dGhlbnRpY2F0aW9uUmVzdWx0LklkVG9rZW47XG4gICAgdGhpcy5hcGlUb2tlbnNbZW1haWxdID0ge1xuICAgICAgdG9rZW4sXG4gICAgICBwYXlsb2FkOiBkZWNvZGUodGhpcy5hcGlUb2tlbnNbZW1haWxdLnRva2VuKSBhcyBKd3RQYXlsb2FkLFxuICAgIH07XG4gIH1cbn0iXX0=
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWctdGVzdC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL2ludGVnLXRlc3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQ0EsMENBZ0JDO0FBcERELGdHQUFzTjtBQUN0Tiw4REFBMEQ7QUFDMUQsd0RBQW9HO0FBQ3BHLGlDQUFrRTtBQUNsRSwrQ0FBa0Q7QUFDbEQsK0NBQThOO0FBK0I5TixTQUFnQixlQUFlLENBQUMsTUFBVyxFQUFFLFNBQWlCLEVBQUUsTUFBdUI7SUFDckYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLE9BQU87UUFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsVUFBVSxFQUFFO1lBQ1YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsdUNBQTZCLEVBQUUsQ0FBQztTQUN0RTtRQUNELFdBQVcsRUFBRTtZQUNYLFVBQVUsRUFBRSxPQUFPLENBQUMsMkNBQWlDLENBQUM7WUFDdEQsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGtEQUF3QyxDQUFDO1lBQ25FLGNBQWMsRUFBRSxPQUFPLENBQUMsZ0RBQXNDLENBQUM7U0FDaEU7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQywrQ0FBcUMsQ0FBQyxFQUFFO1NBQ3RGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFPRCxNQUFhLGFBQWE7SUFPeEIsWUFBc0IsT0FBNkI7UUFBN0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFIM0MsY0FBUyxHQUFtQyxFQUFFLENBQUM7UUFDL0Msa0JBQWEsR0FBMkMsRUFBRSxDQUFDO1FBR2pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0Is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dEIsS0FBSztZQUNMLE9BQU8sRUFBRSxJQUFBLHFCQUFNLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQWU7U0FDM0QsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXpLRCxzQ0F5S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZG1pbkFkZFVzZXJUb0dyb3VwQ29tbWFuZCwgQWRtaW5DcmVhdGVVc2VyQ29tbWFuZCwgQWRtaW5EZWxldGVVc2VyQ29tbWFuZCwgQWRtaW5TZXRVc2VyUGFzc3dvcmRDb21tYW5kLCBDb2duaXRvSWRlbnRpdHlQcm92aWRlckNsaWVudCwgTWVzc2FnZUFjdGlvblR5cGUgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY29nbml0by1pZGVudGl0eS1wcm92aWRlcic7XG5pbXBvcnQgeyBEeW5hbW9EQkNsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYic7XG5pbXBvcnQgeyBEZWxldGVDb21tYW5kLCBEeW5hbW9EQkRvY3VtZW50Q2xpZW50LCBOYXRpdmVBdHRyaWJ1dGVWYWx1ZSB9IGZyb20gJ0Bhd3Mtc2RrL2xpYi1keW5hbW9kYic7XG5pbXBvcnQgeyBBeGlvcywgQXhpb3NSZXF1ZXN0Q29uZmlnLCBIdHRwU3RhdHVzQ29kZSB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGRlY29kZSwgSnd0UGF5bG9hZCB9IGZyb20gJ2pzb253ZWJ0b2tlbic7XG5pbXBvcnQgeyBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9JRCwgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTElELCBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MX0NMSUVOVElELCBDRk5fT1VUUFVUX1NVRkZJWF9EQVRBU1RPUkVfVEFCTEVOQU1FLCBDRk5fT1VUUFVUX1NVRkZJWF9SRVNUQVBJX1VSTCB9IGZyb20gJy4uL3NoYXJlZC9vdXRwdXRzJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlZ1Rlc3RVdGlsT3B0aW9ucyB7XG5cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgYXBpT3B0aW9ucz86IHtcbiAgICByZWFkb25seSBiYXNlVVJMPzogc3RyaW5nO1xuICB9O1xuXG4gIHJlYWRvbmx5IGF1dGhPcHRpb25zPzoge1xuICAgIHJlYWRvbmx5IHVzZXJQb29sSWQ/OiBzdHJpbmc7XG5cbiAgICByZWFkb25seSB1c2VyUG9vbENsaWVudElkPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHVzZXJQb29sQ2xpZW50U2VjcmV0Pzogc3RyaW5nO1xuXG4gICAgcmVhZG9ubHkgaWRlbnRpdHlQb29sSWQ/OiBzdHJpbmc7XG4gIH07XG5cbiAgcmVhZG9ubHkgZGF0YXN0b3JlT3B0aW9ucz86IHtcbiAgICByZWFkb25seSB0YWJsZU5hbWU/OiBzdHJpbmc7XG4gIH07XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5PdXRwdXRDb25maWcge1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgYXBpTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBkYXRhc3RvcmVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNmbk91dHB1dHMob3V0cHV0OiBhbnksIHN0YWNrTmFtZTogc3RyaW5nLCBjb25maWc6IENmbk91dHB1dENvbmZpZyk6IEludGVnVGVzdFV0aWxPcHRpb25zIHtcbiAgY29uc3Qgb3V0cHV0cyA9IG91dHB1dFtzdGFja05hbWVdO1xuICByZXR1cm4ge1xuICAgIHJlZ2lvbjogY29uZmlnLnJlZ2lvbixcbiAgICBhcGlPcHRpb25zOiB7XG4gICAgICBiYXNlVVJMOiBvdXRwdXRzW2Ake2NvbmZpZy5hcGlOYW1lfSR7Q0ZOX09VVFBVVF9TVUZGSVhfUkVTVEFQSV9VUkx9YF0sXG4gICAgfSxcbiAgICBhdXRoT3B0aW9uczoge1xuICAgICAgdXNlclBvb2xJZDogb3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MSURdLFxuICAgICAgdXNlclBvb2xDbGllbnRJZDogb3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MX0NMSUVOVElEXSxcbiAgICAgIGlkZW50aXR5UG9vbElkOiBvdXRwdXRzW0NGTl9PVVRQVVRfU1VGRklYX0FVVEhfSURFTlRJVFlQT09MX0lEXSxcbiAgICB9LFxuICAgIGRhdGFzdG9yZU9wdGlvbnM6IHtcbiAgICAgIHRhYmxlTmFtZTogYCR7Y29uZmlnLmRhdGFzdG9yZU5hbWV9JHtvdXRwdXRzW0NGTl9PVVRQVVRfU1VGRklYX0RBVEFTVE9SRV9UQUJMRU5BTUVdfWAsXG4gICAgfSxcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRva2VuSW5mbyB7XG4gIHJlYWRvbmx5IHRva2VuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBheWxvYWQ6IEp3dFBheWxvYWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBJbnRlZ1Rlc3RVdGlsIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVOYW1lPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgYXBpVG9rZW5zOiB7IFtlbWFpbDogc3RyaW5nXTogVG9rZW5JbmZvIH0gPSB7fTtcbiAgcHJpdmF0ZSBpdGVtc1RvRGVsZXRlOiBSZWNvcmQ8c3RyaW5nLCBOYXRpdmVBdHRyaWJ1dGVWYWx1ZT5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBJbnRlZ1Rlc3RVdGlsT3B0aW9ucykge1xuICAgIHByb2Nlc3MuZW52LkFXU19SRUdJT04gPSBvcHRpb25zLnJlZ2lvbjtcbiAgICBwcm9jZXNzLmVudi5BV1NfREVGQVVMVF9SRUdJT04gPSBvcHRpb25zLnJlZ2lvbjtcbiAgICBpZiAob3B0aW9ucy5kYXRhc3RvcmVPcHRpb25zPy50YWJsZU5hbWUpIHtcbiAgICAgIHByb2Nlc3MuZW52LlRBQkxFID0gb3B0aW9ucy5kYXRhc3RvcmVPcHRpb25zLnRhYmxlTmFtZTtcbiAgICAgIHRoaXMudGFibGVOYW1lID0gb3B0aW9ucy5kYXRhc3RvcmVPcHRpb25zLnRhYmxlTmFtZTtcbiAgICB9XG4gIH1cblxuICAvLyBBVVRIXG5cbiAgcHVibGljIGdldENsaWVudChjb25maWc/OiBBeGlvc1JlcXVlc3RDb25maWcpIHtcbiAgICByZXR1cm4gbmV3IEF4aW9zKHtcbiAgICAgIGJhc2VVUkw6IHRoaXMub3B0aW9ucy5hcGlPcHRpb25zPy5iYXNlVVJMLFxuICAgICAgdHJhbnNmb3JtUmVzcG9uc2U6IChkYXRhKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB0cmFuc2Zvcm1SZXF1ZXN0OiAoZGF0YSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBdXRoZW50aWNhdGVkQ2xpZW50KGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkPzogc3RyaW5nLCBjb25maWc/OiBBeGlvc1JlcXVlc3RDb25maWcpIHtcbiAgICBpZiAoIXRoaXMuYXBpVG9rZW5zW2VtYWlsXSkge1xuICAgICAgaWYgKCFwYXNzd29yZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHBhc3N3b3JkIHByb3ZpZGVkOyBZb3UgY2FuIG9ubHkgbGVhdmUgcGFzc3dvcmQgYmxhbmsgZm9yIHVzZXJzIGNyZWF0ZWQgYnkgdGhpcyB1dGlsaXR5Jyk7XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLmxvZ2luVXNlcihlbWFpbCwgcGFzc3dvcmQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRDbGllbnQoe1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5hcGlUb2tlbnNbZW1haWxdLnRva2VufWAsXG4gICAgICAgIC4uLihjb25maWc/LmhlYWRlcnMgPz8ge30pLFxuICAgICAgfSxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIERBVEFTVE9SRVxuXG4gIHB1YmxpYyBpbml0aWFsaXplSXRlbXNUb0NsZWFudXAoKSB7XG4gICAgdGhpcy5pdGVtc1RvRGVsZXRlID0gW107XG4gIH1cblxuICBwdWJsaWMgYWRkSXRlbVRvRGVsZXRlQWZ0ZXJUZXN0KGtleTogUmVjb3JkPHN0cmluZywgTmF0aXZlQXR0cmlidXRlVmFsdWU+KSB7XG4gICAgdGhpcy5pdGVtc1RvRGVsZXRlLnB1c2goa2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjbGVhbnVwSXRlbXMoKSB7XG4gICAgY29uc3QgZGRiID0gRHluYW1vREJEb2N1bWVudENsaWVudC5mcm9tKG5ldyBEeW5hbW9EQkNsaWVudCh7IHJlZ2lvbjogdGhpcy5vcHRpb25zLnJlZ2lvbiB9KSk7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXNUb0RlbGV0ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZGRiLnNlbmQobmV3IERlbGV0ZUNvbW1hbmQoeyBUYWJsZU5hbWU6IHRoaXMudGFibGVOYW1lLCBLZXk6IGl0ZW0gfSkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEFVVEhcblxuICBwdWJsaWMgZ2V0VG9rZW5QYXlsb2FkKGVtYWlsOiBzdHJpbmcpOiBKd3RQYXlsb2FkIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hcGlUb2tlbnNbZW1haWxdPy5wYXlsb2FkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZVVzZXIoZW1haWw6IHN0cmluZywgYXR0cmlidXRlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgZ3JvdXBzOiBzdHJpbmdbXSkge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHVzZXJQb29sSWQgY29uZmlndXJlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgtMTYpO1xuXG4gICAgY29uc3QgY29nbml0b0NsaWVudDogQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQgPSBuZXcgQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQoeyByZWdpb246IHRoaXMub3B0aW9ucy5yZWdpb24gfSk7XG4gICAgLy8gQ3JlYXRlIGEgbmV3IHVzZXIgaW4gQ29nbml0b1xuICAgIGF3YWl0IGNvZ25pdG9DbGllbnQuc2VuZChuZXcgQWRtaW5DcmVhdGVVc2VyQ29tbWFuZCh7XG4gICAgICBVc2VyUG9vbElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQsXG4gICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgICBNZXNzYWdlQWN0aW9uOiBNZXNzYWdlQWN0aW9uVHlwZS5TVVBQUkVTUyxcbiAgICAgIFRlbXBvcmFyeVBhc3N3b3JkOiByYW5kb21QYXNzd29yZCxcbiAgICAgIFVzZXJBdHRyaWJ1dGVzOiBbe1xuICAgICAgICBOYW1lOiAnZW1haWwnLFxuICAgICAgICBWYWx1ZTogZW1haWwsXG4gICAgICB9LCB7XG4gICAgICAgIE5hbWU6ICdlbWFpbF92ZXJpZmllZCcsXG4gICAgICAgIFZhbHVlOiAndHJ1ZScsXG4gICAgICB9LFxuICAgICAgLi4uT2JqZWN0LmVudHJpZXMoYXR0cmlidXRlcykubWFwKChhdHRyKSA9PiAoe1xuICAgICAgICBOYW1lOiBhdHRyWzBdLFxuICAgICAgICBWYWx1ZTogYXR0clsxXSxcbiAgICAgIH0pKV0sXG4gICAgfSkpO1xuICAgIC8vIE1ha2UgcGFzc3dvcmQgcGVybWFuZW50IHRvIGdldCB1c2VyIG91dCBvZiBGT1JDRV9DSEFOR0VfUEFTU1dPUkRcbiAgICBhd2FpdCBjb2duaXRvQ2xpZW50LnNlbmQobmV3IEFkbWluU2V0VXNlclBhc3N3b3JkQ29tbWFuZCh7XG4gICAgICBVc2VyUG9vbElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQsXG4gICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgICBQYXNzd29yZDogcmFuZG9tUGFzc3dvcmQsXG4gICAgICBQZXJtYW5lbnQ6IHRydWUsXG4gICAgfSkpO1xuICAgIC8vIEFkZCB1c2VyIHRvIGdyb3Vwc1xuICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgZ3JvdXBzKSB7XG4gICAgICBhd2FpdCBjb2duaXRvQ2xpZW50LnNlbmQobmV3IEFkbWluQWRkVXNlclRvR3JvdXBDb21tYW5kKHtcbiAgICAgICAgVXNlclBvb2xJZDogdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkLFxuICAgICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgICAgIEdyb3VwTmFtZTogZ3JvdXAsXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5sb2dpblVzZXIoZW1haWwsIHJhbmRvbVBhc3N3b3JkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZW1vdmVVc2VyKGVtYWlsOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB1c2VyUG9vbElkIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG4gICAgY29uc3QgY29nbml0b0NsaWVudDogQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQgPSBuZXcgQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQoeyByZWdpb246IHRoaXMub3B0aW9ucy5yZWdpb24gfSk7XG4gICAgYXdhaXQgY29nbml0b0NsaWVudC5zZW5kKG5ldyBBZG1pbkRlbGV0ZVVzZXJDb21tYW5kKHtcbiAgICAgIFVzZXJQb29sSWQ6IHRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCxcbiAgICAgIFVzZXJuYW1lOiBlbWFpbCxcbiAgICB9KSk7XG4gICAgZGVsZXRlIHRoaXMuYXBpVG9rZW5zW2VtYWlsXTtcbiAgfVxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIGxvZ2luVXNlcihlbWFpbDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sQ2xpZW50SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdXNlclBvb2xDbGllbnRJZCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvZ25pdG9DbGllbnQgPSBuZXcgQXhpb3Moe1xuICAgICAgYmFzZVVSTDogYGh0dHBzOi8vY29nbml0by1pZHAuJHt0aGlzLm9wdGlvbnMucmVnaW9ufS5hbWF6b25hd3MuY29tL2AsXG4gICAgfSk7XG4gICAgY29uc3QgYXV0aCA9IGF3YWl0IGNvZ25pdG9DbGllbnQucG9zdCgnLycsIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIEF1dGhQYXJhbWV0ZXJzOiB7XG4gICAgICAgIFVTRVJOQU1FOiBlbWFpbCxcbiAgICAgICAgUEFTU1dPUkQ6IHBhc3N3b3JkLFxuICAgICAgfSxcbiAgICAgIEF1dGhGbG93OiAnVVNFUl9QQVNTV09SRF9BVVRIJyxcbiAgICAgIENsaWVudElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnMudXNlclBvb2xDbGllbnRJZCxcbiAgICB9KSwge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtYW16LWpzb24tMS4xJyxcbiAgICAgICAgJ1gtQW16LVRhcmdldCc6ICdBV1NDb2duaXRvSWRlbnRpdHlQcm92aWRlclNlcnZpY2UuSW5pdGlhdGVBdXRoJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKGF1dGguc3RhdHVzICE9PSBIdHRwU3RhdHVzQ29kZS5Paykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gYXV0aGVudGljYXRlIHVzZXIgJHtlbWFpbH1gKTtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSBKU09OLnBhcnNlKGF1dGguZGF0YSkuQXV0aGVudGljYXRpb25SZXN1bHQuSWRUb2tlbjtcbiAgICB0aGlzLmFwaVRva2Vuc1tlbWFpbF0gPSB7XG4gICAgICB0b2tlbixcbiAgICAgIHBheWxvYWQ6IGRlY29kZSh0aGlzLmFwaVRva2Vuc1tlbWFpbF0udG9rZW4pIGFzIEp3dFBheWxvYWQsXG4gICAgfTtcbiAgfVxufSJdfQ==
@@ -26,17 +26,16 @@ class LambdaRestUnitTest {
26
26
  this.defaults = defaults;
27
27
  }
28
28
  createRestEvent(options = {}) {
29
- var _a, _b, _c, _d;
30
29
  const { path = '/', method = 'GET', body = '', } = options;
31
30
  const headers = {
32
- ...(_a = this.defaults) === null || _a === void 0 ? void 0 : _a.headers,
31
+ ...this.defaults?.headers,
33
32
  ...options.headers,
34
33
  };
35
34
  const cognitoClaims = {
36
35
  username: 'DummyUser',
37
36
  email: 'dummy@example.com',
38
37
  groups: [],
39
- ...(_b = this.defaults) === null || _b === void 0 ? void 0 : _b.cognito,
38
+ ...this.defaults?.cognito,
40
39
  ...options.cognito,
41
40
  };
42
41
  return {
@@ -46,9 +45,9 @@ class LambdaRestUnitTest {
46
45
  httpMethod: method,
47
46
  isBase64Encoded: false,
48
47
  path,
49
- pathParameters: (_c = options.pathParameters) !== null && _c !== void 0 ? _c : null,
50
- queryStringParameters: options.queryStringParameters ? Object.fromEntries(Object.entries(options.queryStringParameters).map(([key, value]) => [key, value === null || value === void 0 ? void 0 : value.join(',')])) : null,
51
- multiValueQueryStringParameters: (_d = options.queryStringParameters) !== null && _d !== void 0 ? _d : null,
48
+ pathParameters: options.pathParameters ?? null,
49
+ queryStringParameters: options.queryStringParameters ? Object.fromEntries(Object.entries(options.queryStringParameters).map(([key, value]) => [key, value?.join(',')])) : null,
50
+ multiValueQueryStringParameters: options.queryStringParameters ?? null,
52
51
  stageVariables: null,
53
52
  requestContext: {
54
53
  accountId: '123456789012',
@@ -107,13 +106,12 @@ class LambdaGraphQLTest {
107
106
  this.defaults = defaults;
108
107
  }
109
108
  createGraphQLEvent(options) {
110
- var _a, _b;
111
109
  const { fieldName = 'testField', arguments: args = {}, source = null, parentTypeName = 'Query', prevResult = {}, stash = {}, } = options;
112
110
  const cognitoClaims = {
113
111
  username: 'DummyUser',
114
112
  email: 'dummy@example.com',
115
113
  groups: [],
116
- ...(_a = this.defaults) === null || _a === void 0 ? void 0 : _a.cognito,
114
+ ...this.defaults?.cognito,
117
115
  ...options.cognito,
118
116
  };
119
117
  return {
@@ -155,7 +153,7 @@ class LambdaGraphQLTest {
155
153
  result: prevResult,
156
154
  },
157
155
  stash: {
158
- ...(_b = this.defaults) === null || _b === void 0 ? void 0 : _b.stash,
156
+ ...this.defaults?.stash,
159
157
  ...stash,
160
158
  },
161
159
  };
@@ -171,4 +169,4 @@ class LambdaGraphQLTest {
171
169
  }
172
170
  }
173
171
  exports.LambdaGraphQLTest = LambdaGraphQLTest;
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLXRlc3QtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvbGFtYmRhLXRlc3QtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBdUJBLHNDQWlCQztBQWpCRCxTQUFnQixhQUFhO0lBQzNCLE9BQU87UUFDTCw4QkFBOEIsRUFBRSxLQUFLO1FBQ3JDLFlBQVksRUFBRSxNQUFNO1FBQ3BCLGVBQWUsRUFBRSxHQUFHO1FBQ3BCLGtCQUFrQixFQUFFLHFEQUFxRDtRQUN6RSxlQUFlLEVBQUUsTUFBTTtRQUN2QixZQUFZLEVBQUUsV0FBVztRQUN6QixZQUFZLEVBQUUsY0FBYztRQUM1QixhQUFhLEVBQUUsZUFBZTtRQUM5Qix3QkFBd0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1FBQ3BDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7UUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtRQUNsQixRQUFRLEVBQUUsU0FBUztRQUNuQixhQUFhLEVBQUUsU0FBUztLQUN6QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQWEsa0JBQWtCO0lBRTdCLFlBQ21CLE9BQTRCLEVBQzVCLFFBQW9DO1FBRHBDLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQTRCO0lBQ25ELENBQUM7SUFFRyxlQUFlLENBQUMsVUFBaUMsRUFBRTs7UUFDekQsTUFBTSxFQUNKLElBQUksR0FBRyxHQUFHLEVBQ1YsTUFBTSxHQUFHLEtBQUssRUFDZCxJQUFJLEdBQUcsRUFBRSxHQUNWLEdBQUcsT0FBTyxDQUFDO1FBRVosTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLE1BQUEsSUFBSSxDQUFDLFFBQVEsMENBQUUsT0FBTztZQUN6QixHQUFHLE9BQU8sQ0FBQyxPQUFPO1NBQ25CLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRztZQUNwQixRQUFRLEVBQUUsV0FBVztZQUNyQixLQUFLLEVBQUUsbUJBQW1CO1lBQzFCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsR0FBRyxNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLE9BQU87WUFDekIsR0FBRyxPQUFPLENBQUMsT0FBTztTQUNuQixDQUFDO1FBRUYsT0FBTztZQUNMLElBQUk7WUFDSixPQUFPO1lBQ1AsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakgsVUFBVSxFQUFFLE1BQU07WUFDbEIsZUFBZSxFQUFFLEtBQUs7WUFDdEIsSUFBSTtZQUNKLGNBQWMsRUFBRSxNQUFBLE9BQU8sQ0FBQyxjQUFjLG1DQUFJLElBQUk7WUFDOUMscUJBQXFCLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDOUssK0JBQStCLEVBQUUsTUFBQSxPQUFPLENBQUMscUJBQXFCLG1DQUFJLElBQUk7WUFDdEUsY0FBYyxFQUFFLElBQUk7WUFDcEIsY0FBYyxFQUFFO2dCQUNkLFNBQVMsRUFBRSxjQUFjO2dCQUN6QixLQUFLLEVBQUUsT0FBTztnQkFDZCxVQUFVLEVBQUU7b0JBQ1YsTUFBTSxFQUFFO3dCQUNOLEtBQUssRUFBRSxhQUFhLENBQUMsUUFBUTt3QkFDN0Isa0JBQWtCLEVBQUUsYUFBYSxDQUFDLFFBQVE7d0JBQzFDLGdCQUFnQixFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBc0I7d0JBQzdELE9BQU8sRUFBRSxhQUFhLENBQUMsS0FBSztxQkFDN0I7aUJBQ0Y7Z0JBQ0QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLFVBQVUsRUFBRSxNQUFNO2dCQUNsQixRQUFRLEVBQUU7b0JBQ1IsU0FBUyxFQUFFLElBQUk7b0JBQ2YsU0FBUyxFQUFFLGNBQWM7b0JBQ3pCLE1BQU0sRUFBRSxJQUFJO29CQUNaLFFBQVEsRUFBRSxJQUFJO29CQUNkLE1BQU0sRUFBRSxJQUFJO29CQUNaLFVBQVUsRUFBRSxJQUFJO29CQUNoQiw2QkFBNkIsRUFBRSxJQUFJO29CQUNuQyx5QkFBeUIsRUFBRSxJQUFJO29CQUMvQixpQkFBaUIsRUFBRSxJQUFJO29CQUN2QixxQkFBcUIsRUFBRSxJQUFJO29CQUMzQixjQUFjLEVBQUUsSUFBSTtvQkFDcEIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osSUFBSSxFQUFFLElBQUk7b0JBQ1YsU0FBUyxFQUFFLElBQUk7b0JBQ2YsT0FBTyxFQUFFLElBQUk7aUJBQ2Q7Z0JBQ0QsSUFBSTtnQkFDSixLQUFLLEVBQUUsTUFBTTtnQkFDYixTQUFTLEVBQUUsV0FBVztnQkFDdEIsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDbkIsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsWUFBWSxFQUFFLEVBQUU7YUFDakI7WUFDRCxRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFpQyxFQUFFO1FBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsTUFBTSxPQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUF2RkQsZ0RBdUZDO0FBZ0JELE1BQWEsaUJBQWlCO0lBRTVCLFlBQ21CLE9BQWtFLEVBQ2xFLFFBQXVDO1FBRHZDLFlBQU8sR0FBUCxPQUFPLENBQTJEO1FBQ2xFLGFBQVEsR0FBUixRQUFRLENBQStCO0lBQ3RELENBQUM7SUFFRyxrQkFBa0IsQ0FBQyxPQUFpRDs7UUFDMUUsTUFBTSxFQUNKLFNBQVMsR0FBRyxXQUFXLEVBQ3ZCLFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUNwQixNQUFNLEdBQUcsSUFBSSxFQUNiLGNBQWMsR0FBRyxPQUFPLEVBQ3hCLFVBQVUsR0FBRyxFQUFFLEVBQ2YsS0FBSyxHQUFHLEVBQUUsR0FDWCxHQUFHLE9BQU8sQ0FBQztRQUVaLE1BQU0sYUFBYSxHQUFHO1lBQ3BCLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLEtBQUssRUFBRSxtQkFBbUI7WUFDMUIsTUFBTSxFQUFFLEVBQUU7WUFDVixHQUFHLE1BQUEsSUFBSSxDQUFDLFFBQVEsMENBQUUsT0FBTztZQUN6QixHQUFHLE9BQU8sQ0FBQyxPQUFPO1NBQ25CLENBQUM7UUFFRixPQUFPO1lBQ0wsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNO1lBQ04sSUFBSSxFQUFFO2dCQUNKLFNBQVM7Z0JBQ1QsY0FBYztnQkFDZCxtQkFBbUIsRUFBRSxFQUFFO2dCQUN2QixnQkFBZ0IsRUFBRSxFQUFFO2dCQUNwQixTQUFTLEVBQUUsRUFBRTthQUNkO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixPQUFPLEVBQUUsRUFBRTthQUNaO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRTtvQkFDTixLQUFLLEVBQUUsYUFBYSxDQUFDLFFBQVE7b0JBQzdCLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxRQUFRO29CQUMxQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsTUFBMkI7b0JBQzNELE9BQU8sRUFBRSxhQUFhLENBQUMsS0FBSztpQkFDN0I7Z0JBQ0QsTUFBTSxFQUFFLGFBQWEsQ0FBQyxNQUFNO2dCQUM1QixHQUFHLEVBQUUsYUFBYSxDQUFDLFFBQVE7Z0JBQzNCLFNBQVMsRUFBRSxjQUFjO2dCQUN6QiwyQkFBMkIsRUFBRSxJQUFJO2dCQUNqQyx1QkFBdUIsRUFBRSxJQUFJO2dCQUM3QixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixxQkFBcUIsRUFBRSxJQUFJO2dCQUMzQixlQUFlLEVBQUUsSUFBSTtnQkFDckIsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsbUJBQW1CLEVBQUUsT0FBTztnQkFDNUIsTUFBTSxFQUFFLHFEQUFxRDtnQkFDN0QsUUFBUSxFQUFFLENBQUMsV0FBVyxDQUFDO2dCQUN2QixRQUFRLEVBQUUsYUFBYSxDQUFDLFFBQVE7YUFDakM7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLFVBQVU7YUFDbkI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsR0FBRyxNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLEtBQUs7Z0JBQ3ZCLEdBQUcsS0FBSzthQUNUO1NBQ2dELENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBaUQ7UUFDMUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLE1BQU0sT0FBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBL0VELDhDQStFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQSUdhdGV3YXlQcm94eUV2ZW50TXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycywgQVBJR2F0ZXdheVByb3h5RXZlbnRQYXRoUGFyYW1ldGVycywgQVBJR2F0ZXdheVByb3h5UmVzdWx0LCBBUElHYXRld2F5UHJveHlXaXRoQ29nbml0b0F1dGhvcml6ZXJFdmVudCwgQ29udGV4dCB9IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQVBJR2F0ZXdheXYxSGFuZGxlciB9IGZyb20gJy4uL2xhbWJkYS9oYW5kbGVyJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIENvZ25pdG9Vc2VyIHtcbiAgZW1haWw6IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgZ3JvdXBzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFSZXN0VGVzdE9wdGlvbnNCYXNlIHtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGNvZ25pdG8/OiBDb2duaXRvVXNlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFSZXN0VGVzdE9wdGlvbnMgZXh0ZW5kcyBMYW1iZGFSZXN0VGVzdE9wdGlvbnNCYXNlIHtcbiAgcGF0aD86IHN0cmluZztcbiAgbWV0aG9kPzogc3RyaW5nO1xuICBib2R5Pzogc3RyaW5nO1xuICBwYXRoUGFyYW1ldGVycz86IEFQSUdhdGV3YXlQcm94eUV2ZW50UGF0aFBhcmFtZXRlcnM7XG4gIHF1ZXJ5U3RyaW5nUGFyYW1ldGVycz86IEFQSUdhdGV3YXlQcm94eUV2ZW50TXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQoKTogQ29udGV4dCB7XG4gIHJldHVybiB7XG4gICAgY2FsbGJhY2tXYWl0c0ZvckVtcHR5RXZlbnRMb29wOiBmYWxzZSxcbiAgICBmdW5jdGlvbk5hbWU6ICd0ZXN0JyxcbiAgICBmdW5jdGlvblZlcnNpb246ICcxJyxcbiAgICBpbnZva2VkRnVuY3Rpb25Bcm46ICdhcm46YXdzOmxhbWJkYTp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOmZ1bmN0aW9uOnRlc3QnLFxuICAgIG1lbW9yeUxpbWl0SW5NQjogJzEwMjQnLFxuICAgIGF3c1JlcXVlc3RJZDogJ3JlcXVlc3RJZCcsXG4gICAgbG9nR3JvdXBOYW1lOiAnbG9nR3JvdXBOYW1lJyxcbiAgICBsb2dTdHJlYW1OYW1lOiAnbG9nU3RyZWFtTmFtZScsXG4gICAgZ2V0UmVtYWluaW5nVGltZUluTWlsbGlzOiAoKSA9PiAxMDAwLFxuICAgIGRvbmU6IGplc3QuZm4oKSxcbiAgICBmYWlsOiBqZXN0LmZuKCksXG4gICAgc3VjY2VlZDogamVzdC5mbigpLFxuICAgIGlkZW50aXR5OiB1bmRlZmluZWQsXG4gICAgY2xpZW50Q29udGV4dDogdW5kZWZpbmVkLFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgTGFtYmRhUmVzdFVuaXRUZXN0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZXI6IEFQSUdhdGV3YXl2MUhhbmRsZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0cz86IExhbWJkYVJlc3RUZXN0T3B0aW9uc0Jhc2UsXG4gICkgeyB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSZXN0RXZlbnQob3B0aW9uczogTGFtYmRhUmVzdFRlc3RPcHRpb25zID0ge30pOiBBUElHYXRld2F5UHJveHlXaXRoQ29nbml0b0F1dGhvcml6ZXJFdmVudCB7XG4gICAgY29uc3Qge1xuICAgICAgcGF0aCA9ICcvJyxcbiAgICAgIG1ldGhvZCA9ICdHRVQnLFxuICAgICAgYm9keSA9ICcnLFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgIC4uLnRoaXMuZGVmYXVsdHM/LmhlYWRlcnMsXG4gICAgICAuLi5vcHRpb25zLmhlYWRlcnMsXG4gICAgfTtcbiAgICBjb25zdCBjb2duaXRvQ2xhaW1zID0ge1xuICAgICAgdXNlcm5hbWU6ICdEdW1teVVzZXInLFxuICAgICAgZW1haWw6ICdkdW1teUBleGFtcGxlLmNvbScsXG4gICAgICBncm91cHM6IFtdLFxuICAgICAgLi4udGhpcy5kZWZhdWx0cz8uY29nbml0byxcbiAgICAgIC4uLm9wdGlvbnMuY29nbml0byxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJvZHksXG4gICAgICBoZWFkZXJzLFxuICAgICAgbXVsdGlWYWx1ZUhlYWRlcnM6IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhoZWFkZXJzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgdmFsdWUgPyBbdmFsdWVdIDogW11dKSksXG4gICAgICBodHRwTWV0aG9kOiBtZXRob2QsXG4gICAgICBpc0Jhc2U2NEVuY29kZWQ6IGZhbHNlLFxuICAgICAgcGF0aCxcbiAgICAgIHBhdGhQYXJhbWV0ZXJzOiBvcHRpb25zLnBhdGhQYXJhbWV0ZXJzID8/IG51bGwsXG4gICAgICBxdWVyeVN0cmluZ1BhcmFtZXRlcnM6IG9wdGlvbnMucXVlcnlTdHJpbmdQYXJhbWV0ZXJzID8gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKG9wdGlvbnMucXVlcnlTdHJpbmdQYXJhbWV0ZXJzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgdmFsdWU/LmpvaW4oJywnKV0pKSA6IG51bGwsXG4gICAgICBtdWx0aVZhbHVlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzOiBvcHRpb25zLnF1ZXJ5U3RyaW5nUGFyYW1ldGVycyA/PyBudWxsLFxuICAgICAgc3RhZ2VWYXJpYWJsZXM6IG51bGwsXG4gICAgICByZXF1ZXN0Q29udGV4dDoge1xuICAgICAgICBhY2NvdW50SWQ6ICcxMjM0NTY3ODkwMTInLFxuICAgICAgICBhcGlJZDogJ2FwcElkJyxcbiAgICAgICAgYXV0aG9yaXplcjoge1xuICAgICAgICAgIGNsYWltczoge1xuICAgICAgICAgICAgJ3N1Yic6IGNvZ25pdG9DbGFpbXMudXNlcm5hbWUsXG4gICAgICAgICAgICAnY29nbml0bzp1c2VybmFtZSc6IGNvZ25pdG9DbGFpbXMudXNlcm5hbWUsXG4gICAgICAgICAgICAnY29nbml0bzpncm91cHMnOiAoY29nbml0b0NsYWltcy5ncm91cHMpIGFzIHVua25vd24gYXMgc3RyaW5nLFxuICAgICAgICAgICAgJ2VtYWlsJzogY29nbml0b0NsYWltcy5lbWFpbCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwcm90b2NvbDogJ0hUVFAvMS4xJyxcbiAgICAgICAgaHR0cE1ldGhvZDogbWV0aG9kLFxuICAgICAgICBpZGVudGl0eToge1xuICAgICAgICAgIGFjY2Vzc0tleTogbnVsbCxcbiAgICAgICAgICBhY2NvdW50SWQ6ICcxMjM0NTY3ODkwMTInLFxuICAgICAgICAgIGFwaUtleTogbnVsbCxcbiAgICAgICAgICBhcGlLZXlJZDogbnVsbCxcbiAgICAgICAgICBjYWxsZXI6IG51bGwsXG4gICAgICAgICAgY2xpZW50Q2VydDogbnVsbCxcbiAgICAgICAgICBjb2duaXRvQXV0aGVudGljYXRpb25Qcm92aWRlcjogbnVsbCxcbiAgICAgICAgICBjb2duaXRvQXV0aGVudGljYXRpb25UeXBlOiBudWxsLFxuICAgICAgICAgIGNvZ25pdG9JZGVudGl0eUlkOiBudWxsLFxuICAgICAgICAgIGNvZ25pdG9JZGVudGl0eVBvb2xJZDogbnVsbCxcbiAgICAgICAgICBwcmluY2lwYWxPcmdJZDogbnVsbCxcbiAgICAgICAgICBzb3VyY2VJcDogJycsXG4gICAgICAgICAgdXNlcjogbnVsbCxcbiAgICAgICAgICB1c2VyQWdlbnQ6IG51bGwsXG4gICAgICAgICAgdXNlckFybjogbnVsbCxcbiAgICAgICAgfSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgc3RhZ2U6ICdwcm9kJyxcbiAgICAgICAgcmVxdWVzdElkOiAncmVxdWVzdElkJyxcbiAgICAgICAgcmVxdWVzdFRpbWVFcG9jaDogMCxcbiAgICAgICAgcmVzb3VyY2VJZDogJycsXG4gICAgICAgIHJlc291cmNlUGF0aDogJycsXG4gICAgICB9LFxuICAgICAgcmVzb3VyY2U6ICcnLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBjYWxsKG9wdGlvbnM6IExhbWJkYVJlc3RUZXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTxBUElHYXRld2F5UHJveHlSZXN1bHQ+IHtcbiAgICBjb25zdCBldmVudCA9IHRoaXMuY3JlYXRlUmVzdEV2ZW50KG9wdGlvbnMpO1xuICAgIGNvbnN0IGNvbnRleHQgPSBjcmVhdGVDb250ZXh0KCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5oYW5kbGVyKGV2ZW50LCBjb250ZXh0LCAoKSA9PiB7IH0pO1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHJlc3VsdCByZXR1cm5lZCBmcm9tIGxhbWJkYScpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFHcmFwaFFMVGVzdE9wdGlvbnNCYXNlIHtcbiAgY29nbml0bz86IENvZ25pdG9Vc2VyO1xuICBzdGFzaD86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhR3JhcGhRTFRlc3RPcHRpb25zPFRBcmdzLCBUU291cmNlID0gUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGw+IGV4dGVuZHMgTGFtYmRhR3JhcGhRTFRlc3RPcHRpb25zQmFzZSB7XG4gIGZpZWxkTmFtZT86IHN0cmluZztcbiAgYXJndW1lbnRzPzogVEFyZ3M7XG4gIHNvdXJjZT86IFRTb3VyY2U7XG4gIHBhcmVudFR5cGVOYW1lPzogc3RyaW5nO1xuICBwcmV2UmVzdWx0PzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuZXhwb3J0IGNsYXNzIExhbWJkYUdyYXBoUUxUZXN0PFRBcmdzLCBUUmVzdWx0LCBUU291cmNlID0gUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGw+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZXI6IEFXU0xhbWJkYS5BcHBTeW5jUmVzb2x2ZXJIYW5kbGVyPFRBcmdzLCBUUmVzdWx0LCBUU291cmNlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRzPzogTGFtYmRhR3JhcGhRTFRlc3RPcHRpb25zQmFzZSxcbiAgKSB7IH1cblxuICBwcml2YXRlIGNyZWF0ZUdyYXBoUUxFdmVudChvcHRpb25zOiBMYW1iZGFHcmFwaFFMVGVzdE9wdGlvbnM8VEFyZ3MsIFRTb3VyY2U+KTogQVdTTGFtYmRhLkFwcFN5bmNSZXNvbHZlckV2ZW50PFRBcmdzLCBUU291cmNlPiB7XG4gICAgY29uc3Qge1xuICAgICAgZmllbGROYW1lID0gJ3Rlc3RGaWVsZCcsXG4gICAgICBhcmd1bWVudHM6IGFyZ3MgPSB7fSxcbiAgICAgIHNvdXJjZSA9IG51bGwsXG4gICAgICBwYXJlbnRUeXBlTmFtZSA9ICdRdWVyeScsXG4gICAgICBwcmV2UmVzdWx0ID0ge30sXG4gICAgICBzdGFzaCA9IHt9LFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgY29nbml0b0NsYWltcyA9IHtcbiAgICAgIHVzZXJuYW1lOiAnRHVtbXlVc2VyJyxcbiAgICAgIGVtYWlsOiAnZHVtbXlAZXhhbXBsZS5jb20nLFxuICAgICAgZ3JvdXBzOiBbXSxcbiAgICAgIC4uLnRoaXMuZGVmYXVsdHM/LmNvZ25pdG8sXG4gICAgICAuLi5vcHRpb25zLmNvZ25pdG8sXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBhcmd1bWVudHM6IGFyZ3MsXG4gICAgICBzb3VyY2UsXG4gICAgICBpbmZvOiB7XG4gICAgICAgIGZpZWxkTmFtZSxcbiAgICAgICAgcGFyZW50VHlwZU5hbWUsXG4gICAgICAgIHNlbGVjdGlvblNldEdyYXBoUUw6ICcnLFxuICAgICAgICBzZWxlY3Rpb25TZXRMaXN0OiBbXSxcbiAgICAgICAgdmFyaWFibGVzOiB7fSxcbiAgICAgIH0sXG4gICAgICByZXF1ZXN0OiB7XG4gICAgICAgIGRvbWFpbk5hbWU6IG51bGwsXG4gICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgfSxcbiAgICAgIGlkZW50aXR5OiB7XG4gICAgICAgIGNsYWltczoge1xuICAgICAgICAgICdzdWInOiBjb2duaXRvQ2xhaW1zLnVzZXJuYW1lLFxuICAgICAgICAgICdjb2duaXRvOnVzZXJuYW1lJzogY29nbml0b0NsYWltcy51c2VybmFtZSxcbiAgICAgICAgICAnY29nbml0bzpncm91cHMnOiBjb2duaXRvQ2xhaW1zLmdyb3VwcyBhcyB1bmtub3duIGFzIHN0cmluZyxcbiAgICAgICAgICAnZW1haWwnOiBjb2duaXRvQ2xhaW1zLmVtYWlsLFxuICAgICAgICB9LFxuICAgICAgICBncm91cHM6IGNvZ25pdG9DbGFpbXMuZ3JvdXBzLFxuICAgICAgICBzdWI6IGNvZ25pdG9DbGFpbXMudXNlcm5hbWUsXG4gICAgICAgIGFjY291bnRJZDogJzEyMzQ1Njc4OTAxMicsXG4gICAgICAgIGNvZ25pdG9JZGVudGl0eUF1dGhQcm92aWRlcjogbnVsbCxcbiAgICAgICAgY29nbml0b0lkZW50aXR5QXV0aFR5cGU6IG51bGwsXG4gICAgICAgIGNvZ25pdG9JZGVudGl0eUlkOiBudWxsLFxuICAgICAgICBjb2duaXRvSWRlbnRpdHlQb29sSWQ6IG51bGwsXG4gICAgICAgIHJlc29sdmVyQ29udGV4dDogbnVsbCxcbiAgICAgICAgdXNlckFybjogbnVsbCxcbiAgICAgICAgZGVmYXVsdEF1dGhTdHJhdGVneTogJ0FMTE9XJyxcbiAgICAgICAgaXNzdWVyOiAnaHR0cHM6Ly9jb2duaXRvLWlkcC5yZWdpb24uYW1hem9uYXdzLmNvbS91c2VyUG9vbElkJyxcbiAgICAgICAgc291cmNlSXA6IFsnMTI3LjAuMC4xJ10sXG4gICAgICAgIHVzZXJuYW1lOiBjb2duaXRvQ2xhaW1zLnVzZXJuYW1lLFxuICAgICAgfSxcbiAgICAgIHByZXY6IHtcbiAgICAgICAgcmVzdWx0OiBwcmV2UmVzdWx0LFxuICAgICAgfSxcbiAgICAgIHN0YXNoOiB7XG4gICAgICAgIC4uLnRoaXMuZGVmYXVsdHM/LnN0YXNoLFxuICAgICAgICAuLi5zdGFzaCxcbiAgICAgIH0sXG4gICAgfSBhcyBBV1NMYW1iZGEuQXBwU3luY1Jlc29sdmVyRXZlbnQ8VEFyZ3MsIFRTb3VyY2U+O1xuICB9XG5cbiAgYXN5bmMgY2FsbChvcHRpb25zOiBMYW1iZGFHcmFwaFFMVGVzdE9wdGlvbnM8VEFyZ3MsIFRTb3VyY2U+KTogUHJvbWlzZTxUUmVzdWx0PiB7XG4gICAgY29uc3QgZXZlbnQgPSB0aGlzLmNyZWF0ZUdyYXBoUUxFdmVudChvcHRpb25zKTtcbiAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlQ29udGV4dCgpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuaGFuZGxlcihldmVudCwgY29udGV4dCwgKCkgPT4geyB9KTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyByZXN1bHQgcmV0dXJuZWQgZnJvbSBsYW1iZGEnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLXRlc3QtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvbGFtYmRhLXRlc3QtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBdUJBLHNDQWlCQztBQWpCRCxTQUFnQixhQUFhO0lBQzNCLE9BQU87UUFDTCw4QkFBOEIsRUFBRSxLQUFLO1FBQ3JDLFlBQVksRUFBRSxNQUFNO1FBQ3BCLGVBQWUsRUFBRSxHQUFHO1FBQ3BCLGtCQUFrQixFQUFFLHFEQUFxRDtRQUN6RSxlQUFlLEVBQUUsTUFBTTtRQUN2QixZQUFZLEVBQUUsV0FBVztRQUN6QixZQUFZLEVBQUUsY0FBYztRQUM1QixhQUFhLEVBQUUsZUFBZTtRQUM5Qix3QkFBd0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1FBQ3BDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7UUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtRQUNsQixRQUFRLEVBQUUsU0FBUztRQUNuQixhQUFhLEVBQUUsU0FBUztLQUN6QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQWEsa0JBQWtCO0lBRTdCLFlBQ21CLE9BQTRCLEVBQzVCLFFBQW9DO1FBRHBDLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQTRCO0lBQ25ELENBQUM7SUFFRyxlQUFlLENBQUMsVUFBaUMsRUFBRTtRQUN6RCxNQUFNLEVBQ0osSUFBSSxHQUFHLEdBQUcsRUFDVixNQUFNLEdBQUcsS0FBSyxFQUNkLElBQUksR0FBRyxFQUFFLEdBQ1YsR0FBRyxPQUFPLENBQUM7UUFFWixNQUFNLE9BQU8sR0FBRztZQUNkLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPO1lBQ3pCLEdBQUcsT0FBTyxDQUFDLE9BQU87U0FDbkIsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHO1lB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Q2hCLENBQUM7Q0FDRjtBQS9FRCw4Q0ErRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElHYXRld2F5UHJveHlFdmVudE11bHRpVmFsdWVRdWVyeVN0cmluZ1BhcmFtZXRlcnMsIEFQSUdhdGV3YXlQcm94eUV2ZW50UGF0aFBhcmFtZXRlcnMsIEFQSUdhdGV3YXlQcm94eVJlc3VsdCwgQVBJR2F0ZXdheVByb3h5V2l0aENvZ25pdG9BdXRob3JpemVyRXZlbnQsIENvbnRleHQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB7IEFQSUdhdGV3YXl2MUhhbmRsZXIgfSBmcm9tICcuLi9sYW1iZGEvaGFuZGxlcic7XG5cblxuZXhwb3J0IGludGVyZmFjZSBDb2duaXRvVXNlciB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIGdyb3Vwczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhUmVzdFRlc3RPcHRpb25zQmFzZSB7XG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBjb2duaXRvPzogQ29nbml0b1VzZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhUmVzdFRlc3RPcHRpb25zIGV4dGVuZHMgTGFtYmRhUmVzdFRlc3RPcHRpb25zQmFzZSB7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIG1ldGhvZD86IHN0cmluZztcbiAgYm9keT86IHN0cmluZztcbiAgcGF0aFBhcmFtZXRlcnM/OiBBUElHYXRld2F5UHJveHlFdmVudFBhdGhQYXJhbWV0ZXJzO1xuICBxdWVyeVN0cmluZ1BhcmFtZXRlcnM/OiBBUElHYXRld2F5UHJveHlFdmVudE11bHRpVmFsdWVRdWVyeVN0cmluZ1BhcmFtZXRlcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250ZXh0KCk6IENvbnRleHQge1xuICByZXR1cm4ge1xuICAgIGNhbGxiYWNrV2FpdHNGb3JFbXB0eUV2ZW50TG9vcDogZmFsc2UsXG4gICAgZnVuY3Rpb25OYW1lOiAndGVzdCcsXG4gICAgZnVuY3Rpb25WZXJzaW9uOiAnMScsXG4gICAgaW52b2tlZEZ1bmN0aW9uQXJuOiAnYXJuOmF3czpsYW1iZGE6dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjpmdW5jdGlvbjp0ZXN0JyxcbiAgICBtZW1vcnlMaW1pdEluTUI6ICcxMDI0JyxcbiAgICBhd3NSZXF1ZXN0SWQ6ICdyZXF1ZXN0SWQnLFxuICAgIGxvZ0dyb3VwTmFtZTogJ2xvZ0dyb3VwTmFtZScsXG4gICAgbG9nU3RyZWFtTmFtZTogJ2xvZ1N0cmVhbU5hbWUnLFxuICAgIGdldFJlbWFpbmluZ1RpbWVJbk1pbGxpczogKCkgPT4gMTAwMCxcbiAgICBkb25lOiBqZXN0LmZuKCksXG4gICAgZmFpbDogamVzdC5mbigpLFxuICAgIHN1Y2NlZWQ6IGplc3QuZm4oKSxcbiAgICBpZGVudGl0eTogdW5kZWZpbmVkLFxuICAgIGNsaWVudENvbnRleHQ6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIExhbWJkYVJlc3RVbml0VGVzdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVyOiBBUElHYXRld2F5djFIYW5kbGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdHM/OiBMYW1iZGFSZXN0VGVzdE9wdGlvbnNCYXNlLFxuICApIHsgfVxuXG4gIHByaXZhdGUgY3JlYXRlUmVzdEV2ZW50KG9wdGlvbnM6IExhbWJkYVJlc3RUZXN0T3B0aW9ucyA9IHt9KTogQVBJR2F0ZXdheVByb3h5V2l0aENvZ25pdG9BdXRob3JpemVyRXZlbnQge1xuICAgIGNvbnN0IHtcbiAgICAgIHBhdGggPSAnLycsXG4gICAgICBtZXRob2QgPSAnR0VUJyxcbiAgICAgIGJvZHkgPSAnJyxcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICAuLi50aGlzLmRlZmF1bHRzPy5oZWFkZXJzLFxuICAgICAgLi4ub3B0aW9ucy5oZWFkZXJzLFxuICAgIH07XG4gICAgY29uc3QgY29nbml0b0NsYWltcyA9IHtcbiAgICAgIHVzZXJuYW1lOiAnRHVtbXlVc2VyJyxcbiAgICAgIGVtYWlsOiAnZHVtbXlAZXhhbXBsZS5jb20nLFxuICAgICAgZ3JvdXBzOiBbXSxcbiAgICAgIC4uLnRoaXMuZGVmYXVsdHM/LmNvZ25pdG8sXG4gICAgICAuLi5vcHRpb25zLmNvZ25pdG8sXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBib2R5LFxuICAgICAgaGVhZGVycyxcbiAgICAgIG11bHRpVmFsdWVIZWFkZXJzOiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoaGVhZGVycykubWFwKChba2V5LCB2YWx1ZV0pID0+IFtrZXksIHZhbHVlID8gW3ZhbHVlXSA6IFtdXSkpLFxuICAgICAgaHR0cE1ldGhvZDogbWV0aG9kLFxuICAgICAgaXNCYXNlNjRFbmNvZGVkOiBmYWxzZSxcbiAgICAgIHBhdGgsXG4gICAgICBwYXRoUGFyYW1ldGVyczogb3B0aW9ucy5wYXRoUGFyYW1ldGVycyA/PyBudWxsLFxuICAgICAgcXVlcnlTdHJpbmdQYXJhbWV0ZXJzOiBvcHRpb25zLnF1ZXJ5U3RyaW5nUGFyYW1ldGVycyA/IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhvcHRpb25zLnF1ZXJ5U3RyaW5nUGFyYW1ldGVycykubWFwKChba2V5LCB2YWx1ZV0pID0+IFtrZXksIHZhbHVlPy5qb2luKCcsJyldKSkgOiBudWxsLFxuICAgICAgbXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVyczogb3B0aW9ucy5xdWVyeVN0cmluZ1BhcmFtZXRlcnMgPz8gbnVsbCxcbiAgICAgIHN0YWdlVmFyaWFibGVzOiBudWxsLFxuICAgICAgcmVxdWVzdENvbnRleHQ6IHtcbiAgICAgICAgYWNjb3VudElkOiAnMTIzNDU2Nzg5MDEyJyxcbiAgICAgICAgYXBpSWQ6ICdhcHBJZCcsXG4gICAgICAgIGF1dGhvcml6ZXI6IHtcbiAgICAgICAgICBjbGFpbXM6IHtcbiAgICAgICAgICAgICdzdWInOiBjb2duaXRvQ2xhaW1zLnVzZXJuYW1lLFxuICAgICAgICAgICAgJ2NvZ25pdG86dXNlcm5hbWUnOiBjb2duaXRvQ2xhaW1zLnVzZXJuYW1lLFxuICAgICAgICAgICAgJ2NvZ25pdG86Z3JvdXBzJzogKGNvZ25pdG9DbGFpbXMuZ3JvdXBzKSBhcyB1bmtub3duIGFzIHN0cmluZyxcbiAgICAgICAgICAgICdlbWFpbCc6IGNvZ25pdG9DbGFpbXMuZW1haWwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJvdG9jb2w6ICdIVFRQLzEuMScsXG4gICAgICAgIGh0dHBNZXRob2Q6IG1ldGhvZCxcbiAgICAgICAgaWRlbnRpdHk6IHtcbiAgICAgICAgICBhY2Nlc3NLZXk6IG51bGwsXG4gICAgICAgICAgYWNjb3VudElkOiAnMTIzNDU2Nzg5MDEyJyxcbiAgICAgICAgICBhcGlLZXk6IG51bGwsXG4gICAgICAgICAgYXBpS2V5SWQ6IG51bGwsXG4gICAgICAgICAgY2FsbGVyOiBudWxsLFxuICAgICAgICAgIGNsaWVudENlcnQ6IG51bGwsXG4gICAgICAgICAgY29nbml0b0F1dGhlbnRpY2F0aW9uUHJvdmlkZXI6IG51bGwsXG4gICAgICAgICAgY29nbml0b0F1dGhlbnRpY2F0aW9uVHlwZTogbnVsbCxcbiAgICAgICAgICBjb2duaXRvSWRlbnRpdHlJZDogbnVsbCxcbiAgICAgICAgICBjb2duaXRvSWRlbnRpdHlQb29sSWQ6IG51bGwsXG4gICAgICAgICAgcHJpbmNpcGFsT3JnSWQ6IG51bGwsXG4gICAgICAgICAgc291cmNlSXA6ICcnLFxuICAgICAgICAgIHVzZXI6IG51bGwsXG4gICAgICAgICAgdXNlckFnZW50OiBudWxsLFxuICAgICAgICAgIHVzZXJBcm46IG51bGwsXG4gICAgICAgIH0sXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHN0YWdlOiAncHJvZCcsXG4gICAgICAgIHJlcXVlc3RJZDogJ3JlcXVlc3RJZCcsXG4gICAgICAgIHJlcXVlc3RUaW1lRXBvY2g6IDAsXG4gICAgICAgIHJlc291cmNlSWQ6ICcnLFxuICAgICAgICByZXNvdXJjZVBhdGg6ICcnLFxuICAgICAgfSxcbiAgICAgIHJlc291cmNlOiAnJyxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgY2FsbChvcHRpb25zOiBMYW1iZGFSZXN0VGVzdE9wdGlvbnMgPSB7fSk6IFByb21pc2U8QVBJR2F0ZXdheVByb3h5UmVzdWx0PiB7XG4gICAgY29uc3QgZXZlbnQgPSB0aGlzLmNyZWF0ZVJlc3RFdmVudChvcHRpb25zKTtcbiAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlQ29udGV4dCgpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuaGFuZGxlcihldmVudCwgY29udGV4dCwgKCkgPT4geyB9KTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyByZXN1bHQgcmV0dXJuZWQgZnJvbSBsYW1iZGEnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhR3JhcGhRTFRlc3RPcHRpb25zQmFzZSB7XG4gIGNvZ25pdG8/OiBDb2duaXRvVXNlcjtcbiAgc3Rhc2g/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUdyYXBoUUxUZXN0T3B0aW9uczxUQXJncywgVFNvdXJjZSA9IFJlY29yZDxzdHJpbmcsIGFueT4gfCBudWxsPiBleHRlbmRzIExhbWJkYUdyYXBoUUxUZXN0T3B0aW9uc0Jhc2Uge1xuICBmaWVsZE5hbWU/OiBzdHJpbmc7XG4gIGFyZ3VtZW50cz86IFRBcmdzO1xuICBzb3VyY2U/OiBUU291cmNlO1xuICBwYXJlbnRUeXBlTmFtZT86IHN0cmluZztcbiAgcHJldlJlc3VsdD86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGFHcmFwaFFMVGVzdDxUQXJncywgVFJlc3VsdCwgVFNvdXJjZSA9IFJlY29yZDxzdHJpbmcsIGFueT4gfCBudWxsPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVyOiBBV1NMYW1iZGEuQXBwU3luY1Jlc29sdmVySGFuZGxlcjxUQXJncywgVFJlc3VsdCwgVFNvdXJjZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0cz86IExhbWJkYUdyYXBoUUxUZXN0T3B0aW9uc0Jhc2UsXG4gICkgeyB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVHcmFwaFFMRXZlbnQob3B0aW9uczogTGFtYmRhR3JhcGhRTFRlc3RPcHRpb25zPFRBcmdzLCBUU291cmNlPik6IEFXU0xhbWJkYS5BcHBTeW5jUmVzb2x2ZXJFdmVudDxUQXJncywgVFNvdXJjZT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGZpZWxkTmFtZSA9ICd0ZXN0RmllbGQnLFxuICAgICAgYXJndW1lbnRzOiBhcmdzID0ge30sXG4gICAgICBzb3VyY2UgPSBudWxsLFxuICAgICAgcGFyZW50VHlwZU5hbWUgPSAnUXVlcnknLFxuICAgICAgcHJldlJlc3VsdCA9IHt9LFxuICAgICAgc3Rhc2ggPSB7fSxcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGNvZ25pdG9DbGFpbXMgPSB7XG4gICAgICB1c2VybmFtZTogJ0R1bW15VXNlcicsXG4gICAgICBlbWFpbDogJ2R1bW15QGV4YW1wbGUuY29tJyxcbiAgICAgIGdyb3VwczogW10sXG4gICAgICAuLi50aGlzLmRlZmF1bHRzPy5jb2duaXRvLFxuICAgICAgLi4ub3B0aW9ucy5jb2duaXRvLFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXJndW1lbnRzOiBhcmdzLFxuICAgICAgc291cmNlLFxuICAgICAgaW5mbzoge1xuICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgIHBhcmVudFR5cGVOYW1lLFxuICAgICAgICBzZWxlY3Rpb25TZXRHcmFwaFFMOiAnJyxcbiAgICAgICAgc2VsZWN0aW9uU2V0TGlzdDogW10sXG4gICAgICAgIHZhcmlhYmxlczoge30sXG4gICAgICB9LFxuICAgICAgcmVxdWVzdDoge1xuICAgICAgICBkb21haW5OYW1lOiBudWxsLFxuICAgICAgICBoZWFkZXJzOiB7fSxcbiAgICAgIH0sXG4gICAgICBpZGVudGl0eToge1xuICAgICAgICBjbGFpbXM6IHtcbiAgICAgICAgICAnc3ViJzogY29nbml0b0NsYWltcy51c2VybmFtZSxcbiAgICAgICAgICAnY29nbml0bzp1c2VybmFtZSc6IGNvZ25pdG9DbGFpbXMudXNlcm5hbWUsXG4gICAgICAgICAgJ2NvZ25pdG86Z3JvdXBzJzogY29nbml0b0NsYWltcy5ncm91cHMgYXMgdW5rbm93biBhcyBzdHJpbmcsXG4gICAgICAgICAgJ2VtYWlsJzogY29nbml0b0NsYWltcy5lbWFpbCxcbiAgICAgICAgfSxcbiAgICAgICAgZ3JvdXBzOiBjb2duaXRvQ2xhaW1zLmdyb3VwcyxcbiAgICAgICAgc3ViOiBjb2duaXRvQ2xhaW1zLnVzZXJuYW1lLFxuICAgICAgICBhY2NvdW50SWQ6ICcxMjM0NTY3ODkwMTInLFxuICAgICAgICBjb2duaXRvSWRlbnRpdHlBdXRoUHJvdmlkZXI6IG51bGwsXG4gICAgICAgIGNvZ25pdG9JZGVudGl0eUF1dGhUeXBlOiBudWxsLFxuICAgICAgICBjb2duaXRvSWRlbnRpdHlJZDogbnVsbCxcbiAgICAgICAgY29nbml0b0lkZW50aXR5UG9vbElkOiBudWxsLFxuICAgICAgICByZXNvbHZlckNvbnRleHQ6IG51bGwsXG4gICAgICAgIHVzZXJBcm46IG51bGwsXG4gICAgICAgIGRlZmF1bHRBdXRoU3RyYXRlZ3k6ICdBTExPVycsXG4gICAgICAgIGlzc3VlcjogJ2h0dHBzOi8vY29nbml0by1pZHAucmVnaW9uLmFtYXpvbmF3cy5jb20vdXNlclBvb2xJZCcsXG4gICAgICAgIHNvdXJjZUlwOiBbJzEyNy4wLjAuMSddLFxuICAgICAgICB1c2VybmFtZTogY29nbml0b0NsYWltcy51c2VybmFtZSxcbiAgICAgIH0sXG4gICAgICBwcmV2OiB7XG4gICAgICAgIHJlc3VsdDogcHJldlJlc3VsdCxcbiAgICAgIH0sXG4gICAgICBzdGFzaDoge1xuICAgICAgICAuLi50aGlzLmRlZmF1bHRzPy5zdGFzaCxcbiAgICAgICAgLi4uc3Rhc2gsXG4gICAgICB9LFxuICAgIH0gYXMgQVdTTGFtYmRhLkFwcFN5bmNSZXNvbHZlckV2ZW50PFRBcmdzLCBUU291cmNlPjtcbiAgfVxuXG4gIGFzeW5jIGNhbGwob3B0aW9uczogTGFtYmRhR3JhcGhRTFRlc3RPcHRpb25zPFRBcmdzLCBUU291cmNlPik6IFByb21pc2U8VFJlc3VsdD4ge1xuICAgIGNvbnN0IGV2ZW50ID0gdGhpcy5jcmVhdGVHcmFwaFFMRXZlbnQob3B0aW9ucyk7XG4gICAgY29uc3QgY29udGV4dCA9IGNyZWF0ZUNvbnRleHQoKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmhhbmRsZXIoZXZlbnQsIGNvbnRleHQsICgpID0+IHsgfSk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcmVzdWx0IHJldHVybmVkIGZyb20gbGFtYmRhJyk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -57,7 +57,7 @@
57
57
  "jest": "^29.7.0",
58
58
  "jest-junit": "^16",
59
59
  "openapi-typescript": "7.6.1",
60
- "projen": "0.91.6",
60
+ "projen": "0.98.33",
61
61
  "ts-jest": "^29.3.1",
62
62
  "ts-node": "^10.9.2",
63
63
  "typedoc": "0.27.6",
@@ -71,7 +71,7 @@
71
71
  "aws-cdk-lib": ">=2.187.0 <3.0.0",
72
72
  "dynamodb-onetable": "2.7.5",
73
73
  "openapi-typescript": "^7.6.1",
74
- "projen": ">=0.91.6 <1.0.0"
74
+ "projen": ">=0.98.33 <1.0.0"
75
75
  },
76
76
  "dependencies": {
77
77
  "@types/aws-lambda": "^8.10.148",
@@ -96,12 +96,14 @@
96
96
  "publishConfig": {
97
97
  "access": "public"
98
98
  },
99
- "version": "2.20.0",
99
+ "version": "2.21.0",
100
100
  "jest": {
101
101
  "coverageProvider": "v8",
102
102
  "testMatch": [
103
103
  "<rootDir>/@(src|test)/**/*(*.)@(spec|test).ts?(x)",
104
- "<rootDir>/@(src|test)/**/__tests__/**/*.ts?(x)"
104
+ "<rootDir>/@(src|test)/**/__tests__/**/*.ts?(x)",
105
+ "<rootDir>/@(projenrc)/**/*(*.)@(spec|test).ts?(x)",
106
+ "<rootDir>/@(projenrc)/**/__tests__/**/*.ts?(x)"
105
107
  ],
106
108
  "clearMocks": true,
107
109
  "collectCoverage": true,
@@ -141,5 +143,5 @@
141
143
  }
142
144
  },
143
145
  "types": "lib/index.d.ts",
144
- "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
146
+ "//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
145
147
  }