@blokjs/runner 0.2.2 → 0.6.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/dist/Blok.js +32 -3
- package/dist/Blok.js.map +1 -1
- package/dist/Configuration.d.ts +59 -5
- package/dist/Configuration.js +366 -96
- package/dist/Configuration.js.map +1 -1
- package/dist/ForEachNode.d.ts +59 -0
- package/dist/ForEachNode.js +522 -0
- package/dist/ForEachNode.js.map +1 -0
- package/dist/LoopMaxIterationsError.d.ts +11 -0
- package/dist/LoopMaxIterationsError.js +18 -0
- package/dist/LoopMaxIterationsError.js.map +1 -0
- package/dist/LoopNode.d.ts +36 -0
- package/dist/LoopNode.js +182 -0
- package/dist/LoopNode.js.map +1 -0
- package/dist/PayloadTooLargeError.d.ts +19 -0
- package/dist/PayloadTooLargeError.js +29 -0
- package/dist/PayloadTooLargeError.js.map +1 -0
- package/dist/RunCancelledError.d.ts +17 -0
- package/dist/RunCancelledError.js +25 -0
- package/dist/RunCancelledError.js.map +1 -0
- package/dist/Runner.d.ts +11 -1
- package/dist/Runner.js +9 -2
- package/dist/Runner.js.map +1 -1
- package/dist/RunnerSteps.js +648 -44
- package/dist/RunnerSteps.js.map +1 -1
- package/dist/RuntimeAdapterNode.d.ts +2 -1
- package/dist/RuntimeAdapterNode.js +2 -2
- package/dist/RuntimeAdapterNode.js.map +1 -1
- package/dist/RuntimeRegistry.d.ts +23 -2
- package/dist/RuntimeRegistry.js +31 -2
- package/dist/RuntimeRegistry.js.map +1 -1
- package/dist/SubworkflowNode.d.ts +181 -0
- package/dist/SubworkflowNode.js +479 -0
- package/dist/SubworkflowNode.js.map +1 -0
- package/dist/SwitchNode.d.ts +37 -0
- package/dist/SwitchNode.js +153 -0
- package/dist/SwitchNode.js.map +1 -0
- package/dist/TriggerBase.d.ts +178 -0
- package/dist/TriggerBase.js +1032 -5
- package/dist/TriggerBase.js.map +1 -1
- package/dist/TryCatchNode.d.ts +32 -0
- package/dist/TryCatchNode.js +207 -0
- package/dist/TryCatchNode.js.map +1 -0
- package/dist/WaitDispatchRequest.d.ts +38 -0
- package/dist/WaitDispatchRequest.js +13 -0
- package/dist/WaitDispatchRequest.js.map +1 -0
- package/dist/WaitNode.d.ts +23 -0
- package/dist/WaitNode.js +26 -0
- package/dist/WaitNode.js.map +1 -0
- package/dist/adapters/grpc/GrpcCodec.js +2 -2
- package/dist/adapters/grpc/GrpcRuntimeAdapter.d.ts +6 -4
- package/dist/adapters/grpc/GrpcRuntimeAdapter.js +6 -4
- package/dist/adapters/grpc/GrpcRuntimeAdapter.js.map +1 -1
- package/dist/adapters/grpc/types.d.ts +7 -5
- package/dist/adapters/grpc/types.js.map +1 -1
- package/dist/adapters/transport.d.ts +12 -41
- package/dist/adapters/transport.js +21 -70
- package/dist/adapters/transport.js.map +1 -1
- package/dist/cache/NodeResultCache.js +7 -0
- package/dist/cache/NodeResultCache.js.map +1 -1
- package/dist/concurrency/ConcurrencyBackend.d.ts +61 -0
- package/dist/concurrency/ConcurrencyBackend.js +20 -0
- package/dist/concurrency/ConcurrencyBackend.js.map +1 -0
- package/dist/concurrency/ConcurrencyLimitError.d.ts +37 -0
- package/dist/concurrency/ConcurrencyLimitError.js +16 -0
- package/dist/concurrency/ConcurrencyLimitError.js.map +1 -0
- package/dist/concurrency/NatsKvConcurrencyBackend.d.ts +64 -0
- package/dist/concurrency/NatsKvConcurrencyBackend.js +310 -0
- package/dist/concurrency/NatsKvConcurrencyBackend.js.map +1 -0
- package/dist/concurrency/QueueExpiredError.d.ts +40 -0
- package/dist/concurrency/QueueExpiredError.js +15 -0
- package/dist/concurrency/QueueExpiredError.js.map +1 -0
- package/dist/concurrency/RedisConcurrencyBackend.d.ts +64 -0
- package/dist/concurrency/RedisConcurrencyBackend.js +374 -0
- package/dist/concurrency/RedisConcurrencyBackend.js.map +1 -0
- package/dist/concurrency/createConcurrencyBackend.d.ts +24 -0
- package/dist/concurrency/createConcurrencyBackend.js +38 -0
- package/dist/concurrency/createConcurrencyBackend.js.map +1 -0
- package/dist/concurrency/readConcurrencyConfig.d.ts +60 -0
- package/dist/concurrency/readConcurrencyConfig.js +60 -0
- package/dist/concurrency/readConcurrencyConfig.js.map +1 -0
- package/dist/defineNode.d.ts +8 -0
- package/dist/defineNode.js +25 -5
- package/dist/defineNode.js.map +1 -1
- package/dist/graphql/GraphQLSchemaGenerator.js +1 -1
- package/dist/graphql/GraphQLSchemaGenerator.js.map +1 -1
- package/dist/idempotency/resolveIdempotencyKey.d.ts +20 -0
- package/dist/idempotency/resolveIdempotencyKey.js +37 -0
- package/dist/idempotency/resolveIdempotencyKey.js.map +1 -0
- package/dist/index.d.ts +30 -6
- package/dist/index.js +55 -6
- package/dist/index.js.map +1 -1
- package/dist/marketplace/RuntimeCatalog.d.ts +6 -0
- package/dist/marketplace/RuntimeCatalog.js.map +1 -1
- package/dist/marketplace/RuntimeDiscovery.d.ts +2 -2
- package/dist/marketplace/RuntimeDiscovery.js +18 -6
- package/dist/marketplace/RuntimeDiscovery.js.map +1 -1
- package/dist/monitoring/ConcurrencyMetrics.d.ts +82 -0
- package/dist/monitoring/ConcurrencyMetrics.js +139 -0
- package/dist/monitoring/ConcurrencyMetrics.js.map +1 -0
- package/dist/monitoring/ForEachWaitMetrics.d.ts +22 -0
- package/dist/monitoring/ForEachWaitMetrics.js +36 -0
- package/dist/monitoring/ForEachWaitMetrics.js.map +1 -0
- package/dist/monitoring/JanitorMetrics.d.ts +27 -0
- package/dist/monitoring/JanitorMetrics.js +48 -0
- package/dist/monitoring/JanitorMetrics.js.map +1 -0
- package/dist/openapi/OpenAPIGenerator.js +7 -2
- package/dist/openapi/OpenAPIGenerator.js.map +1 -1
- package/dist/runtime/PrimitiveStack.d.ts +64 -0
- package/dist/runtime/PrimitiveStack.js +92 -0
- package/dist/runtime/PrimitiveStack.js.map +1 -0
- package/dist/scheduling/DebounceBackend.d.ts +108 -0
- package/dist/scheduling/DebounceBackend.js +23 -0
- package/dist/scheduling/DebounceBackend.js.map +1 -0
- package/dist/scheduling/DebounceCoordinator.d.ts +141 -0
- package/dist/scheduling/DebounceCoordinator.js +362 -0
- package/dist/scheduling/DebounceCoordinator.js.map +1 -0
- package/dist/scheduling/DeferredDispatchSignal.d.ts +50 -0
- package/dist/scheduling/DeferredDispatchSignal.js +14 -0
- package/dist/scheduling/DeferredDispatchSignal.js.map +1 -0
- package/dist/scheduling/DeferredRunScheduler.d.ts +96 -0
- package/dist/scheduling/DeferredRunScheduler.js +256 -0
- package/dist/scheduling/DeferredRunScheduler.js.map +1 -0
- package/dist/scheduling/NatsKvDebounceBackend.d.ts +53 -0
- package/dist/scheduling/NatsKvDebounceBackend.js +334 -0
- package/dist/scheduling/NatsKvDebounceBackend.js.map +1 -0
- package/dist/scheduling/RedisDebounceBackend.d.ts +49 -0
- package/dist/scheduling/RedisDebounceBackend.js +356 -0
- package/dist/scheduling/RedisDebounceBackend.js.map +1 -0
- package/dist/scheduling/createDebounceBackend.d.ts +25 -0
- package/dist/scheduling/createDebounceBackend.js +39 -0
- package/dist/scheduling/createDebounceBackend.js.map +1 -0
- package/dist/scheduling/readSchedulingConfig.d.ts +24 -0
- package/dist/scheduling/readSchedulingConfig.js +52 -0
- package/dist/scheduling/readSchedulingConfig.js.map +1 -0
- package/dist/security/AuditLogger.js +1 -1
- package/dist/security/AuditLogger.js.map +1 -1
- package/dist/security/AuthMiddleware.d.ts +19 -20
- package/dist/security/AuthMiddleware.js +35 -20
- package/dist/security/AuthMiddleware.js.map +1 -1
- package/dist/security/OAuthProvider.js +2 -2
- package/dist/security/OAuthProvider.js.map +1 -1
- package/dist/security/SecretManager.js +14 -13
- package/dist/security/SecretManager.js.map +1 -1
- package/dist/security/index.d.ts +3 -1
- package/dist/security/index.js +3 -1
- package/dist/security/index.js.map +1 -1
- package/dist/testing/TestHarness.d.ts +27 -12
- package/dist/testing/TestHarness.js +19 -3
- package/dist/testing/TestHarness.js.map +1 -1
- package/dist/testing/WorkflowTestRunner.js +0 -7
- package/dist/testing/WorkflowTestRunner.js.map +1 -1
- package/dist/timeouts/StepTimeoutError.d.ts +22 -0
- package/dist/timeouts/StepTimeoutError.js +31 -0
- package/dist/timeouts/StepTimeoutError.js.map +1 -0
- package/dist/tracing/InMemoryRunStore.d.ts +41 -1
- package/dist/tracing/InMemoryRunStore.js +239 -0
- package/dist/tracing/InMemoryRunStore.js.map +1 -1
- package/dist/tracing/Janitor.d.ts +70 -0
- package/dist/tracing/Janitor.js +150 -0
- package/dist/tracing/Janitor.js.map +1 -0
- package/dist/tracing/PostgresRunStore.d.ts +57 -1
- package/dist/tracing/PostgresRunStore.js +711 -6
- package/dist/tracing/PostgresRunStore.js.map +1 -1
- package/dist/tracing/RoutingDiagnostics.d.ts +55 -0
- package/dist/tracing/RoutingDiagnostics.js +50 -0
- package/dist/tracing/RoutingDiagnostics.js.map +1 -0
- package/dist/tracing/RunStore.d.ts +181 -1
- package/dist/tracing/RunTracker.d.ts +244 -9
- package/dist/tracing/RunTracker.js +594 -1
- package/dist/tracing/RunTracker.js.map +1 -1
- package/dist/tracing/SqliteRunStore.d.ts +79 -2
- package/dist/tracing/SqliteRunStore.js +775 -16
- package/dist/tracing/SqliteRunStore.js.map +1 -1
- package/dist/tracing/TraceRouter.d.ts +20 -2
- package/dist/tracing/TraceRouter.js +612 -6
- package/dist/tracing/TraceRouter.js.map +1 -1
- package/dist/tracing/createStore.js +14 -3
- package/dist/tracing/createStore.js.map +1 -1
- package/dist/tracing/metadataFilter.d.ts +63 -0
- package/dist/tracing/metadataFilter.js +224 -0
- package/dist/tracing/metadataFilter.js.map +1 -0
- package/dist/tracing/sanitize.d.ts +11 -0
- package/dist/tracing/sanitize.js +29 -0
- package/dist/tracing/sanitize.js.map +1 -1
- package/dist/tracing/types.d.ts +672 -2
- package/dist/utils/createChildContext.d.ts +32 -0
- package/dist/utils/createChildContext.js +113 -0
- package/dist/utils/createChildContext.js.map +1 -0
- package/dist/utils/envAllowlist.d.ts +35 -0
- package/dist/utils/envAllowlist.js +113 -0
- package/dist/utils/envAllowlist.js.map +1 -0
- package/dist/version/RuntimeVersionValidator.d.ts +38 -0
- package/dist/version/RuntimeVersionValidator.js +121 -0
- package/dist/version/RuntimeVersionValidator.js.map +1 -0
- package/dist/visualization/WorkflowVisualizer.js +4 -4
- package/dist/visualization/WorkflowVisualizer.js.map +1 -1
- package/dist/workflow/PersistenceHelper.d.ts +18 -10
- package/dist/workflow/PersistenceHelper.js +35 -9
- package/dist/workflow/PersistenceHelper.js.map +1 -1
- package/dist/workflow/WorkflowNormalizer.d.ts +48 -42
- package/dist/workflow/WorkflowNormalizer.js +650 -18
- package/dist/workflow/WorkflowNormalizer.js.map +1 -1
- package/dist/workflow/WorkflowRegistry.d.ts +186 -0
- package/dist/workflow/WorkflowRegistry.js +202 -0
- package/dist/workflow/WorkflowRegistry.js.map +1 -0
- package/dist/workflow/sampleBody.d.ts +54 -0
- package/dist/workflow/sampleBody.js +320 -0
- package/dist/workflow/sampleBody.js.map +1 -0
- package/package.json +3 -8
- package/dist/adapters/HttpRuntimeAdapter.d.ts +0 -79
- package/dist/adapters/HttpRuntimeAdapter.js +0 -233
- package/dist/adapters/HttpRuntimeAdapter.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowNormalizer.js","sourceRoot":"","sources":["../../src/workflow/WorkflowNormalizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkflowNormalizer.js","sourceRoot":"","sources":["../../src/workflow/WorkflowNormalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAE3C,IAAI,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;AAuF7C;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY,EAAE,UAAmB;IAClE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,sDAAsD,OAAO,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,wFAAwF;IACxF,+EAA+E;IAC/E,kDAAkD;IAClD,IAAI,EAAE,GAAG,GAA8B,CAAC;IACxC,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,IAAI,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,EAAE,GAAG,EAAE,CAAC,OAAkC,CAAC;IAC5C,CAAC;SAAM,IAAI,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzF,sCAAsC;QACtC,EAAE,GAAG,EAAE,CAAC,OAAkC,CAAC;IAC5C,CAAC;IAED,uEAAuE;IACvE,uEAAuE;IACvE,oEAAoE;IACpE,8DAA8D;IAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,cAAc,CAAC,EAAE,CAAC,KAAkB,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACtE,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,8BAA8B;IAC9B,oEAAoE;IACpE,wEAAwE;IACxE,qEAAqE;IACrE,oDAAoD;IACpD,oEAAoE;IACpE,wCAAwC;IACxC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAE,IAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,IAAI,iBAAgD,CAAC;IACrD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,GAAI,EAAE,CAAC,UAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5G,iBAAiB,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;IACD,IAAI,UAAU,KAAK,IAAI,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACd,wCAAwC,IAAI,wHAAwH,MAAM,EAAE,CAC5K,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEzD,8BAA8B;IAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,KAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;IAExF,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,MAAM,aAAa,GAAuC,EAAE,CAAC;IAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAAE,SAAS;QACtC,MAAM,IAAI,GAAG,OAAkC,CAAC;QAEhD,oDAAoD;QACpD,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9E,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;YAC9C,qEAAqE;YACrE,kEAAkE;YAClE,gEAAgE;YAChE,uDAAuD;YACvD,iEAAiE;YACjE,yDAAyD;YACzD,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACzC,SAAS;QACV,CAAC;QAED,kEAAkE;QAClE,qEAAqE;QACrE,+DAA+D;QAC/D,gCAAgC;QAChC,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACvE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,UAAU;gBAAE,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;YAC9D,SAAS;QACV,CAAC;QAED,mDAAmD;QACnD,0EAA0E;QAC1E,IACC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YACxB,CAAE,IAAI,CAAC,IAA0B,CAAC,GAAG,KAAK,SAAS,IAAK,IAAI,CAAC,IAA4B,CAAC,KAAK,KAAK,SAAS,CAAC,EAC7G,CAAC;YACF,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAChD,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,SAAS;QACV,CAAC;QAED,6EAA6E;QAC7E,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/E,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACzC,SAAS;QACV,CAAC;QAED,iEAAiE;QACjE,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5E,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACzC,SAAS;QACV,CAAC;QAED,sEAAsE;QACtE,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9E,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACzC,SAAS;QACV,CAAC;QAED,6DAA6D;QAC7D,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAChF,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACzC,SAAS;QACV,CAAC;QAED,mEAAmE;QACnE,4DAA4D;QAC5D,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC/E,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,IAAI,UAAU;YAAE,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;IAC/D,CAAC;IAED,mEAAmE;IACnE,iEAAiE;IACjE,6BAA6B;IAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,SAAS;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,aAAa,CAAC,GAAG,CAAC,GAAG,KAA2B,CAAC;QAClD,CAAC;IACF,CAAC;IAED,OAAO;QACN,IAAI;QACJ,OAAO;QACP,WAAW;QACX,OAAO;QACP,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,aAAa;QACpB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,SAAS,oBAAoB,CAC5B,IAA6B,EAC7B,UAAmC,EACnC,KAAa;IAEb,sDAAsD;IACtD,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,4CAA4C,KAAK,6CAA6C,CAAC,CAAC;IACjH,CAAC;IAED,6DAA6D;IAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,EAAE,+CAA+C,CAAC,CAAC;IACxG,CAAC;IAED,qEAAqE;IACrE,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,YAAY,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IAEpD,4EAA4E;IAC5E,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,MAAkC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,UAAU,CAAC,EAAE,CAAwB,CAAC,CAAC,CAAC,IAAI,CAAC;IACnG,MAAM,QAAQ,GAAG,YAAY,EAAE,MAAM,IAAI,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzG,MAAM,MAAM,GAAG,YAAY,IAAI,QAAQ,CAAC;IAExC,qEAAqE;IACrE,+CAA+C;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAEpC,yEAAyE;IACzE,qEAAqE;IACrE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACd,oCAAoC,EAAE,kEAAkE,CACxG,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAiB;QAClC,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,OAAO;QACb,IAAI;QACJ,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;QACxB,EAAE;QACF,MAAM;QACN,SAAS;KACT,CAAC;IACF,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACvF,sEAAsE;IACtE,wEAAwE;IACxE,oEAAoE;IACpE,qBAAqB;IACrB,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/E,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC3F,YAAY,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IACzD,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAgC,CAAC;QAChD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1E,MAAM,KAAK,GAAgB,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1D,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ;gBAAE,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;YAClF,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ;gBAAE,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;YAClF,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;gBAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YAC1D,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5B,CAAC;IACF,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAClF,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC7C,CAAC;IAED,wDAAwD;IACxD,IAAI,UAAU,GAA8B,IAAI,CAAC;IACjD,IAAI,MAAM,EAAE,CAAC;QACZ,UAAU,GAAG,EAAE,MAAM,EAAE,CAAC;QACxB,mEAAmE;QACnE,qDAAqD;QACrD,IAAI,YAAY,EAAE,CAAC;YAClB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,KAAK,QAAQ;oBAAE,SAAS;gBAC7B,UAAU,CAAC,CAAC,CAAC,GAAI,YAAwC,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;QACF,CAAC;IACF,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACzB,UAAU,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,mBAAmB,CAC3B,IAA6B,EAC7B,KAAa;IAEb,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,mDAAmD,KAAK,qBAAqB,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAiC,CAAC;IACtD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,qDAAqD,CAAC,CAAC;IACrH,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,IAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,IAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/E,8DAA8D;IAC9D,wEAAwE;IACxE,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,MAAM,UAAU,GAAuC,EAAE,CAAC;IAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAAE,SAAS;QAChC,IAAI,aAAa,CAAE,CAA6B,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,EACL,YAAY,EAAE,UAAU,EACxB,UAAU,EAAE,YAAY,EACxB,UAAU,EAAE,WAAW,GACvB,GAAG,mBAAmB,CAAC,CAA4B,EAAE,CAAC,CAAC,CAAC;YACzD,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACvC,SAAS;QACV,CAAC;QACD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,CAA4B,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5G,wEAAwE;QACxE,8DAA8D;QAC9D,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;YACvB,WAAuC,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACrE,CAAC;QACD,kEAAkE;QAClE,mEAAmE;QACnE,oCAAoC;QACpC,IAAI,UAAU;YAAE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC1D,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAAE,SAAS;QAChC,IAAI,aAAa,CAAE,CAA6B,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,EACL,YAAY,EAAE,UAAU,EACxB,UAAU,EAAE,YAAY,EACxB,UAAU,EAAE,WAAW,GACvB,GAAG,mBAAmB,CAAC,CAA4B,EAAE,CAAC,CAAC,CAAC;YACzD,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACvC,SAAS;QACV,CAAC;QACD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,CAA4B,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5G,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;YACvB,WAAuC,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACrE,CAAC;QACD,IAAI,UAAU;YAAE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC1D,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,UAAU,GAAwB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IAC/F,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,YAAY,GAAiB;QAClC,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;QACxB,IAAI,EAAE,IAAI;KACV,CAAC;IACF,MAAM,UAAU,GAAuB,EAAE,UAAU,EAAE,CAAC;IAEtD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEnD;;;;;;;;;GASG;AACH,SAAS,wBAAwB,CAChC,IAA6B,EAC7B,KAAa;IAEb,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,yDAAyD,KAAK,qBAAqB,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACd,iDAAiD,EAAE,yDAAyD,CAC5G,CAAC;IACH,CAAC;IACD,uEAAuE;IACvE,qEAAqE;IACrE,4DAA4D;IAC5D,4BAA4B;IAE5B,kEAAkE;IAClE,qEAAqE;IACrE,8DAA8D;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACd,iDAAiD,EAAE,kEAAkE,CACrH,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAiB;QAClC,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;QACxB,EAAE;QACF,MAAM;QACN,SAAS;QACT,WAAW;QACX,gEAAgE;QAChE,gDAAgD;QAChD,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;KACzD,CAAC;IAEF,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/E,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC3F,YAAY,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IACzD,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAgC,CAAC;QAChD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1E,MAAM,KAAK,GAAgB,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1D,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ;gBAAE,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;YAClF,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ;gBAAE,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;YAClF,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;gBAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YAC1D,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5B,CAAC;IACF,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAClF,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC7C,CAAC;IACD,uEAAuE;IACvE,qEAAqE;IACrE,oEAAoE;IACpE,8DAA8D;IAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAI,IAAI,CAAC,SAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC;QAClC,CAAC;IACF,CAAC;IACD,+DAA+D;IAC/D,mEAAmE;IACnE,mEAAmE;IACnE,yCAAyC;IACzC,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACrE,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,6DAA6D;IAC7D,+DAA+D;IAC/D,2BAA2B;IAC3B,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,MAAkC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,MAAM,UAAU,GAA8B,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7F,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB,CAAC,IAA6B,EAAE,KAAa;IACtE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,iDAAiD,KAAK,qBAAqB,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAA0C,CAAC;IAChE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;IAC7C,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACd,yCAAyC,EAAE,2DAA2D,CACtG,CAAC;IACH,CAAC;IAED,IAAI,SAA6B,CAAC;IAClC,IAAI,SAAsC,CAAC;IAE3C,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC7B,SAAS,GAAG,GAAG,CAAC;QACjB,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACpC,+DAA+D;YAC/D,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACd,yCAAyC,EAAE,oEAAoE,CAC/G,CAAC;QACH,CAAC;IACF,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CACd,yCAAyC,EAAE,6DAA6D,CACxG,CAAC;QACH,CAAC;QACD,SAAS,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/B,OAAO;QACN,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI;QAC/D,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;QACxB,EAAE;QACF,SAAS;QACT,SAAS;QACT,SAAS;KACT,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAC5C,MAAM,aAAa,GAAG,cAAc,CAAC;AACrC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAE9C;;;;;GAKG;AACH,SAAS,oBAAoB,CAC5B,IAA6B,EAC7B,KAAa;IAEb,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,KAAK,qBAAqB,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAkC,CAAC;IACnD,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC;IACtB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,EAAE,sBAAsB,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,4CAA4C,EAAE,oDAAoD,CAAC,CAAC;IACrH,CAAC;IACD,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;IAChE,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC,WAAW,KAAK,QAAQ,IAAI,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACnG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,EAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,mEAAmE;IACnE,sEAAsE;IACtE,kEAAkE;IAClE,gEAAgE;IAChE,oEAAoE;IACpE,0EAA0E;IAC1E,kEAAkE;IAClE,iEAAiE;IACjE,gDAAgD;IAChD,IAAI,IAAI,KAAK,UAAU,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,uBAAuB,GAAG,OAAO;aACrC,MAAM,CAAC,CAAC,CAAC,EAAgC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC;aAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC;QAC9C,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CACX,+BAA+B,EAAE,6PAA6P,QAAQ,0KAA0K,CAChd,CAAC;QACH,CAAC;IACF,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAElE,MAAM,YAAY,GAAiB;QAClC,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;KACxB,CAAC;IACF,0DAA0D;IAC1D,gEAAgE;IAChE,MAAM,UAAU,GAAuB;QACtC,EAAE,EAAE,OAAO;QACX,EAAE;QACF,IAAI;QACJ,WAAW;QACX,KAAK,EAAE,aAAa;KACE,CAAC;IAExB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,IAA6B;IAChD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,OAAkB;IAC7C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACzB,IAA6B,EAC7B,KAAa;IAEb,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,iDAAiD,KAAK,qBAAqB,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,IAA+B,CAAC;IAChD,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,yCAAyC,EAAE,mDAAmD,CAAC,CAAC;IACjH,CAAC;IACD,MAAM,aAAa,GAAG,OAAO,EAAE,CAAC,aAAa,KAAK,QAAQ,IAAI,EAAE,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7G,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,EAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAElE,MAAM,YAAY,GAAiB;QAClC,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;KACxB,CAAC;IACF,MAAM,UAAU,GAAuB;QACtC,KAAK,EAAE,SAAS;QAChB,aAAa;QACb,KAAK,EAAE,aAAa;KACE,CAAC;IAExB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,QAAmB;IAI9C,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,MAAM,UAAU,GAAuC,EAAE,CAAC;IAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAAE,SAAS;QAChC,IAAI,aAAa,CAAE,CAA6B,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,EACL,YAAY,EAAE,UAAU,EACxB,UAAU,EAAE,YAAY,EACxB,UAAU,EAAE,WAAW,GACvB,GAAG,mBAAmB,CAAC,CAA4B,EAAE,CAAC,CAAC,CAAC;YACzD,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACvC,SAAS;QACV,CAAC;QACD,IAAI,aAAa,CAAE,CAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAA4B,EAAE,CAAC,CAAC,CAAC;YACtE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,SAAS;QACV,CAAC;QACD,IAAI,aAAa,CAAE,CAA6B,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,MAAM,EACL,YAAY,EAAE,UAAU,EACxB,UAAU,EAAE,YAAY,EACxB,UAAU,EAAE,WAAW,GACvB,GAAG,oBAAoB,CAAC,CAA4B,EAAE,CAAC,CAAC,CAAC;YAC1D,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACvC,SAAS;QACV,CAAC;QACD,IAAI,aAAa,CAAE,CAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,MAAM,EACL,YAAY,EAAE,UAAU,EACxB,UAAU,EAAE,YAAY,EACxB,UAAU,EAAE,WAAW,GACvB,GAAG,iBAAiB,CAAC,CAA4B,EAAE,CAAC,CAAC,CAAC;YACvD,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACvC,SAAS;QACV,CAAC;QACD,IAAI,aAAa,CAAE,CAA6B,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,EACL,YAAY,EAAE,UAAU,EACxB,UAAU,EAAE,YAAY,EACxB,UAAU,EAAE,WAAW,GACvB,GAAG,mBAAmB,CAAC,CAA4B,EAAE,CAAC,CAAC,CAAC;YACzD,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACvC,SAAS;QACV,CAAC;QACD,IAAI,aAAa,CAAE,CAA6B,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,MAAM,EACL,YAAY,EAAE,UAAU,EACxB,UAAU,EAAE,YAAY,EACxB,UAAU,EAAE,WAAW,GACvB,GAAG,qBAAqB,CAAC,CAA4B,EAAE,CAAC,CAAC,CAAC;YAC3D,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACvC,SAAS;QACV,CAAC;QACD,IAAI,OAAQ,CAA6B,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,wBAAwB,CACtF,CAA4B,EAC5B,CAAC,CACD,CAAC;YACF,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,YAAY;gBAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;YAC7D,SAAS;QACV,CAAC;QACD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,CAA4B,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5G,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;YACvB,WAAuC,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACrE,CAAC;QACD,IAAI,UAAU;YAAE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC1D,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAC3B,IAA6B,EAC7B,KAAa;IAEb,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,mDAAmD,KAAK,qBAAqB,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAiC,CAAC;IAClD,IAAI,EAAE,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,mDAAmD,CAAC,CAAC;IACnH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,KAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,yCAAyC,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,KAAK,GAAoD,EAAE,CAAC;IAClE,MAAM,UAAU,GAAuC,EAAE,CAAC;IAE1D,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAClG,CAAC;QACD,MAAM,IAAI,GAAG,CAA4B,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,EAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,YAAwC,CAAC;IAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,OAAoB,CAAC,CAAC;QAChG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACxC,YAAY,GAAG,aAAa,CAAC;IAC9B,CAAC;IAED,MAAM,YAAY,GAAiB;QAClC,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;KACxB,CAAC;IACF,MAAM,UAAU,GAAuB;QACtC,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,KAAK;QACL,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;IAExB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACjD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,qBAAqB,CAC7B,IAA6B,EAC7B,KAAa;IAEb,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,qDAAqD,KAAK,qBAAqB,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,QAAmC,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAK,EAAE,CAAC,GAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,6CAA6C,EAAE,uCAAuC,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAK,EAAE,CAAC,KAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,6CAA6C,EAAE,yCAAyC,CAAC,CAAC;IAC3G,CAAC;IAED,MAAM,UAAU,GAAuC,EAAE,CAAC;IAE1D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,CAAC,GAAgB,CAAC,CAAC;IACzD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,kBAAkB,CAAC,EAAE,CAAC,KAAkB,CAAC,CAAC;IAC7D,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAEjD,IAAI,YAA2G,CAAC;IAChH,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,YAAY,GAAG,kBAAkB,CAAC,EAAE,CAAC,OAAoB,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,YAAY,GAAiB;QAClC,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/D,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;KACxB,CAAC;IACF,MAAM,UAAU,GAAuB;QACtC,GAAG,EAAE,QAAQ,CAAC,aAAa;QAC3B,KAAK,EAAE,UAAU,CAAC,aAAa;QAC/B,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC;IAExB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAmB,EAAE,UAAmB;IACjE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAqC,CAAC,EAAE,CAAC;QACjF,IAAI,IAAI,KAAK,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,EAAE,GAAI,GAA+B,EAAE,CAAC;YACxD,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;gBACvB,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACrB,CAAC;aAAM,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACjB,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACrC,+DAA+D;IAC/D,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,sEAAsE;IACtE,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAmB;IAC5C,MAAM,GAAG,GAAG,UAAU,IAAI,WAAW,CAAC;IACtC,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAC1C,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,CAAC,IAAI,CACX,+EAA+E,GAAG,iDAAiD,CACnI,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACpC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,CAAC;AACrD,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B;IACzC,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;AAC1C,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,KAAgB,EAAE,UAAmB;IAC5D,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,MAAM,IAAI,GAAG,GAA8B,CAAC;QAC5C,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;YAC3D,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;YACvE,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACd,oCAAoC,EAAE,kPAAkP,MAAM,EAAE,CAChS,CAAC;QACH,CAAC;QACD,qCAAqC;QACrC,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAA4C,CAAC;YACjE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,cAAc,CAAC,MAAM,CAAC,IAAiB,EAAE,UAAU,CAAC,CAAC;YACrF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,cAAc,CAAC,MAAM,CAAC,IAAiB,EAAE,UAAU,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,MAAM,EAAE,GAAG,IAAI,CAAC,OAA2B,CAAC;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBAAE,cAAc,CAAC,EAAE,CAAC,EAAe,EAAE,UAAU,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAwB,CAAC;YACzC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBAAE,cAAc,CAAC,EAAE,CAAC,EAAe,EAAE,UAAU,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAgD,CAAC;YACjE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,KAAkB,EAAE,CAAC;oBACvC,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAE,CAAsB,CAAC,EAAE,CAAC,EAAE,CAAC;wBACnE,cAAc,CAAE,CAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBACzD,CAAC;gBACF,CAAC;YACF,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;gBAAE,cAAc,CAAC,EAAE,CAAC,OAAoB,EAAE,UAAU,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAiE,CAAC;YAClF,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC;gBAAE,cAAc,CAAC,EAAE,CAAC,GAAgB,EAAE,UAAU,CAAC,CAAC;YAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC;gBAAE,cAAc,CAAC,EAAE,CAAC,KAAkB,EAAE,UAAU,CAAC,CAAC;YAC/E,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;gBAAE,cAAc,CAAC,EAAE,CAAC,OAAoB,EAAE,UAAU,CAAC,CAAC;QACpF,CAAC;IACF,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkflowRegistry — process-wide name → workflow lookup that the
|
|
3
|
+
* sub-workflow primitive uses to find the child to invoke.
|
|
4
|
+
*
|
|
5
|
+
* Triggers (HTTP, future worker/cron, etc.) feed the registry at boot
|
|
6
|
+
* by calling `registerAll()` with the workflows they discovered. The
|
|
7
|
+
* `SubworkflowNode` then calls `get(name)` at run time to materialize
|
|
8
|
+
* the child.
|
|
9
|
+
*
|
|
10
|
+
* **Lookup contract**: keyed on the workflow's `name:` field — same
|
|
11
|
+
* value the author writes in their workflow definition. Two workflows
|
|
12
|
+
* with the same name from different sources are a load-time error
|
|
13
|
+
* (the registry throws on collision). Re-registration of the same
|
|
14
|
+
* `(name, source)` pair is idempotent (HMR-friendly).
|
|
15
|
+
*
|
|
16
|
+
* **Lifecycle**: singleton, lives for the process. Triggers should
|
|
17
|
+
* `clear()` before re-registering when workflow files change (HMR);
|
|
18
|
+
* the in-repo HTTP trigger does this on every scan.
|
|
19
|
+
*
|
|
20
|
+
* **Authorization** (optional): operators can install a process-wide
|
|
21
|
+
* `(parentName, childName, ctx) => boolean | Promise<boolean>` hook via
|
|
22
|
+
* `setAuthorizeFn()` to gate which parent workflows may invoke which
|
|
23
|
+
* children. Default behavior (no fn set) is allow-all — preserves
|
|
24
|
+
* backwards compatibility. See `docs/d/security/cookbook.mdx` for the
|
|
25
|
+
* multi-tenant patterns.
|
|
26
|
+
*
|
|
27
|
+
* **Why a separate class** (vs reusing the HTTP trigger's RouteEntry[]):
|
|
28
|
+
* - Decoupled from HTTP — worker/cron triggers feed the same registry.
|
|
29
|
+
* - Lookup by `name:` is what authors write; route table is keyed on
|
|
30
|
+
* `(method, path)` which sub-workflow callers don't know.
|
|
31
|
+
* - Test isolation — `resetInstance()` is cheap.
|
|
32
|
+
*/
|
|
33
|
+
import type { Context } from "@blokjs/shared";
|
|
34
|
+
/**
|
|
35
|
+
* Hook that decides whether a parent workflow may invoke a child via a
|
|
36
|
+
* sub-workflow step. Return `true` (or a promise resolving to `true`) to
|
|
37
|
+
* allow; `false` to deny. The `ctx` is the parent's running context, so
|
|
38
|
+
* the hook can do per-request decisions (e.g. read tenant id from
|
|
39
|
+
* `ctx.req.headers`).
|
|
40
|
+
*/
|
|
41
|
+
export type WorkflowAuthorizeFn = (parentName: string, childName: string, ctx: Context) => boolean | Promise<boolean>;
|
|
42
|
+
export interface RegisteredWorkflow {
|
|
43
|
+
/** The workflow's `name:` field. Sub-workflow steps reference this. */
|
|
44
|
+
readonly name: string;
|
|
45
|
+
/** Filesystem path or `"<inline>"` for builder-constructed workflows. */
|
|
46
|
+
readonly source: string;
|
|
47
|
+
/**
|
|
48
|
+
* Raw workflow object (pre-normalization). The `SubworkflowNode`
|
|
49
|
+
* passes this to `Configuration.init(name, opts, preloaded)` which
|
|
50
|
+
* runs it through `normalizeWorkflow` → resolved nodes.
|
|
51
|
+
*/
|
|
52
|
+
readonly workflow: unknown;
|
|
53
|
+
/**
|
|
54
|
+
* v0.5 — true when the workflow is registered as middleware (has
|
|
55
|
+
* `middleware: true` set at the workflow root). Middleware workflows
|
|
56
|
+
* are not exposed as public routes; they're invoked from another
|
|
57
|
+
* workflow's `trigger.http.middleware: [...]` array. Looked up via
|
|
58
|
+
* `getMiddleware(name)`.
|
|
59
|
+
*/
|
|
60
|
+
readonly isMiddleware?: boolean;
|
|
61
|
+
}
|
|
62
|
+
export declare class WorkflowRegistry {
|
|
63
|
+
private static instance;
|
|
64
|
+
private workflows;
|
|
65
|
+
private authorizeFn;
|
|
66
|
+
/**
|
|
67
|
+
* v0.5.4 — process-global middleware chain. When set, EVERY workflow
|
|
68
|
+
* run in this process prepends these middleware to its own chain
|
|
69
|
+
* (workflow-level `middleware: [...]` and trigger-level
|
|
70
|
+
* `trigger.http.middleware: [...]` if present). Use this for ops
|
|
71
|
+
* concerns that must apply uniformly: request-id correlation, audit
|
|
72
|
+
* logging, OpenTelemetry spans. Unlike workflow- or trigger-level
|
|
73
|
+
* middleware, global middleware doesn't require touching individual
|
|
74
|
+
* workflow files.
|
|
75
|
+
*
|
|
76
|
+
* **Resolution order** at request time, outer to inner:
|
|
77
|
+
* 1. Process-global (this list)
|
|
78
|
+
* 2. Workflow-level (`workflow.middleware: [...]`, v0.5.2)
|
|
79
|
+
* 3. Trigger-level (`trigger.<kind>.middleware: [...]`, v0.5)
|
|
80
|
+
* 4. Workflow body (regular steps)
|
|
81
|
+
*
|
|
82
|
+
* **Lifecycle**: write-once-per-process is the typical pattern, but
|
|
83
|
+
* the setter accepts repeated calls and the LAST call wins. Empty
|
|
84
|
+
* array clears the global chain. The list itself is stored as a
|
|
85
|
+
* frozen snapshot so callers reading via `getGlobalMiddleware()`
|
|
86
|
+
* can't mutate it accidentally.
|
|
87
|
+
*/
|
|
88
|
+
private globalMiddleware;
|
|
89
|
+
static getInstance(): WorkflowRegistry;
|
|
90
|
+
/** Test-only — drop the singleton so suites start fresh. */
|
|
91
|
+
static resetInstance(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Install a process-wide authorize hook for sub-workflow composition.
|
|
94
|
+
* Pass `null` to clear (default behavior is allow-all). The hook fires
|
|
95
|
+
* on every sub-workflow invocation, before the child is materialized.
|
|
96
|
+
*
|
|
97
|
+
* Multi-tenant operators typically read a tenant id off `ctx` and
|
|
98
|
+
* consult an allow-list. The synchronous variant is fine for
|
|
99
|
+
* in-memory lookups; return a promise if the decision needs an
|
|
100
|
+
* external store.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* WorkflowRegistry.getInstance().setAuthorizeFn((parent, child, ctx) => {
|
|
105
|
+
* const tenant = ctx.req.headers["x-tenant"];
|
|
106
|
+
* return tenantAllowList[tenant]?.includes(child) ?? false;
|
|
107
|
+
* });
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
setAuthorizeFn(fn: WorkflowAuthorizeFn | null): void;
|
|
111
|
+
/**
|
|
112
|
+
* Returns `true` when no authorize hook is installed (default-allow),
|
|
113
|
+
* otherwise delegates to the hook. Called by `SubworkflowNode` before
|
|
114
|
+
* materializing the child workflow.
|
|
115
|
+
*/
|
|
116
|
+
authorize(parentName: string, childName: string, ctx: Context): Promise<boolean>;
|
|
117
|
+
/**
|
|
118
|
+
* Register a process-global middleware chain. Every workflow run in
|
|
119
|
+
* this process will prepend these middleware to its own chain BEFORE
|
|
120
|
+
* any workflow- or trigger-level middleware execute. Use for ops
|
|
121
|
+
* concerns that should apply uniformly across the fleet: request-id
|
|
122
|
+
* correlation, audit logging, OpenTelemetry spans, etc.
|
|
123
|
+
*
|
|
124
|
+
* **Lifecycle**: write-once-per-process is the typical pattern (call
|
|
125
|
+
* once at boot, before `trigger.listen()`), but repeated calls are
|
|
126
|
+
* allowed and the last call wins. Pass `[]` to clear the global
|
|
127
|
+
* chain. The list is frozen on store so the snapshot returned by
|
|
128
|
+
* `getGlobalMiddleware()` is safe to expose without copying.
|
|
129
|
+
*
|
|
130
|
+
* Names that don't resolve to a registered middleware workflow are
|
|
131
|
+
* accepted at registration time but will throw at request time when
|
|
132
|
+
* `runMiddlewareChain` tries to look them up — mirrors trigger- and
|
|
133
|
+
* workflow-level middleware semantics. The trigger logs the
|
|
134
|
+
* resolved global chain at boot so operators can verify the names
|
|
135
|
+
* were spelled correctly without a request.
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```ts
|
|
139
|
+
* // Boot-time setup before trigger.listen()
|
|
140
|
+
* WorkflowRegistry.getInstance().setGlobalMiddleware([
|
|
141
|
+
* "request-id",
|
|
142
|
+
* "audit-log",
|
|
143
|
+
* ]);
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
setGlobalMiddleware(names: readonly string[]): void;
|
|
147
|
+
/**
|
|
148
|
+
* Snapshot of the process-global middleware chain. Returns the
|
|
149
|
+
* frozen list set by `setGlobalMiddleware`, or an empty list when
|
|
150
|
+
* unset. Triggers consume this in `runMiddlewareChain` to prepend
|
|
151
|
+
* to the per-request chain. Always returns the same reference until
|
|
152
|
+
* the next setter call.
|
|
153
|
+
*/
|
|
154
|
+
getGlobalMiddleware(): readonly string[];
|
|
155
|
+
/**
|
|
156
|
+
* Register a single workflow. Throws on collision when a workflow
|
|
157
|
+
* with the same `name` is already registered from a different
|
|
158
|
+
* `source`. Re-registration of the same `(name, source)` is a
|
|
159
|
+
* no-op (HMR-friendly).
|
|
160
|
+
*/
|
|
161
|
+
register(entry: RegisteredWorkflow): void;
|
|
162
|
+
/** Convenience — register many at once. Stops on first collision. */
|
|
163
|
+
registerAll(entries: readonly RegisteredWorkflow[]): void;
|
|
164
|
+
/** Fetch the registered workflow by name, or undefined on miss. */
|
|
165
|
+
get(name: string): RegisteredWorkflow | undefined;
|
|
166
|
+
/**
|
|
167
|
+
* v0.5 — fetch a registered MIDDLEWARE workflow by name (must have
|
|
168
|
+
* been registered with `isMiddleware: true`). Returns undefined when
|
|
169
|
+
* the name is unknown OR the entry isn't a middleware. Used by
|
|
170
|
+
* `HttpTrigger` to dispatch the trigger-level `middleware: [...]` chain.
|
|
171
|
+
*/
|
|
172
|
+
getMiddleware(name: string): RegisteredWorkflow | undefined;
|
|
173
|
+
/** Cheap existence check (avoids the `?: undefined` dance). */
|
|
174
|
+
has(name: string): boolean;
|
|
175
|
+
/** Snapshot of all registered workflows — used for error messages. */
|
|
176
|
+
list(): RegisteredWorkflow[];
|
|
177
|
+
/**
|
|
178
|
+
* Drop every registered workflow. Triggers call this before
|
|
179
|
+
* re-scanning on HMR so stale entries don't survive a file rename.
|
|
180
|
+
* Does NOT reset the authorize hook OR the global middleware chain
|
|
181
|
+
* — both are operator-installed and should persist across HMR.
|
|
182
|
+
* Use `setAuthorizeFn(null)` / `setGlobalMiddleware([])` explicitly
|
|
183
|
+
* to clear.
|
|
184
|
+
*/
|
|
185
|
+
clear(): void;
|
|
186
|
+
}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkflowRegistry — process-wide name → workflow lookup that the
|
|
3
|
+
* sub-workflow primitive uses to find the child to invoke.
|
|
4
|
+
*
|
|
5
|
+
* Triggers (HTTP, future worker/cron, etc.) feed the registry at boot
|
|
6
|
+
* by calling `registerAll()` with the workflows they discovered. The
|
|
7
|
+
* `SubworkflowNode` then calls `get(name)` at run time to materialize
|
|
8
|
+
* the child.
|
|
9
|
+
*
|
|
10
|
+
* **Lookup contract**: keyed on the workflow's `name:` field — same
|
|
11
|
+
* value the author writes in their workflow definition. Two workflows
|
|
12
|
+
* with the same name from different sources are a load-time error
|
|
13
|
+
* (the registry throws on collision). Re-registration of the same
|
|
14
|
+
* `(name, source)` pair is idempotent (HMR-friendly).
|
|
15
|
+
*
|
|
16
|
+
* **Lifecycle**: singleton, lives for the process. Triggers should
|
|
17
|
+
* `clear()` before re-registering when workflow files change (HMR);
|
|
18
|
+
* the in-repo HTTP trigger does this on every scan.
|
|
19
|
+
*
|
|
20
|
+
* **Authorization** (optional): operators can install a process-wide
|
|
21
|
+
* `(parentName, childName, ctx) => boolean | Promise<boolean>` hook via
|
|
22
|
+
* `setAuthorizeFn()` to gate which parent workflows may invoke which
|
|
23
|
+
* children. Default behavior (no fn set) is allow-all — preserves
|
|
24
|
+
* backwards compatibility. See `docs/d/security/cookbook.mdx` for the
|
|
25
|
+
* multi-tenant patterns.
|
|
26
|
+
*
|
|
27
|
+
* **Why a separate class** (vs reusing the HTTP trigger's RouteEntry[]):
|
|
28
|
+
* - Decoupled from HTTP — worker/cron triggers feed the same registry.
|
|
29
|
+
* - Lookup by `name:` is what authors write; route table is keyed on
|
|
30
|
+
* `(method, path)` which sub-workflow callers don't know.
|
|
31
|
+
* - Test isolation — `resetInstance()` is cheap.
|
|
32
|
+
*/
|
|
33
|
+
export class WorkflowRegistry {
|
|
34
|
+
static instance = null;
|
|
35
|
+
workflows = new Map();
|
|
36
|
+
authorizeFn = null;
|
|
37
|
+
/**
|
|
38
|
+
* v0.5.4 — process-global middleware chain. When set, EVERY workflow
|
|
39
|
+
* run in this process prepends these middleware to its own chain
|
|
40
|
+
* (workflow-level `middleware: [...]` and trigger-level
|
|
41
|
+
* `trigger.http.middleware: [...]` if present). Use this for ops
|
|
42
|
+
* concerns that must apply uniformly: request-id correlation, audit
|
|
43
|
+
* logging, OpenTelemetry spans. Unlike workflow- or trigger-level
|
|
44
|
+
* middleware, global middleware doesn't require touching individual
|
|
45
|
+
* workflow files.
|
|
46
|
+
*
|
|
47
|
+
* **Resolution order** at request time, outer to inner:
|
|
48
|
+
* 1. Process-global (this list)
|
|
49
|
+
* 2. Workflow-level (`workflow.middleware: [...]`, v0.5.2)
|
|
50
|
+
* 3. Trigger-level (`trigger.<kind>.middleware: [...]`, v0.5)
|
|
51
|
+
* 4. Workflow body (regular steps)
|
|
52
|
+
*
|
|
53
|
+
* **Lifecycle**: write-once-per-process is the typical pattern, but
|
|
54
|
+
* the setter accepts repeated calls and the LAST call wins. Empty
|
|
55
|
+
* array clears the global chain. The list itself is stored as a
|
|
56
|
+
* frozen snapshot so callers reading via `getGlobalMiddleware()`
|
|
57
|
+
* can't mutate it accidentally.
|
|
58
|
+
*/
|
|
59
|
+
globalMiddleware = [];
|
|
60
|
+
static getInstance() {
|
|
61
|
+
if (!WorkflowRegistry.instance) {
|
|
62
|
+
WorkflowRegistry.instance = new WorkflowRegistry();
|
|
63
|
+
}
|
|
64
|
+
return WorkflowRegistry.instance;
|
|
65
|
+
}
|
|
66
|
+
/** Test-only — drop the singleton so suites start fresh. */
|
|
67
|
+
static resetInstance() {
|
|
68
|
+
WorkflowRegistry.instance = null;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Install a process-wide authorize hook for sub-workflow composition.
|
|
72
|
+
* Pass `null` to clear (default behavior is allow-all). The hook fires
|
|
73
|
+
* on every sub-workflow invocation, before the child is materialized.
|
|
74
|
+
*
|
|
75
|
+
* Multi-tenant operators typically read a tenant id off `ctx` and
|
|
76
|
+
* consult an allow-list. The synchronous variant is fine for
|
|
77
|
+
* in-memory lookups; return a promise if the decision needs an
|
|
78
|
+
* external store.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```ts
|
|
82
|
+
* WorkflowRegistry.getInstance().setAuthorizeFn((parent, child, ctx) => {
|
|
83
|
+
* const tenant = ctx.req.headers["x-tenant"];
|
|
84
|
+
* return tenantAllowList[tenant]?.includes(child) ?? false;
|
|
85
|
+
* });
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
setAuthorizeFn(fn) {
|
|
89
|
+
this.authorizeFn = fn;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Returns `true` when no authorize hook is installed (default-allow),
|
|
93
|
+
* otherwise delegates to the hook. Called by `SubworkflowNode` before
|
|
94
|
+
* materializing the child workflow.
|
|
95
|
+
*/
|
|
96
|
+
async authorize(parentName, childName, ctx) {
|
|
97
|
+
if (!this.authorizeFn)
|
|
98
|
+
return true;
|
|
99
|
+
return await this.authorizeFn(parentName, childName, ctx);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Register a process-global middleware chain. Every workflow run in
|
|
103
|
+
* this process will prepend these middleware to its own chain BEFORE
|
|
104
|
+
* any workflow- or trigger-level middleware execute. Use for ops
|
|
105
|
+
* concerns that should apply uniformly across the fleet: request-id
|
|
106
|
+
* correlation, audit logging, OpenTelemetry spans, etc.
|
|
107
|
+
*
|
|
108
|
+
* **Lifecycle**: write-once-per-process is the typical pattern (call
|
|
109
|
+
* once at boot, before `trigger.listen()`), but repeated calls are
|
|
110
|
+
* allowed and the last call wins. Pass `[]` to clear the global
|
|
111
|
+
* chain. The list is frozen on store so the snapshot returned by
|
|
112
|
+
* `getGlobalMiddleware()` is safe to expose without copying.
|
|
113
|
+
*
|
|
114
|
+
* Names that don't resolve to a registered middleware workflow are
|
|
115
|
+
* accepted at registration time but will throw at request time when
|
|
116
|
+
* `runMiddlewareChain` tries to look them up — mirrors trigger- and
|
|
117
|
+
* workflow-level middleware semantics. The trigger logs the
|
|
118
|
+
* resolved global chain at boot so operators can verify the names
|
|
119
|
+
* were spelled correctly without a request.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```ts
|
|
123
|
+
* // Boot-time setup before trigger.listen()
|
|
124
|
+
* WorkflowRegistry.getInstance().setGlobalMiddleware([
|
|
125
|
+
* "request-id",
|
|
126
|
+
* "audit-log",
|
|
127
|
+
* ]);
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
setGlobalMiddleware(names) {
|
|
131
|
+
const filtered = names.filter((n) => typeof n === "string" && n.length > 0).slice();
|
|
132
|
+
this.globalMiddleware = Object.freeze(filtered);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Snapshot of the process-global middleware chain. Returns the
|
|
136
|
+
* frozen list set by `setGlobalMiddleware`, or an empty list when
|
|
137
|
+
* unset. Triggers consume this in `runMiddlewareChain` to prepend
|
|
138
|
+
* to the per-request chain. Always returns the same reference until
|
|
139
|
+
* the next setter call.
|
|
140
|
+
*/
|
|
141
|
+
getGlobalMiddleware() {
|
|
142
|
+
return this.globalMiddleware;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Register a single workflow. Throws on collision when a workflow
|
|
146
|
+
* with the same `name` is already registered from a different
|
|
147
|
+
* `source`. Re-registration of the same `(name, source)` is a
|
|
148
|
+
* no-op (HMR-friendly).
|
|
149
|
+
*/
|
|
150
|
+
register(entry) {
|
|
151
|
+
if (!entry.name || entry.name.length === 0) {
|
|
152
|
+
throw new Error("[blok] WorkflowRegistry.register: workflow `name` is required.");
|
|
153
|
+
}
|
|
154
|
+
const existing = this.workflows.get(entry.name);
|
|
155
|
+
if (existing && existing.source !== entry.source) {
|
|
156
|
+
throw new Error(`[blok] WorkflowRegistry: workflow name collision — "${entry.name}" is already registered from "${existing.source}"; cannot also register from "${entry.source}". Workflow names must be unique across the process.`);
|
|
157
|
+
}
|
|
158
|
+
this.workflows.set(entry.name, entry);
|
|
159
|
+
}
|
|
160
|
+
/** Convenience — register many at once. Stops on first collision. */
|
|
161
|
+
registerAll(entries) {
|
|
162
|
+
for (const entry of entries) {
|
|
163
|
+
this.register(entry);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/** Fetch the registered workflow by name, or undefined on miss. */
|
|
167
|
+
get(name) {
|
|
168
|
+
return this.workflows.get(name);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* v0.5 — fetch a registered MIDDLEWARE workflow by name (must have
|
|
172
|
+
* been registered with `isMiddleware: true`). Returns undefined when
|
|
173
|
+
* the name is unknown OR the entry isn't a middleware. Used by
|
|
174
|
+
* `HttpTrigger` to dispatch the trigger-level `middleware: [...]` chain.
|
|
175
|
+
*/
|
|
176
|
+
getMiddleware(name) {
|
|
177
|
+
const entry = this.workflows.get(name);
|
|
178
|
+
if (!entry || !entry.isMiddleware)
|
|
179
|
+
return undefined;
|
|
180
|
+
return entry;
|
|
181
|
+
}
|
|
182
|
+
/** Cheap existence check (avoids the `?: undefined` dance). */
|
|
183
|
+
has(name) {
|
|
184
|
+
return this.workflows.has(name);
|
|
185
|
+
}
|
|
186
|
+
/** Snapshot of all registered workflows — used for error messages. */
|
|
187
|
+
list() {
|
|
188
|
+
return Array.from(this.workflows.values());
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Drop every registered workflow. Triggers call this before
|
|
192
|
+
* re-scanning on HMR so stale entries don't survive a file rename.
|
|
193
|
+
* Does NOT reset the authorize hook OR the global middleware chain
|
|
194
|
+
* — both are operator-installed and should persist across HMR.
|
|
195
|
+
* Use `setAuthorizeFn(null)` / `setGlobalMiddleware([])` explicitly
|
|
196
|
+
* to clear.
|
|
197
|
+
*/
|
|
198
|
+
clear() {
|
|
199
|
+
this.workflows.clear();
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=WorkflowRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowRegistry.js","sourceRoot":"","sources":["../../src/workflow/WorkflowRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sample-body inference for the Studio empty-state curl snippet.
|
|
3
|
+
*
|
|
4
|
+
* Generates a JSON payload shape that a workflow's HTTP trigger
|
|
5
|
+
* would accept, so the "no runs yet" curl example on the workflow
|
|
6
|
+
* detail page can show an example body that actually exercises the
|
|
7
|
+
* workflow — instead of the previous `-d '{}'` which immediately
|
|
8
|
+
* crashed every workflow that read from `ctx.request.body`.
|
|
9
|
+
*
|
|
10
|
+
* Two layers (B + A in the design discussion):
|
|
11
|
+
*
|
|
12
|
+
* B. Static analysis. Walk every step's inputs + control-flow
|
|
13
|
+
* expressions, collect every `ctx.request.body.<path>` and
|
|
14
|
+
* `$.req.body.<path>` reference, and build a nested object
|
|
15
|
+
* mirroring those paths. Array shapes are inferred from
|
|
16
|
+
* `forEach.in` references — if a path feeds a forEach, it's
|
|
17
|
+
* an array, and references to `ctx.state.<asVar>.<sub>` inside
|
|
18
|
+
* the body translate back into element-shape fields.
|
|
19
|
+
*
|
|
20
|
+
* A. Author override. If the workflow declares
|
|
21
|
+
* `trigger.http.examples.body: {...}`, that value wins
|
|
22
|
+
* verbatim and the static inference is skipped.
|
|
23
|
+
*
|
|
24
|
+
* Inference is best-effort and intentionally permissive — the
|
|
25
|
+
* placeholder values are "string" everywhere, since the goal is to
|
|
26
|
+
* produce a payload that satisfies the workflow's *shape*, not its
|
|
27
|
+
* semantics. A workflow author who cares about value semantics
|
|
28
|
+
* declares an explicit example.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Result of running inference + override resolution.
|
|
32
|
+
*
|
|
33
|
+
* - `body`: the inferred or author-supplied payload object.
|
|
34
|
+
* - `source`: `"author"` if the workflow declared an explicit
|
|
35
|
+
* `trigger.http.examples.body`, `"inferred"` if we synthesized it
|
|
36
|
+
* from step references, `"empty"` if there were no references and
|
|
37
|
+
* no override (fallback to `{}`).
|
|
38
|
+
*/
|
|
39
|
+
export interface InferredSample {
|
|
40
|
+
body: unknown;
|
|
41
|
+
source: "author" | "inferred" | "empty";
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Infer a sample HTTP body for a workflow, or return the author's
|
|
45
|
+
* declared example. Returns `null` only when the workflow value is
|
|
46
|
+
* not a recognisable object — every other shape gets at least an
|
|
47
|
+
* `empty` result with `body: {}`.
|
|
48
|
+
*
|
|
49
|
+
* @param workflow The raw workflow JSON (the same value the
|
|
50
|
+
* `WorkflowRegistry` stores). Accepts `unknown` because the API
|
|
51
|
+
* surface that calls this — `TraceRouter` — keeps `definition`
|
|
52
|
+
* typed loosely.
|
|
53
|
+
*/
|
|
54
|
+
export declare function inferSampleBody(workflow: unknown): InferredSample | null;
|