@procedures/client 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/LICENSE +21 -0
- package/README.md +832 -2
- package/dist/.tsbuildinfo +1 -0
- package/dist/adapters/http/client/index.d.ts +11 -0
- package/dist/adapters/http/client/index.d.ts.map +1 -0
- package/dist/adapters/http/client/index.js +18 -0
- package/dist/adapters/http/client/index.js.map +1 -0
- package/dist/adapters/http/client/transport.d.ts +72 -0
- package/dist/adapters/http/client/transport.d.ts.map +1 -0
- package/dist/adapters/http/client/transport.js +282 -0
- package/dist/adapters/http/client/transport.js.map +1 -0
- package/dist/adapters/http/client/types.d.ts +27 -0
- package/dist/adapters/http/client/types.d.ts.map +1 -0
- package/dist/adapters/http/client/types.js +8 -0
- package/dist/adapters/http/client/types.js.map +1 -0
- package/dist/adapters/http/index.d.ts +7 -0
- package/dist/adapters/http/index.d.ts.map +1 -0
- package/dist/adapters/http/index.js +7 -0
- package/dist/adapters/http/index.js.map +1 -0
- package/dist/adapters/http/server/index.d.ts +9 -0
- package/dist/adapters/http/server/index.d.ts.map +1 -0
- package/dist/adapters/http/server/index.js +10 -0
- package/dist/adapters/http/server/index.js.map +1 -0
- package/dist/adapters/http/server/strategies.d.ts +39 -0
- package/dist/adapters/http/server/strategies.d.ts.map +1 -0
- package/dist/adapters/http/server/strategies.js +90 -0
- package/dist/adapters/http/server/strategies.js.map +1 -0
- package/dist/adapters/http/server/transport.d.ts +66 -0
- package/dist/adapters/http/server/transport.d.ts.map +1 -0
- package/dist/adapters/http/server/transport.js +561 -0
- package/dist/adapters/http/server/transport.js.map +1 -0
- package/dist/adapters/http/server/types.d.ts +71 -0
- package/dist/adapters/http/server/types.d.ts.map +1 -0
- package/dist/adapters/http/server/types.js +7 -0
- package/dist/adapters/http/server/types.js.map +1 -0
- package/dist/adapters/http/shared/constants.d.ts +95 -0
- package/dist/adapters/http/shared/constants.d.ts.map +1 -0
- package/dist/adapters/http/shared/constants.js +102 -0
- package/dist/adapters/http/shared/constants.js.map +1 -0
- package/dist/adapters/http/shared/errors.d.ts +78 -0
- package/dist/adapters/http/shared/errors.d.ts.map +1 -0
- package/dist/adapters/http/shared/errors.js +151 -0
- package/dist/adapters/http/shared/errors.js.map +1 -0
- package/dist/adapters/http/shared/headers.d.ts +122 -0
- package/dist/adapters/http/shared/headers.d.ts.map +1 -0
- package/dist/adapters/http/shared/headers.js +216 -0
- package/dist/adapters/http/shared/headers.js.map +1 -0
- package/dist/adapters/http/shared/index.d.ts +12 -0
- package/dist/adapters/http/shared/index.d.ts.map +1 -0
- package/dist/adapters/http/shared/index.js +17 -0
- package/dist/adapters/http/shared/index.js.map +1 -0
- package/dist/adapters/http/shared/status-codes.d.ts +92 -0
- package/dist/adapters/http/shared/status-codes.d.ts.map +1 -0
- package/dist/adapters/http/shared/status-codes.js +189 -0
- package/dist/adapters/http/shared/status-codes.js.map +1 -0
- package/dist/adapters/http/shared/strategies.d.ts +90 -0
- package/dist/adapters/http/shared/strategies.d.ts.map +1 -0
- package/dist/adapters/http/shared/strategies.js +180 -0
- package/dist/adapters/http/shared/strategies.js.map +1 -0
- package/dist/adapters/local/client/index.d.ts +8 -0
- package/dist/adapters/local/client/index.d.ts.map +1 -0
- package/dist/adapters/local/client/index.js +8 -0
- package/dist/adapters/local/client/index.js.map +1 -0
- package/dist/adapters/local/client/transport.d.ts +81 -0
- package/dist/adapters/local/client/transport.d.ts.map +1 -0
- package/dist/adapters/local/client/transport.js +172 -0
- package/dist/adapters/local/client/transport.js.map +1 -0
- package/dist/adapters/local/client/types.d.ts +39 -0
- package/dist/adapters/local/client/types.d.ts.map +1 -0
- package/dist/adapters/local/client/types.js +13 -0
- package/dist/adapters/local/client/types.js.map +1 -0
- package/dist/adapters/metadata.d.ts +10 -0
- package/dist/adapters/metadata.d.ts.map +1 -0
- package/dist/adapters/metadata.js +19 -0
- package/dist/adapters/metadata.js.map +1 -0
- package/dist/adapters/mock/client/builder.d.ts +35 -0
- package/dist/adapters/mock/client/builder.d.ts.map +1 -0
- package/dist/adapters/mock/client/builder.js +58 -0
- package/dist/adapters/mock/client/builder.js.map +1 -0
- package/dist/adapters/mock/client/index.d.ts +9 -0
- package/dist/adapters/mock/client/index.d.ts.map +1 -0
- package/dist/adapters/mock/client/index.js +10 -0
- package/dist/adapters/mock/client/index.js.map +1 -0
- package/dist/adapters/mock/client/transport.d.ts +149 -0
- package/dist/adapters/mock/client/transport.d.ts.map +1 -0
- package/dist/adapters/mock/client/transport.js +289 -0
- package/dist/adapters/mock/client/transport.js.map +1 -0
- package/dist/adapters/mock/client/types.d.ts +86 -0
- package/dist/adapters/mock/client/types.d.ts.map +1 -0
- package/dist/adapters/mock/client/types.js +7 -0
- package/dist/adapters/mock/client/types.js.map +1 -0
- package/dist/adapters/websocket/client/index.d.ts +9 -0
- package/dist/adapters/websocket/client/index.d.ts.map +1 -0
- package/dist/adapters/websocket/client/index.js +9 -0
- package/dist/adapters/websocket/client/index.js.map +1 -0
- package/dist/adapters/websocket/client/transport.d.ts +106 -0
- package/dist/adapters/websocket/client/transport.d.ts.map +1 -0
- package/dist/adapters/websocket/client/transport.js +647 -0
- package/dist/adapters/websocket/client/transport.js.map +1 -0
- package/dist/adapters/websocket/client/types.d.ts +192 -0
- package/dist/adapters/websocket/client/types.d.ts.map +1 -0
- package/dist/adapters/websocket/client/types.js +17 -0
- package/dist/adapters/websocket/client/types.js.map +1 -0
- package/dist/adapters/websocket/index.d.ts +8 -0
- package/dist/adapters/websocket/index.d.ts.map +1 -0
- package/dist/adapters/websocket/index.js +8 -0
- package/dist/adapters/websocket/index.js.map +1 -0
- package/dist/adapters/websocket/server/index.d.ts +8 -0
- package/dist/adapters/websocket/server/index.d.ts.map +1 -0
- package/dist/adapters/websocket/server/index.js +8 -0
- package/dist/adapters/websocket/server/index.js.map +1 -0
- package/dist/adapters/websocket/server/transport.d.ts +112 -0
- package/dist/adapters/websocket/server/transport.d.ts.map +1 -0
- package/dist/adapters/websocket/server/transport.js +619 -0
- package/dist/adapters/websocket/server/transport.js.map +1 -0
- package/dist/adapters/websocket/server/types.d.ts +140 -0
- package/dist/adapters/websocket/server/types.d.ts.map +1 -0
- package/dist/adapters/websocket/server/types.js +7 -0
- package/dist/adapters/websocket/server/types.js.map +1 -0
- package/dist/browser.d.ts +48 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +86 -0
- package/dist/browser.js.map +1 -0
- package/dist/client/batch-executor.d.ts +160 -0
- package/dist/client/batch-executor.d.ts.map +1 -0
- package/dist/client/batch-executor.js +397 -0
- package/dist/client/batch-executor.js.map +1 -0
- package/dist/client/call-types.d.ts +271 -0
- package/dist/client/call-types.d.ts.map +1 -0
- package/dist/client/call-types.js +208 -0
- package/dist/client/call-types.js.map +1 -0
- package/dist/client/client.d.ts +517 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +990 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/consumption.d.ts +191 -0
- package/dist/client/consumption.d.ts.map +1 -0
- package/dist/client/consumption.js +98 -0
- package/dist/client/consumption.js.map +1 -0
- package/dist/client/context.d.ts +116 -0
- package/dist/client/context.d.ts.map +1 -0
- package/dist/client/context.js +111 -0
- package/dist/client/context.js.map +1 -0
- package/dist/client/errors/codes.d.ts +71 -0
- package/dist/client/errors/codes.d.ts.map +1 -0
- package/dist/client/errors/codes.js +81 -0
- package/dist/client/errors/codes.js.map +1 -0
- package/dist/client/errors/factory.d.ts +102 -0
- package/dist/client/errors/factory.d.ts.map +1 -0
- package/dist/client/errors/factory.js +210 -0
- package/dist/client/errors/factory.js.map +1 -0
- package/dist/client/errors/http-errors.d.ts +47 -0
- package/dist/client/errors/http-errors.d.ts.map +1 -0
- package/dist/client/errors/http-errors.js +548 -0
- package/dist/client/errors/http-errors.js.map +1 -0
- package/dist/client/errors/http-status.d.ts +73 -0
- package/dist/client/errors/http-status.d.ts.map +1 -0
- package/dist/client/errors/http-status.js +79 -0
- package/dist/client/errors/http-status.js.map +1 -0
- package/dist/client/errors/index.d.ts +36 -0
- package/dist/client/errors/index.d.ts.map +1 -0
- package/dist/client/errors/index.js +40 -0
- package/dist/client/errors/index.js.map +1 -0
- package/dist/client/errors/registry.d.ts +38 -0
- package/dist/client/errors/registry.d.ts.map +1 -0
- package/dist/client/errors/registry.js +535 -0
- package/dist/client/errors/registry.js.map +1 -0
- package/dist/client/errors/types.d.ts +112 -0
- package/dist/client/errors/types.d.ts.map +1 -0
- package/dist/client/errors/types.js +45 -0
- package/dist/client/errors/types.js.map +1 -0
- package/dist/client/index.d.ts +44 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +36 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/middleware/auth.d.ts +90 -0
- package/dist/client/middleware/auth.d.ts.map +1 -0
- package/dist/client/middleware/auth.js +98 -0
- package/dist/client/middleware/auth.js.map +1 -0
- package/dist/client/middleware/batching.d.ts +102 -0
- package/dist/client/middleware/batching.d.ts.map +1 -0
- package/dist/client/middleware/batching.js +245 -0
- package/dist/client/middleware/batching.js.map +1 -0
- package/dist/client/middleware/cache.d.ts +124 -0
- package/dist/client/middleware/cache.d.ts.map +1 -0
- package/dist/client/middleware/cache.js +208 -0
- package/dist/client/middleware/cache.js.map +1 -0
- package/dist/client/middleware/circuit-breaker.d.ts +113 -0
- package/dist/client/middleware/circuit-breaker.d.ts.map +1 -0
- package/dist/client/middleware/circuit-breaker.js +236 -0
- package/dist/client/middleware/circuit-breaker.js.map +1 -0
- package/dist/client/middleware/contexts.d.ts +199 -0
- package/dist/client/middleware/contexts.d.ts.map +1 -0
- package/dist/client/middleware/contexts.js +74 -0
- package/dist/client/middleware/contexts.js.map +1 -0
- package/dist/client/middleware/items.d.ts +37 -0
- package/dist/client/middleware/items.d.ts.map +1 -0
- package/dist/client/middleware/items.js +100 -0
- package/dist/client/middleware/items.js.map +1 -0
- package/dist/client/middleware/lru.d.ts +32 -0
- package/dist/client/middleware/lru.d.ts.map +1 -0
- package/dist/client/middleware/lru.js +62 -0
- package/dist/client/middleware/lru.js.map +1 -0
- package/dist/client/middleware/pagination.d.ts +114 -0
- package/dist/client/middleware/pagination.d.ts.map +1 -0
- package/dist/client/middleware/pagination.js +148 -0
- package/dist/client/middleware/pagination.js.map +1 -0
- package/dist/client/middleware/rate-limit.d.ts +105 -0
- package/dist/client/middleware/rate-limit.d.ts.map +1 -0
- package/dist/client/middleware/rate-limit.js +222 -0
- package/dist/client/middleware/rate-limit.js.map +1 -0
- package/dist/client/middleware/retry.d.ts +100 -0
- package/dist/client/middleware/retry.d.ts.map +1 -0
- package/dist/client/middleware/retry.js +150 -0
- package/dist/client/middleware/retry.js.map +1 -0
- package/dist/client/middleware/timeout.d.ts +91 -0
- package/dist/client/middleware/timeout.d.ts.map +1 -0
- package/dist/client/middleware/timeout.js +253 -0
- package/dist/client/middleware/timeout.js.map +1 -0
- package/dist/client/middleware/tracing.d.ts +118 -0
- package/dist/client/middleware/tracing.d.ts.map +1 -0
- package/dist/client/middleware/tracing.js +152 -0
- package/dist/client/middleware/tracing.js.map +1 -0
- package/dist/client/route-resolver.d.ts +181 -0
- package/dist/client/route-resolver.d.ts.map +1 -0
- package/dist/client/route-resolver.js +300 -0
- package/dist/client/route-resolver.js.map +1 -0
- package/dist/client/typed-method.d.ts +29 -0
- package/dist/client/typed-method.d.ts.map +1 -0
- package/dist/client/typed-method.js +36 -0
- package/dist/client/typed-method.js.map +1 -0
- package/dist/client/typed.d.ts +102 -0
- package/dist/client/typed.d.ts.map +1 -0
- package/dist/client/typed.js +52 -0
- package/dist/client/typed.js.map +1 -0
- package/dist/client/types.d.ts +296 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +26 -0
- package/dist/client/types.js.map +1 -0
- package/dist/client/validation/index.d.ts +34 -0
- package/dist/client/validation/index.d.ts.map +1 -0
- package/dist/client/validation/index.js +36 -0
- package/dist/client/validation/index.js.map +1 -0
- package/dist/client/validation/middleware.d.ts +82 -0
- package/dist/client/validation/middleware.d.ts.map +1 -0
- package/dist/client/validation/middleware.js +138 -0
- package/dist/client/validation/middleware.js.map +1 -0
- package/dist/client/validation/types.d.ts +118 -0
- package/dist/client/validation/types.d.ts.map +1 -0
- package/dist/client/validation/types.js +59 -0
- package/dist/client/validation/types.js.map +1 -0
- package/dist/collections/async/async-queue.d.ts +144 -0
- package/dist/collections/async/async-queue.d.ts.map +1 -0
- package/dist/collections/async/async-queue.js +347 -0
- package/dist/collections/async/async-queue.js.map +1 -0
- package/dist/collections/async/channels.d.ts +188 -0
- package/dist/collections/async/channels.d.ts.map +1 -0
- package/dist/collections/async/channels.js +312 -0
- package/dist/collections/async/channels.js.map +1 -0
- package/dist/collections/behaviors/bounded.d.ts +79 -0
- package/dist/collections/behaviors/bounded.d.ts.map +1 -0
- package/dist/collections/behaviors/bounded.js +384 -0
- package/dist/collections/behaviors/bounded.js.map +1 -0
- package/dist/collections/behaviors/evented.d.ts +154 -0
- package/dist/collections/behaviors/evented.d.ts.map +1 -0
- package/dist/collections/behaviors/evented.js +299 -0
- package/dist/collections/behaviors/evented.js.map +1 -0
- package/dist/collections/behaviors/lru.d.ts +84 -0
- package/dist/collections/behaviors/lru.d.ts.map +1 -0
- package/dist/collections/behaviors/lru.js +330 -0
- package/dist/collections/behaviors/lru.js.map +1 -0
- package/dist/collections/behaviors/readonly.d.ts +73 -0
- package/dist/collections/behaviors/readonly.d.ts.map +1 -0
- package/dist/collections/behaviors/readonly.js +158 -0
- package/dist/collections/behaviors/readonly.js.map +1 -0
- package/dist/collections/behaviors/safe.d.ts +163 -0
- package/dist/collections/behaviors/safe.d.ts.map +1 -0
- package/dist/collections/behaviors/safe.js +172 -0
- package/dist/collections/behaviors/safe.js.map +1 -0
- package/dist/collections/behaviors/synchronized.d.ts +88 -0
- package/dist/collections/behaviors/synchronized.d.ts.map +1 -0
- package/dist/collections/behaviors/synchronized.js +294 -0
- package/dist/collections/behaviors/synchronized.js.map +1 -0
- package/dist/collections/behaviors/ttl.d.ts +118 -0
- package/dist/collections/behaviors/ttl.d.ts.map +1 -0
- package/dist/collections/behaviors/ttl.js +338 -0
- package/dist/collections/behaviors/ttl.js.map +1 -0
- package/dist/collections/core/effects.d.ts +176 -0
- package/dist/collections/core/effects.d.ts.map +1 -0
- package/dist/collections/core/effects.js +180 -0
- package/dist/collections/core/effects.js.map +1 -0
- package/dist/collections/core/events.d.ts +192 -0
- package/dist/collections/core/events.d.ts.map +1 -0
- package/dist/collections/core/events.js +291 -0
- package/dist/collections/core/events.js.map +1 -0
- package/dist/collections/core/middleware.d.ts +231 -0
- package/dist/collections/core/middleware.d.ts.map +1 -0
- package/dist/collections/core/middleware.js +161 -0
- package/dist/collections/core/middleware.js.map +1 -0
- package/dist/collections/core/policies.d.ts +220 -0
- package/dist/collections/core/policies.d.ts.map +1 -0
- package/dist/collections/core/policies.js +48 -0
- package/dist/collections/core/policies.js.map +1 -0
- package/dist/collections/core/traits.d.ts +142 -0
- package/dist/collections/core/traits.d.ts.map +1 -0
- package/dist/collections/core/traits.js +8 -0
- package/dist/collections/core/traits.js.map +1 -0
- package/dist/collections/examples.d.ts +13 -0
- package/dist/collections/examples.d.ts.map +1 -0
- package/dist/collections/examples.js +302 -0
- package/dist/collections/examples.js.map +1 -0
- package/dist/collections/fx/collectors.d.ts +190 -0
- package/dist/collections/fx/collectors.d.ts.map +1 -0
- package/dist/collections/fx/collectors.js +369 -0
- package/dist/collections/fx/collectors.js.map +1 -0
- package/dist/collections/fx/iter.d.ts +166 -0
- package/dist/collections/fx/iter.d.ts.map +1 -0
- package/dist/collections/fx/iter.js +421 -0
- package/dist/collections/fx/iter.js.map +1 -0
- package/dist/collections/impl/array-deque.d.ts +107 -0
- package/dist/collections/impl/array-deque.d.ts.map +1 -0
- package/dist/collections/impl/array-deque.js +381 -0
- package/dist/collections/impl/array-deque.js.map +1 -0
- package/dist/collections/impl/array-list.d.ts +101 -0
- package/dist/collections/impl/array-list.d.ts.map +1 -0
- package/dist/collections/impl/array-list.js +387 -0
- package/dist/collections/impl/array-list.js.map +1 -0
- package/dist/collections/impl/hash-map.d.ts +141 -0
- package/dist/collections/impl/hash-map.d.ts.map +1 -0
- package/dist/collections/impl/hash-map.js +450 -0
- package/dist/collections/impl/hash-map.js.map +1 -0
- package/dist/collections/impl/hash-set.d.ts +125 -0
- package/dist/collections/impl/hash-set.d.ts.map +1 -0
- package/dist/collections/impl/hash-set.js +264 -0
- package/dist/collections/impl/hash-set.js.map +1 -0
- package/dist/collections/impl/linked-hash-map.d.ts +141 -0
- package/dist/collections/impl/linked-hash-map.d.ts.map +1 -0
- package/dist/collections/impl/linked-hash-map.js +472 -0
- package/dist/collections/impl/linked-hash-map.js.map +1 -0
- package/dist/collections/impl/linked-list.d.ts +109 -0
- package/dist/collections/impl/linked-list.d.ts.map +1 -0
- package/dist/collections/impl/linked-list.js +491 -0
- package/dist/collections/impl/linked-list.js.map +1 -0
- package/dist/collections/impl/priority-queue.d.ts +134 -0
- package/dist/collections/impl/priority-queue.d.ts.map +1 -0
- package/dist/collections/impl/priority-queue.js +336 -0
- package/dist/collections/impl/priority-queue.js.map +1 -0
- package/dist/collections/impl/tree-map.d.ts +146 -0
- package/dist/collections/impl/tree-map.d.ts.map +1 -0
- package/dist/collections/impl/tree-map.js +781 -0
- package/dist/collections/impl/tree-map.js.map +1 -0
- package/dist/collections/impl/tree-set.d.ts +112 -0
- package/dist/collections/impl/tree-set.d.ts.map +1 -0
- package/dist/collections/impl/tree-set.js +374 -0
- package/dist/collections/impl/tree-set.js.map +1 -0
- package/dist/collections/index.d.ts +105 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/index.js +135 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/collections/interfaces/collection.d.ts +119 -0
- package/dist/collections/interfaces/collection.d.ts.map +1 -0
- package/dist/collections/interfaces/collection.js +8 -0
- package/dist/collections/interfaces/collection.js.map +1 -0
- package/dist/collections/interfaces/list.d.ts +247 -0
- package/dist/collections/interfaces/list.d.ts.map +1 -0
- package/dist/collections/interfaces/list.js +8 -0
- package/dist/collections/interfaces/list.js.map +1 -0
- package/dist/collections/interfaces/map.d.ts +344 -0
- package/dist/collections/interfaces/map.d.ts.map +1 -0
- package/dist/collections/interfaces/map.js +8 -0
- package/dist/collections/interfaces/map.js.map +1 -0
- package/dist/collections/interfaces/queue.d.ts +304 -0
- package/dist/collections/interfaces/queue.d.ts.map +1 -0
- package/dist/collections/interfaces/queue.js +8 -0
- package/dist/collections/interfaces/queue.js.map +1 -0
- package/dist/collections/interfaces/set.d.ts +137 -0
- package/dist/collections/interfaces/set.d.ts.map +1 -0
- package/dist/collections/interfaces/set.js +8 -0
- package/dist/collections/interfaces/set.js.map +1 -0
- package/dist/collections/storage/api.d.ts +109 -0
- package/dist/collections/storage/api.d.ts.map +1 -0
- package/dist/collections/storage/api.js +182 -0
- package/dist/collections/storage/api.js.map +1 -0
- package/dist/collections/storage/hybrid.d.ts +164 -0
- package/dist/collections/storage/hybrid.d.ts.map +1 -0
- package/dist/collections/storage/hybrid.js +416 -0
- package/dist/collections/storage/hybrid.js.map +1 -0
- package/dist/collections/storage/index.d.ts +16 -0
- package/dist/collections/storage/index.d.ts.map +1 -0
- package/dist/collections/storage/index.js +13 -0
- package/dist/collections/storage/index.js.map +1 -0
- package/dist/collections/storage/interface.d.ts +141 -0
- package/dist/collections/storage/interface.d.ts.map +1 -0
- package/dist/collections/storage/interface.js +23 -0
- package/dist/collections/storage/interface.js.map +1 -0
- package/dist/collections/storage/memory.d.ts +68 -0
- package/dist/collections/storage/memory.d.ts.map +1 -0
- package/dist/collections/storage/memory.js +154 -0
- package/dist/collections/storage/memory.js.map +1 -0
- package/dist/collections/utils/defaults.d.ts +135 -0
- package/dist/collections/utils/defaults.d.ts.map +1 -0
- package/dist/collections/utils/defaults.js +322 -0
- package/dist/collections/utils/defaults.js.map +1 -0
- package/dist/collections/utils/factories.d.ts +144 -0
- package/dist/collections/utils/factories.d.ts.map +1 -0
- package/dist/collections/utils/factories.js +293 -0
- package/dist/collections/utils/factories.js.map +1 -0
- package/dist/collections/utils/helpers.d.ts +137 -0
- package/dist/collections/utils/helpers.d.ts.map +1 -0
- package/dist/collections/utils/helpers.js +221 -0
- package/dist/collections/utils/helpers.js.map +1 -0
- package/dist/collections.d.ts +12 -0
- package/dist/collections.d.ts.map +1 -0
- package/dist/collections.js +10 -0
- package/dist/collections.js.map +1 -0
- package/dist/components/define.d.ts +134 -0
- package/dist/components/define.d.ts.map +1 -0
- package/dist/components/define.js +486 -0
- package/dist/components/define.js.map +1 -0
- package/dist/components/index.d.ts +39 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +38 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/types.d.ts +264 -0
- package/dist/components/types.d.ts.map +1 -0
- package/dist/components/types.js +46 -0
- package/dist/components/types.js.map +1 -0
- package/dist/events/bus.d.ts +193 -0
- package/dist/events/bus.d.ts.map +1 -0
- package/dist/events/bus.js +511 -0
- package/dist/events/bus.js.map +1 -0
- package/dist/events/index.d.ts +34 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +36 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/types.d.ts +242 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +8 -0
- package/dist/events/types.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/compose.d.ts +88 -0
- package/dist/middleware/compose.d.ts.map +1 -0
- package/dist/middleware/compose.js +108 -0
- package/dist/middleware/compose.js.map +1 -0
- package/dist/middleware/index.d.ts +12 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +11 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/types.d.ts +112 -0
- package/dist/middleware/types.d.ts.map +1 -0
- package/dist/middleware/types.js +14 -0
- package/dist/middleware/types.js.map +1 -0
- package/dist/procedures/cli/announce.d.ts +67 -0
- package/dist/procedures/cli/announce.d.ts.map +1 -0
- package/dist/procedures/cli/announce.js +392 -0
- package/dist/procedures/cli/announce.js.map +1 -0
- package/dist/procedures/cli/discover.d.ts +66 -0
- package/dist/procedures/cli/discover.d.ts.map +1 -0
- package/dist/procedures/cli/discover.js +310 -0
- package/dist/procedures/cli/discover.js.map +1 -0
- package/dist/procedures/cli/index.d.ts +13 -0
- package/dist/procedures/cli/index.d.ts.map +1 -0
- package/dist/procedures/cli/index.js +201 -0
- package/dist/procedures/cli/index.js.map +1 -0
- package/dist/procedures/cli/init.d.ts +17 -0
- package/dist/procedures/cli/init.d.ts.map +1 -0
- package/dist/procedures/cli/init.js +336 -0
- package/dist/procedures/cli/init.js.map +1 -0
- package/dist/procedures/collection/index.d.ts +10 -0
- package/dist/procedures/collection/index.d.ts.map +1 -0
- package/dist/procedures/collection/index.js +10 -0
- package/dist/procedures/collection/index.js.map +1 -0
- package/dist/procedures/collection/procedures.d.ts +21 -0
- package/dist/procedures/collection/procedures.d.ts.map +1 -0
- package/dist/procedures/collection/procedures.js +198 -0
- package/dist/procedures/collection/procedures.js.map +1 -0
- package/dist/procedures/collection/schemas.d.ts +131 -0
- package/dist/procedures/collection/schemas.d.ts.map +1 -0
- package/dist/procedures/collection/schemas.js +422 -0
- package/dist/procedures/collection/schemas.js.map +1 -0
- package/dist/procedures/collection/storage.d.ts +53 -0
- package/dist/procedures/collection/storage.d.ts.map +1 -0
- package/dist/procedures/collection/storage.js +2 -0
- package/dist/procedures/collection/storage.js.map +1 -0
- package/dist/procedures/core/array.d.ts +276 -0
- package/dist/procedures/core/array.d.ts.map +1 -0
- package/dist/procedures/core/array.js +637 -0
- package/dist/procedures/core/array.js.map +1 -0
- package/dist/procedures/core/comparison.d.ts +85 -0
- package/dist/procedures/core/comparison.d.ts.map +1 -0
- package/dist/procedures/core/comparison.js +156 -0
- package/dist/procedures/core/comparison.js.map +1 -0
- package/dist/procedures/core/index.d.ts +261 -0
- package/dist/procedures/core/index.d.ts.map +1 -0
- package/dist/procedures/core/index.js +585 -0
- package/dist/procedures/core/index.js.map +1 -0
- package/dist/procedures/core/logic.d.ts +144 -0
- package/dist/procedures/core/logic.d.ts.map +1 -0
- package/dist/procedures/core/logic.js +169 -0
- package/dist/procedures/core/logic.js.map +1 -0
- package/dist/procedures/core/math.d.ts +139 -0
- package/dist/procedures/core/math.d.ts.map +1 -0
- package/dist/procedures/core/math.js +273 -0
- package/dist/procedures/core/math.js.map +1 -0
- package/dist/procedures/core/meta.d.ts +111 -0
- package/dist/procedures/core/meta.d.ts.map +1 -0
- package/dist/procedures/core/meta.js +239 -0
- package/dist/procedures/core/meta.js.map +1 -0
- package/dist/procedures/core/object.d.ts +109 -0
- package/dist/procedures/core/object.d.ts.map +1 -0
- package/dist/procedures/core/object.js +270 -0
- package/dist/procedures/core/object.js.map +1 -0
- package/dist/procedures/core/operands.d.ts +51 -0
- package/dist/procedures/core/operands.d.ts.map +1 -0
- package/dist/procedures/core/operands.js +90 -0
- package/dist/procedures/core/operands.js.map +1 -0
- package/dist/procedures/core/outputs.d.ts +28 -0
- package/dist/procedures/core/outputs.d.ts.map +1 -0
- package/dist/procedures/core/outputs.js +42 -0
- package/dist/procedures/core/outputs.js.map +1 -0
- package/dist/procedures/core/results.d.ts +202 -0
- package/dist/procedures/core/results.d.ts.map +1 -0
- package/dist/procedures/core/results.js +106 -0
- package/dist/procedures/core/results.js.map +1 -0
- package/dist/procedures/core/schemas.d.ts +48 -0
- package/dist/procedures/core/schemas.d.ts.map +1 -0
- package/dist/procedures/core/schemas.js +102 -0
- package/dist/procedures/core/schemas.js.map +1 -0
- package/dist/procedures/core/string.d.ts +138 -0
- package/dist/procedures/core/string.d.ts.map +1 -0
- package/dist/procedures/core/string.js +268 -0
- package/dist/procedures/core/string.js.map +1 -0
- package/dist/procedures/core/type.d.ts +101 -0
- package/dist/procedures/core/type.d.ts.map +1 -0
- package/dist/procedures/core/type.js +208 -0
- package/dist/procedures/core/type.js.map +1 -0
- package/dist/procedures/define-procedure.d.ts +187 -0
- package/dist/procedures/define-procedure.d.ts.map +1 -0
- package/dist/procedures/define-procedure.js +356 -0
- package/dist/procedures/define-procedure.js.map +1 -0
- package/dist/procedures/define.d.ts +228 -0
- package/dist/procedures/define.d.ts.map +1 -0
- package/dist/procedures/define.js +300 -0
- package/dist/procedures/define.js.map +1 -0
- package/dist/procedures/discovery.d.ts +57 -0
- package/dist/procedures/discovery.d.ts.map +1 -0
- package/dist/procedures/discovery.js +68 -0
- package/dist/procedures/discovery.js.map +1 -0
- package/dist/procedures/index.d.ts +24 -0
- package/dist/procedures/index.d.ts.map +1 -0
- package/dist/procedures/index.js +69 -0
- package/dist/procedures/index.js.map +1 -0
- package/dist/procedures/interceptors.d.ts +82 -0
- package/dist/procedures/interceptors.d.ts.map +1 -0
- package/dist/procedures/interceptors.js +193 -0
- package/dist/procedures/interceptors.js.map +1 -0
- package/dist/procedures/invoke.d.ts +127 -0
- package/dist/procedures/invoke.d.ts.map +1 -0
- package/dist/procedures/invoke.js +277 -0
- package/dist/procedures/invoke.js.map +1 -0
- package/dist/procedures/module.d.ts +49 -0
- package/dist/procedures/module.d.ts.map +1 -0
- package/dist/procedures/module.js +93 -0
- package/dist/procedures/module.js.map +1 -0
- package/dist/procedures/policy.d.ts +70 -0
- package/dist/procedures/policy.d.ts.map +1 -0
- package/dist/procedures/policy.js +138 -0
- package/dist/procedures/policy.js.map +1 -0
- package/dist/procedures/ref.d.ts +606 -0
- package/dist/procedures/ref.d.ts.map +1 -0
- package/dist/procedures/ref.js +895 -0
- package/dist/procedures/ref.js.map +1 -0
- package/dist/procedures/registry.d.ts +208 -0
- package/dist/procedures/registry.d.ts.map +1 -0
- package/dist/procedures/registry.js +402 -0
- package/dist/procedures/registry.js.map +1 -0
- package/dist/procedures/schema.d.ts +126 -0
- package/dist/procedures/schema.d.ts.map +1 -0
- package/dist/procedures/schema.js +108 -0
- package/dist/procedures/schema.js.map +1 -0
- package/dist/procedures/storage/adapter.d.ts +148 -0
- package/dist/procedures/storage/adapter.d.ts.map +1 -0
- package/dist/procedures/storage/adapter.js +214 -0
- package/dist/procedures/storage/adapter.js.map +1 -0
- package/dist/procedures/storage/api.d.ts +125 -0
- package/dist/procedures/storage/api.d.ts.map +1 -0
- package/dist/procedures/storage/api.js +220 -0
- package/dist/procedures/storage/api.js.map +1 -0
- package/dist/procedures/storage/factory.d.ts +134 -0
- package/dist/procedures/storage/factory.d.ts.map +1 -0
- package/dist/procedures/storage/factory.js +166 -0
- package/dist/procedures/storage/factory.js.map +1 -0
- package/dist/procedures/storage/hybrid.d.ts +193 -0
- package/dist/procedures/storage/hybrid.d.ts.map +1 -0
- package/dist/procedures/storage/hybrid.js +519 -0
- package/dist/procedures/storage/hybrid.js.map +1 -0
- package/dist/procedures/storage/index.d.ts +17 -0
- package/dist/procedures/storage/index.d.ts.map +1 -0
- package/dist/procedures/storage/index.js +17 -0
- package/dist/procedures/storage/index.js.map +1 -0
- package/dist/procedures/storage/procedures.d.ts +39 -0
- package/dist/procedures/storage/procedures.d.ts.map +1 -0
- package/dist/procedures/storage/procedures.js +261 -0
- package/dist/procedures/storage/procedures.js.map +1 -0
- package/dist/procedures/storage/serialization.d.ts +123 -0
- package/dist/procedures/storage/serialization.d.ts.map +1 -0
- package/dist/procedures/storage/serialization.js +216 -0
- package/dist/procedures/storage/serialization.js.map +1 -0
- package/dist/procedures/storage/synced-registry.d.ts +246 -0
- package/dist/procedures/storage/synced-registry.d.ts.map +1 -0
- package/dist/procedures/storage/synced-registry.js +575 -0
- package/dist/procedures/storage/synced-registry.js.map +1 -0
- package/dist/procedures/storage/types.d.ts +130 -0
- package/dist/procedures/storage/types.d.ts.map +1 -0
- package/dist/procedures/storage/types.js +8 -0
- package/dist/procedures/storage/types.js.map +1 -0
- package/dist/procedures/types.d.ts +370 -0
- package/dist/procedures/types.d.ts.map +1 -0
- package/dist/procedures/types.js +23 -0
- package/dist/procedures/types.js.map +1 -0
- package/dist/server/browser-guard.d.ts +69 -0
- package/dist/server/browser-guard.d.ts.map +1 -0
- package/dist/server/browser-guard.js +103 -0
- package/dist/server/browser-guard.js.map +1 -0
- package/dist/server/host-policy.d.ts +59 -0
- package/dist/server/host-policy.d.ts.map +1 -0
- package/dist/server/host-policy.js +82 -0
- package/dist/server/host-policy.js.map +1 -0
- package/dist/server/index.d.ts +46 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +42 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/method.d.ts +24 -0
- package/dist/server/method.d.ts.map +1 -0
- package/dist/server/method.js +29 -0
- package/dist/server/method.js.map +1 -0
- package/dist/server/procedure-server.d.ts +212 -0
- package/dist/server/procedure-server.d.ts.map +1 -0
- package/dist/server/procedure-server.js +323 -0
- package/dist/server/procedure-server.js.map +1 -0
- package/dist/server/server.d.ts +161 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +279 -0
- package/dist/server/server.js.map +1 -0
- package/dist/server/types.d.ts +106 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +29 -0
- package/dist/server/types.js.map +1 -0
- package/package.json +115 -3
- package/src/adapters/http/client/index.ts +51 -0
- package/src/adapters/http/client/transport.ts +338 -0
- package/src/adapters/http/client/types.ts +33 -0
- package/src/adapters/http/index.ts +7 -0
- package/src/adapters/http/server/index.ts +14 -0
- package/src/adapters/http/server/strategies.ts +105 -0
- package/src/adapters/http/server/transport.ts +622 -0
- package/src/adapters/http/server/types.ts +81 -0
- package/src/adapters/http/shared/constants.ts +108 -0
- package/src/adapters/http/shared/errors.ts +199 -0
- package/src/adapters/http/shared/headers.ts +291 -0
- package/src/adapters/http/shared/index.ts +21 -0
- package/src/adapters/http/shared/status-codes.ts +212 -0
- package/src/adapters/http/shared/strategies.ts +255 -0
- package/src/adapters/local/client/index.ts +11 -0
- package/src/adapters/local/client/transport.ts +188 -0
- package/src/adapters/local/client/types.ts +50 -0
- package/src/adapters/metadata.ts +17 -0
- package/src/adapters/mock/client/builder.ts +64 -0
- package/src/adapters/mock/client/index.ts +19 -0
- package/src/adapters/mock/client/transport.ts +352 -0
- package/src/adapters/mock/client/types.ts +99 -0
- package/src/adapters/websocket/client/index.ts +18 -0
- package/src/adapters/websocket/client/transport.ts +733 -0
- package/src/adapters/websocket/client/types.ts +235 -0
- package/src/adapters/websocket/index.ts +24 -0
- package/src/adapters/websocket/server/index.ts +18 -0
- package/src/adapters/websocket/server/transport.ts +705 -0
- package/src/adapters/websocket/server/types.ts +169 -0
- package/src/browser.ts +373 -0
- package/src/client/batch-executor.ts +514 -0
- package/src/client/call-types.ts +491 -0
- package/src/client/client.ts +1202 -0
- package/src/client/consumption.ts +288 -0
- package/src/client/context.ts +228 -0
- package/src/client/errors/README.md +279 -0
- package/src/client/errors/codes.ts +88 -0
- package/src/client/errors/factory.ts +263 -0
- package/src/client/errors/http-errors.ts +601 -0
- package/src/client/errors/http-status.ts +82 -0
- package/src/client/errors/index.ts +72 -0
- package/src/client/errors/registry.ts +595 -0
- package/src/client/errors/types.ts +139 -0
- package/src/client/index.ts +124 -0
- package/src/client/middleware/auth.ts +132 -0
- package/src/client/middleware/cache.ts +316 -0
- package/src/client/middleware/circuit-breaker.ts +339 -0
- package/src/client/middleware/contexts.ts +319 -0
- package/src/client/middleware/items.ts +114 -0
- package/src/client/middleware/lru.ts +66 -0
- package/src/client/middleware/pagination.ts +213 -0
- package/src/client/middleware/rate-limit.ts +315 -0
- package/src/client/middleware/retry.ts +236 -0
- package/src/client/middleware/timeout.ts +308 -0
- package/src/client/middleware/tracing.ts +191 -0
- package/src/client/route-resolver.ts +407 -0
- package/src/client/typed-method.ts +65 -0
- package/src/client/typed.ts +140 -0
- package/src/client/types.ts +361 -0
- package/src/client/validation/index.ts +56 -0
- package/src/client/validation/middleware.ts +254 -0
- package/src/client/validation/types.ts +162 -0
- package/src/events/bus.ts +594 -0
- package/src/events/index.ts +67 -0
- package/src/events/types.ts +263 -0
- package/src/index.ts +33 -0
- package/src/middleware/compose.ts +159 -0
- package/src/middleware/index.ts +28 -0
- package/src/middleware/types.ts +166 -0
- package/src/procedures/cli/announce.ts +470 -0
- package/src/procedures/cli/discover.ts +390 -0
- package/src/procedures/cli/index.ts +229 -0
- package/src/procedures/cli/init.ts +370 -0
- package/src/procedures/collection/index.ts +51 -0
- package/src/procedures/collection/procedures.ts +245 -0
- package/src/procedures/collection/schemas.ts +550 -0
- package/src/procedures/collection/storage.ts +53 -0
- package/src/procedures/core/array.ts +1024 -0
- package/src/procedures/core/comparison.ts +263 -0
- package/src/procedures/core/index.ts +895 -0
- package/src/procedures/core/logic.ts +225 -0
- package/src/procedures/core/math.ts +469 -0
- package/src/procedures/core/meta.ts +384 -0
- package/src/procedures/core/object.ts +427 -0
- package/src/procedures/core/operands.ts +119 -0
- package/src/procedures/core/outputs.ts +48 -0
- package/src/procedures/core/results.ts +296 -0
- package/src/procedures/core/schemas.ts +123 -0
- package/src/procedures/core/string.ts +458 -0
- package/src/procedures/core/type.ts +344 -0
- package/src/procedures/define-procedure.ts +531 -0
- package/src/procedures/define.ts +387 -0
- package/src/procedures/discovery.ts +76 -0
- package/src/procedures/index.ts +228 -0
- package/src/procedures/interceptors.ts +272 -0
- package/src/procedures/invoke.ts +413 -0
- package/src/procedures/module.ts +107 -0
- package/src/procedures/policy.ts +171 -0
- package/src/procedures/ref.ts +1305 -0
- package/src/procedures/registry.ts +473 -0
- package/src/procedures/schema.ts +225 -0
- package/src/procedures/types.ts +485 -0
- package/src/server/browser-guard.ts +147 -0
- package/src/server/host-policy.ts +121 -0
- package/src/server/index.ts +70 -0
- package/src/server/method.ts +33 -0
- package/src/server/procedure-server.ts +417 -0
- package/src/server/server.ts +364 -0
- package/src/server/types.ts +147 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event Bus Types
|
|
3
|
+
*
|
|
4
|
+
* Central pub/sub system for streaming coordination.
|
|
5
|
+
* Enables procedures to subscribe to events and emit updates.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Event payload with channel and data.
|
|
9
|
+
*/
|
|
10
|
+
export interface Event<T = unknown> {
|
|
11
|
+
/** Channel the event was emitted on */
|
|
12
|
+
channel: string;
|
|
13
|
+
/** Event data */
|
|
14
|
+
data: T;
|
|
15
|
+
/** Timestamp when event was emitted */
|
|
16
|
+
timestamp: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Event handler function.
|
|
20
|
+
*/
|
|
21
|
+
export type EventHandler<T = unknown> = (data: T) => void | Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Unsubscribe function returned from subscriptions.
|
|
24
|
+
*/
|
|
25
|
+
export type Unsubscribe = () => void;
|
|
26
|
+
/**
|
|
27
|
+
* Central event bus for pub/sub messaging.
|
|
28
|
+
*
|
|
29
|
+
* Features:
|
|
30
|
+
* - Type-safe channels (optional via generics)
|
|
31
|
+
* - Multiple subscribers per channel
|
|
32
|
+
* - Async iteration support via stream()
|
|
33
|
+
* - One-time subscriptions via once()
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const bus = new EventBus();
|
|
38
|
+
*
|
|
39
|
+
* // Subscribe to events
|
|
40
|
+
* const unsubscribe = bus.on("user:updated", (user) => {
|
|
41
|
+
* console.log("User updated:", user);
|
|
42
|
+
* });
|
|
43
|
+
*
|
|
44
|
+
* // Emit events
|
|
45
|
+
* bus.emit("user:updated", { id: "123", name: "John" });
|
|
46
|
+
*
|
|
47
|
+
* // Unsubscribe
|
|
48
|
+
* unsubscribe();
|
|
49
|
+
*
|
|
50
|
+
* // One-time subscription
|
|
51
|
+
* const user = await bus.once("user:created");
|
|
52
|
+
*
|
|
53
|
+
* // Streaming iteration
|
|
54
|
+
* for await (const update of bus.stream("updates")) {
|
|
55
|
+
* console.log("Update:", update);
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export interface EventBus {
|
|
60
|
+
/**
|
|
61
|
+
* Emit an event on a channel.
|
|
62
|
+
*
|
|
63
|
+
* @param channel - Channel to emit on
|
|
64
|
+
* @param data - Event data
|
|
65
|
+
*/
|
|
66
|
+
emit<T>(channel: string, data: T): void;
|
|
67
|
+
/**
|
|
68
|
+
* Subscribe to events on a channel.
|
|
69
|
+
*
|
|
70
|
+
* @param channel - Channel to subscribe to
|
|
71
|
+
* @param handler - Handler function called for each event
|
|
72
|
+
* @returns Unsubscribe function
|
|
73
|
+
*/
|
|
74
|
+
on<T>(channel: string, handler: EventHandler<T>): Unsubscribe;
|
|
75
|
+
/**
|
|
76
|
+
* Subscribe to a single event on a channel.
|
|
77
|
+
* Returns a promise that resolves with the first event.
|
|
78
|
+
*
|
|
79
|
+
* @param channel - Channel to wait for
|
|
80
|
+
* @param options - A signal: when it aborts first, the promise rejects with an `AbortError`
|
|
81
|
+
* @returns Promise resolving to the event data
|
|
82
|
+
*/
|
|
83
|
+
once<T>(channel: string, options?: EventWaitOptions): Promise<T>;
|
|
84
|
+
/**
|
|
85
|
+
* Create an async iterable for a channel.
|
|
86
|
+
* Yields events as they arrive until the reader stops, the signal aborts, or `clear()`.
|
|
87
|
+
*
|
|
88
|
+
* @param channel - Channel to stream
|
|
89
|
+
* @param options - A signal: when it aborts, the stream ends
|
|
90
|
+
* @returns AsyncIterable of event data
|
|
91
|
+
*/
|
|
92
|
+
stream<T>(channel: string, options?: EventWaitOptions): AsyncIterable<T>;
|
|
93
|
+
/**
|
|
94
|
+
* Get the number of subscribers on a channel.
|
|
95
|
+
*
|
|
96
|
+
* @param channel - Channel to check
|
|
97
|
+
* @returns Number of subscribers
|
|
98
|
+
*/
|
|
99
|
+
subscriberCount(channel: string): number;
|
|
100
|
+
/**
|
|
101
|
+
* Check if a channel has any subscribers.
|
|
102
|
+
*
|
|
103
|
+
* @param channel - Channel to check
|
|
104
|
+
*/
|
|
105
|
+
hasSubscribers(channel: string): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Get all active channel names.
|
|
108
|
+
*/
|
|
109
|
+
channels(): string[];
|
|
110
|
+
/**
|
|
111
|
+
* Remove all subscribers from a channel.
|
|
112
|
+
*
|
|
113
|
+
* @param channel - Channel to clear
|
|
114
|
+
*/
|
|
115
|
+
clear(channel: string): void;
|
|
116
|
+
/**
|
|
117
|
+
* Remove all subscribers from all channels.
|
|
118
|
+
*/
|
|
119
|
+
clearAll(): void;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Channel type map for type-safe event buses.
|
|
123
|
+
* Define your channels and their data types here.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* interface MyChannels {
|
|
128
|
+
* "user:created": { id: string; name: string };
|
|
129
|
+
* "user:updated": { id: string; changes: Partial<User> };
|
|
130
|
+
* "order:placed": { orderId: string; total: number };
|
|
131
|
+
* }
|
|
132
|
+
*
|
|
133
|
+
* const bus = createTypedEventBus<MyChannels>();
|
|
134
|
+
*
|
|
135
|
+
* // Type-safe emissions and subscriptions
|
|
136
|
+
* bus.emit("user:created", { id: "123", name: "John" }); // ✓
|
|
137
|
+
* bus.emit("user:created", { invalid: true }); // Type error
|
|
138
|
+
*
|
|
139
|
+
* bus.on("order:placed", (order) => {
|
|
140
|
+
* console.log(order.orderId); // ✓ typed as string
|
|
141
|
+
* });
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export interface ChannelMap {
|
|
145
|
+
[channel: string]: unknown;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Type-safe event bus with predefined channels.
|
|
149
|
+
*/
|
|
150
|
+
export interface TypedEventBus<TChannels extends ChannelMap> {
|
|
151
|
+
emit<K extends keyof TChannels & string>(channel: K, data: TChannels[K]): void;
|
|
152
|
+
on<K extends keyof TChannels & string>(channel: K, handler: EventHandler<TChannels[K]>): Unsubscribe;
|
|
153
|
+
once<K extends keyof TChannels & string>(channel: K, options?: EventWaitOptions): Promise<TChannels[K]>;
|
|
154
|
+
stream<K extends keyof TChannels & string>(channel: K, options?: EventWaitOptions): AsyncIterable<TChannels[K]>;
|
|
155
|
+
subscriberCount(channel: string): number;
|
|
156
|
+
hasSubscribers(channel: string): boolean;
|
|
157
|
+
channels(): string[];
|
|
158
|
+
clear(channel: string): void;
|
|
159
|
+
clearAll(): void;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Standard system channels.
|
|
163
|
+
*/
|
|
164
|
+
export interface SystemChannels {
|
|
165
|
+
/** Error events */
|
|
166
|
+
"system:error": {
|
|
167
|
+
error: Error;
|
|
168
|
+
context?: string;
|
|
169
|
+
};
|
|
170
|
+
/** Warning events */
|
|
171
|
+
"system:warning": {
|
|
172
|
+
message: string;
|
|
173
|
+
context?: string;
|
|
174
|
+
};
|
|
175
|
+
/** Debug events */
|
|
176
|
+
"system:debug": {
|
|
177
|
+
message: string;
|
|
178
|
+
data?: unknown;
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Procedure-related channels.
|
|
183
|
+
*/
|
|
184
|
+
export interface ProcedureChannels {
|
|
185
|
+
/** Procedure execution started */
|
|
186
|
+
"procedure:start": {
|
|
187
|
+
path: string[];
|
|
188
|
+
input: unknown;
|
|
189
|
+
};
|
|
190
|
+
/** Procedure execution completed */
|
|
191
|
+
"procedure:complete": {
|
|
192
|
+
path: string[];
|
|
193
|
+
output: unknown;
|
|
194
|
+
duration: number;
|
|
195
|
+
};
|
|
196
|
+
/** Procedure execution failed */
|
|
197
|
+
"procedure:error": {
|
|
198
|
+
path: string[];
|
|
199
|
+
error: Error;
|
|
200
|
+
};
|
|
201
|
+
/** Procedure yielded (streaming) */
|
|
202
|
+
"procedure:yield": {
|
|
203
|
+
path: string[];
|
|
204
|
+
value: unknown;
|
|
205
|
+
index: number;
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Default channel map combining system and procedure channels.
|
|
210
|
+
*/
|
|
211
|
+
export interface DefaultChannels extends SystemChannels, ProcedureChannels {
|
|
212
|
+
[channel: string]: unknown;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Options for a wait on a channel: `once()` and `stream()`.
|
|
216
|
+
*/
|
|
217
|
+
export interface EventWaitOptions {
|
|
218
|
+
/** When this signal aborts, the wait ends */
|
|
219
|
+
signal?: AbortSignal | undefined;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Options for creating an event bus.
|
|
223
|
+
*/
|
|
224
|
+
export interface EventBusOptions {
|
|
225
|
+
/**
|
|
226
|
+
* Maximum number of events to buffer for late subscribers.
|
|
227
|
+
* Set to 0 to disable buffering.
|
|
228
|
+
* Default: 0 (no buffering)
|
|
229
|
+
*/
|
|
230
|
+
bufferSize?: number;
|
|
231
|
+
/**
|
|
232
|
+
* Handler for uncaught errors in event handlers.
|
|
233
|
+
* Default: console.error
|
|
234
|
+
*/
|
|
235
|
+
onError?: (error: Error, channel: string) => void;
|
|
236
|
+
/**
|
|
237
|
+
* Enable debug logging.
|
|
238
|
+
* Default: false
|
|
239
|
+
*/
|
|
240
|
+
debug?: boolean;
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal Client Library
|
|
3
|
+
*
|
|
4
|
+
* Protocol-agnostic RPC client with middleware composition
|
|
5
|
+
* and transport adapters.
|
|
6
|
+
*
|
|
7
|
+
* This entry point is for Node. It exports the browser-safe entry point
|
|
8
|
+
* ("@procedures/client/browser") and the server transports, which use `http` and `ws`.
|
|
9
|
+
*/
|
|
10
|
+
export * from "./browser.js";
|
|
11
|
+
export { HttpServerTransport, defaultServerUrlStrategy, rpcServerUrlStrategy, } from "./server/index.js";
|
|
12
|
+
export type { HttpServerTransportOptions, HttpUrlStrategy, } from "./server/index.js";
|
|
13
|
+
export { WebSocketServerTransport } from "./server/index.js";
|
|
14
|
+
export { checkBrowserRequest, isLoopbackHost, isLoopbackAddress, hostNameOf } from "./server/browser-guard.js";
|
|
15
|
+
export type { BrowserGuardOptions, GuardedRequest, GuardResult } from "./server/browser-guard.js";
|
|
16
|
+
export type { WebSocketServerTransportOptions, WebSocketAuthHandler, WebSocketConnectionHandler, WebSocketMessage, } from "./server/index.js";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,cAAc,CAAC;AAK7B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,0BAA0B,EAC1B,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC/G,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAClG,YAAY,EACV,+BAA+B,EAC/B,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal Client Library
|
|
3
|
+
*
|
|
4
|
+
* Protocol-agnostic RPC client with middleware composition
|
|
5
|
+
* and transport adapters.
|
|
6
|
+
*
|
|
7
|
+
* This entry point is for Node. It exports the browser-safe entry point
|
|
8
|
+
* ("@procedures/client/browser") and the server transports, which use `http` and `ws`.
|
|
9
|
+
*/
|
|
10
|
+
export * from "./browser.js";
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Server Transports (Node only)
|
|
13
|
+
// ============================================================================
|
|
14
|
+
export { HttpServerTransport, defaultServerUrlStrategy, rpcServerUrlStrategy, } from "./server/index.js";
|
|
15
|
+
export { WebSocketServerTransport } from "./server/index.js";
|
|
16
|
+
export { checkBrowserRequest, isLoopbackHost, isLoopbackAddress, hostNameOf } from "./server/browser-guard.js";
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,cAAc,CAAC;AAE7B,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAC/E,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware Composition Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides type-safe composition of middleware chains with proper context tracking.
|
|
5
|
+
* Uses recursive type inference (`MiddlewaresContext`) to validate middleware compatibility
|
|
6
|
+
* for any chain length - no manual overloads needed!
|
|
7
|
+
*/
|
|
8
|
+
import type { Middleware, MiddlewareRunner, MiddlewaresContext, AsyncMiddleware, SyncMiddleware } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Wraps an async function with a series of middlewares and returns a new async function
|
|
11
|
+
* representing their combined execution.
|
|
12
|
+
*
|
|
13
|
+
* The middlewares list is ordered from outer to inner, such that when the combined async function
|
|
14
|
+
* is executed, the first middleware in the list is run first and then executes the "next" function
|
|
15
|
+
* which represents the inner function wrapped by subsequent middlewares.
|
|
16
|
+
*
|
|
17
|
+
* Type safety: The `MiddlewaresContext` recursive type validates that each middleware's
|
|
18
|
+
* requirements are satisfied by the accumulated context from previous middleware.
|
|
19
|
+
* If incompatible, the return type becomes `never` (compile error).
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const runner = wrapWithAsyncMiddlewares(
|
|
24
|
+
* [timeoutMiddleware, retryMiddleware, cacheMiddleware],
|
|
25
|
+
* async (ctx: BaseContext) => fetchData(ctx)
|
|
26
|
+
* );
|
|
27
|
+
* await runner({ request: req }); // Type-safe!
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function wrapWithAsyncMiddlewares<TMiddlewares extends readonly AsyncMiddleware<any, any, any>[], TBaseContext, TReturn>(middlewares: TMiddlewares, fn: MiddlewareRunner<MiddlewaresContext<TMiddlewares, TBaseContext>, TReturn, true>): MiddlewareRunner<TBaseContext, TReturn, true>;
|
|
31
|
+
/**
|
|
32
|
+
* Wraps a synchronous function with a series of middlewares.
|
|
33
|
+
* Same as async version but for synchronous execution.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const runner = wrapWithSyncMiddlewares(
|
|
38
|
+
* [boundedMiddleware, eventedMiddleware],
|
|
39
|
+
* (collection: Collection) => collection.size
|
|
40
|
+
* );
|
|
41
|
+
* const size = runner(baseCollection);
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare function wrapWithSyncMiddlewares<TMiddlewares extends readonly SyncMiddleware<any, any, any>[], TBaseContext, TReturn>(middlewares: TMiddlewares, fn: MiddlewareRunner<MiddlewaresContext<TMiddlewares, TBaseContext>, TReturn, false>): MiddlewareRunner<TBaseContext, TReturn, false>;
|
|
45
|
+
/**
|
|
46
|
+
* Composes multiple middleware with an initial runner.
|
|
47
|
+
* Automatically detects sync vs async based on middleware type.
|
|
48
|
+
*
|
|
49
|
+
* This is a convenience wrapper around `wrapWithAsyncMiddlewares`/`wrapWithSyncMiddlewares`
|
|
50
|
+
* that accepts middleware as individual arguments instead of an array.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* // Async composition
|
|
55
|
+
* const runner = compose(m1, m2, m3, async (ctx) => fetch(ctx.url));
|
|
56
|
+
* await runner({ url: "..." });
|
|
57
|
+
*
|
|
58
|
+
* // Sync composition
|
|
59
|
+
* const runner = compose(m1, m2, (ctx) => ctx.value * 2);
|
|
60
|
+
* const result = runner({ value: 21 });
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function compose<TAsync extends boolean = false>(...args: [...Middleware<any, any, any, TAsync>[], any]): MiddlewareRunner<any, any, TAsync>;
|
|
64
|
+
/**
|
|
65
|
+
* Bundles multiple middleware into a single composed middleware.
|
|
66
|
+
* This is useful for creating reusable middleware stacks.
|
|
67
|
+
*
|
|
68
|
+
* Unlike `compose`, `bundle` returns a middleware (not a runner), so it can be
|
|
69
|
+
* composed further or used with `.use()` on clients.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* // Create a standard middleware bundle
|
|
74
|
+
* const standardStack = bundle(
|
|
75
|
+
* timeoutMiddleware,
|
|
76
|
+
* retryMiddleware,
|
|
77
|
+
* cacheMiddleware
|
|
78
|
+
* );
|
|
79
|
+
*
|
|
80
|
+
* // Use it like any other middleware
|
|
81
|
+
* client.use(standardStack);
|
|
82
|
+
*
|
|
83
|
+
* // Or compose it further
|
|
84
|
+
* const enhanced = bundle(loggingMiddleware, standardStack);
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare function bundle<TAsync extends boolean = false>(...middleware: Middleware<any, any, any, TAsync>[]): Middleware<any, any, any, TAsync>;
|
|
88
|
+
//# sourceMappingURL=compose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/middleware/compose.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,SAAS,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAC9D,YAAY,EACZ,OAAO,EAEP,WAAW,EAAE,YAAY,EACzB,EAAE,EAAE,gBAAgB,CAClB,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,EAC9C,OAAO,EACP,IAAI,CACL,GACA,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAY/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,SAAS,SAAS,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAC7D,YAAY,EACZ,OAAO,EAEP,WAAW,EAAE,YAAY,EACzB,EAAE,EAAE,gBAAgB,CAClB,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,EAC9C,OAAO,EACP,KAAK,CACN,GACA,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAIhD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,OAAO,CAAC,MAAM,SAAS,OAAO,GAAG,KAAK,EACpD,GAAG,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GACrD,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAYpC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CAAC,MAAM,SAAS,OAAO,GAAG,KAAK,EACnD,GAAG,UAAU,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GACjD,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAOnC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware Composition Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides type-safe composition of middleware chains with proper context tracking.
|
|
5
|
+
* Uses recursive type inference (`MiddlewaresContext`) to validate middleware compatibility
|
|
6
|
+
* for any chain length - no manual overloads needed!
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Wraps an async function with a series of middlewares and returns a new async function
|
|
10
|
+
* representing their combined execution.
|
|
11
|
+
*
|
|
12
|
+
* The middlewares list is ordered from outer to inner, such that when the combined async function
|
|
13
|
+
* is executed, the first middleware in the list is run first and then executes the "next" function
|
|
14
|
+
* which represents the inner function wrapped by subsequent middlewares.
|
|
15
|
+
*
|
|
16
|
+
* Type safety: The `MiddlewaresContext` recursive type validates that each middleware's
|
|
17
|
+
* requirements are satisfied by the accumulated context from previous middleware.
|
|
18
|
+
* If incompatible, the return type becomes `never` (compile error).
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const runner = wrapWithAsyncMiddlewares(
|
|
23
|
+
* [timeoutMiddleware, retryMiddleware, cacheMiddleware],
|
|
24
|
+
* async (ctx: BaseContext) => fetchData(ctx)
|
|
25
|
+
* );
|
|
26
|
+
* await runner({ request: req }); // Type-safe!
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function wrapWithAsyncMiddlewares(middlewares, fn) {
|
|
30
|
+
const combinedRunner = middlewares.reduceRight((currentRunner, currentMiddleware) => {
|
|
31
|
+
return currentMiddleware(currentRunner);
|
|
32
|
+
}, fn);
|
|
33
|
+
// Wrap in async to ensure synchronous throws become rejected promises
|
|
34
|
+
return async (context) => {
|
|
35
|
+
return combinedRunner(context);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Wraps a synchronous function with a series of middlewares.
|
|
40
|
+
* Same as async version but for synchronous execution.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const runner = wrapWithSyncMiddlewares(
|
|
45
|
+
* [boundedMiddleware, eventedMiddleware],
|
|
46
|
+
* (collection: Collection) => collection.size
|
|
47
|
+
* );
|
|
48
|
+
* const size = runner(baseCollection);
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export function wrapWithSyncMiddlewares(middlewares, fn) {
|
|
52
|
+
return middlewares.reduceRight((currentRunner, currentMiddleware) => {
|
|
53
|
+
return currentMiddleware(currentRunner);
|
|
54
|
+
}, fn);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Composes multiple middleware with an initial runner.
|
|
58
|
+
* Automatically detects sync vs async based on middleware type.
|
|
59
|
+
*
|
|
60
|
+
* This is a convenience wrapper around `wrapWithAsyncMiddlewares`/`wrapWithSyncMiddlewares`
|
|
61
|
+
* that accepts middleware as individual arguments instead of an array.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* // Async composition
|
|
66
|
+
* const runner = compose(m1, m2, m3, async (ctx) => fetch(ctx.url));
|
|
67
|
+
* await runner({ url: "..." });
|
|
68
|
+
*
|
|
69
|
+
* // Sync composition
|
|
70
|
+
* const runner = compose(m1, m2, (ctx) => ctx.value * 2);
|
|
71
|
+
* const result = runner({ value: 21 });
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export function compose(...args) {
|
|
75
|
+
// Last argument is the initial runner/function
|
|
76
|
+
const fn = args[args.length - 1];
|
|
77
|
+
const middleware = args.slice(0, -1);
|
|
78
|
+
// Compose middleware from right to left (onion model)
|
|
79
|
+
const combined = middleware.reduceRight((next, mw) => mw(next), fn);
|
|
80
|
+
return combined;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Bundles multiple middleware into a single composed middleware.
|
|
84
|
+
* This is useful for creating reusable middleware stacks.
|
|
85
|
+
*
|
|
86
|
+
* Unlike `compose`, `bundle` returns a middleware (not a runner), so it can be
|
|
87
|
+
* composed further or used with `.use()` on clients.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* // Create a standard middleware bundle
|
|
92
|
+
* const standardStack = bundle(
|
|
93
|
+
* timeoutMiddleware,
|
|
94
|
+
* retryMiddleware,
|
|
95
|
+
* cacheMiddleware
|
|
96
|
+
* );
|
|
97
|
+
*
|
|
98
|
+
* // Use it like any other middleware
|
|
99
|
+
* client.use(standardStack);
|
|
100
|
+
*
|
|
101
|
+
* // Or compose it further
|
|
102
|
+
* const enhanced = bundle(loggingMiddleware, standardStack);
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
export function bundle(...middleware) {
|
|
106
|
+
return (next) => middleware.reduceRight((acc, mw) => mw(acc), next);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=compose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/middleware/compose.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,wBAAwB,CAKtC,WAAyB,EACzB,EAIC;IAED,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,CAC5C,CAAC,aAAa,EAAE,iBAAiB,EAAE,EAAE;QACnC,OAAO,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC,EACD,EAAE,CAC8C,CAAC;IAEnD,sEAAsE;IACtE,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAKrC,WAAyB,EACzB,EAIC;IAED,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,iBAAiB,EAAE,EAAE;QAClE,OAAO,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC,EAAE,EAAE,CAAmD,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,OAAO,CACrB,GAAG,IAAmD;IAEtD,+CAA+C;IAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAwC,CAAC;IAE5E,sDAAsD;IACtD,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CACrC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EACtB,EAAE,CACmC,CAAC;IAExC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,MAAM,CACpB,GAAG,UAA+C;IAElD,OAAO,CAAC,IAAI,EAAE,EAAE,CACd,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAIhD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Middleware System
|
|
3
|
+
*
|
|
4
|
+
* Provides type-safe middleware composition for both sync and async operations.
|
|
5
|
+
* Used by both API middleware (async) and Collections middleware (sync).
|
|
6
|
+
*
|
|
7
|
+
* Uses recursive type inference (`MiddlewaresContext`) to validate middleware
|
|
8
|
+
* compatibility at compile time - no manual overloads needed!
|
|
9
|
+
*/
|
|
10
|
+
export type { MiddlewareRunner, Middleware, AsyncMiddleware, SyncMiddleware, MiddlewaresContext, MiddlewareReturn, MiddlewareContextIn, MiddlewareContextOut, IsAsyncMiddleware, } from "./types.js";
|
|
11
|
+
export { compose, bundle, wrapWithAsyncMiddlewares, wrapWithSyncMiddlewares, } from "./compose.js";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,OAAO,EACP,MAAM,EACN,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Middleware System
|
|
3
|
+
*
|
|
4
|
+
* Provides type-safe middleware composition for both sync and async operations.
|
|
5
|
+
* Used by both API middleware (async) and Collections middleware (sync).
|
|
6
|
+
*
|
|
7
|
+
* Uses recursive type inference (`MiddlewaresContext`) to validate middleware
|
|
8
|
+
* compatibility at compile time - no manual overloads needed!
|
|
9
|
+
*/
|
|
10
|
+
export { compose, bundle, wrapWithAsyncMiddlewares, wrapWithSyncMiddlewares, } from "./compose.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,OAAO,EACL,OAAO,EACP,MAAM,EACN,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Middleware Type System
|
|
3
|
+
*
|
|
4
|
+
* This module provides a sophisticated type-safe middleware system that supports
|
|
5
|
+
* both synchronous and asynchronous middleware with full context tracking.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - Type-level context tracking through middleware chains
|
|
9
|
+
* - Compile-time validation of middleware compatibility
|
|
10
|
+
* - Support for both sync and async execution
|
|
11
|
+
* - Recursive type inference for composed middleware
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* MiddlewareRunner is a function that can be wrapped in middleware.
|
|
15
|
+
* It takes a context object and returns either a value or a promise.
|
|
16
|
+
*
|
|
17
|
+
* @template TContext - The context object type
|
|
18
|
+
* @template TReturn - The return value type
|
|
19
|
+
* @template TAsync - Whether the runner is async (true) or sync (false)
|
|
20
|
+
*/
|
|
21
|
+
export type MiddlewareRunner<TContext, TReturn, TAsync extends boolean = false> = TAsync extends true ? (context: TContext) => Promise<TReturn> : (context: TContext) => TReturn;
|
|
22
|
+
/**
|
|
23
|
+
* Middleware represents a function that wraps another function, such that the inner
|
|
24
|
+
* function can be instrumented or provided with additional context.
|
|
25
|
+
*
|
|
26
|
+
* The middleware can:
|
|
27
|
+
* - Add new properties to the context (TContextOut)
|
|
28
|
+
* - Require existing properties from the context (TContextIn)
|
|
29
|
+
* - Transform the execution flow
|
|
30
|
+
* - Be composed with other middleware
|
|
31
|
+
*
|
|
32
|
+
* Type parameters express middleware capabilities and requirements:
|
|
33
|
+
* - TContextOut: What context fields this middleware provides/adds
|
|
34
|
+
* - TContextIn: What context fields this middleware requires
|
|
35
|
+
* - TReturn: The return type
|
|
36
|
+
* - TAsync: Whether execution is async (true) or sync (false)
|
|
37
|
+
*
|
|
38
|
+
* Example:
|
|
39
|
+
* ```typescript
|
|
40
|
+
* // Async middleware that adds retryCount to context
|
|
41
|
+
* type RetryMiddleware = Middleware<
|
|
42
|
+
* { retryCount: number }, // Provides
|
|
43
|
+
* {}, // Requires nothing
|
|
44
|
+
* Response, // Returns Response
|
|
45
|
+
* true // Async
|
|
46
|
+
* >;
|
|
47
|
+
*
|
|
48
|
+
* // Middleware that requires retryCount
|
|
49
|
+
* type LogMiddleware = Middleware<
|
|
50
|
+
* {}, // Provides nothing
|
|
51
|
+
* { retryCount: number }, // Requires retryCount
|
|
52
|
+
* Response, // Returns Response
|
|
53
|
+
* true // Async
|
|
54
|
+
* >;
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export interface Middleware<TContextOut, TContextIn, TReturn, TAsync extends boolean = false> {
|
|
58
|
+
(next: MiddlewareRunner<TContextIn & TContextOut, TReturn, TAsync>): MiddlewareRunner<TContextIn, TReturn, TAsync>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* AsyncMiddleware is a specialized version for async execution.
|
|
62
|
+
* This is the most common form for API/network operations.
|
|
63
|
+
*/
|
|
64
|
+
export type AsyncMiddleware<TContextOut, TContextIn, TReturn> = Middleware<TContextOut, TContextIn, TReturn, true>;
|
|
65
|
+
/**
|
|
66
|
+
* SyncMiddleware is a specialized version for synchronous execution.
|
|
67
|
+
* This is common for in-memory data structure operations.
|
|
68
|
+
*/
|
|
69
|
+
export type SyncMiddleware<TContextOut, TContextIn, TReturn> = Middleware<TContextOut, TContextIn, TReturn, false>;
|
|
70
|
+
/**
|
|
71
|
+
* Extracts the combined context after applying a series of middlewares.
|
|
72
|
+
*
|
|
73
|
+
* This recursive type validates that each middleware's requirements are satisfied
|
|
74
|
+
* by the accumulated context. If any middleware expects a context field that is
|
|
75
|
+
* not provided by previous middleware or the initial context, the result is `never`.
|
|
76
|
+
*
|
|
77
|
+
* Example:
|
|
78
|
+
* ```typescript
|
|
79
|
+
* type Mw1 = Middleware<{ a: number }, {}, Response, true>;
|
|
80
|
+
* type Mw2 = Middleware<{ b: string }, { a: number }, Response, true>;
|
|
81
|
+
* type Mw3 = Middleware<{}, { a: number; b: string }, Response, true>;
|
|
82
|
+
*
|
|
83
|
+
* // Valid: each middleware gets what it needs
|
|
84
|
+
* type Ctx = MiddlewaresContext<[Mw1, Mw2, Mw3], {}>;
|
|
85
|
+
* // Result: { a: number; b: string }
|
|
86
|
+
*
|
|
87
|
+
* // Invalid: Mw2 requires { a: number } but Mw1 is missing
|
|
88
|
+
* type BadCtx = MiddlewaresContext<[Mw2], {}>;
|
|
89
|
+
* // Result: never (compile error)
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export type MiddlewaresContext<TMiddlewares extends readonly Middleware<any, any, any, any>[], TContextIn = {}> = TMiddlewares extends readonly [
|
|
93
|
+
Middleware<infer TNextContextOut, infer TNextContextIn, any, any>,
|
|
94
|
+
...infer TRest
|
|
95
|
+
] ? TContextIn extends TNextContextIn ? TRest extends readonly Middleware<any, any, any, any>[] ? MiddlewaresContext<TRest, TContextIn & TNextContextOut> : never : never : TMiddlewares extends readonly [] ? TContextIn : never;
|
|
96
|
+
/**
|
|
97
|
+
* Helper type to extract the return type from a middleware
|
|
98
|
+
*/
|
|
99
|
+
export type MiddlewareReturn<T> = T extends Middleware<any, any, infer R, any> ? R : never;
|
|
100
|
+
/**
|
|
101
|
+
* Helper type to extract the context input from a middleware
|
|
102
|
+
*/
|
|
103
|
+
export type MiddlewareContextIn<T> = T extends Middleware<any, infer Ctx, any, any> ? Ctx : never;
|
|
104
|
+
/**
|
|
105
|
+
* Helper type to extract the context output from a middleware
|
|
106
|
+
*/
|
|
107
|
+
export type MiddlewareContextOut<T> = T extends Middleware<infer Ctx, any, any, any> ? Ctx : never;
|
|
108
|
+
/**
|
|
109
|
+
* Helper type to check if a middleware is async
|
|
110
|
+
*/
|
|
111
|
+
export type IsAsyncMiddleware<T> = T extends Middleware<any, any, any, infer A> ? A : never;
|
|
112
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/middleware/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,OAAO,GAAG,KAAK,IAC5E,MAAM,SAAS,IAAI,GACf,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,GACvC,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,WAAW,UAAU,CACzB,WAAW,EACX,UAAU,EACV,OAAO,EACP,MAAM,SAAS,OAAO,GAAG,KAAK;IAE9B,CACE,IAAI,EAAE,gBAAgB,CAAC,UAAU,GAAG,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,GAChE,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;CAClD;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,IAAI,UAAU,CACxE,WAAW,EACX,UAAU,EACV,OAAO,EACP,IAAI,CACL,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,IAAI,UAAU,CACvE,WAAW,EACX,UAAU,EACV,OAAO,EACP,KAAK,CACN,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,kBAAkB,CAC5B,YAAY,SAAS,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAC9D,UAAU,GAAG,EAAE,IAGf,YAAY,SAAS,SAAS;IAC5B,UAAU,CAAC,MAAM,eAAe,EAAE,MAAM,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC;IACjE,GAAG,MAAM,KAAK;CACf,GAEG,UAAU,SAAS,cAAc,GAE/B,KAAK,SAAS,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAErD,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAAC,GACvD,KAAK,GAEP,KAAK,GAET,YAAY,SAAS,SAAS,EAAE,GAC9B,UAAU,GACV,KAAK,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,GAC1E,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAC/E,GAAG,GACH,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAChF,GAAG,GACH,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAC3E,CAAC,GACD,KAAK,CAAC"}
|