trigger_system 1.2.1 → 1.2.4
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/browser/index.browser.js +183 -40
- package/dist/browser/index.browser.js.map +116 -17
- package/dist/core/action-registry.d.ts +29 -3
- package/dist/core/action-registry.d.ts.map +1 -1
- package/dist/core/base-engine.d.ts +3 -3
- package/dist/core/constants.d.ts +95 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/dependency-graph/analyzer.d.ts +60 -0
- package/dist/core/dependency-graph/analyzer.d.ts.map +1 -0
- package/dist/core/dependency-graph/builder.d.ts +28 -0
- package/dist/core/dependency-graph/builder.d.ts.map +1 -0
- package/dist/core/dependency-graph/cycles.d.ts +28 -0
- package/dist/core/dependency-graph/cycles.d.ts.map +1 -0
- package/dist/core/dependency-graph/index.d.ts +11 -0
- package/dist/core/dependency-graph/index.d.ts.map +1 -0
- package/dist/core/dependency-graph/types.d.ts +72 -0
- package/dist/core/dependency-graph/types.d.ts.map +1 -0
- package/dist/core/dependency-graph/utils.d.ts +39 -0
- package/dist/core/dependency-graph/utils.d.ts.map +1 -0
- package/dist/core/dependency-graph/validator.d.ts +28 -0
- package/dist/core/dependency-graph/validator.d.ts.map +1 -0
- package/dist/core/dependency-graph.d.ts +64 -13
- package/dist/core/dependency-graph.d.ts.map +1 -1
- package/dist/core/engine-utils.d.ts +45 -0
- package/dist/core/engine-utils.d.ts.map +1 -0
- package/dist/core/engine.d.ts +0 -8
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/expression-engine.d.ts +52 -10
- package/dist/core/expression-engine.d.ts.map +1 -1
- package/dist/core/index.d.ts +2 -4
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/operators.d.ts +48 -0
- package/dist/core/operators.d.ts.map +1 -0
- package/dist/core/persistence-browser.d.ts +25 -2
- package/dist/core/persistence-browser.d.ts.map +1 -1
- package/dist/core/persistence.node.d.ts +25 -2
- package/dist/core/persistence.node.d.ts.map +1 -1
- package/dist/core/rule-engine-new.d.ts +2 -1
- package/dist/core/rule-engine-new.d.ts.map +1 -1
- package/dist/core/rule-engine.d.ts +22 -35
- package/dist/core/rule-engine.d.ts.map +1 -1
- package/dist/core/trigger-engine.d.ts +18 -25
- package/dist/core/trigger-engine.d.ts.map +1 -1
- package/dist/domain/validator.d.ts +36043 -5067
- package/dist/domain/validator.d.ts.map +1 -1
- package/dist/index.browser.d.ts +1 -0
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/io/index.d.ts +6 -1
- package/dist/io/index.d.ts.map +1 -1
- package/dist/io/loader/index.d.ts +48 -0
- package/dist/io/loader/index.d.ts.map +1 -0
- package/dist/io/loader/persistence.d.ts +41 -0
- package/dist/io/loader/persistence.d.ts.map +1 -0
- package/dist/io/loader/query.d.ts +49 -0
- package/dist/io/loader/query.d.ts.map +1 -0
- package/dist/io/loader/registry.d.ts +91 -0
- package/dist/io/loader/registry.d.ts.map +1 -0
- package/dist/io/loader/types.d.ts +32 -0
- package/dist/io/loader/types.d.ts.map +1 -0
- package/dist/io/loader/watch.d.ts +36 -0
- package/dist/io/loader/watch.d.ts.map +1 -0
- package/dist/io/loader.node.d.ts +1 -13
- package/dist/io/loader.node.d.ts.map +1 -1
- package/dist/lsp/hover-constants.d.ts +42 -0
- package/dist/lsp/hover-constants.d.ts.map +1 -0
- package/dist/lsp/server.bundle.d.ts +2 -0
- package/dist/lsp/server.bundle.d.ts.map +1 -0
- package/dist/node/index.js +183 -170
- package/dist/node/index.js.map +116 -91
- package/dist/node/node.js +185 -173
- package/dist/node/node.js.map +118 -93
- package/dist/sdk/builder.d.ts +177 -21
- package/dist/sdk/builder.d.ts.map +1 -1
- package/dist/sdk/builders/action-builder.d.ts +24 -0
- package/dist/sdk/builders/action-builder.d.ts.map +1 -0
- package/dist/sdk/builders/condition-builder.d.ts +26 -0
- package/dist/sdk/builders/condition-builder.d.ts.map +1 -0
- package/dist/sdk/builders/index.d.ts +5 -0
- package/dist/sdk/builders/index.d.ts.map +1 -0
- package/dist/sdk/builders/params-builder.d.ts +59 -0
- package/dist/sdk/builders/params-builder.d.ts.map +1 -0
- package/dist/sdk/constants.d.ts +44 -0
- package/dist/sdk/constants.d.ts.map +1 -0
- package/dist/sdk/exporter.d.ts +16 -0
- package/dist/sdk/exporter.d.ts.map +1 -1
- package/dist/sdk/graph/action-resolver.d.ts +103 -0
- package/dist/sdk/graph/action-resolver.d.ts.map +1 -0
- package/dist/sdk/graph/condition-resolver.d.ts +87 -0
- package/dist/sdk/graph/condition-resolver.d.ts.map +1 -0
- package/dist/sdk/graph/converters.d.ts +152 -0
- package/dist/sdk/graph/converters.d.ts.map +1 -0
- package/dist/sdk/graph/index.d.ts +12 -0
- package/dist/sdk/graph/index.d.ts.map +1 -0
- package/dist/sdk/graph/node-filters.d.ts +96 -0
- package/dist/sdk/graph/node-filters.d.ts.map +1 -0
- package/dist/sdk/graph/traversal.d.ts +105 -0
- package/dist/sdk/graph/traversal.d.ts.map +1 -0
- package/dist/sdk/graph/types.d.ts +28 -0
- package/dist/sdk/graph/types.d.ts.map +1 -0
- package/dist/sdk/graph-parser.d.ts +40 -0
- package/dist/sdk/graph-parser.d.ts.map +1 -0
- package/dist/sdk/index.d.ts +3 -0
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/optimize.d.ts +27 -0
- package/dist/sdk/optimize.d.ts.map +1 -0
- package/dist/sdk/yaml/converter.d.ts +81 -0
- package/dist/sdk/yaml/converter.d.ts.map +1 -0
- package/dist/sdk/yaml/index.d.ts +39 -0
- package/dist/sdk/yaml/index.d.ts.map +1 -0
- package/dist/sdk/yaml/normalizer.d.ts +44 -0
- package/dist/sdk/yaml/normalizer.d.ts.map +1 -0
- package/dist/sdk/yaml/types.d.ts +198 -0
- package/dist/sdk/yaml/types.d.ts.map +1 -0
- package/dist/sdk/yaml/utils.d.ts +131 -0
- package/dist/sdk/yaml/utils.d.ts.map +1 -0
- package/dist/sdk/yaml-parser.d.ts +18 -0
- package/dist/sdk/yaml-parser.d.ts.map +1 -0
- package/dist/types.d.ts +40 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YAML Rule Normalizer
|
|
3
|
+
*
|
|
4
|
+
* This module normalizes raw YAML objects to proper TriggerRule structures.
|
|
5
|
+
* It handles aliases, defaults, and type conversions.
|
|
6
|
+
*/
|
|
7
|
+
import type { TriggerRule, RuleCondition, Action, ActionGroup, InlineConditionalAction } from '../../types';
|
|
8
|
+
/**
|
|
9
|
+
* Normalize a raw YAML object to a proper TriggerRule structure
|
|
10
|
+
* This handles aliases, defaults, and type conversions
|
|
11
|
+
*/
|
|
12
|
+
export declare function normalizeRule(raw: unknown, index: number, filename?: string, autoId?: boolean | string): Record<string, unknown>;
|
|
13
|
+
/**
|
|
14
|
+
* Normalize conditions from raw YAML to RuleCondition
|
|
15
|
+
*/
|
|
16
|
+
export declare function normalizeConditions(raw: unknown): RuleCondition | RuleCondition[];
|
|
17
|
+
/**
|
|
18
|
+
* Normalize the 'do' field of a rule
|
|
19
|
+
*/
|
|
20
|
+
export declare function normalizeDoField(raw: unknown): Action | Action[] | ActionGroup | (Action | ActionGroup)[] | InlineConditionalAction;
|
|
21
|
+
/**
|
|
22
|
+
* Normalize the 'else' field of a rule
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeElseField(raw: unknown): Action | Action[] | ActionGroup | (Action | ActionGroup)[];
|
|
25
|
+
/**
|
|
26
|
+
* Normalize a single action (including conditional actions)
|
|
27
|
+
*/
|
|
28
|
+
export declare function normalizeAction(raw: Record<string, unknown>): Action | InlineConditionalAction;
|
|
29
|
+
/**
|
|
30
|
+
* Normalize a complete rule with all advanced features:
|
|
31
|
+
* - Nested conditions
|
|
32
|
+
* - Inline conditionals in actions
|
|
33
|
+
* - Sub-do/sub-else blocks
|
|
34
|
+
* - DO nodes
|
|
35
|
+
*/
|
|
36
|
+
export declare function normalizeRuleAdvanced(raw: unknown, index: number, filename?: string, autoId?: boolean | string): TriggerRule;
|
|
37
|
+
/**
|
|
38
|
+
* Validate a normalized rule has required fields
|
|
39
|
+
*/
|
|
40
|
+
export declare function validateRule(rule: Record<string, unknown>): {
|
|
41
|
+
valid: boolean;
|
|
42
|
+
errors: string[];
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=normalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../../../src/sdk/yaml/normalizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,MAAM,EACN,WAAW,EAGX,uBAAuB,EAGxB,MAAM,aAAa,CAAC;AAerB;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgDzB;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,GACX,aAAa,GAAG,aAAa,EAAE,CAmBjC;AAqCD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,GACX,MAAM,GAAG,MAAM,EAAE,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,GAAG,uBAAuB,CA4BtF;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,GACX,MAAM,GAAG,MAAM,EAAE,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CA4B5D;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,uBAAuB,CA+C9F;AAoFD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GACxB,WAAW,CAYb;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAoBhG"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YAML Parser Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the YAML parser module.
|
|
5
|
+
* These types are shared between the parser, normalizer, and converter.
|
|
6
|
+
*/
|
|
7
|
+
import type { TriggerRule, RuleCondition, Action, ExecutionMode } from '../../types';
|
|
8
|
+
export type { TriggerRule, RuleCondition, Action, ActionGroup, ComparisonOperator, ExecutionMode, InlineConditionalAction } from '../../types';
|
|
9
|
+
export { NodeType, HandleId, BranchType } from '../constants';
|
|
10
|
+
export interface YamlParserOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Assign an ID to rules that don't have one.
|
|
13
|
+
* If false, rules without IDs will fail validation.
|
|
14
|
+
* If string, that string will be used as a prefix.
|
|
15
|
+
* If true, a default ID will be generated from the filename (requires filename option).
|
|
16
|
+
*/
|
|
17
|
+
autoId?: boolean | string;
|
|
18
|
+
/**
|
|
19
|
+
* Filename to use for generating rule IDs and error messages.
|
|
20
|
+
* Useful when parsing from a file.
|
|
21
|
+
*/
|
|
22
|
+
filename?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Whether to throw on validation errors or return them.
|
|
25
|
+
* @default false (return errors)
|
|
26
|
+
*/
|
|
27
|
+
throwOnError?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Whether to support multi-document YAML.
|
|
30
|
+
* @default true
|
|
31
|
+
*/
|
|
32
|
+
multiDocument?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface YamlParserResult {
|
|
35
|
+
/**
|
|
36
|
+
* The parsed and validated rules
|
|
37
|
+
*/
|
|
38
|
+
rules: TriggerRule[];
|
|
39
|
+
/**
|
|
40
|
+
* Validation errors (empty if all rules are valid)
|
|
41
|
+
*/
|
|
42
|
+
errors: YamlParserError[];
|
|
43
|
+
/**
|
|
44
|
+
* Whether all rules are valid
|
|
45
|
+
*/
|
|
46
|
+
valid: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface YamlParserError {
|
|
49
|
+
/**
|
|
50
|
+
* Index of the rule in the document (0-based)
|
|
51
|
+
*/
|
|
52
|
+
index: number;
|
|
53
|
+
/**
|
|
54
|
+
* Human-readable error message
|
|
55
|
+
*/
|
|
56
|
+
message: string;
|
|
57
|
+
/**
|
|
58
|
+
* Path to the problematic field
|
|
59
|
+
*/
|
|
60
|
+
path?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Validation issues from TriggerValidator
|
|
63
|
+
*/
|
|
64
|
+
issues?: Array<{
|
|
65
|
+
path: string;
|
|
66
|
+
message: string;
|
|
67
|
+
suggestion?: string;
|
|
68
|
+
}>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Node types for the React Flow editor
|
|
72
|
+
*/
|
|
73
|
+
export type EditorNodeType = 'event' | 'condition' | 'condition_group' | 'action' | 'action_group' | 'do';
|
|
74
|
+
/**
|
|
75
|
+
* Basic node structure for the editor
|
|
76
|
+
*/
|
|
77
|
+
export interface EditorNode {
|
|
78
|
+
id: string;
|
|
79
|
+
type: EditorNodeType;
|
|
80
|
+
position: {
|
|
81
|
+
x: number;
|
|
82
|
+
y: number;
|
|
83
|
+
};
|
|
84
|
+
data: Record<string, unknown>;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Basic edge structure for the editor
|
|
88
|
+
*/
|
|
89
|
+
export interface EditorEdge {
|
|
90
|
+
id: string;
|
|
91
|
+
source: string;
|
|
92
|
+
target: string;
|
|
93
|
+
sourceHandle?: string | null;
|
|
94
|
+
targetHandle?: string | null;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Result of converting a TriggerRule to nodes and edges
|
|
98
|
+
*/
|
|
99
|
+
export interface TriggerRuleToNodesResult {
|
|
100
|
+
nodes: EditorNode[];
|
|
101
|
+
edges: EditorEdge[];
|
|
102
|
+
valid: boolean;
|
|
103
|
+
errors: string[];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Raw condition object from YAML (before normalization)
|
|
107
|
+
*/
|
|
108
|
+
export interface RawCondition {
|
|
109
|
+
field?: string;
|
|
110
|
+
operator?: string;
|
|
111
|
+
value?: unknown;
|
|
112
|
+
conditions?: RawCondition[];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Raw action object from YAML (before normalization)
|
|
116
|
+
*/
|
|
117
|
+
export interface RawAction {
|
|
118
|
+
type?: string;
|
|
119
|
+
params?: Record<string, unknown>;
|
|
120
|
+
run?: string;
|
|
121
|
+
delay?: number;
|
|
122
|
+
probability?: number;
|
|
123
|
+
if?: RawCondition | RawCondition[];
|
|
124
|
+
then?: RawAction | RawAction[];
|
|
125
|
+
do?: RawAction | RawAction[];
|
|
126
|
+
else?: RawAction | RawAction[];
|
|
127
|
+
mode?: ExecutionMode;
|
|
128
|
+
actions?: RawAction[];
|
|
129
|
+
break?: boolean;
|
|
130
|
+
continue?: boolean;
|
|
131
|
+
[key: string]: unknown;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Raw rule object from YAML (before normalization)
|
|
135
|
+
*/
|
|
136
|
+
export interface RawRule {
|
|
137
|
+
id?: string;
|
|
138
|
+
name?: string;
|
|
139
|
+
description?: string;
|
|
140
|
+
on: string;
|
|
141
|
+
if?: RawCondition | RawCondition[];
|
|
142
|
+
do?: RawAction | RawAction[] | {
|
|
143
|
+
mode: ExecutionMode;
|
|
144
|
+
actions: RawAction[];
|
|
145
|
+
};
|
|
146
|
+
else?: RawAction | RawAction[] | {
|
|
147
|
+
mode: ExecutionMode;
|
|
148
|
+
actions: RawAction[];
|
|
149
|
+
};
|
|
150
|
+
actions?: RawAction | RawAction[];
|
|
151
|
+
priority?: number;
|
|
152
|
+
enabled?: boolean;
|
|
153
|
+
cooldown?: number;
|
|
154
|
+
tags?: string[];
|
|
155
|
+
[key: string]: unknown;
|
|
156
|
+
}
|
|
157
|
+
export interface GraphParserOptions {
|
|
158
|
+
/**
|
|
159
|
+
* Custom function to check if a node is an event node
|
|
160
|
+
*/
|
|
161
|
+
isEventNode?: (node: unknown) => boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Custom function to check if a node is a condition node
|
|
164
|
+
*/
|
|
165
|
+
isCondNode?: (node: unknown) => boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Custom function to check if a node is an action node
|
|
168
|
+
*/
|
|
169
|
+
isActNode?: (node: unknown) => boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Custom function to check if a node is a DO node
|
|
172
|
+
*/
|
|
173
|
+
isDoNode?: (node: unknown) => boolean;
|
|
174
|
+
/**
|
|
175
|
+
* Custom function to extract event data from an event node
|
|
176
|
+
*/
|
|
177
|
+
extractEventData?: (node: unknown) => Record<string, unknown>;
|
|
178
|
+
/**
|
|
179
|
+
* Optimization options
|
|
180
|
+
*/
|
|
181
|
+
optimizeOptions?: {
|
|
182
|
+
enabled?: boolean;
|
|
183
|
+
maxDepth?: number;
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
export interface GraphParserContext {
|
|
187
|
+
nodes: unknown[];
|
|
188
|
+
edges: unknown[];
|
|
189
|
+
visitedConds: Set<string>;
|
|
190
|
+
visitedActs: Set<string>;
|
|
191
|
+
options: GraphParserOptions;
|
|
192
|
+
transformers?: {
|
|
193
|
+
condition?: (cond: RuleCondition) => RuleCondition;
|
|
194
|
+
action?: (action: Action) => Action;
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
export type { GraphParserOptions as GraphParserOptionsInternal, GraphParserContext as GraphParserContextInternal } from '../graph/types';
|
|
198
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sdk/yaml/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YAML Parser Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utility functions for the YAML parser including type guards,
|
|
5
|
+
* helpers, and normalization functions.
|
|
6
|
+
*/
|
|
7
|
+
import type { RuleCondition, Action, ActionGroup, ComparisonOperator, ExecutionMode, InlineConditionalAction, ConditionValue } from '../../types';
|
|
8
|
+
export type { ComparisonOperator, ExecutionMode } from '../../types';
|
|
9
|
+
/**
|
|
10
|
+
* Check if a value is a plain object
|
|
11
|
+
*/
|
|
12
|
+
export declare function isObject(value: unknown): value is Record<string, unknown>;
|
|
13
|
+
/**
|
|
14
|
+
* Check if a value is a non-empty string
|
|
15
|
+
*/
|
|
16
|
+
export declare function isNonEmptyString(value: unknown): value is string;
|
|
17
|
+
/**
|
|
18
|
+
* Check if a value is a valid number
|
|
19
|
+
*/
|
|
20
|
+
export declare function isValidNumber(value: unknown): value is number;
|
|
21
|
+
/**
|
|
22
|
+
* Check if a value is a boolean
|
|
23
|
+
*/
|
|
24
|
+
export declare function isBoolean(value: unknown): value is boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Check if a condition is a condition group (has operator and nested conditions)
|
|
27
|
+
*/
|
|
28
|
+
export declare function isConditionGroup(cond: RuleCondition): cond is {
|
|
29
|
+
operator: 'AND' | 'OR';
|
|
30
|
+
conditions: RuleCondition[];
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Check if a condition is a simple condition (has field and operator)
|
|
34
|
+
*/
|
|
35
|
+
export declare function isSimpleCondition(cond: RuleCondition): cond is {
|
|
36
|
+
field: string;
|
|
37
|
+
operator: ComparisonOperator;
|
|
38
|
+
value?: ConditionValue;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Check if an action is an action group (has mode and nested actions)
|
|
42
|
+
*/
|
|
43
|
+
export declare function isActionGroup(action: unknown): action is ActionGroup;
|
|
44
|
+
/**
|
|
45
|
+
* Check if an action object has conditional execution (if/then/else)
|
|
46
|
+
*/
|
|
47
|
+
export declare function hasConditionalExecution(action: unknown): action is InlineConditionalAction;
|
|
48
|
+
/**
|
|
49
|
+
* Check if an action is a simple action (has type)
|
|
50
|
+
*/
|
|
51
|
+
export declare function isSimpleAction(action: unknown): action is Action;
|
|
52
|
+
/**
|
|
53
|
+
* Check if value is a valid execution mode
|
|
54
|
+
*/
|
|
55
|
+
export declare function isValidExecutionMode(value: unknown): value is ExecutionMode;
|
|
56
|
+
/**
|
|
57
|
+
* Check if value is a valid condition group operator
|
|
58
|
+
*/
|
|
59
|
+
export declare function isValidConditionOperator(value: unknown): value is 'AND' | 'OR';
|
|
60
|
+
/**
|
|
61
|
+
* Check if value is a valid comparison operator
|
|
62
|
+
*/
|
|
63
|
+
export declare function isValidComparisonOperator(value: unknown): value is ComparisonOperator;
|
|
64
|
+
/**
|
|
65
|
+
* Safely extract action type
|
|
66
|
+
*/
|
|
67
|
+
export declare function getActionType(action: Action): string;
|
|
68
|
+
/**
|
|
69
|
+
* Safely extract and stringify action params
|
|
70
|
+
*/
|
|
71
|
+
export declare function getActionParams(action: Action): string;
|
|
72
|
+
/**
|
|
73
|
+
* Safely extract condition field
|
|
74
|
+
*/
|
|
75
|
+
export declare function getConditionField(cond: RuleCondition): string;
|
|
76
|
+
/**
|
|
77
|
+
* Safely extract condition operator
|
|
78
|
+
*/
|
|
79
|
+
export declare function getConditionOperator(cond: RuleCondition): string;
|
|
80
|
+
/**
|
|
81
|
+
* Safely extract condition value
|
|
82
|
+
*/
|
|
83
|
+
export declare function getConditionValue(cond: RuleCondition): unknown;
|
|
84
|
+
/**
|
|
85
|
+
* Creates a sequential node ID generator
|
|
86
|
+
*/
|
|
87
|
+
export declare function createNodeIdGenerator(start?: number): () => string;
|
|
88
|
+
/**
|
|
89
|
+
* Creates an edge ID generator
|
|
90
|
+
*/
|
|
91
|
+
export declare function createEdgeIdGenerator(): () => string;
|
|
92
|
+
/**
|
|
93
|
+
* Creates a position calculator for node layout
|
|
94
|
+
*/
|
|
95
|
+
export declare function createPositionCalculator(baseX?: number, baseY?: number, levelSpacing?: number, nodeSpacing?: number): (level: number, index: number, total: number) => {
|
|
96
|
+
x: number;
|
|
97
|
+
y: number;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Ensure a value is an array
|
|
101
|
+
*/
|
|
102
|
+
export declare function ensureArray<T>(value: T | T[] | undefined): T[];
|
|
103
|
+
/**
|
|
104
|
+
* Normalize action to array format
|
|
105
|
+
*/
|
|
106
|
+
export declare function normalizeActions(action: Action | Action[] | undefined): Action[];
|
|
107
|
+
/**
|
|
108
|
+
* Normalize condition to array format
|
|
109
|
+
*/
|
|
110
|
+
export declare function normalizeConditions(condition: RuleCondition | RuleCondition[] | undefined): RuleCondition[];
|
|
111
|
+
/**
|
|
112
|
+
* Generate a rule ID from filename
|
|
113
|
+
*/
|
|
114
|
+
export declare function generateRuleIdFromFilename(filename: string): string;
|
|
115
|
+
/**
|
|
116
|
+
* Normalize operator to canonical form
|
|
117
|
+
*/
|
|
118
|
+
export declare function normalizeOperator(operator: string): ComparisonOperator;
|
|
119
|
+
/**
|
|
120
|
+
* Validate that a required field is present
|
|
121
|
+
*/
|
|
122
|
+
export declare function requireField(obj: Record<string, unknown>, field: string): void;
|
|
123
|
+
/**
|
|
124
|
+
* Validate field type
|
|
125
|
+
*/
|
|
126
|
+
export declare function validateFieldType(value: unknown, expectedType: string, fieldName: string): void;
|
|
127
|
+
/**
|
|
128
|
+
* Validate field is one of allowed values
|
|
129
|
+
*/
|
|
130
|
+
export declare function validateFieldValue<T extends string>(value: unknown, allowedValues: readonly T[], fieldName: string): asserts value is T;
|
|
131
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/sdk/yaml/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,uBAAuB,EACvB,cAAc,EACf,MAAM,aAAa,CAAC;AAarB,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMrE;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,IAAI;IAAE,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,aAAa,EAAE,CAAA;CAAE,CAGrH;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,kBAAkB,CAAC;IAAC,KAAK,CAAC,EAAE,cAAc,CAAA;CAAE,CAEtI;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,WAAW,CAIpE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,uBAAuB,CAE1F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAE3E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAE9E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAErF;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAK7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAQhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAK9D;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM,MAAM,CAGrE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,MAAM,CAGpD;AAMD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,GAAE,MAAY,EACnB,KAAK,GAAE,MAAY,EACnB,YAAY,GAAE,MAAY,EAC1B,WAAW,GAAE,MAAY,IAEjB,OAAO,MAAM,EAAE,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAI/E;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,GAAG,CAAC,EAAE,CAI9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAIhF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG,SAAS,GAAG,aAAa,EAAE,CAI3G;AAMD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAUtE;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI9E;AASD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAK/F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EACjD,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,SAAS,CAAC,EAAE,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,IAAI,CAAC,CAIpB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YAML Parser for Trigger Rules
|
|
3
|
+
*
|
|
4
|
+
* This module provides a reusable YAML parser that converts YAML content
|
|
5
|
+
* into TriggerRule objects with proper validation.
|
|
6
|
+
*
|
|
7
|
+
* DEPRECATED: This file is kept for backward compatibility.
|
|
8
|
+
* Please use the modularized version at src/sdk/yaml/ instead.
|
|
9
|
+
*
|
|
10
|
+
* The parser:
|
|
11
|
+
* 1. Parses YAML using the yaml library
|
|
12
|
+
* 2. Normalizes the structure (handles aliases like 'actions' -> 'do')
|
|
13
|
+
* 3. Validates using TriggerValidator
|
|
14
|
+
* 4. Returns a valid TriggerRule or throws/returns errors
|
|
15
|
+
*/
|
|
16
|
+
export * from './yaml';
|
|
17
|
+
export type { YamlParserOptions, YamlParserResult, YamlParserError, EditorNodeType, EditorNode, EditorEdge, TriggerRuleToNodesResult } from './yaml';
|
|
18
|
+
//# sourceMappingURL=yaml-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-parser.d.ts","sourceRoot":"","sources":["../../src/sdk/yaml-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,cAAc,QAAQ,CAAC;AAGvB,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,EACV,wBAAwB,EACzB,MAAM,QAAQ,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -11,6 +11,22 @@ export interface RuleMetadata {
|
|
|
11
11
|
cooldown?: number;
|
|
12
12
|
tags?: string[];
|
|
13
13
|
}
|
|
14
|
+
/** List of all equality operators */
|
|
15
|
+
export declare const EQUALITY_OPERATORS: readonly ["EQ", "==", "NEQ", "!="];
|
|
16
|
+
/** List of all comparison operators */
|
|
17
|
+
export declare const COMPARISON_OPERATORS: readonly ["GT", ">", "GTE", ">=", "LT", "<", "LTE", "<="];
|
|
18
|
+
/** List of list/collection operators */
|
|
19
|
+
export declare const LIST_OPERATORS: readonly ["IN", "NOT_IN", "RANGE"];
|
|
20
|
+
/** List of string matching operators */
|
|
21
|
+
export declare const STRING_OPERATORS: readonly ["CONTAINS", "NOT_CONTAINS", "STARTS_WITH", "ENDS_WITH"];
|
|
22
|
+
/** List of null-checking operators */
|
|
23
|
+
export declare const NULL_OPERATORS: readonly ["IS_NULL", "IS_NONE"];
|
|
24
|
+
/** List of all valid operators */
|
|
25
|
+
export declare const ALL_OPERATORS: readonly ["EQ", "==", "NEQ", "!=", "GT", ">", "GTE", ">=", "LT", "<", "LTE", "<=", "IN", "NOT_IN", "RANGE", "CONTAINS", "NOT_CONTAINS", "STARTS_WITH", "ENDS_WITH", "IS_EMPTY", "HAS_KEY", "MATCHES", "SINCE", "AFTER", "BEFORE", "UNTIL", "RANGE"];
|
|
26
|
+
/** Condition group operators */
|
|
27
|
+
export declare const CONDITION_GROUP_OPERATORS: readonly ["AND", "OR"];
|
|
28
|
+
/** Action group execution modes */
|
|
29
|
+
export declare const EXECUTION_MODES: readonly ["ALL", "EITHER", "SEQUENCE"];
|
|
14
30
|
export type ComparisonOperator = 'EQ' | '==' | 'NEQ' | '!=' | 'GT' | '>' | 'GTE' | '>=' | 'LT' | '<' | 'LTE' | '<=' | 'IN' | 'NOT_IN' | 'CONTAINS' | 'NOT_CONTAINS' | 'STARTS_WITH' | 'ENDS_WITH' | 'IS_EMPTY' | 'IS_NULL' | 'IS_NONE' | 'HAS_KEY' | 'MATCHES' | 'SINCE' | 'AFTER' | 'BEFORE' | 'UNTIL' | 'RANGE';
|
|
15
31
|
export type ConditionValue = string | number | boolean | Date | string[] | number[] | null;
|
|
16
32
|
export interface Condition {
|
|
@@ -36,6 +52,7 @@ export interface Action {
|
|
|
36
52
|
probability?: number;
|
|
37
53
|
if?: RuleCondition | RuleCondition[];
|
|
38
54
|
then?: Action | Action[] | ActionGroup;
|
|
55
|
+
do?: Action | Action[] | ActionGroup;
|
|
39
56
|
else?: Action | Action[] | ActionGroup;
|
|
40
57
|
break?: boolean;
|
|
41
58
|
continue?: boolean;
|
|
@@ -44,12 +61,22 @@ export interface Action {
|
|
|
44
61
|
export type ExecutionMode = 'ALL' | 'EITHER' | 'SEQUENCE';
|
|
45
62
|
export interface ActionGroup {
|
|
46
63
|
mode: ExecutionMode;
|
|
47
|
-
actions: Action[];
|
|
64
|
+
actions: (Action | ActionGroup)[];
|
|
65
|
+
}
|
|
66
|
+
export interface InlineConditionalAction {
|
|
67
|
+
if: RuleCondition | RuleCondition[];
|
|
68
|
+
then?: Action | Action[] | ActionGroup;
|
|
69
|
+
do?: Action | Action[] | ActionGroup;
|
|
70
|
+
else?: Action | Action[] | ActionGroup;
|
|
71
|
+
break?: boolean;
|
|
72
|
+
continue?: boolean;
|
|
73
|
+
[key: string]: unknown;
|
|
48
74
|
}
|
|
49
75
|
export interface TriggerRule extends RuleMetadata {
|
|
50
76
|
on: string;
|
|
51
77
|
if?: RuleCondition | RuleCondition[];
|
|
52
|
-
do: Action | Action[] | ActionGroup;
|
|
78
|
+
do: Action | Action[] | ActionGroup | (Action | ActionGroup)[] | InlineConditionalAction;
|
|
79
|
+
else?: Action | Action[] | ActionGroup | (Action | ActionGroup)[];
|
|
53
80
|
}
|
|
54
81
|
export interface TriggerContext {
|
|
55
82
|
event: string;
|
|
@@ -120,4 +147,15 @@ export type EngineActionHandler = (params: ActionParams, context: TriggerContext
|
|
|
120
147
|
export type TriggerCondition = Condition;
|
|
121
148
|
export type TriggerAction = Action;
|
|
122
149
|
export type TriggerConditionGroup = ConditionGroup;
|
|
150
|
+
export interface SDKGraphNode {
|
|
151
|
+
id: string;
|
|
152
|
+
type: string;
|
|
153
|
+
data: any;
|
|
154
|
+
}
|
|
155
|
+
export interface SDKGraphEdge {
|
|
156
|
+
source: string;
|
|
157
|
+
target: string;
|
|
158
|
+
sourceHandle?: string | null;
|
|
159
|
+
targetHandle?: string | null;
|
|
160
|
+
}
|
|
123
161
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAIH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trigger_system",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.4",
|
|
4
4
|
"description": "A powerful rule engine and trigger system for JavaScript/TypeScript applications",
|
|
5
5
|
"main": "dist/node/index.js",
|
|
6
6
|
"browser": "dist/browser/index.browser.js",
|
|
@@ -39,6 +39,11 @@
|
|
|
39
39
|
},
|
|
40
40
|
"default": "./dist/node/index.js"
|
|
41
41
|
},
|
|
42
|
+
"./lsp": {
|
|
43
|
+
"types": "./dist/lsp/hover-constants.d.ts",
|
|
44
|
+
"import": "./dist/lsp/hover-constants.js",
|
|
45
|
+
"default": "./dist/lsp/hover-constants.js"
|
|
46
|
+
},
|
|
42
47
|
"./node": {
|
|
43
48
|
"import": "./dist/node/node.js",
|
|
44
49
|
"require": "./dist/node/node.js",
|