@polintpro/proposit-core 0.1.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 (58) hide show
  1. package/README.md +521 -0
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +3 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/lib/core/ArgumentEngine.d.ts +41 -0
  7. package/dist/lib/core/ArgumentEngine.d.ts.map +1 -0
  8. package/dist/lib/core/ArgumentEngine.js +408 -0
  9. package/dist/lib/core/ArgumentEngine.js.map +1 -0
  10. package/dist/lib/core/ExpressionManager.d.ts +19 -0
  11. package/dist/lib/core/ExpressionManager.d.ts.map +1 -0
  12. package/dist/lib/core/ExpressionManager.js +352 -0
  13. package/dist/lib/core/ExpressionManager.js.map +1 -0
  14. package/dist/lib/core/PremiseManager.d.ts +110 -0
  15. package/dist/lib/core/PremiseManager.d.ts.map +1 -0
  16. package/dist/lib/core/PremiseManager.js +541 -0
  17. package/dist/lib/core/PremiseManager.js.map +1 -0
  18. package/dist/lib/core/VariableManager.d.ts +17 -0
  19. package/dist/lib/core/VariableManager.d.ts.map +1 -0
  20. package/dist/lib/core/VariableManager.js +40 -0
  21. package/dist/lib/core/VariableManager.js.map +1 -0
  22. package/dist/lib/core/evaluation/shared.d.ts +6 -0
  23. package/dist/lib/core/evaluation/shared.d.ts.map +1 -0
  24. package/dist/lib/core/evaluation/shared.js +23 -0
  25. package/dist/lib/core/evaluation/shared.js.map +1 -0
  26. package/dist/lib/index.d.ts +4 -0
  27. package/dist/lib/index.d.ts.map +1 -0
  28. package/dist/lib/index.js +4 -0
  29. package/dist/lib/index.js.map +1 -0
  30. package/dist/lib/schemata/argument.d.ts +9 -0
  31. package/dist/lib/schemata/argument.d.ts.map +1 -0
  32. package/dist/lib/schemata/argument.js +9 -0
  33. package/dist/lib/schemata/argument.js.map +1 -0
  34. package/dist/lib/schemata/index.d.ts +4 -0
  35. package/dist/lib/schemata/index.d.ts.map +1 -0
  36. package/dist/lib/schemata/index.js +4 -0
  37. package/dist/lib/schemata/index.js.map +1 -0
  38. package/dist/lib/schemata/propositional.d.ts +107 -0
  39. package/dist/lib/schemata/propositional.d.ts.map +1 -0
  40. package/dist/lib/schemata/propositional.js +77 -0
  41. package/dist/lib/schemata/propositional.js.map +1 -0
  42. package/dist/lib/schemata/shared.d.ts +4 -0
  43. package/dist/lib/schemata/shared.d.ts.map +1 -0
  44. package/dist/lib/schemata/shared.js +6 -0
  45. package/dist/lib/schemata/shared.js.map +1 -0
  46. package/dist/lib/types/evaluation.d.ts +108 -0
  47. package/dist/lib/types/evaluation.d.ts.map +1 -0
  48. package/dist/lib/types/evaluation.js +2 -0
  49. package/dist/lib/types/evaluation.js.map +1 -0
  50. package/dist/lib/utils/collections.d.ts +6 -0
  51. package/dist/lib/utils/collections.d.ts.map +1 -0
  52. package/dist/lib/utils/collections.js +18 -0
  53. package/dist/lib/utils/collections.js.map +1 -0
  54. package/dist/lib/utils.d.ts +10 -0
  55. package/dist/lib/utils.d.ts.map +1 -0
  56. package/dist/lib/utils.js +31 -0
  57. package/dist/lib/utils.js.map +1 -0
  58. package/package.json +46 -0
@@ -0,0 +1,408 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { getOrCreate, sortedUnique } from "../utils/collections";
3
+ import { makeErrorIssue, makeValidationResult } from "./evaluation/shared";
4
+ import { PremiseManager } from "./PremiseManager";
5
+ export class ArgumentEngine {
6
+ argument;
7
+ premises;
8
+ supportingPremiseIds;
9
+ conclusionPremiseId;
10
+ constructor(argument) {
11
+ this.argument = { ...argument };
12
+ this.premises = new Map();
13
+ this.supportingPremiseIds = new Set();
14
+ this.conclusionPremiseId = undefined;
15
+ }
16
+ getArgument() {
17
+ return { ...this.argument };
18
+ }
19
+ createPremise(title) {
20
+ const id = randomUUID();
21
+ const pm = new PremiseManager(id, this.argument, title);
22
+ this.premises.set(id, pm);
23
+ return pm;
24
+ }
25
+ removePremise(premiseId) {
26
+ this.premises.delete(premiseId);
27
+ this.supportingPremiseIds.delete(premiseId);
28
+ if (this.conclusionPremiseId === premiseId) {
29
+ this.conclusionPremiseId = undefined;
30
+ }
31
+ }
32
+ getPremise(premiseId) {
33
+ return this.premises.get(premiseId);
34
+ }
35
+ hasPremise(premiseId) {
36
+ return this.premises.has(premiseId);
37
+ }
38
+ listPremiseIds() {
39
+ return Array.from(this.premises.keys()).sort((a, b) => a.localeCompare(b));
40
+ }
41
+ listPremises() {
42
+ return this.listPremiseIds()
43
+ .map((id) => this.premises.get(id))
44
+ .filter((pm) => pm !== undefined);
45
+ }
46
+ getRoleState() {
47
+ return {
48
+ supportingPremiseIds: sortedUnique(this.supportingPremiseIds),
49
+ conclusionPremiseId: this.conclusionPremiseId,
50
+ };
51
+ }
52
+ setConclusionPremise(premiseId) {
53
+ if (!this.hasPremise(premiseId)) {
54
+ throw new Error(`Premise "${premiseId}" does not exist.`);
55
+ }
56
+ if (this.supportingPremiseIds.has(premiseId)) {
57
+ throw new Error(`Premise "${premiseId}" is already a supporting premise and cannot also be the conclusion.`);
58
+ }
59
+ this.conclusionPremiseId = premiseId;
60
+ }
61
+ clearConclusionPremise() {
62
+ this.conclusionPremiseId = undefined;
63
+ }
64
+ getConclusionPremise() {
65
+ if (this.conclusionPremiseId === undefined) {
66
+ return undefined;
67
+ }
68
+ return this.premises.get(this.conclusionPremiseId);
69
+ }
70
+ addSupportingPremise(premiseId) {
71
+ if (!this.hasPremise(premiseId)) {
72
+ throw new Error(`Premise "${premiseId}" does not exist.`);
73
+ }
74
+ if (this.conclusionPremiseId === premiseId) {
75
+ throw new Error(`Premise "${premiseId}" is the conclusion and cannot also be supporting.`);
76
+ }
77
+ this.supportingPremiseIds.add(premiseId);
78
+ }
79
+ removeSupportingPremise(premiseId) {
80
+ this.supportingPremiseIds.delete(premiseId);
81
+ }
82
+ listSupportingPremises() {
83
+ return sortedUnique(this.supportingPremiseIds)
84
+ .map((id) => this.premises.get(id))
85
+ .filter((pm) => pm !== undefined);
86
+ }
87
+ toData() {
88
+ return {
89
+ argument: { ...this.argument },
90
+ premises: this.listPremises().map((pm) => pm.toData()),
91
+ roles: this.getRoleState(),
92
+ };
93
+ }
94
+ exportState() {
95
+ return this.toData();
96
+ }
97
+ collectReferencedVariables() {
98
+ const byIdTmp = new Map();
99
+ const bySymbolTmp = new Map();
100
+ for (const premise of this.listPremises()) {
101
+ const premiseId = premise.getId();
102
+ const varsById = new Map(premise.getVariables().map((v) => [v.id, v]));
103
+ for (const expr of premise.getExpressions()) {
104
+ if (expr.type !== "variable")
105
+ continue;
106
+ const variable = varsById.get(expr.variableId);
107
+ if (!variable)
108
+ continue;
109
+ const byIdEntry = getOrCreate(byIdTmp, variable.id, () => ({
110
+ symbols: new Set(),
111
+ premiseIds: new Set(),
112
+ }));
113
+ byIdEntry.symbols.add(variable.symbol);
114
+ byIdEntry.premiseIds.add(premiseId);
115
+ const bySymbolEntry = getOrCreate(bySymbolTmp, variable.symbol, () => ({
116
+ variableIds: new Set(),
117
+ premiseIds: new Set(),
118
+ }));
119
+ bySymbolEntry.variableIds.add(variable.id);
120
+ bySymbolEntry.premiseIds.add(premiseId);
121
+ }
122
+ }
123
+ const byId = {};
124
+ for (const [variableId, entry] of Array.from(byIdTmp.entries()).sort((a, b) => a[0].localeCompare(b[0]))) {
125
+ byId[variableId] = {
126
+ symbol: sortedUnique(entry.symbols)[0] ?? "",
127
+ premiseIds: sortedUnique(entry.premiseIds),
128
+ };
129
+ }
130
+ const bySymbol = {};
131
+ for (const [symbol, entry] of Array.from(bySymbolTmp.entries()).sort((a, b) => a[0].localeCompare(b[0]))) {
132
+ bySymbol[symbol] = {
133
+ variableIds: sortedUnique(entry.variableIds),
134
+ premiseIds: sortedUnique(entry.premiseIds),
135
+ };
136
+ }
137
+ return {
138
+ variableIds: sortedUnique(byIdTmp.keys()),
139
+ byId,
140
+ bySymbol,
141
+ };
142
+ }
143
+ validateEvaluability() {
144
+ const issues = [];
145
+ if (this.conclusionPremiseId === undefined) {
146
+ issues.push(makeErrorIssue({
147
+ code: "ARGUMENT_NO_CONCLUSION",
148
+ message: "Argument has no designated conclusion premise.",
149
+ }));
150
+ }
151
+ else if (!this.premises.has(this.conclusionPremiseId)) {
152
+ issues.push(makeErrorIssue({
153
+ code: "ARGUMENT_CONCLUSION_NOT_FOUND",
154
+ message: `Conclusion premise "${this.conclusionPremiseId}" does not exist.`,
155
+ premiseId: this.conclusionPremiseId,
156
+ }));
157
+ }
158
+ for (const premiseId of sortedUnique(this.supportingPremiseIds)) {
159
+ if (!this.premises.has(premiseId)) {
160
+ issues.push(makeErrorIssue({
161
+ code: "ARGUMENT_SUPPORTING_PREMISE_NOT_FOUND",
162
+ message: `Supporting premise "${premiseId}" does not exist.`,
163
+ premiseId,
164
+ }));
165
+ }
166
+ }
167
+ if (this.conclusionPremiseId !== undefined &&
168
+ this.supportingPremiseIds.has(this.conclusionPremiseId)) {
169
+ issues.push(makeErrorIssue({
170
+ code: "ARGUMENT_ROLE_OVERLAP",
171
+ message: `Premise "${this.conclusionPremiseId}" cannot be both supporting and conclusion.`,
172
+ premiseId: this.conclusionPremiseId,
173
+ }));
174
+ }
175
+ const idToSymbols = new Map();
176
+ const symbolToIds = new Map();
177
+ for (const premise of this.listPremises()) {
178
+ const varById = new Map(premise.getVariables().map((v) => [v.id, v]));
179
+ for (const expr of premise.getExpressions()) {
180
+ if (expr.type !== "variable")
181
+ continue;
182
+ const variable = varById.get(expr.variableId);
183
+ if (!variable)
184
+ continue;
185
+ getOrCreate(idToSymbols, variable.id, () => new Set()).add(variable.symbol);
186
+ getOrCreate(symbolToIds, variable.symbol, () => new Set()).add(variable.id);
187
+ }
188
+ }
189
+ for (const [variableId, symbols] of idToSymbols) {
190
+ if (symbols.size > 1) {
191
+ issues.push(makeErrorIssue({
192
+ code: "ARGUMENT_VARIABLE_ID_SYMBOL_MISMATCH",
193
+ message: `Variable ID "${variableId}" is used with multiple symbols: ${sortedUnique(symbols).join(", ")}.`,
194
+ variableId,
195
+ }));
196
+ }
197
+ }
198
+ for (const [symbol, ids] of symbolToIds) {
199
+ if (ids.size > 1) {
200
+ issues.push(makeErrorIssue({
201
+ code: "ARGUMENT_VARIABLE_SYMBOL_AMBIGUOUS",
202
+ message: `Variable symbol "${symbol}" is used with multiple IDs: ${sortedUnique(ids).join(", ")}.`,
203
+ }));
204
+ }
205
+ }
206
+ for (const premise of this.listPremises()) {
207
+ const premiseValidation = premise.validateEvaluability();
208
+ issues.push(...premiseValidation.issues);
209
+ }
210
+ return makeValidationResult(issues);
211
+ }
212
+ evaluate(assignment, options) {
213
+ const validateFirst = options?.validateFirst ?? true;
214
+ if (validateFirst) {
215
+ const validation = this.validateEvaluability();
216
+ if (!validation.ok) {
217
+ return {
218
+ ok: false,
219
+ validation,
220
+ };
221
+ }
222
+ }
223
+ const conclusion = this.getConclusionPremise();
224
+ if (!conclusion) {
225
+ return {
226
+ ok: false,
227
+ validation: makeValidationResult([
228
+ makeErrorIssue({
229
+ code: "ARGUMENT_NO_CONCLUSION",
230
+ message: "Argument has no designated conclusion premise.",
231
+ }),
232
+ ]),
233
+ };
234
+ }
235
+ const supportingPremises = this.listSupportingPremises();
236
+ const roleIds = new Set([
237
+ conclusion.getId(),
238
+ ...supportingPremises.map((pm) => pm.getId()),
239
+ ]);
240
+ const constraintPremises = this.listPremises().filter((pm) => !roleIds.has(pm.getId()) && pm.getPremiseType() === "constraint");
241
+ const allRelevantPremises = [
242
+ conclusion,
243
+ ...supportingPremises,
244
+ ...constraintPremises,
245
+ ];
246
+ const referencedVariableIds = sortedUnique(allRelevantPremises.flatMap((pm) => pm
247
+ .getExpressions()
248
+ .filter((expr) => expr.type === "variable")
249
+ .map((expr) => expr.variableId)));
250
+ try {
251
+ const evalOpts = {
252
+ strictUnknownKeys: options?.strictUnknownAssignmentKeys ?? false,
253
+ };
254
+ const conclusionEvaluation = conclusion.evaluate(assignment, evalOpts);
255
+ const supportingEvaluations = supportingPremises.map((pm) => pm.evaluate(assignment, evalOpts));
256
+ const constraintEvaluations = constraintPremises.map((pm) => pm.evaluate(assignment, evalOpts));
257
+ const isAdmissibleAssignment = constraintEvaluations.every((result) => result.rootValue === true);
258
+ const allSupportingPremisesTrue = supportingEvaluations.every((result) => result.rootValue === true);
259
+ const conclusionTrue = conclusionEvaluation.rootValue === true;
260
+ const isCounterexample = isAdmissibleAssignment &&
261
+ allSupportingPremisesTrue &&
262
+ !conclusionTrue;
263
+ const includeExpressionValues = options?.includeExpressionValues ?? true;
264
+ const includeDiagnostics = options?.includeDiagnostics ?? true;
265
+ const strip = (result) => ({
266
+ ...result,
267
+ expressionValues: includeExpressionValues
268
+ ? result.expressionValues
269
+ : {},
270
+ inferenceDiagnostic: includeDiagnostics
271
+ ? result.inferenceDiagnostic
272
+ : undefined,
273
+ });
274
+ return {
275
+ ok: true,
276
+ assignment: { ...assignment },
277
+ referencedVariableIds,
278
+ conclusion: strip(conclusionEvaluation),
279
+ supportingPremises: supportingEvaluations.map(strip),
280
+ constraintPremises: constraintEvaluations.map(strip),
281
+ isAdmissibleAssignment,
282
+ allSupportingPremisesTrue,
283
+ conclusionTrue,
284
+ isCounterexample,
285
+ preservesTruthUnderAssignment: !isCounterexample,
286
+ };
287
+ }
288
+ catch (error) {
289
+ return {
290
+ ok: false,
291
+ validation: makeValidationResult([
292
+ makeErrorIssue({
293
+ code: "ASSIGNMENT_MISSING_VARIABLE",
294
+ message: error instanceof Error
295
+ ? error.message
296
+ : "Argument evaluation failed.",
297
+ }),
298
+ ]),
299
+ };
300
+ }
301
+ }
302
+ checkValidity(options) {
303
+ const validateFirst = options?.validateFirst ?? true;
304
+ if (validateFirst) {
305
+ const validation = this.validateEvaluability();
306
+ if (!validation.ok) {
307
+ return {
308
+ ok: false,
309
+ validation,
310
+ };
311
+ }
312
+ }
313
+ const conclusion = this.getConclusionPremise();
314
+ if (!conclusion) {
315
+ return {
316
+ ok: false,
317
+ validation: makeValidationResult([
318
+ makeErrorIssue({
319
+ code: "ARGUMENT_NO_CONCLUSION",
320
+ message: "Argument has no designated conclusion premise.",
321
+ }),
322
+ ]),
323
+ };
324
+ }
325
+ const supportingPremises = this.listSupportingPremises();
326
+ const roleIds = new Set([
327
+ conclusion.getId(),
328
+ ...supportingPremises.map((pm) => pm.getId()),
329
+ ]);
330
+ const constraintPremises = this.listPremises().filter((pm) => !roleIds.has(pm.getId()) && pm.getPremiseType() === "constraint");
331
+ const checkedVariableIds = sortedUnique([conclusion, ...supportingPremises, ...constraintPremises].flatMap((pm) => pm
332
+ .getExpressions()
333
+ .filter((expr) => expr.type === "variable")
334
+ .map((expr) => expr.variableId)));
335
+ if (options?.maxVariables !== undefined &&
336
+ checkedVariableIds.length > options.maxVariables) {
337
+ return {
338
+ ok: false,
339
+ validation: makeValidationResult([
340
+ makeErrorIssue({
341
+ code: "ASSIGNMENT_UNKNOWN_VARIABLE",
342
+ message: `Validity check requires ${checkedVariableIds.length} variables, exceeding limit ${options.maxVariables}.`,
343
+ }),
344
+ ]),
345
+ };
346
+ }
347
+ const mode = options?.mode ?? "firstCounterexample";
348
+ const maxAssignmentsChecked = options?.maxAssignmentsChecked;
349
+ const counterexamples = [];
350
+ let numAssignmentsChecked = 0;
351
+ let numAdmissibleAssignments = 0;
352
+ let truncated = false;
353
+ const totalAssignments = 2 ** checkedVariableIds.length;
354
+ for (let mask = 0; mask < totalAssignments; mask++) {
355
+ if (maxAssignmentsChecked !== undefined &&
356
+ numAssignmentsChecked >= maxAssignmentsChecked) {
357
+ truncated = true;
358
+ break;
359
+ }
360
+ const assignment = {};
361
+ for (let i = 0; i < checkedVariableIds.length; i++) {
362
+ assignment[checkedVariableIds[i]] = Boolean(mask & (1 << i));
363
+ }
364
+ const result = this.evaluate(assignment, {
365
+ validateFirst: false,
366
+ includeExpressionValues: options?.includeCounterexampleEvaluations ?? false,
367
+ includeDiagnostics: options?.includeCounterexampleEvaluations ?? false,
368
+ });
369
+ if (!result.ok) {
370
+ return {
371
+ ok: false,
372
+ validation: result.validation,
373
+ };
374
+ }
375
+ numAssignmentsChecked += 1;
376
+ if (result.isAdmissibleAssignment) {
377
+ numAdmissibleAssignments += 1;
378
+ }
379
+ if (result.isCounterexample) {
380
+ counterexamples.push({
381
+ assignment,
382
+ result,
383
+ });
384
+ if (mode === "firstCounterexample") {
385
+ break;
386
+ }
387
+ }
388
+ }
389
+ const foundCounterexample = counterexamples.length > 0;
390
+ const fullyChecked = !truncated &&
391
+ (mode === "exhaustive" ||
392
+ (mode === "firstCounterexample" && !foundCounterexample));
393
+ return {
394
+ ok: true,
395
+ isValid: foundCounterexample
396
+ ? false
397
+ : fullyChecked
398
+ ? true
399
+ : undefined,
400
+ checkedVariableIds,
401
+ numAssignmentsChecked,
402
+ numAdmissibleAssignments,
403
+ counterexamples,
404
+ truncated,
405
+ };
406
+ }
407
+ }
408
+ //# sourceMappingURL=ArgumentEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArgumentEngine.js","sourceRoot":"","sources":["../../../src/lib/core/ArgumentEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAexC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,OAAO,cAAc;IACf,QAAQ,CAAW;IACnB,QAAQ,CAA6B;IACrC,oBAAoB,CAAa;IACjC,mBAAmB,CAAoB;IAE/C,YAAY,QAAmB;QAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAA;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAA;QACrC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAA;IACxC,CAAC;IAEM,WAAW;QACd,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;IAC/B,CAAC;IAEM,aAAa,CAAC,KAAc;QAC/B,MAAM,EAAE,GAAG,UAAU,EAAE,CAAA;QACvB,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QACzB,OAAO,EAAE,CAAA;IACb,CAAC;IAEM,aAAa,CAAC,SAAiB;QAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC/B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC3C,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAA;QACxC,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACvC,CAAC;IAEM,UAAU,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACvC,CAAC;IAEM,cAAc;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClD,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACrB,CAAA;IACL,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,cAAc,EAAE;aACvB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAClC,MAAM,CAAC,CAAC,EAAE,EAAwB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAA;IAC/D,CAAC;IAEM,YAAY;QACf,OAAO;YACH,oBAAoB,EAAE,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC;YAC7D,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;SAChD,CAAA;IACL,CAAC;IAEM,oBAAoB,CAAC,SAAiB;QACzC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,SAAS,mBAAmB,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACX,YAAY,SAAS,sEAAsE,CAC9F,CAAA;QACL,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAA;IACxC,CAAC;IAEM,sBAAsB;QACzB,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAA;IACxC,CAAC;IAEM,oBAAoB;QACvB,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,SAAS,CAAA;QACpB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACtD,CAAC;IAEM,oBAAoB,CAAC,SAAiB;QACzC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,SAAS,mBAAmB,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACX,YAAY,SAAS,oDAAoD,CAC5E,CAAA;QACL,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC5C,CAAC;IAEM,uBAAuB,CAAC,SAAiB;QAC5C,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC;IAEM,sBAAsB;QACzB,OAAO,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC;aACzC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAClC,MAAM,CAAC,CAAC,EAAE,EAAwB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAA;IAC/D,CAAC;IAEM,MAAM;QACT,OAAO;YACH,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC9B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YACtD,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE;SAC7B,CAAA;IACL,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACxB,CAAC;IAEM,0BAA0B;QAQ7B,MAAM,OAAO,GAAG,IAAI,GAAG,EAGpB,CAAA;QACH,MAAM,WAAW,GAAG,IAAI,GAAG,EAGxB,CAAA;QAEH,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAA;YACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,CACpB,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAC/C,CAAA;YACD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;oBAAE,SAAQ;gBACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC9C,IAAI,CAAC,QAAQ;oBAAE,SAAQ;gBAEvB,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;oBACvD,OAAO,EAAE,IAAI,GAAG,EAAU;oBAC1B,UAAU,EAAE,IAAI,GAAG,EAAU;iBAChC,CAAC,CAAC,CAAA;gBACH,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBACtC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBAEnC,MAAM,aAAa,GAAG,WAAW,CAC7B,WAAW,EACX,QAAQ,CAAC,MAAM,EACf,GAAG,EAAE,CAAC,CAAC;oBACH,WAAW,EAAE,IAAI,GAAG,EAAU;oBAC9B,UAAU,EAAE,IAAI,GAAG,EAAU;iBAChC,CAAC,CACL,CAAA;gBACD,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBAC1C,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GACN,EAAE,CAAA;QACN,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAChE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACrC,EAAE,CAAC;YACA,IAAI,CAAC,UAAU,CAAC,GAAG;gBACf,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC5C,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;aAC7C,CAAA;QACL,CAAC;QAED,MAAM,QAAQ,GAGV,EAAE,CAAA;QACN,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAChE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACrC,EAAE,CAAC;YACA,QAAQ,CAAC,MAAM,CAAC,GAAG;gBACf,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC;gBAC5C,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;aAC7C,CAAA;QACL,CAAC;QAED,OAAO;YACH,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI;YACJ,QAAQ;SACX,CAAA;IACL,CAAC;IAEM,oBAAoB;QACvB,MAAM,MAAM,GAAuB,EAAE,CAAA;QAErC,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CACP,cAAc,CAAC;gBACX,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,gDAAgD;aAC5D,CAAC,CACL,CAAA;QACL,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,IAAI,CACP,cAAc,CAAC;gBACX,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,uBAAuB,IAAI,CAAC,mBAAmB,mBAAmB;gBAC3E,SAAS,EAAE,IAAI,CAAC,mBAAmB;aACtC,CAAC,CACL,CAAA;QACL,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CACP,cAAc,CAAC;oBACX,IAAI,EAAE,uCAAuC;oBAC7C,OAAO,EAAE,uBAAuB,SAAS,mBAAmB;oBAC5D,SAAS;iBACZ,CAAC,CACL,CAAA;YACL,CAAC;QACL,CAAC;QAED,IACI,IAAI,CAAC,mBAAmB,KAAK,SAAS;YACtC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,EACzD,CAAC;YACC,MAAM,CAAC,IAAI,CACP,cAAc,CAAC;gBACX,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,YAAY,IAAI,CAAC,mBAAmB,6CAA6C;gBAC1F,SAAS,EAAE,IAAI,CAAC,mBAAmB;aACtC,CAAC,CACL,CAAA;QACL,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAA;QAClD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAA;QAClD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,GAAG,CACnB,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAC/C,CAAA;YACD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;oBAAE,SAAQ;gBACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC7C,IAAI,CAAC,QAAQ;oBAAE,SAAQ;gBACvB,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CACtD,QAAQ,CAAC,MAAM,CAClB,CAAA;gBACD,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAC1D,QAAQ,CAAC,EAAE,CACd,CAAA;YACL,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;YAC9C,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CACP,cAAc,CAAC;oBACX,IAAI,EAAE,sCAAsC;oBAC5C,OAAO,EAAE,gBAAgB,UAAU,oCAAoC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;oBAC1G,UAAU;iBACb,CAAC,CACL,CAAA;YACL,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CACP,cAAc,CAAC;oBACX,IAAI,EAAE,oCAAoC;oBAC1C,OAAO,EAAE,oBAAoB,MAAM,gCAAgC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;iBACrG,CAAC,CACL,CAAA;YACL,CAAC;QACL,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACxC,MAAM,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAA;YACxD,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAC5C,CAAC;QAED,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IAEM,QAAQ,CACX,UAA+B,EAC/B,OAAoC;QAEpC,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,CAAA;QACpD,IAAI,aAAa,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;YAC9C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO;oBACH,EAAE,EAAE,KAAK;oBACT,UAAU;iBACb,CAAA;YACL,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO;gBACH,EAAE,EAAE,KAAK;gBACT,UAAU,EAAE,oBAAoB,CAAC;oBAC7B,cAAc,CAAC;wBACX,IAAI,EAAE,wBAAwB;wBAC9B,OAAO,EACH,gDAAgD;qBACvD,CAAC;iBACL,CAAC;aACL,CAAA;QACL,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;QACxD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS;YAC5B,UAAU,CAAC,KAAK,EAAE;YAClB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;SAChD,CAAC,CAAA;QACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CACjD,CAAC,EAAE,EAAE,EAAE,CACH,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,KAAK,YAAY,CACvE,CAAA;QAED,MAAM,mBAAmB,GAAG;YACxB,UAAU;YACV,GAAG,kBAAkB;YACrB,GAAG,kBAAkB;SACxB,CAAA;QACD,MAAM,qBAAqB,GAAG,YAAY,CACtC,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAC/B,EAAE;aACG,cAAc,EAAE;aAChB,MAAM,CACH,CAAC,IAAI,EAAgD,EAAE,CACnD,IAAI,CAAC,IAAI,KAAK,UAAU,CAC/B;aACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CACtC,CACJ,CAAA;QAED,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG;gBACb,iBAAiB,EACb,OAAO,EAAE,2BAA2B,IAAI,KAAK;aACpD,CAAA;YACD,MAAM,oBAAoB,GAAG,UAAU,CAAC,QAAQ,CAC5C,UAAU,EACV,QAAQ,CACX,CAAA;YACD,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACxD,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CACpC,CAAA;YACD,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACxD,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CACpC,CAAA;YAED,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,KAAK,CACtD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,CACxC,CAAA;YACD,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,KAAK,CACzD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,CACxC,CAAA;YACD,MAAM,cAAc,GAAG,oBAAoB,CAAC,SAAS,KAAK,IAAI,CAAA;YAC9D,MAAM,gBAAgB,GAClB,sBAAsB;gBACtB,yBAAyB;gBACzB,CAAC,cAAc,CAAA;YAEnB,MAAM,uBAAuB,GACzB,OAAO,EAAE,uBAAuB,IAAI,IAAI,CAAA;YAC5C,MAAM,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,IAAI,CAAA;YAC9D,MAAM,KAAK,GAAG,CACV,MAAgC,EACR,EAAE,CAAC,CAAC;gBAC5B,GAAG,MAAM;gBACT,gBAAgB,EAAE,uBAAuB;oBACrC,CAAC,CAAC,MAAM,CAAC,gBAAgB;oBACzB,CAAC,CAAC,EAAE;gBACR,mBAAmB,EAAE,kBAAkB;oBACnC,CAAC,CAAC,MAAM,CAAC,mBAAmB;oBAC5B,CAAC,CAAC,SAAS;aAClB,CAAC,CAAA;YAEF,OAAO;gBACH,EAAE,EAAE,IAAI;gBACR,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE;gBAC7B,qBAAqB;gBACrB,UAAU,EAAE,KAAK,CAAC,oBAAoB,CAAC;gBACvC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC;gBACpD,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC;gBACpD,sBAAsB;gBACtB,yBAAyB;gBACzB,cAAc;gBACd,gBAAgB;gBAChB,6BAA6B,EAAE,CAAC,gBAAgB;aACnD,CAAA;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,EAAE,EAAE,KAAK;gBACT,UAAU,EAAE,oBAAoB,CAAC;oBAC7B,cAAc,CAAC;wBACX,IAAI,EAAE,6BAA6B;wBACnC,OAAO,EACH,KAAK,YAAY,KAAK;4BAClB,CAAC,CAAC,KAAK,CAAC,OAAO;4BACf,CAAC,CAAC,6BAA6B;qBAC1C,CAAC;iBACL,CAAC;aACL,CAAA;QACL,CAAC;IACL,CAAC;IAEM,aAAa,CAChB,OAA+B;QAE/B,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,CAAA;QACpD,IAAI,aAAa,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;YAC9C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO;oBACH,EAAE,EAAE,KAAK;oBACT,UAAU;iBACb,CAAA;YACL,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO;gBACH,EAAE,EAAE,KAAK;gBACT,UAAU,EAAE,oBAAoB,CAAC;oBAC7B,cAAc,CAAC;wBACX,IAAI,EAAE,wBAAwB;wBAC9B,OAAO,EACH,gDAAgD;qBACvD,CAAC;iBACL,CAAC;aACL,CAAA;QACL,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;QACxD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS;YAC5B,UAAU,CAAC,KAAK,EAAE;YAClB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;SAChD,CAAC,CAAA;QACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CACjD,CAAC,EAAE,EAAE,EAAE,CACH,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,KAAK,YAAY,CACvE,CAAA;QAED,MAAM,kBAAkB,GAAG,YAAY,CACnC,CAAC,UAAU,EAAE,GAAG,kBAAkB,EAAE,GAAG,kBAAkB,CAAC,CAAC,OAAO,CAC9D,CAAC,EAAE,EAAE,EAAE,CACH,EAAE;aACG,cAAc,EAAE;aAChB,MAAM,CACH,CACI,IAAI,EACwC,EAAE,CAC9C,IAAI,CAAC,IAAI,KAAK,UAAU,CAC/B;aACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAC1C,CACJ,CAAA;QAED,IACI,OAAO,EAAE,YAAY,KAAK,SAAS;YACnC,kBAAkB,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,EAClD,CAAC;YACC,OAAO;gBACH,EAAE,EAAE,KAAK;gBACT,UAAU,EAAE,oBAAoB,CAAC;oBAC7B,cAAc,CAAC;wBACX,IAAI,EAAE,6BAA6B;wBACnC,OAAO,EAAE,2BAA2B,kBAAkB,CAAC,MAAM,+BAA+B,OAAO,CAAC,YAAY,GAAG;qBACtH,CAAC;iBACL,CAAC;aACL,CAAA;QACL,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,qBAAqB,CAAA;QACnD,MAAM,qBAAqB,GAAG,OAAO,EAAE,qBAAqB,CAAA;QAC5D,MAAM,eAAe,GAAsB,EAAE,CAAA;QAC7C,IAAI,qBAAqB,GAAG,CAAC,CAAA;QAC7B,IAAI,wBAAwB,GAAG,CAAC,CAAA;QAChC,IAAI,SAAS,GAAG,KAAK,CAAA;QAErB,MAAM,gBAAgB,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAA;QACvD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;YACjD,IACI,qBAAqB,KAAK,SAAS;gBACnC,qBAAqB,IAAI,qBAAqB,EAChD,CAAC;gBACC,SAAS,GAAG,IAAI,CAAA;gBAChB,MAAK;YACT,CAAC;YAED,MAAM,UAAU,GAAwB,EAAE,CAAA;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAChE,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;gBACrC,aAAa,EAAE,KAAK;gBACpB,uBAAuB,EACnB,OAAO,EAAE,gCAAgC,IAAI,KAAK;gBACtD,kBAAkB,EACd,OAAO,EAAE,gCAAgC,IAAI,KAAK;aACzD,CAAC,CAAA;YAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACb,OAAO;oBACH,EAAE,EAAE,KAAK;oBACT,UAAU,EAAE,MAAM,CAAC,UAAU;iBAChC,CAAA;YACL,CAAC;YAED,qBAAqB,IAAI,CAAC,CAAA;YAE1B,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;gBAChC,wBAAwB,IAAI,CAAC,CAAA;YACjC,CAAC;YAED,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,eAAe,CAAC,IAAI,CAAC;oBACjB,UAAU;oBACV,MAAM;iBACT,CAAC,CAAA;gBACF,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBACjC,MAAK;gBACT,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,mBAAmB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;QACtD,MAAM,YAAY,GACd,CAAC,SAAS;YACV,CAAC,IAAI,KAAK,YAAY;gBAClB,CAAC,IAAI,KAAK,qBAAqB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAEjE,OAAO;YACH,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,mBAAmB;gBACxB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,YAAY;oBACZ,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,SAAS;YACjB,kBAAkB;YAClB,qBAAqB;YACrB,wBAAwB;YACxB,eAAe;YACf,SAAS;SACZ,CAAA;IACL,CAAC;CACJ"}
@@ -0,0 +1,19 @@
1
+ import type { TPropositionalExpression } from "../schemata";
2
+ export declare class ExpressionManager {
3
+ private expressions;
4
+ private childExpressionIdsByParentId;
5
+ private childPositionsByParentId;
6
+ constructor(initialExpressions?: TPropositionalExpression[]);
7
+ toArray(): TPropositionalExpression[];
8
+ addExpression(expression: TPropositionalExpression): void;
9
+ removeExpression(expressionId: string): TPropositionalExpression | undefined;
10
+ private collapseIfNeeded;
11
+ hasVariableReference(variableId: string): boolean;
12
+ getExpression(expressionId: string): TPropositionalExpression | undefined;
13
+ getChildExpressions(parentId: string | null): TPropositionalExpression[];
14
+ private loadInitialExpressions;
15
+ private assertChildLimit;
16
+ private reparent;
17
+ insertExpression(expression: TPropositionalExpression, leftNodeId?: string, rightNodeId?: string): void;
18
+ }
19
+ //# sourceMappingURL=ExpressionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpressionManager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/ExpressionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,wBAAwB,EAC3B,MAAM,aAAa,CAAA;AAGpB,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,4BAA4B,CAAiC;IACrE,OAAO,CAAC,wBAAwB,CAAiC;gBAErD,kBAAkB,GAAE,wBAAwB,EAAO;IAQxD,OAAO,IAAI,wBAAwB,EAAE;IAIrC,aAAa,CAAC,UAAU,EAAE,wBAAwB;IAwElD,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAoD5C,OAAO,CAAC,gBAAgB;IAmFjB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAYjD,aAAa,CAChB,YAAY,EAAE,MAAM,GACrB,wBAAwB,GAAG,SAAS;IAIhC,mBAAmB,CACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACxB,wBAAwB,EAAE;IA4B7B,OAAO,CAAC,sBAAsB;IAqC9B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,QAAQ;IAwCT,gBAAgB,CACnB,UAAU,EAAE,wBAAwB,EACpC,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACrB,IAAI;CA0IV"}