trigger_system 1.0.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/LICENSE +21 -0
- package/README.md +127 -0
- package/dist/browser/index.browser.js +48 -0
- package/dist/browser/index.browser.js.map +122 -0
- package/dist/cli/lsp-server.d.ts +3 -0
- package/dist/cli/lsp-server.d.ts.map +1 -0
- package/dist/cli/validate.d.ts +2 -0
- package/dist/cli/validate.d.ts.map +1 -0
- package/dist/core/action-registry.d.ts +12 -0
- package/dist/core/action-registry.d.ts.map +1 -0
- package/dist/core/context-adapter.d.ts +23 -0
- package/dist/core/context-adapter.d.ts.map +1 -0
- package/dist/core/dependency-graph.d.ts +18 -0
- package/dist/core/dependency-graph.d.ts.map +1 -0
- package/dist/core/engine.d.ts +24 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/event-queue.d.ts +25 -0
- package/dist/core/event-queue.d.ts.map +1 -0
- package/dist/core/expression-engine.d.ts +31 -0
- package/dist/core/expression-engine.d.ts.map +1 -0
- package/dist/core/index.d.ts +10 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/persistence-browser.d.ts +20 -0
- package/dist/core/persistence-browser.d.ts.map +1 -0
- package/dist/core/persistence.d.ts +34 -0
- package/dist/core/persistence.d.ts.map +1 -0
- package/dist/core/persistence.node.d.ts +18 -0
- package/dist/core/persistence.node.d.ts.map +1 -0
- package/dist/core/plugin-manager.d.ts +15 -0
- package/dist/core/plugin-manager.d.ts.map +1 -0
- package/dist/core/rule-engine.d.ts +39 -0
- package/dist/core/rule-engine.d.ts.map +1 -0
- package/dist/core/state-manager.d.ts +41 -0
- package/dist/core/state-manager.d.ts.map +1 -0
- package/dist/domain/index.d.ts +2 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/validator.d.ts +2433 -0
- package/dist/domain/validator.d.ts.map +1 -0
- package/dist/index.browser.d.ts +6 -0
- package/dist/index.browser.d.ts.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/io/index.d.ts +2 -0
- package/dist/io/index.d.ts.map +1 -0
- package/dist/io/loader.node.d.ts +14 -0
- package/dist/io/loader.node.d.ts.map +1 -0
- package/dist/lsp/completions.d.ts +6 -0
- package/dist/lsp/completions.d.ts.map +1 -0
- package/dist/lsp/completions.js +624 -0
- package/dist/lsp/completions.js.map +1 -0
- package/dist/lsp/data-context.d.ts +60 -0
- package/dist/lsp/data-context.d.ts.map +1 -0
- package/dist/lsp/data-context.js +172 -0
- package/dist/lsp/data-context.js.map +1 -0
- package/dist/lsp/diagnostics.d.ts +7 -0
- package/dist/lsp/diagnostics.d.ts.map +1 -0
- package/dist/lsp/diagnostics.js +373 -0
- package/dist/lsp/diagnostics.js.map +1 -0
- package/dist/lsp/directives.d.ts +44 -0
- package/dist/lsp/directives.d.ts.map +1 -0
- package/dist/lsp/directives.js +232 -0
- package/dist/lsp/directives.js.map +1 -0
- package/dist/lsp/domain/index.d.ts +2 -0
- package/dist/lsp/domain/index.d.ts.map +1 -0
- package/dist/lsp/domain/index.js +18 -0
- package/dist/lsp/domain/index.js.map +1 -0
- package/dist/lsp/domain/validator.d.ts +2433 -0
- package/dist/lsp/domain/validator.d.ts.map +1 -0
- package/dist/lsp/domain/validator.js +225 -0
- package/dist/lsp/domain/validator.js.map +1 -0
- package/dist/lsp/hover.d.ts +7 -0
- package/dist/lsp/hover.d.ts.map +1 -0
- package/dist/lsp/hover.js +462 -0
- package/dist/lsp/hover.js.map +1 -0
- package/dist/lsp/lsp/completions.d.ts +6 -0
- package/dist/lsp/lsp/completions.d.ts.map +1 -0
- package/dist/lsp/lsp/completions.js +624 -0
- package/dist/lsp/lsp/completions.js.map +1 -0
- package/dist/lsp/lsp/data-context.d.ts +60 -0
- package/dist/lsp/lsp/data-context.d.ts.map +1 -0
- package/dist/lsp/lsp/data-context.js +172 -0
- package/dist/lsp/lsp/data-context.js.map +1 -0
- package/dist/lsp/lsp/diagnostics.d.ts +7 -0
- package/dist/lsp/lsp/diagnostics.d.ts.map +1 -0
- package/dist/lsp/lsp/diagnostics.js +373 -0
- package/dist/lsp/lsp/diagnostics.js.map +1 -0
- package/dist/lsp/lsp/directives.d.ts +44 -0
- package/dist/lsp/lsp/directives.d.ts.map +1 -0
- package/dist/lsp/lsp/directives.js +232 -0
- package/dist/lsp/lsp/directives.js.map +1 -0
- package/dist/lsp/lsp/hover.d.ts +7 -0
- package/dist/lsp/lsp/hover.d.ts.map +1 -0
- package/dist/lsp/lsp/hover.js +462 -0
- package/dist/lsp/lsp/hover.js.map +1 -0
- package/dist/lsp/lsp/semantic_tokens.d.ts +4 -0
- package/dist/lsp/lsp/semantic_tokens.d.ts.map +1 -0
- package/dist/lsp/lsp/semantic_tokens.js +158 -0
- package/dist/lsp/lsp/semantic_tokens.js.map +1 -0
- package/dist/lsp/lsp/server.d.ts +2 -0
- package/dist/lsp/lsp/server.d.ts.map +1 -0
- package/dist/lsp/lsp/server.js +216 -0
- package/dist/lsp/lsp/server.js.map +1 -0
- package/dist/lsp/semantic_tokens.d.ts +4 -0
- package/dist/lsp/semantic_tokens.d.ts.map +1 -0
- package/dist/lsp/semantic_tokens.js +158 -0
- package/dist/lsp/semantic_tokens.js.map +1 -0
- package/dist/lsp/server.bundle.d.ts +2 -0
- package/dist/lsp/server.bundle.d.ts.map +1 -0
- package/dist/lsp/server.bundle.js +256 -0
- package/dist/lsp/server.d.ts +2 -0
- package/dist/lsp/server.d.ts.map +1 -0
- package/dist/lsp/server.js +216 -0
- package/dist/lsp/server.js.map +1 -0
- package/dist/lsp/types.d.ts +71 -0
- package/dist/lsp/types.d.ts.map +1 -0
- package/dist/lsp/types.js +4 -0
- package/dist/lsp/types.js.map +1 -0
- package/dist/node/index.js +186 -0
- package/dist/node/index.js.map +196 -0
- package/dist/node/node.js +187 -0
- package/dist/node/node.js.map +198 -0
- package/dist/node.d.ts +4 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/sdk/builder.d.ts +39 -0
- package/dist/sdk/builder.d.ts.map +1 -0
- package/dist/sdk/exporter.d.ts +13 -0
- package/dist/sdk/exporter.d.ts.map +1 -0
- package/dist/sdk/index.d.ts +3 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/types.d.ts +71 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/emitter.d.ts +25 -0
- package/dist/utils/emitter.d.ts.map +1 -0
- package/dist/utils/utils.d.ts +18 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/package.json +91 -0
package/dist/node.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AAGxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { TriggerRule, RuleCondition, Action, ActionGroup, ComparisonOperator, ExecutionMode } from "../types";
|
|
2
|
+
export declare class ConditionBuilder {
|
|
3
|
+
private conditions;
|
|
4
|
+
private op;
|
|
5
|
+
constructor(operator?: 'AND' | 'OR');
|
|
6
|
+
where(field: string, operator: ComparisonOperator, value: any): this;
|
|
7
|
+
and(sub: (builder: ConditionBuilder) => ConditionBuilder): this;
|
|
8
|
+
or(sub: (builder: ConditionBuilder) => ConditionBuilder): this;
|
|
9
|
+
build(): RuleCondition;
|
|
10
|
+
}
|
|
11
|
+
export declare class ActionBuilder {
|
|
12
|
+
private actions;
|
|
13
|
+
private mode;
|
|
14
|
+
setMode(mode: ExecutionMode): this;
|
|
15
|
+
add(type: string, params?: Record<string, any>, options?: {
|
|
16
|
+
delay?: number;
|
|
17
|
+
probability?: number;
|
|
18
|
+
}): this;
|
|
19
|
+
build(): Action | Action[] | ActionGroup;
|
|
20
|
+
}
|
|
21
|
+
export declare class RuleBuilder {
|
|
22
|
+
private rule;
|
|
23
|
+
withId(id: string): this;
|
|
24
|
+
withName(name: string): this;
|
|
25
|
+
withDescription(description: string): this;
|
|
26
|
+
withPriority(priority: number): this;
|
|
27
|
+
withCooldown(cooldown: number): this;
|
|
28
|
+
withTags(tags: string[]): this;
|
|
29
|
+
on(event: string): this;
|
|
30
|
+
if(field: string, operator: ComparisonOperator, value: any): this;
|
|
31
|
+
ifComplex(sub: (builder: ConditionBuilder) => ConditionBuilder): this;
|
|
32
|
+
do(type: string, params?: Record<string, any>, options?: {
|
|
33
|
+
delay?: number;
|
|
34
|
+
probability?: number;
|
|
35
|
+
}): this;
|
|
36
|
+
doComplex(sub: (builder: ActionBuilder) => ActionBuilder): this;
|
|
37
|
+
build(): TriggerRule;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/sdk/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,MAAM,EACN,WAAW,EACX,kBAAkB,EAClB,aAAa,EAGd,MAAM,UAAU,CAAC;AAElB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,EAAE,CAAuB;gBAErB,QAAQ,GAAE,KAAK,GAAG,IAAY;IAI1C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAKpE,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,IAAI;IAM/D,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,IAAI;IAM9D,KAAK,IAAI,aAAa;CAavB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,IAAI,CAAwB;IAEpC,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAKlC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IASzG,KAAK,IAAI,MAAM,GAAG,MAAM,EAAE,GAAG,WAAW;CAgBzC;AAID,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAGV;IAEF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK5B,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAK1C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAK9B,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKvB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAWjE,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,IAAI;IAOrE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAcxG,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,aAAa,GAAG,IAAI;IAQ/D,KAAK,IAAI,WAAW;CAOrB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TriggerRule } from "../types";
|
|
2
|
+
export declare class RuleExporter {
|
|
3
|
+
/**
|
|
4
|
+
* Converts a rule or array of rules to a YAML string.
|
|
5
|
+
*/
|
|
6
|
+
static toYaml(rules: TriggerRule | TriggerRule[]): string;
|
|
7
|
+
/**
|
|
8
|
+
* For Node.js only: Saves a rule or array of rules to a file.
|
|
9
|
+
* This is part of the 'Server SDK' functionality.
|
|
10
|
+
*/
|
|
11
|
+
static saveToFile(rules: TriggerRule | TriggerRule[], filePath: string): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=exporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../src/sdk/exporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAI5C,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,MAAM;IAMzD;;;OAGG;WACU,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAY7F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agnostic Trigger System Types
|
|
3
|
+
* Designed to be generic and extensible for any event-driven application.
|
|
4
|
+
*/
|
|
5
|
+
export interface RuleMetadata {
|
|
6
|
+
id: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
priority?: number;
|
|
10
|
+
enabled?: boolean;
|
|
11
|
+
cooldown?: number;
|
|
12
|
+
tags?: string[];
|
|
13
|
+
}
|
|
14
|
+
export type ComparisonOperator = 'EQ' | '==' | 'NEQ' | '!=' | 'GT' | '>' | 'GTE' | '>=' | 'LT' | '<' | 'LTE' | '<=' | 'IN' | 'NOT_IN' | 'CONTAINS' | 'MATCHES' | 'SINCE' | 'AFTER' | 'BEFORE' | 'UNTIL' | 'RANGE';
|
|
15
|
+
export interface Condition {
|
|
16
|
+
field: string;
|
|
17
|
+
operator: ComparisonOperator;
|
|
18
|
+
value: any;
|
|
19
|
+
}
|
|
20
|
+
export interface ConditionGroup {
|
|
21
|
+
operator: 'AND' | 'OR';
|
|
22
|
+
conditions: (Condition | ConditionGroup)[];
|
|
23
|
+
}
|
|
24
|
+
export type RuleCondition = Condition | ConditionGroup;
|
|
25
|
+
export interface Action {
|
|
26
|
+
type: string;
|
|
27
|
+
params?: Record<string, any>;
|
|
28
|
+
delay?: number;
|
|
29
|
+
probability?: number;
|
|
30
|
+
}
|
|
31
|
+
export type ExecutionMode = 'ALL' | 'EITHER' | 'SEQUENCE';
|
|
32
|
+
export interface ActionGroup {
|
|
33
|
+
mode: ExecutionMode;
|
|
34
|
+
actions: Action[];
|
|
35
|
+
}
|
|
36
|
+
export interface TriggerRule extends RuleMetadata {
|
|
37
|
+
on: string;
|
|
38
|
+
if?: RuleCondition | RuleCondition[];
|
|
39
|
+
do: Action | Action[] | ActionGroup;
|
|
40
|
+
}
|
|
41
|
+
export interface TriggerContext {
|
|
42
|
+
event: string;
|
|
43
|
+
timestamp: number;
|
|
44
|
+
data: Record<string, any>;
|
|
45
|
+
id?: string;
|
|
46
|
+
globals?: Record<string, any>;
|
|
47
|
+
state?: Record<string, any>;
|
|
48
|
+
helpers?: Record<string, Function>;
|
|
49
|
+
}
|
|
50
|
+
export interface TriggerResult {
|
|
51
|
+
ruleId: string;
|
|
52
|
+
success: boolean;
|
|
53
|
+
executedActions: {
|
|
54
|
+
type: string;
|
|
55
|
+
result?: any;
|
|
56
|
+
error?: any;
|
|
57
|
+
timestamp: number;
|
|
58
|
+
}[];
|
|
59
|
+
error?: Error;
|
|
60
|
+
}
|
|
61
|
+
export interface RuleEngineConfig {
|
|
62
|
+
rules: TriggerRule[];
|
|
63
|
+
globalSettings: {
|
|
64
|
+
debugMode?: boolean;
|
|
65
|
+
evaluateAll?: boolean;
|
|
66
|
+
strictActions?: boolean;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export type TriggerCondition = Condition;
|
|
70
|
+
export type TriggerAction = Action;
|
|
71
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
type Handler<T = any> = (data: T) => void;
|
|
2
|
+
/**
|
|
3
|
+
* Enumeration of all built-in engine events.
|
|
4
|
+
* Use these constants instead of raw strings to ensure type safety.
|
|
5
|
+
*/
|
|
6
|
+
export declare enum EngineEvent {
|
|
7
|
+
ENGINE_START = "engine:start",
|
|
8
|
+
ENGINE_DONE = "engine:done",
|
|
9
|
+
RULE_MATCH = "rule:match",
|
|
10
|
+
ACTION_SUCCESS = "action:success",
|
|
11
|
+
ACTION_ERROR = "action:error"
|
|
12
|
+
}
|
|
13
|
+
export declare const engineEvents: typeof EngineEvent;
|
|
14
|
+
export declare class TriggerEmitter {
|
|
15
|
+
private static instance;
|
|
16
|
+
private handlers;
|
|
17
|
+
private constructor();
|
|
18
|
+
static getInstance(): TriggerEmitter;
|
|
19
|
+
on<T = any>(event: EngineEvent | string, handler: Handler<T>): () => void;
|
|
20
|
+
off(event: EngineEvent | string, handler: Handler): void;
|
|
21
|
+
emit<T = any>(event: EngineEvent | string, data: T): void;
|
|
22
|
+
}
|
|
23
|
+
export declare const triggerEmitter: TriggerEmitter;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/utils/emitter.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAE1C;;;GAGG;AACH,oBAAY,WAAW;IACrB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;CAC9B;AACD,eAAO,MAAM,YAAY,oBAAc,CAAC;AACxC,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAmC;IAEnD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAWzE,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAQxD,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;CAc1D;AAGD,eAAO,MAAM,cAAc,gBAA+B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TriggerContext } from "../types";
|
|
2
|
+
export declare class TriggerUtils {
|
|
3
|
+
/**
|
|
4
|
+
* Retrieves a nested value from the context using dot notation.
|
|
5
|
+
* supports: data.field, globals.envVal, computed.result
|
|
6
|
+
*/
|
|
7
|
+
static getNestedValue(path: string, context: TriggerContext): any;
|
|
8
|
+
/**
|
|
9
|
+
* Interpolates a string with values from the context.
|
|
10
|
+
* Example: "Hello ${data.username}" -> "Hello Steve"
|
|
11
|
+
*/
|
|
12
|
+
static interpolate(template: string, context: TriggerContext): string;
|
|
13
|
+
/**
|
|
14
|
+
* Checks if a value satisfies a comparison operator against a criteria.
|
|
15
|
+
*/
|
|
16
|
+
static compare(actual: any, operator: string, criteria: any): boolean;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,qBAAa,YAAY;IACvB;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,GAAG;IAcjE;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM;IAgBrE;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO;CA2CtE"}
|
package/package.json
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "trigger_system",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A powerful rule engine and trigger system for JavaScript/TypeScript applications",
|
|
5
|
+
"main": "dist/node/index.js",
|
|
6
|
+
"browser": "dist/browser/index.browser.js",
|
|
7
|
+
"types": "dist/node/index.d.ts",
|
|
8
|
+
"keywords": [
|
|
9
|
+
"rule-engine",
|
|
10
|
+
"trigger-system",
|
|
11
|
+
"event-driven",
|
|
12
|
+
"stateful",
|
|
13
|
+
"typescript",
|
|
14
|
+
"yaml",
|
|
15
|
+
"automation",
|
|
16
|
+
"workflow"
|
|
17
|
+
],
|
|
18
|
+
"author": "memelser <nglmercer@gmail.com>",
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "https://github.com/nglmercer/trigger_system.git"
|
|
23
|
+
},
|
|
24
|
+
"bugs": {
|
|
25
|
+
"url": "https://github.com/nglmercer/trigger_system/issues"
|
|
26
|
+
},
|
|
27
|
+
"homepage": "https://github.com/nglmercer/trigger_system#readme",
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"node": {
|
|
31
|
+
"import": "./dist/node/index.js",
|
|
32
|
+
"require": "./dist/node/index.js",
|
|
33
|
+
"types": "./dist/node/index.d.ts"
|
|
34
|
+
},
|
|
35
|
+
"browser": {
|
|
36
|
+
"import": "./dist/browser/index.browser.js",
|
|
37
|
+
"require": "./dist/browser/index.browser.js",
|
|
38
|
+
"types": "./dist/browser/index.browser.d.ts"
|
|
39
|
+
},
|
|
40
|
+
"default": "./dist/node/index.js"
|
|
41
|
+
},
|
|
42
|
+
"./node": {
|
|
43
|
+
"import": "./dist/node/node.js",
|
|
44
|
+
"require": "./dist/node/node.js",
|
|
45
|
+
"types": "./dist/node/node.d.ts"
|
|
46
|
+
},
|
|
47
|
+
"./client": {
|
|
48
|
+
"import": "./dist/browser/index.browser.js",
|
|
49
|
+
"require": "./dist/browser/index.browser.js",
|
|
50
|
+
"types": "./dist/browser/index.browser.d.ts"
|
|
51
|
+
},
|
|
52
|
+
"./browser": {
|
|
53
|
+
"import": "./dist/browser/index.browser.js",
|
|
54
|
+
"require": "./dist/browser/index.browser.js",
|
|
55
|
+
"types": "./dist/browser/index.browser.d.ts"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"files": [
|
|
59
|
+
"dist",
|
|
60
|
+
"README.md",
|
|
61
|
+
"LICENSE"
|
|
62
|
+
],
|
|
63
|
+
"scripts": {
|
|
64
|
+
"type-check": "tsc --noEmit",
|
|
65
|
+
"build": "bun run build:types && bun run build:node && bun run build:browser && bun run build:lsp",
|
|
66
|
+
"build:types": "tsc -p tsconfig.build.json",
|
|
67
|
+
"build:node": "bun build src/index.ts --outdir dist/node --target node --minify --sourcemap=external && bun build src/node.ts --outdir dist/node --target node --minify --sourcemap=external",
|
|
68
|
+
"build:browser": "bun build src/index.browser.ts --outdir dist/browser --target browser --minify --sourcemap=external",
|
|
69
|
+
"build:lsp": "bun build src/lsp/server.ts --outfile vscode-extension/dist/lsp/server.bundle.js --target node --minify",
|
|
70
|
+
"build:vscode": "bun build vscode-extension/src/extension.ts --outfile vscode-extension/out/extension.js --external vscode --format cjs --target node --minify",
|
|
71
|
+
"build:all": "bun run build:lsp && bun run build:vscode",
|
|
72
|
+
"package:vscode": "cd vscode-extension && vsce package",
|
|
73
|
+
"test": "bun test",
|
|
74
|
+
"validate": "bun run src/cli/validate.ts",
|
|
75
|
+
"lsp": "bun run src/lsp/server.ts --stdio",
|
|
76
|
+
"package": "bun run build:all && cd vscode-extension && vsce package",
|
|
77
|
+
"prepublishOnly": "bun run build"
|
|
78
|
+
},
|
|
79
|
+
"devDependencies": {
|
|
80
|
+
"@types/bun": "latest"
|
|
81
|
+
},
|
|
82
|
+
"peerDependencies": {
|
|
83
|
+
"typescript": "^5"
|
|
84
|
+
},
|
|
85
|
+
"dependencies": {
|
|
86
|
+
"arktype": "^2.1.29",
|
|
87
|
+
"vscode-languageserver": "^9.0.1",
|
|
88
|
+
"vscode-languageserver-textdocument": "^1.0.12",
|
|
89
|
+
"yaml": "^2.8.2"
|
|
90
|
+
}
|
|
91
|
+
}
|