@orbytautomation/engine 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -0
- package/dist/adapters/AdapterRegistry.d.ts +129 -0
- package/dist/adapters/AdapterRegistry.d.ts.map +1 -0
- package/dist/adapters/AdapterRegistry.js +236 -0
- package/dist/adapters/AdapterRegistry.js.map +1 -0
- package/dist/adapters/StepAdapter.d.ts +2 -0
- package/dist/adapters/StepAdapter.d.ts.map +1 -0
- package/dist/adapters/StepAdapter.js +2 -0
- package/dist/adapters/StepAdapter.js.map +1 -0
- package/dist/adapters/WorkflowAdapter.d.ts +2 -0
- package/dist/adapters/WorkflowAdapter.d.ts.map +1 -0
- package/dist/adapters/WorkflowAdapter.js +2 -0
- package/dist/adapters/WorkflowAdapter.js.map +1 -0
- package/dist/adapters/builtins/CLIAdapter.d.ts +38 -0
- package/dist/adapters/builtins/CLIAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/CLIAdapter.js +173 -0
- package/dist/adapters/builtins/CLIAdapter.js.map +1 -0
- package/dist/adapters/builtins/CLICommandResolver.d.ts +49 -0
- package/dist/adapters/builtins/CLICommandResolver.d.ts.map +1 -0
- package/dist/adapters/builtins/CLICommandResolver.js +63 -0
- package/dist/adapters/builtins/CLICommandResolver.js.map +1 -0
- package/dist/adapters/builtins/CLIResultParser.d.ts +61 -0
- package/dist/adapters/builtins/CLIResultParser.d.ts.map +1 -0
- package/dist/adapters/builtins/CLIResultParser.js +113 -0
- package/dist/adapters/builtins/CLIResultParser.js.map +1 -0
- package/dist/adapters/builtins/ConnectionManager.d.ts +106 -0
- package/dist/adapters/builtins/ConnectionManager.d.ts.map +1 -0
- package/dist/adapters/builtins/ConnectionManager.js +162 -0
- package/dist/adapters/builtins/ConnectionManager.js.map +1 -0
- package/dist/adapters/builtins/Consumer.d.ts +110 -0
- package/dist/adapters/builtins/Consumer.d.ts.map +1 -0
- package/dist/adapters/builtins/Consumer.js +113 -0
- package/dist/adapters/builtins/Consumer.js.map +1 -0
- package/dist/adapters/builtins/DBAdapter.d.ts +79 -0
- package/dist/adapters/builtins/DBAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/DBAdapter.js +259 -0
- package/dist/adapters/builtins/DBAdapter.js.map +1 -0
- package/dist/adapters/builtins/EnvResolver.d.ts +66 -0
- package/dist/adapters/builtins/EnvResolver.d.ts.map +1 -0
- package/dist/adapters/builtins/EnvResolver.js +121 -0
- package/dist/adapters/builtins/EnvResolver.js.map +1 -0
- package/dist/adapters/builtins/FSAdapter.d.ts +50 -0
- package/dist/adapters/builtins/FSAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/FSAdapter.js +282 -0
- package/dist/adapters/builtins/FSAdapter.js.map +1 -0
- package/dist/adapters/builtins/FileResolver.d.ts +50 -0
- package/dist/adapters/builtins/FileResolver.d.ts.map +1 -0
- package/dist/adapters/builtins/FileResolver.js +77 -0
- package/dist/adapters/builtins/FileResolver.js.map +1 -0
- package/dist/adapters/builtins/HTTPAdapter.d.ts +58 -0
- package/dist/adapters/builtins/HTTPAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/HTTPAdapter.js +213 -0
- package/dist/adapters/builtins/HTTPAdapter.js.map +1 -0
- package/dist/adapters/builtins/HTTPRequestBuilder.d.ts +95 -0
- package/dist/adapters/builtins/HTTPRequestBuilder.d.ts.map +1 -0
- package/dist/adapters/builtins/HTTPRequestBuilder.js +159 -0
- package/dist/adapters/builtins/HTTPRequestBuilder.js.map +1 -0
- package/dist/adapters/builtins/HTTPResponseParser.d.ts +74 -0
- package/dist/adapters/builtins/HTTPResponseParser.d.ts.map +1 -0
- package/dist/adapters/builtins/HTTPResponseParser.js +144 -0
- package/dist/adapters/builtins/HTTPResponseParser.js.map +1 -0
- package/dist/adapters/builtins/PathSecurityPolicy.d.ts +38 -0
- package/dist/adapters/builtins/PathSecurityPolicy.d.ts.map +1 -0
- package/dist/adapters/builtins/PathSecurityPolicy.js +125 -0
- package/dist/adapters/builtins/PathSecurityPolicy.js.map +1 -0
- package/dist/adapters/builtins/Producer.d.ts +99 -0
- package/dist/adapters/builtins/Producer.d.ts.map +1 -0
- package/dist/adapters/builtins/Producer.js +59 -0
- package/dist/adapters/builtins/Producer.js.map +1 -0
- package/dist/adapters/builtins/QueryExecutor.d.ts +102 -0
- package/dist/adapters/builtins/QueryExecutor.d.ts.map +1 -0
- package/dist/adapters/builtins/QueryExecutor.js +90 -0
- package/dist/adapters/builtins/QueryExecutor.js.map +1 -0
- package/dist/adapters/builtins/QueueAdapter.d.ts +72 -0
- package/dist/adapters/builtins/QueueAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/QueueAdapter.js +209 -0
- package/dist/adapters/builtins/QueueAdapter.js.map +1 -0
- package/dist/adapters/builtins/SecretProvider.d.ts +69 -0
- package/dist/adapters/builtins/SecretProvider.d.ts.map +1 -0
- package/dist/adapters/builtins/SecretProvider.js +71 -0
- package/dist/adapters/builtins/SecretProvider.js.map +1 -0
- package/dist/adapters/builtins/SecretsAdapter.d.ts +48 -0
- package/dist/adapters/builtins/SecretsAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/SecretsAdapter.js +154 -0
- package/dist/adapters/builtins/SecretsAdapter.js.map +1 -0
- package/dist/adapters/builtins/ShellAdapter.d.ts +46 -0
- package/dist/adapters/builtins/ShellAdapter.d.ts.map +1 -0
- package/dist/adapters/builtins/ShellAdapter.js +200 -0
- package/dist/adapters/builtins/ShellAdapter.js.map +1 -0
- package/dist/adapters/builtins/ShellExecutor.d.ts +72 -0
- package/dist/adapters/builtins/ShellExecutor.d.ts.map +1 -0
- package/dist/adapters/builtins/ShellExecutor.js +94 -0
- package/dist/adapters/builtins/ShellExecutor.js.map +1 -0
- package/dist/adapters/builtins/ShellSecurityPolicy.d.ts +58 -0
- package/dist/adapters/builtins/ShellSecurityPolicy.d.ts.map +1 -0
- package/dist/adapters/builtins/ShellSecurityPolicy.js +135 -0
- package/dist/adapters/builtins/ShellSecurityPolicy.js.map +1 -0
- package/dist/adapters/builtins/index.d.ts +27 -0
- package/dist/adapters/builtins/index.d.ts.map +1 -0
- package/dist/adapters/builtins/index.js +35 -0
- package/dist/adapters/builtins/index.js.map +1 -0
- package/dist/adapters/index.d.ts +5 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +6 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/automation/BackoffStrategy.d.ts +106 -0
- package/dist/automation/BackoffStrategy.d.ts.map +1 -0
- package/dist/automation/BackoffStrategy.js +168 -0
- package/dist/automation/BackoffStrategy.js.map +1 -0
- package/dist/automation/FailureStrategy.d.ts +141 -0
- package/dist/automation/FailureStrategy.d.ts.map +1 -0
- package/dist/automation/FailureStrategy.js +246 -0
- package/dist/automation/FailureStrategy.js.map +1 -0
- package/dist/automation/RetryPolicy.d.ts +132 -0
- package/dist/automation/RetryPolicy.d.ts.map +1 -0
- package/dist/automation/RetryPolicy.js +241 -0
- package/dist/automation/RetryPolicy.js.map +1 -0
- package/dist/automation/TimeoutManager.d.ts +145 -0
- package/dist/automation/TimeoutManager.d.ts.map +1 -0
- package/dist/automation/TimeoutManager.js +241 -0
- package/dist/automation/TimeoutManager.js.map +1 -0
- package/dist/automation/index.d.ts +16 -0
- package/dist/automation/index.d.ts.map +1 -0
- package/dist/automation/index.js +16 -0
- package/dist/automation/index.js.map +1 -0
- package/dist/automation/runtime/BackoffTimer.d.ts +74 -0
- package/dist/automation/runtime/BackoffTimer.d.ts.map +1 -0
- package/dist/automation/runtime/BackoffTimer.js +139 -0
- package/dist/automation/runtime/BackoffTimer.js.map +1 -0
- package/dist/automation/runtime/FailureHandler.d.ts +138 -0
- package/dist/automation/runtime/FailureHandler.d.ts.map +1 -0
- package/dist/automation/runtime/FailureHandler.js +197 -0
- package/dist/automation/runtime/FailureHandler.js.map +1 -0
- package/dist/automation/runtime/RetryExecutor.d.ts +104 -0
- package/dist/automation/runtime/RetryExecutor.d.ts.map +1 -0
- package/dist/automation/runtime/RetryExecutor.js +173 -0
- package/dist/automation/runtime/RetryExecutor.js.map +1 -0
- package/dist/automation/runtime/index.d.ts +13 -0
- package/dist/automation/runtime/index.d.ts.map +1 -0
- package/dist/automation/runtime/index.js +13 -0
- package/dist/automation/runtime/index.js.map +1 -0
- package/dist/context/ContextStore.d.ts +185 -0
- package/dist/context/ContextStore.d.ts.map +1 -0
- package/dist/context/ContextStore.js +228 -0
- package/dist/context/ContextStore.js.map +1 -0
- package/dist/context/VariableResolver.d.ts +184 -0
- package/dist/context/VariableResolver.d.ts.map +1 -0
- package/dist/context/VariableResolver.js +368 -0
- package/dist/context/VariableResolver.js.map +1 -0
- package/dist/context/index.d.ts +17 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +17 -0
- package/dist/context/index.js.map +1 -0
- package/dist/core/EngineConfig.d.ts +156 -0
- package/dist/core/EngineConfig.d.ts.map +1 -0
- package/dist/core/EngineConfig.js +61 -0
- package/dist/core/EngineConfig.js.map +1 -0
- package/dist/core/EngineContext.d.ts +94 -0
- package/dist/core/EngineContext.d.ts.map +1 -0
- package/dist/core/EngineContext.js +29 -0
- package/dist/core/EngineContext.js.map +1 -0
- package/dist/core/OrbytEngine.d.ts +234 -0
- package/dist/core/OrbytEngine.d.ts.map +1 -0
- package/dist/core/OrbytEngine.js +421 -0
- package/dist/core/OrbytEngine.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -0
- package/dist/errors/ErrorCodes.d.ts +71 -0
- package/dist/errors/ErrorCodes.d.ts.map +1 -0
- package/dist/errors/ErrorCodes.js +95 -0
- package/dist/errors/ErrorCodes.js.map +1 -0
- package/dist/errors/ErrorFormatter.d.ts +34 -0
- package/dist/errors/ErrorFormatter.d.ts.map +1 -0
- package/dist/errors/ErrorFormatter.js +140 -0
- package/dist/errors/ErrorFormatter.js.map +1 -0
- package/dist/errors/FieldRegistry.d.ts +83 -0
- package/dist/errors/FieldRegistry.d.ts.map +1 -0
- package/dist/errors/FieldRegistry.js +217 -0
- package/dist/errors/FieldRegistry.js.map +1 -0
- package/dist/errors/OrbytError.d.ts +59 -0
- package/dist/errors/OrbytError.d.ts.map +1 -0
- package/dist/errors/OrbytError.js +78 -0
- package/dist/errors/OrbytError.js.map +1 -0
- package/dist/errors/SchedulerError.d.ts +2 -0
- package/dist/errors/SchedulerError.d.ts.map +1 -0
- package/dist/errors/SchedulerError.js +2 -0
- package/dist/errors/SchedulerError.js.map +1 -0
- package/dist/errors/StepError.d.ts +2 -0
- package/dist/errors/StepError.d.ts.map +1 -0
- package/dist/errors/StepError.js +2 -0
- package/dist/errors/StepError.js.map +1 -0
- package/dist/errors/TypoDetector.d.ts +36 -0
- package/dist/errors/TypoDetector.d.ts.map +1 -0
- package/dist/errors/TypoDetector.js +109 -0
- package/dist/errors/TypoDetector.js.map +1 -0
- package/dist/errors/WorkflowError.d.ts +54 -0
- package/dist/errors/WorkflowError.d.ts.map +1 -0
- package/dist/errors/WorkflowError.js +129 -0
- package/dist/errors/WorkflowError.js.map +1 -0
- package/dist/errors/index.d.ts +14 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +17 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/events/EngineEvents.d.ts +143 -0
- package/dist/events/EngineEvents.d.ts.map +1 -0
- package/dist/events/EngineEvents.js +60 -0
- package/dist/events/EngineEvents.js.map +1 -0
- package/dist/events/EventBus.d.ts +112 -0
- package/dist/events/EventBus.d.ts.map +1 -0
- package/dist/events/EventBus.js +177 -0
- package/dist/events/EventBus.js.map +1 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +3 -0
- package/dist/events/index.js.map +1 -0
- package/dist/execution/ExecutionEngine.d.ts +220 -0
- package/dist/execution/ExecutionEngine.d.ts.map +1 -0
- package/dist/execution/ExecutionEngine.js +442 -0
- package/dist/execution/ExecutionEngine.js.map +1 -0
- package/dist/execution/ExecutionNode.d.ts +114 -0
- package/dist/execution/ExecutionNode.d.ts.map +1 -0
- package/dist/execution/ExecutionNode.js +99 -0
- package/dist/execution/ExecutionNode.js.map +1 -0
- package/dist/execution/ExecutionPlan.d.ts +133 -0
- package/dist/execution/ExecutionPlan.d.ts.map +1 -0
- package/dist/execution/ExecutionPlan.js +207 -0
- package/dist/execution/ExecutionPlan.js.map +1 -0
- package/dist/execution/StepExecutor.d.ts +204 -0
- package/dist/execution/StepExecutor.d.ts.map +1 -0
- package/dist/execution/StepExecutor.js +604 -0
- package/dist/execution/StepExecutor.js.map +1 -0
- package/dist/execution/WorkflowExecutor.d.ts +129 -0
- package/dist/execution/WorkflowExecutor.d.ts.map +1 -0
- package/dist/execution/WorkflowExecutor.js +347 -0
- package/dist/execution/WorkflowExecutor.js.map +1 -0
- package/dist/execution/drivers/AdapterDriver.d.ts +34 -0
- package/dist/execution/drivers/AdapterDriver.d.ts.map +1 -0
- package/dist/execution/drivers/AdapterDriver.js +63 -0
- package/dist/execution/drivers/AdapterDriver.js.map +1 -0
- package/dist/execution/drivers/DriverResolver.d.ts +91 -0
- package/dist/execution/drivers/DriverResolver.d.ts.map +1 -0
- package/dist/execution/drivers/DriverResolver.js +172 -0
- package/dist/execution/drivers/DriverResolver.js.map +1 -0
- package/dist/execution/drivers/ExecutionDriver.d.ts +127 -0
- package/dist/execution/drivers/ExecutionDriver.d.ts.map +1 -0
- package/dist/execution/drivers/ExecutionDriver.js +50 -0
- package/dist/execution/drivers/ExecutionDriver.js.map +1 -0
- package/dist/execution/drivers/index.d.ts +11 -0
- package/dist/execution/drivers/index.d.ts.map +1 -0
- package/dist/execution/drivers/index.js +11 -0
- package/dist/execution/drivers/index.js.map +1 -0
- package/dist/execution/index.d.ts +18 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +19 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/graph/CycleDetector.d.ts +90 -0
- package/dist/graph/CycleDetector.d.ts.map +1 -0
- package/dist/graph/CycleDetector.js +210 -0
- package/dist/graph/CycleDetector.js.map +1 -0
- package/dist/graph/DependencyGraph.d.ts +16 -0
- package/dist/graph/DependencyGraph.d.ts.map +1 -0
- package/dist/graph/DependencyGraph.js +16 -0
- package/dist/graph/DependencyGraph.js.map +1 -0
- package/dist/graph/DependencyResolver.d.ts +90 -0
- package/dist/graph/DependencyResolver.d.ts.map +1 -0
- package/dist/graph/DependencyResolver.js +159 -0
- package/dist/graph/DependencyResolver.js.map +1 -0
- package/dist/graph/TopologicalSorter.d.ts +104 -0
- package/dist/graph/TopologicalSorter.d.ts.map +1 -0
- package/dist/graph/TopologicalSorter.js +213 -0
- package/dist/graph/TopologicalSorter.js.map +1 -0
- package/dist/graph/index.d.ts +15 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +15 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/guards/ResourceGuard.d.ts +90 -0
- package/dist/guards/ResourceGuard.d.ts.map +1 -0
- package/dist/guards/ResourceGuard.js +177 -0
- package/dist/guards/ResourceGuard.js.map +1 -0
- package/dist/guards/StepGuard.d.ts +96 -0
- package/dist/guards/StepGuard.d.ts.map +1 -0
- package/dist/guards/StepGuard.js +184 -0
- package/dist/guards/StepGuard.js.map +1 -0
- package/dist/guards/WorkflowGuard.d.ts +71 -0
- package/dist/guards/WorkflowGuard.d.ts.map +1 -0
- package/dist/guards/WorkflowGuard.js +187 -0
- package/dist/guards/WorkflowGuard.js.map +1 -0
- package/dist/guards/index.d.ts +9 -0
- package/dist/guards/index.d.ts.map +1 -0
- package/dist/guards/index.js +9 -0
- package/dist/guards/index.js.map +1 -0
- package/dist/hooks/HookManager.d.ts +114 -0
- package/dist/hooks/HookManager.d.ts.map +1 -0
- package/dist/hooks/HookManager.js +187 -0
- package/dist/hooks/HookManager.js.map +1 -0
- package/dist/hooks/LifecycleHooks.d.ts +126 -0
- package/dist/hooks/LifecycleHooks.d.ts.map +1 -0
- package/dist/hooks/LifecycleHooks.js +23 -0
- package/dist/hooks/LifecycleHooks.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle/EngineLifecycle.d.ts +121 -0
- package/dist/lifecycle/EngineLifecycle.d.ts.map +1 -0
- package/dist/lifecycle/EngineLifecycle.js +209 -0
- package/dist/lifecycle/EngineLifecycle.js.map +1 -0
- package/dist/lifecycle/ShutdownManager.d.ts +44 -0
- package/dist/lifecycle/ShutdownManager.d.ts.map +1 -0
- package/dist/lifecycle/ShutdownManager.js +105 -0
- package/dist/lifecycle/ShutdownManager.js.map +1 -0
- package/dist/lifecycle/StartupManager.d.ts +45 -0
- package/dist/lifecycle/StartupManager.d.ts.map +1 -0
- package/dist/lifecycle/StartupManager.js +97 -0
- package/dist/lifecycle/StartupManager.js.map +1 -0
- package/dist/lifecycle/index.d.ts +9 -0
- package/dist/lifecycle/index.d.ts.map +1 -0
- package/dist/lifecycle/index.js +9 -0
- package/dist/lifecycle/index.js.map +1 -0
- package/dist/logging/LogLevel.d.ts +2 -0
- package/dist/logging/LogLevel.d.ts.map +1 -0
- package/dist/logging/LogLevel.js +2 -0
- package/dist/logging/LogLevel.js.map +1 -0
- package/dist/logging/Logger.d.ts +2 -0
- package/dist/logging/Logger.d.ts.map +1 -0
- package/dist/logging/Logger.js +2 -0
- package/dist/logging/Logger.js.map +1 -0
- package/dist/logging/index.d.ts +2 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +4 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/marketplace/PluginInstaller.d.ts +81 -0
- package/dist/marketplace/PluginInstaller.d.ts.map +1 -0
- package/dist/marketplace/PluginInstaller.js +89 -0
- package/dist/marketplace/PluginInstaller.js.map +1 -0
- package/dist/marketplace/PluginManifest.d.ts +74 -0
- package/dist/marketplace/PluginManifest.d.ts.map +1 -0
- package/dist/marketplace/PluginManifest.js +67 -0
- package/dist/marketplace/PluginManifest.js.map +1 -0
- package/dist/marketplace/PluginVerifier.d.ts +58 -0
- package/dist/marketplace/PluginVerifier.d.ts.map +1 -0
- package/dist/marketplace/PluginVerifier.js +93 -0
- package/dist/marketplace/PluginVerifier.js.map +1 -0
- package/dist/marketplace/index.d.ts +11 -0
- package/dist/marketplace/index.d.ts.map +1 -0
- package/dist/marketplace/index.js +11 -0
- package/dist/marketplace/index.js.map +1 -0
- package/dist/metrics/MetricsCollector.d.ts +2 -0
- package/dist/metrics/MetricsCollector.d.ts.map +1 -0
- package/dist/metrics/MetricsCollector.js +2 -0
- package/dist/metrics/MetricsCollector.js.map +1 -0
- package/dist/metrics/PerformanceTracker.d.ts +2 -0
- package/dist/metrics/PerformanceTracker.d.ts.map +1 -0
- package/dist/metrics/PerformanceTracker.js +2 -0
- package/dist/metrics/PerformanceTracker.js.map +1 -0
- package/dist/metrics/index.d.ts +2 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +4 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/parser/SchemaValidator.d.ts +63 -0
- package/dist/parser/SchemaValidator.d.ts.map +1 -0
- package/dist/parser/SchemaValidator.js +212 -0
- package/dist/parser/SchemaValidator.js.map +1 -0
- package/dist/parser/StepParser.d.ts +124 -0
- package/dist/parser/StepParser.d.ts.map +1 -0
- package/dist/parser/StepParser.js +330 -0
- package/dist/parser/StepParser.js.map +1 -0
- package/dist/parser/WorkflowParser.d.ts +124 -0
- package/dist/parser/WorkflowParser.d.ts.map +1 -0
- package/dist/parser/WorkflowParser.js +141 -0
- package/dist/parser/WorkflowParser.js.map +1 -0
- package/dist/parser/index.d.ts +4 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +4 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/queue/InMemoryQueue.d.ts +97 -0
- package/dist/queue/InMemoryQueue.d.ts.map +1 -0
- package/dist/queue/InMemoryQueue.js +268 -0
- package/dist/queue/InMemoryQueue.js.map +1 -0
- package/dist/queue/JobQueue.d.ts +214 -0
- package/dist/queue/JobQueue.d.ts.map +1 -0
- package/dist/queue/JobQueue.js +46 -0
- package/dist/queue/JobQueue.js.map +1 -0
- package/dist/queue/index.d.ts +10 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +10 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/resolution/ActionRegistry.d.ts +2 -0
- package/dist/resolution/ActionRegistry.d.ts.map +1 -0
- package/dist/resolution/ActionRegistry.js +2 -0
- package/dist/resolution/ActionRegistry.js.map +1 -0
- package/dist/resolution/AdapterResolver.d.ts +2 -0
- package/dist/resolution/AdapterResolver.d.ts.map +1 -0
- package/dist/resolution/AdapterResolver.js +2 -0
- package/dist/resolution/AdapterResolver.js.map +1 -0
- package/dist/resolution/StepResolver.d.ts +2 -0
- package/dist/resolution/StepResolver.d.ts.map +1 -0
- package/dist/resolution/StepResolver.js +2 -0
- package/dist/resolution/StepResolver.js.map +1 -0
- package/dist/resolution/index.d.ts +2 -0
- package/dist/resolution/index.d.ts.map +1 -0
- package/dist/resolution/index.js +2 -0
- package/dist/resolution/index.js.map +1 -0
- package/dist/scheduling/CronScheduler.d.ts +143 -0
- package/dist/scheduling/CronScheduler.d.ts.map +1 -0
- package/dist/scheduling/CronScheduler.js +370 -0
- package/dist/scheduling/CronScheduler.js.map +1 -0
- package/dist/scheduling/JobScheduler.d.ts +82 -0
- package/dist/scheduling/JobScheduler.d.ts.map +1 -0
- package/dist/scheduling/JobScheduler.js +231 -0
- package/dist/scheduling/JobScheduler.js.map +1 -0
- package/dist/scheduling/ScheduleParser.d.ts +117 -0
- package/dist/scheduling/ScheduleParser.d.ts.map +1 -0
- package/dist/scheduling/ScheduleParser.js +257 -0
- package/dist/scheduling/ScheduleParser.js.map +1 -0
- package/dist/scheduling/ScheduleTypes.d.ts +153 -0
- package/dist/scheduling/ScheduleTypes.d.ts.map +1 -0
- package/dist/scheduling/ScheduleTypes.js +81 -0
- package/dist/scheduling/ScheduleTypes.js.map +1 -0
- package/dist/scheduling/Scheduler.d.ts +154 -0
- package/dist/scheduling/Scheduler.d.ts.map +1 -0
- package/dist/scheduling/Scheduler.js +304 -0
- package/dist/scheduling/Scheduler.js.map +1 -0
- package/dist/scheduling/index.d.ts +6 -0
- package/dist/scheduling/index.d.ts.map +1 -0
- package/dist/scheduling/index.js +6 -0
- package/dist/scheduling/index.js.map +1 -0
- package/dist/security/PermissionPolicy.d.ts +72 -0
- package/dist/security/PermissionPolicy.d.ts.map +1 -0
- package/dist/security/PermissionPolicy.js +87 -0
- package/dist/security/PermissionPolicy.js.map +1 -0
- package/dist/security/SandboxManager.d.ts +72 -0
- package/dist/security/SandboxManager.d.ts.map +1 -0
- package/dist/security/SandboxManager.js +78 -0
- package/dist/security/SandboxManager.js.map +1 -0
- package/dist/security/index.d.ts +10 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +10 -0
- package/dist/security/index.js.map +1 -0
- package/dist/state/ExecutionState.d.ts +211 -0
- package/dist/state/ExecutionState.d.ts.map +1 -0
- package/dist/state/ExecutionState.js +256 -0
- package/dist/state/ExecutionState.js.map +1 -0
- package/dist/state/StateMachine.d.ts +120 -0
- package/dist/state/StateMachine.d.ts.map +1 -0
- package/dist/state/StateMachine.js +230 -0
- package/dist/state/StateMachine.js.map +1 -0
- package/dist/state/index.d.ts +16 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +16 -0
- package/dist/state/index.js.map +1 -0
- package/dist/storage/ExecutionStore.d.ts +2 -0
- package/dist/storage/ExecutionStore.d.ts.map +1 -0
- package/dist/storage/ExecutionStore.js +2 -0
- package/dist/storage/ExecutionStore.js.map +1 -0
- package/dist/storage/ScheduleStore.d.ts +2 -0
- package/dist/storage/ScheduleStore.d.ts.map +1 -0
- package/dist/storage/ScheduleStore.js +2 -0
- package/dist/storage/ScheduleStore.js.map +1 -0
- package/dist/storage/WorkflowStore.d.ts +2 -0
- package/dist/storage/WorkflowStore.d.ts.map +1 -0
- package/dist/storage/WorkflowStore.js +2 -0
- package/dist/storage/WorkflowStore.js.map +1 -0
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +5 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/testing/EngineTestHarness.d.ts +117 -0
- package/dist/testing/EngineTestHarness.d.ts.map +1 -0
- package/dist/testing/EngineTestHarness.js +132 -0
- package/dist/testing/EngineTestHarness.js.map +1 -0
- package/dist/testing/MockAdapter.d.ts +93 -0
- package/dist/testing/MockAdapter.d.ts.map +1 -0
- package/dist/testing/MockAdapter.js +124 -0
- package/dist/testing/MockAdapter.js.map +1 -0
- package/dist/testing/index.d.ts +10 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +10 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/triggers/CronTrigger.d.ts +2 -0
- package/dist/triggers/CronTrigger.d.ts.map +1 -0
- package/dist/triggers/CronTrigger.js +2 -0
- package/dist/triggers/CronTrigger.js.map +1 -0
- package/dist/triggers/EventTrigger.d.ts +2 -0
- package/dist/triggers/EventTrigger.d.ts.map +1 -0
- package/dist/triggers/EventTrigger.js +2 -0
- package/dist/triggers/EventTrigger.js.map +1 -0
- package/dist/triggers/ManualTrigger.d.ts +2 -0
- package/dist/triggers/ManualTrigger.d.ts.map +1 -0
- package/dist/triggers/ManualTrigger.js +2 -0
- package/dist/triggers/ManualTrigger.js.map +1 -0
- package/dist/triggers/Trigger.d.ts +2 -0
- package/dist/triggers/Trigger.d.ts.map +1 -0
- package/dist/triggers/Trigger.js +2 -0
- package/dist/triggers/Trigger.js.map +1 -0
- package/dist/triggers/index.d.ts +2 -0
- package/dist/triggers/index.d.ts.map +1 -0
- package/dist/triggers/index.js +6 -0
- package/dist/triggers/index.js.map +1 -0
- package/dist/triggers/sources/FileWatcherTrigger.d.ts +2 -0
- package/dist/triggers/sources/FileWatcherTrigger.d.ts.map +1 -0
- package/dist/triggers/sources/FileWatcherTrigger.js +2 -0
- package/dist/triggers/sources/FileWatcherTrigger.js.map +1 -0
- package/dist/triggers/sources/MessageTrigger.d.ts +2 -0
- package/dist/triggers/sources/MessageTrigger.d.ts.map +1 -0
- package/dist/triggers/sources/MessageTrigger.js +2 -0
- package/dist/triggers/sources/MessageTrigger.js.map +1 -0
- package/dist/triggers/sources/WebhookListener.d.ts +2 -0
- package/dist/triggers/sources/WebhookListener.d.ts.map +1 -0
- package/dist/triggers/sources/WebhookListener.js +2 -0
- package/dist/triggers/sources/WebhookListener.js.map +1 -0
- package/dist/triggers/sources/index.d.ts +2 -0
- package/dist/triggers/sources/index.d.ts.map +1 -0
- package/dist/triggers/sources/index.js +2 -0
- package/dist/triggers/sources/index.js.map +1 -0
- package/dist/utils/deepMerge.d.ts +2 -0
- package/dist/utils/deepMerge.d.ts.map +1 -0
- package/dist/utils/deepMerge.js +2 -0
- package/dist/utils/deepMerge.js.map +1 -0
- package/dist/utils/id.d.ts +2 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +2 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/safeExec.d.ts +2 -0
- package/dist/utils/safeExec.d.ts.map +1 -0
- package/dist/utils/safeExec.js +2 -0
- package/dist/utils/safeExec.js.map +1 -0
- package/dist/utils/time.d.ts +2 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +2 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/visualization/ExecutionGraphBuilder.d.ts +2 -0
- package/dist/visualization/ExecutionGraphBuilder.d.ts.map +1 -0
- package/dist/visualization/ExecutionGraphBuilder.js +2 -0
- package/dist/visualization/ExecutionGraphBuilder.js.map +1 -0
- package/dist/visualization/ExecutionTraceFormatter.d.ts +2 -0
- package/dist/visualization/ExecutionTraceFormatter.d.ts.map +1 -0
- package/dist/visualization/ExecutionTraceFormatter.js +2 -0
- package/dist/visualization/ExecutionTraceFormatter.js.map +1 -0
- package/dist/visualization/index.d.ts +2 -0
- package/dist/visualization/index.d.ts.map +1 -0
- package/dist/visualization/index.js +2 -0
- package/dist/visualization/index.js.map +1 -0
- package/dist/workflow/Step.d.ts +2 -0
- package/dist/workflow/Step.d.ts.map +1 -0
- package/dist/workflow/Step.js +2 -0
- package/dist/workflow/Step.js.map +1 -0
- package/dist/workflow/StepContext.d.ts +2 -0
- package/dist/workflow/StepContext.d.ts.map +1 -0
- package/dist/workflow/StepContext.js +2 -0
- package/dist/workflow/StepContext.js.map +1 -0
- package/dist/workflow/StepResult.d.ts +2 -0
- package/dist/workflow/StepResult.d.ts.map +1 -0
- package/dist/workflow/StepResult.js +2 -0
- package/dist/workflow/StepResult.js.map +1 -0
- package/dist/workflow/Workflow.d.ts +2 -0
- package/dist/workflow/Workflow.d.ts.map +1 -0
- package/dist/workflow/Workflow.js +2 -0
- package/dist/workflow/Workflow.js.map +1 -0
- package/dist/workflow/WorkflowRegistry.d.ts +2 -0
- package/dist/workflow/WorkflowRegistry.d.ts.map +1 -0
- package/dist/workflow/WorkflowRegistry.js +2 -0
- package/dist/workflow/WorkflowRegistry.js.map +1 -0
- package/dist/workflow/WorkflowState.d.ts +2 -0
- package/dist/workflow/WorkflowState.d.ts.map +1 -0
- package/dist/workflow/WorkflowState.js +2 -0
- package/dist/workflow/WorkflowState.js.map +1 -0
- package/dist/workflow/index.d.ts +2 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +8 -0
- package/dist/workflow/index.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Variable Resolution Engine
|
|
3
|
+
*
|
|
4
|
+
* Resolves variables in workflow step inputs at runtime.
|
|
5
|
+
* Supports multiple variable sources aligned with workflow schema.
|
|
6
|
+
*
|
|
7
|
+
* Syntax: ${source.path.to.value}
|
|
8
|
+
*
|
|
9
|
+
* Supported sources:
|
|
10
|
+
* - env: Environment variables
|
|
11
|
+
* - steps: Step outputs
|
|
12
|
+
* - workflow: Workflow metadata
|
|
13
|
+
* - run: Execution metadata
|
|
14
|
+
* - context: Runtime context
|
|
15
|
+
* - inputs: Workflow inputs
|
|
16
|
+
* - secrets: Secret references (resolved externally)
|
|
17
|
+
* - metadata: Workflow metadata fields
|
|
18
|
+
*
|
|
19
|
+
* Future sources (placeholders):
|
|
20
|
+
* - telemetry: Telemetry data
|
|
21
|
+
* - resources: Resource information
|
|
22
|
+
* - compliance: Compliance metadata
|
|
23
|
+
*
|
|
24
|
+
* Advanced features:
|
|
25
|
+
* - Default values: ${env.token || "default"}
|
|
26
|
+
* - Built-in functions:
|
|
27
|
+
* - Time: ${now()}, ${uuid()}, ${timestamp()}
|
|
28
|
+
* - Context-aware: ${workflowId()}, ${workflowName()}, ${runId()}, ${attempt()}, ${triggeredBy()}
|
|
29
|
+
* - Type-aware: ${steps.count} returns number, not string
|
|
30
|
+
* - Math expressions: FUTURE (${steps.a + steps.b})
|
|
31
|
+
*
|
|
32
|
+
* @module context
|
|
33
|
+
*/
|
|
34
|
+
import { randomUUID } from 'crypto';
|
|
35
|
+
/**
|
|
36
|
+
* Variable resolver engine
|
|
37
|
+
*/
|
|
38
|
+
export class VariableResolver {
|
|
39
|
+
/** Maximum recursion depth to prevent infinite loops */
|
|
40
|
+
maxDepth = 10;
|
|
41
|
+
/**
|
|
42
|
+
* Resolve all variables in the input value
|
|
43
|
+
*
|
|
44
|
+
* @param input - Input value (can be string, object, array, or primitive)
|
|
45
|
+
* @param ctx - Resolution context
|
|
46
|
+
* @param depth - Current recursion depth (internal)
|
|
47
|
+
* @returns Input with all variables resolved
|
|
48
|
+
*/
|
|
49
|
+
resolve(input, ctx, depth = 0) {
|
|
50
|
+
// Prevent infinite recursion
|
|
51
|
+
if (depth > this.maxDepth) {
|
|
52
|
+
throw new Error(`Maximum variable resolution depth (${this.maxDepth}) exceeded. ` +
|
|
53
|
+
'Check for circular variable references.');
|
|
54
|
+
}
|
|
55
|
+
// Handle null/undefined
|
|
56
|
+
if (input === null || input === undefined) {
|
|
57
|
+
return input;
|
|
58
|
+
}
|
|
59
|
+
// Handle strings (may contain variables)
|
|
60
|
+
if (typeof input === 'string') {
|
|
61
|
+
return this.resolveString(input, ctx, depth);
|
|
62
|
+
}
|
|
63
|
+
// Handle arrays recursively
|
|
64
|
+
if (Array.isArray(input)) {
|
|
65
|
+
return input.map(v => this.resolve(v, ctx, depth + 1));
|
|
66
|
+
}
|
|
67
|
+
// Handle objects recursively
|
|
68
|
+
if (typeof input === 'object') {
|
|
69
|
+
const result = {};
|
|
70
|
+
for (const key in input) {
|
|
71
|
+
result[key] = this.resolve(input[key], ctx, depth + 1);
|
|
72
|
+
}
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
// Return primitives as-is
|
|
76
|
+
return input;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Resolve variables in a string
|
|
80
|
+
*
|
|
81
|
+
* Supports:
|
|
82
|
+
* - Full replacement: "${env.apiKey}" -> actual value
|
|
83
|
+
* - Inline replacement: "URL: ${env.baseUrl}/api" -> "URL: https://api.com/api"
|
|
84
|
+
* - Default values: "${env.token || 'default'}" -> uses default if token undefined
|
|
85
|
+
* - Built-in functions: "${now()}" -> current timestamp
|
|
86
|
+
*
|
|
87
|
+
* @param str - String potentially containing variables
|
|
88
|
+
* @param ctx - Resolution context
|
|
89
|
+
* @param depth - Current recursion depth
|
|
90
|
+
* @returns String with variables resolved
|
|
91
|
+
*/
|
|
92
|
+
resolveString(str, ctx, depth) {
|
|
93
|
+
// Check if entire string is a single variable (type-aware resolution)
|
|
94
|
+
const singleVarMatch = str.match(/^\$\{([^}]+)\}$/);
|
|
95
|
+
if (singleVarMatch) {
|
|
96
|
+
// Return actual value (might not be string)
|
|
97
|
+
return this.evaluateExpression(singleVarMatch[1].trim(), ctx, depth);
|
|
98
|
+
}
|
|
99
|
+
// Replace all inline variables with string values
|
|
100
|
+
const regex = /\$\{([^}]+)\}/g;
|
|
101
|
+
return str.replace(regex, (_, expr) => {
|
|
102
|
+
const value = this.evaluateExpression(expr.trim(), ctx, depth);
|
|
103
|
+
return value !== undefined && value !== null ? String(value) : '';
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Evaluate expression (supports default values and functions)
|
|
108
|
+
*
|
|
109
|
+
* Examples:
|
|
110
|
+
* - env.apiKey -> lookup('env.apiKey')
|
|
111
|
+
* - env.token || "default" -> lookup with fallback
|
|
112
|
+
* - now() -> built-in function
|
|
113
|
+
*
|
|
114
|
+
* @param expression - Expression to evaluate
|
|
115
|
+
* @param ctx - Resolution context
|
|
116
|
+
* @param depth - Current recursion depth
|
|
117
|
+
* @returns Evaluated value
|
|
118
|
+
*/
|
|
119
|
+
evaluateExpression(expression, ctx, depth) {
|
|
120
|
+
// Check for default value operator (||)
|
|
121
|
+
const defaultMatch = expression.match(/^(.+?)\|\|(.+)$/);
|
|
122
|
+
if (defaultMatch) {
|
|
123
|
+
const [, mainExpr, defaultExpr] = defaultMatch;
|
|
124
|
+
try {
|
|
125
|
+
const value = this.evaluateExpression(mainExpr.trim(), ctx, depth + 1);
|
|
126
|
+
if (value !== undefined && value !== null && value !== '') {
|
|
127
|
+
return value;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
// If lookup fails, use default
|
|
132
|
+
}
|
|
133
|
+
// Parse default value (could be string literal or another expression)
|
|
134
|
+
const defaultVal = defaultExpr.trim();
|
|
135
|
+
// Handle string literals
|
|
136
|
+
if ((defaultVal.startsWith("'") && defaultVal.endsWith("'")) ||
|
|
137
|
+
(defaultVal.startsWith('"') && defaultVal.endsWith('"'))) {
|
|
138
|
+
return defaultVal.slice(1, -1);
|
|
139
|
+
}
|
|
140
|
+
// Handle number literals
|
|
141
|
+
if (!isNaN(Number(defaultVal))) {
|
|
142
|
+
return Number(defaultVal);
|
|
143
|
+
}
|
|
144
|
+
// Handle boolean literals
|
|
145
|
+
if (defaultVal === 'true')
|
|
146
|
+
return true;
|
|
147
|
+
if (defaultVal === 'false')
|
|
148
|
+
return false;
|
|
149
|
+
if (defaultVal === 'null')
|
|
150
|
+
return null;
|
|
151
|
+
// Otherwise evaluate as expression
|
|
152
|
+
return this.evaluateExpression(defaultVal, ctx, depth + 1);
|
|
153
|
+
}
|
|
154
|
+
// Check for built-in functions
|
|
155
|
+
if (expression.endsWith('()')) {
|
|
156
|
+
return this.callBuiltInFunction(expression.slice(0, -2), ctx);
|
|
157
|
+
}
|
|
158
|
+
// Standard variable lookup
|
|
159
|
+
return this.lookup(expression, ctx);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Call a built-in function
|
|
163
|
+
*
|
|
164
|
+
* Supported functions:
|
|
165
|
+
* - now() -> current ISO timestamp
|
|
166
|
+
* - uuid() -> random UUID v4
|
|
167
|
+
* - timestamp() -> current Unix timestamp (milliseconds)
|
|
168
|
+
* - workflowId() -> current workflow ID from context
|
|
169
|
+
* - workflowName() -> current workflow name from context
|
|
170
|
+
* - runId() -> current execution run ID from context
|
|
171
|
+
* - attempt() -> current execution attempt number from context
|
|
172
|
+
* - triggeredBy() -> who/what triggered the workflow from context
|
|
173
|
+
*
|
|
174
|
+
* @param funcName - Function name
|
|
175
|
+
* @param ctx - Resolution context for context-aware functions
|
|
176
|
+
* @returns Function result
|
|
177
|
+
*/
|
|
178
|
+
callBuiltInFunction(funcName, ctx) {
|
|
179
|
+
switch (funcName) {
|
|
180
|
+
// Time-based functions (context-independent)
|
|
181
|
+
case 'now':
|
|
182
|
+
return new Date().toISOString();
|
|
183
|
+
case 'uuid':
|
|
184
|
+
return randomUUID();
|
|
185
|
+
case 'timestamp':
|
|
186
|
+
return Date.now();
|
|
187
|
+
// Context-aware workflow functions
|
|
188
|
+
case 'workflowId':
|
|
189
|
+
return ctx.workflow.id;
|
|
190
|
+
case 'workflowName':
|
|
191
|
+
return ctx.workflow.name;
|
|
192
|
+
// Context-aware run functions
|
|
193
|
+
case 'runId':
|
|
194
|
+
return ctx.run.id;
|
|
195
|
+
case 'attempt':
|
|
196
|
+
return ctx.run.attempt;
|
|
197
|
+
case 'triggeredBy':
|
|
198
|
+
return ctx.run.triggeredBy || 'unknown';
|
|
199
|
+
// Future functions (placeholders)
|
|
200
|
+
case 'env':
|
|
201
|
+
throw new Error('env() function not yet supported. Use ${env.VAR_NAME} syntax instead.');
|
|
202
|
+
default:
|
|
203
|
+
throw new Error(`Unknown function: '${funcName}()'. ` +
|
|
204
|
+
`Available functions: now(), uuid(), timestamp(), workflowId(), workflowName(), runId(), attempt(), triggeredBy()`);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Lookup variable value from context
|
|
209
|
+
*
|
|
210
|
+
* Supports:
|
|
211
|
+
* - ${env.apiKey} -> ctx.env.apiKey
|
|
212
|
+
* - ${steps.resize.output.url} -> ctx.steps.get('resize').output.url
|
|
213
|
+
* - ${workflow.name} -> ctx.workflow.name
|
|
214
|
+
* - ${run.id} -> ctx.run.id
|
|
215
|
+
* - ${inputs.userId} -> ctx.inputs.userId
|
|
216
|
+
* - ${secrets.apiKey} -> ctx.secrets.apiKey
|
|
217
|
+
* - ${metadata.createdAt} -> ctx.metadata.createdAt
|
|
218
|
+
* - ${context.customValue} -> ctx.context.customValue
|
|
219
|
+
* - ${telemetry.*} -> Future placeholder
|
|
220
|
+
* - ${resources.*} -> Future placeholder
|
|
221
|
+
* - ${compliance.*} -> Future placeholder
|
|
222
|
+
*
|
|
223
|
+
* @param expression - Variable expression (without ${ })
|
|
224
|
+
* @param ctx - Resolution context
|
|
225
|
+
* @returns Resolved value or undefined
|
|
226
|
+
*/
|
|
227
|
+
lookup(expression, ctx) {
|
|
228
|
+
const parts = expression.split('.');
|
|
229
|
+
const source = parts[0];
|
|
230
|
+
const path = parts.slice(1);
|
|
231
|
+
// Resolve source
|
|
232
|
+
let value;
|
|
233
|
+
switch (source) {
|
|
234
|
+
case 'env':
|
|
235
|
+
value = ctx.env;
|
|
236
|
+
break;
|
|
237
|
+
case 'steps': {
|
|
238
|
+
if (path.length === 0) {
|
|
239
|
+
throw new Error('steps variable requires step ID: ${steps.stepId.output}');
|
|
240
|
+
}
|
|
241
|
+
const stepId = path[0];
|
|
242
|
+
const stepOutput = ctx.steps.get(stepId);
|
|
243
|
+
if (stepOutput === undefined) {
|
|
244
|
+
throw new Error(`Step '${stepId}' not found or has not executed yet. ` +
|
|
245
|
+
`Available steps: ${Array.from(ctx.steps.keys()).join(', ') || 'none'}`);
|
|
246
|
+
}
|
|
247
|
+
value = stepOutput;
|
|
248
|
+
// Remove stepId from path
|
|
249
|
+
path.shift();
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
252
|
+
case 'workflow':
|
|
253
|
+
value = ctx.workflow;
|
|
254
|
+
break;
|
|
255
|
+
case 'run':
|
|
256
|
+
value = ctx.run;
|
|
257
|
+
break;
|
|
258
|
+
case 'inputs':
|
|
259
|
+
if (!ctx.inputs) {
|
|
260
|
+
throw new Error('No inputs defined for this workflow execution');
|
|
261
|
+
}
|
|
262
|
+
value = ctx.inputs;
|
|
263
|
+
break;
|
|
264
|
+
case 'secrets':
|
|
265
|
+
if (!ctx.secrets) {
|
|
266
|
+
throw new Error('No secrets available in this context. Secrets must be resolved before execution.');
|
|
267
|
+
}
|
|
268
|
+
value = ctx.secrets;
|
|
269
|
+
break;
|
|
270
|
+
case 'metadata':
|
|
271
|
+
if (!ctx.metadata) {
|
|
272
|
+
throw new Error('No metadata available in this context');
|
|
273
|
+
}
|
|
274
|
+
value = ctx.metadata;
|
|
275
|
+
break;
|
|
276
|
+
case 'context':
|
|
277
|
+
value = ctx.context || {};
|
|
278
|
+
break;
|
|
279
|
+
// Future placeholders
|
|
280
|
+
case 'telemetry':
|
|
281
|
+
if (!ctx.telemetry) {
|
|
282
|
+
throw new Error('Telemetry variables are not yet supported (future feature)');
|
|
283
|
+
}
|
|
284
|
+
value = ctx.telemetry;
|
|
285
|
+
break;
|
|
286
|
+
case 'resources':
|
|
287
|
+
if (!ctx.resources) {
|
|
288
|
+
throw new Error('Resource variables are not yet supported (future feature)');
|
|
289
|
+
}
|
|
290
|
+
value = ctx.resources;
|
|
291
|
+
break;
|
|
292
|
+
case 'compliance':
|
|
293
|
+
if (!ctx.compliance) {
|
|
294
|
+
throw new Error('Compliance variables are not yet supported (future feature)');
|
|
295
|
+
}
|
|
296
|
+
value = ctx.compliance;
|
|
297
|
+
break;
|
|
298
|
+
default:
|
|
299
|
+
throw new Error(`Unknown variable source: '${source}'. ` +
|
|
300
|
+
`Valid sources are: env, steps, workflow, run, inputs, secrets, metadata, context. ` +
|
|
301
|
+
`Future sources: telemetry, resources, compliance`);
|
|
302
|
+
}
|
|
303
|
+
// Navigate path
|
|
304
|
+
for (const key of path) {
|
|
305
|
+
if (value === undefined || value === null) {
|
|
306
|
+
return undefined;
|
|
307
|
+
}
|
|
308
|
+
value = value[key];
|
|
309
|
+
}
|
|
310
|
+
return value;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Check if a string contains variables
|
|
314
|
+
*
|
|
315
|
+
* @param str - String to check
|
|
316
|
+
* @returns True if string contains ${...} patterns
|
|
317
|
+
*/
|
|
318
|
+
static hasVariables(str) {
|
|
319
|
+
return /\$\{[^}]+\}/.test(str);
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Extract all variable expressions from a string
|
|
323
|
+
*
|
|
324
|
+
* @param str - String to analyze
|
|
325
|
+
* @returns Array of variable expressions (without ${ })
|
|
326
|
+
*/
|
|
327
|
+
static extractVariables(str) {
|
|
328
|
+
const regex = /\$\{([^}]+)\}/g;
|
|
329
|
+
const matches = [];
|
|
330
|
+
let match;
|
|
331
|
+
while ((match = regex.exec(str)) !== null) {
|
|
332
|
+
matches.push(match[1].trim());
|
|
333
|
+
}
|
|
334
|
+
return matches;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Validate that all referenced steps exist
|
|
338
|
+
*
|
|
339
|
+
* @param input - Input to validate
|
|
340
|
+
* @param availableSteps - Set of available step IDs
|
|
341
|
+
* @throws {Error} If referenced step doesn't exist
|
|
342
|
+
*/
|
|
343
|
+
static validateStepReferences(input, availableSteps) {
|
|
344
|
+
const checkValue = (value) => {
|
|
345
|
+
if (typeof value === 'string') {
|
|
346
|
+
const vars = this.extractVariables(value);
|
|
347
|
+
for (const varExpr of vars) {
|
|
348
|
+
const parts = varExpr.split('.');
|
|
349
|
+
if (parts[0] === 'steps' && parts.length > 1) {
|
|
350
|
+
const stepId = parts[1];
|
|
351
|
+
if (!availableSteps.has(stepId)) {
|
|
352
|
+
throw new Error(`Variable references unknown step: '${stepId}'. ` +
|
|
353
|
+
`Available steps: ${Array.from(availableSteps).join(', ')}`);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
else if (Array.isArray(value)) {
|
|
359
|
+
value.forEach(checkValue);
|
|
360
|
+
}
|
|
361
|
+
else if (typeof value === 'object' && value !== null) {
|
|
362
|
+
Object.values(value).forEach(checkValue);
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
checkValue(input);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
//# sourceMappingURL=VariableResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariableResolver.js","sourceRoot":"","sources":["../../src/context/VariableResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Module
|
|
3
|
+
*
|
|
4
|
+
* Runtime context management and variable resolution.
|
|
5
|
+
*
|
|
6
|
+
* @module context
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Context Module
|
|
10
|
+
*
|
|
11
|
+
* Runtime context and variable resolution for workflow execution.
|
|
12
|
+
*
|
|
13
|
+
* @module context
|
|
14
|
+
*/
|
|
15
|
+
export * from './ContextStore.js';
|
|
16
|
+
export * from './VariableResolver.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;GAMG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Module
|
|
3
|
+
*
|
|
4
|
+
* Runtime context management and variable resolution.
|
|
5
|
+
*
|
|
6
|
+
* @module context
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Context Module
|
|
10
|
+
*
|
|
11
|
+
* Runtime context and variable resolution for workflow execution.
|
|
12
|
+
*
|
|
13
|
+
* @module context
|
|
14
|
+
*/
|
|
15
|
+
export * from './ContextStore.js';
|
|
16
|
+
export * from './VariableResolver.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;GAMG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine Configuration
|
|
3
|
+
*
|
|
4
|
+
* User-facing configuration for OrbytEngine.
|
|
5
|
+
* Provides sensible defaults and clear options for engine behavior.
|
|
6
|
+
*
|
|
7
|
+
* @module core
|
|
8
|
+
*/
|
|
9
|
+
import type { RetryPolicy } from '../automation/RetryPolicy.js';
|
|
10
|
+
import type { TimeoutManager } from '../automation/TimeoutManager.js';
|
|
11
|
+
import type { JobQueue } from '../queue/JobQueue.js';
|
|
12
|
+
import type { LifecycleHook } from '../hooks/LifecycleHooks.js';
|
|
13
|
+
import type { Adapter } from '@dev-ecosystem/core';
|
|
14
|
+
/**
|
|
15
|
+
* Logging level for engine output
|
|
16
|
+
*/
|
|
17
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
|
18
|
+
/**
|
|
19
|
+
* Execution mode
|
|
20
|
+
*/
|
|
21
|
+
export type ExecutionMode = 'local' | 'distributed' | 'dry-run';
|
|
22
|
+
/**
|
|
23
|
+
* Engine configuration options
|
|
24
|
+
*
|
|
25
|
+
* Provides a clean, user-friendly API for configuring OrbytEngine.
|
|
26
|
+
* All options are optional with sensible defaults.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* const config: OrbytEngineConfig = {
|
|
31
|
+
* maxConcurrentWorkflows: 5,
|
|
32
|
+
* logLevel: 'info',
|
|
33
|
+
* enableScheduler: true,
|
|
34
|
+
* adapters: [httpAdapter, shellAdapter],
|
|
35
|
+
* hooks: [loggingHook, metricsHook]
|
|
36
|
+
* };
|
|
37
|
+
*
|
|
38
|
+
* const engine = new OrbytEngine(config);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export interface OrbytEngineConfig {
|
|
42
|
+
/**
|
|
43
|
+
* Maximum number of workflows that can run concurrently
|
|
44
|
+
* @default 10
|
|
45
|
+
*/
|
|
46
|
+
maxConcurrentWorkflows?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Default timeout for workflows (milliseconds)
|
|
49
|
+
* @default 300000 (5 minutes)
|
|
50
|
+
*/
|
|
51
|
+
defaultTimeout?: number;
|
|
52
|
+
/**
|
|
53
|
+
* Execution mode
|
|
54
|
+
* - 'local': Execute locally with full features
|
|
55
|
+
* - 'distributed': Execute in distributed mode (future)
|
|
56
|
+
* - 'dry-run': Validate and plan but don't execute
|
|
57
|
+
* @default 'local'
|
|
58
|
+
*/
|
|
59
|
+
mode?: ExecutionMode;
|
|
60
|
+
/**
|
|
61
|
+
* Enable the internal scheduler for cron/scheduled workflows
|
|
62
|
+
* @default true
|
|
63
|
+
*/
|
|
64
|
+
enableScheduler?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Custom job queue implementation
|
|
67
|
+
* If not provided, uses InMemoryQueue
|
|
68
|
+
*/
|
|
69
|
+
queue?: JobQueue;
|
|
70
|
+
/**
|
|
71
|
+
* Global retry policy for all steps
|
|
72
|
+
* Can be overridden per-step in workflow definition
|
|
73
|
+
*/
|
|
74
|
+
retryPolicy?: RetryPolicy;
|
|
75
|
+
/**
|
|
76
|
+
* Global timeout manager
|
|
77
|
+
*/
|
|
78
|
+
timeoutManager?: TimeoutManager;
|
|
79
|
+
/**
|
|
80
|
+
* Adapters to register with the engine
|
|
81
|
+
* These will be available for use in workflows
|
|
82
|
+
*/
|
|
83
|
+
adapters?: Adapter[];
|
|
84
|
+
/**
|
|
85
|
+
* Lifecycle hooks for extending engine behavior
|
|
86
|
+
* Hooks are called at key execution moments
|
|
87
|
+
*/
|
|
88
|
+
hooks?: LifecycleHook[];
|
|
89
|
+
/**
|
|
90
|
+
* Logging level
|
|
91
|
+
* @default 'info'
|
|
92
|
+
*/
|
|
93
|
+
logLevel?: LogLevel;
|
|
94
|
+
/**
|
|
95
|
+
* Enable verbose output (equivalent to logLevel='debug')
|
|
96
|
+
* @default false
|
|
97
|
+
*/
|
|
98
|
+
verbose?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Enable metrics collection
|
|
101
|
+
* @default true
|
|
102
|
+
*/
|
|
103
|
+
enableMetrics?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Enable event emission
|
|
106
|
+
* @default true
|
|
107
|
+
*/
|
|
108
|
+
enableEvents?: boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Directory for storing execution state and logs
|
|
111
|
+
* @default '.orbyt/state'
|
|
112
|
+
*/
|
|
113
|
+
stateDir?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Directory for storing execution logs
|
|
116
|
+
* @default '.orbyt/logs'
|
|
117
|
+
*/
|
|
118
|
+
logDir?: string;
|
|
119
|
+
/**
|
|
120
|
+
* Sandbox mode for step execution
|
|
121
|
+
* - 'none': No sandboxing
|
|
122
|
+
* - 'basic': Basic restrictions
|
|
123
|
+
* - 'strict': Strict isolation (future)
|
|
124
|
+
* @default 'basic'
|
|
125
|
+
*/
|
|
126
|
+
sandboxMode?: 'none' | 'basic' | 'strict';
|
|
127
|
+
/**
|
|
128
|
+
* Working directory for workflow execution
|
|
129
|
+
* @default process.cwd()
|
|
130
|
+
*/
|
|
131
|
+
workingDirectory?: string;
|
|
132
|
+
/**
|
|
133
|
+
* Enable experimental features
|
|
134
|
+
* @default false
|
|
135
|
+
*/
|
|
136
|
+
experimental?: boolean;
|
|
137
|
+
/**
|
|
138
|
+
* Custom metadata to attach to all executions
|
|
139
|
+
*/
|
|
140
|
+
metadata?: Record<string, any>;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Apply default values to engine configuration
|
|
144
|
+
*
|
|
145
|
+
* @param config - User-provided configuration
|
|
146
|
+
* @returns Configuration with defaults applied
|
|
147
|
+
*/
|
|
148
|
+
export declare function applyConfigDefaults(config?: OrbytEngineConfig): Required<Omit<OrbytEngineConfig, 'queue' | 'retryPolicy' | 'timeoutManager' | 'adapters' | 'hooks' | 'metadata'>> & Pick<OrbytEngineConfig, 'queue' | 'retryPolicy' | 'timeoutManager' | 'adapters' | 'hooks' | 'metadata'>;
|
|
149
|
+
/**
|
|
150
|
+
* Validate engine configuration
|
|
151
|
+
*
|
|
152
|
+
* @param config - Configuration to validate
|
|
153
|
+
* @throws Error if configuration is invalid
|
|
154
|
+
*/
|
|
155
|
+
export declare function validateConfig(config: OrbytEngineConfig): void;
|
|
156
|
+
//# sourceMappingURL=EngineConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EngineConfig.d.ts","sourceRoot":"","sources":["../../src/core/EngineConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;AAEhE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,iBAAiB;IAGhC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IAIrB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAI1B;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAIjB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAIhC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAIrB;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IAIxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAIvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAE1C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAI1B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,iBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,aAAa,GAAG,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,aAAa,GAAG,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC,CAsB/R;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAoB9D"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine Configuration
|
|
3
|
+
*
|
|
4
|
+
* User-facing configuration for OrbytEngine.
|
|
5
|
+
* Provides sensible defaults and clear options for engine behavior.
|
|
6
|
+
*
|
|
7
|
+
* @module core
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Apply default values to engine configuration
|
|
11
|
+
*
|
|
12
|
+
* @param config - User-provided configuration
|
|
13
|
+
* @returns Configuration with defaults applied
|
|
14
|
+
*/
|
|
15
|
+
export function applyConfigDefaults(config = {}) {
|
|
16
|
+
return {
|
|
17
|
+
maxConcurrentWorkflows: config.maxConcurrentWorkflows ?? 10,
|
|
18
|
+
defaultTimeout: config.defaultTimeout ?? 300000, // 5 minutes
|
|
19
|
+
mode: config.mode ?? 'local',
|
|
20
|
+
enableScheduler: config.enableScheduler ?? true,
|
|
21
|
+
queue: config.queue,
|
|
22
|
+
retryPolicy: config.retryPolicy,
|
|
23
|
+
timeoutManager: config.timeoutManager,
|
|
24
|
+
adapters: config.adapters,
|
|
25
|
+
hooks: config.hooks,
|
|
26
|
+
logLevel: config.verbose ? 'debug' : (config.logLevel ?? 'info'),
|
|
27
|
+
verbose: config.verbose ?? false,
|
|
28
|
+
enableMetrics: config.enableMetrics ?? true,
|
|
29
|
+
enableEvents: config.enableEvents ?? true,
|
|
30
|
+
stateDir: config.stateDir ?? '.orbyt/state',
|
|
31
|
+
logDir: config.logDir ?? '.orbyt/logs',
|
|
32
|
+
sandboxMode: config.sandboxMode ?? 'basic',
|
|
33
|
+
workingDirectory: config.workingDirectory ?? process.cwd(),
|
|
34
|
+
experimental: config.experimental ?? false,
|
|
35
|
+
metadata: config.metadata,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Validate engine configuration
|
|
40
|
+
*
|
|
41
|
+
* @param config - Configuration to validate
|
|
42
|
+
* @throws Error if configuration is invalid
|
|
43
|
+
*/
|
|
44
|
+
export function validateConfig(config) {
|
|
45
|
+
if (config.maxConcurrentWorkflows !== undefined && config.maxConcurrentWorkflows < 1) {
|
|
46
|
+
throw new Error('maxConcurrentWorkflows must be at least 1');
|
|
47
|
+
}
|
|
48
|
+
if (config.defaultTimeout !== undefined && config.defaultTimeout < 1) {
|
|
49
|
+
throw new Error('defaultTimeout must be positive');
|
|
50
|
+
}
|
|
51
|
+
if (config.mode && !['local', 'distributed', 'dry-run'].includes(config.mode)) {
|
|
52
|
+
throw new Error(`Invalid mode: ${config.mode}. Must be 'local', 'distributed', or 'dry-run'`);
|
|
53
|
+
}
|
|
54
|
+
if (config.logLevel && !['debug', 'info', 'warn', 'error', 'silent'].includes(config.logLevel)) {
|
|
55
|
+
throw new Error(`Invalid logLevel: ${config.logLevel}`);
|
|
56
|
+
}
|
|
57
|
+
if (config.sandboxMode && !['none', 'basic', 'strict'].includes(config.sandboxMode)) {
|
|
58
|
+
throw new Error(`Invalid sandboxMode: ${config.sandboxMode}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=EngineConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EngineConfig.js","sourceRoot":"","sources":["../../src/core/EngineConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiLH;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAA4B,EAAE;IAChE,OAAO;QACL,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,IAAI,EAAE;QAC3D,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,MAAM,EAAE,YAAY;QAC7D,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,OAAO;QAC5B,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;QAC/C,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC;QAChE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;QAChC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;QAC3C,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI;QACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,cAAc;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,aAAa;QACtC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,OAAO;QAC1C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE;QAC1D,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,KAAK;QAC1C,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAyB;IACtD,IAAI,MAAM,CAAC,sBAAsB,KAAK,SAAS,IAAI,MAAM,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,CAAC,IAAI,gDAAgD,CAAC,CAAC;IAChG,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/F,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
|