@craft-ts/dev-tools 0.7.0-beta.13 → 0.7.0-beta.15

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 (89) hide show
  1. package/README.md +64 -10
  2. package/package.json +8 -2
  3. package/src/bin/agent-selector.d.ts +22 -0
  4. package/src/bin/agent-selector.js +100 -0
  5. package/src/bin/agent-selector.js.map +1 -0
  6. package/src/bin/craft-graph.js +74 -8
  7. package/src/bin/craft-graph.js.map +1 -1
  8. package/src/bin/craft.d.ts +23 -0
  9. package/src/bin/craft.js +245 -28
  10. package/src/bin/craft.js.map +1 -1
  11. package/src/eslint-rules/anchor-has-href.cjs +37 -3
  12. package/src/eslint-rules/craft-computed-name-match.cjs +26 -5
  13. package/src/eslint-rules/craft-name-match-utils.cjs +18 -9
  14. package/src/eslint-rules/hyperscript-walk.cjs +3 -3
  15. package/src/eslint-rules/index.cjs +46 -1
  16. package/src/eslint-rules/no-auth-token-in-local-storage.cjs +17 -0
  17. package/src/eslint-rules/no-craft-computed-side-effects.cjs +12 -5
  18. package/src/eslint-rules/no-craft-service-component-same-file.cjs +138 -0
  19. package/src/eslint-rules/no-effect-import-in-frontend.cjs +52 -0
  20. package/src/eslint-rules/no-effect-in-params.cjs +31 -1
  21. package/src/eslint-rules/no-explicit-effect-type.cjs +137 -0
  22. package/src/eslint-rules/no-free-has.cjs +47 -0
  23. package/src/eslint-rules/no-heading-level-skip.cjs +6 -6
  24. package/src/eslint-rules/no-raw-class.cjs +76 -0
  25. package/src/eslint-rules/no-raw-css-value.cjs +163 -0
  26. package/src/eslint-rules/no-raw-user-url.cjs +114 -0
  27. package/src/eslint-rules/no-trust-forwarded-headers.cjs +43 -0
  28. package/src/eslint-rules/no-unsafe-html.cjs +93 -0
  29. package/src/eslint-rules/no-unsafe-transfer-state.cjs +54 -0
  30. package/src/eslint-rules/prefer-craft-template-blocks.cjs +8 -8
  31. package/src/eslint-rules/prefer-direct-yieldable-callback.cjs +57 -14
  32. package/src/eslint-rules/prefer-inline-effect-insertion.cjs +263 -0
  33. package/src/eslint-rules/prefer-inline-route-providers.cjs +138 -0
  34. package/src/eslint-rules/recommended-config.cjs +6 -0
  35. package/src/eslint-rules/require-reactive-template-bindings.cjs +8 -8
  36. package/src/eslint-rules/require-route-security-policy.cjs +87 -0
  37. package/src/eslint-rules/require-server-function-timeout.cjs +39 -0
  38. package/src/eslint-rules/security-config.cjs +14 -0
  39. package/src/eslint-rules/security-rule-utils.cjs +21 -0
  40. package/src/eslint-rules/style-file-boundary.cjs +75 -0
  41. package/src/eslint-rules/sync-effect-body.cjs +343 -0
  42. package/src/index.d.ts +4 -0
  43. package/src/index.js +4 -0
  44. package/src/index.js.map +1 -1
  45. package/src/scripts/architecture-graph.js +8 -2
  46. package/src/scripts/architecture-graph.js.map +1 -1
  47. package/src/scripts/create/create-project.d.ts +71 -1
  48. package/src/scripts/create/create-project.js +1937 -176
  49. package/src/scripts/create/create-project.js.map +1 -1
  50. package/src/scripts/data-flow-graph.d.ts +1 -1
  51. package/src/scripts/effect-dependency-graph.d.ts +1 -1
  52. package/src/scripts/security-check.d.ts +30 -0
  53. package/src/scripts/security-check.js +223 -0
  54. package/src/scripts/security-check.js.map +1 -0
  55. package/src/scripts/style-architecture.d.ts +56 -0
  56. package/src/scripts/style-architecture.js +142 -0
  57. package/src/scripts/style-architecture.js.map +1 -0
  58. package/src/scripts/style-graph.d.ts +99 -0
  59. package/src/scripts/style-graph.js +179 -0
  60. package/src/scripts/style-graph.js.map +1 -0
  61. package/src/scripts/style-report.d.ts +55 -0
  62. package/src/scripts/style-report.js +67 -0
  63. package/src/scripts/style-report.js.map +1 -0
  64. package/src/scripts/template/migrate-template.js +1 -1
  65. package/src/scripts/template/migrate-template.js.map +1 -1
  66. package/src/scripts/angular-brand-codemod.ts +0 -3985
  67. package/src/scripts/architecture/migrate-architecture.ts +0 -653
  68. package/src/scripts/architecture-graph.ts +0 -3136
  69. package/src/scripts/components/migrate-components.ts +0 -227
  70. package/src/scripts/components/migration-diagnostic.ts +0 -8
  71. package/src/scripts/create/create-project.ts +0 -849
  72. package/src/scripts/data-flow-graph.ts +0 -240
  73. package/src/scripts/dependency-graph.ts +0 -5908
  74. package/src/scripts/effect-dependency-graph.ts +0 -630
  75. package/src/scripts/migrate.ts +0 -162
  76. package/src/scripts/migration-workspace.ts +0 -93
  77. package/src/scripts/primitives/migrate-named-primitives.ts +0 -627
  78. package/src/scripts/primitives/migrate-primitive-generators.ts +0 -410
  79. package/src/scripts/primitives/migrate-primitives.ts +0 -655
  80. package/src/scripts/primitives/migrate-yieldable-reactive-reads.ts +0 -499
  81. package/src/scripts/primitives/migration-diagnostic.ts +0 -15
  82. package/src/scripts/routes/migrate-routes.ts +0 -895
  83. package/src/scripts/routes/migration-diagnostic.ts +0 -25
  84. package/src/scripts/routes/route-command.ts +0 -1807
  85. package/src/scripts/routes/verify-routes.ts +0 -1511
  86. package/src/scripts/services/config.ts +0 -60
  87. package/src/scripts/services/migrate-services.ts +0 -1348
  88. package/src/scripts/services/migration-diagnostic.ts +0 -28
  89. package/src/scripts/template/migrate-template.ts +0 -418
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Style nodes in the dependency graph.
3
+ *
4
+ * **One graph, two producers.** `craft graph` reads the AST and the types; the
5
+ * style plugin evaluates the sheets and emits a dump. They meet here, joined on
6
+ * the identity of a class. Re-deriving the style side from the AST instead
7
+ * would mean a second, approximate evaluation of the DSL — and two answers that
8
+ * disagree sooner or later.
9
+ *
10
+ * The queries worth having are the transverse ones: token → class → component →
11
+ * route. That is the whole reason this is not a separate graph.
12
+ */
13
+ import type { DependencyGraph } from './dependency-graph.ts';
14
+ declare module './dependency-graph.ts' {
15
+ interface DependencyGraphNodeRegistry {
16
+ 'style-class': Record<string, unknown>;
17
+ 'style-atom': Record<string, unknown>;
18
+ 'css-var': Record<string, unknown>;
19
+ axis: Record<string, unknown>;
20
+ obligation: Record<string, unknown>;
21
+ }
22
+ interface DependencyGraphEdgeRegistry {
23
+ 'styled-by': Record<string, unknown>;
24
+ 'varies-on': Record<string, unknown>;
25
+ 'declares-var': Record<string, unknown>;
26
+ 'reads-var': Record<string, unknown>;
27
+ 'emits-atom': Record<string, unknown>;
28
+ requires: Record<string, unknown>;
29
+ discharges: Record<string, unknown>;
30
+ }
31
+ }
32
+ export interface StyleDumpClass {
33
+ readonly key: string;
34
+ readonly className: string;
35
+ readonly axes: Readonly<Record<string, readonly string[]>>;
36
+ readonly atoms: readonly string[];
37
+ readonly unproven: readonly string[];
38
+ readonly requires: readonly string[];
39
+ readonly provides: readonly string[];
40
+ readonly violates: readonly string[];
41
+ readonly unusedAxes?: readonly string[];
42
+ }
43
+ export interface StyleDumpAtom {
44
+ readonly className: string;
45
+ readonly property: string;
46
+ readonly value: string;
47
+ readonly conditions: readonly string[];
48
+ readonly unproven: string;
49
+ }
50
+ export interface StyleDumpVar {
51
+ readonly name: string;
52
+ readonly syntax: string;
53
+ readonly inherits: boolean;
54
+ readonly initialValue: string;
55
+ readonly role: string;
56
+ }
57
+ export interface StyleDump {
58
+ readonly classes: readonly StyleDumpClass[];
59
+ readonly atoms: readonly StyleDumpAtom[];
60
+ readonly vars: readonly StyleDumpVar[];
61
+ }
62
+ export declare const styleClassId: (key: string) => string;
63
+ export declare const cssVarId: (name: string) => string;
64
+ export declare const axisId: (axis: string) => string;
65
+ export declare const obligationId: (id: string) => string;
66
+ /**
67
+ * Which component uses which sheet.
68
+ *
69
+ * The dump knows classes, not components — it never sees a template. The
70
+ * association is made by the AST producer, which does; this map is how the two
71
+ * halves are handed to the merge. A component that uses a sheet nobody recorded
72
+ * comes out as a diagnostic rather than as silence.
73
+ */
74
+ export type ComponentStyleUsage = Readonly<Record<string, readonly string[]>>;
75
+ export interface MergeStyleOptions {
76
+ /** component node id → the sheet keys it renders. */
77
+ readonly usedBy?: ComponentStyleUsage;
78
+ /**
79
+ * Components the extraction is known not to cover — a component whose styles
80
+ * come from a global stylesheet, for instance. Listed explicitly so that the
81
+ * completeness rule can tell "not covered" from "forgotten".
82
+ */
83
+ readonly uncovered?: readonly string[];
84
+ }
85
+ /**
86
+ * Folds a style dump into an existing graph.
87
+ *
88
+ * Idempotent: merging the same dump twice gives the same graph. The merge is
89
+ * keyed on ids, not on array position, because the two producers do not walk
90
+ * the tree in the same order and never will.
91
+ */
92
+ export declare function mergeStyleDump(graph: DependencyGraph, dump: StyleDump, options?: MergeStyleOptions): DependencyGraph;
93
+ /**
94
+ * The number of visual states a class produces, `base` included.
95
+ *
96
+ * The same arithmetic the matrix does, kept here so the graph can answer
97
+ * "what does this route cost to capture?" without loading the testing package.
98
+ */
99
+ export declare function matrixSizeOf(registered: StyleDumpClass): number;
@@ -0,0 +1,179 @@
1
+ export const styleClassId = (key) => `style-class:${key}`;
2
+ export const cssVarId = (name) => `css-var:${name}`;
3
+ export const axisId = (axis) => `axis:${axis}`;
4
+ export const obligationId = (id) => `obligation:${id}`;
5
+ const atomId = (className) => `style-atom:${className}`;
6
+ const VAR_READ = /var\((--[^),\s]+)/g;
7
+ /**
8
+ * Folds a style dump into an existing graph.
9
+ *
10
+ * Idempotent: merging the same dump twice gives the same graph. The merge is
11
+ * keyed on ids, not on array position, because the two producers do not walk
12
+ * the tree in the same order and never will.
13
+ */
14
+ export function mergeStyleDump(graph, dump, options = {}) {
15
+ const nodes = new Map(graph.nodes.map((node) => [node.id, node]));
16
+ const edges = new Map(graph.edges.map((edge) => [`${edge.from}|${edge.kind}|${edge.to}`, edge]));
17
+ const diagnostics = [
18
+ ...(graph.diagnostics ?? []),
19
+ ];
20
+ const addNode = (node) => nodes.set(node.id, node);
21
+ const addEdge = (edge) => edges.set(`${edge.from}|${edge.kind}|${edge.to}`, edge);
22
+ for (const declaration of dump.vars) {
23
+ addNode({
24
+ id: cssVarId(declaration.name),
25
+ kind: 'css-var',
26
+ label: declaration.name,
27
+ details: {
28
+ syntax: declaration.syntax,
29
+ inherits: declaration.inherits,
30
+ initialValue: declaration.initialValue,
31
+ role: declaration.role,
32
+ },
33
+ });
34
+ }
35
+ const atomsByName = new Map(dump.atoms.map((atom) => [atom.className, atom]));
36
+ for (const atom of dump.atoms) {
37
+ addNode({
38
+ id: atomId(atom.className),
39
+ kind: 'style-atom',
40
+ label: `${atom.property}: ${atom.value}`,
41
+ details: {
42
+ property: atom.property,
43
+ value: atom.value,
44
+ conditions: atom.conditions,
45
+ unproven: atom.unproven,
46
+ },
47
+ });
48
+ for (const condition of atom.conditions) {
49
+ const axis = condition.split(':')[0];
50
+ addNode({ id: axisId(axis), kind: 'axis', label: axis });
51
+ }
52
+ }
53
+ for (const registered of dump.classes) {
54
+ const id = styleClassId(registered.key);
55
+ addNode({
56
+ id,
57
+ kind: 'style-class',
58
+ label: registered.key,
59
+ details: {
60
+ className: registered.className,
61
+ axes: registered.axes,
62
+ matrixSize: matrixSizeOf(registered),
63
+ unproven: registered.unproven,
64
+ unusedAxes: registered.unusedAxes ?? [],
65
+ },
66
+ });
67
+ for (const className of registered.atoms) {
68
+ addEdge({
69
+ from: id,
70
+ to: atomId(className),
71
+ kind: 'emits-atom',
72
+ evidence: 'type',
73
+ });
74
+ const atom = atomsByName.get(className);
75
+ if (!atom)
76
+ continue;
77
+ if (atom.property.startsWith('--')) {
78
+ addEdge({
79
+ from: id,
80
+ to: cssVarId(atom.property),
81
+ kind: 'declares-var',
82
+ evidence: 'type',
83
+ });
84
+ }
85
+ for (const [, name] of atom.value.matchAll(VAR_READ)) {
86
+ addEdge({
87
+ from: id,
88
+ to: cssVarId(name),
89
+ kind: 'reads-var',
90
+ evidence: 'type',
91
+ });
92
+ }
93
+ }
94
+ for (const axis of Object.keys(registered.axes)) {
95
+ addEdge({
96
+ from: id,
97
+ to: axisId(axis),
98
+ kind: 'varies-on',
99
+ evidence: 'type',
100
+ });
101
+ }
102
+ for (const requirement of registered.requires) {
103
+ addNode({
104
+ id: obligationId(requirement),
105
+ kind: 'obligation',
106
+ label: requirement,
107
+ });
108
+ addEdge({
109
+ from: id,
110
+ to: obligationId(requirement),
111
+ kind: 'requires',
112
+ evidence: 'type',
113
+ });
114
+ }
115
+ for (const discharge of registered.provides) {
116
+ addNode({
117
+ id: obligationId(discharge),
118
+ kind: 'obligation',
119
+ label: discharge,
120
+ });
121
+ addEdge({
122
+ from: id,
123
+ to: obligationId(discharge),
124
+ kind: 'discharges',
125
+ evidence: 'type',
126
+ });
127
+ }
128
+ }
129
+ const known = new Set(dump.classes.map((registered) => registered.key));
130
+ const uncovered = new Set(options.uncovered ?? []);
131
+ for (const [componentId, keys] of Object.entries(options.usedBy ?? {})) {
132
+ for (const key of keys) {
133
+ if (!known.has(key)) {
134
+ // One producer saw a sheet the other did not. Swallowing it would make
135
+ // every rule downstream green on an incomplete graph, which is the same
136
+ // false confidence as a matrix that is not tight.
137
+ diagnostics.push({
138
+ code: 'style-class-missing-from-dump',
139
+ message: `'${componentId}' renders the sheet class '${key}', which the style dump does not contain. The graph is incomplete: regenerate the dump, or the rules that read it will pass on a partial picture.`,
140
+ });
141
+ continue;
142
+ }
143
+ addEdge({
144
+ from: componentId,
145
+ to: styleClassId(key),
146
+ kind: 'styled-by',
147
+ evidence: 'ast',
148
+ });
149
+ }
150
+ }
151
+ for (const node of graph.nodes) {
152
+ if (node.kind !== 'component')
153
+ continue;
154
+ if (uncovered.has(node.id))
155
+ continue;
156
+ if (options.usedBy?.[node.id]?.length)
157
+ continue;
158
+ diagnostics.push({
159
+ code: 'component-without-style-class',
160
+ message: `'${node.label}' is not styled by any sheet the graph knows about. Either it uses CSS from outside the model — list it as uncovered so the gap is visible — or the extraction missed it.`,
161
+ });
162
+ }
163
+ return {
164
+ ...graph,
165
+ nodes: [...nodes.values()],
166
+ edges: [...edges.values()],
167
+ diagnostics,
168
+ };
169
+ }
170
+ /**
171
+ * The number of visual states a class produces, `base` included.
172
+ *
173
+ * The same arithmetic the matrix does, kept here so the graph can answer
174
+ * "what does this route cost to capture?" without loading the testing package.
175
+ */
176
+ export function matrixSizeOf(registered) {
177
+ return Object.values(registered.axes).reduce((total, points) => total * (points.length + 1), 1);
178
+ }
179
+ //# sourceMappingURL=style-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-graph.js","sourceRoot":"","sources":["../../../../../libs/dev-tools/src/scripts/style-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * The three questions worth asking a style graph from outside.
3
+ *
4
+ * Pure: a dump in, an answer out. The CLI and the MCP tools are both thin
5
+ * wrappers over this, so a question asked from an editor and the same question
6
+ * asked in CI cannot give different answers.
7
+ */
8
+ import { type MergeStyleOptions, type StyleDump } from './style-graph.ts';
9
+ export interface StyleImpactReport {
10
+ readonly changed: readonly string[];
11
+ /** Sheet classes a change to those variables can be seen in. */
12
+ readonly classes: readonly string[];
13
+ /**
14
+ * Whether the answer is a real narrowing or the conservative fallback.
15
+ *
16
+ * A name the graph does not know reaches everything: saying "all" out loud is
17
+ * the difference between a suite that skips captures on purpose and one that
18
+ * skips them by accident.
19
+ */
20
+ readonly narrowed: boolean;
21
+ }
22
+ export declare function styleImpact(dump: StyleDump, changed: readonly string[]): StyleImpactReport;
23
+ export interface StyleMatrixReport {
24
+ readonly bySheet: Readonly<Record<string, number>>;
25
+ readonly byComponent: Readonly<Record<string, number>>;
26
+ readonly total: number;
27
+ readonly median: number;
28
+ readonly largest: {
29
+ readonly key: string;
30
+ readonly size: number;
31
+ } | undefined;
32
+ }
33
+ /**
34
+ * What the application costs to capture.
35
+ *
36
+ * The median and the largest are here because those are the two numbers the
37
+ * plan gates the reduction wave on — reading them off a list by hand is how a
38
+ * threshold quietly stops being checked.
39
+ */
40
+ export declare function styleMatrix(dump: StyleDump, options?: MergeStyleOptions): StyleMatrixReport;
41
+ export interface StyleDebtReport {
42
+ /** Escape hatches taken, with the reason their author gave. */
43
+ readonly unproven: readonly string[];
44
+ /** Required somewhere, discharged nowhere. */
45
+ readonly undischarged: readonly string[];
46
+ readonly dischargers: readonly string[];
47
+ readonly unreadVars: readonly string[];
48
+ readonly undeclaredVars: readonly string[];
49
+ /** Components no sheet is known to style — read this before the rest. */
50
+ readonly extractionGaps: readonly string[];
51
+ /** Axes that move a box, by axis. An axis meant to repaint must be absent. */
52
+ readonly axesTouchingLayout: Readonly<Record<string, readonly string[]>>;
53
+ readonly axesWritingVars: Readonly<Record<string, readonly string[]>>;
54
+ }
55
+ export declare function styleDebt(dump: StyleDump, options?: MergeStyleOptions): StyleDebtReport;
@@ -0,0 +1,67 @@
1
+ /**
2
+ * The three questions worth asking a style graph from outside.
3
+ *
4
+ * Pure: a dump in, an answer out. The CLI and the MCP tools are both thin
5
+ * wrappers over this, so a question asked from an editor and the same question
6
+ * asked in CI cannot give different answers.
7
+ */
8
+ import { mergeStyleDump, } from "./style-graph.js";
9
+ import { danglingVars, dischargers, extractionGaps, impactedClasses, matrixSize, matrixSizeByComponent, propertiesWrittenBy, undischargedObligations, unproven, varsWrittenBy, } from "./style-architecture.js";
10
+ const bare = (dump, options) => mergeStyleDump({
11
+ version: 1,
12
+ rootDir: '.',
13
+ tsConfigFilePath: '.',
14
+ nodes: [],
15
+ edges: [],
16
+ }, dump, options);
17
+ export function styleImpact(dump, changed) {
18
+ const graph = bare(dump, {});
19
+ const known = new Set(dump.vars.map((declaration) => declaration.name));
20
+ const unknown = changed.filter((name) => !known.has(name));
21
+ return {
22
+ changed: [...changed].sort(),
23
+ classes: unknown.length
24
+ ? dump.classes.map((registered) => registered.key).sort()
25
+ : impactedClasses(graph, changed),
26
+ narrowed: unknown.length === 0,
27
+ };
28
+ }
29
+ /**
30
+ * What the application costs to capture.
31
+ *
32
+ * The median and the largest are here because those are the two numbers the
33
+ * plan gates the reduction wave on — reading them off a list by hand is how a
34
+ * threshold quietly stops being checked.
35
+ */
36
+ export function styleMatrix(dump, options = {}) {
37
+ const graph = bare(dump, options);
38
+ const bySheet = matrixSize(graph);
39
+ const sizes = Object.values(bySheet).sort((left, right) => left - right);
40
+ const largestEntry = Object.entries(bySheet).sort(([, left], [, right]) => right - left)[0];
41
+ return {
42
+ bySheet,
43
+ byComponent: matrixSizeByComponent(graph),
44
+ total: sizes.reduce((sum, size) => sum + size, 0),
45
+ median: sizes.length
46
+ ? (sizes[(sizes.length - 1) >> 1] + sizes[sizes.length >> 1]) / 2
47
+ : 0,
48
+ largest: largestEntry
49
+ ? { key: largestEntry[0], size: largestEntry[1] }
50
+ : undefined,
51
+ };
52
+ }
53
+ export function styleDebt(dump, options = {}) {
54
+ const graph = bare(dump, options);
55
+ const dangling = danglingVars(graph);
56
+ return {
57
+ unproven: unproven(graph),
58
+ undischarged: undischargedObligations(graph),
59
+ dischargers: dischargers(graph),
60
+ unreadVars: dangling.unread,
61
+ undeclaredVars: dangling.undeclared,
62
+ extractionGaps: extractionGaps(graph),
63
+ axesTouchingLayout: propertiesWrittenBy(graph),
64
+ axesWritingVars: varsWrittenBy(graph),
65
+ };
66
+ }
67
+ //# sourceMappingURL=style-report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-report.js","sourceRoot":"","sources":["../../../../../libs/dev-tools/src/scripts/style-report.ts"],"names":[],"mappings":"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"}
@@ -126,7 +126,7 @@ function renderAttributes(attributes, diagnostics) {
126
126
  if (name.startsWith('*') || name.startsWith('@')) {
127
127
  diagnostics.push({
128
128
  code: 'UNSUPPORTED_ANGULAR_SYNTAX',
129
- message: `Structural Angular syntax '${name}' needs a manual ifBlock/each conversion.`,
129
+ message: `Structural Angular syntax '${name}' needs a manual ifNode/forNode conversion.`,
130
130
  });
131
131
  continue;
132
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-template.js","sourceRoot":"","sources":["../../../../../../libs/dev-tools/src/scripts/template/migrate-template.ts"],"names":[],"mappings":"AA2BA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,GAAG;IACH,SAAS;IACT,OAAO;IACP,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,OAAO;IACP,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,KAAK;IACL,IAAI;IACJ,QAAQ;IACR,GAAG;IACH,SAAS;IACT,QAAQ;IACR,OAAO;IACP,MAAM;IACN,QAAQ;IACR,KAAK;IACL,OAAO;IACP,OAAO;IACP,IAAI;IACJ,UAAU;IACV,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,MAAM;IACN,MAAM;IACN,IAAI;IACJ,KAAK;IACL,OAAO;IACP,IAAI;IACJ,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,KAAK;CACN,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,UAAoC,EAAE;IAEtC,MAAM,WAAW,GAAkC,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;IACjE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,aAAa;QACxB,CAAC,CAAC,eAAe,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC;QACrD,CAAC,CAAC,WAAW,UAAU,EAAE,CAAC;IAC5B,MAAM,UAAU,GACd,OAAO,CAAC,aAAa,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC;QACjD,CAAC,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAoC;QAChF,CAAC,CAAC,EAAE,CAAC;IACT,OAAO;QACL,IAAI,EAAE,GAAG,UAAU,GAAG,IAAI,IAAI;QAC9B,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE;QAC5B,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,IAAY,EACZ,UAAkB,EAClB,OAAoB;IAEpB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC1D,OAAO,gBAAgB,UAAU,0BAA0B,kBAAkB,CAAC,IAAI,CAAC,qCAAqC,UAAU,OAAO,CAAC;AAC5I,CAAC;AAED,SAAS,WAAW,CAClB,KAA0B,EAC1B,OAAoB,EACpB,WAA0C,EAC1C,KAAa;IAEb,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAC7B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAC/D,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3C,OAAO,MAAM,UAAU;SACpB,GAAG,CACF,CAAC,IAAI,EAAE,EAAE,CACP,GAAG,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CACxE;SACA,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,GAAG,CAAC;AAC9B,CAAC;AAED,SAAS,UAAU,CACjB,IAAc,EACd,OAAoB,EACpB,WAA0C,EAC1C,KAAa;IAEb,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAClE,CAAC;IACF,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;QACnD,OAAO,WAAW;YAChB,CAAC,CAAC,iBAAiB,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,GAAG;YAC9E,CAAC,CAAC,iBAAiB,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAClE,CAAC;IACD,OAAO,WAAW;QAChB,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,GAAG;QACtD,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC;AAClC,CAAC;AAED,SAAS,gBAAgB,CACvB,UAAoC,EACpC,WAA0C;IAE1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,8BAA8B,IAAI,2CAA2C;aACvF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QACjD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,UAAU,GACd,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,gBAAgB,UAAU,EAAE,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,MAAM,UAAU,GACd,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,WAAW,UAAU,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,QAAQ,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CACV,GAAG,SAAS,KAAK,uBAAuB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,uBAAuB,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACpD,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,WAAW,QAAQ,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,QAAgB;IACrD,MAAM,KAAK,GAAG,KAAK;SAChB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;SAC/B,IAAI,EAAE;SACN,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,MAAM,GAAG,KAAK;SACjB,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACnB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CACvE;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK;SACT,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK;SACT,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,iBAAiB;IAIF;IACA;IAJX,KAAK,GAAG,CAAC,CAAC;IAElB,YACmB,MAAc,EACd,WAA0C;QAD1C,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAA+B;IAC1D,CAAC;IAEJ,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAEO,UAAU,CAAC,OAAgB;QACjC,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBACpD,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;gBAChB,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAC9B,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAChC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;oBACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;wBACpB,IAAI,EAAE,oBAAoB;wBAC1B,OAAO,EAAE,4BAA4B,OAAO,CAAC,CAAC,CAAC,IAAI;wBACnD,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM;qBACvC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;gBAChB,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GACZ,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;gBAC9C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ;aACT,CAAC,CAAC;YACH,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,yBAAyB,OAAO,IAAI;aAC9C,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,SAAS,CAAC,KAAiB,EAAE,KAAa;QAChD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK;YACpB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEO,cAAc;QAOpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1E,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;QACvB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAAE,MAAM,IAAI,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,4BAA4B,GAAG,IAAI;gBAC5C,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;QACrB,OAAO;YACL,GAAG;YACH,UAAU,EAAE,eAAe,CAAC,aAAa,CAAC;YAC1C,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;SAC1C,CAAC;IACJ,CAAC;CACF;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,KAAa;IAC/C,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,SAAS,KAAK,cAAc;gBAAE,cAAc,GAAG,EAAE,CAAC;QACxD,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG;YAC/C,cAAc,GAAG,SAAS,CAAC;aACxB,IAAI,SAAS,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAC;QAC3E,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC;QACxB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,SAAS;QACX,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QAClD,MAAM,cAAc,GAClB,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,UAAU,GAAG,KAAK,CAAC;QACzB,IAAI,cAAc;YAChB,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,cAAc;gBAC9D,KAAK,IAAI,CAAC,CAAC;;YACV,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAC;QAC3D,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,cAAc,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,cAAc;YAAE,KAAK,IAAI,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"migrate-template.js","sourceRoot":"","sources":["../../../../../../libs/dev-tools/src/scripts/template/migrate-template.ts"],"names":[],"mappings":"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"}