@f-o-t/rules-engine 3.0.1 → 3.0.5
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/dist/analyzer/analysis.d.ts +72 -0
- package/dist/analyzer/analysis.d.ts.map +1 -0
- package/dist/builder/conditions.d.ts +29 -0
- package/dist/builder/conditions.d.ts.map +1 -0
- package/dist/builder/rule.d.ts +40 -0
- package/dist/builder/rule.d.ts.map +1 -0
- package/dist/cache/cache.d.ts +21 -0
- package/dist/cache/cache.d.ts.map +1 -0
- package/dist/cache/noop.d.ts +3 -0
- package/dist/cache/noop.d.ts.map +1 -0
- package/dist/core/evaluate.d.ts +21 -0
- package/dist/core/evaluate.d.ts.map +1 -0
- package/dist/core/filter.d.ts +8 -0
- package/dist/core/filter.d.ts.map +1 -0
- package/dist/core/group.d.ts +10 -0
- package/dist/core/group.d.ts.map +1 -0
- package/dist/core/sort.d.ts +14 -0
- package/dist/core/sort.d.ts.map +1 -0
- package/dist/engine/engine.d.ts +27 -0
- package/dist/engine/engine.d.ts.map +1 -0
- package/dist/engine/hooks.d.ts +16 -0
- package/dist/engine/hooks.d.ts.map +1 -0
- package/dist/engine/state.d.ts +19 -0
- package/dist/engine/state.d.ts.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3083 -0
- package/dist/index.js.map +37 -0
- package/dist/optimizer/index-builder.d.ts +48 -0
- package/dist/optimizer/index-builder.d.ts.map +1 -0
- package/dist/serialization/serializer.d.ts +79 -0
- package/dist/serialization/serializer.d.ts.map +1 -0
- package/dist/simulation/simulator.d.ts +65 -0
- package/dist/simulation/simulator.d.ts.map +1 -0
- package/dist/types/config.d.ts +87 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/consequence.d.ts +21 -0
- package/dist/types/consequence.d.ts.map +1 -0
- package/dist/types/evaluation.d.ts +70 -0
- package/dist/types/evaluation.d.ts.map +1 -0
- package/dist/types/rule.d.ts +114 -0
- package/dist/types/rule.d.ts.map +1 -0
- package/dist/types/state.d.ts +65 -0
- package/dist/types/state.d.ts.map +1 -0
- package/dist/utils/conditions.d.ts +24 -0
- package/dist/utils/conditions.d.ts.map +1 -0
- package/dist/utils/hash.d.ts +3 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/id.d.ts +2 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/time.d.ts +8 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/validation/conflicts.d.ts +25 -0
- package/dist/validation/conflicts.d.ts.map +1 -0
- package/dist/validation/integrity.d.ts +38 -0
- package/dist/validation/integrity.d.ts.map +1 -0
- package/dist/validation/schema.d.ts +69 -0
- package/dist/validation/schema.d.ts.map +1 -0
- package/dist/versioning/version-store.d.ts +50 -0
- package/dist/versioning/version-store.d.ts.map +1 -0
- package/package.json +35 -34
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type Condition, type ConditionGroup } from "@f-o-t/condition-evaluator";
|
|
2
|
+
/**
|
|
3
|
+
* Collects all unique field names from a condition tree.
|
|
4
|
+
* Traverses nested condition groups recursively.
|
|
5
|
+
*/
|
|
6
|
+
export declare const collectConditionFields: (condition: ConditionGroup) => Set<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Collects all unique operators from a condition tree.
|
|
9
|
+
* Returns a map of operator to its type (e.g., "equals" -> "string").
|
|
10
|
+
*/
|
|
11
|
+
export declare const collectConditionOperators: (condition: ConditionGroup) => Map<string, Set<string>>;
|
|
12
|
+
/**
|
|
13
|
+
* Counts the total number of leaf conditions in a condition tree.
|
|
14
|
+
*/
|
|
15
|
+
export declare const countConditions: (condition: Condition | ConditionGroup) => number;
|
|
16
|
+
/**
|
|
17
|
+
* Calculates the maximum depth of a condition tree.
|
|
18
|
+
*/
|
|
19
|
+
export declare const calculateMaxDepth: (condition: Condition | ConditionGroup, currentDepth?: number) => number;
|
|
20
|
+
/**
|
|
21
|
+
* Counts the number of condition groups in a condition tree.
|
|
22
|
+
*/
|
|
23
|
+
export declare const countConditionGroups: (condition: Condition | ConditionGroup) => number;
|
|
24
|
+
//# sourceMappingURL=conditions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditions.d.ts","sourceRoot":"","sources":["../../src/utils/conditions.ts"],"names":[],"mappings":"AAAA,OAAO,EACJ,KAAK,SAAS,EACd,KAAK,cAAc,EAErB,MAAM,4BAA4B,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAChC,WAAW,cAAc,KACzB,GAAG,CAAC,MAAM,CAeZ,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACnC,WAAW,cAAc,KACzB,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAiBzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GACzB,WAAW,SAAS,GAAG,cAAc,KACrC,MAQF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC3B,WAAW,SAAS,GAAG,cAAc,EACrC,qBAAgB,KAChB,MAaF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC9B,WAAW,SAAS,GAAG,cAAc,KACrC,MAYF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/utils/hash.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,GAAI,SAAS,OAAO,KAAG,MAyB9C,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,SAAS,aAAa,CAAC,MAAM,CAAC,KAAG,MAE1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,QAAO,MAK7B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type TimingResult<T> = {
|
|
2
|
+
readonly result: T;
|
|
3
|
+
readonly durationMs: number;
|
|
4
|
+
};
|
|
5
|
+
export declare const measureTime: <T>(fn: () => T) => TimingResult<T>;
|
|
6
|
+
export declare const measureTimeAsync: <T>(fn: () => Promise<T>) => Promise<TimingResult<T>>;
|
|
7
|
+
export declare const withTimeout: <T>(promise: Promise<T>, timeoutMs: number, errorMessage?: string) => Promise<T>;
|
|
8
|
+
//# sourceMappingURL=time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/utils/time.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC3B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,IAAI,MAAM,CAAC,KAAG,YAAY,CAAC,CAAC,CAK1D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,CAAC,EACrC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,KACpB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAKzB,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,EAC1B,SAAS,OAAO,CAAC,CAAC,CAAC,EACnB,WAAW,MAAM,EACjB,qBAAoC,KACpC,OAAO,CAAC,CAAC,CAgBX,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ConsequenceDefinitions, DefaultConsequences } from "../types/consequence";
|
|
2
|
+
import type { Rule } from "../types/rule";
|
|
3
|
+
export type ConflictType = "DUPLICATE_ID" | "DUPLICATE_CONDITIONS" | "OVERLAPPING_CONDITIONS" | "CONTRADICTORY_CONSEQUENCES" | "PRIORITY_COLLISION" | "UNREACHABLE_RULE";
|
|
4
|
+
export type Conflict<TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences> = {
|
|
5
|
+
readonly type: ConflictType;
|
|
6
|
+
readonly severity: "error" | "warning" | "info";
|
|
7
|
+
readonly message: string;
|
|
8
|
+
readonly ruleIds: ReadonlyArray<string>;
|
|
9
|
+
readonly rules: ReadonlyArray<Rule<TContext, TConsequences>>;
|
|
10
|
+
readonly details?: Readonly<Record<string, unknown>>;
|
|
11
|
+
};
|
|
12
|
+
export type ConflictDetectionOptions = {
|
|
13
|
+
readonly checkDuplicateIds?: boolean;
|
|
14
|
+
readonly checkDuplicateConditions?: boolean;
|
|
15
|
+
readonly checkOverlappingConditions?: boolean;
|
|
16
|
+
readonly checkPriorityCollisions?: boolean;
|
|
17
|
+
readonly checkUnreachableRules?: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare const detectConflicts: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(rules: ReadonlyArray<Rule<TContext, TConsequences>>, options?: ConflictDetectionOptions) => ReadonlyArray<Conflict<TContext, TConsequences>>;
|
|
20
|
+
export declare const hasConflicts: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(rules: ReadonlyArray<Rule<TContext, TConsequences>>, options?: ConflictDetectionOptions) => boolean;
|
|
21
|
+
export declare const hasErrors: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(rules: ReadonlyArray<Rule<TContext, TConsequences>>, options?: ConflictDetectionOptions) => boolean;
|
|
22
|
+
export declare const getConflictsByType: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(conflicts: ReadonlyArray<Conflict<TContext, TConsequences>>, type: ConflictType) => ReadonlyArray<Conflict<TContext, TConsequences>>;
|
|
23
|
+
export declare const getConflictsBySeverity: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(conflicts: ReadonlyArray<Conflict<TContext, TConsequences>>, severity: "error" | "warning" | "info") => ReadonlyArray<Conflict<TContext, TConsequences>>;
|
|
24
|
+
export declare const formatConflicts: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(conflicts: ReadonlyArray<Conflict<TContext, TConsequences>>) => string;
|
|
25
|
+
//# sourceMappingURL=conflicts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflicts.d.ts","sourceRoot":"","sources":["../../src/validation/conflicts.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACT,sBAAsB,EACtB,mBAAmB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,MAAM,YAAY,GACnB,cAAc,GACd,sBAAsB,GACtB,wBAAwB,GACxB,4BAA4B,GAC5B,oBAAoB,GACpB,kBAAkB,CAAC;AAExB,MAAM,MAAM,QAAQ,CACjB,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,IACjE;IACD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAC9C,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC3C,CAAC;AAkTF,eAAO,MAAM,eAAe,GACzB,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,EACnD,UAAS,wBAA6B,KACtC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAyBjD,CAAC;AAEF,eAAO,MAAM,YAAY,GACtB,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,EACnD,UAAS,wBAA6B,KACtC,OAEF,CAAC;AAEF,eAAO,MAAM,SAAS,GACnB,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,EACnD,UAAS,wBAA6B,KACtC,OAEF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC5B,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,WAAW,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,EAC3D,MAAM,YAAY,KAClB,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAEjD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAChC,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,WAAW,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,EAC3D,UAAU,OAAO,GAAG,SAAS,GAAG,MAAM,KACtC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAEjD,CAAC;AAEF,eAAO,MAAM,eAAe,GACzB,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,WAAW,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,KAC3D,MAkBF,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ConsequenceDefinitions, DefaultConsequences } from "../types/consequence";
|
|
2
|
+
import type { Rule, RuleSet } from "../types/rule";
|
|
3
|
+
export type IntegrityIssue = {
|
|
4
|
+
readonly code: string;
|
|
5
|
+
readonly message: string;
|
|
6
|
+
readonly severity: "error" | "warning" | "info";
|
|
7
|
+
readonly path?: string;
|
|
8
|
+
readonly ruleId?: string;
|
|
9
|
+
readonly details?: Readonly<Record<string, unknown>>;
|
|
10
|
+
};
|
|
11
|
+
export type IntegrityCheckResult = {
|
|
12
|
+
readonly valid: boolean;
|
|
13
|
+
readonly issues: ReadonlyArray<IntegrityIssue>;
|
|
14
|
+
};
|
|
15
|
+
export type IntegrityCheckOptions = {
|
|
16
|
+
readonly checkCircularReferences?: boolean;
|
|
17
|
+
readonly checkOrphanedRuleSets?: boolean;
|
|
18
|
+
readonly checkMissingReferences?: boolean;
|
|
19
|
+
readonly checkFieldConsistency?: boolean;
|
|
20
|
+
readonly requiredFields?: ReadonlyArray<string>;
|
|
21
|
+
readonly allowedCategories?: ReadonlyArray<string>;
|
|
22
|
+
readonly allowedTags?: ReadonlyArray<string>;
|
|
23
|
+
};
|
|
24
|
+
export declare const checkIntegrity: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(rules: ReadonlyArray<Rule<TContext, TConsequences>>, ruleSets?: ReadonlyArray<RuleSet>, options?: IntegrityCheckOptions) => IntegrityCheckResult;
|
|
25
|
+
export declare const checkRuleFieldCoverage: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(rules: ReadonlyArray<Rule<TContext, TConsequences>>, expectedFields: ReadonlyArray<string>) => {
|
|
26
|
+
coveredFields: ReadonlyArray<string>;
|
|
27
|
+
uncoveredFields: ReadonlyArray<string>;
|
|
28
|
+
extraFields: ReadonlyArray<string>;
|
|
29
|
+
coveragePercentage: number;
|
|
30
|
+
};
|
|
31
|
+
export declare const getUsedFields: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(rules: ReadonlyArray<Rule<TContext, TConsequences>>) => ReadonlyArray<string>;
|
|
32
|
+
export declare const getUsedOperators: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(rules: ReadonlyArray<Rule<TContext, TConsequences>>) => ReadonlyArray<{
|
|
33
|
+
field: string;
|
|
34
|
+
operator: string;
|
|
35
|
+
type: string;
|
|
36
|
+
}>;
|
|
37
|
+
export declare const formatIntegrityResult: (result: IntegrityCheckResult) => string;
|
|
38
|
+
//# sourceMappingURL=integrity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrity.d.ts","sourceRoot":"","sources":["../../src/validation/integrity.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACT,sBAAsB,EACtB,mBAAmB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IACjC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC/C,CAAC;AAqSF,eAAO,MAAM,cAAc,GACxB,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,EACnD,WAAU,aAAa,CAAC,OAAO,CAAM,EACrC,UAAS,qBAA0B,KACnC,oBAoBF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAChC,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,EACnD,gBAAgB,aAAa,CAAC,MAAM,CAAC,KACrC;IACA,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC;CAyB7B,CAAC;AAEF,eAAO,MAAM,aAAa,GACvB,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,KACnD,aAAa,CAAC,MAAM,CAWtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC1B,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,KACnD,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA4BjE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,QAAQ,oBAAoB,KAAG,MA2BpE,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type ConditionGroup } from "@f-o-t/condition-evaluator";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import type { ConsequenceDefinitions, DefaultConsequences } from "../types/consequence";
|
|
4
|
+
import { type Rule } from "../types/rule";
|
|
5
|
+
export declare const ValidationErrorSchema: z.ZodObject<{
|
|
6
|
+
path: z.ZodString;
|
|
7
|
+
message: z.ZodString;
|
|
8
|
+
code: z.ZodString;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
export type ValidationError = z.infer<typeof ValidationErrorSchema>;
|
|
11
|
+
export declare const ValidationResultSchema: z.ZodObject<{
|
|
12
|
+
valid: z.ZodBoolean;
|
|
13
|
+
errors: z.ZodArray<z.ZodObject<{
|
|
14
|
+
path: z.ZodString;
|
|
15
|
+
message: z.ZodString;
|
|
16
|
+
code: z.ZodString;
|
|
17
|
+
}, z.core.$strip>>;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
export type ValidationResult = z.infer<typeof ValidationResultSchema>;
|
|
20
|
+
export declare const ValidationOptionsSchema: z.ZodObject<{
|
|
21
|
+
validateConditions: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
+
validateConsequences: z.ZodOptional<z.ZodBoolean>;
|
|
23
|
+
strictMode: z.ZodOptional<z.ZodBoolean>;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
export type ValidationOptions = z.infer<typeof ValidationOptionsSchema>;
|
|
26
|
+
export type ResolvedValidationOptions = {
|
|
27
|
+
validateConditions: boolean;
|
|
28
|
+
validateConsequences: boolean;
|
|
29
|
+
strictMode: boolean;
|
|
30
|
+
};
|
|
31
|
+
export declare const validateRule: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(rule: unknown, options?: ValidationOptions & {
|
|
32
|
+
consequenceSchemas?: TConsequences;
|
|
33
|
+
}) => ValidationResult;
|
|
34
|
+
export declare const validateRules: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(rules: ReadonlyArray<unknown>, options?: ValidationOptions & {
|
|
35
|
+
consequenceSchemas?: TConsequences;
|
|
36
|
+
}) => ValidationResult;
|
|
37
|
+
export declare const validateRuleSet: (ruleSet: unknown) => ValidationResult;
|
|
38
|
+
export declare const validateConditions: (conditions: ConditionGroup) => ValidationResult;
|
|
39
|
+
export declare const parseRule: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(rule: unknown, options?: ValidationOptions & {
|
|
40
|
+
consequenceSchemas?: TConsequences;
|
|
41
|
+
}) => Rule<TContext, TConsequences>;
|
|
42
|
+
export declare const safeParseRule: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(rule: unknown, options?: ValidationOptions & {
|
|
43
|
+
consequenceSchemas?: TConsequences;
|
|
44
|
+
}) => {
|
|
45
|
+
success: true;
|
|
46
|
+
data: Rule<TContext, TConsequences>;
|
|
47
|
+
} | {
|
|
48
|
+
success: false;
|
|
49
|
+
errors: ReadonlyArray<ValidationError>;
|
|
50
|
+
};
|
|
51
|
+
export declare const createRuleValidator: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(consequenceSchemas: TConsequences, defaultOptions?: ValidationOptions) => {
|
|
52
|
+
validate: (rule: unknown, options?: ValidationOptions) => {
|
|
53
|
+
valid: boolean;
|
|
54
|
+
errors: {
|
|
55
|
+
path: string;
|
|
56
|
+
message: string;
|
|
57
|
+
code: string;
|
|
58
|
+
}[];
|
|
59
|
+
};
|
|
60
|
+
parse: (rule: unknown, options?: ValidationOptions) => Rule<TContext, TConsequences>;
|
|
61
|
+
safeParse: (rule: unknown, options?: ValidationOptions) => {
|
|
62
|
+
success: false;
|
|
63
|
+
errors: ReadonlyArray<ValidationError>;
|
|
64
|
+
} | {
|
|
65
|
+
success: true;
|
|
66
|
+
data: Rule<TContext, TConsequences>;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/validation/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAEJ,KAAK,cAAc,EAErB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACT,sBAAsB,EACtB,mBAAmB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,IAAI,EAA6B,MAAM,eAAe,CAAC;AAMrE,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,sBAAsB;;;;;;;iBAGjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAGxE,MAAM,MAAM,yBAAyB,GAAG;IACrC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;CACtB,CAAC;AAsLF,eAAO,MAAM,YAAY,GACtB,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,MAAM,OAAO,EACb,UAAS,iBAAiB,GAAG;IAAE,kBAAkB,CAAC,EAAE,aAAa,CAAA;CAAO,KACxE,gBAyCF,CAAC;AAEF,eAAO,MAAM,aAAa,GACvB,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,OAAO,aAAa,CAAC,OAAO,CAAC,EAC7B,UAAS,iBAAiB,GAAG;IAAE,kBAAkB,CAAC,EAAE,aAAa,CAAA;CAAO,KACxE,gBAmBF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,KAAG,gBAkBlD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC5B,YAAY,cAAc,KAC1B,gBAGF,CAAC;AAEF,eAAO,MAAM,SAAS,GACnB,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,MAAM,OAAO,EACb,UAAS,iBAAiB,GAAG;IAAE,kBAAkB,CAAC,EAAE,aAAa,CAAA;CAAO,KACxE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAQ9B,CAAC;AAEF,eAAO,MAAM,aAAa,GACvB,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,MAAM,OAAO,EACb,UAAS,iBAAiB,GAAG;IAAE,kBAAkB,CAAC,EAAE,aAAa,CAAA;CAAO,KAEtE;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;CAAE,GACtD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;CAM5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC7B,QAAQ,GAAG,OAAO,EAClB,aAAa,SAAS,sBAAsB,GAAG,mBAAmB,EAElE,oBAAoB,aAAa,EACjC,iBAAgB,iBAAsB;qBAGlB,OAAO,YAAW,iBAAiB;;;;;;;;kBAMtC,OAAO,YAAW,iBAAiB;sBAM/B,OAAO,YAAW,iBAAiB;iBA5B3C,KAAK;gBAAU,aAAa,CAAC,eAAe,CAAC;;iBAD7C,IAAI;;;CAoCnB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ConsequenceDefinitions, DefaultConsequences } from "../types/consequence";
|
|
2
|
+
import type { Rule } from "../types/rule";
|
|
3
|
+
export type RuleVersion<TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences> = {
|
|
4
|
+
readonly versionId: string;
|
|
5
|
+
readonly ruleId: string;
|
|
6
|
+
readonly version: number;
|
|
7
|
+
readonly rule: Rule<TContext, TConsequences>;
|
|
8
|
+
readonly createdAt: Date;
|
|
9
|
+
readonly createdBy?: string;
|
|
10
|
+
readonly comment?: string;
|
|
11
|
+
readonly changeType: "create" | "update" | "delete" | "enable" | "disable";
|
|
12
|
+
};
|
|
13
|
+
export type VersionHistory<TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences> = {
|
|
14
|
+
readonly ruleId: string;
|
|
15
|
+
readonly currentVersion: number;
|
|
16
|
+
readonly versions: ReadonlyArray<RuleVersion<TContext, TConsequences>>;
|
|
17
|
+
};
|
|
18
|
+
export type VersionStore<TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences> = {
|
|
19
|
+
readonly histories: ReadonlyMap<string, VersionHistory<TContext, TConsequences>>;
|
|
20
|
+
};
|
|
21
|
+
export declare const createVersionStore: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>() => VersionStore<TContext, TConsequences>;
|
|
22
|
+
export declare const addVersion: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(store: VersionStore<TContext, TConsequences>, rule: Rule<TContext, TConsequences>, changeType: RuleVersion<TContext, TConsequences>["changeType"], options?: {
|
|
23
|
+
createdBy?: string;
|
|
24
|
+
comment?: string;
|
|
25
|
+
}) => VersionStore<TContext, TConsequences>;
|
|
26
|
+
export declare const getHistory: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(store: VersionStore<TContext, TConsequences>, ruleId: string) => VersionHistory<TContext, TConsequences> | undefined;
|
|
27
|
+
export declare const getVersion: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(store: VersionStore<TContext, TConsequences>, ruleId: string, version: number) => RuleVersion<TContext, TConsequences> | undefined;
|
|
28
|
+
export declare const getLatestVersion: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(store: VersionStore<TContext, TConsequences>, ruleId: string) => RuleVersion<TContext, TConsequences> | undefined;
|
|
29
|
+
export declare const getAllVersions: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(store: VersionStore<TContext, TConsequences>, ruleId: string) => ReadonlyArray<RuleVersion<TContext, TConsequences>>;
|
|
30
|
+
export declare const rollbackToVersion: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(store: VersionStore<TContext, TConsequences>, ruleId: string, targetVersion: number, options?: {
|
|
31
|
+
createdBy?: string;
|
|
32
|
+
comment?: string;
|
|
33
|
+
}) => {
|
|
34
|
+
store: VersionStore<TContext, TConsequences>;
|
|
35
|
+
rule: Rule<TContext, TConsequences> | undefined;
|
|
36
|
+
};
|
|
37
|
+
export declare const compareVersions: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(store: VersionStore<TContext, TConsequences>, ruleId: string, version1: number, version2: number) => {
|
|
38
|
+
version1: RuleVersion<TContext, TConsequences> | undefined;
|
|
39
|
+
version2: RuleVersion<TContext, TConsequences> | undefined;
|
|
40
|
+
differences: ReadonlyArray<{
|
|
41
|
+
field: string;
|
|
42
|
+
oldValue: unknown;
|
|
43
|
+
newValue: unknown;
|
|
44
|
+
}>;
|
|
45
|
+
} | null;
|
|
46
|
+
export declare const getVersionsByDateRange: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(store: VersionStore<TContext, TConsequences>, startDate: Date, endDate: Date) => ReadonlyArray<RuleVersion<TContext, TConsequences>>;
|
|
47
|
+
export declare const getVersionsByChangeType: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(store: VersionStore<TContext, TConsequences>, changeType: RuleVersion<TContext, TConsequences>["changeType"]) => ReadonlyArray<RuleVersion<TContext, TConsequences>>;
|
|
48
|
+
export declare const pruneOldVersions: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(store: VersionStore<TContext, TConsequences>, keepCount: number) => VersionStore<TContext, TConsequences>;
|
|
49
|
+
export declare const formatVersionHistory: <TContext = unknown, TConsequences extends ConsequenceDefinitions = DefaultConsequences>(history: VersionHistory<TContext, TConsequences>) => string;
|
|
50
|
+
//# sourceMappingURL=version-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-store.d.ts","sourceRoot":"","sources":["../../src/versioning/version-store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,36 +1,37 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
2
|
+
"name": "@f-o-t/rules-engine",
|
|
3
|
+
"version": "3.0.5",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"files": [
|
|
6
|
+
"dist"
|
|
7
|
+
],
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "bun x --bun fot build",
|
|
18
|
+
"test": "bun x --bun fot test",
|
|
19
|
+
"lint": "bun x --bun fot lint",
|
|
20
|
+
"format": "bun x --bun fot format",
|
|
21
|
+
"typecheck": "bun x --bun fot typecheck"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@f-o-t/condition-evaluator": "^2.0.2",
|
|
25
|
+
"zod": "^4.3.6"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@f-o-t/cli": "^1.0.0",
|
|
29
|
+
"@f-o-t/config": "^1.0.0",
|
|
30
|
+
"@types/bun": "latest"
|
|
31
|
+
},
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "https://github.com/F-O-T/libraries.git",
|
|
35
|
+
"directory": "libraries/rules-engine"
|
|
36
|
+
}
|
|
36
37
|
}
|