@polintpro/proposit-core 0.2.11 → 0.4.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.
- package/README.md +14 -525
- package/dist/cli/commands/diff.js +1 -1
- package/dist/cli/commands/diff.js.map +1 -1
- package/dist/cli/commands/premises.js +2 -2
- package/dist/cli/commands/premises.js.map +1 -1
- package/dist/cli/commands/sources.d.ts +3 -0
- package/dist/cli/commands/sources.d.ts.map +1 -0
- package/dist/cli/commands/sources.js +175 -0
- package/dist/cli/commands/sources.js.map +1 -0
- package/dist/cli/commands/{versionShow.d.ts → version-show.d.ts} +1 -1
- package/dist/cli/commands/version-show.d.ts.map +1 -0
- package/dist/cli/commands/{versionShow.js → version-show.js} +1 -1
- package/dist/cli/commands/version-show.js.map +1 -0
- package/dist/cli/config.d.ts +2 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +6 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/engine.d.ts +1 -1
- package/dist/cli/engine.d.ts.map +1 -1
- package/dist/cli/engine.js +40 -2
- package/dist/cli/engine.js.map +1 -1
- package/dist/cli/import.d.ts +1 -1
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +1 -1
- package/dist/cli/import.js.map +1 -1
- package/dist/cli/output/{diffRenderer.d.ts → diff-renderer.d.ts} +1 -1
- package/dist/cli/output/diff-renderer.d.ts.map +1 -0
- package/dist/cli/output/{diffRenderer.js → diff-renderer.js} +1 -1
- package/dist/cli/output/diff-renderer.js.map +1 -0
- package/dist/cli/schemata.d.ts +8 -0
- package/dist/cli/schemata.d.ts.map +1 -1
- package/dist/cli/schemata.js +10 -0
- package/dist/cli/schemata.js.map +1 -1
- package/dist/cli/storage/sources.d.ts +11 -0
- package/dist/cli/storage/sources.d.ts.map +1 -0
- package/dist/cli/storage/sources.js +105 -0
- package/dist/cli/storage/sources.js.map +1 -0
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/extensions/ieee/index.d.ts +3 -0
- package/dist/extensions/ieee/index.d.ts.map +1 -0
- package/dist/extensions/ieee/index.js +3 -0
- package/dist/extensions/ieee/index.js.map +1 -0
- package/dist/extensions/ieee/references.d.ts +620 -0
- package/dist/extensions/ieee/references.d.ts.map +1 -0
- package/dist/extensions/ieee/references.js +450 -0
- package/dist/extensions/ieee/references.js.map +1 -0
- package/dist/extensions/ieee/source.d.ts +286 -0
- package/dist/extensions/ieee/source.d.ts.map +1 -0
- package/dist/extensions/ieee/source.js +12 -0
- package/dist/extensions/ieee/source.js.map +1 -0
- package/dist/lib/consts.d.ts.map +1 -1
- package/dist/lib/consts.js +19 -0
- package/dist/lib/consts.js.map +1 -1
- package/dist/lib/core/argument-engine.d.ts +134 -0
- package/dist/lib/core/argument-engine.d.ts.map +1 -0
- package/dist/lib/core/{argumentEngine.js → argument-engine.js} +303 -120
- package/dist/lib/core/argument-engine.js.map +1 -0
- package/dist/lib/core/{changeCollector.d.ts → change-collector.d.ts} +13 -3
- package/dist/lib/core/change-collector.d.ts.map +1 -0
- package/dist/lib/core/{changeCollector.js → change-collector.js} +28 -1
- package/dist/lib/core/change-collector.js.map +1 -0
- package/dist/lib/core/diff.d.ts +9 -3
- package/dist/lib/core/diff.d.ts.map +1 -1
- package/dist/lib/core/diff.js +58 -0
- package/dist/lib/core/diff.js.map +1 -1
- package/dist/lib/core/{expressionManager.d.ts → expression-manager.d.ts} +24 -3
- package/dist/lib/core/expression-manager.d.ts.map +1 -0
- package/dist/lib/core/{expressionManager.js → expression-manager.js} +104 -1
- package/dist/lib/core/expression-manager.js.map +1 -0
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +334 -0
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -0
- package/dist/lib/core/interfaces/argument-engine.interfaces.js +2 -0
- package/dist/lib/core/interfaces/argument-engine.interfaces.js.map +1 -0
- package/dist/lib/core/interfaces/index.d.ts +5 -0
- package/dist/lib/core/interfaces/index.d.ts.map +1 -0
- package/dist/lib/core/interfaces/index.js +2 -0
- package/dist/lib/core/interfaces/index.js.map +1 -0
- package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts +317 -0
- package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts.map +1 -0
- package/dist/lib/core/interfaces/premise-engine.interfaces.js +2 -0
- package/dist/lib/core/interfaces/premise-engine.interfaces.js.map +1 -0
- package/dist/lib/core/interfaces/shared.interfaces.d.ts +24 -0
- package/dist/lib/core/interfaces/shared.interfaces.d.ts.map +1 -0
- package/dist/lib/core/interfaces/shared.interfaces.js +2 -0
- package/dist/lib/core/interfaces/shared.interfaces.js.map +1 -0
- package/dist/lib/core/interfaces/source-management.interfaces.d.ts +110 -0
- package/dist/lib/core/interfaces/source-management.interfaces.d.ts.map +1 -0
- package/dist/lib/core/interfaces/source-management.interfaces.js +2 -0
- package/dist/lib/core/interfaces/source-management.interfaces.js.map +1 -0
- package/dist/lib/core/parser/formula.d.ts +9 -9
- package/dist/lib/core/parser/formula.d.ts.map +1 -1
- package/dist/lib/core/parser/formula.js.map +1 -1
- package/dist/lib/core/premise-engine.d.ts +83 -0
- package/dist/lib/core/premise-engine.d.ts.map +1 -0
- package/dist/lib/core/{premiseEngine.js → premise-engine.js} +130 -134
- package/dist/lib/core/premise-engine.js.map +1 -0
- package/dist/lib/core/relationships.d.ts +2 -2
- package/dist/lib/core/relationships.d.ts.map +1 -1
- package/dist/lib/core/relationships.js.map +1 -1
- package/dist/lib/core/source-manager.d.ts +109 -0
- package/dist/lib/core/source-manager.d.ts.map +1 -0
- package/dist/lib/core/source-manager.js +420 -0
- package/dist/lib/core/source-manager.js.map +1 -0
- package/dist/lib/core/{variableManager.d.ts → variable-manager.d.ts} +2 -2
- package/dist/lib/core/variable-manager.d.ts.map +1 -0
- package/dist/lib/core/{variableManager.js → variable-manager.js} +1 -1
- package/dist/lib/core/variable-manager.js.map +1 -0
- package/dist/lib/index.d.ts +12 -9
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +4 -3
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/schemata/index.d.ts +1 -0
- package/dist/lib/schemata/index.d.ts.map +1 -1
- package/dist/lib/schemata/index.js +1 -0
- package/dist/lib/schemata/index.js.map +1 -1
- package/dist/lib/schemata/shared.d.ts +9 -9
- package/dist/lib/schemata/shared.d.ts.map +1 -1
- package/dist/lib/schemata/shared.js +4 -4
- package/dist/lib/schemata/shared.js.map +1 -1
- package/dist/lib/schemata/source.d.ts +28 -0
- package/dist/lib/schemata/source.d.ts.map +1 -0
- package/dist/lib/schemata/source.js +35 -0
- package/dist/lib/schemata/source.js.map +1 -0
- package/dist/lib/types/checksum.d.ts +6 -0
- package/dist/lib/types/checksum.d.ts.map +1 -1
- package/dist/lib/types/diff.d.ts +9 -3
- package/dist/lib/types/diff.d.ts.map +1 -1
- package/dist/lib/types/evaluation.d.ts +1 -1
- package/dist/lib/types/evaluation.d.ts.map +1 -1
- package/dist/lib/types/mutation.d.ts +7 -3
- package/dist/lib/types/mutation.d.ts.map +1 -1
- package/dist/lib/types/reactive.d.ts +5 -2
- package/dist/lib/types/reactive.d.ts.map +1 -1
- package/dist/lib/utils/{defaultMap.d.ts → default-map.d.ts} +3 -3
- package/dist/lib/utils/default-map.d.ts.map +1 -0
- package/dist/lib/utils/{defaultMap.js → default-map.js} +1 -1
- package/dist/lib/utils/default-map.js.map +1 -0
- package/package.json +6 -1
- package/dist/cli/commands/versionShow.d.ts.map +0 -1
- package/dist/cli/commands/versionShow.js.map +0 -1
- package/dist/cli/output/diffRenderer.d.ts.map +0 -1
- package/dist/cli/output/diffRenderer.js.map +0 -1
- package/dist/lib/core/argumentEngine.d.ts +0 -226
- package/dist/lib/core/argumentEngine.d.ts.map +0 -1
- package/dist/lib/core/argumentEngine.js.map +0 -1
- package/dist/lib/core/changeCollector.d.ts.map +0 -1
- package/dist/lib/core/changeCollector.js.map +0 -1
- package/dist/lib/core/expressionManager.d.ts.map +0 -1
- package/dist/lib/core/expressionManager.js.map +0 -1
- package/dist/lib/core/premiseEngine.d.ts +0 -202
- package/dist/lib/core/premiseEngine.d.ts.map +0 -1
- package/dist/lib/core/premiseEngine.js.map +0 -1
- package/dist/lib/core/variableManager.d.ts.map +0 -1
- package/dist/lib/core/variableManager.js.map +0 -1
- package/dist/lib/utils/defaultMap.d.ts.map +0 -1
- package/dist/lib/utils/defaultMap.js.map +0 -1
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { TCoreSource, TCoreVariableSourceAssociation, TCoreExpressionSourceAssociation } from "../schemata/index.js";
|
|
2
|
+
export interface TSourceRemovalResult<TSource extends TCoreSource = TCoreSource> {
|
|
3
|
+
removedVariableAssociations: TCoreVariableSourceAssociation[];
|
|
4
|
+
removedExpressionAssociations: TCoreExpressionSourceAssociation[];
|
|
5
|
+
removedOrphanSources: TSource[];
|
|
6
|
+
}
|
|
7
|
+
export interface TSourceManagerSnapshot<TSource extends TCoreSource = TCoreSource> {
|
|
8
|
+
sources: TSource[];
|
|
9
|
+
variableSourceAssociations: TCoreVariableSourceAssociation[];
|
|
10
|
+
expressionSourceAssociations: TCoreExpressionSourceAssociation[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Registry for sources and their associations to variables and expressions
|
|
14
|
+
* within an argument. Shared across all premises.
|
|
15
|
+
*
|
|
16
|
+
* Enforces uniqueness of source and association IDs. Automatically removes
|
|
17
|
+
* orphaned sources (sources with zero remaining associations) when
|
|
18
|
+
* associations are deleted.
|
|
19
|
+
*/
|
|
20
|
+
export declare class SourceManager<TSource extends TCoreSource = TCoreSource> {
|
|
21
|
+
private sources;
|
|
22
|
+
private variableAssociations;
|
|
23
|
+
private expressionAssociations;
|
|
24
|
+
private sourceToAssociations;
|
|
25
|
+
private variableToAssociations;
|
|
26
|
+
private expressionToAssociations;
|
|
27
|
+
constructor();
|
|
28
|
+
/**
|
|
29
|
+
* Registers a source.
|
|
30
|
+
*
|
|
31
|
+
* @throws If a source with the same ID already exists.
|
|
32
|
+
*/
|
|
33
|
+
addSource(source: TSource): void;
|
|
34
|
+
/**
|
|
35
|
+
* Removes a source and cascades deletion to all its associations.
|
|
36
|
+
*
|
|
37
|
+
* @throws If the source does not exist.
|
|
38
|
+
*/
|
|
39
|
+
removeSource(sourceId: string): TSourceRemovalResult<TSource>;
|
|
40
|
+
/**
|
|
41
|
+
* Registers a variable-source association.
|
|
42
|
+
*
|
|
43
|
+
* @throws If an association with the same ID already exists.
|
|
44
|
+
* @throws If the referenced source does not exist.
|
|
45
|
+
*/
|
|
46
|
+
addVariableSourceAssociation(assoc: TCoreVariableSourceAssociation): void;
|
|
47
|
+
/**
|
|
48
|
+
* Removes a variable-source association by ID.
|
|
49
|
+
*
|
|
50
|
+
* @returns The removed association and any orphaned sources.
|
|
51
|
+
* @throws If the association does not exist.
|
|
52
|
+
*/
|
|
53
|
+
removeVariableSourceAssociation(id: string): TSourceRemovalResult<TSource>;
|
|
54
|
+
/**
|
|
55
|
+
* Registers an expression-source association.
|
|
56
|
+
*
|
|
57
|
+
* @throws If an association with the same ID already exists.
|
|
58
|
+
* @throws If the referenced source does not exist.
|
|
59
|
+
*/
|
|
60
|
+
addExpressionSourceAssociation(assoc: TCoreExpressionSourceAssociation): void;
|
|
61
|
+
/**
|
|
62
|
+
* Removes an expression-source association by ID.
|
|
63
|
+
*
|
|
64
|
+
* @returns The removed association and any orphaned sources.
|
|
65
|
+
* @throws If the association does not exist.
|
|
66
|
+
*/
|
|
67
|
+
removeExpressionSourceAssociation(id: string): TSourceRemovalResult<TSource>;
|
|
68
|
+
/**
|
|
69
|
+
* Removes all variable-source associations for a given variable.
|
|
70
|
+
* Orphaned sources are automatically cleaned up.
|
|
71
|
+
*/
|
|
72
|
+
removeAssociationsForVariable(variableId: string): TSourceRemovalResult<TSource>;
|
|
73
|
+
/**
|
|
74
|
+
* Removes all expression-source associations for a given expression.
|
|
75
|
+
* Orphaned sources are automatically cleaned up.
|
|
76
|
+
*/
|
|
77
|
+
removeAssociationsForExpression(expressionId: string): TSourceRemovalResult<TSource>;
|
|
78
|
+
/** Returns the source with the given ID, or `undefined` if not found. */
|
|
79
|
+
getSource(id: string): TSource | undefined;
|
|
80
|
+
/** Returns all registered sources sorted by ID for deterministic output. */
|
|
81
|
+
getSources(): TSource[];
|
|
82
|
+
/** Returns all associations (variable and expression) for a given source. */
|
|
83
|
+
getAssociationsForSource(sourceId: string): {
|
|
84
|
+
variable: TCoreVariableSourceAssociation[];
|
|
85
|
+
expression: TCoreExpressionSourceAssociation[];
|
|
86
|
+
};
|
|
87
|
+
/** Returns all variable-source associations for a given variable. */
|
|
88
|
+
getAssociationsForVariable(variableId: string): TCoreVariableSourceAssociation[];
|
|
89
|
+
/** Returns all expression-source associations for a given expression. */
|
|
90
|
+
getAssociationsForExpression(expressionId: string): TCoreExpressionSourceAssociation[];
|
|
91
|
+
/** Returns all variable-source associations. */
|
|
92
|
+
getAllVariableSourceAssociations(): TCoreVariableSourceAssociation[];
|
|
93
|
+
/** Returns all expression-source associations. */
|
|
94
|
+
getAllExpressionSourceAssociations(): TCoreExpressionSourceAssociation[];
|
|
95
|
+
/** Returns a serializable snapshot of the current state. */
|
|
96
|
+
snapshot(): TSourceManagerSnapshot<TSource>;
|
|
97
|
+
/**
|
|
98
|
+
* Creates a new SourceManager from a previously captured snapshot.
|
|
99
|
+
* Rebuilds all internal maps and indices. No validation or orphan
|
|
100
|
+
* cleanup is performed — the snapshot is restored verbatim.
|
|
101
|
+
*/
|
|
102
|
+
static fromSnapshot<TSource extends TCoreSource = TCoreSource>(data: TSourceManagerSnapshot<TSource>): SourceManager<TSource>;
|
|
103
|
+
/**
|
|
104
|
+
* Checks if the given source has zero remaining associations and, if so,
|
|
105
|
+
* removes it and returns it in an array. Returns an empty array otherwise.
|
|
106
|
+
*/
|
|
107
|
+
private cleanupOrphanedSource;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=source-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/source-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,WAAW,EACX,8BAA8B,EAC9B,gCAAgC,EACnC,MAAM,sBAAsB,CAAA;AAE7B,MAAM,WAAW,oBAAoB,CACjC,OAAO,SAAS,WAAW,GAAG,WAAW;IAEzC,2BAA2B,EAAE,8BAA8B,EAAE,CAAA;IAC7D,6BAA6B,EAAE,gCAAgC,EAAE,CAAA;IACjE,oBAAoB,EAAE,OAAO,EAAE,CAAA;CAClC;AAED,MAAM,WAAW,sBAAsB,CACnC,OAAO,SAAS,WAAW,GAAG,WAAW;IAEzC,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,0BAA0B,EAAE,8BAA8B,EAAE,CAAA;IAC5D,4BAA4B,EAAE,gCAAgC,EAAE,CAAA;CACnE;AAED;;;;;;;GAOG;AACH,qBAAa,aAAa,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW;IAChE,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,oBAAoB,CAA6C;IACzE,OAAO,CAAC,sBAAsB,CAG7B;IACD,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,sBAAsB,CAA0B;IACxD,OAAO,CAAC,wBAAwB,CAA0B;;IAe1D;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAQvC;;;;OAIG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC;IAgEpE;;;;;OAKG;IACI,4BAA4B,CAC/B,KAAK,EAAE,8BAA8B,GACtC,IAAI;IAuBP;;;;;OAKG;IACI,+BAA+B,CAClC,EAAE,EAAE,MAAM,GACX,oBAAoB,CAAC,OAAO,CAAC;IAoChC;;;;;OAKG;IACI,8BAA8B,CACjC,KAAK,EAAE,gCAAgC,GACxC,IAAI;IAuBP;;;;;OAKG;IACI,iCAAiC,CACpC,EAAE,EAAE,MAAM,GACX,oBAAoB,CAAC,OAAO,CAAC;IAoChC;;;OAGG;IACI,6BAA6B,CAChC,UAAU,EAAE,MAAM,GACnB,oBAAoB,CAAC,OAAO,CAAC;IA0ChC;;;OAGG;IACI,+BAA+B,CAClC,YAAY,EAAE,MAAM,GACrB,oBAAoB,CAAC,OAAO,CAAC;IA+ChC,yEAAyE;IAClE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIjD,4EAA4E;IACrE,UAAU,IAAI,OAAO,EAAE;IAM9B,6EAA6E;IACtE,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG;QAC/C,QAAQ,EAAE,8BAA8B,EAAE,CAAA;QAC1C,UAAU,EAAE,gCAAgC,EAAE,CAAA;KACjD;IAwBD,qEAAqE;IAC9D,0BAA0B,CAC7B,UAAU,EAAE,MAAM,GACnB,8BAA8B,EAAE;IAYnC,yEAAyE;IAClE,4BAA4B,CAC/B,YAAY,EAAE,MAAM,GACrB,gCAAgC,EAAE;IAYrC,gDAAgD;IACzC,gCAAgC,IAAI,8BAA8B,EAAE;IAI3E,kDAAkD;IAC3C,kCAAkC,IAAI,gCAAgC,EAAE;IAQ/E,4DAA4D;IACrD,QAAQ,IAAI,sBAAsB,CAAC,OAAO,CAAC;IAYlD;;;;OAIG;WACW,YAAY,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,EAChE,IAAI,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC,aAAa,CAAC,OAAO,CAAC;IAmDzB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;CAYhC"}
|
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry for sources and their associations to variables and expressions
|
|
3
|
+
* within an argument. Shared across all premises.
|
|
4
|
+
*
|
|
5
|
+
* Enforces uniqueness of source and association IDs. Automatically removes
|
|
6
|
+
* orphaned sources (sources with zero remaining associations) when
|
|
7
|
+
* associations are deleted.
|
|
8
|
+
*/
|
|
9
|
+
export class SourceManager {
|
|
10
|
+
sources;
|
|
11
|
+
variableAssociations;
|
|
12
|
+
expressionAssociations;
|
|
13
|
+
sourceToAssociations;
|
|
14
|
+
variableToAssociations;
|
|
15
|
+
expressionToAssociations;
|
|
16
|
+
constructor() {
|
|
17
|
+
this.sources = new Map();
|
|
18
|
+
this.variableAssociations = new Map();
|
|
19
|
+
this.expressionAssociations = new Map();
|
|
20
|
+
this.sourceToAssociations = new Map();
|
|
21
|
+
this.variableToAssociations = new Map();
|
|
22
|
+
this.expressionToAssociations = new Map();
|
|
23
|
+
}
|
|
24
|
+
// -----------------------------------------------------------------------
|
|
25
|
+
// Source mutations
|
|
26
|
+
// -----------------------------------------------------------------------
|
|
27
|
+
/**
|
|
28
|
+
* Registers a source.
|
|
29
|
+
*
|
|
30
|
+
* @throws If a source with the same ID already exists.
|
|
31
|
+
*/
|
|
32
|
+
addSource(source) {
|
|
33
|
+
if (this.sources.has(source.id)) {
|
|
34
|
+
throw new Error(`Source with ID "${source.id}" already exists.`);
|
|
35
|
+
}
|
|
36
|
+
this.sources.set(source.id, source);
|
|
37
|
+
this.sourceToAssociations.set(source.id, new Set());
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Removes a source and cascades deletion to all its associations.
|
|
41
|
+
*
|
|
42
|
+
* @throws If the source does not exist.
|
|
43
|
+
*/
|
|
44
|
+
removeSource(sourceId) {
|
|
45
|
+
const source = this.sources.get(sourceId);
|
|
46
|
+
if (!source) {
|
|
47
|
+
throw new Error(`Source "${sourceId}" does not exist.`);
|
|
48
|
+
}
|
|
49
|
+
const associationIds = this.sourceToAssociations.get(sourceId);
|
|
50
|
+
const removedVariableAssociations = [];
|
|
51
|
+
const removedExpressionAssociations = [];
|
|
52
|
+
if (associationIds) {
|
|
53
|
+
for (const assocId of associationIds) {
|
|
54
|
+
const varAssoc = this.variableAssociations.get(assocId);
|
|
55
|
+
if (varAssoc) {
|
|
56
|
+
this.variableAssociations.delete(assocId);
|
|
57
|
+
const varSet = this.variableToAssociations.get(varAssoc.variableId);
|
|
58
|
+
if (varSet) {
|
|
59
|
+
varSet.delete(assocId);
|
|
60
|
+
if (varSet.size === 0) {
|
|
61
|
+
this.variableToAssociations.delete(varAssoc.variableId);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
removedVariableAssociations.push(varAssoc);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
const exprAssoc = this.expressionAssociations.get(assocId);
|
|
68
|
+
if (exprAssoc) {
|
|
69
|
+
this.expressionAssociations.delete(assocId);
|
|
70
|
+
const exprSet = this.expressionToAssociations.get(exprAssoc.expressionId);
|
|
71
|
+
if (exprSet) {
|
|
72
|
+
exprSet.delete(assocId);
|
|
73
|
+
if (exprSet.size === 0) {
|
|
74
|
+
this.expressionToAssociations.delete(exprAssoc.expressionId);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
removedExpressionAssociations.push(exprAssoc);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
this.sources.delete(sourceId);
|
|
82
|
+
this.sourceToAssociations.delete(sourceId);
|
|
83
|
+
return {
|
|
84
|
+
removedVariableAssociations,
|
|
85
|
+
removedExpressionAssociations,
|
|
86
|
+
removedOrphanSources: [],
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
// -----------------------------------------------------------------------
|
|
90
|
+
// Variable association mutations
|
|
91
|
+
// -----------------------------------------------------------------------
|
|
92
|
+
/**
|
|
93
|
+
* Registers a variable-source association.
|
|
94
|
+
*
|
|
95
|
+
* @throws If an association with the same ID already exists.
|
|
96
|
+
* @throws If the referenced source does not exist.
|
|
97
|
+
*/
|
|
98
|
+
addVariableSourceAssociation(assoc) {
|
|
99
|
+
if (this.variableAssociations.has(assoc.id)) {
|
|
100
|
+
throw new Error(`Variable-source association with ID "${assoc.id}" already exists.`);
|
|
101
|
+
}
|
|
102
|
+
if (!this.sources.has(assoc.sourceId)) {
|
|
103
|
+
throw new Error(`Source "${assoc.sourceId}" does not exist.`);
|
|
104
|
+
}
|
|
105
|
+
this.variableAssociations.set(assoc.id, assoc);
|
|
106
|
+
const sourceSet = this.sourceToAssociations.get(assoc.sourceId);
|
|
107
|
+
sourceSet.add(assoc.id);
|
|
108
|
+
let varSet = this.variableToAssociations.get(assoc.variableId);
|
|
109
|
+
if (!varSet) {
|
|
110
|
+
varSet = new Set();
|
|
111
|
+
this.variableToAssociations.set(assoc.variableId, varSet);
|
|
112
|
+
}
|
|
113
|
+
varSet.add(assoc.id);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Removes a variable-source association by ID.
|
|
117
|
+
*
|
|
118
|
+
* @returns The removed association and any orphaned sources.
|
|
119
|
+
* @throws If the association does not exist.
|
|
120
|
+
*/
|
|
121
|
+
removeVariableSourceAssociation(id) {
|
|
122
|
+
const assoc = this.variableAssociations.get(id);
|
|
123
|
+
if (!assoc) {
|
|
124
|
+
throw new Error(`Variable-source association "${id}" does not exist.`);
|
|
125
|
+
}
|
|
126
|
+
this.variableAssociations.delete(id);
|
|
127
|
+
const sourceSet = this.sourceToAssociations.get(assoc.sourceId);
|
|
128
|
+
if (sourceSet) {
|
|
129
|
+
sourceSet.delete(id);
|
|
130
|
+
}
|
|
131
|
+
const varSet = this.variableToAssociations.get(assoc.variableId);
|
|
132
|
+
if (varSet) {
|
|
133
|
+
varSet.delete(id);
|
|
134
|
+
if (varSet.size === 0) {
|
|
135
|
+
this.variableToAssociations.delete(assoc.variableId);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const removedOrphanSources = this.cleanupOrphanedSource(assoc.sourceId);
|
|
139
|
+
return {
|
|
140
|
+
removedVariableAssociations: [assoc],
|
|
141
|
+
removedExpressionAssociations: [],
|
|
142
|
+
removedOrphanSources,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
// -----------------------------------------------------------------------
|
|
146
|
+
// Expression association mutations
|
|
147
|
+
// -----------------------------------------------------------------------
|
|
148
|
+
/**
|
|
149
|
+
* Registers an expression-source association.
|
|
150
|
+
*
|
|
151
|
+
* @throws If an association with the same ID already exists.
|
|
152
|
+
* @throws If the referenced source does not exist.
|
|
153
|
+
*/
|
|
154
|
+
addExpressionSourceAssociation(assoc) {
|
|
155
|
+
if (this.expressionAssociations.has(assoc.id)) {
|
|
156
|
+
throw new Error(`Expression-source association with ID "${assoc.id}" already exists.`);
|
|
157
|
+
}
|
|
158
|
+
if (!this.sources.has(assoc.sourceId)) {
|
|
159
|
+
throw new Error(`Source "${assoc.sourceId}" does not exist.`);
|
|
160
|
+
}
|
|
161
|
+
this.expressionAssociations.set(assoc.id, assoc);
|
|
162
|
+
const sourceSet = this.sourceToAssociations.get(assoc.sourceId);
|
|
163
|
+
sourceSet.add(assoc.id);
|
|
164
|
+
let exprSet = this.expressionToAssociations.get(assoc.expressionId);
|
|
165
|
+
if (!exprSet) {
|
|
166
|
+
exprSet = new Set();
|
|
167
|
+
this.expressionToAssociations.set(assoc.expressionId, exprSet);
|
|
168
|
+
}
|
|
169
|
+
exprSet.add(assoc.id);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Removes an expression-source association by ID.
|
|
173
|
+
*
|
|
174
|
+
* @returns The removed association and any orphaned sources.
|
|
175
|
+
* @throws If the association does not exist.
|
|
176
|
+
*/
|
|
177
|
+
removeExpressionSourceAssociation(id) {
|
|
178
|
+
const assoc = this.expressionAssociations.get(id);
|
|
179
|
+
if (!assoc) {
|
|
180
|
+
throw new Error(`Expression-source association "${id}" does not exist.`);
|
|
181
|
+
}
|
|
182
|
+
this.expressionAssociations.delete(id);
|
|
183
|
+
const sourceSet = this.sourceToAssociations.get(assoc.sourceId);
|
|
184
|
+
if (sourceSet) {
|
|
185
|
+
sourceSet.delete(id);
|
|
186
|
+
}
|
|
187
|
+
const exprSet = this.expressionToAssociations.get(assoc.expressionId);
|
|
188
|
+
if (exprSet) {
|
|
189
|
+
exprSet.delete(id);
|
|
190
|
+
if (exprSet.size === 0) {
|
|
191
|
+
this.expressionToAssociations.delete(assoc.expressionId);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const removedOrphanSources = this.cleanupOrphanedSource(assoc.sourceId);
|
|
195
|
+
return {
|
|
196
|
+
removedVariableAssociations: [],
|
|
197
|
+
removedExpressionAssociations: [assoc],
|
|
198
|
+
removedOrphanSources,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
// -----------------------------------------------------------------------
|
|
202
|
+
// Bulk association removal (for cascade from variable/expression deletion)
|
|
203
|
+
// -----------------------------------------------------------------------
|
|
204
|
+
/**
|
|
205
|
+
* Removes all variable-source associations for a given variable.
|
|
206
|
+
* Orphaned sources are automatically cleaned up.
|
|
207
|
+
*/
|
|
208
|
+
removeAssociationsForVariable(variableId) {
|
|
209
|
+
const assocIds = this.variableToAssociations.get(variableId);
|
|
210
|
+
if (!assocIds || assocIds.size === 0) {
|
|
211
|
+
return {
|
|
212
|
+
removedVariableAssociations: [],
|
|
213
|
+
removedExpressionAssociations: [],
|
|
214
|
+
removedOrphanSources: [],
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
const removedVariableAssociations = [];
|
|
218
|
+
const sourceIdsToCheck = new Set();
|
|
219
|
+
for (const assocId of assocIds) {
|
|
220
|
+
const assoc = this.variableAssociations.get(assocId);
|
|
221
|
+
if (!assoc)
|
|
222
|
+
continue;
|
|
223
|
+
this.variableAssociations.delete(assocId);
|
|
224
|
+
sourceIdsToCheck.add(assoc.sourceId);
|
|
225
|
+
const sourceSet = this.sourceToAssociations.get(assoc.sourceId);
|
|
226
|
+
if (sourceSet) {
|
|
227
|
+
sourceSet.delete(assocId);
|
|
228
|
+
}
|
|
229
|
+
removedVariableAssociations.push(assoc);
|
|
230
|
+
}
|
|
231
|
+
this.variableToAssociations.delete(variableId);
|
|
232
|
+
const removedOrphanSources = [];
|
|
233
|
+
for (const sourceId of sourceIdsToCheck) {
|
|
234
|
+
removedOrphanSources.push(...this.cleanupOrphanedSource(sourceId));
|
|
235
|
+
}
|
|
236
|
+
return {
|
|
237
|
+
removedVariableAssociations,
|
|
238
|
+
removedExpressionAssociations: [],
|
|
239
|
+
removedOrphanSources,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Removes all expression-source associations for a given expression.
|
|
244
|
+
* Orphaned sources are automatically cleaned up.
|
|
245
|
+
*/
|
|
246
|
+
removeAssociationsForExpression(expressionId) {
|
|
247
|
+
const assocIds = this.expressionToAssociations.get(expressionId);
|
|
248
|
+
if (!assocIds || assocIds.size === 0) {
|
|
249
|
+
return {
|
|
250
|
+
removedVariableAssociations: [],
|
|
251
|
+
removedExpressionAssociations: [],
|
|
252
|
+
removedOrphanSources: [],
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
const removedExpressionAssociations = [];
|
|
256
|
+
const sourceIdsToCheck = new Set();
|
|
257
|
+
for (const assocId of assocIds) {
|
|
258
|
+
const assoc = this.expressionAssociations.get(assocId);
|
|
259
|
+
if (!assoc)
|
|
260
|
+
continue;
|
|
261
|
+
this.expressionAssociations.delete(assocId);
|
|
262
|
+
sourceIdsToCheck.add(assoc.sourceId);
|
|
263
|
+
const sourceSet = this.sourceToAssociations.get(assoc.sourceId);
|
|
264
|
+
if (sourceSet) {
|
|
265
|
+
sourceSet.delete(assocId);
|
|
266
|
+
}
|
|
267
|
+
removedExpressionAssociations.push(assoc);
|
|
268
|
+
}
|
|
269
|
+
this.expressionToAssociations.delete(expressionId);
|
|
270
|
+
const removedOrphanSources = [];
|
|
271
|
+
for (const sourceId of sourceIdsToCheck) {
|
|
272
|
+
removedOrphanSources.push(...this.cleanupOrphanedSource(sourceId));
|
|
273
|
+
}
|
|
274
|
+
return {
|
|
275
|
+
removedVariableAssociations: [],
|
|
276
|
+
removedExpressionAssociations,
|
|
277
|
+
removedOrphanSources,
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
// -----------------------------------------------------------------------
|
|
281
|
+
// Queries
|
|
282
|
+
// -----------------------------------------------------------------------
|
|
283
|
+
/** Returns the source with the given ID, or `undefined` if not found. */
|
|
284
|
+
getSource(id) {
|
|
285
|
+
return this.sources.get(id);
|
|
286
|
+
}
|
|
287
|
+
/** Returns all registered sources sorted by ID for deterministic output. */
|
|
288
|
+
getSources() {
|
|
289
|
+
return Array.from(this.sources.values()).sort((a, b) => a.id.localeCompare(b.id));
|
|
290
|
+
}
|
|
291
|
+
/** Returns all associations (variable and expression) for a given source. */
|
|
292
|
+
getAssociationsForSource(sourceId) {
|
|
293
|
+
const assocIds = this.sourceToAssociations.get(sourceId);
|
|
294
|
+
if (!assocIds) {
|
|
295
|
+
return { variable: [], expression: [] };
|
|
296
|
+
}
|
|
297
|
+
const variable = [];
|
|
298
|
+
const expression = [];
|
|
299
|
+
for (const assocId of assocIds) {
|
|
300
|
+
const varAssoc = this.variableAssociations.get(assocId);
|
|
301
|
+
if (varAssoc) {
|
|
302
|
+
variable.push(varAssoc);
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
const exprAssoc = this.expressionAssociations.get(assocId);
|
|
306
|
+
if (exprAssoc) {
|
|
307
|
+
expression.push(exprAssoc);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
return { variable, expression };
|
|
311
|
+
}
|
|
312
|
+
/** Returns all variable-source associations for a given variable. */
|
|
313
|
+
getAssociationsForVariable(variableId) {
|
|
314
|
+
const assocIds = this.variableToAssociations.get(variableId);
|
|
315
|
+
if (!assocIds)
|
|
316
|
+
return [];
|
|
317
|
+
const result = [];
|
|
318
|
+
for (const assocId of assocIds) {
|
|
319
|
+
const assoc = this.variableAssociations.get(assocId);
|
|
320
|
+
if (assoc)
|
|
321
|
+
result.push(assoc);
|
|
322
|
+
}
|
|
323
|
+
return result;
|
|
324
|
+
}
|
|
325
|
+
/** Returns all expression-source associations for a given expression. */
|
|
326
|
+
getAssociationsForExpression(expressionId) {
|
|
327
|
+
const assocIds = this.expressionToAssociations.get(expressionId);
|
|
328
|
+
if (!assocIds)
|
|
329
|
+
return [];
|
|
330
|
+
const result = [];
|
|
331
|
+
for (const assocId of assocIds) {
|
|
332
|
+
const assoc = this.expressionAssociations.get(assocId);
|
|
333
|
+
if (assoc)
|
|
334
|
+
result.push(assoc);
|
|
335
|
+
}
|
|
336
|
+
return result;
|
|
337
|
+
}
|
|
338
|
+
/** Returns all variable-source associations. */
|
|
339
|
+
getAllVariableSourceAssociations() {
|
|
340
|
+
return Array.from(this.variableAssociations.values());
|
|
341
|
+
}
|
|
342
|
+
/** Returns all expression-source associations. */
|
|
343
|
+
getAllExpressionSourceAssociations() {
|
|
344
|
+
return Array.from(this.expressionAssociations.values());
|
|
345
|
+
}
|
|
346
|
+
// -----------------------------------------------------------------------
|
|
347
|
+
// Snapshot & restoration
|
|
348
|
+
// -----------------------------------------------------------------------
|
|
349
|
+
/** Returns a serializable snapshot of the current state. */
|
|
350
|
+
snapshot() {
|
|
351
|
+
return {
|
|
352
|
+
sources: this.getSources(),
|
|
353
|
+
variableSourceAssociations: Array.from(this.variableAssociations.values()).sort((a, b) => a.id.localeCompare(b.id)),
|
|
354
|
+
expressionSourceAssociations: Array.from(this.expressionAssociations.values()).sort((a, b) => a.id.localeCompare(b.id)),
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Creates a new SourceManager from a previously captured snapshot.
|
|
359
|
+
* Rebuilds all internal maps and indices. No validation or orphan
|
|
360
|
+
* cleanup is performed — the snapshot is restored verbatim.
|
|
361
|
+
*/
|
|
362
|
+
static fromSnapshot(data) {
|
|
363
|
+
const sm = new SourceManager();
|
|
364
|
+
// Restore sources (without creating empty sourceToAssociations entries
|
|
365
|
+
// here — we build those from the associations below)
|
|
366
|
+
for (const source of data.sources) {
|
|
367
|
+
sm.sources.set(source.id, source);
|
|
368
|
+
sm.sourceToAssociations.set(source.id, new Set());
|
|
369
|
+
}
|
|
370
|
+
// Restore variable associations and rebuild indices
|
|
371
|
+
for (const assoc of data.variableSourceAssociations) {
|
|
372
|
+
sm.variableAssociations.set(assoc.id, assoc);
|
|
373
|
+
const sourceSet = sm.sourceToAssociations.get(assoc.sourceId);
|
|
374
|
+
if (sourceSet) {
|
|
375
|
+
sourceSet.add(assoc.id);
|
|
376
|
+
}
|
|
377
|
+
let varSet = sm.variableToAssociations.get(assoc.variableId);
|
|
378
|
+
if (!varSet) {
|
|
379
|
+
varSet = new Set();
|
|
380
|
+
sm.variableToAssociations.set(assoc.variableId, varSet);
|
|
381
|
+
}
|
|
382
|
+
varSet.add(assoc.id);
|
|
383
|
+
}
|
|
384
|
+
// Restore expression associations and rebuild indices
|
|
385
|
+
for (const assoc of data.expressionSourceAssociations) {
|
|
386
|
+
sm.expressionAssociations.set(assoc.id, assoc);
|
|
387
|
+
const sourceSet = sm.sourceToAssociations.get(assoc.sourceId);
|
|
388
|
+
if (sourceSet) {
|
|
389
|
+
sourceSet.add(assoc.id);
|
|
390
|
+
}
|
|
391
|
+
let exprSet = sm.expressionToAssociations.get(assoc.expressionId);
|
|
392
|
+
if (!exprSet) {
|
|
393
|
+
exprSet = new Set();
|
|
394
|
+
sm.expressionToAssociations.set(assoc.expressionId, exprSet);
|
|
395
|
+
}
|
|
396
|
+
exprSet.add(assoc.id);
|
|
397
|
+
}
|
|
398
|
+
return sm;
|
|
399
|
+
}
|
|
400
|
+
// -----------------------------------------------------------------------
|
|
401
|
+
// Internal helpers
|
|
402
|
+
// -----------------------------------------------------------------------
|
|
403
|
+
/**
|
|
404
|
+
* Checks if the given source has zero remaining associations and, if so,
|
|
405
|
+
* removes it and returns it in an array. Returns an empty array otherwise.
|
|
406
|
+
*/
|
|
407
|
+
cleanupOrphanedSource(sourceId) {
|
|
408
|
+
const sourceSet = this.sourceToAssociations.get(sourceId);
|
|
409
|
+
if (sourceSet?.size === 0) {
|
|
410
|
+
const source = this.sources.get(sourceId);
|
|
411
|
+
if (source) {
|
|
412
|
+
this.sources.delete(sourceId);
|
|
413
|
+
this.sourceToAssociations.delete(sourceId);
|
|
414
|
+
return [source];
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
return [];
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
//# sourceMappingURL=source-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-manager.js","sourceRoot":"","sources":["../../../src/lib/core/source-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TCorePropositionalVariable } from "../schemata/index.js";
|
|
2
|
-
import type { TLogicEngineOptions } from "./
|
|
2
|
+
import type { TLogicEngineOptions } from "./argument-engine.js";
|
|
3
3
|
export type TVariableManagerSnapshot<TVar extends TCorePropositionalVariable = TCorePropositionalVariable> = {
|
|
4
4
|
variables: TVar[];
|
|
5
5
|
config?: TLogicEngineOptions;
|
|
@@ -59,4 +59,4 @@ export declare class VariableManager<TVar extends TCorePropositionalVariable = T
|
|
|
59
59
|
/** Creates a new VariableManager from a previously captured snapshot. */
|
|
60
60
|
static fromSnapshot<TVar extends TCorePropositionalVariable = TCorePropositionalVariable>(snapshot: TVariableManagerSnapshot<TVar>): VariableManager<TVar>;
|
|
61
61
|
}
|
|
62
|
-
//# sourceMappingURL=
|
|
62
|
+
//# sourceMappingURL=variable-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/variable-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE/D,MAAM,MAAM,wBAAwB,CAChC,IAAI,SAAS,0BAA0B,GAAG,0BAA0B,IACpE;IACA,SAAS,EAAE,IAAI,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAC/B,CAAA;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe,CACxB,IAAI,SAAS,0BAA0B,GAAG,0BAA0B;IAEpE,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,MAAM,CAAC,CAAqB;gBAExB,MAAM,CAAC,EAAE,mBAAmB;IAMxC,8EAA8E;IACvE,OAAO,IAAI,IAAI,EAAE;IAMxB;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,IAAI;IAcjC;;;OAGG;IACI,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAW3D,oEAAoE;IAC7D,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI/C,2EAA2E;IACpE,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIxD,+EAA+E;IACxE,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAM5D;;;;;OAKG;IACI,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAmBlE;;;;;;OAMG;IACI,cAAc,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7B,IAAI,GAAG,SAAS;IAWnB,4DAA4D;IACrD,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC;IAOjD,yEAAyE;WAC3D,YAAY,CACtB,IAAI,SAAS,0BAA0B,GAAG,0BAA0B,EACtE,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC;CAOrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-manager.js","sourceRoot":"","sources":["../../../src/lib/core/variable-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -3,24 +3,27 @@
|
|
|
3
3
|
* types, schemata, and the diff function.
|
|
4
4
|
*/
|
|
5
5
|
export * from "./schemata/index.js";
|
|
6
|
-
export { ArgumentEngine } from "./core/
|
|
7
|
-
export type { TLogicEngineOptions, TArgumentEngineSnapshot, } from "./core/
|
|
8
|
-
export { PremiseEngine } from "./core/
|
|
9
|
-
export type { TPremiseEngineSnapshot } from "./core/
|
|
10
|
-
export type
|
|
11
|
-
export type {
|
|
6
|
+
export { ArgumentEngine } from "./core/argument-engine.js";
|
|
7
|
+
export type { TLogicEngineOptions, TArgumentEngineSnapshot, } from "./core/argument-engine.js";
|
|
8
|
+
export { PremiseEngine } from "./core/premise-engine.js";
|
|
9
|
+
export type { TPremiseEngineSnapshot } from "./core/premise-engine.js";
|
|
10
|
+
export type * from "./core/interfaces/index.js";
|
|
11
|
+
export type { TExpressionManagerSnapshot } from "./core/expression-manager.js";
|
|
12
|
+
export type { TVariableManagerSnapshot } from "./core/variable-manager.js";
|
|
13
|
+
export { SourceManager } from "./core/source-manager.js";
|
|
14
|
+
export type { TSourceManagerSnapshot, TSourceRemovalResult, } from "./core/source-manager.js";
|
|
12
15
|
export * from "./types/evaluation.js";
|
|
13
16
|
export * from "./types/diff.js";
|
|
14
17
|
export * from "./types/mutation.js";
|
|
15
18
|
export * from "./types/checksum.js";
|
|
16
19
|
export { computeHash, canonicalSerialize, entityChecksum, } from "./core/checksum.js";
|
|
17
|
-
export { diffArguments, defaultCompareArgument, defaultCompareVariable, defaultComparePremise, defaultCompareExpression, } from "./core/diff.js";
|
|
20
|
+
export { diffArguments, defaultCompareArgument, defaultCompareVariable, defaultComparePremise, defaultCompareExpression, defaultCompareSource, defaultCompareVariableSourceAssociation, defaultCompareExpressionSourceAssociation, } from "./core/diff.js";
|
|
18
21
|
export * from "./types/relationships.js";
|
|
19
22
|
export { analyzePremiseRelationships, buildPremiseProfile, } from "./core/relationships.js";
|
|
20
23
|
export { DEFAULT_CHECKSUM_CONFIG, createChecksumConfig } from "./consts.js";
|
|
21
24
|
export { parseFormula } from "./core/parser/formula.js";
|
|
22
|
-
export type {
|
|
23
|
-
export type { TExpressionInput, TExpressionWithoutPosition, TExpressionUpdate, } from "./core/
|
|
25
|
+
export type { TFormulaAST } from "./core/parser/formula.js";
|
|
26
|
+
export type { TExpressionInput, TExpressionWithoutPosition, TExpressionUpdate, } from "./core/expression-manager.js";
|
|
24
27
|
export { POSITION_MIN, POSITION_MAX, POSITION_INITIAL, DEFAULT_POSITION_CONFIG, midpoint, } from "./utils/position.js";
|
|
25
28
|
export type { TCorePositionConfig } from "./utils/position.js";
|
|
26
29
|
export * from "./types/reactive.js";
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,YAAY,EACR,mBAAmB,EACnB,uBAAuB,GAC1B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACtE,mBAAmB,4BAA4B,CAAA;AAC/C,YAAY,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAC9E,YAAY,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,YAAY,EACR,sBAAsB,EACtB,oBAAoB,GACvB,MAAM,0BAA0B,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,cAAc,GACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,uCAAuC,EACvC,yCAAyC,GAC5C,MAAM,gBAAgB,CAAA;AACvB,cAAc,0BAA0B,CAAA;AACxC,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,GACtB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,YAAY,EACR,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,GACpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,QAAQ,GACX,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,cAAc,qBAAqB,CAAA"}
|