@phoenix-wing/code-core 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +4 -0
  3. package/README.md +14 -0
  4. package/dist/index.d.ts +10 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +10 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/pnwCaaDialogHandoff.d.ts +17 -0
  9. package/dist/pnwCaaDialogHandoff.d.ts.map +1 -0
  10. package/dist/pnwCaaDialogHandoff.js +34 -0
  11. package/dist/pnwCaaDialogHandoff.js.map +1 -0
  12. package/dist/pnwCaaEnvironment.d.ts +17 -0
  13. package/dist/pnwCaaEnvironment.d.ts.map +1 -0
  14. package/dist/pnwCaaEnvironment.js +23 -0
  15. package/dist/pnwCaaEnvironment.js.map +1 -0
  16. package/dist/pnwCodeRenamePlan.d.ts +47 -0
  17. package/dist/pnwCodeRenamePlan.d.ts.map +1 -0
  18. package/dist/pnwCodeRenamePlan.js +105 -0
  19. package/dist/pnwCodeRenamePlan.js.map +1 -0
  20. package/dist/pnwFileResultTree.d.ts +25 -0
  21. package/dist/pnwFileResultTree.d.ts.map +1 -0
  22. package/dist/pnwFileResultTree.js +37 -0
  23. package/dist/pnwFileResultTree.js.map +1 -0
  24. package/dist/pnwReorderCpp.d.ts +7 -0
  25. package/dist/pnwReorderCpp.d.ts.map +1 -0
  26. package/dist/pnwReorderCpp.js +389 -0
  27. package/dist/pnwReorderCpp.js.map +1 -0
  28. package/dist/pnwReorderHeader.d.ts +21 -0
  29. package/dist/pnwReorderHeader.d.ts.map +1 -0
  30. package/dist/pnwReorderHeader.js +896 -0
  31. package/dist/pnwReorderHeader.js.map +1 -0
  32. package/dist/pnwUuid.d.ts +25 -0
  33. package/dist/pnwUuid.d.ts.map +1 -0
  34. package/dist/pnwUuid.js +140 -0
  35. package/dist/pnwUuid.js.map +1 -0
  36. package/dist/pnwUuidReplacementPlan.d.ts +57 -0
  37. package/dist/pnwUuidReplacementPlan.d.ts.map +1 -0
  38. package/dist/pnwUuidReplacementPlan.js +101 -0
  39. package/dist/pnwUuidReplacementPlan.js.map +1 -0
  40. package/dist/pnwWorkset.d.ts +20 -0
  41. package/dist/pnwWorkset.d.ts.map +1 -0
  42. package/dist/pnwWorkset.js +51 -0
  43. package/dist/pnwWorkset.js.map +1 -0
  44. package/package.json +50 -0
  45. package/src/fixtures/annotation_sep.cpp +27 -0
  46. package/src/fixtures/caa2_wizard_section.h +17 -0
  47. package/src/fixtures/clang_format_class_tail.h +23 -0
  48. package/src/fixtures/clang_format_doubled.h +16 -0
  49. package/src/fixtures/clang_format_nested_markers.h +24 -0
  50. package/src/fixtures/clang_format_off_on.h +18 -0
  51. package/src/fixtures/internal_calls.cpp +29 -0
  52. package/src/fixtures/kevin_wizard_section.h +23 -0
  53. package/src/fixtures/ktalarmclock.clang-format.yaml +57 -0
  54. package/src/fixtures/ktca_KTCAutoCodeFrm_KTCAutoCodeUI.m_src_KTCAutoDialog.cpp +242 -0
  55. package/src/fixtures/ktca_KTCAutoCodeFrm_PublicInterfaces_KTCAutoDialog.h +165 -0
  56. package/src/fixtures/ktca_KTCAutoCodeInterfaces_KTCAutoCodeItf.m_src_KTCAutoAttrAccess.cpp +423 -0
  57. package/src/fixtures/ktca_KTCAutoCodeInterfaces_KTCAutoCodeItf.m_src_KTCAutoBuildGSM.cpp +105 -0
  58. package/src/fixtures/ktca_KTCAutoCodeInterfaces_KTCAutoCodeItf.m_src_KTCAutoPartDoc.cpp +121 -0
  59. package/src/fixtures/ktca_KTCAutoCodeInterfaces_PublicInterfaces_KTCAutoAttrAccess.h +310 -0
  60. package/src/fixtures/ktca_KTCAutoCodeInterfaces_PublicInterfaces_KTCAutoBuildGSM.h +56 -0
  61. package/src/fixtures/ktca_KTCAutoCodeInterfaces_PublicInterfaces_KTCAutoCatalogParam.h +52 -0
  62. package/src/fixtures/ktca_KTCAutoCodeInterfaces_PublicInterfaces_KTCAutoGSM.h +91 -0
  63. package/src/fixtures/ktca_KTCAutoCodeInterfaces_PublicInterfaces_KTCAutoPartDoc.h +106 -0
  64. package/src/fixtures/pnx_bom_analysis_cmd_min.cpp +72 -0
  65. package/src/fixtures/pnx_bom_analysis_param_min.h +49 -0
  66. package/src/fixtures/pnx_bom_param_system_split.h +39 -0
  67. package/src/fixtures/pnx_caa2_widget_decl.h +19 -0
  68. package/src/fixtures/pragma_region.h +18 -0
  69. package/src/index.ts +78 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pnwReorderCpp.d.ts","sourceRoot":"","sources":["../src/pnwReorderCpp.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAoWF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAMrF"}
@@ -0,0 +1,389 @@
1
+ const DEFAULT_SEPARATOR = "//----------------------------------------\n";
2
+ const SEPARATOR_RE = /^\/\/-+\s*$/;
3
+ const ANNOTATION_SEPARATOR_RE = /^\/\/-{2,}\s*[A-Za-z].*-{2,}\s*$/;
4
+ function escapeRegExp(value) {
5
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
6
+ }
7
+ function normalizeSeparator(separator) {
8
+ const stripped = separator.replace(/[\r\n]+$/g, "").trim();
9
+ return stripped ? `${stripped}\n` : DEFAULT_SEPARATOR;
10
+ }
11
+ function stripOuterBlankLines(text) {
12
+ const lines = text.split(/(?<=\n)/);
13
+ while (lines.length && !lines[0].trim())
14
+ lines.shift();
15
+ while (lines.length && !lines[lines.length - 1].trim())
16
+ lines.pop();
17
+ if (!lines.length)
18
+ return "";
19
+ const output = lines.join("");
20
+ return output.endsWith("\n") ? output : `${output}\n`;
21
+ }
22
+ function cleanBlockText(text) {
23
+ let output = stripOuterBlankLines(text);
24
+ if (!output)
25
+ return "";
26
+ output = output.trimEnd().replace(/\}\s*(\/\/-+\s*)$/, "}\n");
27
+ output = output.replace(/^(?:\/\/-+\s*\n)+/, "");
28
+ output = output.trimEnd().replace(/(?:\/\/-+\s*\n)+$/, "");
29
+ output = output.replace(/^(?:\/\/-{2,}\s*[A-Za-z].*-{2,}\s*\n)+/, "");
30
+ return output ? `${output.replace(/\n*$/, "")}\n` : "";
31
+ }
32
+ function isCodePosition(text, target) {
33
+ let i = 0;
34
+ while (i < text.length && i < target) {
35
+ if (text[i] === "/" && text[i + 1] === "/") {
36
+ let end = i + 2;
37
+ while (end < text.length && text[end] !== "\r" && text[end] !== "\n")
38
+ end += 1;
39
+ if (target < end)
40
+ return false;
41
+ i = end;
42
+ continue;
43
+ }
44
+ if (text[i] === "/" && text[i + 1] === "*") {
45
+ let end = i + 2;
46
+ while (end + 1 < text.length && !(text[end] === "*" && text[end + 1] === "/"))
47
+ end += 1;
48
+ end = Math.min(end + 2, text.length);
49
+ if (target < end)
50
+ return false;
51
+ i = end;
52
+ continue;
53
+ }
54
+ if (text[i] === "\"" || text[i] === "'") {
55
+ const quote = text[i];
56
+ let end = i + 1;
57
+ while (end < text.length) {
58
+ if (text[end] === "\\")
59
+ end += 2;
60
+ else if (text[end] === quote) {
61
+ end += 1;
62
+ break;
63
+ }
64
+ else
65
+ end += 1;
66
+ }
67
+ if (target < end)
68
+ return false;
69
+ i = end;
70
+ continue;
71
+ }
72
+ i += 1;
73
+ }
74
+ return true;
75
+ }
76
+ function findClassName(text, fileStem) {
77
+ const counts = new Map();
78
+ const regex = /\b([A-Za-z_]\w*)::((?:~[A-Za-z_]\w*)|~?[A-Za-z_]\w*|operator\s*[^\s(]+)\s*[<(]/g;
79
+ let match;
80
+ while ((match = regex.exec(text))) {
81
+ const className = match[1];
82
+ if (/^[A-Z]/.test(className))
83
+ counts.set(className, (counts.get(className) || 0) + 1);
84
+ }
85
+ if (!counts.size)
86
+ return null;
87
+ if (counts.has(fileStem))
88
+ return fileStem;
89
+ return [...counts.entries()].sort((a, b) => b[1] - a[1])[0][0];
90
+ }
91
+ function isReturnTypeLine(line, className) {
92
+ const stripped = line.trim();
93
+ if (!stripped || SEPARATOR_RE.test(stripped))
94
+ return false;
95
+ if (stripped.startsWith("//") || stripped.startsWith("/*") || stripped.startsWith("#"))
96
+ return false;
97
+ if (/[};{]$/.test(stripped) || new RegExp(`\\b${escapeRegExp(className)}::`).test(stripped))
98
+ return false;
99
+ if (/[()]/.test(stripped))
100
+ return false;
101
+ return /^[\w:<>,\s*&]+(?:const|volatile|static|virtual|constexpr|inline|unsigned|signed|long|short|friend|explicit|mutable|\*)*\s*$/.test(stripped);
102
+ }
103
+ function includeReturnTypeLines(text, blockStart, previousEnd, className) {
104
+ let start = blockStart;
105
+ let pos = blockStart;
106
+ while (pos > previousEnd) {
107
+ let lineEnd = pos - 1;
108
+ while (lineEnd > previousEnd && (text[lineEnd] === "\r" || text[lineEnd] === "\n"))
109
+ lineEnd -= 1;
110
+ if (lineEnd <= previousEnd)
111
+ break;
112
+ const lineStart = text.lastIndexOf("\n", lineEnd - 1) + 1;
113
+ if (!isReturnTypeLine(text.slice(lineStart, lineEnd + 1), className))
114
+ break;
115
+ start = lineStart;
116
+ pos = lineStart;
117
+ }
118
+ return start;
119
+ }
120
+ function splitPreambleAndBody(text, className) {
121
+ const escaped = escapeRegExp(className);
122
+ const constructor = new RegExp(`^[ \\t]*(?:[\\w:<>,\\s*&]+\\s+)?\\b${escaped}::${escaped}\\s*\\(`, "m");
123
+ // Match the Python engine's safety boundary: files without a constructor
124
+ // are left untouched because their generated/Wizard regions may be ordered.
125
+ if (!constructor.test(text))
126
+ return { preamble: text, body: "" };
127
+ const memberName = `(?:~${escaped}|~?[A-Za-z_]\\w*|operator\\s*[^\\s(]+)`;
128
+ const returnType = `(?:[\\w:<>,~*&]+(?:[ \\t]+[\\w:<>,~*&]+)*[ \\t]+)?`;
129
+ const regex = new RegExp(`^[ \\t]*${returnType}\\b${escaped}::${memberName}\\s*[<(]`, "m");
130
+ const match = regex.exec(text);
131
+ if (!match)
132
+ return { preamble: text, body: "" };
133
+ let start = includeReturnTypeLines(text, match.index, 0, className);
134
+ const lineStart = text.lastIndexOf("\n", Math.max(0, start - 1)) + 1;
135
+ const previousLineEnd = lineStart - 1;
136
+ if (previousLineEnd > 0) {
137
+ const previousLineStart = text.lastIndexOf("\n", previousLineEnd - 1) + 1;
138
+ if (SEPARATOR_RE.test(text.slice(previousLineStart, previousLineEnd + 1).trim()))
139
+ start = previousLineStart;
140
+ }
141
+ return { preamble: text.slice(0, start), body: text.slice(start) };
142
+ }
143
+ function advancePastFunctionEnd(text, start) {
144
+ let i = start;
145
+ while (i < text.length && (text[i] === " " || text[i] === "\t"))
146
+ i += 1;
147
+ let gluedSeparator = "";
148
+ if (text[i] === "/" && text[i + 1] === "/") {
149
+ const separatorStart = i;
150
+ while (i < text.length && text[i] !== "\r" && text[i] !== "\n")
151
+ i += 1;
152
+ gluedSeparator = normalizeSeparator(text.slice(separatorStart, i));
153
+ }
154
+ while (i < text.length && (text[i] === "\r" || text[i] === "\n"))
155
+ i += 1;
156
+ return { end: i, gluedSeparator };
157
+ }
158
+ function findFunctionBodyEnd(text, implementationStart) {
159
+ const parenStart = text.indexOf("(", implementationStart);
160
+ if (parenStart < 0)
161
+ return { end: text.length, gluedSeparator: "" };
162
+ let paren = 1;
163
+ let i = parenStart + 1;
164
+ while (i < text.length && paren > 0) {
165
+ if (text[i] === "(")
166
+ paren += 1;
167
+ else if (text[i] === ")")
168
+ paren -= 1;
169
+ i += 1;
170
+ }
171
+ while (i < text.length) {
172
+ while (i < text.length && /[ \t\r\n]/.test(text[i]))
173
+ i += 1;
174
+ if (i >= text.length)
175
+ return { end: text.length, gluedSeparator: "" };
176
+ const ch = text[i];
177
+ if (ch === "{") {
178
+ let depth = 1;
179
+ i += 1;
180
+ while (i < text.length && depth > 0) {
181
+ if (text[i] === "{")
182
+ depth += 1;
183
+ else if (text[i] === "}")
184
+ depth -= 1;
185
+ i += 1;
186
+ }
187
+ return advancePastFunctionEnd(text, i);
188
+ }
189
+ if (ch === ";") {
190
+ i += 1;
191
+ while (i < text.length && text[i] !== "\r" && text[i] !== "\n")
192
+ i += 1;
193
+ return advancePastFunctionEnd(text, i);
194
+ }
195
+ if (ch === ":") {
196
+ i += 1;
197
+ let parenDepth = 0;
198
+ let braceDepth = 0;
199
+ while (i < text.length) {
200
+ while (i < text.length && /[ \t\r\n]/.test(text[i]))
201
+ i += 1;
202
+ if (i >= text.length)
203
+ return { end: text.length, gluedSeparator: "" };
204
+ const current = text[i];
205
+ if (current === "(") {
206
+ parenDepth += 1;
207
+ i += 1;
208
+ }
209
+ else if (current === ")") {
210
+ parenDepth = Math.max(0, parenDepth - 1);
211
+ i += 1;
212
+ }
213
+ else if (current === "{") {
214
+ if (parenDepth === 0 && braceDepth === 0) {
215
+ let previous = i - 1;
216
+ while (previous >= 0 && (text[previous] === " " || text[previous] === "\t"))
217
+ previous -= 1;
218
+ if (text[previous] === ")")
219
+ break;
220
+ if (previous >= 0 && (/[_=,]/.test(text[previous]) || /[A-Za-z0-9]/.test(text[previous]))) {
221
+ braceDepth += 1;
222
+ i += 1;
223
+ }
224
+ else
225
+ break;
226
+ }
227
+ else {
228
+ braceDepth += 1;
229
+ i += 1;
230
+ }
231
+ }
232
+ else if (current === "}") {
233
+ braceDepth = Math.max(0, braceDepth - 1);
234
+ i += 1;
235
+ }
236
+ else
237
+ i += 1;
238
+ }
239
+ continue;
240
+ }
241
+ if (/[A-Za-z_]/.test(ch)) {
242
+ while (i < text.length && /[A-Za-z0-9_:]/.test(text[i]))
243
+ i += 1;
244
+ continue;
245
+ }
246
+ i += 1;
247
+ }
248
+ return { end: text.length, gluedSeparator: "" };
249
+ }
250
+ function walkBackBlockStart(text, functionLineStart, previousEnd, className) {
251
+ let blockStart = functionLineStart;
252
+ let separator = "";
253
+ let pos = functionLineStart;
254
+ while (pos > previousEnd) {
255
+ let lineEnd = pos - 1;
256
+ while (lineEnd > previousEnd && (text[lineEnd] === "\r" || text[lineEnd] === "\n"))
257
+ lineEnd -= 1;
258
+ if (lineEnd <= previousEnd)
259
+ break;
260
+ let lineStart = text.lastIndexOf("\n", lineEnd - 1) + 1;
261
+ if (lineStart <= previousEnd && previousEnd > 0)
262
+ lineStart = previousEnd;
263
+ const line = text.slice(lineStart, lineEnd + 1);
264
+ const stripped = line.trim();
265
+ if (!stripped)
266
+ break;
267
+ const glued = stripped.match(/^}\s*(\/\/-+\s*)$/);
268
+ if (glued) {
269
+ separator = normalizeSeparator(glued[1]);
270
+ break;
271
+ }
272
+ if (SEPARATOR_RE.test(stripped)) {
273
+ separator = normalizeSeparator(stripped);
274
+ break;
275
+ }
276
+ if (stripped.endsWith("*/")) {
277
+ const commentStart = text.lastIndexOf("/*", lineStart);
278
+ if (commentStart >= previousEnd) {
279
+ blockStart = commentStart;
280
+ pos = commentStart;
281
+ continue;
282
+ }
283
+ break;
284
+ }
285
+ if (ANNOTATION_SEPARATOR_RE.test(stripped)) {
286
+ if (!separator)
287
+ separator = normalizeSeparator(stripped);
288
+ pos = lineStart;
289
+ continue;
290
+ }
291
+ if (stripped.startsWith("//")) {
292
+ blockStart = lineStart;
293
+ pos = lineStart;
294
+ continue;
295
+ }
296
+ if (stripped.startsWith("#"))
297
+ break;
298
+ break;
299
+ }
300
+ blockStart = includeReturnTypeLines(text, blockStart, previousEnd, className);
301
+ return { blockStart, separator };
302
+ }
303
+ function scanBlocks(body, className) {
304
+ const escaped = escapeRegExp(className);
305
+ const regex = new RegExp(`\\b${escaped}::((?:~${escaped})|~?[A-Za-z_]\\w*|operator\\s*[^\\s(]+)\\s*[<(]`, "g");
306
+ const blocks = [];
307
+ let previousEnd = 0;
308
+ let pendingGluedSeparator = "";
309
+ let match;
310
+ while ((match = regex.exec(body))) {
311
+ if (!isCodePosition(body, match.index) || match.index < previousEnd)
312
+ continue;
313
+ const implName = match[1].replace(/[<(]$/, "").trim();
314
+ const functionLineStart = body.lastIndexOf("\n", Math.max(0, match.index - 1)) + 1;
315
+ const walked = walkBackBlockStart(body, functionLineStart, previousEnd, className);
316
+ const separator = walked.separator || pendingGluedSeparator;
317
+ pendingGluedSeparator = "";
318
+ const found = findFunctionBodyEnd(body, match.index);
319
+ pendingGluedSeparator = found.gluedSeparator;
320
+ const text = cleanBlockText(body.slice(walked.blockStart, found.end));
321
+ if (!text.includes("{") && !text.includes("= delete") && !text.includes("= default")) {
322
+ previousEnd = found.end;
323
+ regex.lastIndex = Math.max(regex.lastIndex, found.end);
324
+ continue;
325
+ }
326
+ blocks.push({ implName, text, separator });
327
+ previousEnd = found.end;
328
+ regex.lastIndex = Math.max(regex.lastIndex, found.end);
329
+ }
330
+ return blocks;
331
+ }
332
+ function classifySpecial(className, block) {
333
+ const name = block.implName.replace(/\s+/g, "");
334
+ const flat = block.text.replace(/\s+/g, " ");
335
+ if (name.startsWith("~") || name === `~${className}`)
336
+ return 2;
337
+ if (name.startsWith("operator")) {
338
+ if (name.startsWith("operator="))
339
+ return /operator\s*=\s*\([^)]*&&/.test(flat) ? 6 : 5;
340
+ return 7;
341
+ }
342
+ if (name === className) {
343
+ const escaped = escapeRegExp(className);
344
+ if (new RegExp(`\\b${escaped}\\s*\\(\\s*const\\s+${escaped}\\s*&`).test(flat))
345
+ return 3;
346
+ if (new RegExp(`\\b${escaped}\\s*\\(\\s*${escaped}\\s*&&`).test(flat))
347
+ return 4;
348
+ if (new RegExp(`\\b${escaped}\\s*\\(\\s*\\)`).test(flat))
349
+ return 0;
350
+ return 1;
351
+ }
352
+ return null;
353
+ }
354
+ function compareNames(left, right) {
355
+ return left.implName.localeCompare(right.implName, "en", { sensitivity: "base" });
356
+ }
357
+ function rebuildBlocks(blocks, className) {
358
+ const special = blocks.filter((block) => classifySpecial(className, block) != null);
359
+ const members = blocks.filter((block) => classifySpecial(className, block) == null);
360
+ special.sort((a, b) => classifySpecial(className, a) - classifySpecial(className, b) || compareNames(a, b));
361
+ members.sort(compareNames);
362
+ let output = "";
363
+ for (const block of [...special, ...members]) {
364
+ const text = cleanBlockText(block.text);
365
+ if (text)
366
+ output += normalizeSeparator(block.separator) + text;
367
+ }
368
+ return output;
369
+ }
370
+ function reorderNormalizedCpp(text, fileStem) {
371
+ const className = findClassName(text, fileStem);
372
+ if (!className)
373
+ return { text };
374
+ const split = splitPreambleAndBody(text, className);
375
+ if (!split.body)
376
+ return { text, className };
377
+ const blocks = scanBlocks(split.body, className);
378
+ if (!blocks.length)
379
+ return { text, className };
380
+ return { text: split.preamble + rebuildBlocks(blocks, className), className };
381
+ }
382
+ export function pnwReorderCppText(text, fileStem) {
383
+ const eol = text.includes("\r\n") ? "\r\n" : text.includes("\r") ? "\r" : "\n";
384
+ const normalized = text.replace(/\r\n|\r/g, "\n");
385
+ const result = reorderNormalizedCpp(normalized, fileStem);
386
+ const output = eol === "\n" ? result.text : result.text.replace(/\n/g, eol);
387
+ return { text: output, changed: output !== text, className: result.className };
388
+ }
389
+ //# sourceMappingURL=pnwReorderCpp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pnwReorderCpp.js","sourceRoot":"","sources":["../src/pnwReorderCpp.ts"],"names":[],"mappings":"AAYA,MAAM,iBAAiB,GAAG,8CAA8C,CAAC;AACzE,MAAM,YAAY,GAAG,aAAa,CAAC;AACnC,MAAM,uBAAuB,GAAG,kCAAkC,CAAC;AAEnE,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC;AACxD,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACvD,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACpE,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,MAAc;IAClD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3C,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI;gBAAE,GAAG,IAAI,CAAC,CAAC;YAC/E,IAAI,MAAM,GAAG,GAAG;gBAAE,OAAO,KAAK,CAAC;YAC/B,CAAC,GAAG,GAAG,CAAC;YACR,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3C,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;gBAAE,GAAG,IAAI,CAAC,CAAC;YACxF,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,MAAM,GAAG,GAAG;gBAAE,OAAO,KAAK,CAAC;YAC/B,CAAC,GAAG,GAAG,CAAC;YACR,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI;oBAAE,GAAG,IAAI,CAAC,CAAC;qBAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC7B,GAAG,IAAI,CAAC,CAAC;oBACT,MAAM;gBACR,CAAC;;oBAAM,GAAG,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,MAAM,GAAG,GAAG;gBAAE,OAAO,KAAK,CAAC;YAC/B,CAAC,GAAG,GAAG,CAAC;YACR,SAAS;QACX,CAAC;QACD,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,QAAgB;IACnD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,KAAK,GAAG,iFAAiF,CAAC;IAChG,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,SAAiB;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACrG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1G,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,6HAA6H,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY,EAAE,UAAkB,EAAE,WAAmB,EAAE,SAAiB;IACtG,IAAI,KAAK,GAAG,UAAU,CAAC;IACvB,IAAI,GAAG,GAAG,UAAU,CAAC;IACrB,OAAO,GAAG,GAAG,WAAW,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC;QACtB,OAAO,OAAO,GAAG,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC;QACjG,IAAI,OAAO,IAAI,WAAW;YAAE,MAAM;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC;YAAE,MAAM;QAC5E,KAAK,GAAG,SAAS,CAAC;QAClB,GAAG,GAAG,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,SAAiB;IAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,IAAI,MAAM,CAC5B,sCAAsC,OAAO,KAAK,OAAO,SAAS,EAClE,GAAG,CACJ,CAAC;IACF,yEAAyE;IACzE,4EAA4E;IAC5E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAEjE,MAAM,UAAU,GAAG,OAAO,OAAO,wCAAwC,CAAC;IAC1E,MAAM,UAAU,GAAG,oDAAoD,CAAC;IACxE,MAAM,KAAK,GAAG,IAAI,MAAM,CACtB,WAAW,UAAU,MAAM,OAAO,KAAK,UAAU,UAAU,EAC3D,GAAG,CACJ,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAChD,IAAI,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,eAAe,GAAG,SAAS,GAAG,CAAC,CAAC;IACtC,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1E,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAAE,KAAK,GAAG,iBAAiB,CAAC;IAC9G,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY,EAAE,KAAa;IACzD,IAAI,CAAC,GAAG,KAAK,CAAC;IACd,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QAAE,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAC3C,MAAM,cAAc,GAAG,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,CAAC,IAAI,CAAC,CAAC;QACvE,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QAAE,CAAC,IAAI,CAAC,CAAC;IACzE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,mBAA2B;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAC1D,IAAI,UAAU,GAAG,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IACpE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAC;aAC3B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAC;QACrC,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QACtE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,CAAC,IAAI,CAAC,CAAC;YACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;oBAAE,KAAK,IAAI,CAAC,CAAC;qBAC3B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;oBAAE,KAAK,IAAI,CAAC,CAAC;gBACrC,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;YACD,OAAO,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,CAAC,IAAI,CAAC,CAAC;YACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;gBAAE,CAAC,IAAI,CAAC,CAAC;YACvE,OAAO,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,CAAC,IAAI,CAAC,CAAC;YACP,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAAE,CAAC,IAAI,CAAC,CAAC;gBAC5D,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;oBAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;gBACtE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;oBACpB,UAAU,IAAI,CAAC,CAAC;oBAChB,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;qBAAM,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;oBAC3B,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;oBACzC,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;qBAAM,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;oBAC3B,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;wBACzC,IAAI,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;wBACrB,OAAO,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;4BAAE,QAAQ,IAAI,CAAC,CAAC;wBAC3F,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG;4BAAE,MAAM;wBAClC,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC1F,UAAU,IAAI,CAAC,CAAC;4BAChB,CAAC,IAAI,CAAC,CAAC;wBACT,CAAC;;4BAAM,MAAM;oBACf,CAAC;yBAAM,CAAC;wBACN,UAAU,IAAI,CAAC,CAAC;wBAChB,CAAC,IAAI,CAAC,CAAC;oBACT,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;oBAC3B,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;oBACzC,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;;oBAAM,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,CAAC,IAAI,CAAC,CAAC;YAChE,SAAS;QACX,CAAC;QACD,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAY,EACZ,iBAAyB,EACzB,WAAmB,EACnB,SAAiB;IAEjB,IAAI,UAAU,GAAG,iBAAiB,CAAC;IACnC,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,GAAG,GAAG,iBAAiB,CAAC;IAC5B,OAAO,GAAG,GAAG,WAAW,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC;QACtB,OAAO,OAAO,GAAG,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC;QACjG,IAAI,OAAO,IAAI,WAAW;YAAE,MAAM;QAClC,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,GAAG,CAAC;YAAE,SAAS,GAAG,WAAW,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ;YAAE,MAAM;QAErB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAClD,IAAI,KAAK,EAAE,CAAC;YACV,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM;QACR,CAAC;QACD,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM;QACR,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACvD,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;gBAChC,UAAU,GAAG,YAAY,CAAC;gBAC1B,GAAG,GAAG,YAAY,CAAC;gBACnB,SAAS;YACX,CAAC;YACD,MAAM;QACR,CAAC;QACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,SAAS;gBAAE,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACzD,GAAG,GAAG,SAAS,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,UAAU,GAAG,SAAS,CAAC;YACvB,GAAG,GAAG,SAAS,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM;QACpC,MAAM;IACR,CAAC;IACD,UAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,SAAiB;IACjD,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,OAAO,UAAU,OAAO,iDAAiD,EAAE,GAAG,CAAC,CAAC;IAC/G,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,qBAAqB,GAAG,EAAE,CAAC;IAC/B,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,WAAW;YAAE,SAAS;QAC9E,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,qBAAqB,CAAC;QAC5D,qBAAqB,GAAG,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,qBAAqB,GAAG,KAAK,CAAC,cAAc,CAAC;QAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACrF,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC;YACxB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3C,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC;QACxB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB,EAAE,KAAe;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,SAAS,EAAE;QAAE,OAAO,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,IAAI,MAAM,CAAC,MAAM,OAAO,uBAAuB,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACxF,IAAI,IAAI,MAAM,CAAC,MAAM,OAAO,cAAc,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QAChF,IAAI,IAAI,MAAM,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACnE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,IAAc,EAAE,KAAe;IACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,aAAa,CAAC,MAAkB,EAAE,SAAiB;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAE,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC,CAAE,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9G,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,IAAI;YAAE,MAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,QAAgB;IAC1D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC/C,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAgB;IAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;AACjF,CAAC"}
@@ -0,0 +1,21 @@
1
+ type KevinSystemCodeMode = "merge_strip" | "keep_markers" | "off";
2
+ export type PnwHeaderReorderOptions = {
3
+ sortMembers?: boolean;
4
+ kevinSystemCodeMode?: KevinSystemCodeMode;
5
+ };
6
+ export type PnwHeaderReorderResult = {
7
+ text: string;
8
+ changed: boolean;
9
+ warnings: string[];
10
+ };
11
+ export type PnwLockedRegion = {
12
+ start: number;
13
+ end: number;
14
+ content: string;
15
+ ruleId: string;
16
+ };
17
+ export declare function pnwFindLockedRegions(text: string): PnwLockedRegion[];
18
+ export declare function pnwExtractLockedRegionContents(text: string): string[];
19
+ export declare function pnwReorderHeaderText(text: string, options?: PnwHeaderReorderOptions): PnwHeaderReorderResult;
20
+ export {};
21
+ //# sourceMappingURL=pnwReorderHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pnwReorderHeader.d.ts","sourceRoot":"","sources":["../src/pnwReorderHeader.ts"],"names":[],"mappings":"AAAA,KAAK,mBAAmB,GAAG,aAAa,GAAG,cAAc,GAAG,KAAK,CAAC;AAElE,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAQF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAkFF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CAuCpE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAErE;AAquBD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,sBAAsB,CAShH"}