@polintpro/proposit-core 0.1.8 → 0.2.0

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 (85) hide show
  1. package/README.md +102 -53
  2. package/dist/cli/commands/arguments.js +1 -1
  3. package/dist/cli/commands/arguments.js.map +1 -1
  4. package/dist/cli/commands/expressions.d.ts.map +1 -1
  5. package/dist/cli/commands/expressions.js +36 -6
  6. package/dist/cli/commands/expressions.js.map +1 -1
  7. package/dist/cli/commands/premises.d.ts.map +1 -1
  8. package/dist/cli/commands/premises.js +4 -4
  9. package/dist/cli/commands/premises.js.map +1 -1
  10. package/dist/cli/commands/roles.d.ts.map +1 -1
  11. package/dist/cli/commands/roles.js +9 -39
  12. package/dist/cli/commands/roles.js.map +1 -1
  13. package/dist/cli/engine.d.ts.map +1 -1
  14. package/dist/cli/engine.js +3 -4
  15. package/dist/cli/engine.js.map +1 -1
  16. package/dist/cli/import.d.ts.map +1 -1
  17. package/dist/cli/import.js +5 -6
  18. package/dist/cli/import.js.map +1 -1
  19. package/dist/cli/output/diffRenderer.d.ts.map +1 -1
  20. package/dist/cli/output/diffRenderer.js +3 -16
  21. package/dist/cli/output/diffRenderer.js.map +1 -1
  22. package/dist/cli/schemata.d.ts +7 -3
  23. package/dist/cli/schemata.d.ts.map +1 -1
  24. package/dist/cli/storage/arguments.js +2 -2
  25. package/dist/cli/storage/arguments.js.map +1 -1
  26. package/dist/index.d.ts +5 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +4 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/lib/core/ArgumentEngine.d.ts +26 -19
  31. package/dist/lib/core/ArgumentEngine.d.ts.map +1 -1
  32. package/dist/lib/core/ArgumentEngine.js +93 -76
  33. package/dist/lib/core/ArgumentEngine.js.map +1 -1
  34. package/dist/lib/core/ChangeCollector.d.ts +26 -0
  35. package/dist/lib/core/ChangeCollector.d.ts.map +1 -0
  36. package/dist/lib/core/ChangeCollector.js +62 -0
  37. package/dist/lib/core/ChangeCollector.js.map +1 -0
  38. package/dist/lib/core/ExpressionManager.d.ts +19 -1
  39. package/dist/lib/core/ExpressionManager.d.ts.map +1 -1
  40. package/dist/lib/core/ExpressionManager.js +81 -46
  41. package/dist/lib/core/ExpressionManager.js.map +1 -1
  42. package/dist/lib/core/PremiseManager.d.ts +43 -7
  43. package/dist/lib/core/PremiseManager.d.ts.map +1 -1
  44. package/dist/lib/core/PremiseManager.js +291 -32
  45. package/dist/lib/core/PremiseManager.js.map +1 -1
  46. package/dist/lib/core/VariableManager.d.ts +2 -1
  47. package/dist/lib/core/VariableManager.d.ts.map +1 -1
  48. package/dist/lib/core/VariableManager.js +2 -2
  49. package/dist/lib/core/VariableManager.js.map +1 -1
  50. package/dist/lib/core/checksum.d.ts +15 -0
  51. package/dist/lib/core/checksum.d.ts.map +1 -0
  52. package/dist/lib/core/checksum.js +43 -0
  53. package/dist/lib/core/checksum.js.map +1 -0
  54. package/dist/lib/core/diff.d.ts.map +1 -1
  55. package/dist/lib/core/diff.js +2 -6
  56. package/dist/lib/core/diff.js.map +1 -1
  57. package/dist/lib/index.d.ts +5 -0
  58. package/dist/lib/index.d.ts.map +1 -1
  59. package/dist/lib/index.js +4 -0
  60. package/dist/lib/index.js.map +1 -1
  61. package/dist/lib/schemata/argument.d.ts +1 -1
  62. package/dist/lib/schemata/argument.d.ts.map +1 -1
  63. package/dist/lib/schemata/argument.js +4 -2
  64. package/dist/lib/schemata/argument.js.map +1 -1
  65. package/dist/lib/schemata/propositional.d.ts +20 -9
  66. package/dist/lib/schemata/propositional.d.ts.map +1 -1
  67. package/dist/lib/schemata/propositional.js +10 -1
  68. package/dist/lib/schemata/propositional.js.map +1 -1
  69. package/dist/lib/types/checksum.d.ts +14 -0
  70. package/dist/lib/types/checksum.d.ts.map +1 -0
  71. package/dist/lib/types/checksum.js +2 -0
  72. package/dist/lib/types/checksum.js.map +1 -0
  73. package/dist/lib/types/diff.d.ts +0 -2
  74. package/dist/lib/types/diff.d.ts.map +1 -1
  75. package/dist/lib/types/evaluation.d.ts +1 -3
  76. package/dist/lib/types/evaluation.d.ts.map +1 -1
  77. package/dist/lib/types/mutation.d.ts +31 -0
  78. package/dist/lib/types/mutation.d.ts.map +1 -0
  79. package/dist/lib/types/mutation.js +2 -0
  80. package/dist/lib/types/mutation.js.map +1 -0
  81. package/dist/lib/utils/position.d.ts +5 -0
  82. package/dist/lib/utils/position.d.ts.map +1 -0
  83. package/dist/lib/utils/position.js +7 -0
  84. package/dist/lib/utils/position.js.map +1 -0
  85. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { getOrCreate } from "../utils/collections.js";
2
+ import { POSITION_INITIAL, POSITION_MAX, POSITION_MIN, midpoint, } from "../utils/position.js";
2
3
  /**
3
4
  * Low-level manager for a flat-stored expression tree.
4
5
  *
@@ -14,15 +15,19 @@ export class ExpressionManager {
14
15
  expressions;
15
16
  childExpressionIdsByParentId;
16
17
  childPositionsByParentId;
18
+ collector = null;
19
+ setCollector(collector) {
20
+ this.collector = collector;
21
+ }
17
22
  constructor(initialExpressions = []) {
18
23
  this.expressions = new Map();
19
24
  this.childExpressionIdsByParentId = new Map();
20
25
  this.childPositionsByParentId = new Map();
21
26
  this.loadInitialExpressions(initialExpressions);
22
27
  }
23
- /** Returns all expressions as an unordered array. */
28
+ /** Returns all expressions sorted by ID for deterministic output. */
24
29
  toArray() {
25
- return Array.from(this.expressions.values());
30
+ return Array.from(this.expressions.values()).sort((a, b) => a.id.localeCompare(b.id));
26
31
  }
27
32
  /**
28
33
  * Adds an expression to the tree.
@@ -66,16 +71,62 @@ export class ExpressionManager {
66
71
  }
67
72
  }
68
73
  }
69
- if (expression.position !== null) {
70
- const occupiedPositions = getOrCreate(this.childPositionsByParentId, expression.parentId, () => new Set());
71
- if (occupiedPositions.has(expression.position)) {
72
- throw new Error(`Position ${expression.position} is already used under parent "${expression.parentId}".`);
73
- }
74
- occupiedPositions.add(expression.position);
74
+ const occupiedPositions = getOrCreate(this.childPositionsByParentId, expression.parentId, () => new Set());
75
+ if (occupiedPositions.has(expression.position)) {
76
+ throw new Error(`Position ${expression.position} is already used under parent "${expression.parentId}".`);
75
77
  }
78
+ occupiedPositions.add(expression.position);
76
79
  this.expressions.set(expression.id, expression);
80
+ this.collector?.addedExpression({ ...expression });
77
81
  getOrCreate(this.childExpressionIdsByParentId, expression.parentId, () => new Set()).add(expression.id);
78
82
  }
83
+ /**
84
+ * Adds an expression as the last child of the given parent.
85
+ *
86
+ * If the parent has no children, the expression gets `POSITION_INITIAL`.
87
+ * Otherwise it gets a midpoint between the last child's position and
88
+ * `POSITION_MAX`.
89
+ */
90
+ appendExpression(parentId, expression) {
91
+ const children = this.getChildExpressions(parentId);
92
+ const position = children.length === 0
93
+ ? POSITION_INITIAL
94
+ : midpoint(children[children.length - 1].position, POSITION_MAX);
95
+ this.addExpression({
96
+ ...expression,
97
+ parentId,
98
+ position,
99
+ });
100
+ }
101
+ /**
102
+ * Adds an expression immediately before or after an existing sibling.
103
+ *
104
+ * @throws If the sibling does not exist.
105
+ */
106
+ addExpressionRelative(siblingId, relativePosition, expression) {
107
+ const sibling = this.expressions.get(siblingId);
108
+ if (!sibling) {
109
+ throw new Error(`Expression "${siblingId}" not found.`);
110
+ }
111
+ const children = this.getChildExpressions(sibling.parentId);
112
+ const siblingIndex = children.findIndex((c) => c.id === siblingId);
113
+ let position;
114
+ if (relativePosition === "before") {
115
+ const prev = siblingIndex > 0 ? children[siblingIndex - 1] : undefined;
116
+ position = midpoint(prev?.position ?? POSITION_MIN, sibling.position);
117
+ }
118
+ else {
119
+ const next = siblingIndex < children.length - 1
120
+ ? children[siblingIndex + 1]
121
+ : undefined;
122
+ position = midpoint(sibling.position, next?.position ?? POSITION_MAX);
123
+ }
124
+ this.addExpression({
125
+ ...expression,
126
+ parentId: sibling.parentId,
127
+ position,
128
+ });
129
+ }
79
130
  /**
80
131
  * Removes an expression and its entire descendant subtree.
81
132
  *
@@ -112,15 +163,14 @@ export class ExpressionManager {
112
163
  if (!expression) {
113
164
  continue;
114
165
  }
166
+ this.collector?.removedExpression({ ...expression });
115
167
  this.expressions.delete(id);
116
168
  this.childExpressionIdsByParentId
117
169
  .get(expression.parentId)
118
170
  ?.delete(id);
119
- if (expression.position !== null) {
120
- this.childPositionsByParentId
121
- .get(expression.parentId)
122
- ?.delete(expression.position);
123
- }
171
+ this.childPositionsByParentId
172
+ .get(expression.parentId)
173
+ ?.delete(expression.position);
124
174
  this.childExpressionIdsByParentId.delete(id);
125
175
  this.childPositionsByParentId.delete(id);
126
176
  }
@@ -137,15 +187,14 @@ export class ExpressionManager {
137
187
  const children = this.getChildExpressions(operatorId);
138
188
  if (children.length === 0) {
139
189
  const grandparentId = operator.parentId;
190
+ this.collector?.removedExpression({ ...operator });
140
191
  this.expressions.delete(operatorId);
141
192
  this.childExpressionIdsByParentId
142
193
  .get(grandparentId)
143
194
  ?.delete(operatorId);
144
- if (operator.position !== null) {
145
- this.childPositionsByParentId
146
- .get(grandparentId)
147
- ?.delete(operator.position);
148
- }
195
+ this.childPositionsByParentId
196
+ .get(grandparentId)
197
+ ?.delete(operator.position);
149
198
  this.childExpressionIdsByParentId.delete(operatorId);
150
199
  this.childPositionsByParentId.delete(operatorId);
151
200
  this.collapseIfNeeded(grandparentId);
@@ -158,15 +207,14 @@ export class ExpressionManager {
158
207
  if (children.length === 0) {
159
208
  const grandparentId = operator.parentId;
160
209
  const grandparentPosition = operator.position;
210
+ this.collector?.removedExpression({ ...operator });
161
211
  this.expressions.delete(operatorId);
162
212
  this.childExpressionIdsByParentId
163
213
  .get(grandparentId)
164
214
  ?.delete(operatorId);
165
- if (grandparentPosition !== null) {
166
- this.childPositionsByParentId
167
- .get(grandparentId)
168
- ?.delete(grandparentPosition);
169
- }
215
+ this.childPositionsByParentId
216
+ .get(grandparentId)
217
+ ?.delete(grandparentPosition);
170
218
  this.childExpressionIdsByParentId.delete(operatorId);
171
219
  this.childPositionsByParentId.delete(operatorId);
172
220
  this.collapseIfNeeded(grandparentId);
@@ -182,6 +230,7 @@ export class ExpressionManager {
182
230
  position: grandparentPosition,
183
231
  };
184
232
  this.expressions.set(child.id, promoted);
233
+ this.collector?.modifiedExpression({ ...promoted });
185
234
  // Replace the operator with the promoted child in the grandparent's child-id set.
186
235
  this.childExpressionIdsByParentId
187
236
  .get(grandparentId)
@@ -193,6 +242,7 @@ export class ExpressionManager {
193
242
  // Remove the operator's own tracking entries.
194
243
  this.childExpressionIdsByParentId.delete(operatorId);
195
244
  this.childPositionsByParentId.delete(operatorId);
245
+ this.collector?.removedExpression({ ...operator });
196
246
  this.expressions.delete(operatorId);
197
247
  // The grandparent's child count is unchanged; no further recursion needed.
198
248
  }
@@ -224,18 +274,7 @@ export class ExpressionManager {
224
274
  children.push(child);
225
275
  }
226
276
  }
227
- return children.sort((a, b) => {
228
- if (a.position === null && b.position === null) {
229
- return a.id.localeCompare(b.id);
230
- }
231
- if (a.position === null) {
232
- return 1;
233
- }
234
- if (b.position === null) {
235
- return -1;
236
- }
237
- return a.position - b.position;
238
- });
277
+ return children.sort((a, b) => a.position - b.position);
239
278
  }
240
279
  loadInitialExpressions(initialExpressions) {
241
280
  if (initialExpressions.length === 0) {
@@ -275,11 +314,9 @@ export class ExpressionManager {
275
314
  this.childExpressionIdsByParentId
276
315
  .get(expression.parentId)
277
316
  ?.delete(expressionId);
278
- if (expression.position !== null) {
279
- this.childPositionsByParentId
280
- .get(expression.parentId)
281
- ?.delete(expression.position);
282
- }
317
+ this.childPositionsByParentId
318
+ .get(expression.parentId)
319
+ ?.delete(expression.position);
283
320
  // Replace the stored value (expressions are immutable value objects).
284
321
  const updated = {
285
322
  ...expression,
@@ -287,11 +324,10 @@ export class ExpressionManager {
287
324
  position: newPosition,
288
325
  };
289
326
  this.expressions.set(expressionId, updated);
327
+ this.collector?.modifiedExpression({ ...updated });
290
328
  // Attach to new parent.
291
329
  getOrCreate(this.childExpressionIdsByParentId, newParentId, () => new Set()).add(expressionId);
292
- if (newPosition !== null) {
293
- getOrCreate(this.childPositionsByParentId, newParentId, () => new Set()).add(newPosition);
294
- }
330
+ getOrCreate(this.childPositionsByParentId, newParentId, () => new Set()).add(newPosition);
295
331
  }
296
332
  /**
297
333
  * Inserts a new expression between existing nodes in the tree.
@@ -392,10 +428,9 @@ export class ExpressionManager {
392
428
  position: anchorPosition,
393
429
  };
394
430
  this.expressions.set(expression.id, stored);
431
+ this.collector?.addedExpression({ ...stored });
395
432
  getOrCreate(this.childExpressionIdsByParentId, anchorParentId, () => new Set()).add(expression.id);
396
- if (anchorPosition !== null) {
397
- getOrCreate(this.childPositionsByParentId, anchorParentId, () => new Set()).add(anchorPosition);
398
- }
433
+ getOrCreate(this.childPositionsByParentId, anchorParentId, () => new Set()).add(anchorPosition);
399
434
  }
400
435
  }
401
436
  //# sourceMappingURL=ExpressionManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressionManager.js","sourceRoot":"","sources":["../../../src/lib/core/ExpressionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExpressionManager.js","sourceRoot":"","sources":["../../../src/lib/core/ExpressionManager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable } from "../schemata/index.js";
2
2
  import type { TCoreExpressionAssignment, TCorePremiseEvaluationResult, TCoreValidationResult } from "../types/evaluation.js";
3
+ import type { TCoreMutationResult } from "../types/mutation.js";
4
+ import type { TCoreChecksumConfig } from "../types/checksum.js";
5
+ import type { TExpressionWithoutPosition } from "./ExpressionManager.js";
3
6
  export declare class PremiseManager {
4
7
  private id;
5
8
  private extras;
@@ -8,7 +11,10 @@ export declare class PremiseManager {
8
11
  private expressions;
9
12
  private expressionsByVariableId;
10
13
  private argument;
11
- constructor(id: string, argument: TCoreArgument, extras?: Record<string, unknown>);
14
+ private checksumConfig?;
15
+ private checksumDirty;
16
+ private cachedChecksum;
17
+ constructor(id: string, argument: TCoreArgument, extras?: Record<string, unknown>, checksumConfig?: TCoreChecksumConfig);
12
18
  /**
13
19
  * Registers a propositional variable for use within this premise.
14
20
  *
@@ -16,14 +22,14 @@ export declare class PremiseManager {
16
22
  * @throws If `variable.id` already exists within this premise.
17
23
  * @throws If the variable does not belong to this premise's argument.
18
24
  */
19
- addVariable(variable: TCorePropositionalVariable): void;
25
+ addVariable(variable: TCorePropositionalVariable): TCoreMutationResult<TCorePropositionalVariable>;
20
26
  /**
21
27
  * Removes a variable from this premise's registry and returns it, or
22
28
  * `undefined` if it was not found.
23
29
  *
24
30
  * @throws If any expression in this premise still references the variable.
25
31
  */
26
- removeVariable(variableId: string): TCorePropositionalVariable | undefined;
32
+ removeVariable(variableId: string): TCoreMutationResult<TCorePropositionalVariable | undefined>;
27
33
  /**
28
34
  * Adds an expression to this premise's tree.
29
35
  *
@@ -39,7 +45,27 @@ export declare class PremiseManager {
39
45
  * @throws If the expression is a variable reference and the variable has not been registered.
40
46
  * @throws If the expression does not belong to this argument.
41
47
  */
42
- addExpression(expression: TCorePropositionalExpression): void;
48
+ addExpression(expression: TCorePropositionalExpression): TCoreMutationResult<TCorePropositionalExpression>;
49
+ /**
50
+ * Adds an expression as the last child of the given parent, with
51
+ * position computed automatically.
52
+ *
53
+ * If `parentId` is `null`, the expression becomes the root.
54
+ *
55
+ * @throws If the premise already has a root and parentId is null.
56
+ * @throws If the expression does not belong to this argument.
57
+ * @throws If the expression is a variable reference and the variable has not been registered.
58
+ */
59
+ appendExpression(parentId: string | null, expression: TExpressionWithoutPosition): TCoreMutationResult<TCorePropositionalExpression>;
60
+ /**
61
+ * Adds an expression immediately before or after an existing sibling,
62
+ * with position computed automatically.
63
+ *
64
+ * @throws If the sibling does not exist in this premise.
65
+ * @throws If the expression does not belong to this argument.
66
+ * @throws If the expression is a variable reference and the variable has not been registered.
67
+ */
68
+ addExpressionRelative(siblingId: string, relativePosition: "before" | "after", expression: TExpressionWithoutPosition): TCoreMutationResult<TCorePropositionalExpression>;
43
69
  /**
44
70
  * Removes an expression and its entire descendant subtree, then collapses
45
71
  * any ancestor operators with fewer than two children (same semantics as
@@ -49,7 +75,7 @@ export declare class PremiseManager {
49
75
  * `rootExpressionId` is recomputed after every removal because operator
50
76
  * collapse can silently promote a new expression into the root slot.
51
77
  */
52
- removeExpression(expressionId: string): TCorePropositionalExpression | undefined;
78
+ removeExpression(expressionId: string): TCoreMutationResult<TCorePropositionalExpression | undefined>;
53
79
  /**
54
80
  * Splices a new expression between existing nodes in the tree. The new
55
81
  * expression inherits the tree slot of the anchor node
@@ -64,7 +90,7 @@ export declare class PremiseManager {
64
90
  * @throws If the expression does not belong to this argument.
65
91
  * @throws If the expression is a variable reference and the variable has not been registered.
66
92
  */
67
- insertExpression(expression: TCorePropositionalExpression, leftNodeId?: string, rightNodeId?: string): void;
93
+ insertExpression(expression: TCorePropositionalExpression, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TCorePropositionalExpression>;
68
94
  /**
69
95
  * Returns an expression by ID, or `undefined` if not found in this
70
96
  * premise.
@@ -72,7 +98,7 @@ export declare class PremiseManager {
72
98
  getExpression(id: string): TCorePropositionalExpression | undefined;
73
99
  getId(): string;
74
100
  getExtras(): Record<string, unknown>;
75
- setExtras(extras: Record<string, unknown>): void;
101
+ setExtras(extras: Record<string, unknown>): TCoreMutationResult<Record<string, unknown>>;
76
102
  getRootExpressionId(): string | undefined;
77
103
  getRootExpression(): TCorePropositionalExpression | undefined;
78
104
  getVariables(): TCorePropositionalVariable[];
@@ -116,6 +142,16 @@ export declare class PremiseManager {
116
142
  * referenced by expressions in this premise.
117
143
  */
118
144
  toData(): TCorePremise;
145
+ /**
146
+ * Returns a premise-level checksum combining all entity checksums.
147
+ * Computed lazily -- only recalculated when state has changed.
148
+ */
149
+ checksum(): string;
150
+ private attachExpressionChecksum;
151
+ private attachVariableChecksum;
152
+ private attachChangesetChecksums;
153
+ private computeChecksum;
154
+ private markDirty;
119
155
  /**
120
156
  * Re-reads the single root from ExpressionManager after any operation
121
157
  * that may have caused operator collapse to silently change the root.
@@ -1 +1 @@
1
- {"version":3,"file":"PremiseManager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/PremiseManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EAEb,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC7B,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EACR,yBAAyB,EACzB,4BAA4B,EAI5B,qBAAqB,EACxB,MAAM,wBAAwB,CAAA;AAc/B,qBAAa,cAAc;IACvB,OAAO,CAAC,EAAE,CAAQ;IAClB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,uBAAuB,CAAiC;IAChE,OAAO,CAAC,QAAQ,CAAe;gBAG3B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,aAAa,EACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAWpC;;;;;;OAMG;IACI,WAAW,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAQ9D;;;;;OAKG;IACI,cAAc,CACjB,UAAU,EAAE,MAAM,GACnB,0BAA0B,GAAG,SAAS;IASzC;;;;;;;;;;;;;;OAcG;IACI,aAAa,CAAC,UAAU,EAAE,4BAA4B,GAAG,IAAI;IA2CpE;;;;;;;;OAQG;IACI,gBAAgB,CACnB,YAAY,EAAE,MAAM,GACrB,4BAA4B,GAAG,SAAS;IAsB3C;;;;;;;;;;;;;OAaG;IACI,gBAAgB,CACnB,UAAU,EAAE,4BAA4B,EACxC,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACrB,IAAI;IA0BP;;;OAGG;IACI,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,4BAA4B,GAAG,SAAS;IAInE,KAAK,IAAI,MAAM;IAIf,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIhD,mBAAmB,IAAI,MAAM,GAAG,SAAS;IAIzC,iBAAiB,IAAI,4BAA4B,GAAG,SAAS;IAQ7D,YAAY,IAAI,0BAA0B,EAAE;IAI5C,cAAc,IAAI,4BAA4B,EAAE;IAIhD,mBAAmB,CACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACxB,4BAA4B,EAAE;IAMjC;;;OAGG;IACI,WAAW,IAAI,OAAO;IAQ7B;;;OAGG;IACI,YAAY,IAAI,OAAO;IAIvB,oBAAoB,IAAI,qBAAqB;IAoJpD;;;;;;;;;;OAUG;IACI,QAAQ,CACX,UAAU,EAAE,yBAAyB,EACrC,OAAO,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,OAAO,CAAA;QAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAA;KACjC,GACF,4BAA4B;IAmL/B;;;;OAIG;IACI,eAAe,IAAI,MAAM;IAOhC;;;;OAIG;IACI,MAAM,IAAI,YAAY;IAwB7B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,cAAc;CAczB"}
1
+ {"version":3,"file":"PremiseManager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/PremiseManager.ts"],"names":[],"mappings":"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"}