@typed/fx 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +14 -0
- package/.eslintcache +1 -0
- package/.eslintrc.cjs +60 -0
- package/.huskyrc +5 -0
- package/.lintstagedrc +5 -0
- package/.mocharc.json +6 -0
- package/.nvmrc +1 -0
- package/.pnpm-debug.log +20 -0
- package/.prettierrc.cjs +11 -0
- package/.tracing-plugin/plugin.cjs +100 -0
- package/.tracing-plugin/plugin.d.ts +10 -0
- package/.tracing-plugin/plugin.d.ts.map +1 -0
- package/.tracing-plugin/plugin.js.map +1 -0
- package/.tracing-plugin/vite.d.ts +10 -0
- package/.tracing-plugin/vite.d.ts.map +1 -0
- package/.tracing-plugin/vite.js +54 -0
- package/.tracing-plugin/vite.js.map +1 -0
- package/.vscode/settings.json +7 -0
- package/cjs/Atomic/Atomic.d.ts +56 -0
- package/cjs/Atomic/Atomic.d.ts.map +1 -0
- package/cjs/Atomic/Atomic.js +92 -0
- package/cjs/Atomic/Atomic.js.map +1 -0
- package/cjs/Atomic/AtomicCounter.d.ts +10 -0
- package/cjs/Atomic/AtomicCounter.d.ts.map +1 -0
- package/cjs/Atomic/AtomicCounter.js +14 -0
- package/cjs/Atomic/AtomicCounter.js.map +1 -0
- package/cjs/Atomic/index.d.ts +3 -0
- package/cjs/Atomic/index.d.ts.map +1 -0
- package/cjs/Atomic/index.js +19 -0
- package/cjs/Atomic/index.js.map +1 -0
- package/cjs/Cause/Cause.d.ts +169 -0
- package/cjs/Cause/Cause.d.ts.map +1 -0
- package/cjs/Cause/Cause.js +344 -0
- package/cjs/Cause/Cause.js.map +1 -0
- package/cjs/Cause/CauseError.d.ts +13 -0
- package/cjs/Cause/CauseError.d.ts.map +1 -0
- package/cjs/Cause/CauseError.js +73 -0
- package/cjs/Cause/CauseError.js.map +1 -0
- package/cjs/Cause/Renderer.d.ts +47 -0
- package/cjs/Cause/Renderer.d.ts.map +1 -0
- package/cjs/Cause/Renderer.js +235 -0
- package/cjs/Cause/Renderer.js.map +1 -0
- package/cjs/Cause/index.d.ts +2 -0
- package/cjs/Cause/index.d.ts.map +1 -0
- package/cjs/Cause/index.js +18 -0
- package/cjs/Cause/index.js.map +1 -0
- package/cjs/Cause/prettyStringify.d.ts +2 -0
- package/cjs/Cause/prettyStringify.d.ts.map +1 -0
- package/cjs/Cause/prettyStringify.js +11 -0
- package/cjs/Cause/prettyStringify.js.map +1 -0
- package/cjs/Clock/Clock.d.ts +26 -0
- package/cjs/Clock/Clock.d.ts.map +1 -0
- package/cjs/Clock/Clock.js +87 -0
- package/cjs/Clock/Clock.js.map +1 -0
- package/cjs/Clock/DateClock.d.ts +3 -0
- package/cjs/Clock/DateClock.d.ts.map +1 -0
- package/cjs/Clock/DateClock.js +11 -0
- package/cjs/Clock/DateClock.js.map +1 -0
- package/cjs/Clock/TestClock.d.ts +11 -0
- package/cjs/Clock/TestClock.d.ts.map +1 -0
- package/cjs/Clock/TestClock.js +19 -0
- package/cjs/Clock/TestClock.js.map +1 -0
- package/cjs/Clock/index.d.ts +4 -0
- package/cjs/Clock/index.d.ts.map +1 -0
- package/cjs/Clock/index.js +20 -0
- package/cjs/Clock/index.js.map +1 -0
- package/cjs/Disposable/Disposable.d.ts +25 -0
- package/cjs/Disposable/Disposable.d.ts.map +1 -0
- package/cjs/Disposable/Disposable.js +46 -0
- package/cjs/Disposable/Disposable.js.map +1 -0
- package/cjs/Disposable/index.d.ts +2 -0
- package/cjs/Disposable/index.d.ts.map +1 -0
- package/cjs/Disposable/index.js +18 -0
- package/cjs/Disposable/index.js.map +1 -0
- package/cjs/Duration/Duration.d.ts +27 -0
- package/cjs/Duration/Duration.d.ts.map +1 -0
- package/cjs/Duration/Duration.js +119 -0
- package/cjs/Duration/Duration.js.map +1 -0
- package/cjs/Duration/index.d.ts +2 -0
- package/cjs/Duration/index.d.ts.map +1 -0
- package/cjs/Duration/index.js +18 -0
- package/cjs/Duration/index.js.map +1 -0
- package/cjs/Env/Env.d.ts +8 -0
- package/cjs/Env/Env.d.ts.map +1 -0
- package/cjs/Env/Env.js +64 -0
- package/cjs/Env/Env.js.map +1 -0
- package/cjs/Env/index.d.ts +2 -0
- package/cjs/Env/index.d.ts.map +1 -0
- package/cjs/Env/index.js +18 -0
- package/cjs/Env/index.js.map +1 -0
- package/cjs/Exit/Exit.d.ts +21 -0
- package/cjs/Exit/Exit.d.ts.map +1 -0
- package/cjs/Exit/Exit.js +54 -0
- package/cjs/Exit/Exit.js.map +1 -0
- package/cjs/Exit/hkt.d.ts +17 -0
- package/cjs/Exit/hkt.d.ts.map +1 -0
- package/cjs/Exit/hkt.js +45 -0
- package/cjs/Exit/hkt.js.map +1 -0
- package/cjs/Exit/index.d.ts +3 -0
- package/cjs/Exit/index.d.ts.map +1 -0
- package/cjs/Exit/index.js +19 -0
- package/cjs/Exit/index.js.map +1 -0
- package/cjs/Fiber/Fiber.d.ts +36 -0
- package/cjs/Fiber/Fiber.d.ts.map +1 -0
- package/cjs/Fiber/Fiber.js +36 -0
- package/cjs/Fiber/Fiber.js.map +1 -0
- package/cjs/Fiber/index.d.ts +2 -0
- package/cjs/Fiber/index.d.ts.map +1 -0
- package/cjs/Fiber/index.js +18 -0
- package/cjs/Fiber/index.js.map +1 -0
- package/cjs/FiberContext/FiberContext.d.ts +22 -0
- package/cjs/FiberContext/FiberContext.d.ts.map +1 -0
- package/cjs/FiberContext/FiberContext.js +64 -0
- package/cjs/FiberContext/FiberContext.js.map +1 -0
- package/cjs/FiberContext/index.d.ts +2 -0
- package/cjs/FiberContext/index.d.ts.map +1 -0
- package/cjs/FiberContext/index.js +18 -0
- package/cjs/FiberContext/index.js.map +1 -0
- package/cjs/FiberId/FiberId.d.ts +46 -0
- package/cjs/FiberId/FiberId.d.ts.map +1 -0
- package/cjs/FiberId/FiberId.js +122 -0
- package/cjs/FiberId/FiberId.js.map +1 -0
- package/cjs/FiberId/index.d.ts +2 -0
- package/cjs/FiberId/index.d.ts.map +1 -0
- package/cjs/FiberId/index.js +18 -0
- package/cjs/FiberId/index.js.map +1 -0
- package/cjs/FiberRef/FiberRef.d.ts +38 -0
- package/cjs/FiberRef/FiberRef.d.ts.map +1 -0
- package/cjs/FiberRef/FiberRef.js +57 -0
- package/cjs/FiberRef/FiberRef.js.map +1 -0
- package/cjs/FiberRef/index.d.ts +3 -0
- package/cjs/FiberRef/index.d.ts.map +1 -0
- package/cjs/FiberRef/index.js +20 -0
- package/cjs/FiberRef/index.js.map +1 -0
- package/cjs/FiberRef/operations.d.ts +9 -0
- package/cjs/FiberRef/operations.d.ts.map +1 -0
- package/cjs/FiberRef/operations.js +20 -0
- package/cjs/FiberRef/operations.js.map +1 -0
- package/cjs/FiberRefs/FiberRefs.d.ts +19 -0
- package/cjs/FiberRefs/FiberRefs.d.ts.map +1 -0
- package/cjs/FiberRefs/FiberRefs.js +130 -0
- package/cjs/FiberRefs/FiberRefs.js.map +1 -0
- package/cjs/FiberRefs/index.d.ts +2 -0
- package/cjs/FiberRefs/index.d.ts.map +1 -0
- package/cjs/FiberRefs/index.js +18 -0
- package/cjs/FiberRefs/index.js.map +1 -0
- package/cjs/FiberRuntime/FiberRuntime.d.ts +154 -0
- package/cjs/FiberRuntime/FiberRuntime.d.ts.map +1 -0
- package/cjs/FiberRuntime/FiberRuntime.js +506 -0
- package/cjs/FiberRuntime/FiberRuntime.js.map +1 -0
- package/cjs/FiberRuntime/Frame.d.ts +14 -0
- package/cjs/FiberRuntime/Frame.d.ts.map +1 -0
- package/cjs/FiberRuntime/Frame.js +18 -0
- package/cjs/FiberRuntime/Frame.js.map +1 -0
- package/cjs/FiberRuntime/index.d.ts +2 -0
- package/cjs/FiberRuntime/index.d.ts.map +1 -0
- package/cjs/FiberRuntime/index.js +18 -0
- package/cjs/FiberRuntime/index.js.map +1 -0
- package/cjs/FiberStatus/index.d.ts +19 -0
- package/cjs/FiberStatus/index.d.ts.map +1 -0
- package/cjs/FiberStatus/index.js +24 -0
- package/cjs/FiberStatus/index.js.map +1 -0
- package/cjs/Finalizer/Finalizer.d.ts +39 -0
- package/cjs/Finalizer/Finalizer.d.ts.map +1 -0
- package/cjs/Finalizer/Finalizer.js +24 -0
- package/cjs/Finalizer/Finalizer.js.map +1 -0
- package/cjs/Finalizer/index.d.ts +2 -0
- package/cjs/Finalizer/index.d.ts.map +1 -0
- package/cjs/Finalizer/index.js +18 -0
- package/cjs/Finalizer/index.js.map +1 -0
- package/cjs/Future/Future.d.ts +23 -0
- package/cjs/Future/Future.d.ts.map +1 -0
- package/cjs/Future/Future.js +42 -0
- package/cjs/Future/Future.js.map +1 -0
- package/cjs/Future/MutableFutureQueue.d.ts +16 -0
- package/cjs/Future/MutableFutureQueue.d.ts.map +1 -0
- package/cjs/Future/MutableFutureQueue.js +40 -0
- package/cjs/Future/MutableFutureQueue.js.map +1 -0
- package/cjs/Future/complete.d.ts +4 -0
- package/cjs/Future/complete.d.ts.map +1 -0
- package/cjs/Future/complete.js +14 -0
- package/cjs/Future/complete.js.map +1 -0
- package/cjs/Future/index.d.ts +4 -0
- package/cjs/Future/index.d.ts.map +1 -0
- package/cjs/Future/index.js +20 -0
- package/cjs/Future/index.js.map +1 -0
- package/cjs/Future/wait.d.ts +4 -0
- package/cjs/Future/wait.d.ts.map +1 -0
- package/cjs/Future/wait.js +9 -0
- package/cjs/Future/wait.js.map +1 -0
- package/cjs/Fx/Fx.d.ts +136 -0
- package/cjs/Fx/Fx.d.ts.map +1 -0
- package/cjs/Fx/Fx.js +247 -0
- package/cjs/Fx/Fx.js.map +1 -0
- package/cjs/Fx/Instruction.d.ts +202 -0
- package/cjs/Fx/Instruction.d.ts.map +1 -0
- package/cjs/Fx/Instruction.js +387 -0
- package/cjs/Fx/Instruction.js.map +1 -0
- package/cjs/Fx/index.d.ts +5 -0
- package/cjs/Fx/index.d.ts.map +1 -0
- package/cjs/Fx/index.js +21 -0
- package/cjs/Fx/index.js.map +1 -0
- package/cjs/Fx/join.d.ts +4 -0
- package/cjs/Fx/join.d.ts.map +1 -0
- package/cjs/Fx/join.js +39 -0
- package/cjs/Fx/join.js.map +1 -0
- package/cjs/Fx/logging.d.ts +11 -0
- package/cjs/Fx/logging.d.ts.map +1 -0
- package/cjs/Fx/logging.js +45 -0
- package/cjs/Fx/logging.js.map +1 -0
- package/cjs/Fx/scoped.d.ts +20 -0
- package/cjs/Fx/scoped.d.ts.map +1 -0
- package/cjs/Fx/scoped.js +52 -0
- package/cjs/Fx/scoped.js.map +1 -0
- package/cjs/ImmutableMap/ImmutableMap.d.ts +15 -0
- package/cjs/ImmutableMap/ImmutableMap.d.ts.map +1 -0
- package/cjs/ImmutableMap/ImmutableMap.js +39 -0
- package/cjs/ImmutableMap/ImmutableMap.js.map +1 -0
- package/cjs/ImmutableMap/index.d.ts +2 -0
- package/cjs/ImmutableMap/index.d.ts.map +1 -0
- package/cjs/ImmutableMap/index.js +18 -0
- package/cjs/ImmutableMap/index.js.map +1 -0
- package/cjs/Layer/Layer.d.ts +14 -0
- package/cjs/Layer/Layer.d.ts.map +1 -0
- package/cjs/Layer/Layer.js +42 -0
- package/cjs/Layer/Layer.js.map +1 -0
- package/cjs/Layer/index.d.ts +2 -0
- package/cjs/Layer/index.d.ts.map +1 -0
- package/cjs/Layer/index.js +18 -0
- package/cjs/Layer/index.js.map +1 -0
- package/cjs/Logger/Console.d.ts +3 -0
- package/cjs/Logger/Console.d.ts.map +1 -0
- package/cjs/Logger/Console.js +75 -0
- package/cjs/Logger/Console.js.map +1 -0
- package/cjs/Logger/LogAnnotation.d.ts +6 -0
- package/cjs/Logger/LogAnnotation.d.ts.map +1 -0
- package/cjs/Logger/LogAnnotation.js +8 -0
- package/cjs/Logger/LogAnnotation.js.map +1 -0
- package/cjs/Logger/LogLevel.d.ts +11 -0
- package/cjs/Logger/LogLevel.d.ts.map +1 -0
- package/cjs/Logger/LogLevel.js +15 -0
- package/cjs/Logger/LogLevel.js.map +1 -0
- package/cjs/Logger/LogSpan.d.ts +7 -0
- package/cjs/Logger/LogSpan.d.ts.map +1 -0
- package/cjs/Logger/LogSpan.js +8 -0
- package/cjs/Logger/LogSpan.js.map +1 -0
- package/cjs/Logger/Logger.d.ts +31 -0
- package/cjs/Logger/Logger.d.ts.map +1 -0
- package/cjs/Logger/Logger.js +66 -0
- package/cjs/Logger/Logger.js.map +1 -0
- package/cjs/Logger/index.d.ts +2 -0
- package/cjs/Logger/index.d.ts.map +1 -0
- package/cjs/Logger/index.js +18 -0
- package/cjs/Logger/index.js.map +1 -0
- package/cjs/Platform/Platform.d.ts +14 -0
- package/cjs/Platform/Platform.d.ts.map +1 -0
- package/cjs/Platform/Platform.js +47 -0
- package/cjs/Platform/Platform.js.map +1 -0
- package/cjs/Platform/TestPlatform.d.ts +7 -0
- package/cjs/Platform/TestPlatform.d.ts.map +1 -0
- package/cjs/Platform/TestPlatform.js +13 -0
- package/cjs/Platform/TestPlatform.js.map +1 -0
- package/cjs/Platform/index.d.ts +3 -0
- package/cjs/Platform/index.d.ts.map +1 -0
- package/cjs/Platform/index.js +19 -0
- package/cjs/Platform/index.js.map +1 -0
- package/cjs/Ref/Ref.d.ts +40 -0
- package/cjs/Ref/Ref.d.ts.map +1 -0
- package/cjs/Ref/Ref.js +57 -0
- package/cjs/Ref/Ref.js.map +1 -0
- package/cjs/Ref/atomic.d.ts +5 -0
- package/cjs/Ref/atomic.d.ts.map +1 -0
- package/cjs/Ref/atomic.js +20 -0
- package/cjs/Ref/atomic.js.map +1 -0
- package/cjs/Ref/index.d.ts +3 -0
- package/cjs/Ref/index.d.ts.map +1 -0
- package/cjs/Ref/index.js +19 -0
- package/cjs/Ref/index.js.map +1 -0
- package/cjs/Schedule/Decision.d.ts +15 -0
- package/cjs/Schedule/Decision.d.ts.map +1 -0
- package/cjs/Schedule/Decision.js +38 -0
- package/cjs/Schedule/Decision.js.map +1 -0
- package/cjs/Schedule/Schedule.d.ts +30 -0
- package/cjs/Schedule/Schedule.d.ts.map +1 -0
- package/cjs/Schedule/Schedule.js +78 -0
- package/cjs/Schedule/Schedule.js.map +1 -0
- package/cjs/Schedule/ScheduleState.d.ts +45 -0
- package/cjs/Schedule/ScheduleState.d.ts.map +1 -0
- package/cjs/Schedule/ScheduleState.js +58 -0
- package/cjs/Schedule/ScheduleState.js.map +1 -0
- package/cjs/Schedule/index.d.ts +4 -0
- package/cjs/Schedule/index.d.ts.map +1 -0
- package/cjs/Schedule/index.js +20 -0
- package/cjs/Schedule/index.js.map +1 -0
- package/cjs/Scheduler/RootScheduler.d.ts +4 -0
- package/cjs/Scheduler/RootScheduler.d.ts.map +1 -0
- package/cjs/Scheduler/RootScheduler.js +57 -0
- package/cjs/Scheduler/RootScheduler.js.map +1 -0
- package/cjs/Scheduler/Scheduler.d.ts +14 -0
- package/cjs/Scheduler/Scheduler.d.ts.map +1 -0
- package/cjs/Scheduler/Scheduler.js +6 -0
- package/cjs/Scheduler/Scheduler.js.map +1 -0
- package/cjs/Scheduler/callbackScheduler.d.ts +5 -0
- package/cjs/Scheduler/callbackScheduler.d.ts.map +1 -0
- package/cjs/Scheduler/callbackScheduler.js +59 -0
- package/cjs/Scheduler/callbackScheduler.js.map +1 -0
- package/cjs/Scheduler/index.d.ts +1 -0
- package/cjs/Scheduler/index.d.ts.map +1 -0
- package/cjs/Scheduler/index.js +2 -0
- package/cjs/Scheduler/index.js.map +1 -0
- package/cjs/Scheduler/scheduled.d.ts +10 -0
- package/cjs/Scheduler/scheduled.d.ts.map +1 -0
- package/cjs/Scheduler/scheduled.js +25 -0
- package/cjs/Scheduler/scheduled.js.map +1 -0
- package/cjs/Scope/Closeable.d.ts +11 -0
- package/cjs/Scope/Closeable.d.ts.map +1 -0
- package/cjs/Scope/Closeable.js +25 -0
- package/cjs/Scope/Closeable.js.map +1 -0
- package/cjs/Scope/GlobalScope.d.ts +3 -0
- package/cjs/Scope/GlobalScope.d.ts.map +1 -0
- package/cjs/Scope/GlobalScope.js +15 -0
- package/cjs/Scope/GlobalScope.js.map +1 -0
- package/cjs/Scope/LocalScope.d.ts +24 -0
- package/cjs/Scope/LocalScope.d.ts.map +1 -0
- package/cjs/Scope/LocalScope.js +97 -0
- package/cjs/Scope/LocalScope.js.map +1 -0
- package/cjs/Scope/ReleaseMap.d.ts +19 -0
- package/cjs/Scope/ReleaseMap.d.ts.map +1 -0
- package/cjs/Scope/ReleaseMap.js +66 -0
- package/cjs/Scope/ReleaseMap.js.map +1 -0
- package/cjs/Scope/Scope.d.ts +11 -0
- package/cjs/Scope/Scope.d.ts.map +1 -0
- package/cjs/Scope/Scope.js +6 -0
- package/cjs/Scope/Scope.js.map +1 -0
- package/cjs/Scope/ScopeState.d.ts +19 -0
- package/cjs/Scope/ScopeState.d.ts.map +1 -0
- package/cjs/Scope/ScopeState.js +30 -0
- package/cjs/Scope/ScopeState.js.map +1 -0
- package/cjs/Scope/index.d.ts +7 -0
- package/cjs/Scope/index.d.ts.map +1 -0
- package/cjs/Scope/index.js +23 -0
- package/cjs/Scope/index.js.map +1 -0
- package/cjs/Semaphore/Semaphore.d.ts +38 -0
- package/cjs/Semaphore/Semaphore.d.ts.map +1 -0
- package/cjs/Semaphore/Semaphore.js +96 -0
- package/cjs/Semaphore/Semaphore.js.map +1 -0
- package/cjs/Semaphore/index.d.ts +2 -0
- package/cjs/Semaphore/index.d.ts.map +1 -0
- package/cjs/Semaphore/index.js +18 -0
- package/cjs/Semaphore/index.js.map +1 -0
- package/cjs/Service/Id.d.ts +59 -0
- package/cjs/Service/Id.d.ts.map +1 -0
- package/cjs/Service/Id.js +90 -0
- package/cjs/Service/Id.js.map +1 -0
- package/cjs/Service/Service.d.ts +20 -0
- package/cjs/Service/Service.d.ts.map +1 -0
- package/cjs/Service/Service.js +19 -0
- package/cjs/Service/Service.js.map +1 -0
- package/cjs/Service/index.d.ts +4 -0
- package/cjs/Service/index.d.ts.map +1 -0
- package/cjs/Service/index.js +20 -0
- package/cjs/Service/index.js.map +1 -0
- package/cjs/Service/tagged.d.ts +23 -0
- package/cjs/Service/tagged.d.ts.map +1 -0
- package/cjs/Service/tagged.js +13 -0
- package/cjs/Service/tagged.js.map +1 -0
- package/cjs/Sink/Sink.d.ts +22 -0
- package/cjs/Sink/Sink.d.ts.map +1 -0
- package/cjs/Sink/Sink.js +31 -0
- package/cjs/Sink/Sink.js.map +1 -0
- package/cjs/Sink/index.d.ts +1 -0
- package/cjs/Sink/index.d.ts.map +1 -0
- package/cjs/Sink/index.js +2 -0
- package/cjs/Sink/index.js.map +1 -0
- package/cjs/Stack/index.d.ts +20 -0
- package/cjs/Stack/index.d.ts.map +1 -0
- package/cjs/Stack/index.js +103 -0
- package/cjs/Stack/index.js.map +1 -0
- package/cjs/StackFrame/StackFrame.d.ts +29 -0
- package/cjs/StackFrame/StackFrame.d.ts.map +1 -0
- package/cjs/StackFrame/StackFrame.js +61 -0
- package/cjs/StackFrame/StackFrame.js.map +1 -0
- package/cjs/StackFrame/getStackFrames.d.ts +7 -0
- package/cjs/StackFrame/getStackFrames.d.ts.map +1 -0
- package/cjs/StackFrame/getStackFrames.js +56 -0
- package/cjs/StackFrame/getStackFrames.js.map +1 -0
- package/cjs/StackFrame/index.d.ts +3 -0
- package/cjs/StackFrame/index.d.ts.map +1 -0
- package/cjs/StackFrame/index.js +19 -0
- package/cjs/StackFrame/index.js.map +1 -0
- package/cjs/StackFrame/parseChromeStack.d.ts +3 -0
- package/cjs/StackFrame/parseChromeStack.d.ts.map +1 -0
- package/cjs/StackFrame/parseChromeStack.js +36 -0
- package/cjs/StackFrame/parseChromeStack.js.map +1 -0
- package/cjs/StackFrame/parseGeckoStackFrame.d.ts +3 -0
- package/cjs/StackFrame/parseGeckoStackFrame.d.ts.map +1 -0
- package/cjs/StackFrame/parseGeckoStackFrame.js +28 -0
- package/cjs/StackFrame/parseGeckoStackFrame.js.map +1 -0
- package/cjs/Stream/Stream.d.ts +18 -0
- package/cjs/Stream/Stream.d.ts.map +1 -0
- package/cjs/Stream/Stream.js +8 -0
- package/cjs/Stream/Stream.js.map +1 -0
- package/cjs/Stream/drain.d.ts +11 -0
- package/cjs/Stream/drain.d.ts.map +1 -0
- package/cjs/Stream/drain.js +51 -0
- package/cjs/Stream/drain.js.map +1 -0
- package/cjs/Stream/fromFx.d.ts +4 -0
- package/cjs/Stream/fromFx.d.ts.map +1 -0
- package/cjs/Stream/fromFx.js +34 -0
- package/cjs/Stream/fromFx.js.map +1 -0
- package/cjs/Stream/index.d.ts +4 -0
- package/cjs/Stream/index.d.ts.map +1 -0
- package/cjs/Stream/index.js +20 -0
- package/cjs/Stream/index.js.map +1 -0
- package/cjs/Supervisor/Supervisor.d.ts +32 -0
- package/cjs/Supervisor/Supervisor.d.ts.map +1 -0
- package/cjs/Supervisor/Supervisor.js +46 -0
- package/cjs/Supervisor/Supervisor.js.map +1 -0
- package/cjs/Supervisor/index.d.ts +2 -0
- package/cjs/Supervisor/index.d.ts.map +1 -0
- package/cjs/Supervisor/index.js +18 -0
- package/cjs/Supervisor/index.js.map +1 -0
- package/cjs/Tagged/index.d.ts +79 -0
- package/cjs/Tagged/index.d.ts.map +1 -0
- package/cjs/Tagged/index.js +71 -0
- package/cjs/Tagged/index.js.map +1 -0
- package/cjs/Time/index.d.ts +95 -0
- package/cjs/Time/index.d.ts.map +1 -0
- package/cjs/Time/index.js +59 -0
- package/cjs/Time/index.js.map +1 -0
- package/cjs/Timeline/index.d.ts +27 -0
- package/cjs/Timeline/index.d.ts.map +1 -0
- package/cjs/Timeline/index.js +102 -0
- package/cjs/Timeline/index.js.map +1 -0
- package/cjs/Timer/SetTimeoutTimer.d.ts +4 -0
- package/cjs/Timer/SetTimeoutTimer.d.ts.map +1 -0
- package/cjs/Timer/SetTimeoutTimer.js +18 -0
- package/cjs/Timer/SetTimeoutTimer.js.map +1 -0
- package/cjs/Timer/TestTimer.d.ts +9 -0
- package/cjs/Timer/TestTimer.d.ts.map +1 -0
- package/cjs/Timer/TestTimer.js +52 -0
- package/cjs/Timer/TestTimer.js.map +1 -0
- package/cjs/Timer/Timer.d.ts +11 -0
- package/cjs/Timer/Timer.d.ts.map +1 -0
- package/cjs/Timer/Timer.js +44 -0
- package/cjs/Timer/Timer.js.map +1 -0
- package/cjs/Timer/index.d.ts +4 -0
- package/cjs/Timer/index.d.ts.map +1 -0
- package/cjs/Timer/index.js +20 -0
- package/cjs/Timer/index.js.map +1 -0
- package/cjs/Trace/Trace.d.ts +38 -0
- package/cjs/Trace/Trace.d.ts.map +1 -0
- package/cjs/Trace/Trace.js +183 -0
- package/cjs/Trace/Trace.js.map +1 -0
- package/cjs/Trace/index.d.ts +2 -0
- package/cjs/Trace/index.d.ts.map +1 -0
- package/cjs/Trace/index.js +18 -0
- package/cjs/Trace/index.js.map +1 -0
- package/cjs/Tracing/plugin.d.ts +10 -0
- package/cjs/Tracing/plugin.d.ts.map +1 -0
- package/cjs/Tracing/plugin.js +100 -0
- package/cjs/Tracing/plugin.js.map +1 -0
- package/cjs/Tracing/vite.d.ts +10 -0
- package/cjs/Tracing/vite.d.ts.map +1 -0
- package/cjs/Tracing/vite.js +54 -0
- package/cjs/Tracing/vite.js.map +1 -0
- package/cjs/index.d.ts +35 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +64 -0
- package/cjs/index.js.map +1 -0
- package/cjs/internal.d.ts +18 -0
- package/cjs/internal.d.ts.map +1 -0
- package/cjs/internal.js +3 -0
- package/cjs/internal.js.map +1 -0
- package/cjs/test.d.ts +1 -0
- package/cjs/test.d.ts.map +1 -0
- package/cjs/test.js +2 -0
- package/cjs/test.js.map +1 -0
- package/coverage/tmp/coverage-74826-1660784295157-0.json +1 -0
- package/coverage/tmp/coverage-74830-1660784295115-0.json +1 -0
- package/coverage/tmp/coverage-74836-1660784295074-0.json +1 -0
- package/esm/Atomic/Atomic.d.ts +56 -0
- package/esm/Atomic/Atomic.d.ts.map +1 -0
- package/esm/Atomic/Atomic.js +79 -0
- package/esm/Atomic/Atomic.js.map +1 -0
- package/esm/Atomic/AtomicCounter.d.ts +10 -0
- package/esm/Atomic/AtomicCounter.d.ts.map +1 -0
- package/esm/Atomic/AtomicCounter.js +10 -0
- package/esm/Atomic/AtomicCounter.js.map +1 -0
- package/esm/Atomic/index.d.ts +3 -0
- package/esm/Atomic/index.d.ts.map +1 -0
- package/esm/Atomic/index.js +3 -0
- package/esm/Atomic/index.js.map +1 -0
- package/esm/Cause/Cause.d.ts +169 -0
- package/esm/Cause/Cause.d.ts.map +1 -0
- package/esm/Cause/Cause.js +296 -0
- package/esm/Cause/Cause.js.map +1 -0
- package/esm/Cause/CauseError.d.ts +13 -0
- package/esm/Cause/CauseError.d.ts.map +1 -0
- package/esm/Cause/CauseError.js +44 -0
- package/esm/Cause/CauseError.js.map +1 -0
- package/esm/Cause/Renderer.d.ts +47 -0
- package/esm/Cause/Renderer.d.ts.map +1 -0
- package/esm/Cause/Renderer.js +191 -0
- package/esm/Cause/Renderer.js.map +1 -0
- package/esm/Cause/index.d.ts +2 -0
- package/esm/Cause/index.d.ts.map +1 -0
- package/esm/Cause/index.js +2 -0
- package/esm/Cause/index.js.map +1 -0
- package/esm/Cause/prettyStringify.d.ts +2 -0
- package/esm/Cause/prettyStringify.d.ts.map +1 -0
- package/esm/Cause/prettyStringify.js +7 -0
- package/esm/Cause/prettyStringify.js.map +1 -0
- package/esm/Clock/Clock.d.ts +26 -0
- package/esm/Clock/Clock.d.ts.map +1 -0
- package/esm/Clock/Clock.js +50 -0
- package/esm/Clock/Clock.js.map +1 -0
- package/esm/Clock/DateClock.d.ts +3 -0
- package/esm/Clock/DateClock.d.ts.map +1 -0
- package/esm/Clock/DateClock.js +7 -0
- package/esm/Clock/DateClock.js.map +1 -0
- package/esm/Clock/TestClock.d.ts +11 -0
- package/esm/Clock/TestClock.d.ts.map +1 -0
- package/esm/Clock/TestClock.js +15 -0
- package/esm/Clock/TestClock.js.map +1 -0
- package/esm/Clock/index.d.ts +4 -0
- package/esm/Clock/index.d.ts.map +1 -0
- package/esm/Clock/index.js +4 -0
- package/esm/Clock/index.js.map +1 -0
- package/esm/Disposable/Disposable.d.ts +25 -0
- package/esm/Disposable/Disposable.d.ts.map +1 -0
- package/esm/Disposable/Disposable.js +39 -0
- package/esm/Disposable/Disposable.js.map +1 -0
- package/esm/Disposable/index.d.ts +2 -0
- package/esm/Disposable/index.d.ts.map +1 -0
- package/esm/Disposable/index.js +2 -0
- package/esm/Disposable/index.js.map +1 -0
- package/esm/Duration/Duration.d.ts +27 -0
- package/esm/Duration/Duration.d.ts.map +1 -0
- package/esm/Duration/Duration.js +106 -0
- package/esm/Duration/Duration.js.map +1 -0
- package/esm/Duration/index.d.ts +2 -0
- package/esm/Duration/index.d.ts.map +1 -0
- package/esm/Duration/index.js +2 -0
- package/esm/Duration/index.js.map +1 -0
- package/esm/Env/Env.d.ts +8 -0
- package/esm/Env/Env.d.ts.map +1 -0
- package/esm/Env/Env.js +37 -0
- package/esm/Env/Env.js.map +1 -0
- package/esm/Env/index.d.ts +2 -0
- package/esm/Env/index.d.ts.map +1 -0
- package/esm/Env/index.js +2 -0
- package/esm/Env/index.js.map +1 -0
- package/esm/Exit/Exit.d.ts +21 -0
- package/esm/Exit/Exit.d.ts.map +1 -0
- package/esm/Exit/Exit.js +16 -0
- package/esm/Exit/Exit.js.map +1 -0
- package/esm/Exit/hkt.d.ts +17 -0
- package/esm/Exit/hkt.d.ts.map +1 -0
- package/esm/Exit/hkt.js +19 -0
- package/esm/Exit/hkt.js.map +1 -0
- package/esm/Exit/index.d.ts +3 -0
- package/esm/Exit/index.d.ts.map +1 -0
- package/esm/Exit/index.js +3 -0
- package/esm/Exit/index.js.map +1 -0
- package/esm/Fiber/Fiber.d.ts +36 -0
- package/esm/Fiber/Fiber.d.ts.map +1 -0
- package/esm/Fiber/Fiber.js +25 -0
- package/esm/Fiber/Fiber.js.map +1 -0
- package/esm/Fiber/index.d.ts +2 -0
- package/esm/Fiber/index.d.ts.map +1 -0
- package/esm/Fiber/index.js +2 -0
- package/esm/Fiber/index.js.map +1 -0
- package/esm/FiberContext/FiberContext.d.ts +22 -0
- package/esm/FiberContext/FiberContext.d.ts.map +1 -0
- package/esm/FiberContext/FiberContext.js +36 -0
- package/esm/FiberContext/FiberContext.js.map +1 -0
- package/esm/FiberContext/index.d.ts +2 -0
- package/esm/FiberContext/index.d.ts.map +1 -0
- package/esm/FiberContext/index.js +2 -0
- package/esm/FiberContext/index.js.map +1 -0
- package/esm/FiberId/FiberId.d.ts +46 -0
- package/esm/FiberId/FiberId.d.ts.map +1 -0
- package/esm/FiberId/FiberId.js +93 -0
- package/esm/FiberId/FiberId.js.map +1 -0
- package/esm/FiberId/index.d.ts +2 -0
- package/esm/FiberId/index.d.ts.map +1 -0
- package/esm/FiberId/index.js +2 -0
- package/esm/FiberId/index.js.map +1 -0
- package/esm/FiberRef/FiberRef.d.ts +38 -0
- package/esm/FiberRef/FiberRef.d.ts.map +1 -0
- package/esm/FiberRef/FiberRef.js +52 -0
- package/esm/FiberRef/FiberRef.js.map +1 -0
- package/esm/FiberRef/index.d.ts +3 -0
- package/esm/FiberRef/index.d.ts.map +1 -0
- package/esm/FiberRef/index.js +4 -0
- package/esm/FiberRef/index.js.map +1 -0
- package/esm/FiberRef/operations.d.ts +9 -0
- package/esm/FiberRef/operations.d.ts.map +1 -0
- package/esm/FiberRef/operations.js +13 -0
- package/esm/FiberRef/operations.js.map +1 -0
- package/esm/FiberRefs/FiberRefs.d.ts +19 -0
- package/esm/FiberRefs/FiberRefs.d.ts.map +1 -0
- package/esm/FiberRefs/FiberRefs.js +95 -0
- package/esm/FiberRefs/FiberRefs.js.map +1 -0
- package/esm/FiberRefs/index.d.ts +2 -0
- package/esm/FiberRefs/index.d.ts.map +1 -0
- package/esm/FiberRefs/index.js +2 -0
- package/esm/FiberRefs/index.js.map +1 -0
- package/esm/FiberRuntime/FiberRuntime.d.ts +154 -0
- package/esm/FiberRuntime/FiberRuntime.d.ts.map +1 -0
- package/esm/FiberRuntime/FiberRuntime.js +479 -0
- package/esm/FiberRuntime/FiberRuntime.js.map +1 -0
- package/esm/FiberRuntime/Frame.d.ts +14 -0
- package/esm/FiberRuntime/Frame.d.ts.map +1 -0
- package/esm/FiberRuntime/Frame.js +13 -0
- package/esm/FiberRuntime/Frame.js.map +1 -0
- package/esm/FiberRuntime/index.d.ts +2 -0
- package/esm/FiberRuntime/index.d.ts.map +1 -0
- package/esm/FiberRuntime/index.js +2 -0
- package/esm/FiberRuntime/index.js.map +1 -0
- package/esm/FiberStatus/index.d.ts +19 -0
- package/esm/FiberStatus/index.d.ts.map +1 -0
- package/esm/FiberStatus/index.js +18 -0
- package/esm/FiberStatus/index.js.map +1 -0
- package/esm/Finalizer/Finalizer.d.ts +39 -0
- package/esm/Finalizer/Finalizer.d.ts.map +1 -0
- package/esm/Finalizer/Finalizer.js +19 -0
- package/esm/Finalizer/Finalizer.js.map +1 -0
- package/esm/Finalizer/index.d.ts +2 -0
- package/esm/Finalizer/index.d.ts.map +1 -0
- package/esm/Finalizer/index.js +2 -0
- package/esm/Finalizer/index.js.map +1 -0
- package/esm/Future/Future.d.ts +23 -0
- package/esm/Future/Future.d.ts.map +1 -0
- package/esm/Future/Future.js +36 -0
- package/esm/Future/Future.js.map +1 -0
- package/esm/Future/MutableFutureQueue.d.ts +16 -0
- package/esm/Future/MutableFutureQueue.d.ts.map +1 -0
- package/esm/Future/MutableFutureQueue.js +36 -0
- package/esm/Future/MutableFutureQueue.js.map +1 -0
- package/esm/Future/complete.d.ts +4 -0
- package/esm/Future/complete.d.ts.map +1 -0
- package/esm/Future/complete.js +10 -0
- package/esm/Future/complete.js.map +1 -0
- package/esm/Future/index.d.ts +4 -0
- package/esm/Future/index.d.ts.map +1 -0
- package/esm/Future/index.js +4 -0
- package/esm/Future/index.js.map +1 -0
- package/esm/Future/wait.d.ts +4 -0
- package/esm/Future/wait.d.ts.map +1 -0
- package/esm/Future/wait.js +5 -0
- package/esm/Future/wait.js.map +1 -0
- package/esm/Fx/Fx.d.ts +136 -0
- package/esm/Fx/Fx.d.ts.map +1 -0
- package/esm/Fx/Fx.js +173 -0
- package/esm/Fx/Fx.js.map +1 -0
- package/esm/Fx/Instruction.d.ts +202 -0
- package/esm/Fx/Instruction.d.ts.map +1 -0
- package/esm/Fx/Instruction.js +358 -0
- package/esm/Fx/Instruction.js.map +1 -0
- package/esm/Fx/index.d.ts +5 -0
- package/esm/Fx/index.d.ts.map +1 -0
- package/esm/Fx/index.js +5 -0
- package/esm/Fx/index.js.map +1 -0
- package/esm/Fx/join.d.ts +4 -0
- package/esm/Fx/join.d.ts.map +1 -0
- package/esm/Fx/join.js +12 -0
- package/esm/Fx/join.js.map +1 -0
- package/esm/Fx/logging.d.ts +11 -0
- package/esm/Fx/logging.d.ts.map +1 -0
- package/esm/Fx/logging.js +17 -0
- package/esm/Fx/logging.js.map +1 -0
- package/esm/Fx/scoped.d.ts +20 -0
- package/esm/Fx/scoped.d.ts.map +1 -0
- package/esm/Fx/scoped.js +45 -0
- package/esm/Fx/scoped.js.map +1 -0
- package/esm/ImmutableMap/ImmutableMap.d.ts +15 -0
- package/esm/ImmutableMap/ImmutableMap.d.ts.map +1 -0
- package/esm/ImmutableMap/ImmutableMap.js +35 -0
- package/esm/ImmutableMap/ImmutableMap.js.map +1 -0
- package/esm/ImmutableMap/index.d.ts +2 -0
- package/esm/ImmutableMap/index.d.ts.map +1 -0
- package/esm/ImmutableMap/index.js +2 -0
- package/esm/ImmutableMap/index.js.map +1 -0
- package/esm/Layer/Layer.d.ts +14 -0
- package/esm/Layer/Layer.d.ts.map +1 -0
- package/esm/Layer/Layer.js +14 -0
- package/esm/Layer/Layer.js.map +1 -0
- package/esm/Layer/index.d.ts +2 -0
- package/esm/Layer/index.d.ts.map +1 -0
- package/esm/Layer/index.js +2 -0
- package/esm/Layer/index.js.map +1 -0
- package/esm/Logger/Console.d.ts +3 -0
- package/esm/Logger/Console.d.ts.map +1 -0
- package/esm/Logger/Console.js +72 -0
- package/esm/Logger/Console.js.map +1 -0
- package/esm/Logger/LogAnnotation.d.ts +6 -0
- package/esm/Logger/LogAnnotation.d.ts.map +1 -0
- package/esm/Logger/LogAnnotation.js +4 -0
- package/esm/Logger/LogAnnotation.js.map +1 -0
- package/esm/Logger/LogLevel.d.ts +11 -0
- package/esm/Logger/LogLevel.d.ts.map +1 -0
- package/esm/Logger/LogLevel.js +12 -0
- package/esm/Logger/LogLevel.js.map +1 -0
- package/esm/Logger/LogSpan.d.ts +7 -0
- package/esm/Logger/LogSpan.d.ts.map +1 -0
- package/esm/Logger/LogSpan.js +4 -0
- package/esm/Logger/LogSpan.js.map +1 -0
- package/esm/Logger/Logger.d.ts +31 -0
- package/esm/Logger/Logger.d.ts.map +1 -0
- package/esm/Logger/Logger.js +36 -0
- package/esm/Logger/Logger.js.map +1 -0
- package/esm/Logger/index.d.ts +2 -0
- package/esm/Logger/index.d.ts.map +1 -0
- package/esm/Logger/index.js +2 -0
- package/esm/Logger/index.js.map +1 -0
- package/esm/Platform/Platform.d.ts +14 -0
- package/esm/Platform/Platform.d.ts.map +1 -0
- package/esm/Platform/Platform.js +19 -0
- package/esm/Platform/Platform.js.map +1 -0
- package/esm/Platform/TestPlatform.d.ts +7 -0
- package/esm/Platform/TestPlatform.d.ts.map +1 -0
- package/esm/Platform/TestPlatform.js +9 -0
- package/esm/Platform/TestPlatform.js.map +1 -0
- package/esm/Platform/index.d.ts +3 -0
- package/esm/Platform/index.d.ts.map +1 -0
- package/esm/Platform/index.js +3 -0
- package/esm/Platform/index.js.map +1 -0
- package/esm/Ref/Ref.d.ts +40 -0
- package/esm/Ref/Ref.d.ts.map +1 -0
- package/esm/Ref/Ref.js +30 -0
- package/esm/Ref/Ref.js.map +1 -0
- package/esm/Ref/atomic.d.ts +5 -0
- package/esm/Ref/atomic.d.ts.map +1 -0
- package/esm/Ref/atomic.js +16 -0
- package/esm/Ref/atomic.js.map +1 -0
- package/esm/Ref/index.d.ts +3 -0
- package/esm/Ref/index.d.ts.map +1 -0
- package/esm/Ref/index.js +3 -0
- package/esm/Ref/index.js.map +1 -0
- package/esm/Schedule/Decision.d.ts +15 -0
- package/esm/Schedule/Decision.d.ts.map +1 -0
- package/esm/Schedule/Decision.js +34 -0
- package/esm/Schedule/Decision.js.map +1 -0
- package/esm/Schedule/Schedule.d.ts +30 -0
- package/esm/Schedule/Schedule.d.ts.map +1 -0
- package/esm/Schedule/Schedule.js +64 -0
- package/esm/Schedule/Schedule.js.map +1 -0
- package/esm/Schedule/ScheduleState.d.ts +45 -0
- package/esm/Schedule/ScheduleState.d.ts.map +1 -0
- package/esm/Schedule/ScheduleState.js +54 -0
- package/esm/Schedule/ScheduleState.js.map +1 -0
- package/esm/Schedule/index.d.ts +4 -0
- package/esm/Schedule/index.d.ts.map +1 -0
- package/esm/Schedule/index.js +4 -0
- package/esm/Schedule/index.js.map +1 -0
- package/esm/Scheduler/RootScheduler.d.ts +4 -0
- package/esm/Scheduler/RootScheduler.d.ts.map +1 -0
- package/esm/Scheduler/RootScheduler.js +53 -0
- package/esm/Scheduler/RootScheduler.js.map +1 -0
- package/esm/Scheduler/Scheduler.d.ts +14 -0
- package/esm/Scheduler/Scheduler.d.ts.map +1 -0
- package/esm/Scheduler/Scheduler.js +3 -0
- package/esm/Scheduler/Scheduler.js.map +1 -0
- package/esm/Scheduler/callbackScheduler.d.ts +5 -0
- package/esm/Scheduler/callbackScheduler.d.ts.map +1 -0
- package/esm/Scheduler/callbackScheduler.js +32 -0
- package/esm/Scheduler/callbackScheduler.js.map +1 -0
- package/esm/Scheduler/index.d.ts +1 -0
- package/esm/Scheduler/index.d.ts.map +1 -0
- package/esm/Scheduler/index.js +2 -0
- package/esm/Scheduler/index.js.map +1 -0
- package/esm/Scheduler/scheduled.d.ts +10 -0
- package/esm/Scheduler/scheduled.d.ts.map +1 -0
- package/esm/Scheduler/scheduled.js +21 -0
- package/esm/Scheduler/scheduled.js.map +1 -0
- package/esm/Scope/Closeable.d.ts +11 -0
- package/esm/Scope/Closeable.d.ts.map +1 -0
- package/esm/Scope/Closeable.js +20 -0
- package/esm/Scope/Closeable.js.map +1 -0
- package/esm/Scope/GlobalScope.d.ts +3 -0
- package/esm/Scope/GlobalScope.d.ts.map +1 -0
- package/esm/Scope/GlobalScope.js +12 -0
- package/esm/Scope/GlobalScope.js.map +1 -0
- package/esm/Scope/LocalScope.d.ts +24 -0
- package/esm/Scope/LocalScope.d.ts.map +1 -0
- package/esm/Scope/LocalScope.js +70 -0
- package/esm/Scope/LocalScope.js.map +1 -0
- package/esm/Scope/ReleaseMap.d.ts +19 -0
- package/esm/Scope/ReleaseMap.d.ts.map +1 -0
- package/esm/Scope/ReleaseMap.js +62 -0
- package/esm/Scope/ReleaseMap.js.map +1 -0
- package/esm/Scope/Scope.d.ts +11 -0
- package/esm/Scope/Scope.d.ts.map +1 -0
- package/esm/Scope/Scope.js +3 -0
- package/esm/Scope/Scope.js.map +1 -0
- package/esm/Scope/ScopeState.d.ts +19 -0
- package/esm/Scope/ScopeState.d.ts.map +1 -0
- package/esm/Scope/ScopeState.js +24 -0
- package/esm/Scope/ScopeState.js.map +1 -0
- package/esm/Scope/index.d.ts +7 -0
- package/esm/Scope/index.d.ts.map +1 -0
- package/esm/Scope/index.js +7 -0
- package/esm/Scope/index.js.map +1 -0
- package/esm/Semaphore/Semaphore.d.ts +38 -0
- package/esm/Semaphore/Semaphore.d.ts.map +1 -0
- package/esm/Semaphore/Semaphore.js +87 -0
- package/esm/Semaphore/Semaphore.js.map +1 -0
- package/esm/Semaphore/index.d.ts +2 -0
- package/esm/Semaphore/index.d.ts.map +1 -0
- package/esm/Semaphore/index.js +2 -0
- package/esm/Semaphore/index.js.map +1 -0
- package/esm/Service/Id.d.ts +59 -0
- package/esm/Service/Id.d.ts.map +1 -0
- package/esm/Service/Id.js +62 -0
- package/esm/Service/Id.js.map +1 -0
- package/esm/Service/Service.d.ts +20 -0
- package/esm/Service/Service.d.ts.map +1 -0
- package/esm/Service/Service.js +14 -0
- package/esm/Service/Service.js.map +1 -0
- package/esm/Service/index.d.ts +4 -0
- package/esm/Service/index.d.ts.map +1 -0
- package/esm/Service/index.js +4 -0
- package/esm/Service/index.js.map +1 -0
- package/esm/Service/tagged.d.ts +23 -0
- package/esm/Service/tagged.d.ts.map +1 -0
- package/esm/Service/tagged.js +9 -0
- package/esm/Service/tagged.js.map +1 -0
- package/esm/Sink/Sink.d.ts +22 -0
- package/esm/Sink/Sink.d.ts.map +1 -0
- package/esm/Sink/Sink.js +26 -0
- package/esm/Sink/Sink.js.map +1 -0
- package/esm/Sink/index.d.ts +1 -0
- package/esm/Sink/index.d.ts.map +1 -0
- package/esm/Sink/index.js +2 -0
- package/esm/Sink/index.js.map +1 -0
- package/esm/Stack/index.d.ts +20 -0
- package/esm/Stack/index.d.ts.map +1 -0
- package/esm/Stack/index.js +70 -0
- package/esm/Stack/index.js.map +1 -0
- package/esm/StackFrame/StackFrame.d.ts +29 -0
- package/esm/StackFrame/StackFrame.d.ts.map +1 -0
- package/esm/StackFrame/StackFrame.js +35 -0
- package/esm/StackFrame/StackFrame.js.map +1 -0
- package/esm/StackFrame/getStackFrames.d.ts +7 -0
- package/esm/StackFrame/getStackFrames.d.ts.map +1 -0
- package/esm/StackFrame/getStackFrames.js +51 -0
- package/esm/StackFrame/getStackFrames.js.map +1 -0
- package/esm/StackFrame/index.d.ts +3 -0
- package/esm/StackFrame/index.d.ts.map +1 -0
- package/esm/StackFrame/index.js +3 -0
- package/esm/StackFrame/index.js.map +1 -0
- package/esm/StackFrame/parseChromeStack.d.ts +3 -0
- package/esm/StackFrame/parseChromeStack.d.ts.map +1 -0
- package/esm/StackFrame/parseChromeStack.js +32 -0
- package/esm/StackFrame/parseChromeStack.js.map +1 -0
- package/esm/StackFrame/parseGeckoStackFrame.d.ts +3 -0
- package/esm/StackFrame/parseGeckoStackFrame.d.ts.map +1 -0
- package/esm/StackFrame/parseGeckoStackFrame.js +24 -0
- package/esm/StackFrame/parseGeckoStackFrame.js.map +1 -0
- package/esm/Stream/Stream.d.ts +18 -0
- package/esm/Stream/Stream.d.ts.map +1 -0
- package/esm/Stream/Stream.js +4 -0
- package/esm/Stream/Stream.js.map +1 -0
- package/esm/Stream/drain.d.ts +11 -0
- package/esm/Stream/drain.d.ts.map +1 -0
- package/esm/Stream/drain.js +21 -0
- package/esm/Stream/drain.js.map +1 -0
- package/esm/Stream/fromFx.d.ts +4 -0
- package/esm/Stream/fromFx.d.ts.map +1 -0
- package/esm/Stream/fromFx.js +7 -0
- package/esm/Stream/fromFx.js.map +1 -0
- package/esm/Stream/index.d.ts +4 -0
- package/esm/Stream/index.d.ts.map +1 -0
- package/esm/Stream/index.js +4 -0
- package/esm/Stream/index.js.map +1 -0
- package/esm/Supervisor/Supervisor.d.ts +32 -0
- package/esm/Supervisor/Supervisor.d.ts.map +1 -0
- package/esm/Supervisor/Supervisor.js +40 -0
- package/esm/Supervisor/Supervisor.js.map +1 -0
- package/esm/Supervisor/index.d.ts +2 -0
- package/esm/Supervisor/index.d.ts.map +1 -0
- package/esm/Supervisor/index.js +2 -0
- package/esm/Supervisor/index.js.map +1 -0
- package/esm/Tagged/index.d.ts +79 -0
- package/esm/Tagged/index.d.ts.map +1 -0
- package/esm/Tagged/index.js +43 -0
- package/esm/Tagged/index.js.map +1 -0
- package/esm/Time/index.d.ts +95 -0
- package/esm/Time/index.d.ts.map +1 -0
- package/esm/Time/index.js +33 -0
- package/esm/Time/index.js.map +1 -0
- package/esm/Timeline/index.d.ts +27 -0
- package/esm/Timeline/index.d.ts.map +1 -0
- package/esm/Timeline/index.js +98 -0
- package/esm/Timeline/index.js.map +1 -0
- package/esm/Timer/SetTimeoutTimer.d.ts +4 -0
- package/esm/Timer/SetTimeoutTimer.d.ts.map +1 -0
- package/esm/Timer/SetTimeoutTimer.js +14 -0
- package/esm/Timer/SetTimeoutTimer.js.map +1 -0
- package/esm/Timer/TestTimer.d.ts +9 -0
- package/esm/Timer/TestTimer.d.ts.map +1 -0
- package/esm/Timer/TestTimer.js +25 -0
- package/esm/Timer/TestTimer.js.map +1 -0
- package/esm/Timer/Timer.d.ts +11 -0
- package/esm/Timer/Timer.d.ts.map +1 -0
- package/esm/Timer/Timer.js +16 -0
- package/esm/Timer/Timer.js.map +1 -0
- package/esm/Timer/index.d.ts +4 -0
- package/esm/Timer/index.d.ts.map +1 -0
- package/esm/Timer/index.js +4 -0
- package/esm/Timer/index.js.map +1 -0
- package/esm/Trace/Trace.d.ts +38 -0
- package/esm/Trace/Trace.d.ts.map +1 -0
- package/esm/Trace/Trace.js +152 -0
- package/esm/Trace/Trace.js.map +1 -0
- package/esm/Trace/index.d.ts +2 -0
- package/esm/Trace/index.d.ts.map +1 -0
- package/esm/Trace/index.js +2 -0
- package/esm/Trace/index.js.map +1 -0
- package/esm/Tracing/plugin.d.ts +10 -0
- package/esm/Tracing/plugin.d.ts.map +1 -0
- package/esm/Tracing/plugin.js +93 -0
- package/esm/Tracing/plugin.js.map +1 -0
- package/esm/Tracing/vite.d.ts +10 -0
- package/esm/Tracing/vite.d.ts.map +1 -0
- package/esm/Tracing/vite.js +50 -0
- package/esm/Tracing/vite.js.map +1 -0
- package/esm/index.d.ts +35 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +68 -0
- package/esm/index.js.map +1 -0
- package/esm/internal.d.ts +18 -0
- package/esm/internal.d.ts.map +1 -0
- package/esm/internal.js +2 -0
- package/esm/internal.js.map +1 -0
- package/esm/test.d.ts +1 -0
- package/esm/test.d.ts.map +1 -0
- package/esm/test.js +2 -0
- package/esm/test.js.map +1 -0
- package/package.json +1238 -0
- package/readme.md +35 -0
- package/src/Atomic/Atomic.ts +122 -0
- package/src/Atomic/AtomicCounter.ts +23 -0
- package/src/Atomic/index.ts +2 -0
- package/src/Cause/Cause.ts +425 -0
- package/src/Cause/CauseError.ts +55 -0
- package/src/Cause/Renderer.ts +289 -0
- package/src/Cause/index.ts +1 -0
- package/src/Cause/prettyStringify.ts +8 -0
- package/src/Clock/Clock.ts +82 -0
- package/src/Clock/DateClock.ts +9 -0
- package/src/Clock/TestClock.ts +25 -0
- package/src/Clock/index.ts +3 -0
- package/src/Disposable/Disposable.ts +63 -0
- package/src/Disposable/index.ts +1 -0
- package/src/Duration/Duration.ts +125 -0
- package/src/Duration/index.ts +1 -0
- package/src/Env/Env.ts +62 -0
- package/src/Env/index.ts +1 -0
- package/src/Exit/Exit.ts +50 -0
- package/src/Exit/hkt.ts +29 -0
- package/src/Exit/index.ts +2 -0
- package/src/Fiber/Fiber.ts +85 -0
- package/src/Fiber/index.ts +1 -0
- package/src/FiberContext/FiberContext.ts +67 -0
- package/src/FiberContext/index.ts +1 -0
- package/src/FiberId/FiberId.ts +122 -0
- package/src/FiberId/index.ts +1 -0
- package/src/FiberRef/FiberRef.ts +93 -0
- package/src/FiberRef/index.ts +3 -0
- package/src/FiberRef/operations.ts +19 -0
- package/src/FiberRefs/FiberRefs.ts +162 -0
- package/src/FiberRefs/index.ts +1 -0
- package/src/FiberRuntime/FiberRuntime.ts +742 -0
- package/src/FiberRuntime/Frame.ts +28 -0
- package/src/FiberRuntime/index.ts +1 -0
- package/src/FiberStatus/index.ts +37 -0
- package/src/Finalizer/Finalizer.ts +48 -0
- package/src/Finalizer/index.ts +1 -0
- package/src/Future/Future.ts +72 -0
- package/src/Future/MutableFutureQueue.ts +58 -0
- package/src/Future/complete.ts +16 -0
- package/src/Future/index.ts +3 -0
- package/src/Future/wait.ts +8 -0
- package/src/Fx/Fx.test.ts +110 -0
- package/src/Fx/Fx.ts +629 -0
- package/src/Fx/Instruction.ts +468 -0
- package/src/Fx/index.ts +4 -0
- package/src/Fx/join.ts +17 -0
- package/src/Fx/logging.ts +69 -0
- package/src/Fx/scoped.ts +77 -0
- package/src/ImmutableMap/ImmutableMap.ts +55 -0
- package/src/ImmutableMap/index.ts +1 -0
- package/src/Layer/Layer.ts +44 -0
- package/src/Layer/index.ts +1 -0
- package/src/Logger/Console.test.ts +10 -0
- package/src/Logger/Console.ts +85 -0
- package/src/Logger/LogAnnotation.ts +8 -0
- package/src/Logger/LogLevel.ts +10 -0
- package/src/Logger/LogSpan.ts +10 -0
- package/src/Logger/Logger.ts +83 -0
- package/src/Logger/index.ts +1 -0
- package/src/Platform/Platform.ts +42 -0
- package/src/Platform/TestPlatform.ts +14 -0
- package/src/Platform/index.ts +2 -0
- package/src/Ref/Ref.test.ts +34 -0
- package/src/Ref/Ref.ts +76 -0
- package/src/Ref/atomic.ts +33 -0
- package/src/Ref/index.ts +2 -0
- package/src/Schedule/Decision.ts +44 -0
- package/src/Schedule/Schedule.ts +148 -0
- package/src/Schedule/ScheduleState.ts +80 -0
- package/src/Schedule/index.ts +3 -0
- package/src/Scheduler/RootScheduler.ts +84 -0
- package/src/Scheduler/Scheduler.ts +21 -0
- package/src/Scheduler/callbackScheduler.ts +43 -0
- package/src/Scheduler/index.ts +0 -0
- package/src/Scheduler/scheduled.ts +32 -0
- package/src/Scope/Closeable.test.ts +98 -0
- package/src/Scope/Closeable.ts +35 -0
- package/src/Scope/GlobalScope.ts +15 -0
- package/src/Scope/LocalScope.ts +93 -0
- package/src/Scope/ReleaseMap.ts +95 -0
- package/src/Scope/Scope.ts +13 -0
- package/src/Scope/ScopeState.ts +45 -0
- package/src/Scope/index.ts +6 -0
- package/src/Semaphore/Semaphore.ts +110 -0
- package/src/Semaphore/index.ts +1 -0
- package/src/Service/Id.ts +87 -0
- package/src/Service/Service.ts +31 -0
- package/src/Service/index.ts +3 -0
- package/src/Service/tagged.ts +10 -0
- package/src/Sink/Sink.ts +65 -0
- package/src/Sink/index.ts +0 -0
- package/src/Stack/index.ts +88 -0
- package/src/StackFrame/StackFrame.ts +68 -0
- package/src/StackFrame/getStackFrames.test.ts +30 -0
- package/src/StackFrame/getStackFrames.ts +70 -0
- package/src/StackFrame/index.ts +2 -0
- package/src/StackFrame/parseChromeStack.ts +43 -0
- package/src/StackFrame/parseGeckoStackFrame.ts +31 -0
- package/src/Stream/Stream.ts +21 -0
- package/src/Stream/drain.ts +73 -0
- package/src/Stream/fromFx.test.ts +39 -0
- package/src/Stream/fromFx.ts +27 -0
- package/src/Stream/index.ts +3 -0
- package/src/Supervisor/Supervisor.ts +49 -0
- package/src/Supervisor/index.ts +1 -0
- package/src/Tagged/index.ts +127 -0
- package/src/Time/index.ts +62 -0
- package/src/Timeline/index.ts +157 -0
- package/src/Timer/SetTimeoutTimer.ts +19 -0
- package/src/Timer/TestTimer.ts +39 -0
- package/src/Timer/Timer.ts +24 -0
- package/src/Timer/index.ts +3 -0
- package/src/Trace/Trace.ts +210 -0
- package/src/Trace/index.ts +1 -0
- package/src/Tracing/plugin.ts +155 -0
- package/src/Tracing/vite.ts +72 -0
- package/src/index.ts +34 -0
- package/src/internal.ts +33 -0
- package/src/test.ts +0 -0
- package/tools/common.ts +43 -0
- package/tools/generatePackageExports.ts +100 -0
- package/tsconfig.base.json +32 -0
- package/tsconfig.build.cjs.json +26 -0
- package/tsconfig.build.esm.json +30 -0
- package/tsconfig.build.tracing.json +16 -0
- package/tsconfig.json +8 -0
- package/tsconfig.test.json +17 -0
- package/vite.config.ts +28 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { pipe } from 'hkt-ts'
|
|
2
|
+
|
|
3
|
+
import { Stream } from './Stream.js'
|
|
4
|
+
|
|
5
|
+
import { Fiber } from '@/Fiber/Fiber.js'
|
|
6
|
+
import { FiberContext } from '@/FiberContext/FiberContext.js'
|
|
7
|
+
import { FiberRef } from '@/FiberRef/FiberRef.js'
|
|
8
|
+
import { update } from '@/FiberRef/operations.js'
|
|
9
|
+
import * as Fx from '@/Fx/index.js'
|
|
10
|
+
import { Scheduler } from '@/Scheduler/Scheduler.js'
|
|
11
|
+
import { Drain, Sink, makeDrain } from '@/Sink/Sink.js'
|
|
12
|
+
|
|
13
|
+
export function drain<R, E, A>(
|
|
14
|
+
stream: Stream<R, E, A>,
|
|
15
|
+
__trace?: string,
|
|
16
|
+
): Fx.Fx<R | Scheduler, never, Fiber<E, A>> {
|
|
17
|
+
return pipe(
|
|
18
|
+
Fx.Do,
|
|
19
|
+
Fx.bind('fiberContext', () => Fx.getFiberContext),
|
|
20
|
+
Fx.let('context', ({ fiberContext }) => fiberContext.fork()),
|
|
21
|
+
Fx.let('sink', ({ context }) => new Drain<E, A>(context.scope)),
|
|
22
|
+
Fx.flatMap(({ sink, context }) => fork(stream, sink, context), __trace),
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function fork<R, E, A, E2 = never>(
|
|
27
|
+
stream: Stream<R, E, A>,
|
|
28
|
+
sink: Sink<E | E2, A>,
|
|
29
|
+
context: FiberContext,
|
|
30
|
+
): Fx.Fx<R | Scheduler, never, Fiber<E | E2, A>> {
|
|
31
|
+
return Fx.asks(Scheduler)((scheduler) => stream.fork(sink, scheduler, context))
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function observe<A, R2, E2, B>(f: (a: A) => Fx.Fx<R2, E2, B>, __trace?: string) {
|
|
35
|
+
return <R, E>(stream: Stream<R, E, A>): Fx.Fx<R | R2 | Scheduler, never, Fiber<E | E2, A>> =>
|
|
36
|
+
pipe(
|
|
37
|
+
Fx.Do,
|
|
38
|
+
Fx.bind('fiberContext', () => Fx.getFiberContext),
|
|
39
|
+
Fx.let('context', ({ fiberContext }) => fiberContext.fork()),
|
|
40
|
+
Fx.bind('sink', ({ context }) => makeDrain<E, A, R2, E2>(context.scope, { event: f })),
|
|
41
|
+
Fx.flatMap(({ sink, context }) => fork(stream, sink, context), __trace),
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function collect<R, E, A>(
|
|
46
|
+
stream: Stream<R, E, A>,
|
|
47
|
+
__trace?: string,
|
|
48
|
+
): Fx.Fx<R | Scheduler, E, readonly A[]> {
|
|
49
|
+
return pipe(
|
|
50
|
+
Fx.fromLazy(() => FiberRef.make(Fx.now<readonly A[]>([]))),
|
|
51
|
+
Fx.bindTo('fiberRef'),
|
|
52
|
+
Fx.bind('fiberContext', () => Fx.getFiberContext),
|
|
53
|
+
Fx.let('context', ({ fiberContext }) => fiberContext.fork()),
|
|
54
|
+
Fx.bind('sink', ({ context, fiberRef }) =>
|
|
55
|
+
makeDrain<E, A, R, E>(context.scope, {
|
|
56
|
+
event: (a) =>
|
|
57
|
+
pipe(
|
|
58
|
+
fiberRef,
|
|
59
|
+
update((as) => [...as, a]),
|
|
60
|
+
),
|
|
61
|
+
}),
|
|
62
|
+
),
|
|
63
|
+
Fx.flatMap(
|
|
64
|
+
({ sink, context, fiberRef }) =>
|
|
65
|
+
pipe(
|
|
66
|
+
fork(stream, sink, context),
|
|
67
|
+
Fx.flatMap(Fx.join),
|
|
68
|
+
Fx.flatMap(() => Fx.getFiberRef(fiberRef)),
|
|
69
|
+
),
|
|
70
|
+
__trace,
|
|
71
|
+
),
|
|
72
|
+
)
|
|
73
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { deepStrictEqual } from 'assert'
|
|
2
|
+
|
|
3
|
+
import { pipe } from 'hkt-ts'
|
|
4
|
+
|
|
5
|
+
import { collect, observe } from './drain.js'
|
|
6
|
+
import { fromFx } from './fromFx.js'
|
|
7
|
+
|
|
8
|
+
import { runTest } from '@/Fx/Fx.test.js'
|
|
9
|
+
import * as Fx from '@/Fx/index.js'
|
|
10
|
+
import { RootScheduler } from '@/Scheduler/RootScheduler.js'
|
|
11
|
+
import { Scheduler } from '@/Scheduler/Scheduler.js'
|
|
12
|
+
|
|
13
|
+
describe(new URL(import.meta.url).pathname, () => {
|
|
14
|
+
describe(fromFx.name, () => {
|
|
15
|
+
const value = Math.random()
|
|
16
|
+
const stream = fromFx(Fx.success(value))
|
|
17
|
+
|
|
18
|
+
it('should create a Stream', () =>
|
|
19
|
+
pipe(
|
|
20
|
+
stream,
|
|
21
|
+
observe((n) => Fx.fromLazy(() => deepStrictEqual(n, value))),
|
|
22
|
+
Fx.flatMap(Fx.join),
|
|
23
|
+
Fx.provideService(Scheduler, RootScheduler()),
|
|
24
|
+
runTest,
|
|
25
|
+
))
|
|
26
|
+
|
|
27
|
+
it('should be collectable', async () => {
|
|
28
|
+
await pipe(
|
|
29
|
+
Fx.Fx(function* () {
|
|
30
|
+
const events = yield* collect(stream)
|
|
31
|
+
|
|
32
|
+
deepStrictEqual(events, [value])
|
|
33
|
+
}),
|
|
34
|
+
Fx.provideService(Scheduler, RootScheduler()),
|
|
35
|
+
runTest,
|
|
36
|
+
)
|
|
37
|
+
})
|
|
38
|
+
})
|
|
39
|
+
})
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { flow, pipe } from 'hkt-ts'
|
|
2
|
+
|
|
3
|
+
import { Stream } from './Stream.js'
|
|
4
|
+
|
|
5
|
+
import { Env } from '@/Env/Env.js'
|
|
6
|
+
import * as Fx from '@/Fx/Fx.js'
|
|
7
|
+
|
|
8
|
+
export function fromFx<R, E, A>(fx: Fx.Fx<R, E, A>): Stream<R, E, A> {
|
|
9
|
+
return Stream((sink, scheduler, context) =>
|
|
10
|
+
Fx.asksEnv((env: Env<R>) =>
|
|
11
|
+
scheduler.asap(
|
|
12
|
+
pipe(
|
|
13
|
+
fx,
|
|
14
|
+
Fx.matchCause(
|
|
15
|
+
sink.error,
|
|
16
|
+
flow(
|
|
17
|
+
sink.event,
|
|
18
|
+
Fx.flatMap(() => sink.end),
|
|
19
|
+
),
|
|
20
|
+
),
|
|
21
|
+
),
|
|
22
|
+
env,
|
|
23
|
+
context,
|
|
24
|
+
),
|
|
25
|
+
),
|
|
26
|
+
)
|
|
27
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { constVoid } from 'hkt-ts'
|
|
2
|
+
|
|
3
|
+
import { AnyExit } from '@/Exit/Exit.js'
|
|
4
|
+
import { AnyLiveFiber } from '@/Fiber/Fiber.js'
|
|
5
|
+
import { AnyFx, Of, unit, zipAll } from '@/Fx/Fx.js'
|
|
6
|
+
import { AnyInstruction } from '@/Fx/Instruction.js'
|
|
7
|
+
|
|
8
|
+
export class Supervisor<A> {
|
|
9
|
+
constructor(
|
|
10
|
+
readonly value: Of<A>,
|
|
11
|
+
readonly onStart: (fiber: AnyLiveFiber, fx: AnyFx) => void = constVoid,
|
|
12
|
+
readonly onEnd: (fiber: AnyLiveFiber, exit: AnyExit) => void = constVoid,
|
|
13
|
+
readonly onInstruction: (fiber: AnyLiveFiber, instruction: AnyInstruction) => void = constVoid,
|
|
14
|
+
readonly onSuspended: (fiber: AnyLiveFiber) => void = constVoid,
|
|
15
|
+
readonly onRunning: (fiber: AnyLiveFiber) => void = constVoid,
|
|
16
|
+
) {}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const None = new (class None extends Supervisor<any> {})(unit)
|
|
20
|
+
export type None = typeof None
|
|
21
|
+
|
|
22
|
+
export const isNone = <A>(supervisor: Supervisor<A>): supervisor is None => supervisor === None
|
|
23
|
+
|
|
24
|
+
export function and<B>(second: Supervisor<B>) {
|
|
25
|
+
return <A>(first: Supervisor<A>) =>
|
|
26
|
+
new Supervisor<readonly [A, B]>(
|
|
27
|
+
zipAll([first.value, second.value]),
|
|
28
|
+
(fiber, fx) => {
|
|
29
|
+
first.onStart(fiber, fx)
|
|
30
|
+
second.onStart(fiber, fx)
|
|
31
|
+
},
|
|
32
|
+
(fiber, exit) => {
|
|
33
|
+
first.onEnd(fiber, exit)
|
|
34
|
+
second.onEnd(fiber, exit)
|
|
35
|
+
},
|
|
36
|
+
(fiber, instr) => {
|
|
37
|
+
first.onInstruction(fiber, instr)
|
|
38
|
+
second.onInstruction(fiber, instr)
|
|
39
|
+
},
|
|
40
|
+
(fiber) => {
|
|
41
|
+
first.onSuspended(fiber)
|
|
42
|
+
second.onSuspended(fiber)
|
|
43
|
+
},
|
|
44
|
+
(fiber) => {
|
|
45
|
+
first.onRunning(fiber)
|
|
46
|
+
second.onRunning(fiber)
|
|
47
|
+
},
|
|
48
|
+
)
|
|
49
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Supervisor.js'
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
+
/**
|
|
3
|
+
* Tagged is a module to help you construct Tagged types, which
|
|
4
|
+
* are a means of creating nominal-like types in TypeScript.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Constrain, HKT2, Params, Variance } from 'hkt-ts/HKT'
|
|
8
|
+
import type * as Associative from 'hkt-ts/Typeclass/Associative'
|
|
9
|
+
import * as AB from 'hkt-ts/Typeclass/AssociativeBoth'
|
|
10
|
+
import type { Bounded } from 'hkt-ts/Typeclass/Bounded'
|
|
11
|
+
import type * as Commutative from 'hkt-ts/Typeclass/Commutative'
|
|
12
|
+
import type { Concat } from 'hkt-ts/Typeclass/Concat'
|
|
13
|
+
import * as C from 'hkt-ts/Typeclass/Covariant'
|
|
14
|
+
import type { Eq } from 'hkt-ts/Typeclass/Eq'
|
|
15
|
+
import type { Identity } from 'hkt-ts/Typeclass/Identity'
|
|
16
|
+
import type { Inverse } from 'hkt-ts/Typeclass/Inverse'
|
|
17
|
+
import type { Ord } from 'hkt-ts/Typeclass/Ord'
|
|
18
|
+
import type * as T from 'hkt-ts/Typeclass/Top'
|
|
19
|
+
import { unsafeCoerce } from 'hkt-ts/function'
|
|
20
|
+
import { M as B } from 'ts-toolbelt'
|
|
21
|
+
|
|
22
|
+
export const TAG = Symbol('@typed/fx/Tag')
|
|
23
|
+
export type TAG = typeof TAG
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Tag is encoded with as a Covariant type which allows for subtyping,
|
|
27
|
+
* unlike Brand (from hkt-ts/Branded) which allows super-types via its Contravariant encoding of BRAND.
|
|
28
|
+
*/
|
|
29
|
+
export type Tag<T> = { readonly [TAG]: () => T }
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @category Type-level
|
|
33
|
+
*/
|
|
34
|
+
export type TagOf<A> = [A] extends [Tagged<infer Brand, infer _>] ? Brand : unknown
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @category Type-level
|
|
38
|
+
*/
|
|
39
|
+
export type ValueOf<A> = A extends Tagged<TagOf<A>, infer R> ? R : never
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @category Model
|
|
43
|
+
*/
|
|
44
|
+
export type Tagged<T, Type> = Type & Tag<T>
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @category Type-level
|
|
48
|
+
*/
|
|
49
|
+
export type Combine<T, U> = ValueOf<T> & ValueOf<U> & Tag<TagOf<T> & TagOf<U>>
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @category Constructor
|
|
53
|
+
*/
|
|
54
|
+
export const Tagged = <A extends Tagged<any, any>>() => {
|
|
55
|
+
const constructor_ = <E extends ValueOf<A>>(e: E): Tagged<TagOf<A>, E> => unsafeCoerce(e)
|
|
56
|
+
|
|
57
|
+
constructor_.makeEq = (A: Eq<ValueOf<A>>): Eq<A> => unsafeCoerce(A)
|
|
58
|
+
|
|
59
|
+
constructor_.makeOrd = (A: Ord<ValueOf<A>>): Ord<A> => unsafeCoerce(A)
|
|
60
|
+
|
|
61
|
+
constructor_.makeBounded = (A: Bounded<ValueOf<A>>): Bounded<A> => unsafeCoerce(A)
|
|
62
|
+
|
|
63
|
+
constructor_.makeIdentity = (A: Identity<ValueOf<A>>): Identity<A> => unsafeCoerce(A)
|
|
64
|
+
|
|
65
|
+
constructor_.makeConcat = (A: Concat<ValueOf<A>>): Concat<A> => unsafeCoerce(A)
|
|
66
|
+
|
|
67
|
+
constructor_.makeAssociative = (
|
|
68
|
+
A: Associative.Associative<ValueOf<A>>,
|
|
69
|
+
): Associative.Associative<A> => unsafeCoerce(A)
|
|
70
|
+
|
|
71
|
+
constructor_.makeCommutative = (
|
|
72
|
+
A: Commutative.Commutative<ValueOf<A>>,
|
|
73
|
+
): Commutative.Commutative<A> => unsafeCoerce(A)
|
|
74
|
+
|
|
75
|
+
constructor_.makeInverse = (A: Inverse<ValueOf<A>>): Inverse<A> => unsafeCoerce(A)
|
|
76
|
+
|
|
77
|
+
return constructor_
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export const tag: <A extends Tagged<any, any>>(value: ValueOf<A>) => A = unsafeCoerce
|
|
81
|
+
|
|
82
|
+
export const untag: <A extends Tagged<any, any>>(value: A) => ValueOf<A> = unsafeCoerce
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Helper for removing all Branded values from a given type. Can be helpful for generating
|
|
86
|
+
* an incoming type from a domain type.
|
|
87
|
+
*/
|
|
88
|
+
export type StripTagged<A> = A extends B.Primitive | Date
|
|
89
|
+
? ValueOf<A>
|
|
90
|
+
: {
|
|
91
|
+
readonly [K in keyof A]: StripTagged<A[K]>
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface TaggedHKT extends HKT2 {
|
|
95
|
+
readonly type: Tagged<this[Params.E], this[Params.A]>
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export const Covariant: C.Covariant2<TaggedHKT> = {
|
|
99
|
+
map: (f) => (k) => unsafeCoerce(f(k)),
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export const map = Covariant.map
|
|
103
|
+
export const bindTo = C.bindTo(Covariant)
|
|
104
|
+
export const flap = C.flap(Covariant)
|
|
105
|
+
export const tupled = C.tupled(Covariant)
|
|
106
|
+
export const mapTo = C.mapTo(Covariant)
|
|
107
|
+
|
|
108
|
+
export const AssociativeBoth: AB.AssociativeBoth2<TaggedHKT> = {
|
|
109
|
+
both: (s) => (f) => unsafeCoerce([f, s] as const),
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export const both = AssociativeBoth.both
|
|
113
|
+
export const tuple = AB.tuple<TaggedHKT>({ ...AssociativeBoth, ...Covariant })
|
|
114
|
+
|
|
115
|
+
export const makeTop =
|
|
116
|
+
<Tag>() =>
|
|
117
|
+
<T>(
|
|
118
|
+
value: T,
|
|
119
|
+
): T.Top2<
|
|
120
|
+
Constrain<
|
|
121
|
+
Constrain<TaggedHKT, Params.A, Variance.Invariant<T>>,
|
|
122
|
+
Params.E,
|
|
123
|
+
Variance.Contravariant<Tag>
|
|
124
|
+
>
|
|
125
|
+
> => ({
|
|
126
|
+
top: unsafeCoerce(value),
|
|
127
|
+
})
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Branded } from 'hkt-ts/Branded'
|
|
2
|
+
import * as N from 'hkt-ts/number'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Monotonic representation of millisecond-precision Time relative to some StartTime.
|
|
6
|
+
* This is used all over the codebase such that tests that depend on time can remain
|
|
7
|
+
* deterministic. It is often intersected with another type (like Date) that will
|
|
8
|
+
* allow turning Time back into that other type.
|
|
9
|
+
*/
|
|
10
|
+
export type Time = Branded<{ readonly Time: Time }, number>
|
|
11
|
+
export const Time = Branded<Time>()
|
|
12
|
+
|
|
13
|
+
export const TimeAssociative = Time.makeAssociative(N.AssociativeSum)
|
|
14
|
+
export const TimeIdentity = Time.makeIdentity(N.IdentitySum)
|
|
15
|
+
export const TimeCommutative = Time.makeCommutative(N.AssociativeSum)
|
|
16
|
+
export const TimeEq = Time.makeEq(N.Eq)
|
|
17
|
+
export const TimeInverse = Time.makeInverse(N.Inverse)
|
|
18
|
+
export const TimeOrd = Time.makeOrd(N.Ord)
|
|
19
|
+
export const TimeBounded = Time.makeBounded({ ...N.Bounded, bottom: 0 })
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Millisecond precision Unix Timestamp. MUST be directly useable in `new Date(UnixTime)`
|
|
23
|
+
*/
|
|
24
|
+
export type UnixTime = Branded<{ readonly UnixTime: UnixTime }, number>
|
|
25
|
+
export const UnixTime = Branded<UnixTime>()
|
|
26
|
+
|
|
27
|
+
declare global {
|
|
28
|
+
// Patch Date.now to return UnixTime
|
|
29
|
+
export interface DateConstructor {
|
|
30
|
+
now(): UnixTime
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export const MIN_UNIX_TIME = UnixTime(0)
|
|
35
|
+
export const MAX_UNIX_TIME = UnixTime(8.64e15) // WHAT WILL WE DO AFTER +275760-09-13T00:00:00.000Z???
|
|
36
|
+
|
|
37
|
+
export const UnixTimeAssociative = UnixTime.makeAssociative(N.AssociativeSum)
|
|
38
|
+
export const UnixTimeIdentity = UnixTime.makeIdentity(N.IdentitySum)
|
|
39
|
+
export const UnixTimeCommutative = UnixTime.makeCommutative(N.AssociativeSum)
|
|
40
|
+
export const UnixTimeEq = UnixTime.makeEq(N.Eq)
|
|
41
|
+
export const UnixTimeInverse = UnixTime.makeInverse(N.Inverse)
|
|
42
|
+
export const UnixTimeOrd = UnixTime.makeOrd(N.Ord)
|
|
43
|
+
export const UnixTimeBounded = UnixTime.makeBounded({
|
|
44
|
+
...N.Bounded,
|
|
45
|
+
bottom: MIN_UNIX_TIME,
|
|
46
|
+
top: MAX_UNIX_TIME,
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Millisecond precision Delay, monotonic in relation to "now". Useful for describing
|
|
51
|
+
* things like `setTimeout(f, Delay)`
|
|
52
|
+
*/
|
|
53
|
+
export type Delay = Branded<{ readonly Delay: Delay }, number>
|
|
54
|
+
export const Delay = Branded<Delay>()
|
|
55
|
+
|
|
56
|
+
export const DelayAssociative = Delay.makeAssociative(N.AssociativeSum)
|
|
57
|
+
export const DelayIdentity = Delay.makeIdentity(N.IdentitySum)
|
|
58
|
+
export const DelayCommutative = Delay.makeCommutative(N.AssociativeSum)
|
|
59
|
+
export const DelayEq = Delay.makeEq(N.Eq)
|
|
60
|
+
export const DelayInverse = Delay.makeInverse(N.Inverse)
|
|
61
|
+
export const DelayOrd = Delay.makeOrd(N.Ord)
|
|
62
|
+
export const DelayBounded = Delay.makeBounded({ ...N.Bounded, bottom: 0 })
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { Disposable } from '@/Disposable/Disposable.js'
|
|
2
|
+
import { MAX_UNIX_TIME, UnixTime } from '@/Time/index.js'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A Timeline is a time-ordered queue, which uses a binary search to quickly insert/remove values.
|
|
6
|
+
* It allows de-queuing all values from the Queue that are at or before a specific time.
|
|
7
|
+
*/
|
|
8
|
+
export interface Timeline<A> {
|
|
9
|
+
/**
|
|
10
|
+
* Returns the UnixTime at which a Task should be run.
|
|
11
|
+
*/
|
|
12
|
+
readonly nextArrival: () => UnixTime
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Returns true if the Timeline has no tasks
|
|
16
|
+
*/
|
|
17
|
+
readonly isEmpty: () => boolean
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Add a task to the timeline, returns a Dispsoable to remove
|
|
21
|
+
* the task from the timeline.
|
|
22
|
+
*/
|
|
23
|
+
readonly add: (time: UnixTime, a: A) => Disposable
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Extract all of the values held in the queue that is at or before the specified Time.
|
|
27
|
+
*/
|
|
28
|
+
readonly getReadyTasks: (t: UnixTime) => readonly A[]
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function Timeline<A>(onUpdated?: () => void): Timeline<A> {
|
|
32
|
+
return new TimelineImpl(onUpdated)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
class TimelineImpl<A> implements Timeline<A> {
|
|
36
|
+
protected timeSlots: TimeSlot<A>[] = []
|
|
37
|
+
|
|
38
|
+
constructor(readonly onUpdated?: () => void) {}
|
|
39
|
+
|
|
40
|
+
readonly nextArrival = (): UnixTime => {
|
|
41
|
+
if (this.isEmpty()) {
|
|
42
|
+
return MAX_UNIX_TIME
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return this.timeSlots[0].time
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
readonly isEmpty = (): boolean => {
|
|
49
|
+
return this.timeSlots.length === 0
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
readonly add = (time: UnixTime, a: A): Disposable => {
|
|
53
|
+
insertByTime(time, a, this.timeSlots)
|
|
54
|
+
this.onUpdated?.()
|
|
55
|
+
|
|
56
|
+
return Disposable(() => this.remove(time, a))
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
protected remove = (time: UnixTime, a: A): boolean => {
|
|
60
|
+
const i = binarySearch(time, this.timeSlots)
|
|
61
|
+
|
|
62
|
+
if (i >= 0 && i < this.timeSlots.length) {
|
|
63
|
+
const events = this.timeSlots[i].events
|
|
64
|
+
const at = events.findIndex((x) => x === a)
|
|
65
|
+
|
|
66
|
+
if (at >= 0) {
|
|
67
|
+
events.splice(at, 1)
|
|
68
|
+
|
|
69
|
+
if (events.length === 0) {
|
|
70
|
+
this.timeSlots.splice(i, 1)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
this.onUpdated?.()
|
|
74
|
+
|
|
75
|
+
return true
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return false
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
readonly getReadyTasks = (t: UnixTime): readonly A[] => {
|
|
83
|
+
const tasks = this.timeSlots
|
|
84
|
+
const l = tasks.length
|
|
85
|
+
let i = 0
|
|
86
|
+
|
|
87
|
+
while (i < l && tasks[i].time <= t) {
|
|
88
|
+
++i
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return this.timeSlots.splice(0, i).flatMap((x) => x.events)
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
interface TimeSlot<A> {
|
|
96
|
+
readonly time: UnixTime
|
|
97
|
+
readonly events: A[]
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function insertByTime<A>(time: UnixTime, a: A, timeslots: Array<TimeSlot<A>>): void {
|
|
101
|
+
const l = timeslots.length
|
|
102
|
+
|
|
103
|
+
if (l === 0) {
|
|
104
|
+
timeslots.push(makeTimeslot(time, [a]))
|
|
105
|
+
|
|
106
|
+
return
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const i = binarySearch(time, timeslots)
|
|
110
|
+
|
|
111
|
+
if (i >= l) {
|
|
112
|
+
timeslots.push(makeTimeslot(time, [a]))
|
|
113
|
+
} else {
|
|
114
|
+
insertAtTimeslot(a, timeslots, time, i)
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function insertAtTimeslot<A>(
|
|
119
|
+
task: A,
|
|
120
|
+
timeslots: Array<TimeSlot<A>>,
|
|
121
|
+
time: UnixTime,
|
|
122
|
+
i: number,
|
|
123
|
+
): void {
|
|
124
|
+
const timeslot = timeslots[i]
|
|
125
|
+
|
|
126
|
+
if (time === timeslot.time) {
|
|
127
|
+
timeslot.events.push(task)
|
|
128
|
+
} else {
|
|
129
|
+
timeslots.splice(i, 0, makeTimeslot(time, [task]))
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function binarySearch<A>(t: UnixTime, sortedArray: ArrayLike<TimeSlot<A>>): number {
|
|
134
|
+
let lo = 0
|
|
135
|
+
let hi = sortedArray.length
|
|
136
|
+
let mid, y
|
|
137
|
+
|
|
138
|
+
while (lo < hi) {
|
|
139
|
+
mid = Math.floor((lo + hi) / 2)
|
|
140
|
+
y = sortedArray[mid]
|
|
141
|
+
|
|
142
|
+
if (t === y.time) {
|
|
143
|
+
return mid
|
|
144
|
+
} else if (t < y.time) {
|
|
145
|
+
hi = mid
|
|
146
|
+
} else {
|
|
147
|
+
lo = mid + 1
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return hi
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
const makeTimeslot = <A>(t: UnixTime, events: A[]): TimeSlot<A> => ({
|
|
155
|
+
time: t,
|
|
156
|
+
events: events,
|
|
157
|
+
})
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Timer, make } from './Timer.js'
|
|
2
|
+
|
|
3
|
+
import { Clock } from '@/Clock/Clock.js'
|
|
4
|
+
import { DateClock } from '@/Clock/DateClock.js'
|
|
5
|
+
import { Disposable, None } from '@/Disposable/Disposable.js'
|
|
6
|
+
|
|
7
|
+
export function SetTimeoutTimer(clock: Clock = DateClock()): Timer {
|
|
8
|
+
return make(clock, (f, delay) => {
|
|
9
|
+
if (delay <= 0) {
|
|
10
|
+
queueMicrotask(() => f(clock.getCurrentTime()))
|
|
11
|
+
|
|
12
|
+
return None
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const id = setTimeout(() => f(clock.getCurrentTime()), delay)
|
|
16
|
+
|
|
17
|
+
return Disposable(() => clearTimeout(id))
|
|
18
|
+
})
|
|
19
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { flow } from 'hkt-ts'
|
|
2
|
+
|
|
3
|
+
import { Timer } from './Timer.js'
|
|
4
|
+
|
|
5
|
+
import * as Clock from '@/Clock/Clock.js'
|
|
6
|
+
import { TestClock } from '@/Clock/TestClock.js'
|
|
7
|
+
import { None } from '@/Disposable/Disposable.js'
|
|
8
|
+
import { Time } from '@/Time/index.js'
|
|
9
|
+
import { Timeline } from '@/Timeline/index.js'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* A Timer which provides imperative access to progressing Time forward.
|
|
13
|
+
*/
|
|
14
|
+
export interface TestTimer extends Timer, TestClock {}
|
|
15
|
+
|
|
16
|
+
export function TestTimer(clock: TestClock = TestClock(), autoRun = true): TestTimer {
|
|
17
|
+
const timeline = Timeline<(t: Time) => void>()
|
|
18
|
+
const runReadyTimers = (t: Time) => (
|
|
19
|
+
timeline.getReadyTasks(Clock.timeToUnixTime(t)(clock)).forEach((f) => f(t)), t
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
return {
|
|
23
|
+
startTime: clock.startTime,
|
|
24
|
+
getCurrentTime: clock.getCurrentTime,
|
|
25
|
+
setTimer: (f, delay) => {
|
|
26
|
+
// If auto-run is enabled an delay is 0,
|
|
27
|
+
// synchronously run the callback.
|
|
28
|
+
if (autoRun && delay === 0) {
|
|
29
|
+
f(clock.getCurrentTime())
|
|
30
|
+
|
|
31
|
+
return None
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return timeline.add(Clock.delayToUnixTime(delay)(clock), f)
|
|
35
|
+
},
|
|
36
|
+
progressTimeBy: flow(clock.progressTimeBy, runReadyTimers),
|
|
37
|
+
progressTimeTo: flow(clock.progressTimeTo, runReadyTimers),
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as C from '@/Clock/index.js'
|
|
2
|
+
import { Disposable } from '@/Disposable/Disposable.js'
|
|
3
|
+
import { Service } from '@/Service/index.js'
|
|
4
|
+
import { Delay, Time } from '@/Time/index.js'
|
|
5
|
+
|
|
6
|
+
export interface Timer extends C.Clock {
|
|
7
|
+
readonly setTimer: (f: (time: Time) => void, delay: Delay) => Disposable
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const Timer = Service<Timer>('Timer')
|
|
11
|
+
|
|
12
|
+
export function make(clock: C.Clock, setTimer: Timer['setTimer']): Timer {
|
|
13
|
+
return {
|
|
14
|
+
...clock,
|
|
15
|
+
setTimer,
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function fork(timer: Timer): Timer {
|
|
20
|
+
return {
|
|
21
|
+
...timer,
|
|
22
|
+
...C.fork(timer),
|
|
23
|
+
}
|
|
24
|
+
}
|