@loopstack/core 0.24.0 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/common.module.d.ts.map +1 -1
- package/dist/common/common.module.js +2 -13
- package/dist/common/common.module.js.map +1 -1
- package/dist/common/dtos/client-message.dto.d.ts +0 -2
- package/dist/common/dtos/client-message.dto.d.ts.map +1 -1
- package/dist/common/dtos/client-message.dto.js +0 -2
- package/dist/common/dtos/client-message.dto.js.map +1 -1
- package/dist/common/services/client-message.service.d.ts.map +1 -1
- package/dist/common/services/client-message.service.js +1 -2
- package/dist/common/services/client-message.service.js.map +1 -1
- package/dist/common/services/index.d.ts +1 -7
- package/dist/common/services/index.d.ts.map +1 -1
- package/dist/common/services/index.js +1 -7
- package/dist/common/services/index.js.map +1 -1
- package/dist/documents/error-document.d.ts +3 -5
- package/dist/documents/error-document.d.ts.map +1 -1
- package/dist/documents/error-document.js +5 -17
- package/dist/documents/error-document.js.map +1 -1
- package/dist/documents/error-document.yaml +2 -2
- package/dist/documents/link-document.d.ts +14 -9
- package/dist/documents/link-document.d.ts.map +1 -1
- package/dist/documents/link-document.js +11 -21
- package/dist/documents/link-document.js.map +1 -1
- package/dist/documents/link-document.yaml +2 -2
- package/dist/documents/markdown-document.d.ts +3 -5
- package/dist/documents/markdown-document.d.ts.map +1 -1
- package/dist/documents/markdown-document.js +5 -17
- package/dist/documents/markdown-document.js.map +1 -1
- package/dist/documents/markdown-document.yaml +2 -2
- package/dist/documents/message-document.d.ts +4 -5
- package/dist/documents/message-document.d.ts.map +1 -1
- package/dist/documents/message-document.js +5 -16
- package/dist/documents/message-document.js.map +1 -1
- package/dist/documents/message-document.yaml +2 -2
- package/dist/documents/plain-document.d.ts +3 -5
- package/dist/documents/plain-document.d.ts.map +1 -1
- package/dist/documents/plain-document.js +5 -17
- package/dist/documents/plain-document.js.map +1 -1
- package/dist/documents/plain-document.yaml +2 -2
- package/dist/documents/secret-request-document.d.ts +6 -5
- package/dist/documents/secret-request-document.d.ts.map +1 -1
- package/dist/documents/secret-request-document.js +5 -13
- package/dist/documents/secret-request-document.js.map +1 -1
- package/dist/documents/secret-request-document.yaml +3 -19
- package/dist/loop-core.module.d.ts.map +1 -1
- package/dist/loop-core.module.js +0 -6
- package/dist/loop-core.module.js.map +1 -1
- package/dist/persistence/persistence.module.d.ts.map +1 -1
- package/dist/persistence/persistence.module.js +3 -28
- package/dist/persistence/persistence.module.js.map +1 -1
- package/dist/persistence/services/index.d.ts +1 -5
- package/dist/persistence/services/index.d.ts.map +1 -1
- package/dist/persistence/services/index.js +1 -5
- package/dist/persistence/services/index.js.map +1 -1
- package/dist/persistence/services/workflow-checkpoint.service.d.ts +23 -0
- package/dist/persistence/services/workflow-checkpoint.service.d.ts.map +1 -0
- package/dist/persistence/services/workflow-checkpoint.service.js +59 -0
- package/dist/persistence/services/workflow-checkpoint.service.js.map +1 -0
- package/dist/persistence/services/workflow.service.d.ts +10 -5
- package/dist/persistence/services/workflow.service.d.ts.map +1 -1
- package/dist/persistence/services/workflow.service.js +53 -14
- package/dist/persistence/services/workflow.service.js.map +1 -1
- package/dist/persistence/services/workspace.service.d.ts.map +1 -1
- package/dist/persistence/services/workspace.service.js +1 -0
- package/dist/persistence/services/workspace.service.js.map +1 -1
- package/dist/scheduler/scheduler.module.d.ts.map +1 -1
- package/dist/scheduler/scheduler.module.js +7 -9
- package/dist/scheduler/scheduler.module.js.map +1 -1
- package/dist/scheduler/services/run.service.d.ts +4 -4
- package/dist/scheduler/services/run.service.js +12 -12
- package/dist/scheduler/services/run.service.js.map +1 -1
- package/dist/scheduler/services/task-processor/cleanup-workflow-task-processor.service.d.ts +4 -0
- package/dist/scheduler/services/task-processor/cleanup-workflow-task-processor.service.d.ts.map +1 -0
- package/dist/scheduler/services/task-processor/{cleanup-pipeline-task-processor.service.js → cleanup-workflow-task-processor.service.js} +8 -8
- package/dist/scheduler/services/task-processor/cleanup-workflow-task-processor.service.js.map +1 -0
- package/dist/scheduler/services/task-processor/create-run-workflow-task-processor.service.d.ts +8 -0
- package/dist/scheduler/services/task-processor/{create-run-pipeline-task-processor.service.d.ts.map → create-run-workflow-task-processor.service.d.ts.map} +1 -1
- package/dist/scheduler/services/task-processor/{create-run-pipeline-task-processor.service.js → create-run-workflow-task-processor.service.js} +12 -12
- package/dist/scheduler/services/task-processor/{create-run-pipeline-task-processor.service.js.map → create-run-workflow-task-processor.service.js.map} +1 -1
- package/dist/scheduler/services/task-processor/run-workflow-task-processor.service.d.ts +13 -0
- package/dist/scheduler/services/task-processor/run-workflow-task-processor.service.d.ts.map +1 -0
- package/dist/scheduler/services/task-processor/{run-pipeline-task-processor.service.js → run-workflow-task-processor.service.js} +30 -24
- package/dist/scheduler/services/task-processor/run-workflow-task-processor.service.js.map +1 -0
- package/dist/scheduler/services/task-processor.service.d.ts +3 -3
- package/dist/scheduler/services/task-processor.service.d.ts.map +1 -1
- package/dist/scheduler/services/task-processor.service.js +7 -7
- package/dist/scheduler/services/task-processor.service.js.map +1 -1
- package/dist/tools/get-secret-keys.tool.d.ts +4 -3
- package/dist/tools/get-secret-keys.tool.d.ts.map +1 -1
- package/dist/tools/get-secret-keys.tool.js +11 -4
- package/dist/tools/get-secret-keys.tool.js.map +1 -1
- package/dist/tools/index.d.ts +0 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +0 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/request-secrets-task.tool.d.ts +5 -8
- package/dist/tools/request-secrets-task.tool.d.ts.map +1 -1
- package/dist/tools/request-secrets-task.tool.js +28 -63
- package/dist/tools/request-secrets-task.tool.js.map +1 -1
- package/dist/tools/request-secrets.tool.d.ts +3 -4
- package/dist/tools/request-secrets.tool.d.ts.map +1 -1
- package/dist/tools/request-secrets.tool.js +4 -11
- package/dist/tools/request-secrets.tool.js.map +1 -1
- package/dist/tools/secrets-request.ui.yaml +5 -0
- package/dist/tools/secrets-request.workflow.d.ts +9 -12
- package/dist/tools/secrets-request.workflow.d.ts.map +1 -1
- package/dist/tools/secrets-request.workflow.js +22 -41
- package/dist/tools/secrets-request.workflow.js.map +1 -1
- package/dist/workflow-processor/services/block-discovery.service.d.ts +4 -1
- package/dist/workflow-processor/services/block-discovery.service.d.ts.map +1 -1
- package/dist/workflow-processor/services/block-discovery.service.js +31 -1
- package/dist/workflow-processor/services/block-discovery.service.js.map +1 -1
- package/dist/workflow-processor/services/create-workflow.service.d.ts +14 -0
- package/dist/workflow-processor/services/create-workflow.service.d.ts.map +1 -0
- package/dist/workflow-processor/services/{create-pipeline.service.js → create-workflow.service.js} +26 -36
- package/dist/workflow-processor/services/create-workflow.service.js.map +1 -0
- package/dist/workflow-processor/services/document-persistence.service.d.ts +13 -0
- package/dist/workflow-processor/services/document-persistence.service.d.ts.map +1 -0
- package/dist/workflow-processor/services/document-persistence.service.js +132 -0
- package/dist/workflow-processor/services/document-persistence.service.js.map +1 -0
- package/dist/workflow-processor/services/document-repository.service.d.ts +14 -0
- package/dist/workflow-processor/services/document-repository.service.d.ts.map +1 -0
- package/dist/workflow-processor/services/document-repository.service.js +71 -0
- package/dist/workflow-processor/services/document-repository.service.js.map +1 -0
- package/dist/workflow-processor/services/index.d.ts +8 -8
- package/dist/workflow-processor/services/index.d.ts.map +1 -1
- package/dist/workflow-processor/services/index.js +8 -8
- package/dist/workflow-processor/services/index.js.map +1 -1
- package/dist/workflow-processor/services/processors/workflow-processor.service.d.ts +16 -9
- package/dist/workflow-processor/services/processors/workflow-processor.service.d.ts.map +1 -1
- package/dist/workflow-processor/services/processors/workflow-processor.service.js +173 -57
- package/dist/workflow-processor/services/processors/workflow-processor.service.js.map +1 -1
- package/dist/workflow-processor/services/root-processor.service.d.ts +8 -13
- package/dist/workflow-processor/services/root-processor.service.d.ts.map +1 -1
- package/dist/workflow-processor/services/root-processor.service.js +45 -91
- package/dist/workflow-processor/services/root-processor.service.js.map +1 -1
- package/dist/workflow-processor/services/tool-execution.service.d.ts +16 -0
- package/dist/workflow-processor/services/tool-execution.service.d.ts.map +1 -0
- package/dist/workflow-processor/services/tool-execution.service.js +82 -0
- package/dist/workflow-processor/services/tool-execution.service.js.map +1 -0
- package/dist/workflow-processor/services/tool-logging.interceptor.d.ts +6 -0
- package/dist/workflow-processor/services/tool-logging.interceptor.d.ts.map +1 -0
- package/dist/workflow-processor/services/tool-logging.interceptor.js +37 -0
- package/dist/workflow-processor/services/tool-logging.interceptor.js.map +1 -0
- package/dist/workflow-processor/services/transition-resolver.service.d.ts +8 -0
- package/dist/workflow-processor/services/transition-resolver.service.d.ts.map +1 -0
- package/dist/workflow-processor/services/transition-resolver.service.js +85 -0
- package/dist/workflow-processor/services/transition-resolver.service.js.map +1 -0
- package/dist/workflow-processor/services/workflow-memory-monitor.service.d.ts +25 -0
- package/dist/workflow-processor/services/workflow-memory-monitor.service.d.ts.map +1 -0
- package/dist/workflow-processor/services/workflow-memory-monitor.service.js +86 -0
- package/dist/workflow-processor/services/workflow-memory-monitor.service.js.map +1 -0
- package/dist/workflow-processor/services/workflow-orchestration.service.d.ts +17 -0
- package/dist/workflow-processor/services/workflow-orchestration.service.d.ts.map +1 -0
- package/dist/workflow-processor/services/workflow-orchestration.service.js +125 -0
- package/dist/workflow-processor/services/workflow-orchestration.service.js.map +1 -0
- package/dist/workflow-processor/services/workflow-state.service.d.ts +8 -6
- package/dist/workflow-processor/services/workflow-state.service.d.ts.map +1 -1
- package/dist/workflow-processor/services/workflow-state.service.js +26 -34
- package/dist/workflow-processor/services/workflow-state.service.js.map +1 -1
- package/dist/workflow-processor/utils/execution-context-manager.d.ts +6 -10
- package/dist/workflow-processor/utils/execution-context-manager.d.ts.map +1 -1
- package/dist/workflow-processor/utils/execution-context-manager.js +7 -15
- package/dist/workflow-processor/utils/execution-context-manager.js.map +1 -1
- package/dist/workflow-processor/utils/execution-scope.d.ts +9 -0
- package/dist/workflow-processor/utils/execution-scope.d.ts.map +1 -0
- package/dist/workflow-processor/utils/execution-scope.js +32 -0
- package/dist/workflow-processor/utils/execution-scope.js.map +1 -0
- package/dist/workflow-processor/utils/index.d.ts +3 -1
- package/dist/workflow-processor/utils/index.d.ts.map +1 -1
- package/dist/workflow-processor/utils/index.js +3 -1
- package/dist/workflow-processor/utils/index.js.map +1 -1
- package/dist/workflow-processor/utils/state/state-manager.d.ts +8 -6
- package/dist/workflow-processor/utils/state/state-manager.d.ts.map +1 -1
- package/dist/workflow-processor/utils/state/state-manager.js +11 -26
- package/dist/workflow-processor/utils/state/state-manager.js.map +1 -1
- package/dist/workflow-processor/utils/workflow-templates.d.ts +6 -0
- package/dist/workflow-processor/utils/workflow-templates.d.ts.map +1 -0
- package/dist/workflow-processor/utils/workflow-templates.js +52 -0
- package/dist/workflow-processor/utils/workflow-templates.js.map +1 -0
- package/dist/workflow-processor/utils/wrap-block-proxy.d.ts +2 -3
- package/dist/workflow-processor/utils/wrap-block-proxy.d.ts.map +1 -1
- package/dist/workflow-processor/utils/wrap-block-proxy.js +28 -52
- package/dist/workflow-processor/utils/wrap-block-proxy.js.map +1 -1
- package/dist/workflow-processor/utils/wrap-tool-proxy.d.ts +3 -0
- package/dist/workflow-processor/utils/wrap-tool-proxy.d.ts.map +1 -0
- package/dist/workflow-processor/utils/wrap-tool-proxy.js +55 -0
- package/dist/workflow-processor/utils/wrap-tool-proxy.js.map +1 -0
- package/dist/workflow-processor/workflow-processor.module.d.ts.map +1 -1
- package/dist/workflow-processor/workflow-processor.module.js +56 -16
- package/dist/workflow-processor/workflow-processor.module.js.map +1 -1
- package/package.json +14 -12
- package/dist/common/errors/jexl-expression.error.d.ts +0 -5
- package/dist/common/errors/jexl-expression.error.d.ts.map +0 -1
- package/dist/common/errors/jexl-expression.error.js +0 -13
- package/dist/common/errors/jexl-expression.error.js.map +0 -1
- package/dist/common/errors/object-expression.error.d.ts +0 -5
- package/dist/common/errors/object-expression.error.d.ts.map +0 -1
- package/dist/common/errors/object-expression.error.js +0 -13
- package/dist/common/errors/object-expression.error.js.map +0 -1
- package/dist/common/errors/template-expression.error.d.ts +0 -5
- package/dist/common/errors/template-expression.error.d.ts.map +0 -1
- package/dist/common/errors/template-expression.error.js +0 -13
- package/dist/common/errors/template-expression.error.js.map +0 -1
- package/dist/common/services/expression-handler/jexl-expression.handler.d.ts +0 -16
- package/dist/common/services/expression-handler/jexl-expression.handler.d.ts.map +0 -1
- package/dist/common/services/expression-handler/jexl-expression.handler.js +0 -80
- package/dist/common/services/expression-handler/jexl-expression.handler.js.map +0 -1
- package/dist/common/services/expression-handler/object-expression.handler.d.ts +0 -14
- package/dist/common/services/expression-handler/object-expression.handler.d.ts.map +0 -1
- package/dist/common/services/expression-handler/object-expression.handler.js +0 -77
- package/dist/common/services/expression-handler/object-expression.handler.js.map +0 -1
- package/dist/common/services/expression-handler/template-expression.handler.d.ts +0 -17
- package/dist/common/services/expression-handler/template-expression.handler.d.ts.map +0 -1
- package/dist/common/services/expression-handler/template-expression.handler.js +0 -59
- package/dist/common/services/expression-handler/template-expression.handler.js.map +0 -1
- package/dist/common/services/handlebars-helpers/date-formatter-helper.service.d.ts +0 -10
- package/dist/common/services/handlebars-helpers/date-formatter-helper.service.d.ts.map +0 -1
- package/dist/common/services/handlebars-helpers/date-formatter-helper.service.js +0 -124
- package/dist/common/services/handlebars-helpers/date-formatter-helper.service.js.map +0 -1
- package/dist/common/services/handlebars-helpers/index.d.ts +0 -3
- package/dist/common/services/handlebars-helpers/index.d.ts.map +0 -1
- package/dist/common/services/handlebars-helpers/index.js +0 -19
- package/dist/common/services/handlebars-helpers/index.js.map +0 -1
- package/dist/common/services/handlebars-helpers/operators-helper.service.d.ts +0 -42
- package/dist/common/services/handlebars-helpers/operators-helper.service.d.ts.map +0 -1
- package/dist/common/services/handlebars-helpers/operators-helper.service.js +0 -437
- package/dist/common/services/handlebars-helpers/operators-helper.service.js.map +0 -1
- package/dist/common/services/handlebars-processor.service.d.ts +0 -24
- package/dist/common/services/handlebars-processor.service.d.ts.map +0 -1
- package/dist/common/services/handlebars-processor.service.js +0 -100
- package/dist/common/services/handlebars-processor.service.js.map +0 -1
- package/dist/common/services/template-expression-evaluator.service.d.ts +0 -12
- package/dist/common/services/template-expression-evaluator.service.d.ts.map +0 -1
- package/dist/common/services/template-expression-evaluator.service.js +0 -51
- package/dist/common/services/template-expression-evaluator.service.js.map +0 -1
- package/dist/common/services/template.service.d.ts +0 -17
- package/dist/common/services/template.service.d.ts.map +0 -1
- package/dist/common/services/template.service.js +0 -64
- package/dist/common/services/template.service.js.map +0 -1
- package/dist/migrations/1742827301075-EnableLtreeExtension.d.ts +0 -6
- package/dist/migrations/1742827301075-EnableLtreeExtension.d.ts.map +0 -1
- package/dist/migrations/1742827301075-EnableLtreeExtension.js +0 -13
- package/dist/migrations/1742827301075-EnableLtreeExtension.js.map +0 -1
- package/dist/persistence/services/document.service.d.ts +0 -8
- package/dist/persistence/services/document.service.d.ts.map +0 -1
- package/dist/persistence/services/document.service.js +0 -51
- package/dist/persistence/services/document.service.js.map +0 -1
- package/dist/persistence/services/event-subscriber.service.d.ts +0 -23
- package/dist/persistence/services/event-subscriber.service.d.ts.map +0 -1
- package/dist/persistence/services/event-subscriber.service.js +0 -75
- package/dist/persistence/services/event-subscriber.service.js.map +0 -1
- package/dist/persistence/services/migrations.service.d.ts +0 -10
- package/dist/persistence/services/migrations.service.d.ts.map +0 -1
- package/dist/persistence/services/migrations.service.js +0 -89
- package/dist/persistence/services/migrations.service.js.map +0 -1
- package/dist/persistence/services/namespace.service.d.ts +0 -11
- package/dist/persistence/services/namespace.service.d.ts.map +0 -1
- package/dist/persistence/services/namespace.service.js +0 -75
- package/dist/persistence/services/namespace.service.js.map +0 -1
- package/dist/persistence/services/pipeline.service.d.ts +0 -11
- package/dist/persistence/services/pipeline.service.d.ts.map +0 -1
- package/dist/persistence/services/pipeline.service.js +0 -66
- package/dist/persistence/services/pipeline.service.js.map +0 -1
- package/dist/scheduler/services/event-processor.service.d.ts +0 -10
- package/dist/scheduler/services/event-processor.service.d.ts.map +0 -1
- package/dist/scheduler/services/event-processor.service.js +0 -75
- package/dist/scheduler/services/event-processor.service.js.map +0 -1
- package/dist/scheduler/services/task-processor/cleanup-pipeline-task-processor.service.d.ts +0 -4
- package/dist/scheduler/services/task-processor/cleanup-pipeline-task-processor.service.d.ts.map +0 -1
- package/dist/scheduler/services/task-processor/cleanup-pipeline-task-processor.service.js.map +0 -1
- package/dist/scheduler/services/task-processor/create-run-pipeline-task-processor.service.d.ts +0 -8
- package/dist/scheduler/services/task-processor/run-pipeline-task-processor.service.d.ts +0 -12
- package/dist/scheduler/services/task-processor/run-pipeline-task-processor.service.d.ts.map +0 -1
- package/dist/scheduler/services/task-processor/run-pipeline-task-processor.service.js.map +0 -1
- package/dist/tools/create-document.tool.d.ts +0 -73
- package/dist/tools/create-document.tool.d.ts.map +0 -1
- package/dist/tools/create-document.tool.js +0 -151
- package/dist/tools/create-document.tool.js.map +0 -1
- package/dist/tools/secrets-request.workflow.yaml +0 -22
- package/dist/tools/task.tool.d.ts +0 -26
- package/dist/tools/task.tool.d.ts.map +0 -1
- package/dist/tools/task.tool.js +0 -109
- package/dist/tools/task.tool.js.map +0 -1
- package/dist/workflow-processor/services/create-pipeline.service.d.ts +0 -14
- package/dist/workflow-processor/services/create-pipeline.service.d.ts.map +0 -1
- package/dist/workflow-processor/services/create-pipeline.service.js.map +0 -1
- package/dist/workflow-processor/services/namespace-processor.service.d.ts +0 -9
- package/dist/workflow-processor/services/namespace-processor.service.d.ts.map +0 -1
- package/dist/workflow-processor/services/namespace-processor.service.js +0 -40
- package/dist/workflow-processor/services/namespace-processor.service.js.map +0 -1
- package/dist/workflow-processor/services/state-machine-processor.service.d.ts +0 -16
- package/dist/workflow-processor/services/state-machine-processor.service.d.ts.map +0 -1
- package/dist/workflow-processor/services/state-machine-processor.service.js +0 -137
- package/dist/workflow-processor/services/state-machine-processor.service.js.map +0 -1
- package/dist/workflow-processor/services/state-machine-tool-call-processor.service.d.ts +0 -21
- package/dist/workflow-processor/services/state-machine-tool-call-processor.service.d.ts.map +0 -1
- package/dist/workflow-processor/services/state-machine-tool-call-processor.service.js +0 -206
- package/dist/workflow-processor/services/state-machine-tool-call-processor.service.js.map +0 -1
- package/dist/workflow-processor/services/state-machine-validator.registry.d.ts +0 -12
- package/dist/workflow-processor/services/state-machine-validator.registry.d.ts.map +0 -1
- package/dist/workflow-processor/services/state-machine-validator.registry.js +0 -53
- package/dist/workflow-processor/services/state-machine-validator.registry.js.map +0 -1
- package/dist/workflow-processor/services/state-machine-validator.service.d.ts +0 -10
- package/dist/workflow-processor/services/state-machine-validator.service.d.ts.map +0 -1
- package/dist/workflow-processor/services/state-machine-validator.service.js +0 -45
- package/dist/workflow-processor/services/state-machine-validator.service.js.map +0 -1
- package/dist/workflow-processor/services/tool-execution-interceptor.service.d.ts +0 -9
- package/dist/workflow-processor/services/tool-execution-interceptor.service.d.ts.map +0 -1
- package/dist/workflow-processor/services/tool-execution-interceptor.service.js +0 -52
- package/dist/workflow-processor/services/tool-execution-interceptor.service.js.map +0 -1
- package/dist/workflow-processor/utils/state/state-caretaker.d.ts +0 -11
- package/dist/workflow-processor/utils/state/state-caretaker.d.ts.map +0 -1
- package/dist/workflow-processor/utils/state/state-caretaker.js +0 -37
- package/dist/workflow-processor/utils/state/state-caretaker.js.map +0 -1
- package/dist/workflow-processor/utils/template-helper.d.ts +0 -3
- package/dist/workflow-processor/utils/template-helper.d.ts.map +0 -1
- package/dist/workflow-processor/utils/template-helper.js +0 -25
- package/dist/workflow-processor/utils/template-helper.js.map +0 -1
- package/dist/workflow-processor/validators/index.d.ts +0 -4
- package/dist/workflow-processor/validators/index.d.ts.map +0 -1
- package/dist/workflow-processor/validators/index.js +0 -20
- package/dist/workflow-processor/validators/index.js.map +0 -1
- package/dist/workflow-processor/validators/initial-run.validator.d.ts +0 -11
- package/dist/workflow-processor/validators/initial-run.validator.d.ts.map +0 -1
- package/dist/workflow-processor/validators/initial-run.validator.js +0 -28
- package/dist/workflow-processor/validators/initial-run.validator.js.map +0 -1
- package/dist/workflow-processor/validators/workflow-dependencies.validator.d.ts +0 -12
- package/dist/workflow-processor/validators/workflow-dependencies.validator.d.ts.map +0 -1
- package/dist/workflow-processor/validators/workflow-dependencies.validator.js +0 -39
- package/dist/workflow-processor/validators/workflow-dependencies.validator.js.map +0 -1
- package/dist/workflow-processor/validators/workflow-option.validator.d.ts +0 -11
- package/dist/workflow-processor/validators/workflow-option.validator.d.ts.map +0 -1
- package/dist/workflow-processor/validators/workflow-option.validator.js +0 -31
- package/dist/workflow-processor/validators/workflow-option.validator.js.map +0 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.wrapToolProxy = wrapToolProxy;
|
|
4
|
+
const constants_1 = require("@nestjs/common/constants");
|
|
5
|
+
const common_1 = require("@loopstack/common");
|
|
6
|
+
function wrapToolProxy(tool, toolName, executionScope, executeCall) {
|
|
7
|
+
const passThroughProps = new Set();
|
|
8
|
+
(0, common_1.getPassThroughProperties)(tool.constructor).forEach((name) => passThroughProps.add(name));
|
|
9
|
+
const nestedToolProps = new Set((0, common_1.getBlockTools)(tool.constructor));
|
|
10
|
+
nestedToolProps.forEach((name) => passThroughProps.add(name));
|
|
11
|
+
let proto = Object.getPrototypeOf(tool);
|
|
12
|
+
while (proto && proto !== Object.prototype) {
|
|
13
|
+
Object.getOwnPropertyNames(proto).forEach((name) => {
|
|
14
|
+
if (typeof proto[name] === 'function' && name !== 'call') {
|
|
15
|
+
passThroughProps.add(name);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
proto = Object.getPrototypeOf(proto);
|
|
19
|
+
}
|
|
20
|
+
const propertyDeps = Reflect.getMetadata(constants_1.PROPERTY_DEPS_METADATA, tool.constructor) ?? [];
|
|
21
|
+
propertyDeps.forEach((dep) => passThroughProps.add(dep.key));
|
|
22
|
+
const originalCall = tool.call;
|
|
23
|
+
return new Proxy(tool, {
|
|
24
|
+
get(target, prop, receiver) {
|
|
25
|
+
if (prop === 'call') {
|
|
26
|
+
return (args, options) => executeCall(target, originalCall, args, receiver, options);
|
|
27
|
+
}
|
|
28
|
+
if (passThroughProps.has(prop)) {
|
|
29
|
+
return Reflect.get(target, prop, receiver);
|
|
30
|
+
}
|
|
31
|
+
const ctx = executionScope.getOptional();
|
|
32
|
+
if (!ctx)
|
|
33
|
+
return Reflect.get(target, prop, receiver);
|
|
34
|
+
const tools = ctx.getManager().getData('tools');
|
|
35
|
+
const stateValue = tools?.[toolName]?.[prop];
|
|
36
|
+
if (stateValue === undefined) {
|
|
37
|
+
return Reflect.get(target, prop, receiver);
|
|
38
|
+
}
|
|
39
|
+
return stateValue;
|
|
40
|
+
},
|
|
41
|
+
set(_target, prop, value) {
|
|
42
|
+
if (passThroughProps.has(prop) || prop === 'call') {
|
|
43
|
+
throw new Error(`Cannot reassign property "${String(prop)}"`);
|
|
44
|
+
}
|
|
45
|
+
const ctx = executionScope.get();
|
|
46
|
+
const tools = ctx.getManager().getData('tools') ?? {};
|
|
47
|
+
if (!tools[toolName])
|
|
48
|
+
tools[toolName] = {};
|
|
49
|
+
tools[toolName][prop] = value;
|
|
50
|
+
ctx.getManager().setData('tools', tools);
|
|
51
|
+
return true;
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=wrap-tool-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap-tool-proxy.js","sourceRoot":"","sources":["../../../src/workflow-processor/utils/wrap-tool-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-processor.module.d.ts","sourceRoot":"","sources":["../../src/workflow-processor/workflow-processor.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflow-processor.module.d.ts","sourceRoot":"","sources":["../../src/workflow-processor/workflow-processor.module.ts"],"names":[],"mappings":"AAmCA,qBAuFa,uBAAuB;CAAG"}
|
|
@@ -13,24 +13,25 @@ const typeorm_1 = require("@nestjs/typeorm");
|
|
|
13
13
|
const common_2 = require("@loopstack/common");
|
|
14
14
|
const common_3 = require("../common");
|
|
15
15
|
const persistence_1 = require("../persistence");
|
|
16
|
+
const scheduler_1 = require("../scheduler");
|
|
16
17
|
const services_1 = require("./services");
|
|
17
|
-
const
|
|
18
|
-
const validators_1 = require("./validators");
|
|
18
|
+
const utils_1 = require("./utils");
|
|
19
19
|
let WorkflowProcessorModule = class WorkflowProcessorModule {
|
|
20
20
|
};
|
|
21
21
|
exports.WorkflowProcessorModule = WorkflowProcessorModule;
|
|
22
22
|
exports.WorkflowProcessorModule = WorkflowProcessorModule = __decorate([
|
|
23
|
+
(0, common_1.Global)(),
|
|
23
24
|
(0, common_1.Module)({
|
|
24
25
|
imports: [
|
|
25
26
|
typeorm_1.TypeOrmModule.forFeature([
|
|
26
|
-
common_2.PipelineEntity,
|
|
27
27
|
common_2.WorkflowEntity,
|
|
28
28
|
common_2.DocumentEntity,
|
|
29
29
|
common_2.WorkspaceEntity,
|
|
30
30
|
common_2.WorkspaceEnvironmentEntity,
|
|
31
|
-
common_2.
|
|
31
|
+
common_2.WorkflowCheckpointEntity,
|
|
32
32
|
]),
|
|
33
33
|
persistence_1.PersistenceModule,
|
|
34
|
+
(0, common_1.forwardRef)(() => scheduler_1.SchedulerModule),
|
|
34
35
|
core_1.DiscoveryModule,
|
|
35
36
|
common_3.CommonModule,
|
|
36
37
|
],
|
|
@@ -41,25 +42,64 @@ exports.WorkflowProcessorModule = WorkflowProcessorModule = __decorate([
|
|
|
41
42
|
services_1.WorkflowProcessorService,
|
|
42
43
|
services_1.BlockDiscoveryService,
|
|
43
44
|
services_1.WorkflowStateService,
|
|
44
|
-
services_1.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
services_1.
|
|
49
|
-
services_1.
|
|
50
|
-
services_1.
|
|
51
|
-
services_1.
|
|
52
|
-
services_1.
|
|
53
|
-
|
|
45
|
+
services_1.WorkflowMemoryMonitorService,
|
|
46
|
+
services_1.CreateWorkflowService,
|
|
47
|
+
utils_1.ExecutionScope,
|
|
48
|
+
services_1.ToolExecutionService,
|
|
49
|
+
services_1.DocumentPersistenceService,
|
|
50
|
+
services_1.DocumentRepositoryService,
|
|
51
|
+
services_1.WorkflowOrchestrationService,
|
|
52
|
+
services_1.TransitionResolverService,
|
|
53
|
+
services_1.ToolLoggingInterceptor,
|
|
54
|
+
{
|
|
55
|
+
provide: common_2.DOCUMENT_REPOSITORY,
|
|
56
|
+
useExisting: services_1.DocumentRepositoryService,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
provide: common_2.WORKFLOW_ORCHESTRATOR,
|
|
60
|
+
useExisting: services_1.WorkflowOrchestrationService,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
provide: common_2.TEMPLATE_RENDERER,
|
|
64
|
+
useFactory: () => new utils_1.TemplateRenderer().render,
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
provide: common_2.FRAMEWORK_CONTEXT,
|
|
68
|
+
useFactory: (scope) => ({
|
|
69
|
+
get context() {
|
|
70
|
+
return scope.get().getContext();
|
|
71
|
+
},
|
|
72
|
+
get runtime() {
|
|
73
|
+
return scope.get().getData();
|
|
74
|
+
},
|
|
75
|
+
get args() {
|
|
76
|
+
return scope.get().getArgs();
|
|
77
|
+
},
|
|
78
|
+
get parent() {
|
|
79
|
+
return scope.get().getInstance();
|
|
80
|
+
},
|
|
81
|
+
}),
|
|
82
|
+
inject: [utils_1.ExecutionScope],
|
|
83
|
+
},
|
|
54
84
|
],
|
|
55
85
|
exports: [
|
|
56
86
|
persistence_1.PersistenceModule,
|
|
57
87
|
services_1.RootProcessorService,
|
|
58
|
-
|
|
88
|
+
services_1.CreateWorkflowService,
|
|
59
89
|
services_1.BlockProcessor,
|
|
60
90
|
services_1.WorkflowProcessorService,
|
|
61
91
|
services_1.BlockDiscoveryService,
|
|
62
|
-
services_1.
|
|
92
|
+
services_1.WorkflowMemoryMonitorService,
|
|
93
|
+
utils_1.ExecutionScope,
|
|
94
|
+
services_1.ToolExecutionService,
|
|
95
|
+
services_1.DocumentPersistenceService,
|
|
96
|
+
services_1.DocumentRepositoryService,
|
|
97
|
+
services_1.WorkflowOrchestrationService,
|
|
98
|
+
services_1.TransitionResolverService,
|
|
99
|
+
common_2.DOCUMENT_REPOSITORY,
|
|
100
|
+
common_2.FRAMEWORK_CONTEXT,
|
|
101
|
+
common_2.WORKFLOW_ORCHESTRATOR,
|
|
102
|
+
common_2.TEMPLATE_RENDERER,
|
|
63
103
|
],
|
|
64
104
|
})
|
|
65
105
|
], WorkflowProcessorModule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-processor.module.js","sourceRoot":"","sources":["../../src/workflow-processor/workflow-processor.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"workflow-processor.module.js","sourceRoot":"","sources":["../../src/workflow-processor/workflow-processor.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4D;AAC5D,uCAA+C;AAC/C,6CAAgD;AAChD,8CAU2B;AAC3B,sCAAyC;AACzC,gDAAmD;AACnD,4CAA+C;AAC/C,yCAeoB;AACpB,mCAA2D;AAyFpD,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;CAAG,CAAA;AAA1B,0DAAuB;kCAAvB,uBAAuB;IAvFnC,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC;gBACvB,uBAAc;gBACd,uBAAc;gBACd,wBAAe;gBACf,mCAA0B;gBAC1B,iCAAwB;aACzB,CAAC;YACF,+BAAiB;YACjB,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,2BAAe,CAAC;YACjC,sBAAe;YACf,qBAAY;SACb;QACD,SAAS,EAAE;YACT,+BAAoB;YACpB,yBAAc;YACd,2BAAgB;YAChB,mCAAwB;YACxB,gCAAqB;YAErB,+BAAoB;YACpB,uCAA4B;YAC5B,gCAAqB;YACrB,sBAAc;YACd,+BAAoB;YACpB,qCAA0B;YAC1B,oCAAyB;YACzB,uCAA4B;YAC5B,oCAAyB;YAGzB,iCAAsB;YAGtB;gBACE,OAAO,EAAE,4BAAmB;gBAC5B,WAAW,EAAE,oCAAyB;aACvC;YACD;gBACE,OAAO,EAAE,8BAAqB;gBAC9B,WAAW,EAAE,uCAA4B;aAC1C;YACD;gBACE,OAAO,EAAE,0BAAiB;gBAC1B,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,wBAAgB,EAAE,CAAC,MAAM;aAChD;YACD;gBACE,OAAO,EAAE,0BAAiB;gBAC1B,UAAU,EAAE,CAAC,KAAqB,EAAE,EAAE,CAAC,CAAC;oBACtC,IAAI,OAAO;wBACT,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;oBAClC,CAAC;oBACD,IAAI,OAAO;wBACT,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;oBAC/B,CAAC;oBACD,IAAI,IAAI;wBACN,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;oBAC/B,CAAC;oBACD,IAAI,MAAM;wBACR,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;oBACnC,CAAC;iBACF,CAAC;gBACF,MAAM,EAAE,CAAC,sBAAc,CAAC;aACzB;SACF;QACD,OAAO,EAAE;YACP,+BAAiB;YACjB,+BAAoB;YACpB,gCAAqB;YACrB,yBAAc;YACd,mCAAwB;YACxB,gCAAqB;YACrB,uCAA4B;YAC5B,sBAAc;YACd,+BAAoB;YACpB,qCAA0B;YAC1B,oCAAyB;YACzB,uCAA4B;YAC5B,oCAAyB;YACzB,4BAAmB;YACnB,0BAAiB;YACjB,8BAAqB;YACrB,0BAAiB;SAClB;KACF,CAAC;GACW,uBAAuB,CAAG"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@loopstack/core",
|
|
3
3
|
"displayName": "Loopstack Core Module",
|
|
4
4
|
"description": "The core module of the loopstack automation framework",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.25.1",
|
|
6
6
|
"repository": "loopstack-ai/core",
|
|
7
7
|
"license": "BSL",
|
|
8
8
|
"author": {
|
|
@@ -24,20 +24,17 @@
|
|
|
24
24
|
"watch": "nest build --watch"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@loopstack/common": "^0.
|
|
27
|
+
"@loopstack/common": "^0.25.1",
|
|
28
28
|
"@nestjs/bullmq": "^11.0.4",
|
|
29
|
-
"@nestjs/config": "^4.0.
|
|
29
|
+
"@nestjs/config": "^4.0.4",
|
|
30
30
|
"@nestjs/event-emitter": "^3.0.1",
|
|
31
31
|
"@nestjs/schedule": "^6.1.1",
|
|
32
|
-
"
|
|
33
|
-
"bullmq": "^5.69.3",
|
|
32
|
+
"bullmq": "^5.73.5",
|
|
34
33
|
"class-transformer": "^0.5.1",
|
|
35
|
-
"class-validator": "^0.
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"lodash": "^4.17.23",
|
|
40
|
-
"yaml": "^2.8.2",
|
|
34
|
+
"class-validator": "^0.15.1",
|
|
35
|
+
"handlebars": "^4.7.9",
|
|
36
|
+
"lodash": "^4.18.1",
|
|
37
|
+
"yaml": "^2.8.3",
|
|
41
38
|
"zod": "^4.3.6"
|
|
42
39
|
},
|
|
43
40
|
"files": [
|
|
@@ -52,7 +49,12 @@
|
|
|
52
49
|
"rootDir": "src",
|
|
53
50
|
"testRegex": ".*\\.spec\\.ts$",
|
|
54
51
|
"transform": {
|
|
55
|
-
"^.+\\.ts$":
|
|
52
|
+
"^.+\\.ts$": [
|
|
53
|
+
"ts-jest",
|
|
54
|
+
{
|
|
55
|
+
"tsconfig": "tsconfig.spec.json"
|
|
56
|
+
}
|
|
57
|
+
]
|
|
56
58
|
},
|
|
57
59
|
"collectCoverageFrom": [
|
|
58
60
|
"**/*.(t|j)s"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jexl-expression.error.d.ts","sourceRoot":"","sources":["../../../src/common/errors/jexl-expression.error.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,IAAI,EAAE,MAAM;gBAD5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM;CAK/B"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JexlExpressionError = void 0;
|
|
4
|
-
class JexlExpressionError extends Error {
|
|
5
|
-
code;
|
|
6
|
-
constructor(message, code) {
|
|
7
|
-
super(message);
|
|
8
|
-
this.code = code;
|
|
9
|
-
this.name = 'JexlExpressionError';
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
exports.JexlExpressionError = JexlExpressionError;
|
|
13
|
-
//# sourceMappingURL=jexl-expression.error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jexl-expression.error.js","sourceRoot":"","sources":["../../../src/common/errors/jexl-expression.error.ts"],"names":[],"mappings":";;;AAAA,MAAa,mBAAoB,SAAQ,KAAK;IAG1B;IAFlB,YACE,OAAe,EACC,IAAY;QAE5B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAQ;QAG5B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AARD,kDAQC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object-expression.error.d.ts","sourceRoot":"","sources":["../../../src/common/errors/object-expression.error.ts"],"names":[],"mappings":"AAAA,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,IAAI,EAAE,MAAM;gBAD5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM;CAK/B"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObjectExpressionError = void 0;
|
|
4
|
-
class ObjectExpressionError extends Error {
|
|
5
|
-
code;
|
|
6
|
-
constructor(message, code) {
|
|
7
|
-
super(message);
|
|
8
|
-
this.code = code;
|
|
9
|
-
this.name = 'ObjectExpressionError';
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
exports.ObjectExpressionError = ObjectExpressionError;
|
|
13
|
-
//# sourceMappingURL=object-expression.error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object-expression.error.js","sourceRoot":"","sources":["../../../src/common/errors/object-expression.error.ts"],"names":[],"mappings":";;;AAAA,MAAa,qBAAsB,SAAQ,KAAK;IAG5B;IAFlB,YACE,OAAe,EACC,IAAY;QAE5B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAQ;QAG5B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AARD,sDAQC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-expression.error.d.ts","sourceRoot":"","sources":["../../../src/common/errors/template-expression.error.ts"],"names":[],"mappings":"AAAA,qBAAa,uBAAwB,SAAQ,KAAK;aAG9B,IAAI,EAAE,MAAM;gBAD5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM;CAK/B"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TemplateExpressionError = void 0;
|
|
4
|
-
class TemplateExpressionError extends Error {
|
|
5
|
-
code;
|
|
6
|
-
constructor(message, code) {
|
|
7
|
-
super(message);
|
|
8
|
-
this.code = code;
|
|
9
|
-
this.name = 'ObjectExpressionError';
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
exports.TemplateExpressionError = TemplateExpressionError;
|
|
13
|
-
//# sourceMappingURL=template-expression.error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-expression.error.js","sourceRoot":"","sources":["../../../src/common/errors/template-expression.error.ts"],"names":[],"mappings":";;;AAAA,MAAa,uBAAwB,SAAQ,KAAK;IAG9B;IAFlB,YACE,OAAe,EACC,IAAY;QAE5B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAQ;QAG5B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AARD,0DAQC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { TemplateDetector, TemplateProcessor } from '../template.service';
|
|
2
|
-
import { TemplateExOptions } from './template-expression.handler';
|
|
3
|
-
export declare class JexlExpressionHandler implements TemplateDetector, TemplateProcessor {
|
|
4
|
-
private readonly logger;
|
|
5
|
-
private readonly EXPRESSION_PATTERN;
|
|
6
|
-
private readonly MAX_EXPRESSION_LENGTH;
|
|
7
|
-
private readonly FORBIDDEN_PATTERNS;
|
|
8
|
-
private readonly defaultInstance;
|
|
9
|
-
canHandle(value: unknown): boolean;
|
|
10
|
-
process(content: string, data: Record<string, unknown>, options?: TemplateExOptions): unknown;
|
|
11
|
-
private createInstance;
|
|
12
|
-
private extractExpression;
|
|
13
|
-
private validateExpression;
|
|
14
|
-
private evaluateExpression;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=jexl-expression.handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jexl-expression.handler.d.ts","sourceRoot":"","sources":["../../../../src/common/services/expression-handler/jexl-expression.handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAOlE,qBACa,qBAAsB,YAAW,gBAAgB,EAAE,iBAAiB;IAC/E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IAEjE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuB;IAC1D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAQ;IAG9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyE;IAE5G,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiC;IAEjE,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIlC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO;IAkB7F,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,kBAAkB;CAQ3B"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var JexlExpressionHandler_1;
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.JexlExpressionHandler = void 0;
|
|
11
|
-
const common_1 = require("@nestjs/common");
|
|
12
|
-
const jexl_expression_error_1 = require("../../errors/jexl-expression.error");
|
|
13
|
-
const jexl = require("jexl");
|
|
14
|
-
let JexlExpressionHandler = JexlExpressionHandler_1 = class JexlExpressionHandler {
|
|
15
|
-
logger = new common_1.Logger(JexlExpressionHandler_1.name);
|
|
16
|
-
EXPRESSION_PATTERN = /^\$\{\{(.+)\}\}$/s;
|
|
17
|
-
MAX_EXPRESSION_LENGTH = 2000;
|
|
18
|
-
FORBIDDEN_PATTERNS = [/__proto__/, /constructor\s*\(/, /prototype\s*\./, /prototype\s*\[/];
|
|
19
|
-
defaultInstance = new jexl.Jexl();
|
|
20
|
-
canHandle(value) {
|
|
21
|
-
return typeof value === 'string' && this.EXPRESSION_PATTERN.test(value.trim());
|
|
22
|
-
}
|
|
23
|
-
process(content, data, options) {
|
|
24
|
-
try {
|
|
25
|
-
const expression = this.extractExpression(content);
|
|
26
|
-
this.validateExpression(expression);
|
|
27
|
-
const instance = this.createInstance(options);
|
|
28
|
-
return this.evaluateExpression(instance, expression, data);
|
|
29
|
-
}
|
|
30
|
-
catch (error) {
|
|
31
|
-
if (error instanceof jexl_expression_error_1.JexlExpressionError) {
|
|
32
|
-
throw error;
|
|
33
|
-
}
|
|
34
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
35
|
-
this.logger.error(`JEXL expression processing failed: ${message}`);
|
|
36
|
-
throw new jexl_expression_error_1.JexlExpressionError('JEXL expression evaluation failed', 'EVALUATION_ERROR');
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
createInstance(options) {
|
|
40
|
-
if (!options?.helpers?.length) {
|
|
41
|
-
return this.defaultInstance;
|
|
42
|
-
}
|
|
43
|
-
const instance = new jexl.Jexl();
|
|
44
|
-
for (const helper of options.helpers) {
|
|
45
|
-
instance.addFunction(helper.name, helper.fn);
|
|
46
|
-
}
|
|
47
|
-
return instance;
|
|
48
|
-
}
|
|
49
|
-
extractExpression(content) {
|
|
50
|
-
const match = content.trim().match(this.EXPRESSION_PATTERN);
|
|
51
|
-
if (!match?.[1]?.trim()) {
|
|
52
|
-
throw new jexl_expression_error_1.JexlExpressionError('Invalid expression format', 'INVALID_FORMAT');
|
|
53
|
-
}
|
|
54
|
-
return match[1].trim();
|
|
55
|
-
}
|
|
56
|
-
validateExpression(expression) {
|
|
57
|
-
if (expression.length > this.MAX_EXPRESSION_LENGTH) {
|
|
58
|
-
throw new jexl_expression_error_1.JexlExpressionError(`Expression too long (max: ${this.MAX_EXPRESSION_LENGTH} characters)`, 'EXPRESSION_TOO_LONG');
|
|
59
|
-
}
|
|
60
|
-
for (const pattern of this.FORBIDDEN_PATTERNS) {
|
|
61
|
-
if (pattern.test(expression)) {
|
|
62
|
-
throw new jexl_expression_error_1.JexlExpressionError('Expression contains forbidden property access', 'FORBIDDEN_PROPERTY');
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
evaluateExpression(instance, expression, data) {
|
|
67
|
-
try {
|
|
68
|
-
return instance.evalSync(expression, data);
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
72
|
-
throw new jexl_expression_error_1.JexlExpressionError(`Failed to evaluate expression: ${message}`, 'EVALUATION_FAILED');
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
exports.JexlExpressionHandler = JexlExpressionHandler;
|
|
77
|
-
exports.JexlExpressionHandler = JexlExpressionHandler = JexlExpressionHandler_1 = __decorate([
|
|
78
|
-
(0, common_1.Injectable)()
|
|
79
|
-
], JexlExpressionHandler);
|
|
80
|
-
//# sourceMappingURL=jexl-expression.handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jexl-expression.handler.js","sourceRoot":"","sources":["../../../../src/common/services/expression-handler/jexl-expression.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { TemplateDetector, TemplateProcessor } from '../template.service';
|
|
2
|
-
export declare class ObjectExpressionHandler implements TemplateDetector, TemplateProcessor {
|
|
3
|
-
private readonly logger;
|
|
4
|
-
private readonly EXPRESSION_PATTERN;
|
|
5
|
-
private readonly MAX_EXPRESSION_LENGTH;
|
|
6
|
-
private readonly MAX_DEPTH;
|
|
7
|
-
private readonly FORBIDDEN_PROPERTIES;
|
|
8
|
-
canHandle(value: unknown): boolean;
|
|
9
|
-
process(content: string, data: Record<string, unknown>): unknown;
|
|
10
|
-
private extractExpression;
|
|
11
|
-
private validateExpression;
|
|
12
|
-
private evaluateExpression;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=object-expression.handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object-expression.handler.d.ts","sourceRoot":"","sources":["../../../../src/common/services/expression-handler/object-expression.handler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,qBACa,uBAAwB,YAAW,gBAAgB,EAAE,iBAAiB;IACjF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IAEnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAkB;IACrD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAQ;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAM;IAGhC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsD;IAE3F,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIlC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAgBhE,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,kBAAkB;CAc3B"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var ObjectExpressionHandler_1;
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.ObjectExpressionHandler = void 0;
|
|
11
|
-
const common_1 = require("@nestjs/common");
|
|
12
|
-
const lodash_1 = require("lodash");
|
|
13
|
-
const object_expression_error_1 = require("../../errors/object-expression.error");
|
|
14
|
-
let ObjectExpressionHandler = ObjectExpressionHandler_1 = class ObjectExpressionHandler {
|
|
15
|
-
logger = new common_1.Logger(ObjectExpressionHandler_1.name);
|
|
16
|
-
EXPRESSION_PATTERN = /^\$\{(.+)\}$/;
|
|
17
|
-
MAX_EXPRESSION_LENGTH = 1000;
|
|
18
|
-
MAX_DEPTH = 10;
|
|
19
|
-
FORBIDDEN_PROPERTIES = new Set(['__proto__', 'constructor', 'prototype']);
|
|
20
|
-
canHandle(value) {
|
|
21
|
-
return typeof value === 'string' && this.EXPRESSION_PATTERN.test(value.trim());
|
|
22
|
-
}
|
|
23
|
-
process(content, data) {
|
|
24
|
-
try {
|
|
25
|
-
const expression = this.extractExpression(content);
|
|
26
|
-
this.validateExpression(expression);
|
|
27
|
-
return this.evaluateExpression(expression, data);
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
if (error instanceof object_expression_error_1.ObjectExpressionError) {
|
|
31
|
-
throw error;
|
|
32
|
-
}
|
|
33
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
34
|
-
this.logger.error(`Expression processing failed: ${message}`);
|
|
35
|
-
throw new object_expression_error_1.ObjectExpressionError('Object expression evaluation failed', 'EVALUATION_ERROR');
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
extractExpression(content) {
|
|
39
|
-
const match = content.trim().match(this.EXPRESSION_PATTERN);
|
|
40
|
-
if (!match?.[1]?.trim()) {
|
|
41
|
-
throw new object_expression_error_1.ObjectExpressionError('Invalid expression format', 'INVALID_FORMAT');
|
|
42
|
-
}
|
|
43
|
-
return match[1].trim();
|
|
44
|
-
}
|
|
45
|
-
validateExpression(expression) {
|
|
46
|
-
if (expression.length > this.MAX_EXPRESSION_LENGTH) {
|
|
47
|
-
throw new object_expression_error_1.ObjectExpressionError(`Expression too long (max: ${this.MAX_EXPRESSION_LENGTH} characters)`, 'EXPRESSION_TOO_LONG');
|
|
48
|
-
}
|
|
49
|
-
const segments = expression.split('.').filter((s) => s.length > 0);
|
|
50
|
-
if (segments.length > this.MAX_DEPTH) {
|
|
51
|
-
throw new object_expression_error_1.ObjectExpressionError(`Expression depth too high (max: ${this.MAX_DEPTH} levels)`, 'DEPTH_EXCEEDED');
|
|
52
|
-
}
|
|
53
|
-
for (const segment of segments) {
|
|
54
|
-
const cleanSegment = segment.replace(/\[\d+\]$/, '');
|
|
55
|
-
if (this.FORBIDDEN_PROPERTIES.has(cleanSegment)) {
|
|
56
|
-
throw new object_expression_error_1.ObjectExpressionError('Expression contains forbidden property access', 'FORBIDDEN_PROPERTY');
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
evaluateExpression(expression, data) {
|
|
61
|
-
try {
|
|
62
|
-
const value = (0, lodash_1.get)(data, expression);
|
|
63
|
-
if (typeof value === 'function') {
|
|
64
|
-
return value();
|
|
65
|
-
}
|
|
66
|
-
return value;
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
throw new object_expression_error_1.ObjectExpressionError('Failed to evaluate expression', 'EVALUATION_FAILED');
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
exports.ObjectExpressionHandler = ObjectExpressionHandler;
|
|
74
|
-
exports.ObjectExpressionHandler = ObjectExpressionHandler = ObjectExpressionHandler_1 = __decorate([
|
|
75
|
-
(0, common_1.Injectable)()
|
|
76
|
-
], ObjectExpressionHandler);
|
|
77
|
-
//# sourceMappingURL=object-expression.handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object-expression.handler.js","sourceRoot":"","sources":["../../../../src/common/services/expression-handler/object-expression.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { CustomHelper, HandlebarsProcessor } from '../handlebars-processor.service';
|
|
3
|
-
import { TemplateDetector, TemplateProcessor } from '../template.service';
|
|
4
|
-
export interface TemplateExOptions {
|
|
5
|
-
cacheKey?: string;
|
|
6
|
-
schema?: z.ZodType;
|
|
7
|
-
helpers?: CustomHelper[];
|
|
8
|
-
}
|
|
9
|
-
export declare class TemplateExpressionHandler implements TemplateDetector, TemplateProcessor {
|
|
10
|
-
private readonly handlebarsProcessor;
|
|
11
|
-
private readonly logger;
|
|
12
|
-
private static readonly MAX_TEMPLATE_SIZE;
|
|
13
|
-
constructor(handlebarsProcessor: HandlebarsProcessor);
|
|
14
|
-
canHandle(value: unknown): boolean;
|
|
15
|
-
process(content: string, data: Record<string, unknown>, options: TemplateExOptions): unknown;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=template-expression.handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-expression.handler.d.ts","sourceRoot":"","sources":["../../../../src/common/services/expression-handler/template-expression.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO1E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,qBACa,yBAA0B,YAAW,gBAAgB,EAAE,iBAAiB;IAKvE,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJhD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IAErE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAErB,mBAAmB,EAAE,mBAAmB;IAErE,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIlC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO;CA4B7F"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var TemplateExpressionHandler_1;
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.TemplateExpressionHandler = void 0;
|
|
14
|
-
const common_1 = require("@nestjs/common");
|
|
15
|
-
const template_expression_error_1 = require("../../errors/template-expression.error");
|
|
16
|
-
const handlebars_processor_service_1 = require("../handlebars-processor.service");
|
|
17
|
-
let TemplateExpressionHandler = class TemplateExpressionHandler {
|
|
18
|
-
static { TemplateExpressionHandler_1 = this; }
|
|
19
|
-
handlebarsProcessor;
|
|
20
|
-
logger = new common_1.Logger(TemplateExpressionHandler_1.name);
|
|
21
|
-
static MAX_TEMPLATE_SIZE = 50000;
|
|
22
|
-
constructor(handlebarsProcessor) {
|
|
23
|
-
this.handlebarsProcessor = handlebarsProcessor;
|
|
24
|
-
}
|
|
25
|
-
canHandle(value) {
|
|
26
|
-
return typeof value === 'string' && value.includes('{{') && value.includes('}}') && !value.trim().startsWith('${{');
|
|
27
|
-
}
|
|
28
|
-
process(content, data, options) {
|
|
29
|
-
try {
|
|
30
|
-
const context = {
|
|
31
|
-
data,
|
|
32
|
-
depth: 0,
|
|
33
|
-
};
|
|
34
|
-
if (content.length > TemplateExpressionHandler_1.MAX_TEMPLATE_SIZE) {
|
|
35
|
-
throw new template_expression_error_1.TemplateExpressionError('Template too large', 'EVALUATION_ERROR');
|
|
36
|
-
}
|
|
37
|
-
return this.handlebarsProcessor.render(content, context.data, {
|
|
38
|
-
cacheKeyPrefix: options.cacheKey,
|
|
39
|
-
helpers: options.helpers,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
catch (error) {
|
|
43
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
44
|
-
this.logger.error(`Failed to process template expression: ${message}`, {
|
|
45
|
-
expression: content,
|
|
46
|
-
});
|
|
47
|
-
if (error instanceof template_expression_error_1.TemplateExpressionError) {
|
|
48
|
-
throw error;
|
|
49
|
-
}
|
|
50
|
-
throw new template_expression_error_1.TemplateExpressionError('Template expression evaluation failed', 'EVALUATION_ERROR');
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
exports.TemplateExpressionHandler = TemplateExpressionHandler;
|
|
55
|
-
exports.TemplateExpressionHandler = TemplateExpressionHandler = TemplateExpressionHandler_1 = __decorate([
|
|
56
|
-
(0, common_1.Injectable)(),
|
|
57
|
-
__metadata("design:paramtypes", [handlebars_processor_service_1.HandlebarsProcessor])
|
|
58
|
-
], TemplateExpressionHandler);
|
|
59
|
-
//# sourceMappingURL=template-expression.handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-expression.handler.js","sourceRoot":"","sources":["../../../../src/common/services/expression-handler/template-expression.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,sFAAiF;AACjF,kFAAoF;AAe7E,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;;IAKP;IAJZ,MAAM,GAAG,IAAI,eAAM,CAAC,2BAAyB,CAAC,IAAI,CAAC,CAAC;IAE7D,MAAM,CAAU,iBAAiB,GAAG,KAAK,CAAC;IAElD,YAA6B,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAAG,CAAC;IAEzE,SAAS,CAAC,KAAc;QACtB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACtH,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,IAA6B,EAAE,OAA0B;QAChF,IAAI,CAAC;YACH,MAAM,OAAO,GAAsB;gBACjC,IAAI;gBACJ,KAAK,EAAE,CAAC;aACT,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,GAAG,2BAAyB,CAAC,iBAAiB,EAAE,CAAC;gBACjE,MAAM,IAAI,mDAAuB,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;gBAC5D,cAAc,EAAE,OAAO,CAAC,QAAQ;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,OAAO,EAAE,EAAE;gBACrE,UAAU,EAAE,OAAO;aACpB,CAAC,CAAC;YAEH,IAAI,KAAK,YAAY,mDAAuB,EAAE,CAAC;gBAC7C,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,IAAI,mDAAuB,CAAC,uCAAuC,EAAE,kBAAkB,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;;AAtCU,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;qCAMuC,kDAAmB;GAL1D,yBAAyB,CAuCrC"}
|