@cleaver/breakcheck-core 0.2.3 → 0.2.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 (36) hide show
  1. package/README.md +42 -1
  2. package/dist/core/compare/index.js +2 -2
  3. package/dist/core/compare/index.js.map +1 -1
  4. package/dist/core/crawler/implementations/cheerio.d.ts +1 -1
  5. package/dist/core/crawler/implementations/cheerio.js +2 -2
  6. package/dist/core/crawler/implementations/cheerio.js.map +1 -1
  7. package/dist/core/crawler/implementations/playwright.d.ts +1 -1
  8. package/dist/core/crawler/implementations/playwright.js +2 -2
  9. package/dist/core/crawler/implementations/playwright.js.map +1 -1
  10. package/dist/core/crawler/index.d.ts +6 -1
  11. package/dist/core/crawler/index.js +8 -4
  12. package/dist/core/crawler/index.js.map +1 -1
  13. package/dist/core/crawler/url-paths.d.ts +18 -0
  14. package/dist/core/crawler/url-paths.js +113 -0
  15. package/dist/core/crawler/url-paths.js.map +1 -0
  16. package/dist/core/rules/RulesDsl.js +253 -139
  17. package/dist/core/rules/RulesDsl.js.map +1 -1
  18. package/dist/core/rules/RulesEngine.d.ts +2 -2
  19. package/dist/core/rules/RulesEngine.js +168 -82
  20. package/dist/core/rules/RulesEngine.js.map +1 -1
  21. package/dist/core/snapshot/index.d.ts +1 -1
  22. package/dist/core/snapshot/index.js +36 -1
  23. package/dist/core/snapshot/index.js.map +1 -1
  24. package/dist/index.d.ts +3 -2
  25. package/dist/index.js +2 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/lib/crawlee-logger.d.ts +2 -0
  28. package/dist/lib/crawlee-logger.js +43 -0
  29. package/dist/lib/crawlee-logger.js.map +1 -0
  30. package/dist/lib/logger.d.ts +5 -1
  31. package/dist/lib/logger.js +11 -1
  32. package/dist/lib/logger.js.map +1 -1
  33. package/dist/types/api.d.ts +5 -0
  34. package/dist/types/rules.d.ts +18 -10
  35. package/dist/types/rules.js.map +1 -1
  36. package/package.json +1 -1
@@ -1,46 +1,152 @@
1
- import { createToken, CstParser, Lexer } from "chevrotain";
2
- import { readFileSync } from "fs";
3
- import { resolve } from "path";
1
+ import { createToken, CstParser, EOF, Lexer, } from "chevrotain";
2
+ import { readFile } from "node:fs/promises";
3
+ import { resolve } from "node:path";
4
4
  import { logger } from "../../lib/logger.js";
5
- import { REGION_NAME_PATTERN, } from "../../types/rules.js";
6
- function isRegionDeclaration(action) {
7
- return "kind" in action && action.kind === "region";
5
+ function isRegion(value) {
6
+ return (typeof value === "object" &&
7
+ value !== null &&
8
+ "kind" in value &&
9
+ value.kind === "region" &&
10
+ "name" in value &&
11
+ typeof value.name === "string");
8
12
  }
9
- // --- LEXER ---
10
- const Css = createToken({ name: "Css", pattern: /css:/i });
11
- const Do = createToken({ name: "Do", pattern: /do:/i });
12
- const DoBlock = createToken({ name: "DoBlock", pattern: /do/i });
13
- const End = createToken({ name: "End", pattern: /end/i });
14
- const Include = createToken({ name: "Include", pattern: /include/i });
15
- const Exclude = createToken({ name: "Exclude", pattern: /exclude/i });
16
- const RemoveAttr = createToken({ name: "RemoveAttr", pattern: /remove_attr/i });
13
+ function isAction(value) {
14
+ return (typeof value === "object" &&
15
+ value !== null &&
16
+ "action" in value &&
17
+ typeof value.action === "string");
18
+ }
19
+ function isRule(value) {
20
+ return (typeof value === "object" &&
21
+ value !== null &&
22
+ "selector" in value &&
23
+ typeof value.selector === "string" &&
24
+ "actions" in value &&
25
+ Array.isArray(value.actions));
26
+ }
27
+ function isNamedRegion(value) {
28
+ return (typeof value === "object" &&
29
+ value !== null &&
30
+ "selector" in value &&
31
+ typeof value.selector === "string" &&
32
+ "name" in value &&
33
+ typeof value.name === "string");
34
+ }
35
+ function isRuleset(value) {
36
+ return (typeof value === "object" &&
37
+ value !== null &&
38
+ "name" in value &&
39
+ typeof value.name === "string" &&
40
+ "rules" in value &&
41
+ Array.isArray(value.rules) &&
42
+ (!("regions" in value) ||
43
+ value.regions === undefined ||
44
+ Array.isArray(value.regions)));
45
+ }
46
+ const Css = createToken({
47
+ name: "Css",
48
+ pattern: /css:/i,
49
+ push_mode: "selector",
50
+ });
51
+ function matchSelector(text, offset) {
52
+ let quote;
53
+ let escaped = false;
54
+ let brackets = 0;
55
+ let parentheses = 0;
56
+ const endings = [
57
+ text.indexOf("\n", offset),
58
+ text.indexOf("\r", offset),
59
+ ].filter((value) => value >= 0);
60
+ const lineEnd = endings.length === 0 ? text.length : Math.min(...endings);
61
+ for (let index = offset; index < lineEnd; index += 1) {
62
+ const character = text[index];
63
+ if (escaped) {
64
+ escaped = false;
65
+ continue;
66
+ }
67
+ if (character === "\\") {
68
+ escaped = true;
69
+ continue;
70
+ }
71
+ if (quote) {
72
+ if (character === quote)
73
+ quote = undefined;
74
+ continue;
75
+ }
76
+ if (character === '"' || character === "'") {
77
+ quote = character;
78
+ continue;
79
+ }
80
+ if (character === "[")
81
+ brackets += 1;
82
+ else if (character === "]" && brackets > 0)
83
+ brackets -= 1;
84
+ else if (character === "(")
85
+ parentheses += 1;
86
+ else if (character === ")" && parentheses > 0)
87
+ parentheses -= 1;
88
+ if (brackets ||
89
+ parentheses ||
90
+ index === offset ||
91
+ !/\s/.test(text[index - 1] ?? ""))
92
+ continue;
93
+ const remainder = text.slice(index, lineEnd);
94
+ if (/^do:/i.test(remainder) ||
95
+ /^do(?=[ \t]*(?:--[^\r\n]*)?(?![\s\S]))/i.test(remainder)) {
96
+ const image = text.slice(offset, index).trimEnd();
97
+ if (!image)
98
+ return null;
99
+ const match = [image];
100
+ match.index = offset;
101
+ match.input = text;
102
+ return match;
103
+ }
104
+ }
105
+ return null;
106
+ }
107
+ const Selector = createToken({
108
+ name: "Selector",
109
+ pattern: matchSelector,
110
+ line_breaks: false,
111
+ });
112
+ const SelectorWhitespace = createToken({
113
+ name: "SelectorWhitespace",
114
+ pattern: /[ \t]+/,
115
+ group: Lexer.SKIPPED,
116
+ });
117
+ const Do = createToken({ name: "Do", pattern: /do:/i, pop_mode: true });
118
+ const DoBlock = createToken({
119
+ name: "DoBlock",
120
+ pattern: /do(?=[ \t]*(?:--[^\r\n]*)?(?:\r?\n|(?![\s\S])))/i,
121
+ pop_mode: true,
122
+ });
123
+ const End = createToken({ name: "End", pattern: /end\b/i });
124
+ const Include = createToken({ name: "Include", pattern: /include\b/i });
125
+ const Exclude = createToken({ name: "Exclude", pattern: /exclude\b/i });
126
+ const RemoveAttr = createToken({
127
+ name: "RemoveAttr",
128
+ pattern: /remove_attr\b/i,
129
+ });
17
130
  const RewriteAttr = createToken({
18
131
  name: "RewriteAttr",
19
- pattern: /rewrite_attr/i,
132
+ pattern: /rewrite_attr\b/i,
20
133
  });
21
134
  const RewriteContent = createToken({
22
135
  name: "RewriteContent",
23
- pattern: /rewrite_content/i,
136
+ pattern: /rewrite_content\b/i,
24
137
  });
25
- const RegionKeyword = createToken({
26
- name: "Region",
27
- pattern: /region(?=\s+name:)/i,
138
+ const RegionKeyword = createToken({ name: "Region", pattern: /region\b/i });
139
+ const ContentRegex = createToken({
140
+ name: "ContentRegex",
141
+ pattern: /content_regex:/i,
28
142
  });
29
143
  const Attr = createToken({ name: "Attr", pattern: /attr:/i });
30
144
  const RegionName = createToken({ name: "RegionName", pattern: /name:/i });
31
145
  const Regex = createToken({ name: "Regex", pattern: /regex:/i });
32
146
  const Replace = createToken({ name: "Replace", pattern: /replace:/i });
33
- const ContentRegex = createToken({
34
- name: "ContentRegex",
35
- pattern: /content_regex:/i,
36
- });
37
147
  const StringLiteral = createToken({
38
148
  name: "StringLiteral",
39
- pattern: /"[^"]*"/,
40
- });
41
- const Selector = createToken({
42
- name: "Selector",
43
- pattern: /[\w.#\[\]*='"-]+/,
149
+ pattern: /"(?:\\.|[^"\\\r\n])*"/,
44
150
  });
45
151
  const Comment = createToken({
46
152
  name: "Comment",
@@ -52,41 +158,38 @@ const WhiteSpace = createToken({
52
158
  pattern: /\s+/,
53
159
  group: Lexer.SKIPPED,
54
160
  });
55
- const allTokens = [
161
+ const normalTokens = [
56
162
  WhiteSpace,
57
163
  Comment,
58
164
  Css,
59
- Do,
60
- DoBlock,
61
- End,
62
- Include,
63
- Exclude,
165
+ ContentRegex,
64
166
  RemoveAttr,
65
167
  RewriteAttr,
66
168
  RewriteContent,
169
+ Include,
170
+ Exclude,
67
171
  RegionKeyword,
172
+ End,
68
173
  Attr,
69
174
  RegionName,
70
175
  Regex,
71
176
  Replace,
72
- ContentRegex,
73
177
  StringLiteral,
74
- Selector,
75
178
  ];
76
- const RulesLexer = new Lexer(allTokens, {
77
- // Longer matches should be preferred over shorter ones
78
- ensureOptimizations: true,
179
+ const selectorTokens = [SelectorWhitespace, Selector, Do, DoBlock];
180
+ const allTokens = [...normalTokens, ...selectorTokens];
181
+ const RulesLexer = new Lexer({
182
+ defaultMode: "normal",
183
+ modes: { normal: normalTokens, selector: selectorTokens },
79
184
  });
80
- // --- PARSER ---
81
185
  class RulesParser extends CstParser {
82
186
  constructor() {
83
- super(allTokens);
187
+ super(allTokens, { recoveryEnabled: false });
84
188
  this.performSelfAnalysis();
85
189
  }
86
190
  ruleset = this.RULE("ruleset", () => {
87
- this.MANY(() => {
88
- this.SUBRULE(this.rule);
89
- });
191
+ this.MANY(() => this.SUBRULE(this.rule));
192
+ this.CONSUME(EOF);
90
193
  });
91
194
  rule = this.RULE("rule", () => {
92
195
  this.CONSUME(Css);
@@ -105,9 +208,7 @@ class RulesParser extends CstParser {
105
208
  });
106
209
  actionBlock = this.RULE("actionBlock", () => {
107
210
  this.CONSUME(DoBlock);
108
- this.MANY(() => {
109
- this.SUBRULE(this.action);
110
- });
211
+ this.AT_LEAST_ONE(() => this.SUBRULE(this.action));
111
212
  this.CONSUME(End);
112
213
  });
113
214
  action = this.RULE("action", () => {
@@ -159,145 +260,158 @@ class RulesParser extends CstParser {
159
260
  });
160
261
  }
161
262
  const parser = new RulesParser();
162
- // --- VISITOR ---
263
+ function decodeString(token) {
264
+ const value = token.image.slice(1, -1);
265
+ return value.replace(/\\([\\"])/g, "$1");
266
+ }
267
+ function parsedAction(value) {
268
+ if (isAction(value) || isRegion(value))
269
+ return value;
270
+ throw new Error("Invalid action visitor result.");
271
+ }
163
272
  class CstToAstVisitor extends parser.getBaseCstVisitorConstructor() {
164
273
  constructor() {
165
274
  super();
166
275
  this.validateVisitor();
167
276
  }
168
277
  ruleset(ctx) {
169
- const parsedRules = (ctx.rule?.map((r) => this.visit(r)) || []);
170
278
  const rules = [];
171
279
  const regions = [];
172
- const regionNames = new Set();
173
- for (const parsedRule of parsedRules) {
174
- if ("name" in parsedRule) {
175
- if (!REGION_NAME_PATTERN.test(parsedRule.name)) {
176
- throw new Error(`Invalid region name "${parsedRule.name}". Region names must match [A-Za-z_][A-Za-z0-9_]*.`);
177
- }
178
- if (regionNames.has(parsedRule.name)) {
179
- throw new Error(`Duplicate region name: ${parsedRule.name}`);
180
- }
181
- regionNames.add(parsedRule.name);
182
- regions.push(parsedRule);
183
- }
184
- else {
185
- rules.push(parsedRule);
186
- }
280
+ for (const node of ctx.rule ?? []) {
281
+ const value = this.visit(node);
282
+ if (isRule(value))
283
+ rules.push(value);
284
+ else if (isNamedRegion(value))
285
+ regions.push(value);
286
+ else
287
+ throw new Error("Invalid rule visitor result.");
187
288
  }
188
289
  return { name: "ruleset", rules, regions };
189
290
  }
190
291
  rule(ctx) {
191
- const selector = ctx.Selector[0].image.trim();
192
- const actionNode = ctx.singleAction || ctx.actionBlock;
193
- if (!actionNode) {
194
- throw new Error("Invalid 'rule' node in CST: No action node found.");
195
- }
196
- const actions = this.visit(actionNode[0]);
197
- const regionAction = actions.find(isRegionDeclaration);
198
- if (regionAction && actions.length === 1) {
199
- return { selector, name: regionAction.name };
200
- }
201
- if (regionAction) {
292
+ const node = ctx.singleAction?.[0] ?? ctx.actionBlock?.[0];
293
+ if (!node)
294
+ throw new Error("Invalid rule action.");
295
+ const value = this.visit(node);
296
+ if (!Array.isArray(value))
297
+ throw new Error("Invalid rule action result.");
298
+ const actions = value.map(parsedAction);
299
+ const region = actions.find(isRegion);
300
+ if (region && actions.length === 1)
301
+ return { selector: ctx.Selector[0].image.trim(), name: region.name };
302
+ if (region)
202
303
  throw new Error("A named region must be declared as the only action for a selector.");
203
- }
204
304
  return {
205
- selector,
206
- actions: actions.filter((action) => !isRegionDeclaration(action)),
305
+ selector: ctx.Selector[0].image.trim(),
306
+ actions: actions.filter(isAction),
207
307
  };
208
308
  }
209
309
  singleAction(ctx) {
210
- const actionNode = ctx.action?.[0] || ctx.regionAction?.[0];
211
- if (!actionNode) {
212
- throw new Error("Invalid 'singleAction' node in CST.");
213
- }
214
- return [this.visit(actionNode)];
310
+ const node = ctx.action?.[0] ?? ctx.regionAction?.[0];
311
+ if (!node)
312
+ throw new Error("Invalid single action.");
313
+ return [parsedAction(this.visit(node))];
215
314
  }
216
315
  actionBlock(ctx) {
217
- return ctx.action?.map((a) => this.visit(a)) || [];
316
+ return ctx.action.map((node) => {
317
+ const value = parsedAction(this.visit(node));
318
+ if (!isAction(value))
319
+ throw new Error("Invalid block action.");
320
+ return value;
321
+ });
218
322
  }
219
323
  action(ctx) {
220
- // Find which specific action was parsed (e.g., includeAction, excludeAction)
221
- const actionAlternative = ctx.includeAction ||
222
- ctx.excludeAction ||
223
- ctx.removeAttrAction ||
224
- ctx.rewriteAttrAction ||
324
+ const nodes = ctx.includeAction ??
325
+ ctx.excludeAction ??
326
+ ctx.removeAttrAction ??
327
+ ctx.rewriteAttrAction ??
225
328
  ctx.rewriteContentAction;
226
- if (!actionAlternative) {
227
- logger.error({ context: ctx }, "Invalid 'action' node in CST: No action alternative found");
228
- throw new Error("Invalid 'action' node in CST: No action alternative found.");
229
- }
230
- const actionNode = actionAlternative[0];
231
- // Visit that specific action's node
232
- return this.visit(actionNode);
329
+ if (!nodes?.[0])
330
+ throw new Error("Invalid action.");
331
+ const value = parsedAction(this.visit(nodes[0]));
332
+ if (!isAction(value))
333
+ throw new Error("Invalid action.");
334
+ return value;
233
335
  }
234
336
  regionAction(ctx) {
235
- const name = ctx.StringLiteral[0].image.slice(1, -1);
236
- return { kind: "region", name };
337
+ return { kind: "region", name: decodeString(ctx.StringLiteral[0]) };
237
338
  }
238
339
  includeAction(ctx) {
239
- const modifiers = ctx.contentRegexModifier
240
- ? this.visit(ctx.contentRegexModifier[0])
241
- : {};
242
- return { action: "include", modifiers };
340
+ return { action: "include", modifiers: this.optionalContentRegex(ctx) };
243
341
  }
244
342
  excludeAction(ctx) {
245
- const modifiers = ctx.contentRegexModifier
246
- ? this.visit(ctx.contentRegexModifier[0])
247
- : {};
248
- return { action: "exclude", modifiers };
343
+ return { action: "exclude", modifiers: this.optionalContentRegex(ctx) };
249
344
  }
250
345
  removeAttrAction(ctx) {
251
- const attr = ctx.StringLiteral[0].image.slice(1, -1);
252
- return { action: "remove_attr", modifiers: { attr } };
346
+ return {
347
+ action: "remove_attr",
348
+ modifiers: { attr: decodeString(ctx.StringLiteral[0]) },
349
+ };
253
350
  }
254
351
  rewriteAttrAction(ctx) {
255
- const attr = ctx.attr[0].image.slice(1, -1);
256
- const regex = ctx.regex[0].image.slice(1, -1);
257
- const replace = ctx.replace[0].image.slice(1, -1);
258
- return { action: "rewrite_attr", modifiers: { attr, regex, replace } };
352
+ return {
353
+ action: "rewrite_attr",
354
+ modifiers: {
355
+ attr: decodeString(ctx.attr[0]),
356
+ regex: decodeString(ctx.regex[0]),
357
+ replace: decodeString(ctx.replace[0]),
358
+ },
359
+ };
259
360
  }
260
361
  rewriteContentAction(ctx) {
261
- const regex = ctx.regex[0].image.slice(1, -1);
262
- const replace = ctx.replace[0].image.slice(1, -1);
263
- return { action: "rewrite_content", modifiers: { regex, replace } };
362
+ return {
363
+ action: "rewrite_content",
364
+ modifiers: {
365
+ regex: decodeString(ctx.regex[0]),
366
+ replace: decodeString(ctx.replace[0]),
367
+ },
368
+ };
264
369
  }
265
370
  contentRegexModifier(ctx) {
266
- const content_regex = ctx.StringLiteral[0].image.slice(1, -1);
267
- return { content_regex };
371
+ return { content_regex: decodeString(ctx.StringLiteral[0]) };
372
+ }
373
+ optionalContentRegex(ctx) {
374
+ if (!ctx.contentRegexModifier)
375
+ return {};
376
+ const value = this.visit(ctx.contentRegexModifier[0]);
377
+ if (typeof value !== "object" ||
378
+ value === null ||
379
+ !("content_regex" in value) ||
380
+ typeof value.content_regex !== "string")
381
+ throw new Error("Invalid content regex result.");
382
+ return { content_regex: value.content_regex };
268
383
  }
269
384
  }
270
385
  const visitor = new CstToAstVisitor();
271
- // --- Main processing function ---
386
+ function isFileError(error) {
387
+ return error instanceof Error && "code" in error;
388
+ }
272
389
  export async function processRulesDsl(rulesDirectory) {
273
390
  const rulesPath = resolve(process.cwd(), rulesDirectory, "rules.breakcheck");
274
- let rulesContent;
391
+ let content;
275
392
  try {
276
- rulesContent = readFileSync(rulesPath, "utf-8");
393
+ content = await readFile(rulesPath, "utf8");
277
394
  }
278
395
  catch (error) {
279
- logger.error({ error, rulesPath }, "Rules file not found");
280
- throw new Error(`Rules file not found: ${rulesPath}`);
281
- }
282
- const lexResult = RulesLexer.tokenize(rulesContent);
283
- if (lexResult.errors.length > 0) {
284
- const errors = lexResult.errors
285
- .map((err) => `Lexical error at line ${err.line}, column ${err.column}: ${err.message}`)
286
- .join("\n");
287
- logger.error({ errors: lexResult.errors, rulesDirectory }, "Lexical errors in rules file");
288
- throw new Error(`Lexical errors in rules file:\n${errors}`);
396
+ if (isFileError(error) && error.code === "ENOENT") {
397
+ logger.error({ error, rulesPath }, "Rules file not found");
398
+ throw new Error(`Rules file not found: ${rulesPath}`, { cause: error });
399
+ }
400
+ logger.error({ error, rulesPath }, "Failed to read rules file");
401
+ throw new Error(`Failed to read rules file: ${rulesPath}`, {
402
+ cause: error,
403
+ });
289
404
  }
290
- parser.input = lexResult.tokens;
405
+ const lexed = RulesLexer.tokenize(content);
406
+ if (lexed.errors.length)
407
+ throw new Error(`Lexical errors in rules file:\n${lexed.errors.map((error) => `Lexical error at line ${error.line}, column ${error.column}: ${error.message}`).join("\n")}`);
408
+ parser.input = lexed.tokens;
291
409
  const cst = parser.ruleset();
292
- if (parser.errors.length > 0) {
293
- const errors = parser.errors
294
- .map((err) => `Syntax error at line ${err.token.startLine}, column ${err.token.startColumn}: ${err.message}`)
295
- .join("\n");
296
- logger.error({ errors: parser.errors, rulesDirectory }, "Syntax errors in rules file");
297
- throw new Error(`Syntax errors in rules file:\n${errors}`);
298
- }
299
- // Use the visitor to transform the CST to the final AST
410
+ if (parser.errors.length)
411
+ throw new Error(`Syntax errors in rules file:\n${parser.errors.map((error) => `Syntax error at line ${error.token.startLine}, column ${error.token.startColumn}: ${error.message}`).join("\n")}`);
300
412
  const result = visitor.visit(cst);
413
+ if (!isRuleset(result))
414
+ throw new Error("Invalid ruleset visitor result.");
301
415
  return { ...result, name: rulesDirectory };
302
416
  }
303
417
  //# sourceMappingURL=RulesDsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RulesDsl.js","sourceRoot":"","sources":["../../../src/core/rules/RulesDsl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAW,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAEL,mBAAmB,GAIpB,MAAM,sBAAsB,CAAC;AAS9B,SAAS,mBAAmB,CAC1B,MAAoB;IAEpB,OAAO,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;AACtD,CAAC;AAED,gBAAgB;AAChB,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3D,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AACxD,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACjE,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;AACtE,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;AACtE,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;AAChF,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,eAAe;CACzB,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,WAAW,CAAC;IACjC,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,kBAAkB;CAC5B,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,WAAW,CAAC;IAChC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,qBAAqB;CAC/B,CAAC,CAAC;AACH,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9D,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC1E,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AACjE,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AACvE,MAAM,YAAY,GAAG,WAAW,CAAC;IAC/B,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,iBAAiB;CAC3B,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,WAAW,CAAC;IAChC,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,SAAS;CACnB,CAAC,CAAC;AACH,MAAM,QAAQ,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,kBAAkB;CAC5B,CAAC,CAAC;AACH,MAAM,OAAO,GAAG,WAAW,CAAC;IAC1B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,YAAY;IACrB,KAAK,EAAE,KAAK,CAAC,OAAO;CACrB,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,WAAW,CAAC;IAC7B,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,KAAK,CAAC,OAAO;CACrB,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG;IAChB,UAAU;IACV,OAAO;IACP,GAAG;IACH,EAAE;IACF,OAAO;IACP,GAAG;IACH,OAAO;IACP,OAAO;IACP,UAAU;IACV,WAAW;IACX,cAAc;IACd,aAAa;IACb,IAAI;IACJ,UAAU;IACV,KAAK;IACL,OAAO;IACP,YAAY;IACZ,aAAa;IACb,QAAQ;CACT,CAAC;AACF,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE;IACtC,uDAAuD;IACvD,mBAAmB,EAAE,IAAI;CAC1B,CAAC,CAAC;AAEH,iBAAiB;AACjB,MAAM,WAAY,SAAQ,SAAS;IACjC;QACE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAEM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;QACzC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEK,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvB,IAAI,CAAC,EAAE,CAAC;YACN,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;SAC9C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEK,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;QACpD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjB,IAAI,CAAC,EAAE,CAAC;YACN,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACxC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;SAC/C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEK,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;QAClD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEK,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxC,IAAI,CAAC,EAAE,CAAC;YACN,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC/C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC/C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAClD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;YACnD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE;SACvD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEK,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;QACpD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEK,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;QACtD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEK,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;QACtD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEK,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC5D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEK,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC9D,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEK,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEK,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;AAEjC,kBAAkB;AAClB,MAAM,eAAgB,SAAQ,MAAM,CAAC,4BAA4B,EAAE;IACjE;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,GAAyB;QAC/B,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAE7D,CAAC;QACF,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QAEtC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;gBACzB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/C,MAAM,IAAI,KAAK,CACb,wBAAwB,UAAU,CAAC,IAAI,oDAAoD,CAC5F,CAAC;gBACJ,CAAC;gBACD,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBACD,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,GAIJ;QACC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,WAAW,CAAC;QACvD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAmB,CAAC;QAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACvD,IAAI,YAAY,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;QAC/C,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,OAAO,CAAC,MAAM,CACrB,CAAC,MAAM,EAAoB,EAAE,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAC3D;SACF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,GAGZ;QACC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,GAA2B;QACrC,OAAO,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,GAMN;QACC,6EAA6E;QAC7E,MAAM,iBAAiB,GACrB,GAAG,CAAC,aAAa;YACjB,GAAG,CAAC,aAAa;YACjB,GAAG,CAAC,gBAAgB;YACpB,GAAG,CAAC,iBAAiB;YACrB,GAAG,CAAC,oBAAoB,CAAC;QAE3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CACV,EAAE,OAAO,EAAE,GAAG,EAAE,EAChB,2DAA2D,CAC5D,CAAC;YACF,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACxC,oCAAoC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,GAA6B;QACxC,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,GAAyC;QACrD,MAAM,SAAS,GAAG,GAAG,CAAC,oBAAoB;YACxC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC;IAED,aAAa,CAAC,GAAyC;QACrD,MAAM,SAAS,GAAG,GAAG,CAAC,oBAAoB;YACxC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC;IAED,gBAAgB,CAAC,GAA6B;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;IACxD,CAAC;IAED,iBAAiB,CAAC,GAIjB;QACC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;IACzE,CAAC;IAED,oBAAoB,CAAC,GAAqC;QACxD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;IACtE,CAAC;IAED,oBAAoB,CAAC,GAA6B;QAGhD,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,EAAE,aAAa,EAAE,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;AAEtC,mCAAmC;AACnC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,cAAsB;IAC1D,MAAM,SAAS,GAAG,OAAO,CACvB,OAAO,CAAC,GAAG,EAAE,EACb,cAAc,EACd,kBAAkB,CACnB,CAAC;IACF,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACH,YAAY,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,sBAAsB,CAAC,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM;aAC5B,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,yBAAyB,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAC5E;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,CAAC,KAAK,CACV,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,EAC5C,8BAA8B,CAC/B,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAC7B,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;aACzB,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,wBAAwB,GAAG,CAAC,KAAK,CAAC,SAAS,YAAY,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,GAAG,CAAC,OAAO,EAAE,CACjG;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,CAAC,KAAK,CACV,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,EACzC,6BAA6B,CAC9B,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,wDAAwD;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IAC7C,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"RulesDsl.js","sourceRoot":"","sources":["../../../src/core/rules/RulesDsl.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { Ruleset } from "../../types/rules.js";
2
2
  export declare class RulesEngine {
3
- private ruleset;
3
+ private readonly ruleset;
4
4
  private constructor();
5
5
  static create(rulesDirectoryOrRuleset?: string | Ruleset): Promise<RulesEngine>;
6
6
  process(html: string): string;
7
- private validateRegions;
8
7
  private serializeRegions;
9
8
  private applyAction;
9
+ private rewriteTextNodes;
10
10
  }