@polintpro/proposit-core 0.7.3 → 0.8.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 +64 -20
- package/dist/extensions/basics/schemata.d.ts +0 -5
- package/dist/extensions/basics/schemata.d.ts.map +1 -1
- package/dist/lib/consts.d.ts.map +1 -1
- package/dist/lib/consts.js +2 -21
- package/dist/lib/consts.js.map +1 -1
- package/dist/lib/core/argument-engine.d.ts +1 -14
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +0 -128
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/argument-library.d.ts +84 -0
- package/dist/lib/core/argument-library.d.ts.map +1 -0
- package/dist/lib/core/argument-library.js +122 -0
- package/dist/lib/core/argument-library.js.map +1 -0
- package/dist/lib/core/diff.d.ts +0 -10
- package/dist/lib/core/diff.d.ts.map +1 -1
- package/dist/lib/core/diff.js +0 -31
- package/dist/lib/core/diff.js.map +1 -1
- package/dist/lib/core/fork-library.d.ts +17 -0
- package/dist/lib/core/fork-library.d.ts.map +1 -0
- package/dist/lib/core/fork-library.js +62 -0
- package/dist/lib/core/fork-library.js.map +1 -0
- package/dist/lib/core/fork-namespace.d.ts +19 -0
- package/dist/lib/core/fork-namespace.d.ts.map +1 -0
- package/dist/lib/core/fork-namespace.js +86 -0
- package/dist/lib/core/fork-namespace.js.map +1 -0
- package/dist/lib/core/fork.d.ts +30 -0
- package/dist/lib/core/fork.d.ts.map +1 -0
- package/dist/lib/core/fork.js +125 -0
- package/dist/lib/core/fork.js.map +1 -0
- package/dist/lib/core/interfaces/index.d.ts +1 -1
- package/dist/lib/core/interfaces/index.d.ts.map +1 -1
- package/dist/lib/core/interfaces/library.interfaces.d.ts +61 -0
- package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
- package/dist/lib/core/proposit-core.d.ts +110 -0
- package/dist/lib/core/proposit-core.d.ts.map +1 -0
- package/dist/lib/core/proposit-core.js +357 -0
- package/dist/lib/core/proposit-core.js.map +1 -0
- package/dist/lib/index.d.ts +11 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +8 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/schemata/argument.d.ts +0 -2
- package/dist/lib/schemata/argument.d.ts.map +1 -1
- package/dist/lib/schemata/argument.js +0 -6
- package/dist/lib/schemata/argument.js.map +1 -1
- package/dist/lib/schemata/fork.d.ts +76 -0
- package/dist/lib/schemata/fork.d.ts.map +1 -0
- package/dist/lib/schemata/fork.js +55 -0
- package/dist/lib/schemata/fork.js.map +1 -0
- 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/propositional.d.ts +0 -39
- package/dist/lib/schemata/propositional.d.ts.map +1 -1
- package/dist/lib/schemata/propositional.js +0 -30
- package/dist/lib/schemata/propositional.js.map +1 -1
- package/dist/lib/types/fork.d.ts +0 -7
- package/dist/lib/types/fork.d.ts.map +1 -1
- package/dist/lib/types/validation.d.ts +2 -1
- package/dist/lib/types/validation.d.ts.map +1 -1
- package/dist/lib/types/validation.js +2 -0
- package/dist/lib/types/validation.js.map +1 -1
- package/dist/lib/utils/changeset.d.ts +124 -0
- package/dist/lib/utils/changeset.d.ts.map +1 -0
- package/dist/lib/utils/changeset.js +221 -0
- package/dist/lib/utils/changeset.js.map +1 -0
- package/dist/lib/utils/lookup.d.ts +47 -0
- package/dist/lib/utils/lookup.d.ts.map +1 -0
- package/dist/lib/utils/lookup.js +62 -0
- package/dist/lib/utils/lookup.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/schemata/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/schemata/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
|
|
@@ -11,10 +11,6 @@ export declare const CorePropositionalVariableExpressionSchema: Type.TObject<{
|
|
|
11
11
|
checksum: Type.TString;
|
|
12
12
|
descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
|
|
13
13
|
combinedChecksum: Type.TString;
|
|
14
|
-
forkedFromExpressionId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
15
|
-
forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
16
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
17
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
18
14
|
type: Type.TLiteral<"variable">;
|
|
19
15
|
variableId: Type.TString;
|
|
20
16
|
}>;
|
|
@@ -31,10 +27,6 @@ export declare const CoreOperatorExpressionSchema: Type.TObject<{
|
|
|
31
27
|
checksum: Type.TString;
|
|
32
28
|
descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
|
|
33
29
|
combinedChecksum: Type.TString;
|
|
34
|
-
forkedFromExpressionId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
35
|
-
forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
36
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
37
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
38
30
|
type: Type.TLiteral<"operator">;
|
|
39
31
|
operator: Type.TUnion<[Type.TLiteral<"not">, Type.TLiteral<"and">, Type.TLiteral<"or">, Type.TLiteral<"implies">, Type.TLiteral<"iff">]>;
|
|
40
32
|
}>;
|
|
@@ -49,10 +41,6 @@ export declare const CoreFormulaExpressionSchema: Type.TObject<{
|
|
|
49
41
|
checksum: Type.TString;
|
|
50
42
|
descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
|
|
51
43
|
combinedChecksum: Type.TString;
|
|
52
|
-
forkedFromExpressionId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
53
|
-
forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
54
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
55
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
56
44
|
type: Type.TLiteral<"formula">;
|
|
57
45
|
}>;
|
|
58
46
|
export type TCoreFormulaExpression = Static<typeof CoreFormulaExpressionSchema>;
|
|
@@ -66,10 +54,6 @@ export declare const CorePropositionalExpressionSchema: Type.TUnion<[Type.TObjec
|
|
|
66
54
|
checksum: Type.TString;
|
|
67
55
|
descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
|
|
68
56
|
combinedChecksum: Type.TString;
|
|
69
|
-
forkedFromExpressionId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
70
|
-
forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
71
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
72
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
73
57
|
type: Type.TLiteral<"variable">;
|
|
74
58
|
variableId: Type.TString;
|
|
75
59
|
}>, Type.TObject<{
|
|
@@ -82,10 +66,6 @@ export declare const CorePropositionalExpressionSchema: Type.TUnion<[Type.TObjec
|
|
|
82
66
|
checksum: Type.TString;
|
|
83
67
|
descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
|
|
84
68
|
combinedChecksum: Type.TString;
|
|
85
|
-
forkedFromExpressionId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
86
|
-
forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
87
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
88
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
89
69
|
type: Type.TLiteral<"operator">;
|
|
90
70
|
operator: Type.TUnion<[Type.TLiteral<"not">, Type.TLiteral<"and">, Type.TLiteral<"or">, Type.TLiteral<"implies">, Type.TLiteral<"iff">]>;
|
|
91
71
|
}>, Type.TObject<{
|
|
@@ -98,10 +78,6 @@ export declare const CorePropositionalExpressionSchema: Type.TUnion<[Type.TObjec
|
|
|
98
78
|
checksum: Type.TString;
|
|
99
79
|
descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
|
|
100
80
|
combinedChecksum: Type.TString;
|
|
101
|
-
forkedFromExpressionId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
102
|
-
forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
103
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
104
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
105
81
|
type: Type.TLiteral<"formula">;
|
|
106
82
|
}>]>;
|
|
107
83
|
export type TCorePropositionalExpressionCombined = Static<typeof CorePropositionalExpressionSchema>;
|
|
@@ -116,9 +92,6 @@ export declare const CoreClaimBoundVariableSchema: Type.TObject<{
|
|
|
116
92
|
argumentVersion: Type.TNumber;
|
|
117
93
|
symbol: Type.TString;
|
|
118
94
|
checksum: Type.TString;
|
|
119
|
-
forkedFromVariableId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
120
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
121
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
122
95
|
}>;
|
|
123
96
|
export type TClaimBoundVariable = Static<typeof CoreClaimBoundVariableSchema>;
|
|
124
97
|
export declare const CorePremiseBoundVariableSchema: Type.TObject<{
|
|
@@ -130,9 +103,6 @@ export declare const CorePremiseBoundVariableSchema: Type.TObject<{
|
|
|
130
103
|
argumentVersion: Type.TNumber;
|
|
131
104
|
symbol: Type.TString;
|
|
132
105
|
checksum: Type.TString;
|
|
133
|
-
forkedFromVariableId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
134
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
135
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
136
106
|
}>;
|
|
137
107
|
export type TPremiseBoundVariable = Static<typeof CorePremiseBoundVariableSchema>;
|
|
138
108
|
export declare const CorePropositionalVariableSchema: Type.TUnion<[Type.TObject<{
|
|
@@ -143,9 +113,6 @@ export declare const CorePropositionalVariableSchema: Type.TUnion<[Type.TObject<
|
|
|
143
113
|
argumentVersion: Type.TNumber;
|
|
144
114
|
symbol: Type.TString;
|
|
145
115
|
checksum: Type.TString;
|
|
146
|
-
forkedFromVariableId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
147
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
148
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
149
116
|
}>, Type.TObject<{
|
|
150
117
|
boundPremiseId: Type.TString;
|
|
151
118
|
boundArgumentId: Type.TString;
|
|
@@ -155,9 +122,6 @@ export declare const CorePropositionalVariableSchema: Type.TUnion<[Type.TObject<
|
|
|
155
122
|
argumentVersion: Type.TNumber;
|
|
156
123
|
symbol: Type.TString;
|
|
157
124
|
checksum: Type.TString;
|
|
158
|
-
forkedFromVariableId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
159
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
160
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
161
125
|
}>]>;
|
|
162
126
|
export type TCorePropositionalVariable = Static<typeof CorePropositionalVariableSchema>;
|
|
163
127
|
/** Type guard: returns `true` if the variable is claim-bound. */
|
|
@@ -173,9 +137,6 @@ export declare const CorePremiseSchema: Type.TObject<{
|
|
|
173
137
|
checksum: Type.TString;
|
|
174
138
|
descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
|
|
175
139
|
combinedChecksum: Type.TString;
|
|
176
|
-
forkedFromPremiseId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
177
|
-
forkedFromArgumentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
178
|
-
forkedFromArgumentVersion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
|
|
179
140
|
}>;
|
|
180
141
|
export type TCorePremise = Static<typeof CorePremiseSchema>;
|
|
181
142
|
//# sourceMappingURL=propositional.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propositional.d.ts","sourceRoot":"","sources":["../../../src/lib/schemata/propositional.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAO3C,eAAO,MAAM,gCAAgC,+FAI3C,CAAA;AACF,MAAM,MAAM,iCAAiC,GAAG,MAAM,CAClD,OAAO,gCAAgC,CAC1C,CAAA;
|
|
1
|
+
{"version":3,"file":"propositional.d.ts","sourceRoot":"","sources":["../../../src/lib/schemata/propositional.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAO3C,eAAO,MAAM,gCAAgC,+FAI3C,CAAA;AACF,MAAM,MAAM,iCAAiC,GAAG,MAAM,CAClD,OAAO,gCAAgC,CAC1C,CAAA;AA+BD,eAAO,MAAM,yCAAyC;;;;;;;;;;;;EAMrD,CAAA;AAED,MAAM,MAAM,oCAAoC,GAAG,MAAM,CACrD,OAAO,yCAAyC,CACnD,CAAA;AAED,eAAO,MAAM,uBAAuB,gIAMlC,CAAA;AAEF,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;EAMxC,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CACxC,OAAO,4BAA4B,CACtC,CAAA;AAED,eAAO,MAAM,2BAA2B;;;;;;;;;;;EAKvC,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAE/E,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAI5C,CAAA;AAEF,MAAM,MAAM,oCAAoC,GAAG,MAAM,CACrD,OAAO,iCAAiC,CAC3C,CAAA;AAED,MAAM,MAAM,4BAA4B,CACpC,CAAC,SAAS,iCAAiC,GACvC,iCAAiC,IACrC,OAAO,CAAC,oCAAoC,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAA;AAc9D,eAAO,MAAM,4BAA4B;;;;;;;;EAaxC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAE7E,eAAO,MAAM,8BAA8B;;;;;;;;;EAe1C,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,CACtC,OAAO,8BAA8B,CACxC,CAAA;AAED,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;IAG1C,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAC3C,OAAO,+BAA+B,CACzC,CAAA;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CACxB,CAAC,EAAE,0BAA0B,GAC9B,CAAC,IAAI,mBAAmB,CAE1B;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAC1B,CAAC,EAAE,0BAA0B,GAC9B,CAAC,IAAI,qBAAqB,CAE5B;AAED,iGAAiG;AACjG,wBAAgB,iBAAiB,CAC7B,CAAC,EAAE,qBAAqB,EACxB,UAAU,EAAE,MAAM,GACnB,OAAO,CAET;AAED,eAAO,MAAM,iBAAiB;;;;;;;EAsB7B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
|
|
@@ -28,18 +28,6 @@ const BasePropositionalExpressionSchema = Type.Object({
|
|
|
28
28
|
combinedChecksum: Type.String({
|
|
29
29
|
description: "Hash of checksum + descendantChecksum. Equals checksum when descendantChecksum is null.",
|
|
30
30
|
}),
|
|
31
|
-
forkedFromExpressionId: Type.Optional(Nullable(UUID, {
|
|
32
|
-
description: "The ID of the expression this was forked from, or null if not a fork.",
|
|
33
|
-
})),
|
|
34
|
-
forkedFromPremiseId: Type.Optional(Nullable(UUID, {
|
|
35
|
-
description: "The premise ID of the expression this was forked from, or null if not a fork.",
|
|
36
|
-
})),
|
|
37
|
-
forkedFromArgumentId: Type.Optional(Nullable(UUID, {
|
|
38
|
-
description: "The argument ID of the expression this was forked from, or null if not a fork.",
|
|
39
|
-
})),
|
|
40
|
-
forkedFromArgumentVersion: Type.Optional(Nullable(Type.Number(), {
|
|
41
|
-
description: "The argument version of the expression this was forked from, or null if not a fork.",
|
|
42
|
-
})),
|
|
43
31
|
});
|
|
44
32
|
export const CorePropositionalVariableExpressionSchema = Type.Interface([BasePropositionalExpressionSchema], {
|
|
45
33
|
type: VariableType,
|
|
@@ -74,15 +62,6 @@ const CoreVariableBaseFields = {
|
|
|
74
62
|
checksum: Type.String({
|
|
75
63
|
description: "Entity-level checksum for sync detection.",
|
|
76
64
|
}),
|
|
77
|
-
forkedFromVariableId: Type.Optional(Nullable(UUID, {
|
|
78
|
-
description: "The ID of the variable this was forked from, or null if not a fork.",
|
|
79
|
-
})),
|
|
80
|
-
forkedFromArgumentId: Type.Optional(Nullable(UUID, {
|
|
81
|
-
description: "The argument ID of the variable this was forked from, or null if not a fork.",
|
|
82
|
-
})),
|
|
83
|
-
forkedFromArgumentVersion: Type.Optional(Nullable(Type.Number(), {
|
|
84
|
-
description: "The argument version of the variable this was forked from, or null if not a fork.",
|
|
85
|
-
})),
|
|
86
65
|
};
|
|
87
66
|
export const CoreClaimBoundVariableSchema = Type.Object({
|
|
88
67
|
...CoreVariableBaseFields,
|
|
@@ -134,15 +113,6 @@ export const CorePremiseSchema = Type.Object({
|
|
|
134
113
|
combinedChecksum: Type.String({
|
|
135
114
|
description: "Hash of checksum + descendantChecksum. Equals checksum when descendantChecksum is null.",
|
|
136
115
|
}),
|
|
137
|
-
forkedFromPremiseId: Type.Optional(Nullable(UUID, {
|
|
138
|
-
description: "The ID of the premise this was forked from, or null if not a fork.",
|
|
139
|
-
})),
|
|
140
|
-
forkedFromArgumentId: Type.Optional(Nullable(UUID, {
|
|
141
|
-
description: "The argument ID of the premise this was forked from, or null if not a fork.",
|
|
142
|
-
})),
|
|
143
|
-
forkedFromArgumentVersion: Type.Optional(Nullable(Type.Number(), {
|
|
144
|
-
description: "The argument version of the premise this was forked from, or null if not a fork.",
|
|
145
|
-
})),
|
|
146
116
|
}, {
|
|
147
117
|
additionalProperties: true,
|
|
148
118
|
description: "A premise entity with identity and metadata. Expressions and variables are managed by PremiseEngine.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propositional.js","sourceRoot":"","sources":["../../../src/lib/schemata/propositional.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAe,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AAE3C,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,YAAY;IACZ,YAAY;IACZ,WAAW;CACd,CAAC,CAAA;AAKF,MAAM,iCAAiC,GAAG,IAAI,CAAC,MAAM,CAAC;IAClD,EAAE,EAAE,IAAI;IACR,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE;IAC9B,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;QACrB,WAAW,EACP,sFAAsF;KAC7F,CAAC;IAEF,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;QAClB,WAAW,EACP,0IAA0I;KACjJ,CAAC;IAEF,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;QAClB,WAAW,EAAE,2CAA2C;KAC3D,CAAC;IAEF,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;QACxC,WAAW,EACP,uFAAuF;KAC9F,CAAC;IACF,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC;QAC1B,WAAW,EACP,yFAAyF;KAChG,CAAC;
|
|
1
|
+
{"version":3,"file":"propositional.js","sourceRoot":"","sources":["../../../src/lib/schemata/propositional.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types/fork.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable } from "../schemata/index.js";
|
|
2
|
-
import type { ArgumentEngine } from "../core/argument-engine.js";
|
|
3
1
|
import type { TCoreChecksumConfig } from "./checksum.js";
|
|
4
2
|
import type { TCorePositionConfig } from "../utils/position.js";
|
|
5
3
|
import type { TGrammarConfig } from "./grammar.js";
|
|
@@ -24,9 +22,4 @@ export interface TForkRemapTable {
|
|
|
24
22
|
expressions: Map<string, string>;
|
|
25
23
|
variables: Map<string, string>;
|
|
26
24
|
}
|
|
27
|
-
/** Result of `forkArgument`. */
|
|
28
|
-
export interface TForkArgumentResult<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable> {
|
|
29
|
-
engine: ArgumentEngine<TArg, TPremise, TExpr, TVar>;
|
|
30
|
-
remapTable: TForkRemapTable;
|
|
31
|
-
}
|
|
32
25
|
//# sourceMappingURL=fork.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/lib/types/fork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/lib/types/fork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,kCAAkC;AAClC,MAAM,WAAW,oBAAoB;IACjC,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,MAAM,CAAA;IACzB,uEAAuE;IACvE,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,uEAAuE;IACvE,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,sEAAsE;IACtE,aAAa,CAAC,EAAE,cAAc,CAAA;CACjC;AAED,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type TInvariantViolationEntityType = "expression" | "variable" | "premise" | "argument" | "claim" | "source" | "association";
|
|
1
|
+
export type TInvariantViolationEntityType = "expression" | "variable" | "premise" | "argument" | "claim" | "source" | "association" | "fork" | "forkRecord";
|
|
2
2
|
export type TInvariantViolation = {
|
|
3
3
|
code: string;
|
|
4
4
|
message: string;
|
|
@@ -43,4 +43,5 @@ export declare const ASSOC_SCHEMA_INVALID = "ASSOC_SCHEMA_INVALID";
|
|
|
43
43
|
export declare const ASSOC_DUPLICATE_ID = "ASSOC_DUPLICATE_ID";
|
|
44
44
|
export declare const ASSOC_CLAIM_REF_NOT_FOUND = "ASSOC_CLAIM_REF_NOT_FOUND";
|
|
45
45
|
export declare const ASSOC_SOURCE_REF_NOT_FOUND = "ASSOC_SOURCE_REF_NOT_FOUND";
|
|
46
|
+
export declare const FORK_RECORD_SCHEMA_INVALID = "FORK_RECORD_SCHEMA_INVALID";
|
|
46
47
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/lib/types/validation.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6BAA6B,GACnC,YAAY,GACZ,UAAU,GACV,SAAS,GACT,UAAU,GACV,OAAO,GACP,QAAQ,GACR,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/lib/types/validation.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6BAA6B,GACnC,YAAY,GACZ,UAAU,GACV,SAAS,GACT,UAAU,GACV,OAAO,GACP,QAAQ,GACR,aAAa,GACb,MAAM,GACN,YAAY,CAAA;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,6BAA6B,CAAA;IACzC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACrC,EAAE,EAAE,OAAO,CAAA;IACX,UAAU,EAAE,mBAAmB,EAAE,CAAA;CACpC,CAAA;AAGD,eAAO,MAAM,mBAAmB,wBAAwB,CAAA;AACxD,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AACpD,eAAO,MAAM,4BAA4B,iCAAiC,CAAA;AAC1E,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,eAAO,MAAM,uCAAuC,4CACP,CAAA;AAC7C,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAG9D,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAC9D,eAAO,MAAM,+BAA+B,oCAAoC,CAAA;AAChF,eAAO,MAAM,8BAA8B,mCAAmC,CAAA;AAC9E,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AAGpE,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AACtD,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAClD,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAG5D,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AACtD,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAC9D,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAG5D,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AAGpE,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AAGtE,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AACtD,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AAGtE,eAAO,MAAM,0BAA0B,+BAA+B,CAAA"}
|
|
@@ -38,4 +38,6 @@ export const ASSOC_SCHEMA_INVALID = "ASSOC_SCHEMA_INVALID";
|
|
|
38
38
|
export const ASSOC_DUPLICATE_ID = "ASSOC_DUPLICATE_ID";
|
|
39
39
|
export const ASSOC_CLAIM_REF_NOT_FOUND = "ASSOC_CLAIM_REF_NOT_FOUND";
|
|
40
40
|
export const ASSOC_SOURCE_REF_NOT_FOUND = "ASSOC_SOURCE_REF_NOT_FOUND";
|
|
41
|
+
// -- ForkNamespace codes --
|
|
42
|
+
export const FORK_RECORD_SCHEMA_INVALID = "FORK_RECORD_SCHEMA_INVALID";
|
|
41
43
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/lib/types/validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/lib/types/validation.ts"],"names":[],"mappings":"AAwBA,+BAA+B;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AACxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AACpD,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAA;AAC1E,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAC5D,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAChE,MAAM,CAAC,MAAM,uCAAuC,GAChD,yCAAyC,CAAA;AAC7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAE9D,4BAA4B;AAC5B,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAC9D,MAAM,CAAC,MAAM,+BAA+B,GAAG,iCAAiC,CAAA;AAChF,MAAM,CAAC,MAAM,8BAA8B,GAAG,gCAAgC,CAAA;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AAEpE,6BAA6B;AAC7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAE5D,6BAA6B;AAC7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAClE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAClE,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAE5D,2BAA2B;AAC3B,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAC1D,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AAEpE,4BAA4B;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAC5D,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAA;AAEtE,iCAAiC;AACjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAC1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAA;AAEtE,4BAA4B;AAC5B,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAA"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { TCorePropositionalExpression, TCorePropositionalVariable, TCorePremise } from "../schemata/propositional.js";
|
|
2
|
+
import type { TCoreArgument, TCoreArgumentRoleState } from "../schemata/argument.js";
|
|
3
|
+
import type { TCoreChangeset } from "../types/mutation.js";
|
|
4
|
+
/**
|
|
5
|
+
* Merges two changesets into one, deduplicating entities by `id` within each
|
|
6
|
+
* bucket (added/modified/removed) with last-write-wins semantics.
|
|
7
|
+
*
|
|
8
|
+
* Use this when a single logical operation requires multiple engine calls that
|
|
9
|
+
* each produce a changeset. For example, creating a conclusion premise requires
|
|
10
|
+
* both `createPremiseWithId` and `setConclusionPremise`, each returning a
|
|
11
|
+
* changeset — `mergeChangesets` combines them into one changeset suitable for
|
|
12
|
+
* a single persistence call.
|
|
13
|
+
*
|
|
14
|
+
* @param a - The first changeset.
|
|
15
|
+
* @param b - The second changeset. Its entries take precedence when both
|
|
16
|
+
* changesets contain the same entity ID in the same bucket.
|
|
17
|
+
* @returns A merged changeset. Entity categories that are empty after merge
|
|
18
|
+
* are omitted from the result.
|
|
19
|
+
* @throws {Error} If any entity ID appears in more than one bucket
|
|
20
|
+
* (added/modified/removed) within the same category after merge. This
|
|
21
|
+
* indicates a logic error in the caller.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* const { changes: createChanges } = engine.createPremiseWithId(premiseId, data)
|
|
26
|
+
* const { changes: roleChanges } = engine.setConclusionPremise(premiseId)
|
|
27
|
+
* const combined = mergeChangesets(createChanges, roleChanges)
|
|
28
|
+
* await persistChangeset(db, combined)
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function mergeChangesets<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TPremise extends TCorePremise = TCorePremise, TArg extends TCoreArgument = TCoreArgument>(a: TCoreChangeset<TExpr, TVar, TPremise, TArg>, b: TCoreChangeset<TExpr, TVar, TPremise, TArg>): TCoreChangeset<TExpr, TVar, TPremise, TArg>;
|
|
32
|
+
/**
|
|
33
|
+
* A single persistence operation extracted from a changeset, tagged with
|
|
34
|
+
* its operation type (`insert`, `update`, or `delete`) and entity kind.
|
|
35
|
+
*
|
|
36
|
+
* Used as the element type for the ordered operation list returned by
|
|
37
|
+
* {@link orderChangeset}.
|
|
38
|
+
*/
|
|
39
|
+
export type TOrderedOperation<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TPremise extends TCorePremise = TCorePremise, TArg extends TCoreArgument = TCoreArgument> = {
|
|
40
|
+
type: "delete";
|
|
41
|
+
entity: "expression";
|
|
42
|
+
data: TExpr;
|
|
43
|
+
} | {
|
|
44
|
+
type: "delete";
|
|
45
|
+
entity: "variable";
|
|
46
|
+
data: TVar;
|
|
47
|
+
} | {
|
|
48
|
+
type: "delete";
|
|
49
|
+
entity: "premise";
|
|
50
|
+
data: TPremise;
|
|
51
|
+
} | {
|
|
52
|
+
type: "insert";
|
|
53
|
+
entity: "premise";
|
|
54
|
+
data: TPremise;
|
|
55
|
+
} | {
|
|
56
|
+
type: "insert";
|
|
57
|
+
entity: "variable";
|
|
58
|
+
data: TVar;
|
|
59
|
+
} | {
|
|
60
|
+
type: "insert";
|
|
61
|
+
entity: "expression";
|
|
62
|
+
data: TExpr;
|
|
63
|
+
} | {
|
|
64
|
+
type: "update";
|
|
65
|
+
entity: "expression";
|
|
66
|
+
data: TExpr;
|
|
67
|
+
} | {
|
|
68
|
+
type: "update";
|
|
69
|
+
entity: "variable";
|
|
70
|
+
data: TVar;
|
|
71
|
+
} | {
|
|
72
|
+
type: "update";
|
|
73
|
+
entity: "premise";
|
|
74
|
+
data: TPremise;
|
|
75
|
+
} | {
|
|
76
|
+
type: "update";
|
|
77
|
+
entity: "argument";
|
|
78
|
+
data: TArg;
|
|
79
|
+
} | {
|
|
80
|
+
type: "update";
|
|
81
|
+
entity: "roles";
|
|
82
|
+
data: TCoreArgumentRoleState;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Converts a changeset into a flat, ordered array of persistence operations
|
|
86
|
+
* that is safe to execute sequentially against a relational store with
|
|
87
|
+
* foreign-key constraints.
|
|
88
|
+
*
|
|
89
|
+
* The FK dependency chain is:
|
|
90
|
+
* - `expression.premiseId` → `premise.id`
|
|
91
|
+
* - `expression.variableId` → `variable.id` (for variable-type expressions)
|
|
92
|
+
* - `expression.parentId` → `expression.id` (self-FK for tree structure)
|
|
93
|
+
* - `variable.argumentId` → `argument.id`
|
|
94
|
+
* - `premise.argumentId` → `argument.id`
|
|
95
|
+
*
|
|
96
|
+
* The resulting order guarantees that every referenced row exists before any
|
|
97
|
+
* row that depends on it is inserted, and that every dependent row is removed
|
|
98
|
+
* before the row it references is deleted.
|
|
99
|
+
*
|
|
100
|
+
* Ordering phases:
|
|
101
|
+
* 1. Update premises — ensure premise rows have correct metadata before
|
|
102
|
+
* dependent deletes run.
|
|
103
|
+
* 2. Delete expressions — expression rows hold FKs to variables and premises,
|
|
104
|
+
* so they must be removed first.
|
|
105
|
+
* 3. Delete variables — safe after expression deletes (no remaining FK
|
|
106
|
+
* references from expressions).
|
|
107
|
+
* 4. Delete premises — safe after all child rows are removed.
|
|
108
|
+
* 5. Insert premises — new premises must exist before their expressions and
|
|
109
|
+
* variables can be inserted.
|
|
110
|
+
* 6. Insert variables — new variables must exist before variable-type
|
|
111
|
+
* expressions can reference them.
|
|
112
|
+
* 7. Insert expressions — topologically sorted so parent expressions are
|
|
113
|
+
* inserted before their children (satisfies the parentId self-FK).
|
|
114
|
+
* 8. Update variables — grouped after inserts for clarity.
|
|
115
|
+
* 9. Update expressions — checksum and position updates.
|
|
116
|
+
* 10. Update argument metadata — if present.
|
|
117
|
+
* 11. Update role state — if present.
|
|
118
|
+
*
|
|
119
|
+
* @param changeset - The changeset to convert into ordered operations.
|
|
120
|
+
* @returns A flat array of {@link TOrderedOperation} entries in FK-safe
|
|
121
|
+
* execution order. Returns an empty array if the changeset is empty.
|
|
122
|
+
*/
|
|
123
|
+
export declare function orderChangeset<TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable, TPremise extends TCorePremise = TCorePremise, TArg extends TCoreArgument = TCoreArgument>(changeset: TCoreChangeset<TExpr, TVar, TPremise, TArg>): TOrderedOperation<TExpr, TVar, TPremise, TArg>[];
|
|
124
|
+
//# sourceMappingURL=changeset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeset.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/changeset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merges two changesets into one, deduplicating entities by `id` within each
|
|
3
|
+
* bucket (added/modified/removed) with last-write-wins semantics.
|
|
4
|
+
*
|
|
5
|
+
* Use this when a single logical operation requires multiple engine calls that
|
|
6
|
+
* each produce a changeset. For example, creating a conclusion premise requires
|
|
7
|
+
* both `createPremiseWithId` and `setConclusionPremise`, each returning a
|
|
8
|
+
* changeset — `mergeChangesets` combines them into one changeset suitable for
|
|
9
|
+
* a single persistence call.
|
|
10
|
+
*
|
|
11
|
+
* @param a - The first changeset.
|
|
12
|
+
* @param b - The second changeset. Its entries take precedence when both
|
|
13
|
+
* changesets contain the same entity ID in the same bucket.
|
|
14
|
+
* @returns A merged changeset. Entity categories that are empty after merge
|
|
15
|
+
* are omitted from the result.
|
|
16
|
+
* @throws {Error} If any entity ID appears in more than one bucket
|
|
17
|
+
* (added/modified/removed) within the same category after merge. This
|
|
18
|
+
* indicates a logic error in the caller.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const { changes: createChanges } = engine.createPremiseWithId(premiseId, data)
|
|
23
|
+
* const { changes: roleChanges } = engine.setConclusionPremise(premiseId)
|
|
24
|
+
* const combined = mergeChangesets(createChanges, roleChanges)
|
|
25
|
+
* await persistChangeset(db, combined)
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function mergeChangesets(a, b) {
|
|
29
|
+
const result = {};
|
|
30
|
+
const mergedExpressions = mergeEntityChanges(a.expressions, b.expressions, "expressions");
|
|
31
|
+
if (mergedExpressions)
|
|
32
|
+
result.expressions = mergedExpressions;
|
|
33
|
+
const mergedVariables = mergeEntityChanges(a.variables, b.variables, "variables");
|
|
34
|
+
if (mergedVariables)
|
|
35
|
+
result.variables = mergedVariables;
|
|
36
|
+
const mergedPremises = mergeEntityChanges(a.premises, b.premises, "premises");
|
|
37
|
+
if (mergedPremises)
|
|
38
|
+
result.premises = mergedPremises;
|
|
39
|
+
if (b.roles !== undefined) {
|
|
40
|
+
result.roles = b.roles;
|
|
41
|
+
}
|
|
42
|
+
else if (a.roles !== undefined) {
|
|
43
|
+
result.roles = a.roles;
|
|
44
|
+
}
|
|
45
|
+
if (b.argument !== undefined) {
|
|
46
|
+
result.argument = b.argument;
|
|
47
|
+
}
|
|
48
|
+
else if (a.argument !== undefined) {
|
|
49
|
+
result.argument = a.argument;
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
function mergeEntityChanges(a, b, categoryName) {
|
|
54
|
+
if (!a && !b)
|
|
55
|
+
return undefined;
|
|
56
|
+
const dedup = (aList, bList) => {
|
|
57
|
+
const map = new Map();
|
|
58
|
+
for (const item of aList)
|
|
59
|
+
map.set(item.id, item);
|
|
60
|
+
for (const item of bList)
|
|
61
|
+
map.set(item.id, item);
|
|
62
|
+
return [...map.values()];
|
|
63
|
+
};
|
|
64
|
+
const added = dedup(a?.added ?? [], b?.added ?? []);
|
|
65
|
+
const modified = dedup(a?.modified ?? [], b?.modified ?? []);
|
|
66
|
+
const removed = dedup(a?.removed ?? [], b?.removed ?? []);
|
|
67
|
+
// Enforce invariant: no entity ID may appear in more than one bucket.
|
|
68
|
+
const addedIds = new Set(added.map((e) => e.id));
|
|
69
|
+
const modifiedIds = new Set(modified.map((e) => e.id));
|
|
70
|
+
const removedIds = new Set(removed.map((e) => e.id));
|
|
71
|
+
for (const id of addedIds) {
|
|
72
|
+
if (modifiedIds.has(id)) {
|
|
73
|
+
throw new Error(`mergeChangesets: entity "${id}" appears in both added and modified in ${categoryName}`);
|
|
74
|
+
}
|
|
75
|
+
if (removedIds.has(id)) {
|
|
76
|
+
throw new Error(`mergeChangesets: entity "${id}" appears in both added and removed in ${categoryName}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
for (const id of modifiedIds) {
|
|
80
|
+
if (removedIds.has(id)) {
|
|
81
|
+
throw new Error(`mergeChangesets: entity "${id}" appears in both modified and removed in ${categoryName}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (added.length === 0 && modified.length === 0 && removed.length === 0) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
return { added, modified, removed };
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Converts a changeset into a flat, ordered array of persistence operations
|
|
91
|
+
* that is safe to execute sequentially against a relational store with
|
|
92
|
+
* foreign-key constraints.
|
|
93
|
+
*
|
|
94
|
+
* The FK dependency chain is:
|
|
95
|
+
* - `expression.premiseId` → `premise.id`
|
|
96
|
+
* - `expression.variableId` → `variable.id` (for variable-type expressions)
|
|
97
|
+
* - `expression.parentId` → `expression.id` (self-FK for tree structure)
|
|
98
|
+
* - `variable.argumentId` → `argument.id`
|
|
99
|
+
* - `premise.argumentId` → `argument.id`
|
|
100
|
+
*
|
|
101
|
+
* The resulting order guarantees that every referenced row exists before any
|
|
102
|
+
* row that depends on it is inserted, and that every dependent row is removed
|
|
103
|
+
* before the row it references is deleted.
|
|
104
|
+
*
|
|
105
|
+
* Ordering phases:
|
|
106
|
+
* 1. Update premises — ensure premise rows have correct metadata before
|
|
107
|
+
* dependent deletes run.
|
|
108
|
+
* 2. Delete expressions — expression rows hold FKs to variables and premises,
|
|
109
|
+
* so they must be removed first.
|
|
110
|
+
* 3. Delete variables — safe after expression deletes (no remaining FK
|
|
111
|
+
* references from expressions).
|
|
112
|
+
* 4. Delete premises — safe after all child rows are removed.
|
|
113
|
+
* 5. Insert premises — new premises must exist before their expressions and
|
|
114
|
+
* variables can be inserted.
|
|
115
|
+
* 6. Insert variables — new variables must exist before variable-type
|
|
116
|
+
* expressions can reference them.
|
|
117
|
+
* 7. Insert expressions — topologically sorted so parent expressions are
|
|
118
|
+
* inserted before their children (satisfies the parentId self-FK).
|
|
119
|
+
* 8. Update variables — grouped after inserts for clarity.
|
|
120
|
+
* 9. Update expressions — checksum and position updates.
|
|
121
|
+
* 10. Update argument metadata — if present.
|
|
122
|
+
* 11. Update role state — if present.
|
|
123
|
+
*
|
|
124
|
+
* @param changeset - The changeset to convert into ordered operations.
|
|
125
|
+
* @returns A flat array of {@link TOrderedOperation} entries in FK-safe
|
|
126
|
+
* execution order. Returns an empty array if the changeset is empty.
|
|
127
|
+
*/
|
|
128
|
+
export function orderChangeset(changeset) {
|
|
129
|
+
const ops = [];
|
|
130
|
+
// Phase 1: Update premises — ensure premise rows have correct metadata
|
|
131
|
+
// before dependent deletes run.
|
|
132
|
+
for (const p of changeset.premises?.modified ?? []) {
|
|
133
|
+
ops.push({ type: "update", entity: "premise", data: p });
|
|
134
|
+
}
|
|
135
|
+
// Phase 2: Delete expressions — reverse-topologically sorted so children
|
|
136
|
+
// are deleted before parents (satisfies the parentId self-FK).
|
|
137
|
+
const removedExprs = changeset.expressions?.removed ?? [];
|
|
138
|
+
const sortedRemoved = topologicalSortExpressions(removedExprs).reverse();
|
|
139
|
+
for (const e of sortedRemoved) {
|
|
140
|
+
ops.push({ type: "delete", entity: "expression", data: e });
|
|
141
|
+
}
|
|
142
|
+
// Phase 3: Delete variables — safe after expression deletes (no
|
|
143
|
+
// remaining FK references from expressions).
|
|
144
|
+
for (const v of changeset.variables?.removed ?? []) {
|
|
145
|
+
ops.push({ type: "delete", entity: "variable", data: v });
|
|
146
|
+
}
|
|
147
|
+
// Phase 4: Delete premises — safe after all child rows (expressions,
|
|
148
|
+
// variables) are removed.
|
|
149
|
+
for (const p of changeset.premises?.removed ?? []) {
|
|
150
|
+
ops.push({ type: "delete", entity: "premise", data: p });
|
|
151
|
+
}
|
|
152
|
+
// Phase 5: Insert premises — new premises must exist before their
|
|
153
|
+
// expressions and variables can be inserted.
|
|
154
|
+
for (const p of changeset.premises?.added ?? []) {
|
|
155
|
+
ops.push({ type: "insert", entity: "premise", data: p });
|
|
156
|
+
}
|
|
157
|
+
// Phase 6: Insert variables — new variables must exist before
|
|
158
|
+
// variable-type expressions can reference them.
|
|
159
|
+
for (const v of changeset.variables?.added ?? []) {
|
|
160
|
+
ops.push({ type: "insert", entity: "variable", data: v });
|
|
161
|
+
}
|
|
162
|
+
// Phase 7: Insert expressions — topologically sorted so parent
|
|
163
|
+
// expressions are inserted before their children (satisfies the
|
|
164
|
+
// parentId self-FK).
|
|
165
|
+
const sortedInsertExprs = topologicalSortExpressions(changeset.expressions?.added ?? []);
|
|
166
|
+
for (const e of sortedInsertExprs) {
|
|
167
|
+
ops.push({ type: "insert", entity: "expression", data: e });
|
|
168
|
+
}
|
|
169
|
+
// Phase 8: Update variables — grouped after inserts for clarity.
|
|
170
|
+
for (const v of changeset.variables?.modified ?? []) {
|
|
171
|
+
ops.push({ type: "update", entity: "variable", data: v });
|
|
172
|
+
}
|
|
173
|
+
// Phase 9: Update expressions — checksum and position updates.
|
|
174
|
+
for (const e of changeset.expressions?.modified ?? []) {
|
|
175
|
+
ops.push({ type: "update", entity: "expression", data: e });
|
|
176
|
+
}
|
|
177
|
+
// Phase 10: Update argument metadata — if present.
|
|
178
|
+
if (changeset.argument !== undefined) {
|
|
179
|
+
ops.push({
|
|
180
|
+
type: "update",
|
|
181
|
+
entity: "argument",
|
|
182
|
+
data: changeset.argument,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
// Phase 11: Update role state — if present.
|
|
186
|
+
if (changeset.roles !== undefined) {
|
|
187
|
+
ops.push({ type: "update", entity: "roles", data: changeset.roles });
|
|
188
|
+
}
|
|
189
|
+
return ops;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Topologically sorts expressions so that parents appear before children,
|
|
193
|
+
* using the `parentId` field. Expressions with `parentId: null` (roots)
|
|
194
|
+
* come first, followed by their children in dependency order.
|
|
195
|
+
*/
|
|
196
|
+
function topologicalSortExpressions(expressions) {
|
|
197
|
+
if (expressions.length <= 1)
|
|
198
|
+
return expressions;
|
|
199
|
+
const byId = new Map();
|
|
200
|
+
for (const expr of expressions) {
|
|
201
|
+
byId.set(expr.id, expr);
|
|
202
|
+
}
|
|
203
|
+
const sorted = [];
|
|
204
|
+
const visited = new Set();
|
|
205
|
+
function visit(expr) {
|
|
206
|
+
if (visited.has(expr.id))
|
|
207
|
+
return;
|
|
208
|
+
// If this expression has a parent that is also in the insertion set,
|
|
209
|
+
// ensure the parent is emitted first.
|
|
210
|
+
if (expr.parentId !== null && byId.has(expr.parentId)) {
|
|
211
|
+
visit(byId.get(expr.parentId));
|
|
212
|
+
}
|
|
213
|
+
visited.add(expr.id);
|
|
214
|
+
sorted.push(expr);
|
|
215
|
+
}
|
|
216
|
+
for (const expr of expressions) {
|
|
217
|
+
visit(expr);
|
|
218
|
+
}
|
|
219
|
+
return sorted;
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=changeset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeset.js","sourceRoot":"","sources":["../../../src/lib/utils/changeset.ts"],"names":[],"mappings":"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"}
|