@goodbones/core 0.1.0-beta.4 → 0.1.0-beta.5

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 (41) hide show
  1. package/build/dts/core/coverage.d.ts +14 -0
  2. package/build/dts/core/coverage.d.ts.map +1 -1
  3. package/build/dts/core/graph.d.ts +1 -0
  4. package/build/dts/core/graph.d.ts.map +1 -1
  5. package/build/dts/core/imports.d.ts +3 -1
  6. package/build/dts/core/imports.d.ts.map +1 -1
  7. package/build/dts/core/slack.d.ts +10 -0
  8. package/build/dts/core/slack.d.ts.map +1 -0
  9. package/build/dts/domain/architecture-config.d.ts +13 -0
  10. package/build/dts/domain/architecture-config.d.ts.map +1 -1
  11. package/build/dts/domain/snapshot.d.ts +121 -0
  12. package/build/dts/domain/snapshot.d.ts.map +1 -0
  13. package/build/dts/index.d.ts +6 -4
  14. package/build/dts/index.d.ts.map +1 -1
  15. package/build/dts/manifest/compile.d.ts.map +1 -1
  16. package/build/esm/core/coverage.js +72 -32
  17. package/build/esm/core/coverage.js.map +1 -1
  18. package/build/esm/core/graph.js +37 -0
  19. package/build/esm/core/graph.js.map +1 -1
  20. package/build/esm/core/imports.js +14 -9
  21. package/build/esm/core/imports.js.map +1 -1
  22. package/build/esm/core/slack.js +39 -0
  23. package/build/esm/core/slack.js.map +1 -0
  24. package/build/esm/domain/architecture-config.js +19 -0
  25. package/build/esm/domain/architecture-config.js.map +1 -1
  26. package/build/esm/domain/snapshot.js +95 -0
  27. package/build/esm/domain/snapshot.js.map +1 -0
  28. package/build/esm/index.js +5 -3
  29. package/build/esm/index.js.map +1 -1
  30. package/build/esm/manifest/compile.js +25 -21
  31. package/build/esm/manifest/compile.js.map +1 -1
  32. package/package.json +3 -1
  33. package/schema/conformance.schema.json +457 -0
  34. package/src/core/coverage.ts +111 -34
  35. package/src/core/graph.ts +36 -0
  36. package/src/core/imports.ts +29 -13
  37. package/src/core/slack.ts +62 -0
  38. package/src/domain/architecture-config.ts +21 -0
  39. package/src/domain/snapshot.ts +180 -0
  40. package/src/index.ts +18 -0
  41. package/src/manifest/compile.ts +34 -27
@@ -22,6 +22,7 @@ export const compileImportRule = (rule) => {
22
22
  to: sourcesOf(rule.to),
23
23
  toNot: sourcesOf(rule.toNot),
24
24
  externals: new Set(rule.externals ?? []),
25
+ allowances: rule.allowances ?? [],
25
26
  dependencyKind: rule.dependencyKind ?? null,
26
27
  });
27
28
  };
@@ -60,13 +61,9 @@ const reports = (rule, captures, target) => {
60
61
  }
61
62
  return targetAllowed(rule, captures, target.path);
62
63
  };
63
- export const evaluateSelectedEdge = (selected, resolver, edge) => {
64
- if (selected.length === 0)
65
- return Result.succeed([]);
66
- const resolved = resolver.resolve(edge.importer, edge.specifier);
67
- if (Result.isFailure(resolved))
68
- return Result.fail(resolved.failure);
69
- const target = resolved.success;
64
+ // The same judgement over a target the host has already resolved — for a host
65
+ // that resolves each edge once and wants the target for something else too.
66
+ export const evaluateResolvedEdge = (selected, importer, target) => {
70
67
  const violations = [];
71
68
  for (const [rule, captures] of selected) {
72
69
  if (reports(rule, captures, target)) {
@@ -74,12 +71,20 @@ export const evaluateSelectedEdge = (selected, resolver, edge) => {
74
71
  kind: "import",
75
72
  ruleName: rule.name,
76
73
  message: rule.message,
77
- file: edge.importer,
74
+ file: importer,
78
75
  subject: target.path,
79
76
  });
80
77
  }
81
78
  }
82
- return Result.succeed(violations);
79
+ return violations;
80
+ };
81
+ export const evaluateSelectedEdge = (selected, resolver, edge) => {
82
+ if (selected.length === 0)
83
+ return Result.succeed([]);
84
+ const resolved = resolver.resolve(edge.importer, edge.specifier);
85
+ if (Result.isFailure(resolved))
86
+ return Result.fail(resolved.failure);
87
+ return Result.succeed(evaluateResolvedEdge(selected, edge.importer, resolved.success));
83
88
  };
84
89
  export const evaluateImportEdge = (rules, resolver, edge) => evaluateSelectedEdge(rulesSelecting(rules, edge.importer), resolver, edge);
85
90
  // A probe states its target in one of three forms, and the form is the kind —
@@ -1 +1 @@
1
- {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../../src/core/imports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../../src/core/imports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { firstFromMatch, matchesAny } from "./patterns.js";
2
+ const keyOf = (one) => `${one.node} ${one.kind} ${one.entry}`;
3
+ // Whether one edge, from a file this rule selects, passes through this entry.
4
+ const uses = (allowance, captures, target) => {
5
+ if (allowance.kind === "external") {
6
+ return target.kind === "external" && target.package === allowance.entry;
7
+ }
8
+ return allowance.pattern !== undefined && matchesAny([allowance.pattern], captures, target.path);
9
+ };
10
+ // Every allowance the rules carry that no edge uses, in the order the manifest
11
+ // declared them. An entry is inherited by every descendant's rule and written
12
+ // once, so it is keyed by where it was written: an import anywhere under the
13
+ // declaring node is a use.
14
+ export const slackOf = (rules, edges) => {
15
+ const declared = new Map();
16
+ for (const rule of rules) {
17
+ for (const { entry, kind, node } of rule.allowances) {
18
+ const one = { node, kind, entry };
19
+ if (!declared.has(keyOf(one)))
20
+ declared.set(keyOf(one), one);
21
+ }
22
+ }
23
+ const used = new Set();
24
+ for (const edge of edges) {
25
+ for (const rule of rules) {
26
+ if (rule.allowances.length === 0)
27
+ continue;
28
+ const captures = firstFromMatch(rule, edge.importer);
29
+ if (captures === null)
30
+ continue;
31
+ for (const allowance of rule.allowances) {
32
+ if (uses(allowance, captures, edge.target))
33
+ used.add(keyOf(allowance));
34
+ }
35
+ }
36
+ }
37
+ return [...declared.values()].filter((one) => !used.has(keyOf(one)));
38
+ };
39
+ //# sourceMappingURL=slack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../src/core/slack.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmB3D,MAAM,KAAK,GAAG,CAAC,GAAU,EAAU,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;AAE7E,8EAA8E;AAC9E,MAAM,IAAI,GAAG,CAAC,SAAoB,EAAE,QAAyB,EAAE,MAAsB,EAAW,EAAE;IAChG,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,KAAK,CAAC;IAC1E,CAAC;IACD,OAAO,SAAS,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACnG,CAAC,CAAC;AAEF,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,KAAwC,EACxC,KAAkC,EACZ,EAAE;IACxB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAC3C,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,QAAQ,KAAK,IAAI;gBAAE,SAAS;YAChC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;oBAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC"}
@@ -23,6 +23,22 @@ const ImportProbe = Schema.Struct({
23
23
  from: Schema.String,
24
24
  to: ImportProbeTarget,
25
25
  });
26
+ // One entry of an `imports` allowlist, as the author wrote it and where. An
27
+ // allowlist rule compiles its entries into `toNot` patterns and `externals`
28
+ // names, which is all evaluation needs; this is the other direction — from a
29
+ // pattern back to the line in the manifest that put it there — so a report
30
+ // can say which line no import uses. Slack is the signature of an allowlist
31
+ // widened to make a build green, and it is only visible with the entry kept.
32
+ export const Allowance = Schema.Struct({
33
+ // The manifest node that declared the entry, as rule names name nodes.
34
+ node: Schema.String,
35
+ // `allow` is a path glob; `external` is a package name.
36
+ kind: Schema.Literals(["allow", "external"]),
37
+ // The entry as written, after alias expansion.
38
+ entry: Schema.String,
39
+ // For an `allow`: the compiled target pattern, as `toNot` carries it.
40
+ pattern: Schema.optionalKey(Schema.String),
41
+ });
26
42
  export const ImportRule = Schema.Struct({
27
43
  name: Schema.String,
28
44
  message: Schema.String,
@@ -31,6 +47,9 @@ export const ImportRule = Schema.Struct({
31
47
  fromNot: Schema.optionalKey(PatternList),
32
48
  to: Schema.optionalKey(PatternList),
33
49
  toNot: Schema.optionalKey(PatternList),
50
+ // Where each `toNot` pattern and `externals` name came from, for an
51
+ // allowlist lowered from a manifest. A hand-written rule carries none.
52
+ allowances: Schema.optionalKey(Schema.Array(Allowance)),
34
53
  // Third-party packages this rule permits, by package name. An external
35
54
  // target is judged by its package, never by where the language's resolver
36
55
  // happened to find it on disk — `to`/`toNot` patterns are for the
@@ -1 +1 @@
1
- {"version":3,"file":"architecture-config.js","sourceRoot":"","sources":["../../../src/domain/architecture-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"architecture-config.js","sourceRoot":"","sources":["../../../src/domain/architecture-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,gFAAgF;AAChF,4EAA4E;AAC5E,iFAAiF;AACjF,2EAA2E;AAC3E,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAE/E,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E,8DAA8D;AAC9D,+EAA+E;AAC/E,iFAAiF;AACjF,mFAAmF;AACnF,+EAA+E;AAC/E,4EAA4E;AAC5E,qEAAqE;AACrE,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC;IACrC,MAAM,CAAC,MAAM;IACb,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;CAC1C,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,EAAE,EAAE,iBAAiB;CACtB,CAAC,CAAC;AAEH,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5C,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACxC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACtC,oEAAoE;IACpE,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvD,uEAAuE;IACvE,0EAA0E;IAC1E,kEAAkE;IAClE,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1D,2EAA2E;IAC3E,0EAA0E;IAC1E,0EAA0E;IAC1E,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;CACtF,CAAC,CAAC;AAEH,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,wEAAwE;AACxE,oEAAoE;AACpE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;IAClC,yEAAyE;IACzE,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACjE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAClE,CAAC,CAAC;AAEH,8EAA8E;AAC9E,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAEvE,2EAA2E;AAC3E,iFAAiF;AACjF,sCAAsC;AACtC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAEvE,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,sEAAsE;AACtE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;CAC1C,CAAC,CAAC;AAEH,8EAA8E;AAC9E,+EAA+E;AAC/E,iFAAiF;AACjF,oCAAoC;AACpC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACxC,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACtC,4EAA4E;IAC5E,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,+EAA+E;IAC/E,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACpD,4EAA4E;IAC5E,gEAAgE;IAChE,6EAA6E;IAC7E,gFAAgF;IAChF,8EAA8E;IAC9E,4EAA4E;IAC5E,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;CACnC,CAAC,CAAC;AAEH,wEAAwE;AACxE,sEAAsE;AACtE,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,mDAAmD;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7C,UAAU;IACV,OAAO;IACP,UAAU;IACV,MAAM;IACN,WAAW;IACX,MAAM;IACN,YAAY;IACZ,OAAO;CACR,CAAC,CAAC;AAEH,0EAA0E;AAC1E,4EAA4E;AAC5E,sEAAsE;AACtE,+EAA+E;AAC/E,gFAAgF;AAChF,kCAAkC;AAClC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAE5D,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAC9E,cAAc;AACd,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;CAC1C,CAAC,CAAC;AAEH,gFAAgF;AAChF,gFAAgF;AAChF,oBAAoB;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACxC,OAAO,EAAE,aAAa;IACtB,yEAAyE;IACzE,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACnC,0EAA0E;IAC1E,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC3D,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACzC,4EAA4E;IAC5E,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;CACvC,CAAC,CAAC;AAEH,2EAA2E;AAC3E,4EAA4E;AAC5E,6CAA6C;AAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC;IAC7C,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;CAC7C,CAAC,CAAC;AAEH,yEAAyE;AACzE,oEAAoE;AACpE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;CAC1C,CAAC,CAAC;AAEH,0EAA0E;AAC1E,+EAA+E;AAC/E,gFAAgF;AAChF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACpD,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC3D,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;IAC1C,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACtC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC7C,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;QACtC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;KACvC,CAAC,CACH;CACF,CAAC,CAAC;AAEH,4EAA4E;AAC5E,uDAAuD;AACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACvD,CAAC,CAAC;AAEH,4EAA4E;AAC5E,6EAA6E;AAC7E,iEAAiE;AACjE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IAC1C,6EAA6E;IAC7E,KAAK,EAAE,WAAW;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACxC,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACtC,8EAA8E;IAC9E,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC1D,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;CACxD,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAEzD,qEAAqE;AACrE,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,gEAAgE;AAChE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,SAAS;IAChB,+EAA+E;IAC/E,2CAA2C;IAC3C,IAAI,EAAE,WAAW;CAClB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,SAAS;IAChB,4EAA4E;IAC5E,MAAM,EAAE,WAAW;IACnB,gEAAgE;IAChE,KAAK,EAAE,WAAW;CACnB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACxC,4EAA4E;IAC5E,iEAAiE;IACjE,6EAA6E;IAC7E,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;CACtC,CAAC,CAAC;AAEH,wEAAwE;AACxE,+EAA+E;AAC/E,iFAAiF;AACjF,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,SAAS;IAChB,6EAA6E;IAC7E,4DAA4D;IAC5D,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC7C,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;CAC1C,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC1D,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACzD,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;CAC1D,CAAC,CAAC;AA6BH,6EAA6E;AAC7E,yEAAyE;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC;AAElC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAwC,EAAyB,EAAE,CAC5F,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC"}
@@ -0,0 +1,95 @@
1
+ import * as Schema from "effect/Schema";
2
+ // The conformance snapshot: one JSON document per run saying how far the
3
+ // tree is from the manifest. `architecture conformance --json` emits it, a
4
+ // pull-request check compares two of them, an agent reads one before it
5
+ // edits, and a service that keeps history stores them — so it is a wire
6
+ // format, defined here with a schema before anything consumes it, and
7
+ // versioned so a document that grows it can say which one it grew.
8
+ //
9
+ // Three things it says that `check` does not: the residue (what no family
10
+ // reaches), the slack (what the allowlists permit and nothing uses), and the
11
+ // violations ordered by how much of the graph each fix drags along. Every
12
+ // entry that names a violation names it by its line-independent fingerprint,
13
+ // which is what lets one be tracked across commits.
14
+ export const SNAPSHOT_SCHEMA_ID = "https://dataquail.github.io/goodbones/schema/conformance.schema.json";
15
+ export const SNAPSHOT_VERSION = 1;
16
+ const describe = (schema, description) => schema.annotate({ description });
17
+ const COVERAGE_FAMILIES = ["imports", "structure", "members", "surface", "graph"];
18
+ // The kinds `Violation` carries, spelled here as a schema; the `satisfies`
19
+ // below keeps the two lists one.
20
+ const VIOLATION_KINDS = [
21
+ "import",
22
+ "export",
23
+ "structure",
24
+ "member",
25
+ "surface",
26
+ "graph",
27
+ ];
28
+ const Path = describe(Schema.String, "Repo-relative, with forward slashes.");
29
+ const FamilyCoverage = Schema.Struct({
30
+ covered: describe(Schema.Finite, "Files this family reaches."),
31
+ total: describe(Schema.Finite, "Files walked."),
32
+ floor: Schema.optionalKey(describe(Schema.Finite, "The fraction the manifest's `limits.coverage` states for this family, when it states one.")),
33
+ });
34
+ export const SnapshotViolation = Schema.Struct({
35
+ fingerprint: describe(Schema.String, "kind|rule|file|subject — line-independent, so it survives edits to the file it names; the baseline's key."),
36
+ kind: Schema.Literals(VIOLATION_KINDS),
37
+ ruleName: describe(Schema.String, "The manifest node path the rule was lowered from."),
38
+ file: Path,
39
+ subject: describe(Schema.NullOr(Schema.String), "The other end of the violated relationship — the resolved target, the restricted symbol, the missing sibling — or null when the file alone is the violation."),
40
+ message: Schema.String,
41
+ baselined: describe(Schema.Boolean, "Carried by the baseline, so `check` does not fail on it."),
42
+ });
43
+ export const SnapshotSlack = Schema.Struct({
44
+ node: describe(Schema.String, "The manifest node that wrote the entry."),
45
+ kind: describe(Schema.Literals(["allow", "external"]), "`allow` is a path glob under `imports.allow`; `external` a package name under `imports.external`."),
46
+ entry: describe(Schema.String, "The entry as written, after alias expansion."),
47
+ });
48
+ export const Snapshot = Schema.Struct({
49
+ version: describe(Schema.Literal(SNAPSHOT_VERSION), "The shape of this document."),
50
+ manifest: describe(Schema.Struct({
51
+ path: describe(Path, "The file the policy was read from — the root file, when split with `include`."),
52
+ sha256: describe(Schema.String, "A hash of that file's bytes, so two snapshots can say whether the policy changed between them."),
53
+ }), "The policy this snapshot was taken against — the repository's own, or the one `--against` named."),
54
+ roots: describe(Schema.Array(Path), "The directories walked."),
55
+ files: describe(Schema.Finite, "Files walked."),
56
+ ok: describe(Schema.Boolean, "What `check` would exit with: true when no reportable violation, unresolved import, stale baseline entry or coverage shortfall exists."),
57
+ coverage: describe(Schema.Struct(Object.fromEntries(COVERAGE_FAMILIES.map((family) => [family, FamilyCoverage]))), "Per family, how many walked files it reaches. Structure counts enumerated folders only."),
58
+ residue: describe(Schema.Struct({
59
+ files: describe(Schema.Array(Path), "Files no family reaches, sorted."),
60
+ folders: describe(Schema.Array(Path), "Folders every walked file of which is residue, each the topmost such folder."),
61
+ }), "What the policy has nothing to say about. A file in an open folder under no allowlist is claimed, not policed, and counts."),
62
+ violations: describe(Schema.Array(SnapshotViolation), "Every finding, baselined ones included, ordered so the ones cheapest to fix come first: by the height of the violated target in the import graph, leaves first."),
63
+ unresolved: describe(Schema.Array(Schema.Struct({ file: Path, specifier: Schema.String, detail: Schema.String })), "Imports the resolver could not turn into a file. Every rule about one enforces nothing."),
64
+ stale: describe(Schema.Array(Schema.String), "Baseline entries the code no longer produces."),
65
+ baseline: describe(Schema.Struct({
66
+ size: describe(Schema.Finite, "Entries in the baseline file."),
67
+ }), "The debt the policy is carrying. The ratchet: it may only shrink."),
68
+ cycles: describe(Schema.Finite, "Strongly connected components of more than one file, or a file importing itself, anywhere in the walked graph — in a cycles rule's scope or not."),
69
+ slack: describe(Schema.Array(SnapshotSlack), "Allowances no observed import uses, in manifest order. A manifest inferred from the tree has none on the day it is written; every entry here is permission nothing needs."),
70
+ adoption: describe(Schema.Struct({
71
+ unrestricted: describe(Schema.Array(Schema.String), "Nodes that say `unrestricted: true`."),
72
+ partial: describe(Schema.Array(Schema.String), "Nodes that say `partial: true`."),
73
+ }), 'The tiers that said "not tightened yet", by name; `limits` caps how many may.'),
74
+ });
75
+ // Decodes a document some other run wrote — the base of a pull request, a
76
+ // stored one — refusing a key the shape does not declare, so a consumer never
77
+ // reads a field that a later version renamed.
78
+ export const decodeSnapshot = Schema.decodeUnknownResult(Snapshot, {
79
+ errors: "all",
80
+ onExcessProperty: "error",
81
+ });
82
+ // The document's shape as a JSON Schema, generated from the same codec, so
83
+ // the two cannot disagree. Published beside the manifest's.
84
+ export const snapshotJsonSchema = () => {
85
+ const generated = Schema.toJsonSchemaDocument(Snapshot);
86
+ return {
87
+ $schema: "https://json-schema.org/draft/2020-12/schema",
88
+ $id: SNAPSHOT_SCHEMA_ID,
89
+ title: "Conformance snapshot",
90
+ description: "How far a repository's tree is from its architecture manifest, as `architecture conformance --json` reports it. See https://dataquail.github.io/goodbones/architecture-rules/enforcement/conformance/.",
91
+ ...generated.schema,
92
+ ...(Object.keys(generated.definitions).length === 0 ? {} : { $defs: generated.definitions }),
93
+ };
94
+ };
95
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/domain/snapshot.ts"],"names":[],"mappings":"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"}
@@ -4,15 +4,17 @@
4
4
  // live file system; a language pack implements the ports. Nothing here names a
5
5
  // language. The fakes are under `@goodbones/core/testing`.
6
6
  export { baselineOf, decodeBaseline, EMPTY_BASELINE, makeBaselineFilter, serializeBaseline, staleEntriesOf, unbaselined, } from "./core/baseline.js";
7
- export { coverageOf, coverageShortfalls, fractionsOf, } from "./core/coverage.js";
7
+ export { coverageOf, coverageShortfalls, fractionsOf, reachOf, residueOf, } from "./core/coverage.js";
8
8
  export { compileExportRule, compileExportRules, evaluateBindingEdge, evaluateSelectedBindings, exportRulesFailingTheirProbe, exportRulesSelecting, } from "./core/exports.js";
9
- export { compileGraphRules, cyclesIn, EMPTY_GRAPH_RULES, evaluateGraph, graphRulesFailingTheirProbe, hasGraphRules, } from "./core/graph.js";
10
- export { compileImportRule, compileImportRules, evaluateImportEdge, evaluateSelectedEdge, probeTargetOf, rulesFailingTheirProbe, rulesSelecting, } from "./core/imports.js";
9
+ export { compileGraphRules, cyclesIn, EMPTY_GRAPH_RULES, evaluateGraph, graphRulesFailingTheirProbe, hasGraphRules, heightOf, } from "./core/graph.js";
10
+ export { compileImportRule, compileImportRules, evaluateImportEdge, evaluateResolvedEdge, evaluateSelectedEdge, probeTargetOf, rulesFailingTheirProbe, rulesSelecting, } from "./core/imports.js";
11
11
  export { compileMemberRules, evaluateMemberSite, memberRulesFailingTheirProbe, memberRulesSelecting, } from "./core/members.js";
12
+ export { slackOf } from "./core/slack.js";
12
13
  export { compileStructure, EMPTY_STRUCTURE, evaluateStructure, requiredSiblingsOf, structureRulesFailingTheirProbe, } from "./core/structure.js";
13
14
  export { compileSurfaceRules, evaluateSurface, surfaceRulesFailingTheirProbe, surfaceRulesSelecting, } from "./core/surface.js";
14
15
  export { ConfigInvalid, ImportUnresolved, PatternInvalid, ScopeInvalid, } from "./domain/architecture-error.js";
15
16
  export { renderManifestPath, } from "./domain/manifest-location.js";
17
+ export { decodeSnapshot, SNAPSHOT_SCHEMA_ID, SNAPSHOT_VERSION, snapshotJsonSchema, Snapshot as SnapshotSchema, } from "./domain/snapshot.js";
16
18
  export { fingerprintOf, formatMessage, } from "./domain/violation.js";
17
19
  export { makeFileSystemLive } from "./infrastructure/file-system-live.js";
18
20
  export { findManifestFile, formatManifestYaml, MANIFEST_FILENAMES, readManifestFile, } from "./infrastructure/manifest-file.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,2DAA2D;AAC3D,OAAO,EAGL,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,UAAU,EACV,kBAAkB,EAClB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,GAGrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,aAAa,EAEb,2BAA2B,EAC3B,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EAEpB,aAAa,EACb,sBAAsB,EACtB,cAAc,GAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,mBAAmB,EACnB,eAAe,EACf,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAoB3B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,gCAAgC,CAAC;AAOxC,OAAO,EAIL,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,aAAa,EACb,aAAa,GAGd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAElB,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,cAAc,GAIf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,eAAe,GAIhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAqB,UAAU,EAAwB,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAqB,aAAa,EAAsB,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAGL,cAAc,EAEd,QAAQ,GAET,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,YAAY,EAGZ,aAAa,EAKb,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,cAAc,EAId,QAAQ,IAAI,cAAc,GAC3B,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,2DAA2D;AAC3D,OAAO,EAGL,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,UAAU,EACV,kBAAkB,EAClB,WAAW,EAEX,OAAO,EAEP,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,GAGrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,aAAa,EAEb,2BAA2B,EAC3B,aAAa,EACb,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EAEpB,aAAa,EACb,sBAAsB,EACtB,cAAc,GAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAiC,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAEL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,mBAAmB,EACnB,eAAe,EACf,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAqB3B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,gCAAgC,CAAC;AAOxC,OAAO,EAIL,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,cAAc,EAEd,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,IAAI,cAAc,GAG3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,aAAa,EACb,aAAa,GAGd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAElB,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,cAAc,GAIf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,eAAe,GAIhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAqB,UAAU,EAAwB,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAqB,aAAa,EAAsB,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAGL,cAAc,EAEd,QAAQ,GAET,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,YAAY,EAGZ,aAAa,EAKb,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,cAAc,EAId,QAAQ,IAAI,cAAc,GAC3B,MAAM,wBAAwB,CAAC"}
@@ -128,19 +128,21 @@ const namingProbeOf = (patternSource, subject, probe, violating) => {
128
128
  return probe;
129
129
  return probe.slice(0, span[0]) + violating + probe.slice(span[1]);
130
130
  };
131
- const mergeImports = (frame, spec, aliases, captures, nextGroup) => {
131
+ const mergeImports = (frame, spec, aliases, captures, nextGroup, node) => {
132
132
  if (spec === undefined) {
133
- return {
134
- allow: frame.allow,
135
- externals: frame.externals,
136
- deny: [],
137
- importsMessage: frame.importsMessage,
138
- };
133
+ return { allowances: frame.allowances, deny: [], importsMessage: frame.importsMessage };
139
134
  }
140
135
  const compileAllow = (glob) => prefixed(globToRegexSource(expandAliases(glob, aliases), captures, { declaring: false, nextGroup })
141
136
  .source);
142
- const own = globsOf(spec.allow ?? []).map(compileAllow);
143
- const external = spec.external ?? [];
137
+ const own = [
138
+ ...globsOf(spec.allow ?? []).map((glob) => ({
139
+ node,
140
+ kind: "allow",
141
+ entry: expandAliases(glob, aliases),
142
+ pattern: compileAllow(glob),
143
+ })),
144
+ ...(spec.external ?? []).map((name) => ({ node, kind: "external", entry: name })),
145
+ ];
144
146
  const deny = (spec.deny ?? []).flatMap((entry) => globsOf(entry.match).map((glob) => ({
145
147
  match: compileAllow(glob),
146
148
  matchNot: globsOf(entry.matchNot ?? []).map(compileAllow),
@@ -153,8 +155,7 @@ const mergeImports = (frame, spec, aliases, captures, nextGroup) => {
153
155
  // a mistake here would be dangerous in.
154
156
  const dropping = spec.reset === true || spec.unrestricted === true;
155
157
  return {
156
- allow: dropping ? own : [...frame.allow, ...own],
157
- externals: dropping ? external : [...frame.externals, ...external],
158
+ allowances: dropping ? own : [...frame.allowances, ...own],
158
159
  // Only what this node declares. A prohibition is emitted once, over its whole
159
160
  // subtree, so descendants neither re-emit it nor can escape it — which is
160
161
  // what makes `reset` structurally unable to make a subtree quieter.
@@ -244,15 +245,14 @@ export const lowerManifest = (manifest, languages = []) => {
244
245
  const pathSource = parent.pathSource === "" ? guarded : `${parent.pathSource}/${guarded}`;
245
246
  const nextGroup = parent.nextGroup +
246
247
  (Object.keys(compiled.captures).length - Object.keys(parent.captures).length);
247
- const merged = mergeImports(parent, node.imports, aliases, compiled.captures, nextGroup);
248
+ const merged = mergeImports(parent, node.imports, aliases, compiled.captures, nextGroup, name);
248
249
  const ownDenials = merged.deny;
249
250
  const frame = {
250
251
  pathSource,
251
252
  pathGlob: joinedGlob,
252
253
  captures: compiled.captures,
253
254
  nextGroup,
254
- allow: merged.allow,
255
- externals: merged.externals,
255
+ allowances: merged.allowances,
256
256
  importsMessage: merged.importsMessage,
257
257
  naming: node.name ?? parent.naming,
258
258
  };
@@ -385,8 +385,12 @@ export const lowerManifest = (manifest, languages = []) => {
385
385
  const ownFolder = isFolder
386
386
  ? probePathOf(joinedGlob, "")
387
387
  : probePathOf(joinedGlob, "").replace(/\/[^/]*$/, "");
388
- const admitsEverything = frame.allow.some((pattern) => pattern === "^.*" || pattern === "^");
389
- const hasAllowlist = (frame.allow.length > 0 || frame.externals.length > 0) && !admitsEverything;
388
+ const allow = frame.allowances.flatMap((one) => one.pattern === undefined ? [] : [one.pattern]);
389
+ const externals = frame.allowances
390
+ .filter((one) => one.kind === "external")
391
+ .map((one) => one.entry);
392
+ const admitsEverything = allow.some((pattern) => pattern === "^.*" || pattern === "^");
393
+ const hasAllowlist = frame.allowances.length > 0 && !admitsEverything;
390
394
  if (emitsOwnImports && node.imports?.unrestricted !== true && !hasAllowlist) {
391
395
  throw new Error(`"${name}" states an \`imports\` policy with no allowlist. If that is deliberate — the ` +
392
396
  `tier is not tightened yet and only its prohibitions apply — say \`unrestricted: true\`, ` +
@@ -401,8 +405,9 @@ export const lowerManifest = (manifest, languages = []) => {
401
405
  probe: { from: scopeProbe, to: probeOutside("nowhere", ownFolder) },
402
406
  from: scope,
403
407
  ...exemptions,
404
- toNot: [...frame.allow],
405
- ...(frame.externals.length > 0 ? { externals: [...frame.externals] } : {}),
408
+ toNot: allow,
409
+ ...(externals.length > 0 ? { externals } : {}),
410
+ allowances: frame.allowances,
406
411
  });
407
412
  }
408
413
  }
@@ -569,15 +574,14 @@ export const lowerManifest = (manifest, languages = []) => {
569
574
  pathGlob: "",
570
575
  captures: {},
571
576
  nextGroup: 1,
572
- allow: [],
573
- externals: [],
577
+ allowances: [],
574
578
  importsMessage: "This import is not on this folder's allowlist.",
575
579
  naming: undefined,
576
580
  };
577
581
  // Repo-wide prohibitions: `from` is every file, so no tier can be written
578
582
  // that escapes them.
579
583
  const globalFrame = { ...emptyFrame };
580
- for (const [index, denial] of mergeImports(globalFrame, { unrestricted: true, deny: manifest.deny ?? [] }, aliases, {}, 1).deny.entries()) {
584
+ for (const [index, denial] of mergeImports(globalFrame, { unrestricted: true, deny: manifest.deny ?? [] }, aliases, {}, 1, "repo").deny.entries()) {
581
585
  imports.push({
582
586
  name: `repo/deny-${String(index)}`,
583
587
  message: denial.message,
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/manifest/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,WAAW,GAMZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAqB,iBAAiB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EACL,OAAO,GAKR,MAAM,eAAe,CAAC;AAyBvB,MAAM,UAAU,GAAG,KAAK,CAAC;AAEzB,+EAA+E;AAC/E,6BAA6B;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC;AAEpC,gFAAgF;AAChF,gCAAgC;AAChC,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,wEAAwE;AACxE,iFAAiF;AACjF,8BAA8B;AAC9B,MAAM,WAAW,GAAG,UAAU,CAAC;AAE/B,MAAM,WAAW,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEnE,MAAM,UAAU,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAExE,8EAA8E;AAC9E,sCAAsC;AACtC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAyB,EAAE,CAC5D,GAAG;KACA,KAAK,CAAC,WAAW,CAAC;KAClB,GAAG,CAAC,UAAU,CAAC;KACf,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;AAEjC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,OAAyC,EAAU,EAAE;IACxF,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,MAAM,CAAC;QAClC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC;YAAE,OAAO,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA6BF,4EAA4E;AAC5E,0EAA0E;AAC1E,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAExD,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAU,EAAE;IAC7D,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,MAAM,GAAG,QAAQ;SACpB,OAAO,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC;QAChE,IAAI,IAAI,CAAC,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;SACD,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;SACxB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACxB,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC;IAC/B,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;AACpD,CAAC,CAAC;AAEF,gFAAgF;AAChF,oDAAoD;AACpD,MAAM,eAAe,GAAG,CAAC,KAAiD,EAAU,EAAE;IACpF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,OAAO,GAAG,KAAK;QACb,0EAA0E;QAC1E,6EAA6E;SAC5E,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC;SACtC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC;AACjC,CAAC,CAAC;AAEF,6EAA6E;AAC7E,iEAAiE;AACjE,MAAM,WAAW,GAEb;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,4BAA4B;QACpC,SAAS,EAAE,cAAc;QACzB,KAAK,EAAE,mCAAmC;KAC3C;IACD,SAAS,EAAE;QACT,MAAM,EAAE,qBAAqB;QAC7B,SAAS,EAAE,gBAAgB;QAC3B,KAAK,EAAE,mEAAmE;KAC3E;IACD,UAAU,EAAE;QACV,MAAM,EAAE,qBAAqB;QAC7B,SAAS,EAAE,gBAAgB;QAC3B,KAAK,EAAE,sCAAsC;KAC9C;IACD,UAAU,EAAE;QACV,MAAM,EAAE,4BAA4B;QACpC,SAAS,EAAE,cAAc;QACzB,KAAK,EAAE,uCAAuC;KAC/C;CACF,CAAC;AAEF,+EAA+E;AAC/E,8EAA8E;AAC9E,oBAAoB;AACpB,MAAM,eAAe,GAAG,CAAC,IAAgB,EAAE,OAA0B,EAAU,EAAE;IAC/E,MAAM,IAAI,GACR,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,6CAA6C,CAAC;IAC9F,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,GAAG,IAAI,OAAO,IAAI,WAAW,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC;IACxE,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC;IACpD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,iFAAiF,CAAC;IAC3F,CAAC;IACD,OAAO,GAAG,IAAI,aAAa,IAAI,CAAC,KAAK,SAAS,CAAC;AACjD,CAAC,CAAC;AAEF,+EAA+E;AAC/E,2EAA2E;AAC3E,qDAAqD;AACrD,MAAM,oBAAoB,GAAG,CAAC,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAEpG,MAAM,kBAAkB,GAAG,CAAC,IAAgB,EAAE,QAAgB,EAAU,EAAE;IACxE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,GAAG,CAAC,CAAC;QACrF,OAAO,UAAU,CAAC,SAAS,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,cAAc,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACjF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,gBAAgB,QAAQ,aAAa,IAAI,CAAC,KAAK,kCAAkC;YAC/E,uFAAuF,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,iFAAiF;AACjF,gFAAgF;AAChF,uDAAuD;AACvD,MAAM,aAAa,GAAG,CACpB,aAAqB,EACrB,OAAe,EACf,KAAa,EACb,SAAiB,EACT,EAAE;IACV,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC;AAYF,MAAM,YAAY,GAAG,CACnB,KAAY,EACZ,IAA6B,EAC7B,OAAyC,EACzC,QAAsB,EACtB,SAAiB,EAGjB,EAAE;IACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,EAAE;YACR,cAAc,EAAE,KAAK,CAAC,cAAc;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE,CAC5C,QAAQ,CACN,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;SACvF,MAAM,CACV,CAAC;IAEJ,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;QACzB,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QACzD,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QACrD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;KACrD,CAAC,CAAC,CACJ,CAAC;IAEF,gFAAgF;IAChF,gFAAgF;IAChF,wCAAwC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IACnE,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC;QAChD,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC;QAClE,8EAA8E;QAC9E,0EAA0E;QAC1E,oEAAoE;QACpE,IAAI;QACJ,cAAc,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,cAAc;KACrD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,QAAkB,EAClB,SAAS,GAAiC,EAAE,EAC9B,EAAE;IAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;IAEvC,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,yEAAyE;IACzE,uDAAuD;IACvD,MAAM,YAAY,GAAG,CAAC,MAAc,EAAU,EAAE;QAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACjD,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,CAAC,CAChD,CAAC;QACF,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,EAAE,QAAQ,CAAC,CAAC;QACrE,OAAO,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC,CAAC;IAEF,+EAA+E;IAC/E,qEAAqE;IACrE,MAAM,OAAO,GAAG,CAAC,UAAkB,EAAE,IAAY,EAAU,EAAE,CAC3D,WAAW,CAAC,UAAU,EAAE,GAAG,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAEjF,yEAAyE;IACzE,sEAAsE;IACtE,+DAA+D;IAC/D,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,UAAU,GAAG,kBAAkB,EAAU,EAAE,CAC7E,oBAAoB,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;IAExD,4EAA4E;IAC5E,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,gBAAgB,GAAG,CACvB,QAA+B,EAC/B,SAAiB,EACjB,QAAgB,EACR,EAAE;QACV,MAAM,UAAU,GAAG,CAAC,gBAAgB,SAAS,EAAE,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAC9B,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAChF,CAAC;QACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,IAAI,QAAQ,wEAAwE;gBAClF,sFAAsF,CACzF,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IACF,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,iBAAiB,GAAkB,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,MAAM,IAAI,GAAG,CACX,GAAW,EACX,IAAkB,EAClB,MAAa,EACb,IAAY,EACZ,QAA+B,EACzB,EAAE;QACR,MAAM,eAAe,GAAG,QAAQ;aAC7B,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC;aACpC,OAAO,CAAC,cAAc,CAAC;aACvB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC;QAElC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI;YAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CACb,QAAQ,GAAG,8EAA8E;gBACvF,4DAA4D,CAC/D,CAAC;QACJ,CAAC;QACD,2EAA2E;QAC3E,gDAAgD;QAChD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC;QAClF,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;YAC9D,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;QACH,MAAM,QAAQ,GACZ,YAAY,CAAC,MAAM,KAAK,CAAC;YACvB,CAAC,CAAC,aAAa;YACf,CAAC,CAAC;gBACE,QAAQ,EAAE,aAAa,CAAC,QAAQ;gBAChC,MAAM,EAAE,MAAM,YAAY;qBACvB,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE;oBACtC,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAC,MAAM,CACZ;qBACA,IAAI,CAAC,GAAG,CAAC,GAAG;aAChB,CAAC;QACR,8EAA8E;QAC9E,uCAAuC;QACvC,MAAM,OAAO,GACX,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9C,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,MAAM,EAAE;YAC1H,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtB,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,IAAI,OAAO,EAAE,CAAC;QAC1F,MAAM,SAAS,GACb,MAAM,CAAC,SAAS;YAChB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,MAAM,KAAK,GAAU;YACnB,UAAU;YACV,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS;YACT,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM;SACnC,CAAC;QAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;QACjE,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEzC,uEAAuE;QACvE,yEAAyE;QACzE,yEAAyE;QACzE,2BAA2B;QAC3B,EAAE;QACF,4EAA4E;QAC5E,+EAA+E;QAC/E,8DAA8D;QAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CACxD,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,CAC5C,CAAC;YACF,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC;YAE9D,MAAM,IAAI,GAAG,CACX,QAAgB,EAChB,QAA+B,EAC/B,OAAe,EACf,KAAa,EACb,MAAe,EACf,OAAO,GAAsB,MAAM,EAC7B,EAAE;gBACR,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC;oBACzC,KAAK,EAAE;wBACL,IAAI,EACF,MAAM,KAAK,SAAS;4BAClB,CAAC,CAAC,aAAa,CACX,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,KAAK,EACL,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CACrC;4BACH,CAAC,CAAC,KAAK;qBACZ;oBACD,IAAI,EAAE,QAAQ;oBACd,OAAO;oBACP,GAAG,CAAC,MAAM,KAAK,SAAS;wBACtB,CAAC,CAAC;4BACE,UAAU,EACR,OAAO,MAAM,KAAK,QAAQ;gCACxB,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;gCACrC,CAAC,CAAC,OAAO,IAAI,MAAM;oCACjB,CAAC,CAAC,MAAM,CAAC,KAAK;oCACd,CAAC,CAAC,EAAE;yBACX;wBACH,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;iBAChB,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC1B,IAAI,CACF,GAAG,IAAI,gBAAgB,EACvB,CAAC,QAAQ,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,EAC5B,OAAO,EACP,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAC9B,SAAS,EACT,QAAQ,CACT,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,IAAI,CACF,GAAG,IAAI,SAAS,EAChB,CAAC,QAAQ,CAAC,GAAG,UAAU,gBAAgB,CAAC,CAAC,EACzC,SAAS,EACT,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAC/B,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC;gBACxB,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9C,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE;oBACtC,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,SAAS,EAAE,IAAI;iBAChB,CAAC,CACH,CAAC;gBACF,MAAM,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC;gBACrC,MAAM,OAAO,GAAG,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACzE,MAAM,MAAM,GACV,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM;oBAC5C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACnD,CAAC,CAAC,SAAS,CAAC;gBAChB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC3E,MAAM,IAAI,KAAK,CACb,cAAc,GAAG,aAAa,MAAM,CAAC,IAAI,oCAAoC,CAC9E,CAAC;gBACJ,CAAC;gBACD,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBAClD,IAAI,CACF,GAAG,IAAI,SAAS,EAChB,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACzB,QAAQ,CACN,MAAM,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,CAC7E,CACF,EACD,OAAO,EACP,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,EAC3B,MAAM,CACP,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACzD,uEAAuE;QACvE,0EAA0E;QAC1E,6EAA6E;QAC7E,4EAA4E;QAC5E,MAAM,qBAAqB,GAAG,CAC5B,IAAkB,EAClB,MAAc,EACd,UAAwB,EACxB,OAAe,EACQ,EAAE,CACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAChE,cAAc,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,6DAA6D;YAC7D,uEAAuE;YACvE,sDAAsD;YACtD,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE;gBACvD,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,OAAO;aACnB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,GAAG,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,UAAU,GACd,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;YAC1F,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,WAAW,CAAC,QAAQ,CAAC;gBAC1B,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC;gBAC1E,CAAC,CAAC,EAAE,CAAC;QACT,CAAC,CAAC,CACH,CAAC;QAEJ,MAAM,kBAAkB,GAAG,qBAAqB,CAC9C,IAAI,EACJ,UAAU,EACV,QAAQ,CAAC,QAAQ,EACjB,SAAS,CACV,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,YAAY,CAAC;YAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1E,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,GAAG,IAAI,SAAS,CAAC;gBAClC,qEAAqE;gBACrE,iEAAiE;gBACjE,MAAM,QAAQ,GACZ,IAAI,CAAC,MAAM,KAAK,MAAM;oBACpB,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACZ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAC9B,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACnC,QAAQ,CACN,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;yBACvE,MAAM,CACV,CACF,CACF,CAAC;gBACR,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAChD,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,KAAK,MAAM;oBACpB,CAAC,CAAC,gBAAgB,YAAY,CAAC,WAAW,CAAC,EAAE;oBAC7C,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACtE,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,uCAAuC;oBAChE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;oBAC/C,MAAM,EAAE,WAAW;oBACnB,KAAK,EAAE,QAAQ;iBAChB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC5D,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1C,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,2DAA2D;QAC3D,EAAE;QACF,6EAA6E;QAC7E,4EAA4E;QAC5E,4EAA4E;QAC5E,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;QAC3F,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAClE,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC3F,8EAA8E;QAC9E,MAAM,SAAS,GAAG,QAAQ;YACxB,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC;YAC7B,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAExD,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,GAAG,CAAC,CAAC;QAC7F,MAAM,YAAY,GAChB,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAE9E,IAAI,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CACb,IAAI,IAAI,gFAAgF;gBACtF,0FAA0F;gBAC1F,gFAAgF,CACnF,CAAC;QACJ,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAExF,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,GAAG,IAAI,UAAU;oBACvB,OAAO,EAAE,KAAK,CAAC,cAAc;oBAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;oBACnE,IAAI,EAAE,KAAK;oBACX,GAAG,UAAU;oBACb,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;oBACvB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,kEAAkE;QAClE,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,GAAG,IAAI,SAAS,MAAM,CAAC,KAAK,CAAC,EAAE;gBACrC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE;gBAC7C,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW;gBACzD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,EAAE,EAAE,MAAM,CAAC,KAAK;gBAChB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvE,CAAC,CAAC;QACL,CAAC;QAED,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,uEAAuE;YACvE,kEAAkE;YAClE,yEAAyE;YACzE,wEAAwE;YACxE,iDAAiD;YACjD,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;gBACpE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CACb,IAAI,IAAI,YAAY,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,0CAA0C;wBACjF,oFAAoF;wBACpF,uBAAuB,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,2CAA2C;wBACrF,oFAAoF;wBACpF,sEAAsE,CACzE,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAChC,QAAQ,CACN,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBACjE,SAAS,EAAE,KAAK;gBAChB,SAAS;aACV,CAAC,CAAC,MAAM,CACV,CAAC;YACJ,sEAAsE;YACtE,0EAA0E;YAC1E,eAAe;YACf,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAClE,QAAQ,CACN,GAAG,UAAU,IAAI,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CACtG,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,GAAG,IAAI,cAAc;gBAC3B,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;gBAChC,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE;gBACpE,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACrD,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW;gBACvD,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,CAAC,KAAqC,EAAE,EAAE,CACxD,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACzB,QAAQ,CACN,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAClF,CACF,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,GAAG,IAAI,YAAY,MAAM,CAAC,KAAK,CAAC,EAAE;gBACxC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,qEAAqE;gBACrE,mEAAmE;gBACnE,oBAAoB;gBACpB,KAAK,EACH,IAAI,CAAC,KAAK,KAAK,SAAS;oBACtB,CAAC,CAAC;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;wBACjC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,wBAAwB,EAAE,CAAC;wBAClE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC5E;oBACH,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC5E,iEAAiE;gBACjE,sEAAsE;gBACtE,sEAAsE;gBACtE,2BAA2B;gBAC3B,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5E,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3D,MAAM,QAAQ,GAAG,GAAG,IAAI,YAAY,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,CAAC,KAAqC,EAAE,EAAE,CACvD,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACzB,QAAQ,CACN,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAClF,CACF,CAAC;YACJ,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAC9B,QAAQ,CACN,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBACjE,SAAS,EAAE,KAAK;gBAChB,SAAS;aACV,CAAC,CAAC,MAAM,CACV,CAAC;YAEJ,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC9D,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAC3B,CAAC,MAAM,CAAC;YACT,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACb,iBAAiB,QAAQ,yDAAyD;oBAChF,sDAAsD,CACzD,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;YACxC,MAAM,gBAAgB,GACpB,IAAI,CAAC,UAAU,KAAK,SAAS;gBAC3B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;oBACnC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM;oBACtC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAE9B,wEAAwE;YACxE,0EAA0E;YAC1E,+DAA+D;YAC/D,MAAM,QAAQ,GACZ,IAAI,KAAK,SAAS;gBAChB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,KAAK,WAAW;oBACpB,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS;wBAC7B,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;wBAC/C,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,QAAQ;gBACd,IAAI;gBACJ,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aACpE,CAAC;YACF,MAAM,UAAU,GAAG,GAAkC,EAAE;gBACrD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;oBAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;gBAChC,IAAI,GAAG,GAAG,CAAC;oBAAE,OAAO,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CACb,iBAAiB,QAAQ,mDAAmD;wBAC1E,4BAA4B,CAC/B,CAAC;gBACJ,CAAC;gBACD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3D,GAAG,OAAO;oBACV,IAAI,EAAE,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;iBAChC,CAAC,CAAC,CAAC;YACN,CAAC,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EACH,IAAI,CAAC,KAAK,KAAK,SAAS;oBACtB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;oBAC3C,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACrD,IAAI,EAAE,KAAK;gBACX,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnF,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/D,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3E,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7D,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClE,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;gBAC3E,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;aAC3D,CAAC,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CACzC,CAAC,QAAQ,EAAE,EAAE,CACX,IAAI,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,GAAG,CAChG,CAAC;YACF,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,GAAG,IAAI,WAAW;gBACxB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,8BAA8B;gBACvD,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE;gBAC5C,IAAI,EAAE,WAAW;gBACjB,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAU;QACxB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,gDAAgD;QAChE,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,0EAA0E;IAC1E,qBAAqB;IACrB,MAAM,WAAW,GAAU,EAAE,GAAG,UAAU,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAY,CACxC,WAAW,EACX,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,EACjD,OAAO,EACP,EAAE,EACF,CAAC,CACF,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,aAAa,MAAM,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE;YAC3D,IAAI,EAAE,UAAU;YAChB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,EAAE,EAAE,MAAM,CAAC,KAAK;YAChB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,2EAA2E;QAC3E,4EAA4E;QAC5E,0DAA0D;QAC1D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAC7E,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW;gBACnC,OAAO,EACL,IAAI,CAAC,OAAO;oBACZ,kIAAkI;gBACpI,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;gBACvF,IAAI,EAAE,QAAQ,CACZ,iBAAiB,CACf,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EACvC,EAAE,EACF;oBACE,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,CAAC;iBACb,CACF,CAAC,MAAM,CACT;aACF,CAAC,CAAC;QACL,IAAI,CACF,GAAG,EACH,IAAI,EACJ,UAAU,EACV,UAAU,CAAC,GAAG,CAAC;aACZ,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;aAC9B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CACjC,QAAQ,CACN,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;aACpF,MAAM,CACV,CAAC;QACJ,uEAAuE;QACvE,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;QACxC,MAAM,MAAM,GACV,IAAI,CAAC,KAAK,EAAE,MAAM;YAClB,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACjF,eAAe,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE;gBACL,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC;gBAC9B,EAAE,EAAE,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC1E,MAAM;gBACN,IAAI;gBACJ,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACnE;YACD,IAAI,EAAE,UAAU;YAChB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtF,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;SACrD,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE,CACtC,QAAQ,CACN,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;SACpF,MAAM,CACV,CAAC;IACJ,MAAM,eAAe,GAAG,CAAC,KAAiD,EAAE,EAAE,CAC5E,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACvE,2EAA2E;IAC3E,8EAA8E;IAC9E,yEAAyE;IACzE,MAAM,WAAW,GAAG,CAAC,KAAqC,EAAE,IAAY,EAAU,EAAE;QAClF,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,WAAW,CAChB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE,IAAI,CAAC,CACpD,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,KAAK,GAAgB;QACzB,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC/C,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC9C,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE;oBACL,KAAK,EAAE;wBACL,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,CAAC,EAAE,CAAC,CAAC;qBACP;iBACF;gBACD,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;gBAChD,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;oBAC9B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;aAC1D,CAAC;QACJ,CAAC,CAAC;QACF,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE;YACpE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7F,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;SAC/C,CAAC,CAAC;QACH,KAAK,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE;gBACL,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;aAClF;YACD,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACvF,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACjF,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;SAC5E,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,QAAQ,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE;QACpE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE;KAC3D,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/manifest/compile.ts"],"names":[],"mappings":"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"}