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.
Files changed (136) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +127 -0
  3. package/dist/browser/index.browser.js +48 -0
  4. package/dist/browser/index.browser.js.map +122 -0
  5. package/dist/cli/lsp-server.d.ts +3 -0
  6. package/dist/cli/lsp-server.d.ts.map +1 -0
  7. package/dist/cli/validate.d.ts +2 -0
  8. package/dist/cli/validate.d.ts.map +1 -0
  9. package/dist/core/action-registry.d.ts +12 -0
  10. package/dist/core/action-registry.d.ts.map +1 -0
  11. package/dist/core/context-adapter.d.ts +23 -0
  12. package/dist/core/context-adapter.d.ts.map +1 -0
  13. package/dist/core/dependency-graph.d.ts +18 -0
  14. package/dist/core/dependency-graph.d.ts.map +1 -0
  15. package/dist/core/engine.d.ts +24 -0
  16. package/dist/core/engine.d.ts.map +1 -0
  17. package/dist/core/event-queue.d.ts +25 -0
  18. package/dist/core/event-queue.d.ts.map +1 -0
  19. package/dist/core/expression-engine.d.ts +31 -0
  20. package/dist/core/expression-engine.d.ts.map +1 -0
  21. package/dist/core/index.d.ts +10 -0
  22. package/dist/core/index.d.ts.map +1 -0
  23. package/dist/core/persistence-browser.d.ts +20 -0
  24. package/dist/core/persistence-browser.d.ts.map +1 -0
  25. package/dist/core/persistence.d.ts +34 -0
  26. package/dist/core/persistence.d.ts.map +1 -0
  27. package/dist/core/persistence.node.d.ts +18 -0
  28. package/dist/core/persistence.node.d.ts.map +1 -0
  29. package/dist/core/plugin-manager.d.ts +15 -0
  30. package/dist/core/plugin-manager.d.ts.map +1 -0
  31. package/dist/core/rule-engine.d.ts +39 -0
  32. package/dist/core/rule-engine.d.ts.map +1 -0
  33. package/dist/core/state-manager.d.ts +41 -0
  34. package/dist/core/state-manager.d.ts.map +1 -0
  35. package/dist/domain/index.d.ts +2 -0
  36. package/dist/domain/index.d.ts.map +1 -0
  37. package/dist/domain/validator.d.ts +2433 -0
  38. package/dist/domain/validator.d.ts.map +1 -0
  39. package/dist/index.browser.d.ts +6 -0
  40. package/dist/index.browser.d.ts.map +1 -0
  41. package/dist/index.d.ts +7 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/io/index.d.ts +2 -0
  44. package/dist/io/index.d.ts.map +1 -0
  45. package/dist/io/loader.node.d.ts +14 -0
  46. package/dist/io/loader.node.d.ts.map +1 -0
  47. package/dist/lsp/completions.d.ts +6 -0
  48. package/dist/lsp/completions.d.ts.map +1 -0
  49. package/dist/lsp/completions.js +624 -0
  50. package/dist/lsp/completions.js.map +1 -0
  51. package/dist/lsp/data-context.d.ts +60 -0
  52. package/dist/lsp/data-context.d.ts.map +1 -0
  53. package/dist/lsp/data-context.js +172 -0
  54. package/dist/lsp/data-context.js.map +1 -0
  55. package/dist/lsp/diagnostics.d.ts +7 -0
  56. package/dist/lsp/diagnostics.d.ts.map +1 -0
  57. package/dist/lsp/diagnostics.js +373 -0
  58. package/dist/lsp/diagnostics.js.map +1 -0
  59. package/dist/lsp/directives.d.ts +44 -0
  60. package/dist/lsp/directives.d.ts.map +1 -0
  61. package/dist/lsp/directives.js +232 -0
  62. package/dist/lsp/directives.js.map +1 -0
  63. package/dist/lsp/domain/index.d.ts +2 -0
  64. package/dist/lsp/domain/index.d.ts.map +1 -0
  65. package/dist/lsp/domain/index.js +18 -0
  66. package/dist/lsp/domain/index.js.map +1 -0
  67. package/dist/lsp/domain/validator.d.ts +2433 -0
  68. package/dist/lsp/domain/validator.d.ts.map +1 -0
  69. package/dist/lsp/domain/validator.js +225 -0
  70. package/dist/lsp/domain/validator.js.map +1 -0
  71. package/dist/lsp/hover.d.ts +7 -0
  72. package/dist/lsp/hover.d.ts.map +1 -0
  73. package/dist/lsp/hover.js +462 -0
  74. package/dist/lsp/hover.js.map +1 -0
  75. package/dist/lsp/lsp/completions.d.ts +6 -0
  76. package/dist/lsp/lsp/completions.d.ts.map +1 -0
  77. package/dist/lsp/lsp/completions.js +624 -0
  78. package/dist/lsp/lsp/completions.js.map +1 -0
  79. package/dist/lsp/lsp/data-context.d.ts +60 -0
  80. package/dist/lsp/lsp/data-context.d.ts.map +1 -0
  81. package/dist/lsp/lsp/data-context.js +172 -0
  82. package/dist/lsp/lsp/data-context.js.map +1 -0
  83. package/dist/lsp/lsp/diagnostics.d.ts +7 -0
  84. package/dist/lsp/lsp/diagnostics.d.ts.map +1 -0
  85. package/dist/lsp/lsp/diagnostics.js +373 -0
  86. package/dist/lsp/lsp/diagnostics.js.map +1 -0
  87. package/dist/lsp/lsp/directives.d.ts +44 -0
  88. package/dist/lsp/lsp/directives.d.ts.map +1 -0
  89. package/dist/lsp/lsp/directives.js +232 -0
  90. package/dist/lsp/lsp/directives.js.map +1 -0
  91. package/dist/lsp/lsp/hover.d.ts +7 -0
  92. package/dist/lsp/lsp/hover.d.ts.map +1 -0
  93. package/dist/lsp/lsp/hover.js +462 -0
  94. package/dist/lsp/lsp/hover.js.map +1 -0
  95. package/dist/lsp/lsp/semantic_tokens.d.ts +4 -0
  96. package/dist/lsp/lsp/semantic_tokens.d.ts.map +1 -0
  97. package/dist/lsp/lsp/semantic_tokens.js +158 -0
  98. package/dist/lsp/lsp/semantic_tokens.js.map +1 -0
  99. package/dist/lsp/lsp/server.d.ts +2 -0
  100. package/dist/lsp/lsp/server.d.ts.map +1 -0
  101. package/dist/lsp/lsp/server.js +216 -0
  102. package/dist/lsp/lsp/server.js.map +1 -0
  103. package/dist/lsp/semantic_tokens.d.ts +4 -0
  104. package/dist/lsp/semantic_tokens.d.ts.map +1 -0
  105. package/dist/lsp/semantic_tokens.js +158 -0
  106. package/dist/lsp/semantic_tokens.js.map +1 -0
  107. package/dist/lsp/server.bundle.d.ts +2 -0
  108. package/dist/lsp/server.bundle.d.ts.map +1 -0
  109. package/dist/lsp/server.bundle.js +256 -0
  110. package/dist/lsp/server.d.ts +2 -0
  111. package/dist/lsp/server.d.ts.map +1 -0
  112. package/dist/lsp/server.js +216 -0
  113. package/dist/lsp/server.js.map +1 -0
  114. package/dist/lsp/types.d.ts +71 -0
  115. package/dist/lsp/types.d.ts.map +1 -0
  116. package/dist/lsp/types.js +4 -0
  117. package/dist/lsp/types.js.map +1 -0
  118. package/dist/node/index.js +186 -0
  119. package/dist/node/index.js.map +196 -0
  120. package/dist/node/node.js +187 -0
  121. package/dist/node/node.js.map +198 -0
  122. package/dist/node.d.ts +4 -0
  123. package/dist/node.d.ts.map +1 -0
  124. package/dist/sdk/builder.d.ts +39 -0
  125. package/dist/sdk/builder.d.ts.map +1 -0
  126. package/dist/sdk/exporter.d.ts +13 -0
  127. package/dist/sdk/exporter.d.ts.map +1 -0
  128. package/dist/sdk/index.d.ts +3 -0
  129. package/dist/sdk/index.d.ts.map +1 -0
  130. package/dist/types.d.ts +71 -0
  131. package/dist/types.d.ts.map +1 -0
  132. package/dist/utils/emitter.d.ts +25 -0
  133. package/dist/utils/emitter.d.ts.map +1 -0
  134. package/dist/utils/utils.d.ts +18 -0
  135. package/dist/utils/utils.d.ts.map +1 -0
  136. package/package.json +91 -0
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=lsp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lsp-server.d.ts","sourceRoot":"","sources":["../../src/cli/lsp-server.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/cli/validate.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import type { TriggerAction, TriggerContext } from "../types";
2
+ export type ActionHandler = (action: TriggerAction, context: TriggerContext) => Promise<any> | any;
3
+ export declare class ActionRegistry {
4
+ private static instance;
5
+ private handlers;
6
+ private constructor();
7
+ static getInstance(): ActionRegistry;
8
+ register(type: string, handler: ActionHandler): void;
9
+ get(type: string): ActionHandler | undefined;
10
+ private registerDefaults;
11
+ }
12
+ //# sourceMappingURL=action-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-registry.d.ts","sourceRoot":"","sources":["../../src/core/action-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI9D,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAEnG,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAoC;IAEpD,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAI7C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAK5C,OAAO,CAAC,gBAAgB;CAqHzB"}
@@ -0,0 +1,23 @@
1
+ import type { TriggerContext } from "../types";
2
+ export interface ContextSource {
3
+ type: string;
4
+ payload: any;
5
+ timestamp?: number;
6
+ }
7
+ export declare class ContextAdapter {
8
+ /**
9
+ * Creates a standardized TriggerContext from a generic source.
10
+ */
11
+ static create(event: string, data: any, globals?: Record<string, any>): TriggerContext;
12
+ /**
13
+ * Adapts a standard HTTP Request (like from Bun.serve) into a TriggerContext.
14
+ * Note: Accessing body requires it to be read previously or passed mainly as objects.
15
+ */
16
+ static fromRequest(req: Request, bodyData?: any, globals?: Record<string, any>): TriggerContext;
17
+ /**
18
+ * Adapts a generic Webhook payload.
19
+ */
20
+ static fromWebhook(provider: string, eventName: string, payload: any, globals?: Record<string, any>): TriggerContext;
21
+ private static getDefaultHelpers;
22
+ }
23
+ //# sourceMappingURL=context-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-adapter.d.ts","sourceRoot":"","sources":["../../src/core/context-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,cAAc;IAEvB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,cAAc;IAU1F;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,cAAc;IAyBnG;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,cAAc;IAaxH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAQnC"}
@@ -0,0 +1,18 @@
1
+ import type { TriggerRule } from "../types";
2
+ /**
3
+ * DependencyAnalyzer
4
+ * Analyzes static rules to detect circular dependencies (infinite loops).
5
+ *
6
+ * Graph:
7
+ * - Nodes: Rules
8
+ * - Edges: Rule A -> Rule B (if A emits an event that B listens for)
9
+ */
10
+ export declare class DependencyAnalyzer {
11
+ /**
12
+ * Detects cycles in a list of rules.
13
+ * @returns Array of cycles, where each cycle is an array of Rule IDs.
14
+ */
15
+ static detectCycles(rules: TriggerRule[]): string[][];
16
+ private static getEmittedEvents;
17
+ }
18
+ //# sourceMappingURL=dependency-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-graph.d.ts","sourceRoot":"","sources":["../../src/core/dependency-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA8B,MAAM,UAAU,CAAC;AAExE;;;;;;;GAOG;AACH,qBAAa,kBAAkB;IAE3B;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,EAAE;IAiErD,OAAO,CAAC,MAAM,CAAC,gBAAgB;CA4BlC"}
@@ -0,0 +1,24 @@
1
+ import type { TriggerRule, TriggerContext, TriggerResult } from "../types";
2
+ export type EngineActionHandler = (params: any, context: TriggerContext) => Promise<any> | any;
3
+ export declare class TriggerEngine {
4
+ private rules;
5
+ private actionHandlers;
6
+ private lastExecution;
7
+ constructor(rules?: TriggerRule[]);
8
+ private sortRules;
9
+ /**
10
+ * Register a handler for a specific action type
11
+ */
12
+ registerAction(type: string, handler: EngineActionHandler): void;
13
+ /**
14
+ * Process an incoming event
15
+ */
16
+ processEvent(context: TriggerContext): Promise<TriggerResult[]>;
17
+ private checkCooldown;
18
+ private evaluateConditions;
19
+ private evaluateSingleCondition;
20
+ private executeRuleActions;
21
+ private interpolateParams;
22
+ private interpolateDeep;
23
+ }
24
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,aAAa,EAMd,MAAM,UAAU,CAAC;AAKlB,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAE/F,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,aAAa,CAAkC;gBAG3C,KAAK,GAAE,WAAW,EAAO;IAMrC,OAAO,CAAC,SAAS;IAKjB;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB;IAIzD;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA+BrE,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,uBAAuB;YAuBjB,kBAAkB;IAwFhC,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,eAAe;CAUxB"}
@@ -0,0 +1,25 @@
1
+ import type { TriggerContext } from "../types";
2
+ import { RuleEngine } from "./rule-engine";
3
+ export interface EventQueueConfig {
4
+ maxBatchSize: number;
5
+ flushIntervalMs: number;
6
+ }
7
+ export declare class EventQueue {
8
+ private queue;
9
+ private engine;
10
+ private config;
11
+ private timer;
12
+ private isProcessing;
13
+ constructor(engine: RuleEngine, config?: EventQueueConfig);
14
+ /**
15
+ * Enqueue a new event context.
16
+ * Automatically triggers processing if batch size reached.
17
+ */
18
+ push(context: TriggerContext): void;
19
+ /**
20
+ * Process all buffered events.
21
+ */
22
+ processQueue(): Promise<void>;
23
+ getQueueLength(): number;
24
+ }
25
+ //# sourceMappingURL=event-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-queue.d.ts","sourceRoot":"","sources":["../../src/core/event-queue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,UAAU;IACnB,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,UAAU,EAAE,MAAM,GAAE,gBAA6D;IAKrG;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE,cAAc;IAU5B;;OAEG;IACG,YAAY;IAmClB,cAAc,IAAI,MAAM;CAG3B"}
@@ -0,0 +1,31 @@
1
+ import type { TriggerContext } from "../types";
2
+ export declare class ExpressionEngine {
3
+ /**
4
+ * Evalúa una expresión matemática simple o una interpolación de variables
5
+ * Soporta operadores: +, -, *, /, %, **, y funciones matemáticas básicas
6
+ */
7
+ static evaluate(expression: string, context: TriggerContext): any;
8
+ /**
9
+ * Realiza interpolación de variables en una plantilla de texto
10
+ * Ejemplo: "Hola ${data.username}, hoy es ${new Date().toLocaleDateString()}"
11
+ */
12
+ static interpolate(template: string, context: TriggerContext): string;
13
+ /**
14
+ * Evalúa una expresión matemática segura usando Function constructor
15
+ */
16
+ private static evaluateMathExpression;
17
+ /**
18
+ * Evalúa una expresión individual en el contexto
19
+ */
20
+ private static evaluateExpression;
21
+ /**
22
+ * Obtiene un valor anidado de un objeto usando notación de puntos
23
+ * Ejemplo: getNestedValue("data.user.profile.name", context)
24
+ */
25
+ static getNestedValue(path: string, context: TriggerContext): any;
26
+ /**
27
+ * Ejecuta una expresión matemática específica (como "1 + 2")
28
+ */
29
+ static evaluateMath(expression: string, context: TriggerContext): number;
30
+ }
31
+ //# sourceMappingURL=expression-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-engine.d.ts","sourceRoot":"","sources":["../../src/core/expression-engine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,qBAAa,gBAAgB;IAC3B;;;OAGG;IAEH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,GAAG;IAoBjE;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM;IAoBrE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAUrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA2BjC;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,GAAG;IAcjE;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM;CA+CzE"}
@@ -0,0 +1,10 @@
1
+ export * from "./expression-engine";
2
+ export * from "./event-queue";
3
+ export * from "./persistence";
4
+ export * from "./persistence-browser";
5
+ export * from "./action-registry";
6
+ export * from "./context-adapter";
7
+ export * from "./rule-engine";
8
+ export * from "./engine";
9
+ export * from "./state-manager";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAE9B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { type PersistenceAdapter } from "./persistence";
2
+ /**
3
+ * Browser LocalStorage Persistence Adapter
4
+ * Uses window.localStorage to save state.
5
+ * Fallbacks to in-memory if not available (e.g. Node env without polyfill).
6
+ */
7
+ export declare class BrowserPersistence implements PersistenceAdapter {
8
+ private keyPrefix;
9
+ private cache;
10
+ private isLoaded;
11
+ constructor(prefix?: string);
12
+ private isAvailable;
13
+ private ensureLoaded;
14
+ private persist;
15
+ loadState(): Promise<Map<string, any>>;
16
+ saveState(key: string, value: any): Promise<void>;
17
+ deleteState(key: string): Promise<void>;
18
+ clearState(): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=persistence-browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence-browser.d.ts","sourceRoot":"","sources":["../../src/core/persistence-browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,kBAAkB;IAC3D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,MAAM,GAAE,MAA0B;IAI9C,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,OAAO;IAWT,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAKtC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAIlC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Persistence Adapter Interface
3
+ * Allows the StateManager to save/load state from external storage (Redis, SQLite, File, etc.)
4
+ */
5
+ export interface PersistenceAdapter {
6
+ /**
7
+ * Load state from storage on startup
8
+ */
9
+ loadState(): Promise<Map<string, any>>;
10
+ /**
11
+ * Save a single key-value pair
12
+ */
13
+ saveState(key: string, value: any): Promise<void>;
14
+ /**
15
+ * Delete a key
16
+ */
17
+ deleteState(key: string): Promise<void>;
18
+ /**
19
+ * Clear all state
20
+ */
21
+ clearState(): Promise<void>;
22
+ }
23
+ /**
24
+ * InMemory Adapter (Default)
25
+ * Does not persist across restarts, but fulfills the interface.
26
+ */
27
+ export declare class InMemoryPersistence implements PersistenceAdapter {
28
+ private store;
29
+ loadState(): Promise<Map<string, any>>;
30
+ saveState(key: string, value: any): Promise<void>;
31
+ deleteState(key: string): Promise<void>;
32
+ clearState(): Promise<void>;
33
+ }
34
+ //# sourceMappingURL=persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/core/persistence.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAEvC;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,kBAAkB;IAC5D,OAAO,CAAC,KAAK,CAA0B;IAEjC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAItC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
@@ -0,0 +1,18 @@
1
+ import { type PersistenceAdapter } from "./persistence";
2
+ /**
3
+ * FileSystem Persistence Adapter
4
+ * Saves state to a JSON file on disk.
5
+ */
6
+ export declare class FilePersistence implements PersistenceAdapter {
7
+ private filePath;
8
+ private cache;
9
+ private isLoaded;
10
+ constructor(filePath: string);
11
+ private ensureLoaded;
12
+ private persist;
13
+ loadState(): Promise<Map<string, any>>;
14
+ saveState(key: string, value: any): Promise<void>;
15
+ deleteState(key: string): Promise<void>;
16
+ clearState(): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=persistence.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.node.d.ts","sourceRoot":"","sources":["../../src/core/persistence.node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,kBAAkB;IACxD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,QAAQ,EAAE,MAAM;IAI5B,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,OAAO;IAcT,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAKtC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAIlC"}
@@ -0,0 +1,15 @@
1
+ import type { ActionHandler } from "../core/action-registry";
2
+ export interface PluginManifest {
3
+ name: string;
4
+ version: string;
5
+ actions?: Record<string, ActionHandler>;
6
+ }
7
+ export declare class PluginManager {
8
+ private static instance;
9
+ private plugins;
10
+ private constructor();
11
+ static getInstance(): PluginManager;
12
+ registerPlugin(manifest: PluginManifest): void;
13
+ getPlugin(name: string): PluginManifest | undefined;
14
+ }
15
+ //# sourceMappingURL=plugin-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../src/core/plugin-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAEzC;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,OAAO,CAAqC;IAEpD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC,cAAc,CAAC,QAAQ,EAAE,cAAc;IAyBvC,SAAS,CAAC,IAAI,EAAE,MAAM;CAGvB"}
@@ -0,0 +1,39 @@
1
+ import type { TriggerRule, TriggerContext, TriggerResult, RuleEngineConfig } from "../types";
2
+ export declare class RuleEngine {
3
+ private rules;
4
+ private config;
5
+ private lastExecutionTimes;
6
+ private actionRegistry;
7
+ constructor(config: RuleEngineConfig);
8
+ /**
9
+ * Convenience method to process an event with a simple payload
10
+ */
11
+ processEvent(eventType: string, data?: Record<string, any>, globals?: Record<string, any>): Promise<TriggerResult[]>;
12
+ /**
13
+ * Evalúa todas las reglas contra el contexto proporcionado
14
+ */
15
+ evaluateContext(context: TriggerContext): Promise<TriggerResult[]>;
16
+ private evaluateRuleConditions;
17
+ private evaluateRecursiveCondition;
18
+ private evaluateConditionGroup;
19
+ /**
20
+ * Evalúa una condición individual
21
+ */
22
+ private evaluateSingleCondition;
23
+ private executeRuleActions;
24
+ private isActionGroup;
25
+ private executeSingleAction;
26
+ /**
27
+ * Verifica si una regla está en cooldown
28
+ */
29
+ private checkCooldown;
30
+ /**
31
+ * Actualiza las reglas del motor
32
+ */
33
+ updateRules(newRules: TriggerRule[]): void;
34
+ /**
35
+ * Obtiene todas las reglas
36
+ */
37
+ getRules(): TriggerRule[];
38
+ }
39
+ //# sourceMappingURL=rule-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-engine.d.ts","sourceRoot":"","sources":["../../src/core/rule-engine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,WAAW,EAMX,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,MAAM,UAAU,CAAC;AASlB,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,cAAc,CAAiB;gBAE3B,MAAM,EAAE,gBAAgB;IAOpC;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAYlI;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAqExE,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,sBAAsB;IAU9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;YAkHjB,kBAAkB;IA+ChC,OAAO,CAAC,aAAa;YAKP,mBAAmB;IAsDjC;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;IAK1C;;OAEG;IACH,QAAQ,IAAI,WAAW,EAAE;CAG1B"}
@@ -0,0 +1,41 @@
1
+ import { type PersistenceAdapter } from "./persistence";
2
+ /**
3
+ * State Manager
4
+ * Handles persistent state across rule executions.
5
+ * Allows for "Stateful Triggers" like counters, sequences, and goals.
6
+ */
7
+ export declare class StateManager {
8
+ private static instance;
9
+ private state;
10
+ private persistence;
11
+ private constructor();
12
+ static getInstance(): StateManager;
13
+ /**
14
+ * Configure the persistence adapter.
15
+ */
16
+ setPersistence(adapter: PersistenceAdapter): void;
17
+ /**
18
+ * Load state from persistence. Should be called at startup.
19
+ */
20
+ initialize(): Promise<void>;
21
+ /**
22
+ * Get a value from the state.
23
+ */
24
+ get(key: string): any;
25
+ /**
26
+ * Set a value in the state and persist it.
27
+ */
28
+ set(key: string, value: any): Promise<void>;
29
+ /**
30
+ * Increment a numeric value explicitly.
31
+ */
32
+ increment(key: string, amount?: number): Promise<number>;
33
+ decrement(key: string, amount?: number): Promise<number>;
34
+ delete(key: string): Promise<boolean>;
35
+ clear(): Promise<void>;
36
+ /**
37
+ * Export state as a plain object (for Context injection).
38
+ */
39
+ getAll(): Record<string, any>;
40
+ }
41
+ //# sourceMappingURL=state-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../src/core/state-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAuB,MAAM,eAAe,CAAC;AAE7E;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,WAAW,CAAqB;IAExC,OAAO;IAKP,MAAM,CAAC,WAAW,IAAI,YAAY;IAOlC;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,kBAAkB;IAI1C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAIrB;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAO3D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAG9B"}
@@ -0,0 +1,2 @@
1
+ export * from "./validator";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}