@smthrs/flow 0.0.0-stage → 1.0.0-rc.12
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/CHANGELOG.md +161 -0
- package/LICENSE +21 -0
- package/README.md +212 -2
- package/THIRD_PARTY_NOTICES.md +52 -0
- package/dist/cjs/Action/Action.d.ts +250 -0
- package/dist/cjs/Action/Action.d.ts.map +1 -0
- package/dist/cjs/Action/Action.js +42 -0
- package/dist/cjs/Action/Action.js.map +7 -0
- package/dist/cjs/Action/AttemptTimedOut.d.ts +33 -0
- package/dist/cjs/Action/AttemptTimedOut.d.ts.map +1 -0
- package/dist/cjs/Action/AttemptTimedOut.js +51 -0
- package/dist/cjs/Action/AttemptTimedOut.js.map +7 -0
- package/dist/cjs/Action/BoundaryMode.d.ts +29 -0
- package/dist/cjs/Action/BoundaryMode.d.ts.map +1 -0
- package/dist/cjs/Action/BoundaryMode.js +36 -0
- package/dist/cjs/Action/BoundaryMode.js.map +7 -0
- package/dist/cjs/Action/CacheEnvironment.d.ts +158 -0
- package/dist/cjs/Action/CacheEnvironment.d.ts.map +1 -0
- package/dist/cjs/Action/CacheEnvironment.js +57 -0
- package/dist/cjs/Action/CacheEnvironment.js.map +7 -0
- package/dist/cjs/Action/ConcurrentKeylessDispatch.d.ts +34 -0
- package/dist/cjs/Action/ConcurrentKeylessDispatch.d.ts.map +1 -0
- package/dist/cjs/Action/ConcurrentKeylessDispatch.js +46 -0
- package/dist/cjs/Action/ConcurrentKeylessDispatch.js.map +7 -0
- package/dist/cjs/Action/Context.d.ts +131 -0
- package/dist/cjs/Action/Context.d.ts.map +1 -0
- package/dist/cjs/Action/Context.js +68 -0
- package/dist/cjs/Action/Context.js.map +7 -0
- package/dist/cjs/Action/DuplicateImplementation.d.ts +20 -0
- package/dist/cjs/Action/DuplicateImplementation.d.ts.map +1 -0
- package/dist/cjs/Action/DuplicateImplementation.js +46 -0
- package/dist/cjs/Action/DuplicateImplementation.js.map +7 -0
- package/dist/cjs/Action/FileBoundary.d.ts +59 -0
- package/dist/cjs/Action/FileBoundary.d.ts.map +1 -0
- package/dist/cjs/Action/FileBoundary.js +81 -0
- package/dist/cjs/Action/FileBoundary.js.map +7 -0
- package/dist/cjs/Action/FileInput.d.ts +28 -0
- package/dist/cjs/Action/FileInput.d.ts.map +1 -0
- package/dist/cjs/Action/FileInput.js +42 -0
- package/dist/cjs/Action/FileInput.js.map +7 -0
- package/dist/cjs/Action/Filegroup.d.ts +16 -0
- package/dist/cjs/Action/Filegroup.d.ts.map +1 -0
- package/dist/cjs/Action/Filegroup.js +27 -0
- package/dist/cjs/Action/Filegroup.js.map +7 -0
- package/dist/cjs/Action/Glob.d.ts +8 -0
- package/dist/cjs/Action/Glob.d.ts.map +1 -0
- package/dist/cjs/Action/Glob.js +28 -0
- package/dist/cjs/Action/Glob.js.map +7 -0
- package/dist/cjs/Action/ImplementationVersionMismatch.d.ts +26 -0
- package/dist/cjs/Action/ImplementationVersionMismatch.d.ts.map +1 -0
- package/dist/cjs/Action/ImplementationVersionMismatch.js +45 -0
- package/dist/cjs/Action/ImplementationVersionMismatch.js.map +7 -0
- package/dist/cjs/Action/Implementations.d.ts +114 -0
- package/dist/cjs/Action/Implementations.d.ts.map +1 -0
- package/dist/cjs/Action/Implementations.js +65 -0
- package/dist/cjs/Action/Implementations.js.map +7 -0
- package/dist/cjs/Action/InfraInterrupt.d.ts +26 -0
- package/dist/cjs/Action/InfraInterrupt.d.ts.map +1 -0
- package/dist/cjs/Action/InfraInterrupt.js +46 -0
- package/dist/cjs/Action/InfraInterrupt.js.map +7 -0
- package/dist/cjs/Action/InfraInterruptRetriesExhausted.d.ts +33 -0
- package/dist/cjs/Action/InfraInterruptRetriesExhausted.d.ts.map +1 -0
- package/dist/cjs/Action/InfraInterruptRetriesExhausted.js +54 -0
- package/dist/cjs/Action/InfraInterruptRetriesExhausted.js.map +7 -0
- package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts +26 -0
- package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts.map +1 -0
- package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.js +47 -0
- package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.js.map +7 -0
- package/dist/cjs/Action/StepIdentity.d.ts +153 -0
- package/dist/cjs/Action/StepIdentity.d.ts.map +1 -0
- package/dist/cjs/Action/StepIdentity.js +75 -0
- package/dist/cjs/Action/StepIdentity.js.map +7 -0
- package/dist/cjs/Action/TreeArtifact.d.ts +8 -0
- package/dist/cjs/Action/TreeArtifact.d.ts.map +1 -0
- package/dist/cjs/Action/TreeArtifact.js +25 -0
- package/dist/cjs/Action/TreeArtifact.js.map +7 -0
- package/dist/cjs/Action/TypeId.d.ts +8 -0
- package/dist/cjs/Action/TypeId.d.ts.map +1 -0
- package/dist/cjs/Action/TypeId.js +25 -0
- package/dist/cjs/Action/TypeId.js.map +7 -0
- package/dist/cjs/Action/UncanonicalIdempotencyKey.d.ts +32 -0
- package/dist/cjs/Action/UncanonicalIdempotencyKey.d.ts.map +1 -0
- package/dist/cjs/Action/UncanonicalIdempotencyKey.js +51 -0
- package/dist/cjs/Action/UncanonicalIdempotencyKey.js.map +7 -0
- package/dist/cjs/Action/idempotencyKey.d.ts +21 -0
- package/dist/cjs/Action/idempotencyKey.d.ts.map +1 -0
- package/dist/cjs/Action/idempotencyKey.js +59 -0
- package/dist/cjs/Action/idempotencyKey.js.map +7 -0
- package/dist/cjs/Action/index.d.ts +29 -0
- package/dist/cjs/Action/index.d.ts.map +1 -0
- package/dist/cjs/Action/index.js +60 -0
- package/dist/cjs/Action/index.js.map +7 -0
- package/dist/cjs/Action/make.d.ts +128 -0
- package/dist/cjs/Action/make.d.ts.map +1 -0
- package/dist/cjs/Action/make.js +387 -0
- package/dist/cjs/Action/make.js.map +7 -0
- package/dist/cjs/Action/raceAll.d.ts +21 -0
- package/dist/cjs/Action/raceAll.d.ts.map +1 -0
- package/dist/cjs/Action/raceAll.js +46 -0
- package/dist/cjs/Action/raceAll.js.map +7 -0
- package/dist/cjs/Action/retry.d.ts +19 -0
- package/dist/cjs/Action/retry.d.ts.map +1 -0
- package/dist/cjs/Action/retry.js +75 -0
- package/dist/cjs/Action/retry.js.map +7 -0
- package/dist/cjs/Deadline.d.ts +110 -0
- package/dist/cjs/Deadline.d.ts.map +1 -0
- package/dist/cjs/Deadline.js +112 -0
- package/dist/cjs/Deadline.js.map +7 -0
- package/dist/cjs/DurableClock.d.ts +60 -0
- package/dist/cjs/DurableClock.d.ts.map +1 -0
- package/dist/cjs/DurableClock.js +107 -0
- package/dist/cjs/DurableClock.js.map +7 -0
- package/dist/cjs/DurableDeferred.d.ts +311 -0
- package/dist/cjs/DurableDeferred.d.ts.map +1 -0
- package/dist/cjs/DurableDeferred.js +322 -0
- package/dist/cjs/DurableDeferred.js.map +7 -0
- package/dist/cjs/DurableQueue.d.ts +160 -0
- package/dist/cjs/DurableQueue.d.ts.map +1 -0
- package/dist/cjs/DurableQueue.js +229 -0
- package/dist/cjs/DurableQueue.js.map +7 -0
- package/dist/cjs/ExternalJob.d.ts +179 -0
- package/dist/cjs/ExternalJob.d.ts.map +1 -0
- package/dist/cjs/ExternalJob.js +339 -0
- package/dist/cjs/ExternalJob.js.map +7 -0
- package/dist/cjs/Fault.d.ts +131 -0
- package/dist/cjs/Fault.d.ts.map +1 -0
- package/dist/cjs/Fault.js +157 -0
- package/dist/cjs/Fault.js.map +7 -0
- package/dist/cjs/Flow/Annotations.d.ts +245 -0
- package/dist/cjs/Flow/Annotations.d.ts.map +1 -0
- package/dist/cjs/Flow/Annotations.js +72 -0
- package/dist/cjs/Flow/Annotations.js.map +7 -0
- package/dist/cjs/Flow/CapabilityCeiling.d.ts +21 -0
- package/dist/cjs/Flow/CapabilityCeiling.d.ts.map +1 -0
- package/dist/cjs/Flow/CapabilityCeiling.js +49 -0
- package/dist/cjs/Flow/CapabilityCeiling.js.map +7 -0
- package/dist/cjs/Flow/DeadlineExceeded.d.ts +33 -0
- package/dist/cjs/Flow/DeadlineExceeded.d.ts.map +1 -0
- package/dist/cjs/Flow/DeadlineExceeded.js +52 -0
- package/dist/cjs/Flow/DeadlineExceeded.js.map +7 -0
- package/dist/cjs/Flow/ExecutionIdRequired.d.ts +25 -0
- package/dist/cjs/Flow/ExecutionIdRequired.d.ts.map +1 -0
- package/dist/cjs/Flow/ExecutionIdRequired.js +46 -0
- package/dist/cjs/Flow/ExecutionIdRequired.js.map +7 -0
- package/dist/cjs/Flow/ExecutionIds.d.ts +80 -0
- package/dist/cjs/Flow/ExecutionIds.d.ts.map +1 -0
- package/dist/cjs/Flow/ExecutionIds.js +66 -0
- package/dist/cjs/Flow/ExecutionIds.js.map +7 -0
- package/dist/cjs/Flow/Flow.d.ts +422 -0
- package/dist/cjs/Flow/Flow.d.ts.map +1 -0
- package/dist/cjs/Flow/Flow.js +17 -0
- package/dist/cjs/Flow/Flow.js.map +7 -0
- package/dist/cjs/Flow/MaxRoundsExceeded.d.ts +35 -0
- package/dist/cjs/Flow/MaxRoundsExceeded.d.ts.map +1 -0
- package/dist/cjs/Flow/MaxRoundsExceeded.js +50 -0
- package/dist/cjs/Flow/MaxRoundsExceeded.js.map +7 -0
- package/dist/cjs/Flow/Outcome.d.ts +162 -0
- package/dist/cjs/Flow/Outcome.d.ts.map +1 -0
- package/dist/cjs/Flow/Outcome.js +80 -0
- package/dist/cjs/Flow/Outcome.js.map +7 -0
- package/dist/cjs/Flow/Result.d.ts +186 -0
- package/dist/cjs/Flow/Result.d.ts.map +1 -0
- package/dist/cjs/Flow/Result.js +159 -0
- package/dist/cjs/Flow/Result.js.map +7 -0
- package/dist/cjs/Flow/Runtime.d.ts +98 -0
- package/dist/cjs/Flow/Runtime.d.ts.map +1 -0
- package/dist/cjs/Flow/Runtime.js +186 -0
- package/dist/cjs/Flow/Runtime.js.map +7 -0
- package/dist/cjs/Flow/TypeId.d.ts +8 -0
- package/dist/cjs/Flow/TypeId.d.ts.map +1 -0
- package/dist/cjs/Flow/TypeId.js +25 -0
- package/dist/cjs/Flow/TypeId.js.map +7 -0
- package/dist/cjs/Flow/index.d.ts +17 -0
- package/dist/cjs/Flow/index.d.ts.map +1 -0
- package/dist/cjs/Flow/index.js +29 -0
- package/dist/cjs/Flow/index.js.map +7 -0
- package/dist/cjs/Flow/internal.d.ts +34 -0
- package/dist/cjs/Flow/internal.d.ts.map +1 -0
- package/dist/cjs/Flow/internal.js +187 -0
- package/dist/cjs/Flow/internal.js.map +7 -0
- package/dist/cjs/Flow/make.d.ts +135 -0
- package/dist/cjs/Flow/make.d.ts.map +1 -0
- package/dist/cjs/Flow/make.js +107 -0
- package/dist/cjs/Flow/make.js.map +7 -0
- package/dist/cjs/FlowRuntime/CancelRequestFailed.d.ts +55 -0
- package/dist/cjs/FlowRuntime/CancelRequestFailed.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/CancelRequestFailed.js +51 -0
- package/dist/cjs/FlowRuntime/CancelRequestFailed.js.map +7 -0
- package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.d.ts +23 -0
- package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.js +55 -0
- package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.js.map +7 -0
- package/dist/cjs/FlowRuntime/FlowCycleDetected.d.ts +28 -0
- package/dist/cjs/FlowRuntime/FlowCycleDetected.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/FlowCycleDetected.js +49 -0
- package/dist/cjs/FlowRuntime/FlowCycleDetected.js.map +7 -0
- package/dist/cjs/FlowRuntime/FlowExecutionNotFound.d.ts +38 -0
- package/dist/cjs/FlowRuntime/FlowExecutionNotFound.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/FlowExecutionNotFound.js +53 -0
- package/dist/cjs/FlowRuntime/FlowExecutionNotFound.js.map +7 -0
- package/dist/cjs/FlowRuntime/FlowInstance.d.ts +115 -0
- package/dist/cjs/FlowRuntime/FlowInstance.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/FlowInstance.js +37 -0
- package/dist/cjs/FlowRuntime/FlowInstance.js.map +7 -0
- package/dist/cjs/FlowRuntime/FlowRuntime.d.ts +204 -0
- package/dist/cjs/FlowRuntime/FlowRuntime.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/FlowRuntime.js +37 -0
- package/dist/cjs/FlowRuntime/FlowRuntime.js.map +7 -0
- package/dist/cjs/FlowRuntime/NodeRecord.d.ts +177 -0
- package/dist/cjs/FlowRuntime/NodeRecord.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/NodeRecord.js +17 -0
- package/dist/cjs/FlowRuntime/NodeRecord.js.map +7 -0
- package/dist/cjs/FlowRuntime/WaitingAnnotation.d.ts +69 -0
- package/dist/cjs/FlowRuntime/WaitingAnnotation.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/WaitingAnnotation.js +53 -0
- package/dist/cjs/FlowRuntime/WaitingAnnotation.js.map +7 -0
- package/dist/cjs/FlowRuntime/index.d.ts +14 -0
- package/dist/cjs/FlowRuntime/index.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/index.js +26 -0
- package/dist/cjs/FlowRuntime/index.js.map +7 -0
- package/dist/cjs/Graph.d.ts +325 -0
- package/dist/cjs/Graph.d.ts.map +1 -0
- package/dist/cjs/Graph.js +1020 -0
- package/dist/cjs/Graph.js.map +7 -0
- package/dist/cjs/HumanTask.d.ts +442 -0
- package/dist/cjs/HumanTask.d.ts.map +1 -0
- package/dist/cjs/HumanTask.js +413 -0
- package/dist/cjs/HumanTask.js.map +7 -0
- package/dist/cjs/Interpreter.d.ts +223 -0
- package/dist/cjs/Interpreter.d.ts.map +1 -0
- package/dist/cjs/Interpreter.js +908 -0
- package/dist/cjs/Interpreter.js.map +7 -0
- package/dist/cjs/Poll.d.ts +240 -0
- package/dist/cjs/Poll.d.ts.map +1 -0
- package/dist/cjs/Poll.js +154 -0
- package/dist/cjs/Poll.js.map +7 -0
- package/dist/cjs/RetryPolicy.d.ts +273 -0
- package/dist/cjs/RetryPolicy.d.ts.map +1 -0
- package/dist/cjs/RetryPolicy.js +251 -0
- package/dist/cjs/RetryPolicy.js.map +7 -0
- package/dist/cjs/Sleep.d.ts +98 -0
- package/dist/cjs/Sleep.d.ts.map +1 -0
- package/dist/cjs/Sleep.js +141 -0
- package/dist/cjs/Sleep.js.map +7 -0
- package/dist/cjs/Stall.d.ts +173 -0
- package/dist/cjs/Stall.d.ts.map +1 -0
- package/dist/cjs/Stall.js +92 -0
- package/dist/cjs/Stall.js.map +7 -0
- package/dist/cjs/WaitFor.d.ts +109 -0
- package/dist/cjs/WaitFor.d.ts.map +1 -0
- package/dist/cjs/WaitFor.js +117 -0
- package/dist/cjs/WaitFor.js.map +7 -0
- package/dist/cjs/index.d.ts +107 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +69 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/internal/BoundedJson.d.ts +48 -0
- package/dist/cjs/internal/BoundedJson.d.ts.map +1 -0
- package/dist/cjs/internal/BoundedJson.js +96 -0
- package/dist/cjs/internal/BoundedJson.js.map +7 -0
- package/dist/cjs/internal/DeclarationSite.d.ts +135 -0
- package/dist/cjs/internal/DeclarationSite.d.ts.map +1 -0
- package/dist/cjs/internal/DeclarationSite.js +89 -0
- package/dist/cjs/internal/DeclarationSite.js.map +7 -0
- package/dist/cjs/internal/Declarations.d.ts +35 -0
- package/dist/cjs/internal/Declarations.d.ts.map +1 -0
- package/dist/cjs/internal/Declarations.js +50 -0
- package/dist/cjs/internal/Declarations.js.map +7 -0
- package/dist/cjs/internal/ExecutionMiddleware.d.ts +21 -0
- package/dist/cjs/internal/ExecutionMiddleware.d.ts.map +1 -0
- package/dist/cjs/internal/ExecutionMiddleware.js +39 -0
- package/dist/cjs/internal/ExecutionMiddleware.js.map +7 -0
- package/dist/cjs/internal/JsonSchemaSubset.d.ts +133 -0
- package/dist/cjs/internal/JsonSchemaSubset.d.ts.map +1 -0
- package/dist/cjs/internal/JsonSchemaSubset.js +229 -0
- package/dist/cjs/internal/JsonSchemaSubset.js.map +7 -0
- package/dist/cjs/internal/OutcomeMarker.d.ts +18 -0
- package/dist/cjs/internal/OutcomeMarker.d.ts.map +1 -0
- package/dist/cjs/internal/OutcomeMarker.js +27 -0
- package/dist/cjs/internal/OutcomeMarker.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/Action/Action.d.ts +250 -0
- package/dist/esm/Action/Action.d.ts.map +1 -0
- package/dist/esm/Action/Action.js +30 -0
- package/dist/esm/Action/Action.js.map +1 -0
- package/dist/esm/Action/AttemptTimedOut.d.ts +33 -0
- package/dist/esm/Action/AttemptTimedOut.d.ts.map +1 -0
- package/dist/esm/Action/AttemptTimedOut.js +32 -0
- package/dist/esm/Action/AttemptTimedOut.js.map +1 -0
- package/dist/esm/Action/BoundaryMode.d.ts +29 -0
- package/dist/esm/Action/BoundaryMode.d.ts.map +1 -0
- package/dist/esm/Action/BoundaryMode.js +23 -0
- package/dist/esm/Action/BoundaryMode.js.map +1 -0
- package/dist/esm/Action/CacheEnvironment.d.ts +158 -0
- package/dist/esm/Action/CacheEnvironment.d.ts.map +1 -0
- package/dist/esm/Action/CacheEnvironment.js +130 -0
- package/dist/esm/Action/CacheEnvironment.js.map +1 -0
- package/dist/esm/Action/ConcurrentKeylessDispatch.d.ts +34 -0
- package/dist/esm/Action/ConcurrentKeylessDispatch.d.ts.map +1 -0
- package/dist/esm/Action/ConcurrentKeylessDispatch.js +33 -0
- package/dist/esm/Action/ConcurrentKeylessDispatch.js.map +1 -0
- package/dist/esm/Action/Context.d.ts +131 -0
- package/dist/esm/Action/Context.d.ts.map +1 -0
- package/dist/esm/Action/Context.js +99 -0
- package/dist/esm/Action/Context.js.map +1 -0
- package/dist/esm/Action/DuplicateImplementation.d.ts +20 -0
- package/dist/esm/Action/DuplicateImplementation.d.ts.map +1 -0
- package/dist/esm/Action/DuplicateImplementation.js +20 -0
- package/dist/esm/Action/DuplicateImplementation.js.map +1 -0
- package/dist/esm/Action/FileBoundary.d.ts +59 -0
- package/dist/esm/Action/FileBoundary.d.ts.map +1 -0
- package/dist/esm/Action/FileBoundary.js +60 -0
- package/dist/esm/Action/FileBoundary.js.map +1 -0
- package/dist/esm/Action/FileInput.d.ts +28 -0
- package/dist/esm/Action/FileInput.d.ts.map +1 -0
- package/dist/esm/Action/FileInput.js +32 -0
- package/dist/esm/Action/FileInput.js.map +1 -0
- package/dist/esm/Action/Filegroup.d.ts +16 -0
- package/dist/esm/Action/Filegroup.d.ts.map +1 -0
- package/dist/esm/Action/Filegroup.js +15 -0
- package/dist/esm/Action/Filegroup.js.map +1 -0
- package/dist/esm/Action/Glob.d.ts +8 -0
- package/dist/esm/Action/Glob.d.ts.map +1 -0
- package/dist/esm/Action/Glob.js +7 -0
- package/dist/esm/Action/Glob.js.map +1 -0
- package/dist/esm/Action/ImplementationVersionMismatch.d.ts +26 -0
- package/dist/esm/Action/ImplementationVersionMismatch.d.ts.map +1 -0
- package/dist/esm/Action/ImplementationVersionMismatch.js +24 -0
- package/dist/esm/Action/ImplementationVersionMismatch.js.map +1 -0
- package/dist/esm/Action/Implementations.d.ts +114 -0
- package/dist/esm/Action/Implementations.d.ts.map +1 -0
- package/dist/esm/Action/Implementations.js +94 -0
- package/dist/esm/Action/Implementations.js.map +1 -0
- package/dist/esm/Action/InfraInterrupt.d.ts +26 -0
- package/dist/esm/Action/InfraInterrupt.d.ts.map +1 -0
- package/dist/esm/Action/InfraInterrupt.js +25 -0
- package/dist/esm/Action/InfraInterrupt.js.map +1 -0
- package/dist/esm/Action/InfraInterruptRetriesExhausted.d.ts +33 -0
- package/dist/esm/Action/InfraInterruptRetriesExhausted.d.ts.map +1 -0
- package/dist/esm/Action/InfraInterruptRetriesExhausted.js +32 -0
- package/dist/esm/Action/InfraInterruptRetriesExhausted.js.map +1 -0
- package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts +26 -0
- package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts.map +1 -0
- package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.js +25 -0
- package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.js.map +1 -0
- package/dist/esm/Action/StepIdentity.d.ts +153 -0
- package/dist/esm/Action/StepIdentity.d.ts.map +1 -0
- package/dist/esm/Action/StepIdentity.js +139 -0
- package/dist/esm/Action/StepIdentity.js.map +1 -0
- package/dist/esm/Action/TreeArtifact.d.ts +8 -0
- package/dist/esm/Action/TreeArtifact.d.ts.map +1 -0
- package/dist/esm/Action/TreeArtifact.js +7 -0
- package/dist/esm/Action/TreeArtifact.js.map +1 -0
- package/dist/esm/Action/TypeId.d.ts +8 -0
- package/dist/esm/Action/TypeId.d.ts.map +1 -0
- package/dist/esm/Action/TypeId.js +9 -0
- package/dist/esm/Action/TypeId.js.map +1 -0
- package/dist/esm/Action/UncanonicalIdempotencyKey.d.ts +32 -0
- package/dist/esm/Action/UncanonicalIdempotencyKey.d.ts.map +1 -0
- package/dist/esm/Action/UncanonicalIdempotencyKey.js +31 -0
- package/dist/esm/Action/UncanonicalIdempotencyKey.js.map +1 -0
- package/dist/esm/Action/idempotencyKey.d.ts +21 -0
- package/dist/esm/Action/idempotencyKey.d.ts.map +1 -0
- package/dist/esm/Action/idempotencyKey.js +50 -0
- package/dist/esm/Action/idempotencyKey.js.map +1 -0
- package/dist/esm/Action/index.d.ts +29 -0
- package/dist/esm/Action/index.d.ts.map +1 -0
- package/dist/esm/Action/index.js +30 -0
- package/dist/esm/Action/index.js.map +1 -0
- package/dist/esm/Action/make.d.ts +128 -0
- package/dist/esm/Action/make.d.ts.map +1 -0
- package/dist/esm/Action/make.js +413 -0
- package/dist/esm/Action/make.js.map +1 -0
- package/dist/esm/Action/raceAll.d.ts +21 -0
- package/dist/esm/Action/raceAll.d.ts.map +1 -0
- package/dist/esm/Action/raceAll.js +20 -0
- package/dist/esm/Action/raceAll.js.map +1 -0
- package/dist/esm/Action/retry.d.ts +19 -0
- package/dist/esm/Action/retry.d.ts.map +1 -0
- package/dist/esm/Action/retry.js +72 -0
- package/dist/esm/Action/retry.js.map +1 -0
- package/dist/esm/Deadline.d.ts +110 -0
- package/dist/esm/Deadline.d.ts.map +1 -0
- package/dist/esm/Deadline.js +164 -0
- package/dist/esm/Deadline.js.map +1 -0
- package/dist/esm/DurableClock.d.ts +60 -0
- package/dist/esm/DurableClock.d.ts.map +1 -0
- package/dist/esm/DurableClock.js +122 -0
- package/dist/esm/DurableClock.js.map +1 -0
- package/dist/esm/DurableDeferred.d.ts +311 -0
- package/dist/esm/DurableDeferred.d.ts.map +1 -0
- package/dist/esm/DurableDeferred.js +357 -0
- package/dist/esm/DurableDeferred.js.map +1 -0
- package/dist/esm/DurableQueue.d.ts +160 -0
- package/dist/esm/DurableQueue.d.ts.map +1 -0
- package/dist/esm/DurableQueue.js +303 -0
- package/dist/esm/DurableQueue.js.map +1 -0
- package/dist/esm/ExternalJob.d.ts +179 -0
- package/dist/esm/ExternalJob.d.ts.map +1 -0
- package/dist/esm/ExternalJob.js +296 -0
- package/dist/esm/ExternalJob.js.map +1 -0
- package/dist/esm/Fault.d.ts +131 -0
- package/dist/esm/Fault.d.ts.map +1 -0
- package/dist/esm/Fault.js +198 -0
- package/dist/esm/Fault.js.map +1 -0
- package/dist/esm/Flow/Annotations.d.ts +245 -0
- package/dist/esm/Flow/Annotations.d.ts.map +1 -0
- package/dist/esm/Flow/Annotations.js +110 -0
- package/dist/esm/Flow/Annotations.js.map +1 -0
- package/dist/esm/Flow/CapabilityCeiling.d.ts +21 -0
- package/dist/esm/Flow/CapabilityCeiling.d.ts.map +1 -0
- package/dist/esm/Flow/CapabilityCeiling.js +27 -0
- package/dist/esm/Flow/CapabilityCeiling.js.map +1 -0
- package/dist/esm/Flow/DeadlineExceeded.d.ts +33 -0
- package/dist/esm/Flow/DeadlineExceeded.d.ts.map +1 -0
- package/dist/esm/Flow/DeadlineExceeded.js +34 -0
- package/dist/esm/Flow/DeadlineExceeded.js.map +1 -0
- package/dist/esm/Flow/ExecutionIdRequired.d.ts +25 -0
- package/dist/esm/Flow/ExecutionIdRequired.d.ts.map +1 -0
- package/dist/esm/Flow/ExecutionIdRequired.js +30 -0
- package/dist/esm/Flow/ExecutionIdRequired.js.map +1 -0
- package/dist/esm/Flow/ExecutionIds.d.ts +80 -0
- package/dist/esm/Flow/ExecutionIds.d.ts.map +1 -0
- package/dist/esm/Flow/ExecutionIds.js +91 -0
- package/dist/esm/Flow/ExecutionIds.js.map +1 -0
- package/dist/esm/Flow/Flow.d.ts +422 -0
- package/dist/esm/Flow/Flow.d.ts.map +1 -0
- package/dist/esm/Flow/Flow.js +3 -0
- package/dist/esm/Flow/Flow.js.map +1 -0
- package/dist/esm/Flow/MaxRoundsExceeded.d.ts +35 -0
- package/dist/esm/Flow/MaxRoundsExceeded.d.ts.map +1 -0
- package/dist/esm/Flow/MaxRoundsExceeded.js +34 -0
- package/dist/esm/Flow/MaxRoundsExceeded.js.map +1 -0
- package/dist/esm/Flow/Outcome.d.ts +162 -0
- package/dist/esm/Flow/Outcome.d.ts.map +1 -0
- package/dist/esm/Flow/Outcome.js +115 -0
- package/dist/esm/Flow/Outcome.js.map +1 -0
- package/dist/esm/Flow/Result.d.ts +186 -0
- package/dist/esm/Flow/Result.d.ts.map +1 -0
- package/dist/esm/Flow/Result.js +171 -0
- package/dist/esm/Flow/Result.js.map +1 -0
- package/dist/esm/Flow/Runtime.d.ts +98 -0
- package/dist/esm/Flow/Runtime.d.ts.map +1 -0
- package/dist/esm/Flow/Runtime.js +252 -0
- package/dist/esm/Flow/Runtime.js.map +1 -0
- package/dist/esm/Flow/TypeId.d.ts +8 -0
- package/dist/esm/Flow/TypeId.d.ts.map +1 -0
- package/dist/esm/Flow/TypeId.js +9 -0
- package/dist/esm/Flow/TypeId.js.map +1 -0
- package/dist/esm/Flow/index.d.ts +17 -0
- package/dist/esm/Flow/index.d.ts.map +1 -0
- package/dist/esm/Flow/index.js +18 -0
- package/dist/esm/Flow/index.js.map +1 -0
- package/dist/esm/Flow/internal.d.ts +34 -0
- package/dist/esm/Flow/internal.d.ts.map +1 -0
- package/dist/esm/Flow/internal.js +149 -0
- package/dist/esm/Flow/internal.js.map +1 -0
- package/dist/esm/Flow/make.d.ts +135 -0
- package/dist/esm/Flow/make.d.ts.map +1 -0
- package/dist/esm/Flow/make.js +111 -0
- package/dist/esm/Flow/make.js.map +1 -0
- package/dist/esm/FlowRuntime/CancelRequestFailed.d.ts +55 -0
- package/dist/esm/FlowRuntime/CancelRequestFailed.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/CancelRequestFailed.js +53 -0
- package/dist/esm/FlowRuntime/CancelRequestFailed.js.map +1 -0
- package/dist/esm/FlowRuntime/ExecutionIdentityConflict.d.ts +23 -0
- package/dist/esm/FlowRuntime/ExecutionIdentityConflict.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/ExecutionIdentityConflict.js +24 -0
- package/dist/esm/FlowRuntime/ExecutionIdentityConflict.js.map +1 -0
- package/dist/esm/FlowRuntime/FlowCycleDetected.d.ts +28 -0
- package/dist/esm/FlowRuntime/FlowCycleDetected.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/FlowCycleDetected.js +35 -0
- package/dist/esm/FlowRuntime/FlowCycleDetected.js.map +1 -0
- package/dist/esm/FlowRuntime/FlowExecutionNotFound.d.ts +38 -0
- package/dist/esm/FlowRuntime/FlowExecutionNotFound.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/FlowExecutionNotFound.js +40 -0
- package/dist/esm/FlowRuntime/FlowExecutionNotFound.js.map +1 -0
- package/dist/esm/FlowRuntime/FlowInstance.d.ts +115 -0
- package/dist/esm/FlowRuntime/FlowInstance.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/FlowInstance.js +24 -0
- package/dist/esm/FlowRuntime/FlowInstance.js.map +1 -0
- package/dist/esm/FlowRuntime/FlowRuntime.d.ts +204 -0
- package/dist/esm/FlowRuntime/FlowRuntime.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/FlowRuntime.js +34 -0
- package/dist/esm/FlowRuntime/FlowRuntime.js.map +1 -0
- package/dist/esm/FlowRuntime/NodeRecord.d.ts +177 -0
- package/dist/esm/FlowRuntime/NodeRecord.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/NodeRecord.js +21 -0
- package/dist/esm/FlowRuntime/NodeRecord.js.map +1 -0
- package/dist/esm/FlowRuntime/WaitingAnnotation.d.ts +69 -0
- package/dist/esm/FlowRuntime/WaitingAnnotation.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/WaitingAnnotation.js +53 -0
- package/dist/esm/FlowRuntime/WaitingAnnotation.js.map +1 -0
- package/dist/esm/FlowRuntime/index.d.ts +14 -0
- package/dist/esm/FlowRuntime/index.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/index.js +15 -0
- package/dist/esm/FlowRuntime/index.js.map +1 -0
- package/dist/esm/Graph.d.ts +325 -0
- package/dist/esm/Graph.d.ts.map +1 -0
- package/dist/esm/Graph.js +1485 -0
- package/dist/esm/Graph.js.map +1 -0
- package/dist/esm/HumanTask.d.ts +442 -0
- package/dist/esm/HumanTask.d.ts.map +1 -0
- package/dist/esm/HumanTask.js +798 -0
- package/dist/esm/HumanTask.js.map +1 -0
- package/dist/esm/Interpreter.d.ts +223 -0
- package/dist/esm/Interpreter.d.ts.map +1 -0
- package/dist/esm/Interpreter.js +1289 -0
- package/dist/esm/Interpreter.js.map +1 -0
- package/dist/esm/Poll.d.ts +240 -0
- package/dist/esm/Poll.d.ts.map +1 -0
- package/dist/esm/Poll.js +289 -0
- package/dist/esm/Poll.js.map +1 -0
- package/dist/esm/RetryPolicy.d.ts +273 -0
- package/dist/esm/RetryPolicy.d.ts.map +1 -0
- package/dist/esm/RetryPolicy.js +429 -0
- package/dist/esm/RetryPolicy.js.map +1 -0
- package/dist/esm/Sleep.d.ts +98 -0
- package/dist/esm/Sleep.d.ts.map +1 -0
- package/dist/esm/Sleep.js +256 -0
- package/dist/esm/Sleep.js.map +1 -0
- package/dist/esm/Stall.d.ts +173 -0
- package/dist/esm/Stall.d.ts.map +1 -0
- package/dist/esm/Stall.js +138 -0
- package/dist/esm/Stall.js.map +1 -0
- package/dist/esm/WaitFor.d.ts +109 -0
- package/dist/esm/WaitFor.d.ts.map +1 -0
- package/dist/esm/WaitFor.js +184 -0
- package/dist/esm/WaitFor.js.map +1 -0
- package/dist/esm/index.d.ts +107 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +108 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/BoundedJson.d.ts +48 -0
- package/dist/esm/internal/BoundedJson.d.ts.map +1 -0
- package/dist/esm/internal/BoundedJson.js +107 -0
- package/dist/esm/internal/BoundedJson.js.map +1 -0
- package/dist/esm/internal/DeclarationSite.d.ts +135 -0
- package/dist/esm/internal/DeclarationSite.d.ts.map +1 -0
- package/dist/esm/internal/DeclarationSite.js +196 -0
- package/dist/esm/internal/DeclarationSite.js.map +1 -0
- package/dist/esm/internal/Declarations.d.ts +35 -0
- package/dist/esm/internal/Declarations.d.ts.map +1 -0
- package/dist/esm/internal/Declarations.js +43 -0
- package/dist/esm/internal/Declarations.js.map +1 -0
- package/dist/esm/internal/ExecutionMiddleware.d.ts +21 -0
- package/dist/esm/internal/ExecutionMiddleware.d.ts.map +1 -0
- package/dist/esm/internal/ExecutionMiddleware.js +13 -0
- package/dist/esm/internal/ExecutionMiddleware.js.map +1 -0
- package/dist/esm/internal/JsonSchemaSubset.d.ts +133 -0
- package/dist/esm/internal/JsonSchemaSubset.d.ts.map +1 -0
- package/dist/esm/internal/JsonSchemaSubset.js +363 -0
- package/dist/esm/internal/JsonSchemaSubset.js.map +1 -0
- package/dist/esm/internal/OutcomeMarker.d.ts +18 -0
- package/dist/esm/internal/OutcomeMarker.d.ts.map +1 -0
- package/dist/esm/internal/OutcomeMarker.js +18 -0
- package/dist/esm/internal/OutcomeMarker.js.map +1 -0
- package/docs/README.md +152 -0
- package/docs/api.md +440 -0
- package/docs/concepts/bodies-and-plans.md +167 -0
- package/docs/concepts/execution-identity.md +142 -0
- package/docs/concepts/flows-and-actions.md +129 -0
- package/docs/concepts/suspension-and-replay.md +130 -0
- package/docs/concepts/the-runtime-port.md +110 -0
- package/docs/concepts/trampoline-rounds.md +151 -0
- package/docs/guides/ask-a-person.md +184 -0
- package/docs/guides/build-a-body.md +164 -0
- package/docs/guides/cancel-and-roll-back.md +112 -0
- package/docs/guides/implement-an-action.md +155 -0
- package/docs/guides/inspect-the-plan.md +235 -0
- package/docs/guides/poll-until-ready.md +169 -0
- package/docs/guides/queue-work-to-a-worker.md +122 -0
- package/docs/guides/retry-a-failing-action.md +243 -0
- package/docs/guides/reuse-a-recorded-result.md +129 -0
- package/docs/guides/run-a-child-flow.md +108 -0
- package/docs/guides/run-an-external-job.md +86 -0
- package/docs/guides/use-a-prompt.md +38 -0
- package/docs/guides/wait-for-a-deadline.md +141 -0
- package/docs/guides/wait-for-an-external-signal.md +151 -0
- package/docs/installation.md +87 -0
- package/docs/quickstart.md +164 -0
- package/docs/reference/flow.md +1835 -0
- package/docs/testing.md +157 -0
- package/docs/troubleshooting.md +286 -0
- package/package.json +327 -3
- package/src/Action/Action.ts +333 -0
- package/src/Action/AttemptTimedOut.ts +37 -0
- package/src/Action/BoundaryMode.ts +33 -0
- package/src/Action/CacheEnvironment.ts +170 -0
- package/src/Action/ConcurrentKeylessDispatch.ts +38 -0
- package/src/Action/Context.ts +156 -0
- package/src/Action/DuplicateImplementation.ts +24 -0
- package/src/Action/FileBoundary.ts +77 -0
- package/src/Action/FileInput.ts +42 -0
- package/src/Action/Filegroup.ts +16 -0
- package/src/Action/Glob.ts +8 -0
- package/src/Action/ImplementationVersionMismatch.ts +27 -0
- package/src/Action/Implementations.ts +149 -0
- package/src/Action/InfraInterrupt.ts +30 -0
- package/src/Action/InfraInterruptRetriesExhausted.ts +37 -0
- package/src/Action/IrreversibleRetryRequiresIdempotencyKey.ts +32 -0
- package/src/Action/StepIdentity.ts +219 -0
- package/src/Action/TreeArtifact.ts +8 -0
- package/src/Action/TypeId.ts +9 -0
- package/src/Action/UncanonicalIdempotencyKey.ts +36 -0
- package/src/Action/idempotencyKey.ts +67 -0
- package/src/Action/index.ts +31 -0
- package/src/Action/make.ts +671 -0
- package/src/Action/raceAll.ts +48 -0
- package/src/Action/retry.ts +92 -0
- package/src/Deadline.ts +201 -0
- package/src/DurableClock.ts +176 -0
- package/src/DurableDeferred.ts +753 -0
- package/src/DurableQueue.ts +519 -0
- package/src/ExternalJob.ts +437 -0
- package/src/Fault.ts +279 -0
- package/src/Flow/Annotations.ts +151 -0
- package/src/Flow/CapabilityCeiling.ts +37 -0
- package/src/Flow/DeadlineExceeded.ts +40 -0
- package/src/Flow/ExecutionIdRequired.ts +36 -0
- package/src/Flow/ExecutionIds.ts +133 -0
- package/src/Flow/Flow.ts +576 -0
- package/src/Flow/MaxRoundsExceeded.ts +39 -0
- package/src/Flow/Outcome.ts +179 -0
- package/src/Flow/Result.ts +284 -0
- package/src/Flow/Runtime.ts +339 -0
- package/src/Flow/TypeId.ts +9 -0
- package/src/Flow/index.ts +19 -0
- package/src/Flow/internal.ts +237 -0
- package/src/Flow/make.ts +285 -0
- package/src/FlowRuntime/CancelRequestFailed.ts +56 -0
- package/src/FlowRuntime/ExecutionIdentityConflict.ts +32 -0
- package/src/FlowRuntime/FlowCycleDetected.ts +41 -0
- package/src/FlowRuntime/FlowExecutionNotFound.ts +46 -0
- package/src/FlowRuntime/FlowInstance.ts +128 -0
- package/src/FlowRuntime/FlowRuntime.ts +339 -0
- package/src/FlowRuntime/NodeRecord.ts +185 -0
- package/src/FlowRuntime/WaitingAnnotation.ts +85 -0
- package/src/FlowRuntime/index.ts +17 -0
- package/src/Graph.ts +1865 -0
- package/src/HumanTask.ts +1007 -0
- package/src/Interpreter.ts +1620 -0
- package/src/Poll.ts +420 -0
- package/src/RetryPolicy.ts +550 -0
- package/src/Sleep.ts +296 -0
- package/src/Stall.ts +217 -0
- package/src/WaitFor.ts +228 -0
- package/src/index.ts +125 -0
- package/src/internal/BoundedJson.ts +109 -0
- package/src/internal/DeclarationSite.ts +214 -0
- package/src/internal/Declarations.ts +49 -0
- package/src/internal/ExecutionMiddleware.ts +29 -0
- package/src/internal/JsonSchemaSubset.ts +392 -0
- package/src/internal/OutcomeMarker.ts +19 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var JsonSchemaSubset_exports = {};
|
|
30
|
+
__export(JsonSchemaSubset_exports, {
|
|
31
|
+
answerLimits: () => answerLimits,
|
|
32
|
+
check: () => check,
|
|
33
|
+
maxAnswerBytes: () => maxAnswerBytes,
|
|
34
|
+
maxAnswerDepth: () => maxAnswerDepth,
|
|
35
|
+
maxAnswerNodes: () => maxAnswerNodes,
|
|
36
|
+
maxDiagnosticChars: () => maxDiagnosticChars,
|
|
37
|
+
maxJsonKeyBytes: () => maxJsonKeyBytes,
|
|
38
|
+
maxJsonMembers: () => maxJsonMembers,
|
|
39
|
+
maxJsonStringBytes: () => maxJsonStringBytes,
|
|
40
|
+
maxSchemaBytes: () => maxSchemaBytes,
|
|
41
|
+
maxSchemaDepth: () => maxSchemaDepth,
|
|
42
|
+
maxSchemaNodes: () => maxSchemaNodes,
|
|
43
|
+
maxSchemaValueDepth: () => maxSchemaValueDepth,
|
|
44
|
+
maxSchemaValueNodes: () => maxSchemaValueNodes,
|
|
45
|
+
renderDiagnostic: () => renderDiagnostic,
|
|
46
|
+
schemaLimits: () => schemaLimits,
|
|
47
|
+
truncateDiagnostic: () => truncateDiagnostic,
|
|
48
|
+
validateSchema: () => validateSchema
|
|
49
|
+
});
|
|
50
|
+
module.exports = __toCommonJS(JsonSchemaSubset_exports);
|
|
51
|
+
var BoundedJson = __toESM(require("./BoundedJson.js"), 1);
|
|
52
|
+
const maxSchemaDepth = 32;
|
|
53
|
+
const maxSchemaNodes = 512;
|
|
54
|
+
const maxSchemaValueNodes = 1e4;
|
|
55
|
+
const maxSchemaValueDepth = 64;
|
|
56
|
+
const maxAnswerNodes = 1e4;
|
|
57
|
+
const maxAnswerBytes = 256 * 1024;
|
|
58
|
+
const maxSchemaBytes = 256 * 1024;
|
|
59
|
+
const maxAnswerDepth = 64;
|
|
60
|
+
const maxJsonStringBytes = 128 * 1024;
|
|
61
|
+
const maxJsonKeyBytes = 4 * 1024;
|
|
62
|
+
const maxJsonMembers = 1e4;
|
|
63
|
+
const maxDiagnosticChars = 512;
|
|
64
|
+
const supportedTypes = /* @__PURE__ */ new Set(["object", "array", "string", "number", "integer", "boolean", "null"]);
|
|
65
|
+
const supportedKeywords = [
|
|
66
|
+
"type",
|
|
67
|
+
"enum",
|
|
68
|
+
"properties",
|
|
69
|
+
"required",
|
|
70
|
+
"items",
|
|
71
|
+
"nullable",
|
|
72
|
+
"description",
|
|
73
|
+
"title"
|
|
74
|
+
];
|
|
75
|
+
const truncateDiagnostic = (rendered) => {
|
|
76
|
+
const prefix = BoundedJson.scalarPrefix(rendered, maxDiagnosticChars);
|
|
77
|
+
return prefix.length === rendered.length ? prefix : `${prefix} [${rendered.length - prefix.length} characters dropped]`;
|
|
78
|
+
};
|
|
79
|
+
const renderDiagnostic = (value) => BoundedJson.render(value, maxDiagnosticChars);
|
|
80
|
+
const renderDiagnosticList = (values) => truncateDiagnostic(
|
|
81
|
+
values.slice(0, maxDiagnosticChars).map((value) => BoundedJson.render(value, maxDiagnosticChars)).join(", ")
|
|
82
|
+
);
|
|
83
|
+
const at = (path) => path.length === 0 ? "the answer" : `"${truncateDiagnostic(path.join("."))}"`;
|
|
84
|
+
const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
85
|
+
const jsonEquals = (left, right) => {
|
|
86
|
+
const pending = [[left, right]];
|
|
87
|
+
while (pending.length > 0) {
|
|
88
|
+
const [a, b] = pending.pop();
|
|
89
|
+
if (a === b) continue;
|
|
90
|
+
if (Array.isArray(a)) {
|
|
91
|
+
if (!Array.isArray(b) || a.length !== b.length) return false;
|
|
92
|
+
for (let index = a.length - 1; index >= 0; index--) pending.push([a[index], b[index]]);
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (!isObject(a) || !isObject(b)) return false;
|
|
96
|
+
const aKeys = Object.keys(a).sort();
|
|
97
|
+
const bKeys = Object.keys(b).sort();
|
|
98
|
+
if (aKeys.length !== bKeys.length) return false;
|
|
99
|
+
for (let index = aKeys.length - 1; index >= 0; index--) {
|
|
100
|
+
const aKey = aKeys[index];
|
|
101
|
+
const bKey = bKeys[index];
|
|
102
|
+
if (aKey !== bKey) return false;
|
|
103
|
+
pending.push([a[aKey], b[bKey]]);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return true;
|
|
107
|
+
};
|
|
108
|
+
const answerLimits = {
|
|
109
|
+
maxNodes: maxAnswerNodes,
|
|
110
|
+
maxDepth: maxAnswerDepth,
|
|
111
|
+
maxBytes: maxAnswerBytes,
|
|
112
|
+
maxStringBytes: maxJsonStringBytes,
|
|
113
|
+
maxKeyBytes: maxJsonKeyBytes,
|
|
114
|
+
maxMembers: maxJsonMembers
|
|
115
|
+
};
|
|
116
|
+
const schemaLimits = {
|
|
117
|
+
maxNodes: maxSchemaValueNodes,
|
|
118
|
+
maxDepth: maxSchemaValueDepth,
|
|
119
|
+
maxBytes: maxSchemaBytes,
|
|
120
|
+
maxStringBytes: maxJsonStringBytes,
|
|
121
|
+
maxKeyBytes: maxJsonKeyBytes,
|
|
122
|
+
maxMembers: maxJsonMembers
|
|
123
|
+
};
|
|
124
|
+
const checkAt = (value, schema, path) => {
|
|
125
|
+
const nullable = schema["nullable"] === true;
|
|
126
|
+
const enumeration = schema["enum"];
|
|
127
|
+
if (enumeration !== void 0) {
|
|
128
|
+
const matches = enumeration.some((allowed) => jsonEquals(allowed, value));
|
|
129
|
+
if (!matches) return `${at(path)} must be one of ${renderDiagnosticList(enumeration)}.`;
|
|
130
|
+
}
|
|
131
|
+
const type = schema["type"];
|
|
132
|
+
if (!(nullable && value === null) && type !== void 0) {
|
|
133
|
+
const typeComplaint = type === "object" ? isObject(value) ? void 0 : `${at(path)} must be an object.` : type === "array" ? Array.isArray(value) ? void 0 : `${at(path)} must be an array.` : type === "integer" ? Number.isInteger(value) ? void 0 : `${at(path)} must be an integer.` : type === "number" ? typeof value === "number" ? void 0 : `${at(path)} must be a number.` : type === "string" ? typeof value === "string" ? void 0 : `${at(path)} must be a string.` : type === "boolean" ? typeof value === "boolean" ? void 0 : `${at(path)} must be a boolean.` : value === null ? void 0 : `${at(path)} must be null.`;
|
|
134
|
+
if (typeComplaint !== void 0) return typeComplaint;
|
|
135
|
+
}
|
|
136
|
+
if (isObject(value)) {
|
|
137
|
+
const required = schema["required"];
|
|
138
|
+
if (Array.isArray(required)) {
|
|
139
|
+
const missing = required.find((key) => !Object.hasOwn(value, key));
|
|
140
|
+
if (missing !== void 0) {
|
|
141
|
+
return `${at(path)} is missing the required property "${truncateDiagnostic(String(missing))}".`;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const properties = schema["properties"];
|
|
145
|
+
if (isObject(properties)) {
|
|
146
|
+
for (const [key, property] of Object.entries(properties)) {
|
|
147
|
+
if (!Object.hasOwn(value, key)) continue;
|
|
148
|
+
const rejection = checkAt(value[key], property, [...path, key]);
|
|
149
|
+
if (rejection !== void 0) return rejection;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (Array.isArray(value)) {
|
|
154
|
+
const items = schema["items"];
|
|
155
|
+
if (items !== void 0) {
|
|
156
|
+
for (const [index, element] of value.entries()) {
|
|
157
|
+
const rejection = checkAt(element, items, [...path, String(index)]);
|
|
158
|
+
if (rejection !== void 0) return rejection;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return void 0;
|
|
163
|
+
};
|
|
164
|
+
const check = (value, schema) => {
|
|
165
|
+
const admittedSchema = BoundedJson.admit(schema, schemaLimits);
|
|
166
|
+
if (!admittedSchema.ok) return admittedSchema.complaint;
|
|
167
|
+
const schemaComplaint = validateSchemaAt(admittedSchema.value, [], 0, { visited: 0 });
|
|
168
|
+
if (schemaComplaint !== void 0) return schemaComplaint;
|
|
169
|
+
const admittedAnswer = BoundedJson.admit(value, answerLimits);
|
|
170
|
+
if (!admittedAnswer.ok) return admittedAnswer.complaint;
|
|
171
|
+
return checkAt(admittedAnswer.value, admittedSchema.value, []);
|
|
172
|
+
};
|
|
173
|
+
const validateSchemaAt = (schema, path, depth, budget) => {
|
|
174
|
+
if (depth > maxSchemaDepth) {
|
|
175
|
+
return `${at(path)} exceeds the maximum JSON Schema depth of ${maxSchemaDepth}.`;
|
|
176
|
+
}
|
|
177
|
+
budget.visited++;
|
|
178
|
+
if (budget.visited > maxSchemaNodes) {
|
|
179
|
+
return `${at(path)} exceeds the maximum JSON Schema node count of ${maxSchemaNodes}.`;
|
|
180
|
+
}
|
|
181
|
+
if (!isObject(schema)) return `${at(path)} is described by something that is not a JSON Schema object.`;
|
|
182
|
+
const unsupported = Object.keys(schema).find((keyword) => !supportedKeywords.includes(keyword));
|
|
183
|
+
if (unsupported !== void 0) {
|
|
184
|
+
return `${at(path)} uses the unsupported JSON Schema keyword "${truncateDiagnostic(unsupported)}".`;
|
|
185
|
+
}
|
|
186
|
+
const enumeration = schema["enum"];
|
|
187
|
+
if (enumeration !== void 0 && !Array.isArray(enumeration)) {
|
|
188
|
+
return `${at(path)} declares an "enum" that is not an array.`;
|
|
189
|
+
}
|
|
190
|
+
if (Array.isArray(enumeration) && enumeration.length === 0) {
|
|
191
|
+
return `${at(path)} declares an empty "enum".`;
|
|
192
|
+
}
|
|
193
|
+
if (Object.hasOwn(schema, "required")) {
|
|
194
|
+
const required = schema["required"];
|
|
195
|
+
if (!Array.isArray(required)) return `${at([...path, "required"])} is not an array.`;
|
|
196
|
+
const invalid = required.findIndex((key) => typeof key !== "string");
|
|
197
|
+
if (invalid !== -1) return `${at([...path, "required", String(invalid)])} is not a string.`;
|
|
198
|
+
if (new Set(required).size !== required.length) {
|
|
199
|
+
return `${at([...path, "required"])} contains a duplicate property name.`;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (Object.hasOwn(schema, "nullable") && typeof schema["nullable"] !== "boolean") {
|
|
203
|
+
return `${at([...path, "nullable"])} is not a boolean.`;
|
|
204
|
+
}
|
|
205
|
+
const type = schema["type"];
|
|
206
|
+
if (type !== void 0 && (typeof type !== "string" || !supportedTypes.has(type))) {
|
|
207
|
+
return `${at(path)} declares the unsupported JSON Schema type ${renderDiagnostic(type)}.`;
|
|
208
|
+
}
|
|
209
|
+
for (const keyword of ["description", "title"]) {
|
|
210
|
+
if (Object.hasOwn(schema, keyword) && typeof schema[keyword] !== "string") {
|
|
211
|
+
return `${at([...path, keyword])} is not a string.`;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
const properties = schema["properties"];
|
|
215
|
+
if (properties !== void 0) {
|
|
216
|
+
if (!isObject(properties)) return `${at(path)} declares "properties" that is not an object.`;
|
|
217
|
+
for (const [key, property] of Object.entries(properties)) {
|
|
218
|
+
const complaint = validateSchemaAt(property, [...path, key], depth + 1, budget);
|
|
219
|
+
if (complaint !== void 0) return complaint;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
const items = schema["items"];
|
|
223
|
+
return items === void 0 ? void 0 : validateSchemaAt(items, [...path, "items"], depth + 1, budget);
|
|
224
|
+
};
|
|
225
|
+
const validateSchema = (schema, path) => {
|
|
226
|
+
const admitted = BoundedJson.admit(schema, schemaLimits);
|
|
227
|
+
return admitted.ok ? validateSchemaAt(admitted.value, path, 0, { visited: 0 }) : admitted.complaint;
|
|
228
|
+
};
|
|
229
|
+
//# sourceMappingURL=JsonSchemaSubset.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/JsonSchemaSubset.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * The bounded JSON Schema subset a human-task answer is checked against.\n *\n * `HumanTask` asks a person for a value and refuses one that does not fit the\n * question. The fit for a `json` question is decided here: a schema is kept\n * inside a deliberately small subset, an answer is checked against it under\n * the same size bounds every human-task value is admitted under, and every\n * rejection is rendered within one diagnostic budget. `HumanTask` re-exports\n * the limits and the two public entry points; this file is the mechanism.\n *\n * @since 1.0.0\n */\n\nimport * as BoundedJson from \"./BoundedJson.ts\"\n\n/**\n * The deepest supported JSON Schema path, counting the root as depth zero.\n *\n * @private\n * @since 1.0.0\n */\nexport const maxSchemaDepth = 32\n\n/**\n * The most schema objects one human-task request may contain.\n *\n * @private\n * @since 1.0.0\n */\nexport const maxSchemaNodes = 512\n\n/**\n * The most JSON values embedded across schema keywords such as `enum`.\n *\n * @private\n * @since 1.0.0\n */\nexport const maxSchemaValueNodes = 10_000\n\n/**\n * The deepest JSON value embedded in a schema, including enum members.\n *\n * @private\n * @since 1.0.0\n */\nexport const maxSchemaValueDepth = 64\n\n/**\n * The most JSON values one answer validation may visit.\n *\n * @private\n * @since 1.0.0\n */\nexport const maxAnswerNodes = 10_000\n\n/**\n * The largest encoded JSON answer that can enter the durable store.\n *\n * @private\n * @since 1.0.0\n */\nexport const maxAnswerBytes = 256 * 1024\n\n/**\n * The largest encoded JSON Schema carried by one question.\n *\n * @private\n * @since 1.0.0\n */\nexport const maxSchemaBytes = 256 * 1024\n\n/**\n * The deepest admitted answer tree.\n *\n * @private\n * @since 1.0.0\n */\nexport const maxAnswerDepth = 64\n\n/**\n * The largest encoded string value admitted in a request or answer.\n *\n * @private\n * @since 1.0.0\n */\nexport const maxJsonStringBytes = 128 * 1024\n\n/**\n * The largest encoded object key admitted in a request or answer.\n *\n * @private\n * @since 1.0.0\n */\nexport const maxJsonKeyBytes = 4 * 1024\n\n/**\n * The most members admitted in one JSON array or object.\n *\n * @private\n * @since 1.0.0\n */\nexport const maxJsonMembers = 10_000\n\n/**\n * The most caller-supplied characters retained in one rendered diagnostic.\n *\n * @private\n * @since 1.0.0\n */\nexport const maxDiagnosticChars = 512\n\n/** The JSON Schema types the bounded subset understands. */\nconst supportedTypes = new Set([\"object\", \"array\", \"string\", \"number\", \"integer\", \"boolean\", \"null\"])\n\n/** The JSON Schema keywords the bounded subset understands. */\nconst supportedKeywords = [\n \"type\",\n \"enum\",\n \"properties\",\n \"required\",\n \"items\",\n \"nullable\",\n \"description\",\n \"title\"\n]\n\n/** Truncates a caller-supplied diagnostic while stating exactly what was dropped.\n * @private\n * @since 1.0.0\n */\nexport const truncateDiagnostic = (rendered: string): string => {\n const prefix = BoundedJson.scalarPrefix(rendered, maxDiagnosticChars)\n return prefix.length === rendered.length\n ? prefix\n : `${prefix} [${rendered.length - prefix.length} characters dropped]`\n}\n\n/** Renders one JSON value for a bounded rejection message.\n * @private\n * @since 1.0.0\n */\nexport const renderDiagnostic = (value: unknown): string => BoundedJson.render(value, maxDiagnosticChars)\n\n/**\n * Renders a value list in its comma-separated diagnostic shape.\n *\n * Every member renders to at least one character, so members past the\n * diagnostic budget can never survive truncation and are not rendered at all.\n */\nconst renderDiagnosticList = (values: ReadonlyArray<unknown>): string =>\n truncateDiagnostic(\n values.slice(0, maxDiagnosticChars).map((value) => BoundedJson.render(value, maxDiagnosticChars)).join(\", \")\n )\n\n/** Renders a JSON pointer-ish path for a rejection message. */\nconst at = (path: ReadonlyArray<string>): string =>\n path.length === 0 ? \"the answer\" : `\"${truncateDiagnostic(path.join(\".\"))}\"`\n\n/** Whether a value is a plain JSON object rather than an array or a null. */\nconst isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value)\n\n/** Compares two JSON values structurally without depending on object key order. */\nconst jsonEquals = (left: unknown, right: unknown): boolean => {\n const pending: Array<readonly [unknown, unknown]> = [[left, right]]\n while (pending.length > 0) {\n const [a, b] = pending.pop()!\n if (a === b) continue\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) return false\n for (let index = a.length - 1; index >= 0; index--) pending.push([a[index], b[index]])\n continue\n }\n if (!isObject(a) || !isObject(b)) return false\n const aKeys = Object.keys(a).sort()\n const bKeys = Object.keys(b).sort()\n if (aKeys.length !== bKeys.length) return false\n for (let index = aKeys.length - 1; index >= 0; index--) {\n const aKey = aKeys[index]!\n const bKey = bKeys[index]!\n if (aKey !== bKey) return false\n pending.push([a[aKey], b[bKey]])\n }\n }\n return true\n}\n\n/** The bounds one answer is admitted under.\n * @private\n * @since 1.0.0\n */\nexport const answerLimits: BoundedJson.Limits = {\n maxNodes: maxAnswerNodes,\n maxDepth: maxAnswerDepth,\n maxBytes: maxAnswerBytes,\n maxStringBytes: maxJsonStringBytes,\n maxKeyBytes: maxJsonKeyBytes,\n maxMembers: maxJsonMembers\n}\n\n/** The bounds one schema is admitted under, enum members included.\n * @private\n * @since 1.0.0\n */\nexport const schemaLimits: BoundedJson.Limits = {\n maxNodes: maxSchemaValueNodes,\n maxDepth: maxSchemaValueDepth,\n maxBytes: maxSchemaBytes,\n maxStringBytes: maxJsonStringBytes,\n maxKeyBytes: maxJsonKeyBytes,\n maxMembers: maxJsonMembers\n}\n\n/**\n * Checks a value against the bounded JSON Schema subset, returning the first\n * reason it does not fit.\n *\n * The subset is `type` (`object`, `array`, `string`, `number`, `integer`,\n * `boolean`, `null`), `enum`, `properties`, `required`, `items`, and\n * `nullable`. It is deliberately small: a human-task schema exists to say what\n * shape an answer takes, and every keyword beyond these describes a constraint\n * a person cannot be usefully re-asked about. A schema that reaches outside it\n * is refused as `request_invalid` rather than silently ignored, because a\n * quietly dropped constraint reads as a validation that passed.\n *\n * Presence is `Object.hasOwn`, never the `in` operator. An answer is a decoded\n * JSON object, so every property it really has is its own; `in` also reports\n * `Object.prototype`'s members, which would accept a missing required\n * `toString` and check a `constructor` nobody answered against the schema for\n * one.\n *\n * @private\n */\nconst checkAt = (\n value: unknown,\n schema: Record<string, unknown>,\n path: ReadonlyArray<string>\n): string | undefined => {\n const nullable = schema[\"nullable\"] === true\n const enumeration = schema[\"enum\"]\n if (enumeration !== undefined) {\n const matches = (enumeration as ReadonlyArray<unknown>).some((allowed) => jsonEquals(allowed, value))\n if (!matches) return `${at(path)} must be one of ${renderDiagnosticList(enumeration as ReadonlyArray<unknown>)}.`\n }\n const type = schema[\"type\"]\n if (!(nullable && value === null) && type !== undefined) {\n const typeComplaint = type === \"object\"\n ? isObject(value) ? undefined : `${at(path)} must be an object.`\n : type === \"array\"\n ? Array.isArray(value) ? undefined : `${at(path)} must be an array.`\n : type === \"integer\"\n ? Number.isInteger(value) ? undefined : `${at(path)} must be an integer.`\n : type === \"number\"\n // Bounded JSON admission already rejected every non-finite number.\n ? typeof value === \"number\" ? undefined : `${at(path)} must be a number.`\n : type === \"string\"\n ? typeof value === \"string\" ? undefined : `${at(path)} must be a string.`\n : type === \"boolean\"\n ? typeof value === \"boolean\" ? undefined : `${at(path)} must be a boolean.`\n : value === null\n ? undefined\n : `${at(path)} must be null.`\n if (typeComplaint !== undefined) return typeComplaint\n }\n\n // Object and array keywords are independent constraints. JSON Schema does\n // not require a sibling `type`; they apply whenever the instance has the\n // relevant shape and are otherwise ignored.\n if (isObject(value)) {\n const required = schema[\"required\"]\n if (Array.isArray(required)) {\n const missing = required.find((key) => !Object.hasOwn(value, key as string))\n if (missing !== undefined) {\n return `${at(path)} is missing the required property \"${truncateDiagnostic(String(missing))}\".`\n }\n }\n const properties = schema[\"properties\"]\n if (isObject(properties)) {\n for (const [key, property] of Object.entries(properties)) {\n if (!Object.hasOwn(value, key)) continue\n const rejection = checkAt(value[key], property as Record<string, unknown>, [...path, key])\n if (rejection !== undefined) return rejection\n }\n }\n }\n if (Array.isArray(value)) {\n const items = schema[\"items\"]\n if (items !== undefined) {\n for (const [index, element] of value.entries()) {\n const rejection = checkAt(element, items as Record<string, unknown>, [...path, String(index)])\n if (rejection !== undefined) return rejection\n }\n }\n }\n return undefined\n}\n\n/** Checks schema validity and snapshots both inputs before walking them together.\n * @private\n * @since 1.0.0\n */\nexport const check = (value: unknown, schema: unknown): string | undefined => {\n const admittedSchema = BoundedJson.admit(schema, schemaLimits)\n if (!admittedSchema.ok) return admittedSchema.complaint\n const schemaComplaint = validateSchemaAt(admittedSchema.value, [], 0, { visited: 0 })\n if (schemaComplaint !== undefined) return schemaComplaint\n const admittedAnswer = BoundedJson.admit(value, answerLimits)\n if (!admittedAnswer.ok) return admittedAnswer.complaint\n return checkAt(admittedAnswer.value, admittedSchema.value as Record<string, unknown>, [])\n}\n\ninterface SchemaBudget {\n visited: number\n}\n\n/** Walks one schema node under a shared depth and node budget. */\nconst validateSchemaAt = (\n schema: unknown,\n path: ReadonlyArray<string>,\n depth: number,\n budget: SchemaBudget\n): string | undefined => {\n if (depth > maxSchemaDepth) {\n return `${at(path)} exceeds the maximum JSON Schema depth of ${maxSchemaDepth}.`\n }\n budget.visited++\n if (budget.visited > maxSchemaNodes) {\n return `${at(path)} exceeds the maximum JSON Schema node count of ${maxSchemaNodes}.`\n }\n if (!isObject(schema)) return `${at(path)} is described by something that is not a JSON Schema object.`\n const unsupported = Object.keys(schema).find((keyword) => !supportedKeywords.includes(keyword))\n if (unsupported !== undefined) {\n return `${at(path)} uses the unsupported JSON Schema keyword \"${truncateDiagnostic(unsupported)}\".`\n }\n const enumeration = schema[\"enum\"]\n if (enumeration !== undefined && !Array.isArray(enumeration)) {\n return `${at(path)} declares an \"enum\" that is not an array.`\n }\n if (Array.isArray(enumeration) && enumeration.length === 0) {\n return `${at(path)} declares an empty \"enum\".`\n }\n if (Object.hasOwn(schema, \"required\")) {\n const required = schema[\"required\"]\n if (!Array.isArray(required)) return `${at([...path, \"required\"])} is not an array.`\n const invalid = required.findIndex((key) => typeof key !== \"string\")\n if (invalid !== -1) return `${at([...path, \"required\", String(invalid)])} is not a string.`\n if (new Set(required).size !== required.length) {\n return `${at([...path, \"required\"])} contains a duplicate property name.`\n }\n }\n if (Object.hasOwn(schema, \"nullable\") && typeof schema[\"nullable\"] !== \"boolean\") {\n return `${at([...path, \"nullable\"])} is not a boolean.`\n }\n const type = schema[\"type\"]\n if (type !== undefined && (typeof type !== \"string\" || !supportedTypes.has(type))) {\n return `${at(path)} declares the unsupported JSON Schema type ${renderDiagnostic(type)}.`\n }\n for (const keyword of [\"description\", \"title\"] as const) {\n if (Object.hasOwn(schema, keyword) && typeof schema[keyword] !== \"string\") {\n return `${at([...path, keyword])} is not a string.`\n }\n }\n const properties = schema[\"properties\"]\n if (properties !== undefined) {\n if (!isObject(properties)) return `${at(path)} declares \"properties\" that is not an object.`\n for (const [key, property] of Object.entries(properties)) {\n const complaint = validateSchemaAt(property, [...path, key], depth + 1, budget)\n if (complaint !== undefined) return complaint\n }\n }\n const items = schema[\"items\"]\n return items === undefined ? undefined : validateSchemaAt(items, [...path, \"items\"], depth + 1, budget)\n}\n\n/**\n * Checks that a JSON Schema stays inside the bounded subset, at every depth.\n *\n * Returns the first reason the schema is out of bounds, or `undefined` when the\n * whole tree is inside it.\n *\n * @private\n * @since 1.0.0\n */\nexport const validateSchema = (\n schema: unknown,\n path: ReadonlyArray<string>\n): string | undefined => {\n const admitted = BoundedJson.admit(schema, schemaLimits)\n return admitted.ok\n ? validateSchemaAt(admitted.value, path, 0, { visited: 0 })\n : admitted.complaint\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two markers that let `Flow.isOutcome` tell an authored `done`/`to`/`park`
|
|
3
|
+
* from ordinary data. `Flow/Outcome.ts` stamps the node marker, `Graph.build`
|
|
4
|
+
* and the interpreter stamp the value marker, and `isOutcome` reads it.
|
|
5
|
+
*
|
|
6
|
+
* @since 0.1.0
|
|
7
|
+
*/
|
|
8
|
+
/** Stamped on the AST of a node built by `done`/`to`/`park`.
|
|
9
|
+
* @private
|
|
10
|
+
* @since 0.1.0
|
|
11
|
+
*/
|
|
12
|
+
export declare const OutcomeNodeTypeId: unique symbol;
|
|
13
|
+
/** Stamped on a resolved outcome value.
|
|
14
|
+
* @private
|
|
15
|
+
* @since 0.1.0
|
|
16
|
+
*/
|
|
17
|
+
export declare const OutcomeValueTypeId: unique symbol;
|
|
18
|
+
//# sourceMappingURL=OutcomeMarker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutcomeMarker.d.ts","sourceRoot":"","sources":["../../../src/internal/OutcomeMarker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAO,MAAoD,CAAA;AAE3F;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAO,MAAqD,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var OutcomeMarker_exports = {};
|
|
20
|
+
__export(OutcomeMarker_exports, {
|
|
21
|
+
OutcomeNodeTypeId: () => OutcomeNodeTypeId,
|
|
22
|
+
OutcomeValueTypeId: () => OutcomeValueTypeId
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(OutcomeMarker_exports);
|
|
25
|
+
const OutcomeNodeTypeId = /* @__PURE__ */ Symbol.for("@smthrs/flow/Flow/OutcomeNode");
|
|
26
|
+
const OutcomeValueTypeId = /* @__PURE__ */ Symbol.for("@smthrs/flow/Flow/OutcomeValue");
|
|
27
|
+
//# sourceMappingURL=OutcomeMarker.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/OutcomeMarker.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * The two markers that let `Flow.isOutcome` tell an authored `done`/`to`/`park`\n * from ordinary data. `Flow/Outcome.ts` stamps the node marker, `Graph.build`\n * and the interpreter stamp the value marker, and `isOutcome` reads it.\n *\n * @since 0.1.0\n */\n\n/** Stamped on the AST of a node built by `done`/`to`/`park`.\n * @private\n * @since 0.1.0\n */\nexport const OutcomeNodeTypeId: unique symbol = Symbol.for(\"@smthrs/flow/Flow/OutcomeNode\")\n\n/** Stamped on a resolved outcome value.\n * @private\n * @since 0.1.0\n */\nexport const OutcomeValueTypeId: unique symbol = Symbol.for(\"@smthrs/flow/Flow/OutcomeValue\")\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,oBAAmC,uBAAO,IAAI,+BAA+B;AAMnF,MAAM,qBAAoC,uBAAO,IAAI,gCAAgC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines the schemas and interfaces of a durable action.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Effects from "@smthrs/plan/Effects";
|
|
7
|
+
import type * as Node from "@smthrs/plan/Node";
|
|
8
|
+
import type * as Planned from "@smthrs/plan/Planned";
|
|
9
|
+
import type * as Context from "effect/Context";
|
|
10
|
+
import type * as Crypto from "effect/Crypto";
|
|
11
|
+
import type * as Effect from "effect/Effect";
|
|
12
|
+
import type * as Layer from "effect/Layer";
|
|
13
|
+
import * as Schema from "effect/Schema";
|
|
14
|
+
import type { Scope } from "effect/Scope";
|
|
15
|
+
import type { AnyStructSchema } from "../Flow/Flow.ts";
|
|
16
|
+
import type { FlowInstance, FlowRuntime } from "../FlowRuntime/index.ts";
|
|
17
|
+
import type * as RetryPolicy from "../RetryPolicy.ts";
|
|
18
|
+
import type { FileBoundary } from "./FileBoundary.ts";
|
|
19
|
+
import type { Implementation } from "./Implementations.ts";
|
|
20
|
+
import type { TypeId } from "./TypeId.ts";
|
|
21
|
+
/**
|
|
22
|
+
* The durability and retry semantics of an action.
|
|
23
|
+
*
|
|
24
|
+
* The schema is `@smthrs/plan`'s `Effects.Tier`: an action's durability, a
|
|
25
|
+
* declared envelope's ceiling and `KeyMaterial.kind` are the same three words,
|
|
26
|
+
* and they are declared once.
|
|
27
|
+
*
|
|
28
|
+
* @category models
|
|
29
|
+
* @since 0.1.0
|
|
30
|
+
*/
|
|
31
|
+
export declare const Tier: Schema.Literals<readonly ["sealed", "compensable", "irreversible"]>;
|
|
32
|
+
/**
|
|
33
|
+
* The durability and retry semantics of an action.
|
|
34
|
+
*
|
|
35
|
+
* @category models
|
|
36
|
+
* @since 0.1.0
|
|
37
|
+
*/
|
|
38
|
+
export type Tier = Effects.Tier;
|
|
39
|
+
/**
|
|
40
|
+
* Schema for caller-declared sealed action identity.
|
|
41
|
+
*
|
|
42
|
+
* @category models
|
|
43
|
+
* @since 0.1.0
|
|
44
|
+
*/
|
|
45
|
+
export declare const IdempotencyKey: Schema.Union<readonly [Schema.String, Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>]>;
|
|
46
|
+
/**
|
|
47
|
+
* Caller-declared sealed action identity.
|
|
48
|
+
*
|
|
49
|
+
* A string is namespaced by the action declaration. A JSON object is
|
|
50
|
+
* caller-owned and remains stable across action renames. Runtime
|
|
51
|
+
* environment and filesystem facts are always added by the engine. An explicit
|
|
52
|
+
* implementation version is also separate engine key material; a caller-owned
|
|
53
|
+
* object cannot mask it with a field of the same name.
|
|
54
|
+
*
|
|
55
|
+
* @category models
|
|
56
|
+
* @since 0.1.0
|
|
57
|
+
*/
|
|
58
|
+
export type IdempotencyKey = typeof IdempotencyKey.Type;
|
|
59
|
+
/**
|
|
60
|
+
* Recursively permits planned references wherever a declared action payload
|
|
61
|
+
* accepts a concrete value.
|
|
62
|
+
*
|
|
63
|
+
* @category models
|
|
64
|
+
* @since 0.1.0
|
|
65
|
+
*/
|
|
66
|
+
export type PlannedPayload<T> = Planned.Planned<T> | ([T] extends [ReadonlyArray<infer Value>] ? ReadonlyArray<PlannedPayload<Value>> : [T] extends [object] ? {
|
|
67
|
+
readonly [Key in keyof T]: PlannedPayload<T[Key]>;
|
|
68
|
+
} : T);
|
|
69
|
+
/**
|
|
70
|
+
* The requirement one declared action mints for itself, identified by its
|
|
71
|
+
* tag.
|
|
72
|
+
*
|
|
73
|
+
* A declaration is data that travels everywhere and carries no code, so a body
|
|
74
|
+
* that calls it names an implementation it does not hold. This type is that
|
|
75
|
+
* "does not hold", stated to the compiler: `Charge.call(...)` produces a node
|
|
76
|
+
* requiring `Requirement<"payments/Charge">`, `Charge.toLayer(...)` produces a
|
|
77
|
+
* layer providing it, and `Flow.execute` is where the two have to meet. It is
|
|
78
|
+
* phantom — nothing reads it, and nothing about planning, keying, or replay
|
|
79
|
+
* changes with it.
|
|
80
|
+
*
|
|
81
|
+
* @category models
|
|
82
|
+
* @since 0.1.0
|
|
83
|
+
*/
|
|
84
|
+
export interface Requirement<Tag extends string> {
|
|
85
|
+
readonly _: unique symbol;
|
|
86
|
+
readonly _tag: Tag;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* A named action declaration whose implementation is supplied separately
|
|
90
|
+
* through a layer and whose calls only add nodes to a plan.
|
|
91
|
+
*
|
|
92
|
+
* `Requires` is what `.call()` puts in the requirement channel of the node it
|
|
93
|
+
* records. It is this action's own {@link Requirement} for an ordinary
|
|
94
|
+
* declaration, and `never` for a system declaration the engine itself
|
|
95
|
+
* implements ({@link module:make.makeSystem}).
|
|
96
|
+
*
|
|
97
|
+
* @category models
|
|
98
|
+
* @since 0.1.0
|
|
99
|
+
*/
|
|
100
|
+
export interface Declared<Tag extends string, Payload extends AnyStructSchema, Success extends Schema.Top, Error extends Schema.Top, Requires = Requirement<Tag>> {
|
|
101
|
+
readonly [TypeId]: typeof TypeId;
|
|
102
|
+
readonly name: Tag;
|
|
103
|
+
/**
|
|
104
|
+
* Semantic implementation identity. Changing it requires a newly planned
|
|
105
|
+
* execution; it is not an in-place upgrade of a persisted run. Canonical
|
|
106
|
+
* composition requires it for sealed actions with an idempotency key.
|
|
107
|
+
* Invocation-scoped actions may omit it; low-level keyed legacy callers
|
|
108
|
+
* retain their old handler-reuse contract when it is absent.
|
|
109
|
+
*/
|
|
110
|
+
readonly implementationVersion: string | undefined;
|
|
111
|
+
readonly payloadSchema: Payload;
|
|
112
|
+
readonly successSchema: Success;
|
|
113
|
+
readonly errorSchema: Error;
|
|
114
|
+
readonly tier: Tier;
|
|
115
|
+
readonly idempotencyKey: IdempotencyKey | ((payload: Payload["Type"]) => IdempotencyKey) | undefined;
|
|
116
|
+
/** Allows multiple legitimate sealed results to race under one cache key. */
|
|
117
|
+
readonly nondeterministic: true | undefined;
|
|
118
|
+
/** Durable retry policy applied to every implementation invocation. */
|
|
119
|
+
readonly retryPolicy: RetryPolicy.RetryPolicy | undefined;
|
|
120
|
+
/** Milliseconds one attempt may run before it fails with `AttemptTimedOut`. */
|
|
121
|
+
readonly attemptTimeoutMs: number | undefined;
|
|
122
|
+
/** Milliseconds one attempt may go without `Action.heartbeat` before it fails. */
|
|
123
|
+
readonly heartbeatTimeoutMs: number | undefined;
|
|
124
|
+
/** Filesystem declaration, optionally derived from the decoded payload. */
|
|
125
|
+
readonly fileBoundary: FileBoundary | ((payload: Payload["Type"]) => FileBoundary) | undefined;
|
|
126
|
+
readonly annotations: Context.Context<never>;
|
|
127
|
+
/**
|
|
128
|
+
* The context key this declaration's implementation is provided under, and
|
|
129
|
+
* the identity behind {@link Requirement}.
|
|
130
|
+
*
|
|
131
|
+
* `toLayer` provides it; a composition that would rather hand the runtime an
|
|
132
|
+
* implementation directly can provide it itself with `Layer.succeed`. Its
|
|
133
|
+
* string key is derived from the action tag, so two declarations of one tag
|
|
134
|
+
* name one slot.
|
|
135
|
+
*/
|
|
136
|
+
readonly requirement: Context.Service<Requirement<Tag>, Implementation>;
|
|
137
|
+
annotate<I, S>(key: Context.Key<I, S>, value: S): Declared<Tag, Payload, Success, Error, Requires>;
|
|
138
|
+
annotateMerge<I>(annotations: Context.Context<I>): Declared<Tag, Payload, Success, Error, Requires>;
|
|
139
|
+
readonly call: (payload: PlannedPayload<Payload["~type.make.in"]>) => Node.Node<Success["Type"], Error["Type"], Requires>;
|
|
140
|
+
/**
|
|
141
|
+
* Attaches the implementation and yields the layer that provides this
|
|
142
|
+
* declaration's {@link Requirement}. A versioned declaration requires the
|
|
143
|
+
* same `implementationVersion` here; a mismatch throws
|
|
144
|
+
* `ImplementationVersionMismatch` before registration. The version must cover
|
|
145
|
+
* handler semantics and semantic service/configuration changes, not merely a
|
|
146
|
+
* package publication label. Source text is never inferred as that identity.
|
|
147
|
+
*
|
|
148
|
+
* Let inference name the returned layer's requirements. The requirement
|
|
149
|
+
* channel is what a composition trusts: a layer type that under-declares it
|
|
150
|
+
* still typechecks at `Effect.provide` and dies at runtime as a missing
|
|
151
|
+
* service. A concrete hand annotation cannot lie — dropping a service from
|
|
152
|
+
* it is a compile error — but a GENERIC one can: when the annotated
|
|
153
|
+
* requirement union keeps a deferred member such as
|
|
154
|
+
* `Output["DecodingServices"]` (constrained only as `unknown` through
|
|
155
|
+
* `Schema.Top`), TypeScript lets that member absorb every concrete service
|
|
156
|
+
* the annotation dropped, and the drop compiles. A wrapper that must
|
|
157
|
+
* annotate — a public interface naming its layer's type, say — therefore
|
|
158
|
+
* pins the set at a concrete instantiation, where the check works again:
|
|
159
|
+
*
|
|
160
|
+
* ```ts
|
|
161
|
+
* // Wrapped.layer is the wrapper's hand-annotated toLayer result, held
|
|
162
|
+
* // here with every schema argument concrete.
|
|
163
|
+
* type Needed = Layer.Services<typeof Wrapped.layer>
|
|
164
|
+
* expectTypeOf<Meter extends Needed ? true : false>().toEqualTypeOf<true>()
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
readonly toLayer: <R>(execute: (payload: Payload["Type"]) => Effect.Effect<Success["Type"], Error["Type"], R>, options?: {
|
|
168
|
+
readonly override?: boolean;
|
|
169
|
+
/** Must exactly match the declaration, including absence on legacy declarations. */
|
|
170
|
+
readonly implementationVersion?: string | undefined;
|
|
171
|
+
}) => Layer.Layer<Requires, never, FlowRuntime | Exclude<R, FlowRuntime | FlowInstance | Scope> | Payload["DecodingServices"] | Payload["EncodingServices"] | Success["DecodingServices"] | Success["EncodingServices"] | Error["DecodingServices"] | Error["EncodingServices"]>;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Durable flow action that behaves as an `Effect` and records its name,
|
|
175
|
+
* result schemas, annotations, and encoded execution form for the flow
|
|
176
|
+
* engine.
|
|
177
|
+
*
|
|
178
|
+
* @category models
|
|
179
|
+
* @since 0.1.0
|
|
180
|
+
*/
|
|
181
|
+
export interface Action<Success extends Schema.Constraint = Schema.Void, Error extends Schema.Constraint = Schema.Never, R = never> extends Effect.Effect<Success["Type"], Error["Type"], Success["DecodingServices"] | Error["DecodingServices"] | R | Crypto.Crypto | FlowRuntime | FlowInstance> {
|
|
182
|
+
readonly [TypeId]: typeof TypeId;
|
|
183
|
+
readonly name: string;
|
|
184
|
+
readonly implementationVersion?: string | undefined;
|
|
185
|
+
readonly successSchema: Success;
|
|
186
|
+
readonly errorSchema: Error;
|
|
187
|
+
readonly exitSchema: Schema.Exit<Success, Error, Schema.Defect>;
|
|
188
|
+
readonly exitSchemaPartial: Schema.Exit<Success, Error, Schema.Unknown>;
|
|
189
|
+
readonly annotations: Context.Context<never>;
|
|
190
|
+
readonly tier: Tier;
|
|
191
|
+
readonly idempotencyKey: IdempotencyKey | undefined;
|
|
192
|
+
/** Allows multiple legitimate sealed results to race under one cache key. */
|
|
193
|
+
readonly nondeterministic: true | undefined;
|
|
194
|
+
readonly metadata: unknown;
|
|
195
|
+
/** Typed filesystem boundary used by the durable engine. */
|
|
196
|
+
readonly fileBoundary: FileBoundary | undefined;
|
|
197
|
+
readonly retryPolicy: RetryPolicy.RetryPolicy | undefined;
|
|
198
|
+
/** Milliseconds one attempt may run before it fails with `AttemptTimedOut`. */
|
|
199
|
+
readonly attemptTimeoutMs: number | undefined;
|
|
200
|
+
/** Milliseconds one attempt may go without `Action.heartbeat` before it fails. */
|
|
201
|
+
readonly heartbeatTimeoutMs: number | undefined;
|
|
202
|
+
annotate<I, S>(key: Context.Key<I, S>, value: S): Action<Success, Error, R>;
|
|
203
|
+
annotateMerge<I>(annotations: Context.Context<I>): Action<Success, Error, R>;
|
|
204
|
+
readonly execute: Effect.Effect<Success["Type"], Error["Type"], Success["DecodingServices"] | Success["EncodingServices"] | Error["DecodingServices"] | Error["EncodingServices"] | R | Crypto.Crypto | Scope | FlowRuntime | FlowInstance>;
|
|
205
|
+
readonly executeEncoded: Effect.Effect<unknown, unknown, Success["DecodingServices"] | Success["EncodingServices"] | Error["DecodingServices"] | Error["EncodingServices"] | R | Crypto.Crypto | Scope | FlowRuntime | FlowInstance>;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Type-erased action shape for APIs that only need the action identity,
|
|
209
|
+
* name, annotations, and encoded execution.
|
|
210
|
+
*
|
|
211
|
+
* @category models
|
|
212
|
+
* @since 0.1.0
|
|
213
|
+
*/
|
|
214
|
+
export interface Any {
|
|
215
|
+
readonly [TypeId]: typeof TypeId;
|
|
216
|
+
readonly name: string;
|
|
217
|
+
readonly implementationVersion?: string | undefined;
|
|
218
|
+
readonly executeEncoded: Effect.Effect<any, any, any>;
|
|
219
|
+
readonly annotations: Context.Context<never>;
|
|
220
|
+
readonly tier: Tier;
|
|
221
|
+
readonly idempotencyKey: IdempotencyKey | undefined;
|
|
222
|
+
readonly nondeterministic: true | undefined;
|
|
223
|
+
readonly metadata: unknown;
|
|
224
|
+
/** Typed filesystem boundary used by the durable engine. */
|
|
225
|
+
readonly fileBoundary: FileBoundary | undefined;
|
|
226
|
+
readonly retryPolicy: RetryPolicy.RetryPolicy | undefined;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Type-erased action shape that also exposes success and error schemas for
|
|
230
|
+
* derived flow APIs.
|
|
231
|
+
*
|
|
232
|
+
* @category models
|
|
233
|
+
* @since 0.1.0
|
|
234
|
+
*/
|
|
235
|
+
export interface AnyWithProps {
|
|
236
|
+
readonly [TypeId]: typeof TypeId;
|
|
237
|
+
readonly name: string;
|
|
238
|
+
readonly implementationVersion?: string | undefined;
|
|
239
|
+
readonly successSchema: Schema.Top;
|
|
240
|
+
readonly errorSchema: Schema.Top;
|
|
241
|
+
readonly executeEncoded: Effect.Effect<any, any, any>;
|
|
242
|
+
readonly tier: Tier;
|
|
243
|
+
readonly idempotencyKey: IdempotencyKey | undefined;
|
|
244
|
+
readonly nondeterministic: true | undefined;
|
|
245
|
+
readonly metadata: unknown;
|
|
246
|
+
/** Typed filesystem boundary used by the durable engine. */
|
|
247
|
+
readonly fileBoundary: FileBoundary | undefined;
|
|
248
|
+
readonly retryPolicy: RetryPolicy.RetryPolicy | undefined;
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=Action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../../src/Action/Action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Deep reviewed and polished by a human on 2026-08-10.
|
|
2
|
+
/**
|
|
3
|
+
* Defines the schemas and interfaces of a durable action.
|
|
4
|
+
*
|
|
5
|
+
* @since 0.1.0
|
|
6
|
+
*/
|
|
7
|
+
import * as Effects from "@smthrs/plan/Effects";
|
|
8
|
+
import * as Schema from "effect/Schema";
|
|
9
|
+
/**
|
|
10
|
+
* The durability and retry semantics of an action.
|
|
11
|
+
*
|
|
12
|
+
* The schema is `@smthrs/plan`'s `Effects.Tier`: an action's durability, a
|
|
13
|
+
* declared envelope's ceiling and `KeyMaterial.kind` are the same three words,
|
|
14
|
+
* and they are declared once.
|
|
15
|
+
*
|
|
16
|
+
* @category models
|
|
17
|
+
* @since 0.1.0
|
|
18
|
+
*/
|
|
19
|
+
export const Tier = Effects.Tier;
|
|
20
|
+
/**
|
|
21
|
+
* Schema for caller-declared sealed action identity.
|
|
22
|
+
*
|
|
23
|
+
* @category models
|
|
24
|
+
* @since 0.1.0
|
|
25
|
+
*/
|
|
26
|
+
export const IdempotencyKey = Schema.Union([
|
|
27
|
+
Schema.String,
|
|
28
|
+
Schema.Record(Schema.String, Schema.Json)
|
|
29
|
+
]);
|
|
30
|
+
//# sourceMappingURL=Action.js.map
|