@liflig/cdk 3.28.0 → 3.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,8 +22,6 @@ export const validateProps = (props) => {
22
22
  if (!props.trustedOwners.includes(repository.owner)) {
23
23
  errors.push(`Owner ${repository.owner} of repository ${repository.name} not configured as a trusted owner`);
24
24
  }
25
- // A malformed ID renders straight into the subject claim, where it matches
26
- // nothing and leaves deployments failing to assume the role.
27
25
  Object.entries({
28
26
  ownerId: repository.ownerId,
29
27
  repositoryId: repository.repositoryId,
@@ -38,15 +36,6 @@ export const validateProps = (props) => {
38
36
  /**
39
37
  * The repository segment of a GitHub Actions OIDC subject claim, in each
40
38
  * trusted format.
41
- *
42
- * Unpinned IDs become `@*`, which IAM matches with `StringLike`. Note that an
43
- * IAM `*` also matches `/` and `:`, so an unpinned owner ID lets the wildcard
44
- * span into the rest of the subject: the trailing `:ref:refs/heads/<branch>`
45
- * that the pattern looks for need not be the one GitHub put there. Git rejects
46
- * `:` in branch names, but other subject shapes (`:environment:<name>`) offer
47
- * no such guarantee. Pinning {@link Props.repositories.ownerId} makes the
48
- * pattern literal up to and including the repository name, which removes that
49
- * freedom entirely, and is worth doing wherever the ID is known.
50
39
  */
51
40
  const repositoryClaims = (repository, trustImmutableSubjectClaim) => [
52
41
  `${repository.owner}/${repository.name}`,
@@ -70,30 +59,23 @@ export class GithubActionsRole extends constructs.Construct {
70
59
  }
71
60
  const branch = props.trustedBranch ?? "master";
72
61
  const subjects = props.repositories.flatMap((repository) => repositoryClaims(repository, props.trustImmutableSubjectClaim ?? false).map((repositoryClaim) => `repo:${repositoryClaim}:ref:refs/heads/${branch}`));
73
- const fullyQualifiedSubjects = subjects.filter((subject) => !(subject.includes("?") || subject.includes("*")));
74
- const wildcardSubjects = subjects.filter((subject) => subject.includes("?") || subject.includes("*"));
75
- const principalConditions = {
76
- ...(fullyQualifiedSubjects.length && {
77
- StringEquals: {
78
- "token.actions.githubusercontent.com:sub": fullyQualifiedSubjects,
79
- },
80
- }),
81
- ...(wildcardSubjects.length && {
82
- StringLike: {
83
- "token.actions.githubusercontent.com:sub": wildcardSubjects,
84
- },
85
- }),
86
- };
87
- const principal = new iam.FederatedPrincipal(props.oidcProvider.openIdConnectProviderArn, principalConditions, "sts:AssumeRoleWithWebIdentity");
88
- // Verify that the principal is configured with a trust relationship
89
- // that contains at least one IAM condition with a context key and values
90
- if (!Object.values(principalConditions).some((conditionElement) => Object.entries(conditionElement).some(([conditionKey, conditionValue]) => conditionKey && conditionValue.length))) {
62
+ if (subjects.length === 0) {
91
63
  throw new Error("The principal's trust policy needs to be configured with at least one IAM condition");
92
64
  }
65
+ // IAM combines multiple condition operators with a logical AND, so all
66
+ // subjects must share one operator to be alternatives rather than
67
+ // requirements.
68
+ const containsWildcard = (subject) => subject.includes("?") || subject.includes("*");
69
+ const principalConditions = subjects.some(containsWildcard)
70
+ ? { StringLike: { "token.actions.githubusercontent.com:sub": subjects } }
71
+ : {
72
+ StringEquals: { "token.actions.githubusercontent.com:sub": subjects },
73
+ };
74
+ const principal = new iam.FederatedPrincipal(props.oidcProvider.openIdConnectProviderArn, principalConditions, "sts:AssumeRoleWithWebIdentity");
93
75
  this.role = new iam.Role(this, "Role", {
94
76
  roleName: props.roleName ?? "github-actions-role",
95
77
  assumedBy: principal,
96
78
  });
97
79
  }
98
80
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWFjdGlvbnMtcm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZC1hcnRpZmFjdHMvZ2l0aHViLWFjdGlvbnMtcm9sZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFBO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBZ0d4Qzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBWSxFQUFZLEVBQUU7SUFDdEQsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFBO0lBQzNCLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxDQUFDLElBQUksQ0FBQyw2REFBNkQsQ0FBQyxDQUFBO0lBQzVFLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMERBQTBELENBQUMsQ0FBQTtJQUN6RSxDQUFDO0lBQ0QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsS0FBSyw4QkFBOEIsQ0FBQyxDQUFBO1FBQ25FLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQ1QsU0FBUyxVQUFV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QUNuQyxZQUFZLEVBQUU7b0JBQ1oseUNBQXlDLEVBQUUsc0JBQXNCO2lCQUNsRTthQUNGLENBQUM7WUFDRixHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxJQUFJO2dCQUM3QixVQUFVLEVBQUU7b0JBQ1YseUNBQXlDLEVBQUUsZ0JBQWdCO2lCQUM1RDthQUNGLENBQUM7U0FDSCxDQUFBO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsa0JBQWtCLENBQzFDLEtBQUssQ0FBQyxZQUFZLENBQUMsd0JBQXdCLEVBQzNDLG1CQUFtQixFQUNuQiwrQkFBK0IsQ0FDaEMsQ0FBQTtRQUVELG9FQUFvRTtRQUNwRSx5RUFBeUU7UUFDekUsSUFDRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQzVELE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQ25DLENBQUMsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUNqQyxZQUFZLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FDeEMsQ0FDRixFQUNELENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLHFGQUFxRixDQUN0RixDQUFBO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDckMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUkscUJBQXFCO1lBQ2pELFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcblxuZXhwb3J0IGludGVyZmFjZSBQcm9wcyB7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgdHJ1c3RlZCBHaXRIdWIgcmVwb3NpdG9yeSBvd25lcnMuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb25zIGFzIGEgc29ydCBvZiB3aGl0ZWxpc3QgdG8gY2F0Y2hcbiAgICogcG90ZW50aWFsIHR5cG9zIGluIHtAbGluayByZXBvc2l0b3JpZXN9LlxuICAgKi9cbiAgdHJ1c3RlZE93bmVyczogc3RyaW5nW11cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0cnVzdGVkIGJyYW5jaC5cbiAgICpcbiAgICogVGhlIHdpbGRjYXJkIGNoYXJhY3RlcnMgJyonIGFuZCAnPycgY2FuIGJlIHVzZWQgdG9cbiAgICogcmVwcmVzZW50IGFueSBjb21iaW5hdGlvbiBvZiBjaGFyYWN0ZXJzIGFuZCBhbnkgc2luZ2xlXG4gICAqIGNoYXJhY3RlciwgcmVzcGVjdGl2ZWx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIm1hc3RlclwiXG4gICAqL1xuICB0cnVzdGVkQnJhbmNoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcm9sZSB0byBjcmVhdGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiZ2l0aHViLWFjdGlvbnMtcm9sZVwiXG4gICAqL1xuICByb2xlTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIEdpdEh1YiByZXBvc2l0b3JpZXMgdGhhdCB0aGUgcHJpbmNpcGFsIHRydXN0cy5cbiAgICovXG4gIHJlcG9zaXRvcmllczoge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBHaXRIdWIgcmVwb3NpdG9yeS5cbiAgICAgKlxuICAgICAqIFRoZSB3aWxkY2FyZCBjaGFyYWN0ZXJzICcqJyBhbmQgJz8nIGNhbiBiZSB1c2VkIHRvXG4gICAgICogcmVwcmVzZW50IGFueSBjb21iaW5hdGlvbiBvZiBjaGFyYWN0ZXJzIGFuZCBhbnkgc2luZ2xlXG4gICAgICogY2hhcmFjdGVyLCByZXNwZWN0aXZlbHkuXG4gICAgICpcbiAgICAgKiBOT1RFOiBCZSBjYXJlZnVsIHdoZW4gdXNpbmcgd2lsZGNhcmQgY2hhcmFjdGVycyBhcyB5b3VcbiAgICAgKiBtYXkgZ3JhbnQgYWNjZXNzIHRvIHJlcG9zaXRvcmllcyB5b3UgZGlkIG5vdCBpbnRlbmQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZSBcIm15LXJlcG9zaXRvcnlcIlxuICAgICAqIEBleGFtcGxlIFwibXktdGVhbS0qXCJcbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmdcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgb3duZXIgb2YgdGhlIEdpdEh1YiByZXBvc2l0b3J5LlxuICAgICAqXG4gICAgICogTk9URTogVGhlIG93bmVyIG11c3QgZXhwbGljaXRseSBiZSB3aGl0ZWxpc3RlZCBpbiB7QGxpbmsgdHJ1c3RlZE93bmVyc30uXG4gICAgICovXG4gICAgb3duZXI6IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFRoZSBudW1lcmljIElEIG9mIHRoZSBHaXRIdWIgcmVwb3NpdG9yeSwgYXMgdXNlZCBieSB0aGUgaW1tdXRhYmxlXG4gICAgICogc3ViamVjdCBjbGFpbSBmb3JtYXQuXG4gICAgICpcbiAgICAgKiBXaGVuIG9taXR0ZWQsIGFueSByZXBvc2l0b3J5IElEIGlzIHRydXN0ZWQgZm9yIHRoaXMgcmVwb3NpdG9yeSBuYW1lLlxuICAgICAqIFN1cHBseSBpdCB0byBwaW4gdGhlIHRydXN0IHBvbGljeSB0byB0aGlzIGV4YWN0IHJlcG9zaXRvcnksIHNvIHRoYXQgYVxuICAgICAqIGZ1dHVyZSByZXBvc2l0b3J5IHJldXNpbmcgdGhlIG5hbWUgaXMgbm90IHRydXN0ZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZSA4NDUwNjk2OTdcbiAgICAgKi9cbiAgICByZXBvc2l0b3J5SWQ/OiBudW1iZXJcbiAgICAvKipcbiAgICAgKiBUaGUgbnVtZXJpYyBJRCBvZiB0aGUgb3duZXIgb2YgdGhlIEdpdEh1YiByZXBvc2l0b3J5LCBhcyB1c2VkIGJ5IHRoZVxuICAgICAqIGltbXV0YWJsZSBzdWJqZWN0IGNsYWltIGZvcm1hdC5cbiAgICAgKlxuICAgICAqIFdoZW4gb21pdHRlZCwgYW55IG93bmVyIElEIGlzIHRydXN0ZWQgZm9yIHRoaXMgb3duZXIgbmFtZS4gU3VwcGx5IGl0IHRvXG4gICAgICogcGluIHRoZSB0cnVzdCBwb2xpY3kgdG8gdGhpcyBleGFjdCBvd25lci5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlIDEzMjE5NTQyXG4gICAgICovXG4gICAgb3duZXJJZD86IG51bWJlclxuICB9W11cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdHJ1c3QgdGhlIGltbXV0YWJsZSBzdWJqZWN0IGNsYWltIGZvcm1hdCBpbiBhZGRpdGlvbiB0byB0aGVcbiAgICogb3JpZ2luYWwgb25lLlxuICAgKlxuICAgKiBHaXRIdWIgaXNzdWVzIHRoZSByZXBvc2l0b3J5IHNlZ21lbnQgb2YgdGhlIGBzdWJgIGNsYWltIGVpdGhlciBhc1xuICAgKiBgb3duZXIvcmVwb2AsIG9yIGluIGFuIGltbXV0YWJsZSBmb3JtYXQgdGhhdCBhcHBlbmRzIHRoZSBudW1lcmljIG93bmVyIGFuZFxuICAgKiByZXBvc2l0b3J5IElEcywgYG93bmVyQDEyMzQvcmVwb0A1Njc4YC4gV2hpY2ggb25lIGEgcmVwb3NpdG9yeSBnZXRzIGRlcGVuZHNcbiAgICogb24gYSBwZXItcmVwb3NpdG9yeSBBY3Rpb25zIHNldHRpbmcsIHNvIGEgcm9sZSBoYXMgdG8gdHJ1c3QgYm90aCBmb3JtYXRzXG4gICAqIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIG1pZ3JhdGlvbiB0byBsZXQgdGhlIHJlcG9zaXRvcmllcyBpdCB0cnVzdHMgb3B0IGluXG4gICAqIG9uZSBhdCBhIHRpbWUuXG4gICAqXG4gICAqIE9uY2UgZXZlcnkgcmVwb3NpdG9yeSBoYXMgb3B0ZWQgaW4sIHRoZSBvcmlnaW5hbCBmb3JtYXQgc3RvcHMgYmVpbmcgaXNzdWVkXG4gICAqIGFuZCBzdXBwb3J0IGZvciBpdCBpcyBkcm9wcGVkLCBhbG9uZyB3aXRoIHRoaXMgcHJvcGVydHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuYmxvZy9jaGFuZ2Vsb2cvMjAyNi0wNC0yMy1pbW11dGFibGUtc3ViamVjdC1jbGFpbXMtZm9yLWdpdGh1Yi1hY3Rpb25zLW9pZGMtdG9rZW5zL1xuICAgKi9cbiAgdHJ1c3RJbW11dGFibGVTdWJqZWN0Q2xhaW0/OiBib29sZWFuXG4gIC8qKlxuICAgKiBBbiBleGlzdGluZyBPcGVuSUQgQ29ubmVjdCBQcm92aWRlciBmb3IgR2l0SHViIEFjdGlvbnMuXG4gICAqL1xuICBvaWRjUHJvdmlkZXI6IGlhbS5JT3BlbklkQ29ubmVjdFByb3ZpZGVyXG59XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbiBmb3IgdmFsaWRhdGluZyB0aGUgY29uc3RydWN0IHByb3BlcnRpZXMuXG4gKlxuICogUmV0dXJucyBhIGxpc3Qgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcy4gQW4gZW1wdHkgbGlzdCBtZWFucyB0aGUgcHJvcHMgYXJlIHZhbGlkLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQcm9wcyA9IChwcm9wczogUHJvcHMpOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXVxuICBpZiAocHJvcHMudHJ1c3RlZE93bmVycy5sZW5ndGggPT09IDApIHtcbiAgICBlcnJvcnMucHVzaChcIkF0IGxlYXN0IDEgdHJ1c3RlZCBvd25lciBtdXN0IGJlIHN1cHBsaWVkLCBidXQgMCB3ZXJlIGdpdmVuXCIpXG4gIH1cbiAgaWYgKHByb3BzLnJlcG9zaXRvcmllcy5sZW5ndGggPT09IDApIHtcbiAgICBlcnJvcnMucHVzaChcIkF0IGxlYXN0IDEgcmVwb3NpdG9yeSBtdXN0IGJlIHN1cHBsaWVkLCBidXQgMCB3ZXJlIGdpdmVuXCIpXG4gIH1cbiAgcHJvcHMudHJ1c3RlZE93bmVycy5mb3JFYWNoKChvd25lcikgPT4ge1xuICAgIGlmICghb3duZXIubWF0Y2goL15bYS16QS1aMC05LV0rJC8pKSB7XG4gICAgICBlcnJvcnMucHVzaChgVHJ1c3RlZCBvd25lciAke293bmVyfSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnNgKVxuICAgIH1cbiAgfSlcblxuICBwcm9wcy5yZXBvc2l0b3JpZXMuZm9yRWFjaCgocmVwb3NpdG9yeSkgPT4ge1xuICAgIGlmICghcHJvcHMudHJ1c3RlZE93bmVycy5pbmNsdWRlcyhyZXBvc2l0b3J5Lm93bmVyKSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGBPd25lciAke3JlcG9zaXRvcnkub3duZXJ9IG9mIHJlcG9zaXRvcnkgJHtyZXBvc2l0b3J5Lm5hbWV9IG5vdCBjb25maWd1cmVkIGFzIGEgdHJ1c3RlZCBvd25lcmAsXG4gICAgICApXG4gICAgfVxuICAgIC8vIEEgbWFsZm9ybWVkIElEIHJlbmRlcnMgc3RyYWlnaHQgaW50byB0aGUgc3ViamVjdCBjbGFpbSwgd2hlcmUgaXQgbWF0Y2hlc1xuICAgIC8vIG5vdGhpbmcgYW5kIGxlYXZlcyBkZXBsb3ltZW50cyBmYWlsaW5nIHRvIGFzc3VtZSB0aGUgcm9sZS5cbiAgICBPYmplY3QuZW50cmllcyh7XG4gICAgICBvd25lcklkOiByZXBvc2l0b3J5Lm93bmVySWQsXG4gICAgICByZXBvc2l0b3J5SWQ6IHJlcG9zaXRvcnkucmVwb3NpdG9yeUlkLFxuICAgIH0pLmZvckVhY2goKFtwcm9wLCBpZF0pID0+IHtcbiAgICAgIGlmIChpZCAhPT0gdW5kZWZpbmVkICYmICEoTnVtYmVyLmlzSW50ZWdlcihpZCkgJiYgaWQgPiAwKSkge1xuICAgICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgICBgJHtwcm9wfSAke2lkfSBvZiByZXBvc2l0b3J5ICR7cmVwb3NpdG9yeS5uYW1lfSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlcmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9KVxuICB9KVxuICByZXR1cm4gZXJyb3JzXG59XG5cbi8qKlxuICogVGhlIHJlcG9zaXRvcnkgc2VnbWVudCBvZiBhIEdpdEh1YiBBY3Rpb25zIE9JREMgc3ViamVjdCBjbGFpbSwgaW4gZWFjaFxuICogdHJ1c3RlZCBmb3JtYXQuXG4gKlxuICogVW5waW5uZWQgSURzIGJlY29tZSBgQCpgLCB3aGljaCBJQU0gbWF0Y2hlcyB3aXRoIGBTdHJpbmdMaWtlYC4gTm90ZSB0aGF0IGFuXG4gKiBJQU0gYCpgIGFsc28gbWF0Y2hlcyBgL2AgYW5kIGA6YCwgc28gYW4gdW5waW5uZWQgb3duZXIgSUQgbGV0cyB0aGUgd2lsZGNhcmRcbiAqIHNwYW4gaW50byB0aGUgcmVzdCBvZiB0aGUgc3ViamVjdDogdGhlIHRyYWlsaW5nIGA6cmVmOnJlZnMvaGVhZHMvPGJyYW5jaD5gXG4gKiB0aGF0IHRoZSBwYXR0ZXJuIGxvb2tzIGZvciBuZWVkIG5vdCBiZSB0aGUgb25lIEdpdEh1YiBwdXQgdGhlcmUuIEdpdCByZWplY3RzXG4gKiBgOmAgaW4gYnJhbmNoIG5hbWVzLCBidXQgb3RoZXIgc3ViamVjdCBzaGFwZXMgKGA6ZW52aXJvbm1lbnQ6PG5hbWU+YCkgb2ZmZXJcbiAqIG5vIHN1Y2ggZ3VhcmFudGVlLiBQaW5uaW5nIHtAbGluayBQcm9wcy5yZXBvc2l0b3JpZXMub3duZXJJZH0gbWFrZXMgdGhlXG4gKiBwYXR0ZXJuIGxpdGVyYWwgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUgcmVwb3NpdG9yeSBuYW1lLCB3aGljaCByZW1vdmVzIHRoYXRcbiAqIGZyZWVkb20gZW50aXJlbHksIGFuZCBpcyB3b3J0aCBkb2luZyB3aGVyZXZlciB0aGUgSUQgaXMga25vd24uXG4gKi9cbmNvbnN0IHJlcG9zaXRvcnlDbGFpbXMgPSAoXG4gIHJlcG9zaXRvcnk6IFByb3BzW1wicmVwb3NpdG9yaWVzXCJdW251bWJlcl0sXG4gIHRydXN0SW1tdXRhYmxlU3ViamVjdENsYWltOiBib29sZWFuLFxuKSA9PiBbXG4gIGAke3JlcG9zaXRvcnkub3duZXJ9LyR7cmVwb3NpdG9yeS5uYW1lfWAsXG4gIC4uLih0cnVzdEltbXV0YWJsZVN1YmplY3RDbGFpbVxuICAgID8gW1xuICAgICAgICBgJHtyZXBvc2l0b3J5Lm93bmVyfUAke3JlcG9zaXRvcnkub3duZXJJZCA/PyBcIipcIn0vJHtyZXBvc2l0b3J5Lm5hbWV9QCR7cmVwb3NpdG9yeS5yZXBvc2l0b3J5SWQgPz8gXCIqXCJ9YCxcbiAgICAgIF1cbiAgICA6IFtdKSxcbl1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIElBTSByb2xlIHRoYXQgY2FuIGJlIGFzc3VtZWQgYnkgR2l0SHViIEFjdGlvbnMgd29ya2Zsb3dzXG4gKiBpbiBzcGVjaWZpYyBHaXRIdWIgcmVwb3NpdG9yaWVzIGFuZCBicmFuY2hlcyB1c2luZyBPcGVuSUQgQ29ubmVjdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEdpdGh1YkFjdGlvbnNSb2xlIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogaWFtLlJvbGVcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcbiAgICBjb25zdCBlcnJvcnMgPSB2YWxpZGF0ZVByb3BzKHByb3BzKVxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHByb3BzIHdlcmUgc3VwcGxpZWQ6ICR7ZXJyb3JzLmpvaW4oXCI7IFwiKX1gKVxuICAgIH1cblxuICAgIGNvbnN0IGJyYW5jaCA9IHByb3BzLnRydXN0ZWRCcmFuY2ggPz8gXCJtYXN0ZXJcIlxuICAgIGNvbnN0IHN1YmplY3RzID0gcHJvcHMucmVwb3NpdG9yaWVzLmZsYXRNYXAoKHJlcG9zaXRvcnkpID0+XG4gICAgICByZXBvc2l0b3J5Q2xhaW1zKFxuICAgICAgICByZXBvc2l0b3J5LFxuICAgICAgICBwcm9wcy50cnVzdEltbXV0YWJsZVN1YmplY3RDbGFpbSA/PyBmYWxzZSxcbiAgICAgICkubWFwKFxuICAgICAgICAocmVwb3NpdG9yeUNsYWltKSA9PiBgcmVwbzoke3JlcG9zaXRvcnlDbGFpbX06cmVmOnJlZnMvaGVhZHMvJHticmFuY2h9YCxcbiAgICAgICksXG4gICAgKVxuICAgIGNvbnN0IGZ1bGx5UXVhbGlmaWVkU3ViamVjdHMgPSBzdWJqZWN0cy5maWx0ZXIoXG4gICAgICAoc3ViamVjdCkgPT4gIShzdWJqZWN0LmluY2x1ZGVzKFwiP1wiKSB8fCBzdWJqZWN0LmluY2x1ZGVzKFwiKlwiKSksXG4gICAgKVxuXG4gICAgY29uc3Qgd2lsZGNhcmRTdWJqZWN0cyA9IHN1YmplY3RzLmZpbHRlcihcbiAgICAgIChzdWJqZWN0KSA9PiBzdWJqZWN0LmluY2x1ZGVzKFwiP1wiKSB8fCBzdWJqZWN0LmluY2x1ZGVzKFwiKlwiKSxcbiAgICApXG4gICAgY29uc3QgcHJpbmNpcGFsQ29uZGl0aW9ucyA9IHtcbiAgICAgIC4uLihmdWxseVF1YWxpZmllZFN1YmplY3RzLmxlbmd0aCAmJiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgIFwidG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb206c3ViXCI6IGZ1bGx5UXVhbGlmaWVkU3ViamVjdHMsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIC4uLih3aWxkY2FyZFN1YmplY3RzLmxlbmd0aCAmJiB7XG4gICAgICAgIFN0cmluZ0xpa2U6IHtcbiAgICAgICAgICBcInRva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tOnN1YlwiOiB3aWxkY2FyZFN1YmplY3RzLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfVxuXG4gICAgY29uc3QgcHJpbmNpcGFsID0gbmV3IGlhbS5GZWRlcmF0ZWRQcmluY2lwYWwoXG4gICAgICBwcm9wcy5vaWRjUHJvdmlkZXIub3BlbklkQ29ubmVjdFByb3ZpZGVyQXJuLFxuICAgICAgcHJpbmNpcGFsQ29uZGl0aW9ucyxcbiAgICAgIFwic3RzOkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlcIixcbiAgICApXG5cbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgcHJpbmNpcGFsIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIHRydXN0IHJlbGF0aW9uc2hpcFxuICAgIC8vIHRoYXQgY29udGFpbnMgYXQgbGVhc3Qgb25lIElBTSBjb25kaXRpb24gd2l0aCBhIGNvbnRleHQga2V5IGFuZCB2YWx1ZXNcbiAgICBpZiAoXG4gICAgICAhT2JqZWN0LnZhbHVlcyhwcmluY2lwYWxDb25kaXRpb25zKS5zb21lKChjb25kaXRpb25FbGVtZW50KSA9PlxuICAgICAgICBPYmplY3QuZW50cmllcyhjb25kaXRpb25FbGVtZW50KS5zb21lKFxuICAgICAgICAgIChbY29uZGl0aW9uS2V5LCBjb25kaXRpb25WYWx1ZV0pID0+XG4gICAgICAgICAgICBjb25kaXRpb25LZXkgJiYgY29uZGl0aW9uVmFsdWUubGVuZ3RoLFxuICAgICAgICApLFxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlRoZSBwcmluY2lwYWwncyB0cnVzdCBwb2xpY3kgbmVlZHMgdG8gYmUgY29uZmlndXJlZCB3aXRoIGF0IGxlYXN0IG9uZSBJQU0gY29uZGl0aW9uXCIsXG4gICAgICApXG4gICAgfVxuICAgIHRoaXMucm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBcIlJvbGVcIiwge1xuICAgICAgcm9sZU5hbWU6IHByb3BzLnJvbGVOYW1lID8/IFwiZ2l0aHViLWFjdGlvbnMtcm9sZVwiLFxuICAgICAgYXNzdW1lZEJ5OiBwcmluY2lwYWwsXG4gICAgfSlcbiAgfVxufVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWFjdGlvbnMtcm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZC1hcnRpZmFjdHMvZ2l0aHViLWFjdGlvbnMtcm9sZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFBO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBZ0d4Qzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBWSxFQUFZLEVBQUU7SUFDdEQsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFBO0lBQzNCLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxDQUFDLElBQUksQ0FBQyw2REFBNkQsQ0FBQyxDQUFBO0lBQzVFLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMERBQTBELENBQUMsQ0FBQTtJQUN6RSxDQUFDO0lBQ0QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsS0FBSyw4QkFBOEIsQ0FBQyxDQUFBO1FBQ25FLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQ1QsU0FBUyxVQUFV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LEVBQUUsRUFBRSx5Q0FBeUMsRUFBRSxRQUFRLEVBQUU7YUFDdEUsQ0FBQTtRQUVMLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLGtCQUFrQixDQUMxQyxLQUFLLENBQUMsWUFBWSxDQUFDLHdCQUF3QixFQUMzQyxtQkFBbUIsRUFDbkIsK0JBQStCLENBQ2hDLENBQUE7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3JDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxJQUFJLHFCQUFxQjtZQUNqRCxTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIlxuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcHMge1xuICAvKipcbiAgICogQSBsaXN0IG9mIHRydXN0ZWQgR2l0SHViIHJlcG9zaXRvcnkgb3duZXJzLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9ucyBhcyBhIHNvcnQgb2Ygd2hpdGVsaXN0IHRvIGNhdGNoXG4gICAqIHBvdGVudGlhbCB0eXBvcyBpbiB7QGxpbmsgcmVwb3NpdG9yaWVzfS5cbiAgICovXG4gIHRydXN0ZWRPd25lcnM6IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdHJ1c3RlZCBicmFuY2guXG4gICAqXG4gICAqIFRoZSB3aWxkY2FyZCBjaGFyYWN0ZXJzICcqJyBhbmQgJz8nIGNhbiBiZSB1c2VkIHRvXG4gICAqIHJlcHJlc2VudCBhbnkgY29tYmluYXRpb24gb2YgY2hhcmFjdGVycyBhbmQgYW55IHNpbmdsZVxuICAgKiBjaGFyYWN0ZXIsIHJlc3BlY3RpdmVseS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJtYXN0ZXJcIlxuICAgKi9cbiAgdHJ1c3RlZEJyYW5jaD86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJvbGUgdG8gY3JlYXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImdpdGh1Yi1hY3Rpb25zLXJvbGVcIlxuICAgKi9cbiAgcm9sZU5hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgcmVwb3NpdG9yaWVzIHRoYXQgdGhlIHByaW5jaXBhbCB0cnVzdHMuXG4gICAqL1xuICByZXBvc2l0b3JpZXM6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgR2l0SHViIHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBUaGUgd2lsZGNhcmQgY2hhcmFjdGVycyAnKicgYW5kICc/JyBjYW4gYmUgdXNlZCB0b1xuICAgICAqIHJlcHJlc2VudCBhbnkgY29tYmluYXRpb24gb2YgY2hhcmFjdGVycyBhbmQgYW55IHNpbmdsZVxuICAgICAqIGNoYXJhY3RlciwgcmVzcGVjdGl2ZWx5LlxuICAgICAqXG4gICAgICogTk9URTogQmUgY2FyZWZ1bCB3aGVuIHVzaW5nIHdpbGRjYXJkIGNoYXJhY3RlcnMgYXMgeW91XG4gICAgICogbWF5IGdyYW50IGFjY2VzcyB0byByZXBvc2l0b3JpZXMgeW91IGRpZCBub3QgaW50ZW5kLlxuICAgICAqXG4gICAgICogQGV4YW1wbGUgXCJteS1yZXBvc2l0b3J5XCJcbiAgICAgKiBAZXhhbXBsZSBcIm15LXRlYW0tKlwiXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIG93bmVyIG9mIHRoZSBHaXRIdWIgcmVwb3NpdG9yeS5cbiAgICAgKlxuICAgICAqIE5PVEU6IFRoZSBvd25lciBtdXN0IGV4cGxpY2l0bHkgYmUgd2hpdGVsaXN0ZWQgaW4ge0BsaW5rIHRydXN0ZWRPd25lcnN9LlxuICAgICAqL1xuICAgIG93bmVyOiBzdHJpbmdcbiAgICAvKipcbiAgICAgKiBUaGUgbnVtZXJpYyBJRCBvZiB0aGUgR2l0SHViIHJlcG9zaXRvcnksIGFzIHVzZWQgYnkgdGhlIGltbXV0YWJsZVxuICAgICAqIHN1YmplY3QgY2xhaW0gZm9ybWF0LlxuICAgICAqXG4gICAgICogV2hlbiBvbWl0dGVkLCBhbnkgcmVwb3NpdG9yeSBJRCBpcyB0cnVzdGVkIGZvciB0aGlzIHJlcG9zaXRvcnkgbmFtZS5cbiAgICAgKiBTdXBwbHkgaXQgdG8gcGluIHRoZSB0cnVzdCBwb2xpY3kgdG8gdGhpcyBleGFjdCByZXBvc2l0b3J5LCBzbyB0aGF0IGFcbiAgICAgKiBmdXR1cmUgcmVwb3NpdG9yeSByZXVzaW5nIHRoZSBuYW1lIGlzIG5vdCB0cnVzdGVkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGUgODQ1MDY5Njk3XG4gICAgICovXG4gICAgcmVwb3NpdG9yeUlkPzogbnVtYmVyXG4gICAgLyoqXG4gICAgICogVGhlIG51bWVyaWMgSUQgb2YgdGhlIG93bmVyIG9mIHRoZSBHaXRIdWIgcmVwb3NpdG9yeSwgYXMgdXNlZCBieSB0aGVcbiAgICAgKiBpbW11dGFibGUgc3ViamVjdCBjbGFpbSBmb3JtYXQuXG4gICAgICpcbiAgICAgKiBXaGVuIG9taXR0ZWQsIGFueSBvd25lciBJRCBpcyB0cnVzdGVkIGZvciB0aGlzIG93bmVyIG5hbWUuIFN1cHBseSBpdCB0b1xuICAgICAqIHBpbiB0aGUgdHJ1c3QgcG9saWN5IHRvIHRoaXMgZXhhY3Qgb3duZXIuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZSAxMzIxOTU0MlxuICAgICAqL1xuICAgIG93bmVySWQ/OiBudW1iZXJcbiAgfVtdXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHRydXN0IHRoZSBpbW11dGFibGUgc3ViamVjdCBjbGFpbSBmb3JtYXQgaW4gYWRkaXRpb24gdG8gdGhlXG4gICAqIG9yaWdpbmFsIG9uZS5cbiAgICpcbiAgICogR2l0SHViIGlzc3VlcyB0aGUgcmVwb3NpdG9yeSBzZWdtZW50IG9mIHRoZSBgc3ViYCBjbGFpbSBlaXRoZXIgYXNcbiAgICogYG93bmVyL3JlcG9gLCBvciBpbiBhbiBpbW11dGFibGUgZm9ybWF0IHRoYXQgYXBwZW5kcyB0aGUgbnVtZXJpYyBvd25lciBhbmRcbiAgICogcmVwb3NpdG9yeSBJRHMsIGBvd25lckAxMjM0L3JlcG9ANTY3OGAuIFdoaWNoIG9uZSBhIHJlcG9zaXRvcnkgZ2V0cyBkZXBlbmRzXG4gICAqIG9uIGEgcGVyLXJlcG9zaXRvcnkgQWN0aW9ucyBzZXR0aW5nLCBzbyBhIHJvbGUgaGFzIHRvIHRydXN0IGJvdGggZm9ybWF0c1xuICAgKiBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBtaWdyYXRpb24gdG8gbGV0IHRoZSByZXBvc2l0b3JpZXMgaXQgdHJ1c3RzIG9wdCBpblxuICAgKiBvbmUgYXQgYSB0aW1lLlxuICAgKlxuICAgKiBPbmNlIGV2ZXJ5IHJlcG9zaXRvcnkgaGFzIG9wdGVkIGluLCB0aGUgb3JpZ2luYWwgZm9ybWF0IHN0b3BzIGJlaW5nIGlzc3VlZFxuICAgKiBhbmQgc3VwcG9ydCBmb3IgaXQgaXMgZHJvcHBlZCwgYWxvbmcgd2l0aCB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmJsb2cvY2hhbmdlbG9nLzIwMjYtMDQtMjMtaW1tdXRhYmxlLXN1YmplY3QtY2xhaW1zLWZvci1naXRodWItYWN0aW9ucy1vaWRjLXRva2Vucy9cbiAgICovXG4gIHRydXN0SW1tdXRhYmxlU3ViamVjdENsYWltPzogYm9vbGVhblxuICAvKipcbiAgICogQW4gZXhpc3RpbmcgT3BlbklEIENvbm5lY3QgUHJvdmlkZXIgZm9yIEdpdEh1YiBBY3Rpb25zLlxuICAgKi9cbiAgb2lkY1Byb3ZpZGVyOiBpYW0uSU9wZW5JZENvbm5lY3RQcm92aWRlclxufVxuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gZm9yIHZhbGlkYXRpbmcgdGhlIGNvbnN0cnVjdCBwcm9wZXJ0aWVzLlxuICpcbiAqIFJldHVybnMgYSBsaXN0IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMuIEFuIGVtcHR5IGxpc3QgbWVhbnMgdGhlIHByb3BzIGFyZSB2YWxpZC5cbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUHJvcHMgPSAocHJvcHM6IFByb3BzKTogc3RyaW5nW10gPT4ge1xuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW11cbiAgaWYgKHByb3BzLnRydXN0ZWRPd25lcnMubGVuZ3RoID09PSAwKSB7XG4gICAgZXJyb3JzLnB1c2goXCJBdCBsZWFzdCAxIHRydXN0ZWQgb3duZXIgbXVzdCBiZSBzdXBwbGllZCwgYnV0IDAgd2VyZSBnaXZlblwiKVxuICB9XG4gIGlmIChwcm9wcy5yZXBvc2l0b3JpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgZXJyb3JzLnB1c2goXCJBdCBsZWFzdCAxIHJlcG9zaXRvcnkgbXVzdCBiZSBzdXBwbGllZCwgYnV0IDAgd2VyZSBnaXZlblwiKVxuICB9XG4gIHByb3BzLnRydXN0ZWRPd25lcnMuZm9yRWFjaCgob3duZXIpID0+IHtcbiAgICBpZiAoIW93bmVyLm1hdGNoKC9eW2EtekEtWjAtOS1dKyQvKSkge1xuICAgICAgZXJyb3JzLnB1c2goYFRydXN0ZWQgb3duZXIgJHtvd25lcn0gY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzYClcbiAgICB9XG4gIH0pXG5cbiAgcHJvcHMucmVwb3NpdG9yaWVzLmZvckVhY2goKHJlcG9zaXRvcnkpID0+IHtcbiAgICBpZiAoIXByb3BzLnRydXN0ZWRPd25lcnMuaW5jbHVkZXMocmVwb3NpdG9yeS5vd25lcikpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICBgT3duZXIgJHtyZXBvc2l0b3J5Lm93bmVyfSBvZiByZXBvc2l0b3J5ICR7cmVwb3NpdG9yeS5uYW1lfSBub3QgY29uZmlndXJlZCBhcyBhIHRydXN0ZWQgb3duZXJgLFxuICAgICAgKVxuICAgIH1cbiAgICBPYmplY3QuZW50cmllcyh7XG4gICAgICBvd25lcklkOiByZXBvc2l0b3J5Lm93bmVySWQsXG4gICAgICByZXBvc2l0b3J5SWQ6IHJlcG9zaXRvcnkucmVwb3NpdG9yeUlkLFxuICAgIH0pLmZvckVhY2goKFtwcm9wLCBpZF0pID0+IHtcbiAgICAgIGlmIChpZCAhPT0gdW5kZWZpbmVkICYmICEoTnVtYmVyLmlzSW50ZWdlcihpZCkgJiYgaWQgPiAwKSkge1xuICAgICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgICBgJHtwcm9wfSAke2lkfSBvZiByZXBvc2l0b3J5ICR7cmVwb3NpdG9yeS5uYW1lfSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlcmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9KVxuICB9KVxuICByZXR1cm4gZXJyb3JzXG59XG5cbi8qKlxuICogVGhlIHJlcG9zaXRvcnkgc2VnbWVudCBvZiBhIEdpdEh1YiBBY3Rpb25zIE9JREMgc3ViamVjdCBjbGFpbSwgaW4gZWFjaFxuICogdHJ1c3RlZCBmb3JtYXQuXG4gKi9cbmNvbnN0IHJlcG9zaXRvcnlDbGFpbXMgPSAoXG4gIHJlcG9zaXRvcnk6IFByb3BzW1wicmVwb3NpdG9yaWVzXCJdW251bWJlcl0sXG4gIHRydXN0SW1tdXRhYmxlU3ViamVjdENsYWltOiBib29sZWFuLFxuKSA9PiBbXG4gIGAke3JlcG9zaXRvcnkub3duZXJ9LyR7cmVwb3NpdG9yeS5uYW1lfWAsXG4gIC4uLih0cnVzdEltbXV0YWJsZVN1YmplY3RDbGFpbVxuICAgID8gW1xuICAgICAgICBgJHtyZXBvc2l0b3J5Lm93bmVyfUAke3JlcG9zaXRvcnkub3duZXJJZCA/PyBcIipcIn0vJHtyZXBvc2l0b3J5Lm5hbWV9QCR7cmVwb3NpdG9yeS5yZXBvc2l0b3J5SWQgPz8gXCIqXCJ9YCxcbiAgICAgIF1cbiAgICA6IFtdKSxcbl1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIElBTSByb2xlIHRoYXQgY2FuIGJlIGFzc3VtZWQgYnkgR2l0SHViIEFjdGlvbnMgd29ya2Zsb3dzXG4gKiBpbiBzcGVjaWZpYyBHaXRIdWIgcmVwb3NpdG9yaWVzIGFuZCBicmFuY2hlcyB1c2luZyBPcGVuSUQgQ29ubmVjdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEdpdGh1YkFjdGlvbnNSb2xlIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogaWFtLlJvbGVcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcbiAgICBjb25zdCBlcnJvcnMgPSB2YWxpZGF0ZVByb3BzKHByb3BzKVxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHByb3BzIHdlcmUgc3VwcGxpZWQ6ICR7ZXJyb3JzLmpvaW4oXCI7IFwiKX1gKVxuICAgIH1cblxuICAgIGNvbnN0IGJyYW5jaCA9IHByb3BzLnRydXN0ZWRCcmFuY2ggPz8gXCJtYXN0ZXJcIlxuICAgIGNvbnN0IHN1YmplY3RzID0gcHJvcHMucmVwb3NpdG9yaWVzLmZsYXRNYXAoKHJlcG9zaXRvcnkpID0+XG4gICAgICByZXBvc2l0b3J5Q2xhaW1zKFxuICAgICAgICByZXBvc2l0b3J5LFxuICAgICAgICBwcm9wcy50cnVzdEltbXV0YWJsZVN1YmplY3RDbGFpbSA/PyBmYWxzZSxcbiAgICAgICkubWFwKFxuICAgICAgICAocmVwb3NpdG9yeUNsYWltKSA9PiBgcmVwbzoke3JlcG9zaXRvcnlDbGFpbX06cmVmOnJlZnMvaGVhZHMvJHticmFuY2h9YCxcbiAgICAgICksXG4gICAgKVxuICAgIGlmIChzdWJqZWN0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJUaGUgcHJpbmNpcGFsJ3MgdHJ1c3QgcG9saWN5IG5lZWRzIHRvIGJlIGNvbmZpZ3VyZWQgd2l0aCBhdCBsZWFzdCBvbmUgSUFNIGNvbmRpdGlvblwiLFxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIElBTSBjb21iaW5lcyBtdWx0aXBsZSBjb25kaXRpb24gb3BlcmF0b3JzIHdpdGggYSBsb2dpY2FsIEFORCwgc28gYWxsXG4gICAgLy8gc3ViamVjdHMgbXVzdCBzaGFyZSBvbmUgb3BlcmF0b3IgdG8gYmUgYWx0ZXJuYXRpdmVzIHJhdGhlciB0aGFuXG4gICAgLy8gcmVxdWlyZW1lbnRzLlxuICAgIGNvbnN0IGNvbnRhaW5zV2lsZGNhcmQgPSAoc3ViamVjdDogc3RyaW5nKSA9PlxuICAgICAgc3ViamVjdC5pbmNsdWRlcyhcIj9cIikgfHwgc3ViamVjdC5pbmNsdWRlcyhcIipcIilcbiAgICBjb25zdCBwcmluY2lwYWxDb25kaXRpb25zID0gc3ViamVjdHMuc29tZShjb250YWluc1dpbGRjYXJkKVxuICAgICAgPyB7IFN0cmluZ0xpa2U6IHsgXCJ0b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTpzdWJcIjogc3ViamVjdHMgfSB9XG4gICAgICA6IHtcbiAgICAgICAgICBTdHJpbmdFcXVhbHM6IHsgXCJ0b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTpzdWJcIjogc3ViamVjdHMgfSxcbiAgICAgICAgfVxuXG4gICAgY29uc3QgcHJpbmNpcGFsID0gbmV3IGlhbS5GZWRlcmF0ZWRQcmluY2lwYWwoXG4gICAgICBwcm9wcy5vaWRjUHJvdmlkZXIub3BlbklkQ29ubmVjdFByb3ZpZGVyQXJuLFxuICAgICAgcHJpbmNpcGFsQ29uZGl0aW9ucyxcbiAgICAgIFwic3RzOkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlcIixcbiAgICApXG4gICAgdGhpcy5yb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiUm9sZVwiLCB7XG4gICAgICByb2xlTmFtZTogcHJvcHMucm9sZU5hbWUgPz8gXCJnaXRodWItYWN0aW9ucy1yb2xlXCIsXG4gICAgICBhc3N1bWVkQnk6IHByaW5jaXBhbCxcbiAgICB9KVxuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liflig/cdk",
3
- "version": "3.28.0",
3
+ "version": "3.28.1",
4
4
  "description": "CDK library for Liflig",
5
5
  "type": "module",
6
6
  "repository": {