@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,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed Procedure Caller
|
|
3
|
+
*
|
|
4
|
+
* Creates a typed wrapper around a procedure caller function.
|
|
5
|
+
* Provides compile-time autocomplete for procedure paths, inputs, and outputs.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createTypedCaller } from "@procedures/client";
|
|
10
|
+
* import type { MongoProcedures, ProcedureInput, ProcedureOutput } from "@procedures/mongo";
|
|
11
|
+
*
|
|
12
|
+
* // Create typed caller
|
|
13
|
+
* const call = createTypedCaller<MongoProcedures>(client.call.bind(client));
|
|
14
|
+
*
|
|
15
|
+
* // Full autocomplete on path and input!
|
|
16
|
+
* const result = await call(
|
|
17
|
+
* ["mongo", "documents", "find"],
|
|
18
|
+
* { query: { status: "active" } },
|
|
19
|
+
* { metadata: { collection: "users" } }
|
|
20
|
+
* );
|
|
21
|
+
* // result is typed as FindOutput
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
import type { CallOptions } from "./context.js";
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Procedure definition with input and output types
|
|
29
|
+
*/
|
|
30
|
+
export interface ProcedureDef {
|
|
31
|
+
input: unknown;
|
|
32
|
+
output: unknown;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Nested procedure namespace
|
|
37
|
+
*/
|
|
38
|
+
export type ProcedureNamespace = {
|
|
39
|
+
[key: string]: ProcedureDef | ProcedureNamespace;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Extract all valid paths from a procedures interface
|
|
44
|
+
*/
|
|
45
|
+
export type ProcedurePaths<T, Prefix extends string[] = []> = T extends ProcedureDef
|
|
46
|
+
? Prefix
|
|
47
|
+
: T extends ProcedureNamespace
|
|
48
|
+
? {
|
|
49
|
+
[K in keyof T]: T[K] extends ProcedureDef
|
|
50
|
+
? [...Prefix, K & string]
|
|
51
|
+
: T[K] extends ProcedureNamespace
|
|
52
|
+
? ProcedurePaths<T[K], [...Prefix, K & string]>
|
|
53
|
+
: never;
|
|
54
|
+
}[keyof T]
|
|
55
|
+
: never;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Get procedure definition at a path
|
|
59
|
+
*/
|
|
60
|
+
export type GetProcedure<T, P extends string[]> = P extends [infer K extends keyof T]
|
|
61
|
+
? T[K]
|
|
62
|
+
: P extends [infer K extends keyof T, ...infer Rest extends string[]]
|
|
63
|
+
? GetProcedure<T[K], Rest>
|
|
64
|
+
: never;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Extract input type for a path
|
|
68
|
+
*/
|
|
69
|
+
export type PathInput<T, P extends string[]> = GetProcedure<T, P> extends ProcedureDef
|
|
70
|
+
? GetProcedure<T, P>["input"]
|
|
71
|
+
: never;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Extract output type for a path
|
|
75
|
+
*/
|
|
76
|
+
export type PathOutput<T, P extends string[]> = GetProcedure<T, P> extends ProcedureDef
|
|
77
|
+
? GetProcedure<T, P>["output"]
|
|
78
|
+
: never;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Base caller function type
|
|
82
|
+
*/
|
|
83
|
+
export type BaseCaller = <TOutput>(
|
|
84
|
+
path: string[],
|
|
85
|
+
input: unknown,
|
|
86
|
+
options?: CallOptions
|
|
87
|
+
) => Promise<TOutput>;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Typed caller function
|
|
91
|
+
*/
|
|
92
|
+
export interface TypedCaller<T extends ProcedureNamespace> {
|
|
93
|
+
<P extends ProcedurePaths<T> & string[]>(
|
|
94
|
+
path: P,
|
|
95
|
+
input: PathInput<T, P>,
|
|
96
|
+
options?: CallOptions
|
|
97
|
+
): Promise<PathOutput<T, P>>;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Create a typed procedure caller
|
|
102
|
+
*
|
|
103
|
+
* Wraps a base caller function to provide compile-time type safety
|
|
104
|
+
* for procedure paths, inputs, and outputs.
|
|
105
|
+
*
|
|
106
|
+
* @param caller - Base caller function (e.g., client.call.bind(client))
|
|
107
|
+
* @returns Typed caller with autocomplete
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* import type { MongoProcedures } from "@procedures/mongo";
|
|
112
|
+
*
|
|
113
|
+
* const typedCall = createTypedCaller<MongoProcedures>(client.call.bind(client));
|
|
114
|
+
*
|
|
115
|
+
* // TypeScript knows:
|
|
116
|
+
* // - path must be a valid procedure path
|
|
117
|
+
* // - input must match the procedure's input type
|
|
118
|
+
* // - result is the procedure's output type
|
|
119
|
+
* const result = await typedCall(
|
|
120
|
+
* ["mongo", "documents", "find"],
|
|
121
|
+
* { query: {}, page: 1 }
|
|
122
|
+
* );
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export function createTypedCaller<T extends ProcedureNamespace>(
|
|
126
|
+
caller: BaseCaller
|
|
127
|
+
): TypedCaller<T> {
|
|
128
|
+
return caller as TypedCaller<T>;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Type helper to merge multiple procedure interfaces
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* type AllProcedures = MergeProcedures<MongoProcedures & UIProcedures>;
|
|
137
|
+
* const call = createTypedCaller<AllProcedures>(client.call);
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
export type MergeProcedures<T extends ProcedureNamespace> = T;
|
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal Client Type System
|
|
3
|
+
*
|
|
4
|
+
* Protocol-agnostic abstractions for RPC communication.
|
|
5
|
+
* These types work across HTTP, gRPC, WebSocket, and local transports.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { EventBus } from "../events/types.js";
|
|
9
|
+
import type { Interceptor } from "../procedures/invoke.js";
|
|
10
|
+
import type { ErrorMetadata } from "./errors/index.js";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Method identifier using structured data (no string parsing needed).
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* { service: "users", operation: "get" }
|
|
18
|
+
* { service: "orders", operation: "create", version: "v2" }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export interface Method {
|
|
22
|
+
/** Service name (e.g., "users", "orders", "payments") */
|
|
23
|
+
service: string;
|
|
24
|
+
|
|
25
|
+
/** Operation name (e.g., "get", "create", "update", "delete", "watch") */
|
|
26
|
+
operation: string;
|
|
27
|
+
|
|
28
|
+
/** Optional version (e.g., "v1", "v2") */
|
|
29
|
+
version?: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Protocol-agnostic metadata container.
|
|
34
|
+
*
|
|
35
|
+
* Adapters convert this to protocol-specific formats:
|
|
36
|
+
* - HTTP: Headers
|
|
37
|
+
* - gRPC: Metadata
|
|
38
|
+
* - WebSocket: Frames
|
|
39
|
+
*/
|
|
40
|
+
export interface Metadata {
|
|
41
|
+
/** Distributed tracing context */
|
|
42
|
+
tracing?: {
|
|
43
|
+
traceId: string;
|
|
44
|
+
spanId: string;
|
|
45
|
+
parentSpanId?: string;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/** Authentication/authorization context */
|
|
49
|
+
auth?: {
|
|
50
|
+
token?: string;
|
|
51
|
+
apiKey?: string;
|
|
52
|
+
userId?: string;
|
|
53
|
+
[key: string]: unknown;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/** Timeout configuration */
|
|
57
|
+
timeout?: {
|
|
58
|
+
/** Overall request timeout in milliseconds */
|
|
59
|
+
overall?: number;
|
|
60
|
+
/** Per-attempt timeout in milliseconds (for retries) */
|
|
61
|
+
perAttempt?: number;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
/** Retry context (populated by retry middleware) */
|
|
65
|
+
retry?: {
|
|
66
|
+
attempt: number;
|
|
67
|
+
maxAttempts: number;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/** Extensible for custom fields */
|
|
71
|
+
[key: string]: unknown;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Universal request message.
|
|
76
|
+
*
|
|
77
|
+
* Sent to transport for execution.
|
|
78
|
+
*/
|
|
79
|
+
export interface Message<TPayload = unknown> {
|
|
80
|
+
/** Unique request correlation ID */
|
|
81
|
+
id: string;
|
|
82
|
+
|
|
83
|
+
/** Method to invoke */
|
|
84
|
+
method: Method;
|
|
85
|
+
|
|
86
|
+
/** Request payload (body) */
|
|
87
|
+
payload: TPayload;
|
|
88
|
+
|
|
89
|
+
/** Request metadata (headers, context, etc.) */
|
|
90
|
+
metadata: Metadata;
|
|
91
|
+
|
|
92
|
+
/** Cancellation signal */
|
|
93
|
+
signal?: AbortSignal;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Universal response status.
|
|
98
|
+
*
|
|
99
|
+
* Protocol-agnostic success/error indication with rich error metadata.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* // Success status
|
|
104
|
+
* const successStatus: Status = {
|
|
105
|
+
* type: "success",
|
|
106
|
+
* code: 200,
|
|
107
|
+
* };
|
|
108
|
+
*
|
|
109
|
+
* // Error status with rich metadata
|
|
110
|
+
* const errorStatus: Status = {
|
|
111
|
+
* type: "error",
|
|
112
|
+
* code: "TIMEOUT",
|
|
113
|
+
* message: "Request timed out",
|
|
114
|
+
* retryable: true,
|
|
115
|
+
* metadata: {
|
|
116
|
+
* summary: "Request timed out",
|
|
117
|
+
* detail: "The request exceeded the configured timeout duration...",
|
|
118
|
+
* userMessage: "The request took too long to complete. Please try again.",
|
|
119
|
+
* devMessage: "Request exceeded timeout threshold...",
|
|
120
|
+
* suggestions: ["Try again with a longer timeout", ...],
|
|
121
|
+
* category: "timeout",
|
|
122
|
+
* severity: "warning",
|
|
123
|
+
* // ... full ErrorMetadata
|
|
124
|
+
* },
|
|
125
|
+
* };
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export type Status =
|
|
129
|
+
| {
|
|
130
|
+
type: "success";
|
|
131
|
+
code: number;
|
|
132
|
+
}
|
|
133
|
+
| {
|
|
134
|
+
type: "error";
|
|
135
|
+
code: string;
|
|
136
|
+
message: string;
|
|
137
|
+
retryable: boolean;
|
|
138
|
+
/** Rich error metadata (optional but highly recommended) */
|
|
139
|
+
metadata?: ErrorMetadata;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Single response item from a stream.
|
|
144
|
+
*
|
|
145
|
+
* Streaming responses yield multiple items.
|
|
146
|
+
* Request/response yields exactly one item.
|
|
147
|
+
*/
|
|
148
|
+
export interface ResponseItem<TPayload = unknown> {
|
|
149
|
+
/** Correlates with request ID */
|
|
150
|
+
id: string;
|
|
151
|
+
|
|
152
|
+
/** Response status */
|
|
153
|
+
status: Status;
|
|
154
|
+
|
|
155
|
+
/** Response payload (body) */
|
|
156
|
+
payload: TPayload;
|
|
157
|
+
|
|
158
|
+
/** Response metadata (headers, timing, etc.) */
|
|
159
|
+
metadata: Metadata;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Transport interface - protocol-specific implementation.
|
|
164
|
+
*
|
|
165
|
+
* All responses are streams:
|
|
166
|
+
* - Single response = stream with 1 item
|
|
167
|
+
* - Streaming response = stream with N items
|
|
168
|
+
*/
|
|
169
|
+
export interface Transport {
|
|
170
|
+
/** Transport name (e.g., "http", "grpc", "websocket", "local") */
|
|
171
|
+
readonly name: string;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Send a message and receive response stream.
|
|
175
|
+
*
|
|
176
|
+
* @param message - Request message
|
|
177
|
+
* @returns Async iterable of response items
|
|
178
|
+
*/
|
|
179
|
+
send<TReq, TRes>(message: Message<TReq>): AsyncIterable<ResponseItem<TRes>>;
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Close transport and cleanup resources.
|
|
183
|
+
*/
|
|
184
|
+
close(): Promise<void>;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Middleware context for universal client.
|
|
189
|
+
*
|
|
190
|
+
* Contains the message being sent.
|
|
191
|
+
*/
|
|
192
|
+
export interface ClientContext<TReq = unknown> {
|
|
193
|
+
message: Message<TReq>;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Client middleware runner function type.
|
|
198
|
+
*
|
|
199
|
+
* Takes context and returns async iterable of response items.
|
|
200
|
+
*/
|
|
201
|
+
export type ClientRunner<TReq = unknown, TRes = unknown> = (
|
|
202
|
+
context: ClientContext<TReq>,
|
|
203
|
+
) => AsyncIterable<ResponseItem<TRes>>;
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Universal client middleware.
|
|
207
|
+
*
|
|
208
|
+
* Uses the universal middleware system from common/src/middleware.
|
|
209
|
+
* Note: Uses TAsync=false because AsyncIterable is not wrapped in Promise.
|
|
210
|
+
*
|
|
211
|
+
* Works across all transport types!
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```typescript
|
|
215
|
+
* const myMiddleware: ClientMiddleware = (next) => {
|
|
216
|
+
* return async function* (context) {
|
|
217
|
+
* // Before
|
|
218
|
+
* console.log('Sending:', context.message);
|
|
219
|
+
*
|
|
220
|
+
* // Execute
|
|
221
|
+
* yield* next(context);
|
|
222
|
+
*
|
|
223
|
+
* // After
|
|
224
|
+
* console.log('Complete');
|
|
225
|
+
* };
|
|
226
|
+
* };
|
|
227
|
+
* ```
|
|
228
|
+
*/
|
|
229
|
+
export type ClientMiddleware<TReq = unknown, TRes = unknown> = (
|
|
230
|
+
next: ClientRunner<TReq, TRes>,
|
|
231
|
+
) => ClientRunner<TReq, TRes>;
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Typed client middleware with context tracking.
|
|
235
|
+
*
|
|
236
|
+
* This type enables compile-time validation of middleware chains by tracking
|
|
237
|
+
* what context each middleware provides and requires.
|
|
238
|
+
*
|
|
239
|
+
* Type parameters:
|
|
240
|
+
* - TProvides: The context type this middleware adds to the chain
|
|
241
|
+
* - TRequires: The context type this middleware requires to be present
|
|
242
|
+
*
|
|
243
|
+
* When composing middleware with Client.use():
|
|
244
|
+
* - TProvides is accumulated into the Client's context type
|
|
245
|
+
* - TRequires is validated against the accumulated context
|
|
246
|
+
* - If TRequires is not satisfied, TypeScript reports an error
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```typescript
|
|
250
|
+
* // Retry middleware provides retry context, requires nothing
|
|
251
|
+
* type RetryMiddleware = TypedClientMiddleware<RetryContext, {}>;
|
|
252
|
+
*
|
|
253
|
+
* // A logging middleware that requires retry context
|
|
254
|
+
* type RetryLoggerMiddleware = TypedClientMiddleware<{}, RetryContext>;
|
|
255
|
+
*
|
|
256
|
+
* // Valid: retry provides what retryLogger requires
|
|
257
|
+
* client.use(retryMiddleware).use(retryLoggerMiddleware);
|
|
258
|
+
*
|
|
259
|
+
* // Error: retryLogger requires retry context not yet provided
|
|
260
|
+
* client.use(retryLoggerMiddleware);
|
|
261
|
+
* ```
|
|
262
|
+
*/
|
|
263
|
+
export type TypedClientMiddleware<
|
|
264
|
+
TProvides = {},
|
|
265
|
+
TRequires = {},
|
|
266
|
+
TReq = unknown,
|
|
267
|
+
TRes = unknown,
|
|
268
|
+
> = ClientMiddleware<TReq, TRes> & {
|
|
269
|
+
/**
|
|
270
|
+
* Phantom type brand for context this middleware provides.
|
|
271
|
+
* This property doesn't exist at runtime, only at compile time.
|
|
272
|
+
*/
|
|
273
|
+
readonly __provides?: TProvides;
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Phantom type brand for context this middleware requires.
|
|
277
|
+
* This property doesn't exist at runtime, only at compile time.
|
|
278
|
+
*/
|
|
279
|
+
readonly __requires?: TRequires;
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Extract the provides type from a typed middleware.
|
|
284
|
+
*/
|
|
285
|
+
export type MiddlewareProvides<T> = T extends TypedClientMiddleware<infer P, any, any, any>
|
|
286
|
+
? P
|
|
287
|
+
: {};
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Extract the requires type from a typed middleware.
|
|
291
|
+
*/
|
|
292
|
+
export type MiddlewareRequires<T> = T extends TypedClientMiddleware<any, infer R, any, any>
|
|
293
|
+
? R
|
|
294
|
+
: {};
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Validate that a middleware's requirements are satisfied by accumulated context.
|
|
298
|
+
* Returns the middleware type if valid, `never` if invalid.
|
|
299
|
+
*/
|
|
300
|
+
export type ValidateMiddleware<
|
|
301
|
+
TMiddleware extends TypedClientMiddleware<any, any, any, any>,
|
|
302
|
+
TAccumulatedContext,
|
|
303
|
+
> = MiddlewareRequires<TMiddleware> extends TAccumulatedContext
|
|
304
|
+
? TMiddleware
|
|
305
|
+
: never;
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Accumulate context type after applying a middleware.
|
|
309
|
+
* Combines accumulated context with what the middleware provides.
|
|
310
|
+
*/
|
|
311
|
+
export type AccumulateContext<
|
|
312
|
+
TMiddleware extends TypedClientMiddleware<any, any, any, any>,
|
|
313
|
+
TAccumulatedContext,
|
|
314
|
+
> = TAccumulatedContext & MiddlewareProvides<TMiddleware>;
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Client error thrown when response has error status.
|
|
318
|
+
*/
|
|
319
|
+
export class ClientError extends Error {
|
|
320
|
+
constructor(
|
|
321
|
+
public readonly status: Extract<Status, { type: "error" }>,
|
|
322
|
+
public readonly responseId: string,
|
|
323
|
+
) {
|
|
324
|
+
super(status.message);
|
|
325
|
+
this.name = "ClientError";
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
get code(): string {
|
|
329
|
+
return this.status.code;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
get retryable(): boolean {
|
|
333
|
+
return this.status.retryable;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Options for creating a client.
|
|
339
|
+
*/
|
|
340
|
+
export interface ClientOptions {
|
|
341
|
+
/** Transport implementation */
|
|
342
|
+
transport: Transport;
|
|
343
|
+
|
|
344
|
+
/** Default metadata applied to all requests */
|
|
345
|
+
defaultMetadata?: Metadata;
|
|
346
|
+
|
|
347
|
+
/** Whether to throw on error responses (default: true) */
|
|
348
|
+
throwOnError?: boolean;
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* The event bus of the local procedures (`ctx.bus`). The default is the global bus of
|
|
352
|
+
* `getGlobalEventBus()`.
|
|
353
|
+
*/
|
|
354
|
+
bus?: EventBus;
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* The interceptors of each local invocation and its nested calls, the outermost first (see
|
|
358
|
+
* `procedures/interceptors.ts`). A remote call goes through the middlewares, not these.
|
|
359
|
+
*/
|
|
360
|
+
interceptors?: readonly Interceptor[];
|
|
361
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod Validation Module
|
|
3
|
+
*
|
|
4
|
+
* Type-safe schema validation for RPC requests and responses.
|
|
5
|
+
* Works with Zod as an optional peer dependency.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { z } from "zod";
|
|
10
|
+
* import { Client } from "client";
|
|
11
|
+
* import { createZodMiddleware, ValidationError } from "client/client/validation";
|
|
12
|
+
*
|
|
13
|
+
* const client = new Client({ transport })
|
|
14
|
+
* .use(createZodMiddleware({ mode: "strict" }))
|
|
15
|
+
* .schema({ service: "users", operation: "get" }, {
|
|
16
|
+
* input: z.object({ id: z.string() }),
|
|
17
|
+
* output: z.object({ id: z.string(), name: z.string() }),
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* try {
|
|
21
|
+
* const user = await client.call(
|
|
22
|
+
* { service: "users", operation: "get" },
|
|
23
|
+
* { id: "123" }
|
|
24
|
+
* );
|
|
25
|
+
* } catch (error) {
|
|
26
|
+
* if (error instanceof ValidationError) {
|
|
27
|
+
* console.error(error.details);
|
|
28
|
+
* }
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
// Core types
|
|
34
|
+
export {
|
|
35
|
+
type ZodLike,
|
|
36
|
+
type ZodErrorLike,
|
|
37
|
+
type SchemaDefinition,
|
|
38
|
+
type SchemaRegistry,
|
|
39
|
+
type MethodKey,
|
|
40
|
+
type ValidationPhase,
|
|
41
|
+
type ZodValidationContext,
|
|
42
|
+
methodToKey,
|
|
43
|
+
keyToMethod,
|
|
44
|
+
ValidationError,
|
|
45
|
+
type InferInput,
|
|
46
|
+
type InferOutput,
|
|
47
|
+
} from "./types.js";
|
|
48
|
+
|
|
49
|
+
// Middleware
|
|
50
|
+
export {
|
|
51
|
+
createZodMiddleware,
|
|
52
|
+
type ZodMiddlewareOptions,
|
|
53
|
+
type ValidationMode,
|
|
54
|
+
type ZodMiddleware,
|
|
55
|
+
SCHEMA_REGISTRY,
|
|
56
|
+
} from "./middleware.js";
|