gh-inari 0.3.0 → 0.5.2

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.
@@ -5,6 +5,7 @@ import { compileIssueFormTemplate, compileIssueFormYaml, } from "./contract/issu
5
5
  import { assertCanonicalContract, } from "./contract/ir.js";
6
6
  import { compilePullRequestPolicyFile, compilePullRequestPolicyOverlay } from "./pr-policy.js";
7
7
  import { compilePullRequestTemplate, parsePullRequestTemplate } from "./pull-request-template.js";
8
+ import { compileSemanticTemplate, compileSemanticTemplateSource, discoverSemanticTemplates, readSemanticTemplate, selectSemanticTemplate, normalizeSemanticTemplate, } from "./semantic-template.js";
8
9
  import { discoverTemplates, selectIssueTemplate, selectPullRequestTemplate, discoverTemplatesFromPaths, classifyTemplatePath, isTemplateContainerPath, isTemplatePathInNativeDirectory, TemplateNotFoundError, } from "./template-discovery.js";
9
10
  /** Stable, machine-readable failures for repository governance acquisition. */
10
11
  export class GovernanceError extends Error {
@@ -36,8 +37,14 @@ export function rejectGovernedPolicyOverride(policyPath) {
36
37
  */
37
38
  export async function compileLocalGovernedContract(domain, root, selector, policyPath) {
38
39
  const discovery = await discoverTemplates(root);
40
+ const semanticTemplates = await discoverSemanticTemplates(root);
41
+ const semanticCandidates = semanticTemplates.filter((template) => template.kind === (domain === "issue" ? "issue" : "pull_request"));
39
42
  let contract;
40
- if (domain === "issue") {
43
+ if (semanticCandidates.length > 0) {
44
+ const semanticIdentity = selectSemanticTemplate(semanticTemplates, domain === "issue" ? "issue" : "pull_request", selector);
45
+ contract = await compileSemanticTemplate(root, await readSemanticTemplate(root, semanticIdentity));
46
+ }
47
+ else if (domain === "issue") {
41
48
  contract = await compileIssueFormTemplate(discovery, selector);
42
49
  }
43
50
  else {
@@ -54,6 +61,10 @@ export async function compileLocalGovernedContract(domain, root, selector, polic
54
61
  }
55
62
  /** Compile every repository-native Issue Form with the shared compiler. */
56
63
  export async function compileLocalIssueFormContracts(root) {
64
+ const semanticTemplates = (await discoverSemanticTemplates(root)).filter((template) => template.kind === "issue");
65
+ if (semanticTemplates.length > 0) {
66
+ return Promise.all(semanticTemplates.map(async (identity) => compileSemanticTemplate(root, await readSemanticTemplate(root, identity))));
67
+ }
57
68
  const discovery = await discoverTemplates(root);
58
69
  return Promise.all(discovery.issueTemplates.map((template) => compileIssueFormTemplate(discovery, template.id)));
59
70
  }
@@ -78,6 +89,11 @@ async function resolveLocalPolicyPath(root, policyPath) {
78
89
  */
79
90
  export async function compileRepositoryGovernedContract(adapter, domain, selector) {
80
91
  const source = await readRepositoryGovernanceSource(adapter);
92
+ const semanticCandidates = source.semanticTemplates.filter((template) => template.kind === (domain === "issue" ? "issue" : "pull_request"));
93
+ if (semanticCandidates.length > 0) {
94
+ const semanticIdentity = selectSemanticTemplate(source.semanticTemplates, domain === "issue" ? "issue" : "pull_request", selector);
95
+ return compileRepositorySemanticContractFromSource(adapter, source, semanticIdentity);
96
+ }
81
97
  const { discovery } = source;
82
98
  const selectedTemplate = domain === "issue" ? selectIssueTemplate(discovery, selector) : selectPullRequestTemplate(discovery, selector);
83
99
  return compileRepositoryGovernedContractFromSource(adapter, source, domain, selectedTemplate, createRepositoryPolicySourceLoader(adapter, source));
@@ -86,20 +102,58 @@ export async function compileRepositoryGovernedContract(adapter, domain, selecto
86
102
  * Compile every supported native template from the target repository's
87
103
  * trusted default-branch governance. Read commands use this candidate set to
88
104
  * identify an existing artifact without inventing a second template grammar.
105
+ *
106
+ * A template that fails to compile does not abort its siblings: it is
107
+ * reported as a bounded "failed" outcome so an unrelated malformed template
108
+ * cannot make every existing-artifact read in the repository fail. Callers
109
+ * that need fail-closed behavior for a single selected template should use
110
+ * compileRepositoryGovernedContract instead.
89
111
  */
90
112
  export async function compileRepositoryGovernedContracts(adapter, domain) {
91
113
  const source = await readRepositoryGovernanceSource(adapter);
114
+ const semanticTemplates = source.semanticTemplates.filter((template) => template.kind === (domain === "issue" ? "issue" : "pull_request"));
115
+ if (semanticTemplates.length > 0) {
116
+ const outcomes = [];
117
+ for (const identity of semanticTemplates) {
118
+ try {
119
+ outcomes.push({
120
+ status: "compiled",
121
+ contract: await compileRepositorySemanticContractFromSource(adapter, source, identity),
122
+ });
123
+ }
124
+ catch (error) {
125
+ outcomes.push({
126
+ status: "failed",
127
+ path: identity.sourcePath,
128
+ message: error instanceof Error ? error.message : String(error),
129
+ });
130
+ }
131
+ }
132
+ return outcomes;
133
+ }
92
134
  const templates = domain === "issue"
93
135
  ? source.discovery.issueTemplates.filter((template) => template.type === "issue-form")
94
136
  : source.discovery.pullRequestTemplates;
95
137
  if (templates.length === 0)
96
138
  throw new TemplateNotFoundError(undefined, templates);
97
139
  const policySourceLoader = createRepositoryPolicySourceLoader(adapter, source);
98
- const contracts = [];
140
+ const outcomes = [];
99
141
  for (const template of templates) {
100
- contracts.push(await compileRepositoryGovernedContractFromSource(adapter, source, domain, template, policySourceLoader));
142
+ try {
143
+ outcomes.push({
144
+ status: "compiled",
145
+ contract: await compileRepositoryGovernedContractFromSource(adapter, source, domain, template, policySourceLoader),
146
+ });
147
+ }
148
+ catch (error) {
149
+ outcomes.push({
150
+ status: "failed",
151
+ path: template.path,
152
+ message: error instanceof Error ? error.message : String(error),
153
+ });
154
+ }
101
155
  }
102
- return contracts;
156
+ return outcomes;
103
157
  }
104
158
  async function compileRepositoryGovernedContractFromSource(adapter, source, domain, selectedTemplate, policySourceLoader) {
105
159
  const { context, ref, tree, discovery } = source;
@@ -139,6 +193,49 @@ async function compileRepositoryGovernedContractFromSource(adapter, source, doma
139
193
  assertCanonicalContract(bound);
140
194
  return bound;
141
195
  }
196
+ async function compileRepositorySemanticContractFromSource(adapter, source, identity) {
197
+ const { context, ref, tree, discovery } = source;
198
+ const sourceEntry = findBlob(tree, identity.sourcePath, context, ref);
199
+ const serialized = await readGovernedValue("repository.governance.blob", context, ref, () => adapter.getRepositoryBlob(sourceEntry.sha));
200
+ let semanticSource;
201
+ try {
202
+ semanticSource = normalizeSemanticTemplate(JSON.parse(serialized), identity.sourcePath);
203
+ }
204
+ catch (error) {
205
+ throw invalidSource(context, identity.sourcePath, error instanceof Error ? error.message : "semantic source is invalid");
206
+ }
207
+ let contract = compileSemanticTemplateSource(semanticSource, identity.generatedPath);
208
+ let policySource;
209
+ if (semanticSource.kind === "pull_request") {
210
+ const repositoryPolicy = await createRepositoryPolicySourceLoader(adapter, source)();
211
+ if (repositoryPolicy !== undefined) {
212
+ contract = compilePullRequestPolicyOverlay(contract, repositoryPolicy.source, {
213
+ templateIdentities: discovery.pullRequestTemplates,
214
+ });
215
+ policySource = sourceIdentity(repositoryPolicy.entry, ref, repositoryPolicy.source);
216
+ }
217
+ }
218
+ const nativeEntry = findBlob(tree, identity.generatedPath, context, ref);
219
+ const nativeSource = await readGovernedValue("repository.governance.blob", context, ref, () => adapter.getRepositoryBlob(nativeEntry.sha));
220
+ const bound = {
221
+ ...contract,
222
+ provenance: {
223
+ authority: "repository-default-branch",
224
+ repository: {
225
+ host: context.hostname,
226
+ owner: context.owner,
227
+ name: context.name,
228
+ nameWithOwner: context.nameWithOwner,
229
+ },
230
+ ref,
231
+ treeSha: source.treeSha,
232
+ template: sourceIdentity(nativeEntry, ref, nativeSource),
233
+ ...(policySource === undefined ? {} : { policy: policySource }),
234
+ },
235
+ };
236
+ assertCanonicalContract(bound);
237
+ return bound;
238
+ }
142
239
  function createRepositoryPolicySourceLoader(adapter, source) {
143
240
  let pending;
144
241
  return () => {
@@ -178,27 +275,39 @@ export async function discoverRepositoryTemplates(adapter) {
178
275
  */
179
276
  export async function verifyGovernedMutationFreshness(adapter, provenance) {
180
277
  const source = await readRepositoryGovernanceSource(adapter);
278
+ const assessment = assessGovernanceFreshness(source, provenance);
279
+ if (!assessment.fresh)
280
+ throw staleGenerationError(source, provenance, assessment.reason);
281
+ }
282
+ /**
283
+ * Judge whether a previously validated contract's governance inputs are
284
+ * still content-equivalent to the currently observed repository governance.
285
+ * Shared by the pre-mutation freshness gate and post-mutation reconciliation
286
+ * so both use identical stale-generation semantics.
287
+ */
288
+ function assessGovernanceFreshness(source, provenance) {
181
289
  if (source.context.nameWithOwner !== provenance.repository.nameWithOwner) {
182
- throw staleGenerationError(source, provenance, "target repository does not match validated provenance");
290
+ return { fresh: false, reason: "target repository does not match validated provenance" };
183
291
  }
184
292
  if (source.treeSha === provenance.treeSha)
185
- return;
293
+ return { fresh: true };
186
294
  const templateEntry = source.tree.find((entry) => entry.path === provenance.template.path);
187
295
  if (templateEntry === undefined || templateEntry.type !== "blob" || templateEntry.sha !== provenance.template.sha) {
188
- throw staleGenerationError(source, provenance, "template governance input changed");
296
+ return { fresh: false, reason: "template governance input changed" };
189
297
  }
190
298
  const currentPolicyEntry = findPolicy(source.tree);
191
299
  if (provenance.policy === undefined) {
192
300
  if (currentPolicyEntry !== undefined) {
193
- throw staleGenerationError(source, provenance, "a policy governance input was introduced");
301
+ return { fresh: false, reason: "a policy governance input was introduced" };
194
302
  }
195
- return;
303
+ return { fresh: true };
196
304
  }
197
305
  if (currentPolicyEntry === undefined ||
198
306
  currentPolicyEntry.type !== "blob" ||
199
307
  currentPolicyEntry.sha !== provenance.policy.sha) {
200
- throw staleGenerationError(source, provenance, "policy governance input changed");
308
+ return { fresh: false, reason: "policy governance input changed" };
201
309
  }
310
+ return { fresh: true };
202
311
  }
203
312
  function staleGenerationError(source, provenance, reason) {
204
313
  return new GovernanceError("GOVERNANCE_GENERATION_STALE", "The target repository governance changed since this artifact was validated and rendered; recompile and revalidate before mutating.", {
@@ -210,31 +319,97 @@ function staleGenerationError(source, provenance, reason) {
210
319
  currentTreeSha: source.treeSha,
211
320
  });
212
321
  }
322
+ async function reconcileGovernanceAfterMutation(adapter, provenance) {
323
+ const source = await readRepositoryGovernanceSource(adapter);
324
+ const assessment = assessGovernanceFreshness(source, provenance);
325
+ return {
326
+ validatedGeneration: provenance.treeSha,
327
+ currentGeneration: source.treeSha,
328
+ reconciled: assessment.fresh,
329
+ ...(assessment.fresh ? {} : { reason: assessment.reason }),
330
+ };
331
+ }
213
332
  /** Create an Issue only after verifying its governance generation is still fresh. */
214
333
  export async function createGovernedIssue(adapter, artifact) {
215
334
  await verifyGovernedMutationFreshness(adapter, artifact.provenance);
216
- return adapter.createIssue(artifact);
335
+ const created = await adapter.createIssue(artifact);
336
+ const governance = await reconcileGovernanceAfterMutation(adapter, artifact.provenance);
337
+ return { artifact: created, governance };
217
338
  }
218
339
  /** Update an Issue only after verifying its governance generation is still fresh. */
219
340
  export async function updateGovernedIssue(adapter, issueNumber, artifact) {
220
341
  await verifyGovernedMutationFreshness(adapter, artifact.provenance);
221
- return adapter.updateIssue(issueNumber, artifact);
342
+ const updated = await adapter.updateIssue(issueNumber, artifact);
343
+ const governance = await reconcileGovernanceAfterMutation(adapter, artifact.provenance);
344
+ return { artifact: updated, governance };
222
345
  }
223
346
  /** Create a pull request only after verifying its governance generation is still fresh. */
224
347
  export async function createGovernedPullRequest(adapter, artifact) {
225
348
  await verifyGovernedMutationFreshness(adapter, artifact.provenance);
226
- return adapter.createPullRequest(artifact);
349
+ const created = await adapter.createPullRequest(artifact);
350
+ const governance = await reconcileGovernanceAfterMutation(adapter, artifact.provenance);
351
+ return { artifact: created, governance };
227
352
  }
228
353
  /** Update a pull request only after verifying its governance generation is still fresh. */
229
354
  export async function updateGovernedPullRequest(adapter, pullRequestNumber, artifact) {
230
355
  await verifyGovernedMutationFreshness(adapter, artifact.provenance);
231
- return adapter.updatePullRequest(pullRequestNumber, artifact);
356
+ const updated = await adapter.updatePullRequest(pullRequestNumber, artifact);
357
+ const governance = await reconcileGovernanceAfterMutation(adapter, artifact.provenance);
358
+ return { artifact: updated, governance };
232
359
  }
233
360
  async function readRepositoryGovernanceSource(adapter) {
234
361
  const context = await adapter.resolveRepositoryContext();
235
362
  const ref = await readGovernedValue("repository.default_branch", context, undefined, () => adapter.getRepositoryDefaultBranch());
236
363
  const { sha: treeSha, entries: tree } = await readGovernedValue("repository.governance.tree", context, ref, () => adapter.getRepositoryTree(ref));
237
- return { context, ref, treeSha, tree, discovery: createRemoteDiscovery(context, tree) };
364
+ return {
365
+ context,
366
+ ref,
367
+ treeSha,
368
+ tree,
369
+ discovery: createRemoteDiscovery(context, tree),
370
+ semanticTemplates: createRemoteSemanticIdentities(tree),
371
+ };
372
+ }
373
+ function createRemoteSemanticIdentities(tree) {
374
+ const identities = [];
375
+ for (const entry of tree) {
376
+ if (entry.type !== "blob" || !entry.path.endsWith(".json"))
377
+ continue;
378
+ if (entry.path.startsWith(".github/inari/issues/") && entry.path.split("/").length === 4) {
379
+ const id = entry.path.slice(".github/inari/issues/".length, -".json".length);
380
+ if (id.length > 0) {
381
+ identities.push({
382
+ id,
383
+ kind: "issue",
384
+ name: id,
385
+ sourcePath: entry.path,
386
+ generatedPath: `.github/ISSUE_TEMPLATE/${id}.yml`,
387
+ });
388
+ }
389
+ }
390
+ else if (entry.path === ".github/inari/pull-request.json") {
391
+ identities.push({
392
+ id: "pull-request",
393
+ kind: "pull_request",
394
+ name: "Pull request",
395
+ sourcePath: entry.path,
396
+ generatedPath: ".github/PULL_REQUEST_TEMPLATE.md",
397
+ });
398
+ }
399
+ else if (entry.path.startsWith(".github/inari/pull-requests/") && entry.path.split("/").length === 4) {
400
+ const id = entry.path.slice(".github/inari/pull-requests/".length, -".json".length);
401
+ if (id.length > 0) {
402
+ identities.push({
403
+ id,
404
+ kind: "pull_request",
405
+ name: id,
406
+ sourcePath: entry.path,
407
+ generatedPath: `.github/PULL_REQUEST_TEMPLATE/${id}.md`,
408
+ });
409
+ }
410
+ }
411
+ }
412
+ return identities.sort((left, right) => left.sourcePath.localeCompare(right.sourcePath, "en-US"));
238
413
  }
239
414
  function createRemoteDiscovery(context, tree) {
240
415
  for (const entry of tree) {
@@ -1 +1 @@
1
- {"version":3,"file":"governance.js","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"governance.js","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,5 +7,6 @@ export * from "./governance.js";
7
7
  export * from "./contract/index.js";
8
8
  export * from "./github/index.js";
9
9
  export * from "./pull-request-template.js";
10
+ export * from "./semantic-template.js";
10
11
  export { discoverTemplates, discoverTemplatesSync, discoverTemplatesFromPaths, classifyTemplatePath, isTemplateContainerPath, isTemplatePathInNativeDirectory, selectTemplate, selectIssueTemplate, selectPullRequestTemplate, TemplateDiscoveryError, TemplateFilesystemError, TemplateNotFoundError, TemplateSelectionAmbiguousError, TemplateNameConflictError, InvalidTemplateSelectorError, } from "./template-discovery.js";
11
12
  export type { TemplateDiscoveryResult, TemplateSelector, TemplateType, TemplateKind, TemplateDiscoveryErrorCode, TemplateDiscoveryErrorDetails, } from "./template-discovery.js";
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ export * from "./governance.js";
10
10
  export * from "./contract/index.js";
11
11
  export * from "./github/index.js";
12
12
  export * from "./pull-request-template.js";
13
+ export * from "./semantic-template.js";
13
14
  export { discoverTemplates, discoverTemplatesSync, discoverTemplatesFromPaths, classifyTemplatePath, isTemplateContainerPath, isTemplatePathInNativeDirectory, selectTemplate, selectIssueTemplate, selectPullRequestTemplate, TemplateDiscoveryError, TemplateFilesystemError, TemplateNotFoundError, TemplateSelectionAmbiguousError, TemplateNameConflictError, InvalidTemplateSelectorError, } from "./template-discovery.js";
14
15
  let invokedPath;
15
16
  try {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,+BAA+B,EAC/B,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAUjC,IAAI,WAA+B,CAAC;AACpC,IAAI,CAAC;IACH,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC;AAAC,MAAM,CAAC;IACP,WAAW,GAAG,SAAS,CAAC;AAC1B,CAAC;AACD,IAAI,WAAW,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACnD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC1B,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,+BAA+B,EAC/B,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAUjC,IAAI,WAA+B,CAAC;AACpC,IAAI,CAAC;IACH,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC;AAAC,MAAM,CAAC;IACP,WAAW,GAAG,SAAS,CAAC;AAC1B,CAAC;AACD,IAAI,WAAW,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACnD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC1B,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
package/dist/pr-policy.js CHANGED
@@ -208,6 +208,105 @@ function parseRule(value, path) {
208
208
  ...(checklistRequireComplete === undefined ? {} : { checklistRequireComplete }),
209
209
  };
210
210
  }
211
+ const QUANTIFIER_PATTERN = /^(?:[*+?]|\{\d*,?\d*\})/u;
212
+ /**
213
+ * Rejects the structural shapes that cause catastrophic backtracking in a
214
+ * backtracking regex engine: a quantified group nested inside another
215
+ * quantified group, and a quantified group whose top-level alternatives can
216
+ * match overlapping text (e.g. "(a|a)+" or "(a|ab)+"). Overlap is judged by
217
+ * literal prefix comparison, which only inspects alternatives with no
218
+ * metacharacters; alternatives containing metacharacters are treated as
219
+ * potentially safe rather than guessed at. This is a conservative syntactic
220
+ * check, not a full NFA ambiguity analysis: it may reject some safe nested
221
+ * patterns but never a pattern the compiler previously accepted, and it does
222
+ * not claim to catch every possible ambiguous alternation.
223
+ */
224
+ function hasCatastrophicBacktrackingRisk(pattern) {
225
+ const stack = [];
226
+ let inCharClass = false;
227
+ const pushGroup = (startIndex) => {
228
+ stack.push({ hasQuantifiedChild: false, alternatives: [], currentAlternativeStart: startIndex });
229
+ };
230
+ for (let index = 0; index < pattern.length; index += 1) {
231
+ const char = pattern[index];
232
+ if (inCharClass) {
233
+ if (char === "\\") {
234
+ index += 1;
235
+ }
236
+ else if (char === "]") {
237
+ inCharClass = false;
238
+ markIfQuantifiedAtom(stack, pattern, index + 1);
239
+ }
240
+ continue;
241
+ }
242
+ if (char === "\\") {
243
+ index += 1;
244
+ markIfQuantifiedAtom(stack, pattern, index + 1);
245
+ continue;
246
+ }
247
+ if (char === "[") {
248
+ inCharClass = true;
249
+ continue;
250
+ }
251
+ if (char === "(") {
252
+ pushGroup(index + 1);
253
+ continue;
254
+ }
255
+ if (char === "|") {
256
+ const current = stack.at(-1);
257
+ if (current !== undefined) {
258
+ current.alternatives.push(pattern.slice(current.currentAlternativeStart, index));
259
+ current.currentAlternativeStart = index + 1;
260
+ }
261
+ continue;
262
+ }
263
+ if (char === ")") {
264
+ const closed = stack.pop();
265
+ if (closed === undefined)
266
+ continue;
267
+ closed.alternatives.push(pattern.slice(closed.currentAlternativeStart, index));
268
+ const rest = pattern.slice(index + 1);
269
+ const quantifierMatch = QUANTIFIER_PATTERN.exec(rest);
270
+ const isQuantified = quantifierMatch !== null;
271
+ if (isQuantified) {
272
+ if (closed.hasQuantifiedChild)
273
+ return true;
274
+ if (closed.alternatives.length > 1 && alternativesOverlap(closed.alternatives))
275
+ return true;
276
+ }
277
+ const parent = stack.at(-1);
278
+ if (parent !== undefined && isQuantified)
279
+ parent.hasQuantifiedChild = true;
280
+ continue;
281
+ }
282
+ if (QUANTIFIER_PATTERN.test(char))
283
+ continue;
284
+ // An ordinary literal atom: a quantifier immediately following it (e.g. "a+")
285
+ // still contributes unbounded repetition inside whatever group contains it.
286
+ markIfQuantifiedAtom(stack, pattern, index + 1);
287
+ }
288
+ return false;
289
+ }
290
+ function markIfQuantifiedAtom(stack, pattern, fromIndex) {
291
+ const current = stack.at(-1);
292
+ if (current === undefined)
293
+ return;
294
+ if (QUANTIFIER_PATTERN.test(pattern.slice(fromIndex)))
295
+ current.hasQuantifiedChild = true;
296
+ }
297
+ const LITERAL_ALTERNATIVE_PATTERN = /^[^\\^$.*+?()[\]{}|]*$/u;
298
+ /** True if any two alternatives are literal text where one is a prefix of (or equal to) the other. */
299
+ function alternativesOverlap(alternatives) {
300
+ const literals = alternatives.filter((alternative) => LITERAL_ALTERNATIVE_PATTERN.test(alternative));
301
+ for (let i = 0; i < literals.length; i += 1) {
302
+ for (let j = i + 1; j < literals.length; j += 1) {
303
+ const [shorter, longer] = literals[i].length <= literals[j].length ? [literals[i], literals[j]] : [literals[j], literals[i]];
304
+ if (shorter.length > 0 && longer.startsWith(shorter))
305
+ return true;
306
+ }
307
+ }
308
+ return false;
309
+ }
211
310
  function ruleToConstraint(rule, field, path) {
212
311
  if (rule.linkedIssue === true && field.type !== "string" && field.type !== "enum") {
213
312
  throw new PullRequestPolicyError("PR_POLICY_UNSUPPORTED_CONSTRAINT", "linkedIssue requires a string-like section.", path);
@@ -223,6 +322,12 @@ function ruleToConstraint(rule, field, path) {
223
322
  catch {
224
323
  throw new PullRequestPolicyError("PR_POLICY_INVALID_VALUE", "pattern must be a valid regular expression.", path);
225
324
  }
325
+ if (rule.pattern.includes("\\1") || /\\[1-9]/u.test(rule.pattern)) {
326
+ throw new PullRequestPolicyError("PR_POLICY_INVALID_VALUE", "pattern must not use backreferences.", path);
327
+ }
328
+ if (hasCatastrophicBacktrackingRisk(rule.pattern)) {
329
+ throw new PullRequestPolicyError("PR_POLICY_INVALID_VALUE", "pattern must not nest quantified groups or repeat overlapping alternatives, which can cause unbounded regex evaluation.", path);
330
+ }
226
331
  }
227
332
  if (rule.linkedIssue === true && rule.required === false) {
228
333
  throw new PullRequestPolicyError("PR_POLICY_CONFLICT", "linkedIssue cannot be combined with required=false.", path);
@@ -314,7 +419,10 @@ function validatePolicyTemplateBindings(overlay, contract, templateIdentities) {
314
419
  });
315
420
  }
316
421
  function identityMatchesContract(identity, contract) {
317
- return identity.path === contract.templateIdentity.path && identity.name === contract.templateIdentity.name;
422
+ // A semantic source may provide the display name while the generated native
423
+ // identity derives its name from the committed path. The repository path is
424
+ // the stable authority boundary; it must remain an exact match.
425
+ return identity.path === contract.templateIdentity.path;
318
426
  }
319
427
  function assertTemplateMatch(selector, contract, templateIdentities, path = "$.template") {
320
428
  if (selector === undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"pr-policy.js","sourceRoot":"","sources":["../src/pr-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EACL,uBAAuB,GAIxB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAU,CAAC;AActD,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACtC,IAAI,CAA6B;IACjC,IAAI,CAAS;IAEtB,YAAY,IAAgC,EAAE,OAAe,EAAE,IAAI,GAAG,GAAG;QACvE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IACrE,CAAC;CACF;AAsCD,gFAAgF;AAChF,MAAM,UAAU,+BAA+B,CAC7C,aAAsB,EACtB,MAAyC,EACzC,UAA2C,EAAE;IAE7C,uBAAuB,CAAC,aAAa,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,aAAa,CAAC;IAC/B,IAAI,QAAQ,CAAC,YAAY,KAAK,cAAc,EAAE,CAAC;QAC7C,MAAM,IAAI,sBAAsB,CAC9B,yBAAyB,EACzB,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5F,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE/D,MAAM,YAAY,GAAG,CAAC,GAAG,QAAQ,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAClE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,YAAY,IAAI,SAAS,GAAG,CAAC;QAC1D,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;QACpF,IAAI,aAAa,GAAG,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;YAEnD,YAAY,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAC5C,YAAY,CAAC,aAAa,CAAgC,EAC1D,UAAU,EACV,QAAQ,CACT,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAsB;QAChC,GAAG,QAAQ;QACX,uBAAuB,EAAE;YACvB,MAAM,EAAE,YAAY;SACrB;KACF,CAAC;IACF,IAAI,CAAC;QACH,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uDAAuD,CAAC;QACjH,MAAM,IAAI,sBAAsB,CAAC,oBAAoB,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAqC,EACrC,IAAiC,EACjC,IAAY;IAEZ,MAAM,IAAI,GAAmD;QAC3D,UAAU;QACV,WAAW;QACX,WAAW;QACX,SAAS;QACT,UAAU;QACV,UAAU;QACV,aAAa;QACb,uBAAuB;QACvB,0BAA0B;KAC3B,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1F,MAAM,IAAI,sBAAsB,CAC9B,oBAAoB,EACpB,iCAAiC,QAAQ,CAAC,OAAO,uDAAuD,EACxG,GAAG,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAAc;IAC1D,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,MAAM,IAAI,sBAAsB,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,sBAAsB,CAAC,wBAAwB,EAAE,8BAA8B,CAAC,CAAC;IACjH,UAAU,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;IAEnF,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClE,MAAM,IAAI,sBAAsB,CAC9B,oBAAoB,EACpB,iDAAiD,EACjD,YAAY,CACb,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;QAClG,MAAM,IAAI,sBAAsB,CAC9B,oBAAoB,EACpB,8DAA8D,EAC9D,aAAa,CACd,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/D,MAAM,IAAI,sBAAsB,CAC9B,oBAAoB,EACpB,8CAA8C,EAC9C,YAAY,CACb,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,IAAI,OAAO,KAAK,2BAA2B,EAAE,CAAC;QAC5C,MAAM,IAAI,sBAAsB,CAC9B,+BAA+B,EAC/B,0BAA0B,2BAA2B,gBAAgB,EACrE,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,sBAAsB,CAC9B,yBAAyB,EACzB,sCAAsC,EACtC,aAAa,CACd,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5G,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;YACpF,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;YAC3E,MAAM,IAAI,sBAAsB,CAC9B,yBAAyB,EACzB,4EAA4E,EAC5E,eAAe,KAAK,YAAY,CACjC,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,OAAO,EAAE,2BAA2B;QACpC,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;QAClG,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,IAAY;IACtD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,EAAE,mCAAmC,EAAE,IAAI,CAAC,CAAC;IACzG,CAAC;IACD,UAAU,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/D,MAAM,IAAI,sBAAsB,CAC9B,oBAAoB,EACpB,8CAA8C,EAC9C,GAAG,IAAI,WAAW,CACnB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;QACxG,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,QAAiB,EACjB,QAAgB,EAChB,UAA2C,EAAE;IAE7C,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,sBAAsB,CAAC,yBAAyB,EAAE,+BAA+B,QAAQ,IAAI,CAAC,CAAC;QACjH,IAAI,KAAK,YAAY,KAAK;YAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QAChD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO,+BAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,IAAY;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACvB,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,EAAE,4BAA4B,EAAE,IAAI,CAAC,CAAC;IAClG,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,IAAY;IAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClB,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,EAAE,gCAAgC,EAAE,IAAI,CAAC,CAAC;IACtG,UAAU,CACR,KAAK,EACL;QACE,IAAI;QACJ,SAAS;QACT,SAAS;QACT,WAAW;QACX,UAAU;QACV,WAAW;QACX,WAAW;QACX,SAAS;QACT,UAAU;QACV,UAAU;QACV,aAAa;QACb,uBAAuB;QACvB,0BAA0B;QAC1B,WAAW;KACZ,EACD,IAAI,CACL,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IACvG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAW,CAAC,KAAK,QAAQ,EAAE,CAAC;QAClF,MAAM,IAAI,sBAAsB,CAC9B,yBAAyB,EACzB,oGAAoG,EACpG,IAAI,CACL,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAW,CAAW,CAAC;IACzD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IAChE,IAAI,qBAAqB,GAAG,eAAe,CAAC,KAAK,EAAE,uBAAuB,EAAE,IAAI,CAAC,CAAC;IAClF,IAAI,wBAAwB,GAAG,eAAe,CAAC,KAAK,EAAE,0BAA0B,EAAE,IAAI,CAAC,CAAC;IACxF,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;YAC5B,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,EAAE,8BAA8B,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC;QACnH,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC;QACtF,IAAI,qBAAqB,KAAK,SAAS,IAAI,wBAAwB,KAAK,SAAS,EAAE,CAAC;YAClF,MAAM,IAAI,sBAAsB,CAC9B,oBAAoB,EACpB,+DAA+D,EAC/D,IAAI,CACL,CAAC;QACJ,CAAC;QACD,qBAAqB,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC;QAC9F,wBAAwB,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,WAAW,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QACxD,MAAM,IAAI,sBAAsB,CAAC,oBAAoB,EAAE,8CAA8C,EAAE,IAAI,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;QAChF,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,EAAE,oCAAoC,EAAE,IAAI,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;QAC5E,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,EAAE,kCAAkC,EAAE,IAAI,CAAC,CAAC;IACxG,CAAC;IACD,OAAO;QACL,OAAO;QACP,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC/C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAClE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC/C,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC/C,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACrD,GAAG,CAAC,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC;QACzE,GAAG,CAAC,wBAAwB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,CAAC;KAChF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAkC,EAClC,KAAqB,EACrB,IAAY;IAEZ,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClF,MAAM,IAAI,sBAAsB,CAC9B,kCAAkC,EAClC,6CAA6C,EAC7C,IAAI,CACL,CAAC;IACJ,CAAC;IACD,IACE,CAAC,IAAI,CAAC,qBAAqB,KAAK,SAAS,IAAI,IAAI,CAAC,wBAAwB,KAAK,SAAS,CAAC;QACzF,KAAK,CAAC,IAAI,KAAK,WAAW,EAC1B,CAAC;QACD,MAAM,IAAI,sBAAsB,CAC9B,kCAAkC,EAClC,oDAAoD,EACpD,IAAI,CACL,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,EAAE,6CAA6C,EAAE,IAAI,CAAC,CAAC;QACnH,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QACzD,MAAM,IAAI,sBAAsB,CAAC,oBAAoB,EAAE,qDAAqD,EAAE,IAAI,CAAC,CAAC;IACtH,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QACxG,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC1G,GAAG,CAAC,IAAI,CAAC,wBAAwB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACpH,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,QAA2B,EAAE,SAAiB;IAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ;SAC9B,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SACzC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAC5F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,sBAAsB,CAC9B,6BAA6B,EAC7B,iCAAiC,SAAS,IAAI,EAC9C,SAAS,CACV,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,sBAAsB,CAC9B,+BAA+B,EAC/B,sCAAsC,SAAS,IAAI,EACnD,SAAS,CACV,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAmB,CAAC;AACtC,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAiC;IAC7D,IAAI,OAAO,CAAC,OAAO,KAAK,2BAA2B,EAAE,CAAC;QACpD,MAAM,IAAI,sBAAsB,CAAC,+BAA+B,EAAE,gCAAgC,EAAE,WAAW,CAAC,CAAC;IACnH,CAAC;AACH,CAAC;AAQD,SAAS,iBAAiB,CACxB,OAAiC,EACjC,QAA2B,EAC3B,OAAwC;IAExC,8BAA8B,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9E,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,sBAAsB,CAC9B,yBAAyB,EACzB,sCAAsC,EACtC,aAAa,CACd,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS;aAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;aACzC,MAAM,CACL,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACZ,KAAK,CAAC,QAAQ,KAAK,SAAS;YAC5B,6BAA6B,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,CACtF,CAAC;QACJ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,sBAAsB,CAC9B,6BAA6B,EAC7B,0DAA0D,EAC1D,aAAa,CACd,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,sBAAsB,CAC9B,+BAA+B,EAC/B,iEAAiE,EACjE,aAAa,CACd,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAA6D,CAAC;QACrF,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;YAC9B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;YAC9B,YAAY,EAAE,eAAe,KAAK,CAAC,KAAK,YAAY;SACrD,CAAC;IACJ,CAAC;IACD,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5E,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,YAAY,EAAE,YAAY;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,OAAiC,EACjC,QAA2B,EAC3B,kBAAyF;IAEzF,IAAI,kBAAkB,KAAK,SAAS;QAAE,OAAO;IAC7C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,sBAAsB,CAC9B,6BAA6B,EAC7B,kEAAkE,EAClE,YAAY,CACb,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GACX,OAAO,CAAC,SAAS,KAAK,SAAS;QAC7B,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC9B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QACxD,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACvC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,eAAe,KAAK,YAAY;SACvC,CAAC,CAAC,CAAC;IACV,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE;QACrC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;QACnC,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,+BAA+B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7G,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,sBAAsB,CAC9B,6BAA6B,EAC7B,yDAAyD,EACzD,IAAI,CACL,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,sBAAsB,CAC9B,+BAA+B,EAC/B,gEAAgE,EAChE,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAC9B,QAAwD,EACxD,QAA2B;IAE3B,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,gBAAgB,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC9G,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAgE,EAChE,QAA2B,EAC3B,kBAA8E,EAC9E,IAAI,GAAG,YAAY;IAEnB,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IACnC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,sBAAsB,CAC9B,6BAA6B,EAC7B,yDAAyD,EACzD,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CACpC,QAAoD,EACpD,QAA2B,EAC3B,kBAAyF;IAEzF,IAAI,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,CACL,kBAAkB,EAAE,IAAI,CACtB,CAAC,QAAQ,EAAE,EAAE,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,+BAA+B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACjH,IAAI,KAAK,CACX,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,QAAoD,EACpD,QAA2B;IAE3B,OAAO,OAAO,QAAQ,KAAK,QAAQ;QACjC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,gBAAgB,CAAC,EAAE;YACvC,QAAQ,KAAK,QAAQ,CAAC,gBAAgB,CAAC,IAAI;YAC3C,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QACrG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACzE,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACjF,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;gBAC1B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AAClH,CAAC;AAED,SAAS,+BAA+B,CACtC,QAAoD,EACpD,QAAwD;IAExD,OAAO,OAAO,QAAQ,KAAK,QAAQ;QACjC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE;YACtB,QAAQ,KAAK,QAAQ,CAAC,IAAI;YAC1B,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QACpF,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;YACxD,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC;YAChE,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;gBAC1B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,IAAY;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClB,MAAM,IAAI,sBAAsB,CAC9B,yBAAyB,EACzB,yDAAyD,EACzD,IAAI,CACL,CAAC;IACJ,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAsC;QAClD,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QACpC,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,EAAE,sCAAsC,EAAE,IAAI,CAAC,CAAC;IAC5G,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,MAAmB,EAAE,OAA0B,EAAE,IAAY;IAC/E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,sBAAsB,CAC9B,4BAA4B,EAC5B,qBAAqB,OAAO,CAAC,CAAC,CAAC,IAAI,EACnC,GAAG,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CACxB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAmB,EAAE,GAAW,EAAE,IAAY;IACpE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChD,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ;QACjC,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,EAAE,GAAG,GAAG,oBAAoB,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;IAC5G,OAAO,MAAM,CAAC,GAAG,CAAW,CAAC;AAC/B,CAAC;AAED,SAAS,eAAe,CAAC,MAAmB,EAAE,GAAW,EAAE,IAAY;IACrE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChD,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;QAClC,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,EAAE,GAAG,GAAG,qBAAqB,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;IAC7G,OAAO,MAAM,CAAC,GAAG,CAAY,CAAC;AAChC,CAAC;AAED,SAAS,eAAe,CAAC,MAAmB,EAAE,GAAW,EAAE,IAAY;IACrE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAK,MAAM,CAAC,GAAG,CAAY,GAAG,CAAC,EAAE,CAAC;QACzG,MAAM,IAAI,sBAAsB,CAC9B,yBAAyB,EACzB,GAAG,GAAG,kCAAkC,EACxC,GAAG,IAAI,IAAI,GAAG,EAAE,CACjB,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAW,CAAC;AAC/B,CAAC;AAMD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"pr-policy.js","sourceRoot":"","sources":["../src/pr-policy.ts"],"names":[],"mappings":"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"}