@polintpro/proposit-core 0.2.5 → 0.2.7

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 (63) hide show
  1. package/README.md +150 -27
  2. package/dist/cli/commands/analysis.js +1 -1
  3. package/dist/cli/commands/analysis.js.map +1 -1
  4. package/dist/cli/commands/expressions.d.ts.map +1 -1
  5. package/dist/cli/commands/expressions.js +21 -3
  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 +28 -11
  9. package/dist/cli/commands/premises.js.map +1 -1
  10. package/dist/cli/engine.d.ts +1 -1
  11. package/dist/cli/engine.d.ts.map +1 -1
  12. package/dist/cli/engine.js +17 -9
  13. package/dist/cli/engine.js.map +1 -1
  14. package/dist/cli/import.d.ts.map +1 -1
  15. package/dist/cli/import.js +10 -6
  16. package/dist/cli/import.js.map +1 -1
  17. package/dist/cli/schemata.d.ts +3 -0
  18. package/dist/cli/schemata.d.ts.map +1 -1
  19. package/dist/cli/schemata.js +2 -1
  20. package/dist/cli/schemata.js.map +1 -1
  21. package/dist/index.d.ts +3 -3
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +2 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/lib/consts.d.ts.map +1 -1
  26. package/dist/lib/consts.js +2 -1
  27. package/dist/lib/consts.js.map +1 -1
  28. package/dist/lib/core/ArgumentEngine.d.ts +64 -13
  29. package/dist/lib/core/ArgumentEngine.d.ts.map +1 -1
  30. package/dist/lib/core/ArgumentEngine.js +243 -23
  31. package/dist/lib/core/ArgumentEngine.js.map +1 -1
  32. package/dist/lib/core/ExpressionManager.d.ts +18 -8
  33. package/dist/lib/core/ExpressionManager.d.ts.map +1 -1
  34. package/dist/lib/core/ExpressionManager.js +42 -16
  35. package/dist/lib/core/ExpressionManager.js.map +1 -1
  36. package/dist/lib/core/PremiseEngine.d.ts +200 -0
  37. package/dist/lib/core/PremiseEngine.d.ts.map +1 -0
  38. package/dist/lib/core/PremiseEngine.js +872 -0
  39. package/dist/lib/core/PremiseEngine.js.map +1 -0
  40. package/dist/lib/core/VariableManager.d.ts +15 -3
  41. package/dist/lib/core/VariableManager.d.ts.map +1 -1
  42. package/dist/lib/core/VariableManager.js +34 -13
  43. package/dist/lib/core/VariableManager.js.map +1 -1
  44. package/dist/lib/core/diff.d.ts +2 -2
  45. package/dist/lib/core/diff.d.ts.map +1 -1
  46. package/dist/lib/core/diff.js +12 -16
  47. package/dist/lib/core/diff.js.map +1 -1
  48. package/dist/lib/core/relationships.d.ts +2 -2
  49. package/dist/lib/core/relationships.d.ts.map +1 -1
  50. package/dist/lib/core/relationships.js.map +1 -1
  51. package/dist/lib/index.d.ts +7 -2
  52. package/dist/lib/index.d.ts.map +1 -1
  53. package/dist/lib/index.js +2 -2
  54. package/dist/lib/index.js.map +1 -1
  55. package/dist/lib/schemata/propositional.d.ts +8 -29
  56. package/dist/lib/schemata/propositional.d.ts.map +1 -1
  57. package/dist/lib/schemata/propositional.js +4 -10
  58. package/dist/lib/schemata/propositional.js.map +1 -1
  59. package/dist/lib/types/checksum.d.ts +1 -1
  60. package/dist/lib/types/checksum.d.ts.map +1 -1
  61. package/dist/lib/types/evaluation.d.ts +1 -9
  62. package/dist/lib/types/evaluation.d.ts.map +1 -1
  63. package/package.json +1 -1
@@ -2,9 +2,9 @@ import { randomUUID } from "node:crypto";
2
2
  import { DEFAULT_CHECKSUM_CONFIG } from "../consts.js";
3
3
  import { getOrCreate, sortedUnique } from "../utils/collections.js";
4
4
  import { ChangeCollector } from "./ChangeCollector.js";
5
- import { computeHash, entityChecksum } from "./checksum.js";
5
+ import { canonicalSerialize, computeHash, entityChecksum } from "./checksum.js";
6
6
  import { kleeneAnd, kleeneNot, makeErrorIssue, makeValidationResult, } from "./evaluation/shared.js";
7
- import { PremiseManager } from "./PremiseManager.js";
7
+ import { PremiseEngine } from "./PremiseEngine.js";
8
8
  import { VariableManager } from "./VariableManager.js";
9
9
  /**
10
10
  * Manages a propositional logic argument composed of premises, variable
@@ -22,10 +22,15 @@ export class ArgumentEngine {
22
22
  positionConfig;
23
23
  checksumDirty = true;
24
24
  cachedChecksum;
25
+ expressionIndex;
25
26
  constructor(argument, options) {
26
27
  this.argument = { ...argument };
27
28
  this.premises = new Map();
28
- this.variables = new VariableManager();
29
+ this.variables = new VariableManager({
30
+ checksumConfig: this.checksumConfig,
31
+ positionConfig: this.positionConfig,
32
+ });
33
+ this.expressionIndex = new Map();
29
34
  this.conclusionPremiseId = undefined;
30
35
  this.checksumConfig = options?.checksumConfig;
31
36
  this.positionConfig = options?.positionConfig;
@@ -34,6 +39,29 @@ export class ArgumentEngine {
34
39
  getArgument() {
35
40
  return { ...this.argument, checksum: this.checksum() };
36
41
  }
42
+ /** Renders the argument as a multi-line string with role labels for each premise. */
43
+ toDisplayString() {
44
+ const lines = [];
45
+ const arg = this.getArgument();
46
+ lines.push(`Argument: ${arg.id} (v${arg.version})`);
47
+ lines.push("");
48
+ const supportingIds = new Set(this.listSupportingPremises().map((pe) => pe.getId()));
49
+ for (const pe of this.listPremises()) {
50
+ let role;
51
+ if (pe.getId() === this.conclusionPremiseId) {
52
+ role = "Conclusion";
53
+ }
54
+ else if (supportingIds.has(pe.getId())) {
55
+ role = "Supporting";
56
+ }
57
+ else {
58
+ role = "Constraint";
59
+ }
60
+ const display = pe.toDisplayString() || "(empty)";
61
+ lines.push(`[${role}] ${display}`);
62
+ }
63
+ return lines.join("\n");
64
+ }
37
65
  /**
38
66
  * Creates a new premise with an auto-generated UUID and registers it
39
67
  * with this engine.
@@ -51,10 +79,23 @@ export class ArgumentEngine {
51
79
  if (this.premises.has(id)) {
52
80
  throw new Error(`Premise "${id}" already exists.`);
53
81
  }
54
- const pm = new PremiseManager(id, this.argument, this.variables, extras, this.checksumConfig, this.positionConfig);
82
+ const premiseData = {
83
+ ...extras,
84
+ id,
85
+ argumentId: this.argument.id,
86
+ argumentVersion: this.argument.version,
87
+ };
88
+ const pm = new PremiseEngine(premiseData, {
89
+ argument: this.argument,
90
+ variables: this.variables,
91
+ expressionIndex: this.expressionIndex,
92
+ }, {
93
+ checksumConfig: this.checksumConfig,
94
+ positionConfig: this.positionConfig,
95
+ });
55
96
  this.premises.set(id, pm);
56
97
  const collector = new ChangeCollector();
57
- collector.addedPremise(pm.toData());
98
+ collector.addedPremise(pm.toPremiseData());
58
99
  this.markDirty();
59
100
  if (this.conclusionPremiseId === undefined) {
60
101
  this.conclusionPremiseId = id;
@@ -73,7 +114,11 @@ export class ArgumentEngine {
73
114
  const pm = this.premises.get(premiseId);
74
115
  if (!pm)
75
116
  return { result: undefined, changes: {} };
76
- const data = pm.toData();
117
+ const data = pm.toPremiseData();
118
+ // Clean up expression index for removed premise's expressions
119
+ for (const expr of pm.getExpressions()) {
120
+ this.expressionIndex.delete(expr.id);
121
+ }
77
122
  this.premises.delete(premiseId);
78
123
  const collector = new ChangeCollector();
79
124
  collector.removedPremise(data);
@@ -190,6 +235,89 @@ export class ArgumentEngine {
190
235
  getVariables() {
191
236
  return this.variables.toArray();
192
237
  }
238
+ /** Returns the variable with the given ID, or `undefined` if not found. */
239
+ getVariable(variableId) {
240
+ return this.variables.getVariable(variableId);
241
+ }
242
+ /** Returns `true` if a variable with the given ID exists. */
243
+ hasVariable(variableId) {
244
+ return this.variables.hasVariable(variableId);
245
+ }
246
+ /** Returns the variable with the given symbol, or `undefined` if not found. */
247
+ getVariableBySymbol(symbol) {
248
+ return this.variables.getVariableBySymbol(symbol);
249
+ }
250
+ /**
251
+ * Builds a Map keyed by a caller-supplied function over all variables.
252
+ * Useful for indexing by extension fields (e.g. statementId).
253
+ * The caller should cache the result — this is O(n) per call.
254
+ */
255
+ buildVariableIndex(keyFn) {
256
+ const map = new Map();
257
+ for (const v of this.variables.toArray()) {
258
+ map.set(keyFn(v), v);
259
+ }
260
+ return map;
261
+ }
262
+ /** Returns an expression by ID from any premise, or `undefined` if not found. */
263
+ getExpression(expressionId) {
264
+ const premiseId = this.expressionIndex.get(expressionId);
265
+ if (premiseId === undefined)
266
+ return undefined;
267
+ return this.premises.get(premiseId)?.getExpression(expressionId);
268
+ }
269
+ /** Returns `true` if an expression with the given ID exists in any premise. */
270
+ hasExpression(expressionId) {
271
+ return this.expressionIndex.has(expressionId);
272
+ }
273
+ /** Returns the premise ID that contains the given expression, or `undefined`. */
274
+ getExpressionPremiseId(expressionId) {
275
+ return this.expressionIndex.get(expressionId);
276
+ }
277
+ /** Returns the PremiseEngine containing the given expression, or `undefined`. */
278
+ findPremiseByExpressionId(expressionId) {
279
+ const premiseId = this.expressionIndex.get(expressionId);
280
+ if (premiseId === undefined)
281
+ return undefined;
282
+ return this.premises.get(premiseId);
283
+ }
284
+ /** Returns all expressions across all premises, sorted by ID. */
285
+ getAllExpressions() {
286
+ const all = [];
287
+ for (const pe of this.listPremises()) {
288
+ all.push(...pe.getExpressions());
289
+ }
290
+ return all.sort((a, b) => a.id.localeCompare(b.id));
291
+ }
292
+ /**
293
+ * Returns all expressions that reference the given variable ID,
294
+ * across all premises.
295
+ */
296
+ getExpressionsByVariableId(variableId) {
297
+ const result = [];
298
+ for (const pe of this.listPremises()) {
299
+ const refIds = pe.getReferencedVariableIds();
300
+ if (!refIds.has(variableId))
301
+ continue;
302
+ for (const expr of pe.getExpressions()) {
303
+ if (expr.type === "variable" &&
304
+ expr.variableId === variableId) {
305
+ result.push(expr);
306
+ }
307
+ }
308
+ }
309
+ return result;
310
+ }
311
+ /** Returns the root expression from each premise that has one. */
312
+ listRootExpressions() {
313
+ const roots = [];
314
+ for (const pe of this.listPremises()) {
315
+ const root = pe.getRootExpression();
316
+ if (root)
317
+ roots.push(root);
318
+ }
319
+ return roots;
320
+ }
193
321
  /** Returns the current role assignments (conclusion premise ID only; supporting is derived). */
194
322
  getRoleState() {
195
323
  return {
@@ -245,16 +373,105 @@ export class ArgumentEngine {
245
373
  return this.listPremises().filter((pm) => pm.isInference() && pm.getId() !== this.conclusionPremiseId);
246
374
  }
247
375
  /** Returns a serializable snapshot of the full engine state. */
248
- toData() {
376
+ snapshot() {
249
377
  return {
250
- argument: { ...this.argument, checksum: this.checksum() },
251
- premises: this.listPremises().map((pm) => pm.toData()),
252
- roles: this.getRoleState(),
378
+ argument: { ...this.argument },
379
+ variables: this.variables.snapshot(),
380
+ premises: this.listPremises().map((pe) => pe.snapshot()),
381
+ ...(this.conclusionPremiseId !== undefined
382
+ ? { conclusionPremiseId: this.conclusionPremiseId }
383
+ : {}),
384
+ config: {
385
+ checksumConfig: this.checksumConfig,
386
+ positionConfig: this.positionConfig,
387
+ },
253
388
  };
254
389
  }
255
- /** Alias for {@link toData}. */
256
- exportState() {
257
- return this.toData();
390
+ /** Creates a new ArgumentEngine from a previously captured snapshot. */
391
+ static fromSnapshot(snapshot) {
392
+ const engine = new ArgumentEngine(snapshot.argument, snapshot.config);
393
+ // Restore variables
394
+ for (const v of snapshot.variables.variables) {
395
+ engine.addVariable(v);
396
+ }
397
+ // Restore premises using PremiseEngine.fromSnapshot
398
+ for (const premiseSnap of snapshot.premises) {
399
+ const pe = PremiseEngine.fromSnapshot(premiseSnap, snapshot.argument, engine.variables, engine.expressionIndex);
400
+ engine.premises.set(pe.getId(), pe);
401
+ }
402
+ // Restore conclusion role (don't use setConclusionPremise to avoid auto-assign logic)
403
+ engine.conclusionPremiseId = snapshot.conclusionPremiseId;
404
+ return engine;
405
+ }
406
+ /**
407
+ * Creates a new ArgumentEngine from flat arrays of entities, as typically
408
+ * stored in a relational database. Expressions are grouped by their
409
+ * `premiseId` field and loaded in BFS order (roots first, then children
410
+ * of already-added nodes) to satisfy parent-existence requirements.
411
+ */
412
+ static fromData(argument, variables, premises, expressions, roles, config) {
413
+ const engine = new ArgumentEngine(argument, config);
414
+ // Register variables
415
+ for (const v of variables) {
416
+ engine.addVariable(v);
417
+ }
418
+ // Group expressions by premiseId
419
+ const exprsByPremise = new Map();
420
+ for (const expr of expressions) {
421
+ const premiseId = expr
422
+ .premiseId;
423
+ let group = exprsByPremise.get(premiseId);
424
+ if (!group) {
425
+ group = [];
426
+ exprsByPremise.set(premiseId, group);
427
+ }
428
+ group.push(expr);
429
+ }
430
+ // Create premises and load their expressions in BFS order
431
+ for (const premise of premises) {
432
+ const { id: _id, argumentId: _argumentId, argumentVersion: _argumentVersion, checksum: _checksum, ...extras } = premise;
433
+ const { result: pe } = engine.createPremiseWithId(premise.id, extras);
434
+ // Add expressions in BFS order (roots first, then children)
435
+ const premiseExprs = exprsByPremise.get(premise.id) ?? [];
436
+ const pending = new Map(premiseExprs.map((e) => [e.id, e]));
437
+ let progressed = true;
438
+ while (pending.size > 0 && progressed) {
439
+ progressed = false;
440
+ for (const [eid, expr] of Array.from(pending.entries())) {
441
+ const base = expr;
442
+ if (base.parentId !== null &&
443
+ !pe.getExpression(base.parentId)) {
444
+ continue;
445
+ }
446
+ pe.addExpression(expr);
447
+ pending.delete(eid);
448
+ progressed = true;
449
+ }
450
+ }
451
+ if (pending.size > 0) {
452
+ throw new Error(`Could not resolve parent relationships for expressions: ${Array.from(pending.keys()).join(", ")}`);
453
+ }
454
+ }
455
+ // Set roles (override auto-assignment)
456
+ if (roles.conclusionPremiseId !== undefined) {
457
+ engine.setConclusionPremise(roles.conclusionPremiseId);
458
+ }
459
+ return engine;
460
+ }
461
+ /** Restores the engine to a previously captured snapshot state. */
462
+ rollback(snapshot) {
463
+ this.argument = { ...snapshot.argument };
464
+ this.checksumConfig = snapshot.config?.checksumConfig;
465
+ this.positionConfig = snapshot.config?.positionConfig;
466
+ this.variables = VariableManager.fromSnapshot(snapshot.variables);
467
+ this.premises = new Map();
468
+ this.expressionIndex = new Map();
469
+ for (const premiseSnap of snapshot.premises) {
470
+ const pe = PremiseEngine.fromSnapshot(premiseSnap, this.argument, this.variables, this.expressionIndex);
471
+ this.premises.set(pe.getId(), pe);
472
+ }
473
+ this.conclusionPremiseId = snapshot.conclusionPremiseId;
474
+ this.markDirty();
258
475
  }
259
476
  /**
260
477
  * Returns an argument-level checksum combining argument metadata, role
@@ -270,17 +487,20 @@ export class ArgumentEngine {
270
487
  }
271
488
  computeChecksum() {
272
489
  const config = this.checksumConfig;
273
- const parts = [];
274
- // Argument metadata
275
- parts.push(entityChecksum(this.argument, config?.argumentFields ??
276
- DEFAULT_CHECKSUM_CONFIG.argumentFields));
277
- // Role state
278
- parts.push(entityChecksum(this.getRoleState(), config?.roleFields ?? DEFAULT_CHECKSUM_CONFIG.roleFields));
279
- // Premise checksums (sorted by ID for determinism)
280
- for (const pm of this.listPremises()) {
281
- parts.push(pm.checksum());
490
+ const checksumMap = {};
491
+ // Argument entity checksum
492
+ checksumMap[this.argument.id] = entityChecksum(this.argument, config?.argumentFields ?? DEFAULT_CHECKSUM_CONFIG.argumentFields);
493
+ // Role state checksum (use fixed key since roles have no ID)
494
+ checksumMap.__roles__ = entityChecksum(this.getRoleState(), config?.roleFields ?? DEFAULT_CHECKSUM_CONFIG.roleFields);
495
+ // Variable checksums
496
+ for (const v of this.variables.toArray()) {
497
+ checksumMap[v.id] = v.checksum;
498
+ }
499
+ // Premise checksums (cumulative, from each PremiseEngine)
500
+ for (const pe of this.listPremises()) {
501
+ checksumMap[pe.getId()] = pe.checksum();
282
502
  }
283
- return computeHash(parts.join(":"));
503
+ return computeHash(canonicalSerialize(checksumMap));
284
504
  }
285
505
  markDirty() {
286
506
  this.checksumDirty = true;
@@ -1 +1 @@
1
- {"version":3,"file":"ArgumentEngine.js","sourceRoot":"","sources":["../../../src/lib/core/ArgumentEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArgumentEngine.js","sourceRoot":"","sources":["../../../src/lib/core/ArgumentEngine.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  import type { TCoreLogicalOperatorType, TCorePropositionalExpression } from "../schemata/index.js";
2
2
  import type { ChangeCollector } from "./ChangeCollector.js";
3
- import { type TCorePositionConfig } from "../utils/position.js";
3
+ import type { TLogicEngineOptions } from "./ArgumentEngine.js";
4
4
  export type TExpressionInput<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression> = TExpr extends infer U ? U extends TCorePropositionalExpression ? Omit<U, "checksum"> : never : never;
5
5
  export type TExpressionWithoutPosition<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression> = TExpr extends infer U ? U extends TCorePropositionalExpression ? Omit<U, "position" | "checksum"> : never : never;
6
+ export type TExpressionManagerSnapshot<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression> = {
7
+ expressions: TExpr[];
8
+ config?: TLogicEngineOptions;
9
+ };
6
10
  /** Fields that may be updated on an existing expression. */
7
11
  export type TExpressionUpdate = {
8
12
  position?: number;
@@ -17,7 +21,7 @@ export type TExpressionUpdate = {
17
21
  * index. Structural invariants (child limits, root-only operators, position
18
22
  * uniqueness) are enforced on every mutation.
19
23
  *
20
- * This class is an internal building block used by {@link PremiseManager}
24
+ * This class is an internal building block used by {@link PremiseEngine}
21
25
  * and is not part of the public API.
22
26
  */
23
27
  export declare class ExpressionManager<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression> {
@@ -25,11 +29,13 @@ export declare class ExpressionManager<TExpr extends TCorePropositionalExpressio
25
29
  private childExpressionIdsByParentId;
26
30
  private childPositionsByParentId;
27
31
  private positionConfig;
32
+ private config?;
28
33
  private collector;
29
34
  setCollector(collector: ChangeCollector | null): void;
30
- constructor(initialExpressions?: TExpressionInput<TExpr>[], positionConfig?: TCorePositionConfig);
35
+ constructor(config?: TLogicEngineOptions);
36
+ private attachChecksum;
31
37
  /** Returns all expressions sorted by ID for deterministic output. */
32
- toArray(): TExpressionInput<TExpr>[];
38
+ toArray(): TExpr[];
33
39
  /**
34
40
  * Adds an expression to the tree.
35
41
  *
@@ -72,7 +78,7 @@ export declare class ExpressionManager<TExpr extends TCorePropositionalExpressio
72
78
  * @throws If `variableId` is set on a non-variable expression.
73
79
  * @throws If the new position collides with a sibling.
74
80
  */
75
- updateExpression(expressionId: string, updates: TExpressionUpdate): TExpressionInput<TExpr>;
81
+ updateExpression(expressionId: string, updates: TExpressionUpdate): TExpr;
76
82
  /**
77
83
  * Removes an expression from the tree.
78
84
  *
@@ -90,16 +96,16 @@ export declare class ExpressionManager<TExpr extends TCorePropositionalExpressio
90
96
  * operator (`implies`/`iff`) that would be placed in a non-root position.
91
97
  * @returns The removed expression, or `undefined` if not found.
92
98
  */
93
- removeExpression(expressionId: string, deleteSubtree: boolean): TExpressionInput<TExpr> | undefined;
99
+ removeExpression(expressionId: string, deleteSubtree: boolean): TExpr | undefined;
94
100
  private removeSubtree;
95
101
  private removeAndPromote;
96
102
  private collapseIfNeeded;
97
103
  /** Returns `true` if any expression in the tree references the given variable ID. */
98
104
  hasVariableReference(variableId: string): boolean;
99
105
  /** Returns the expression with the given ID, or `undefined` if not found. */
100
- getExpression(expressionId: string): TExpressionInput<TExpr> | undefined;
106
+ getExpression(expressionId: string): TExpr | undefined;
101
107
  /** Returns the children of the given parent, sorted by position. */
102
- getChildExpressions(parentId: string | null): TExpressionInput<TExpr>[];
108
+ getChildExpressions(parentId: string | null): TExpr[];
103
109
  private loadInitialExpressions;
104
110
  private assertChildLimit;
105
111
  private reparent;
@@ -122,5 +128,9 @@ export declare class ExpressionManager<TExpr extends TCorePropositionalExpressio
122
128
  * @throws If an `implies`/`iff` expression would be inserted at a non-root position.
123
129
  */
124
130
  insertExpression(expression: TExpressionInput<TExpr>, leftNodeId?: string, rightNodeId?: string): void;
131
+ /** Returns a serializable snapshot of the current state. */
132
+ snapshot(): TExpressionManagerSnapshot<TExpr>;
133
+ /** Creates a new ExpressionManager from a previously captured snapshot. */
134
+ static fromSnapshot<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression>(snapshot: TExpressionManagerSnapshot<TExpr>): ExpressionManager<TExpr>;
125
135
  }
126
136
  //# sourceMappingURL=ExpressionManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressionManager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/ExpressionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExpressionManager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/ExpressionManager.ts"],"names":[],"mappings":"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"}