@procedures/client 0.0.0-stage → 0.2.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 +42 -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 +562 -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 +51 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +89 -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 +525 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +1011 -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 +305 -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/capability.d.ts +111 -0
- package/dist/procedures/capability.d.ts.map +1 -0
- package/dist/procedures/capability.js +269 -0
- package/dist/procedures/capability.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 +203 -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 +210 -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 +639 -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 +158 -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 +588 -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 +275 -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 +244 -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 +272 -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 +270 -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 +210 -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 +357 -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/effects.d.ts +15 -0
- package/dist/procedures/effects.d.ts.map +1 -0
- package/dist/procedures/effects.js +18 -0
- package/dist/procedures/effects.js.map +1 -0
- package/dist/procedures/index.d.ts +27 -0
- package/dist/procedures/index.d.ts.map +1 -0
- package/dist/procedures/index.js +54 -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 +194 -0
- package/dist/procedures/interceptors.js.map +1 -0
- package/dist/procedures/invoke.d.ts +155 -0
- package/dist/procedures/invoke.d.ts.map +1 -0
- package/dist/procedures/invoke.js +343 -0
- package/dist/procedures/invoke.js.map +1 -0
- package/dist/procedures/module.d.ts +54 -0
- package/dist/procedures/module.d.ts.map +1 -0
- package/dist/procedures/module.js +103 -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 +468 -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/register.d.ts +8 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +9 -0
- package/dist/register.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 +81 -0
- package/dist/server/host-policy.d.ts.map +1 -0
- package/dist/server/host-policy.js +104 -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 +226 -0
- package/dist/server/procedure-server.d.ts.map +1 -0
- package/dist/server/procedure-server.js +348 -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 +117 -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 +623 -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 +401 -0
- package/src/client/batch-executor.ts +514 -0
- package/src/client/call-types.ts +491 -0
- package/src/client/client.ts +1229 -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 +372 -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/capability.ts +333 -0
- package/src/procedures/cli/announce.ts +470 -0
- package/src/procedures/cli/discover.ts +390 -0
- package/src/procedures/cli/index.ts +231 -0
- package/src/procedures/cli/init.ts +370 -0
- package/src/procedures/collection/index.ts +51 -0
- package/src/procedures/collection/procedures.ts +257 -0
- package/src/procedures/collection/schemas.ts +550 -0
- package/src/procedures/collection/storage.ts +53 -0
- package/src/procedures/core/array.ts +1026 -0
- package/src/procedures/core/comparison.ts +265 -0
- package/src/procedures/core/index.ts +898 -0
- package/src/procedures/core/logic.ts +225 -0
- package/src/procedures/core/math.ts +471 -0
- package/src/procedures/core/meta.ts +389 -0
- package/src/procedures/core/object.ts +429 -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 +460 -0
- package/src/procedures/core/type.ts +346 -0
- package/src/procedures/define-procedure.ts +532 -0
- package/src/procedures/define.ts +387 -0
- package/src/procedures/discovery.ts +76 -0
- package/src/procedures/effects.ts +24 -0
- package/src/procedures/index.ts +239 -0
- package/src/procedures/interceptors.ts +273 -0
- package/src/procedures/invoke.ts +506 -0
- package/src/procedures/module.ts +117 -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 +596 -0
- package/src/register.ts +10 -0
- package/src/server/browser-guard.ts +147 -0
- package/src/server/host-policy.ts +163 -0
- package/src/server/index.ts +70 -0
- package/src/server/method.ts +33 -0
- package/src/server/procedure-server.ts +459 -0
- package/src/server/server.ts +364 -0
- package/src/server/types.ts +147 -0
|
@@ -0,0 +1,596 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Procedure Type System
|
|
3
|
+
*
|
|
4
|
+
* Core types for procedure definitions, handlers, and registration.
|
|
5
|
+
* Procedures are the foundation for typed RPC calls with schema validation.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ZodErrorLike } from "../client/validation/types.js";
|
|
9
|
+
import type { ProcedureSchema } from "./schema.js";
|
|
10
|
+
import type { CollectionStorage } from "./collection/storage.js";
|
|
11
|
+
import type { EventBus } from "../events/types.js";
|
|
12
|
+
import type { HydrationEvent } from "./ref.js";
|
|
13
|
+
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// Procedure Path
|
|
16
|
+
// =============================================================================
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Procedure path as array of segments.
|
|
20
|
+
* Forms a tree structure for nested routing.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* ['collections', 'users', 'get'] // collections.users.get
|
|
25
|
+
* ['weather', 'forecast'] // weather.forecast
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export type ProcedurePath = string[];
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Convert path array to dot-separated key.
|
|
32
|
+
*/
|
|
33
|
+
export function pathToKey(path: ProcedurePath): string {
|
|
34
|
+
return path.join(".");
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Parse dot-separated key to path array.
|
|
39
|
+
*/
|
|
40
|
+
export function keyToPath(key: string): ProcedurePath {
|
|
41
|
+
return key.split(".");
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// =============================================================================
|
|
45
|
+
// Procedure Metadata
|
|
46
|
+
// =============================================================================
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Metadata for procedure documentation and categorization.
|
|
50
|
+
*/
|
|
51
|
+
export interface ProcedureMetadata {
|
|
52
|
+
/** Human-readable description */
|
|
53
|
+
description?: string;
|
|
54
|
+
|
|
55
|
+
/** Tags for categorization and filtering */
|
|
56
|
+
tags?: string[];
|
|
57
|
+
|
|
58
|
+
/** Whether this procedure is deprecated */
|
|
59
|
+
deprecated?: boolean;
|
|
60
|
+
|
|
61
|
+
/** Deprecation message with migration guidance */
|
|
62
|
+
deprecationMessage?: string;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* The procedures that this procedure calls through `ctx.client`: keys (`"shell.run"`) or
|
|
66
|
+
* namespaces (`"fs.*"`). A host with a call policy lets the procedure call only these and the
|
|
67
|
+
* exposed procedures (see `policy.ts`, deep dive MCP-3). `"*"` alone is not allowed: a
|
|
68
|
+
* procedure whose callees come from its input has the `runs-refs` tag.
|
|
69
|
+
*/
|
|
70
|
+
calls?: readonly string[];
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The side effects of the procedure (CAPABILITIES-2026-10). A host with a restriction of
|
|
74
|
+
* effects refuses a procedure without this declaration.
|
|
75
|
+
*/
|
|
76
|
+
effects?: Effects;
|
|
77
|
+
|
|
78
|
+
/** Custom metadata fields */
|
|
79
|
+
[key: string]: unknown;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// =============================================================================
|
|
83
|
+
// Capabilities (CAPABILITIES-2026-10)
|
|
84
|
+
// =============================================================================
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* The side effects of a procedure. The resource names are strings that the application chooses.
|
|
88
|
+
* The standard names are `fs` (the files of the host), `network` (systems outside the host),
|
|
89
|
+
* `process` (it starts any program) and `registry` (the procedure registry).
|
|
90
|
+
*/
|
|
91
|
+
export interface Effects {
|
|
92
|
+
/** The resources that the procedure reads. Absent: not known. */
|
|
93
|
+
readonly reads?: readonly string[];
|
|
94
|
+
/** The resources that the procedure changes. An empty list: it changes nothing. Absent: not known. */
|
|
95
|
+
readonly writes?: readonly string[];
|
|
96
|
+
/** True: a second call with the same input changes nothing more. The default is false. */
|
|
97
|
+
readonly idempotent?: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* True: the procedure can delete or overwrite data that it did not make. The default is true for
|
|
100
|
+
* a procedure that writes, as in MCP. A procedure that writes only new data declares false.
|
|
101
|
+
*/
|
|
102
|
+
readonly destructive?: boolean;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/** The effects that a capability permits. An absent field permits everything of its kind. */
|
|
106
|
+
export interface PermittedEffects {
|
|
107
|
+
/** The resources that a call can read: names, or `"any"`. */
|
|
108
|
+
readonly reads?: readonly string[] | "any";
|
|
109
|
+
/** The resources that a call can change: names, or `"any"`. An empty list: no change. */
|
|
110
|
+
readonly writes?: readonly string[] | "any";
|
|
111
|
+
/** False: a call cannot start a destructive procedure. */
|
|
112
|
+
readonly destructive?: boolean;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* The types that an application gives to the framework, by declaration merging:
|
|
117
|
+
*
|
|
118
|
+
* ```ts
|
|
119
|
+
* declare module "@procedures/client" {
|
|
120
|
+
* interface Register {
|
|
121
|
+
* clearance: "public" | "shared" | "private";
|
|
122
|
+
* resources: { world: World };
|
|
123
|
+
* }
|
|
124
|
+
* }
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export interface Register {}
|
|
128
|
+
|
|
129
|
+
/** The type of a clearance value: `Register["clearance"]`, or `unknown`. */
|
|
130
|
+
export type ClearanceOf = Register extends { clearance: infer C } ? C : unknown;
|
|
131
|
+
|
|
132
|
+
/** The type of `ctx.resources`: `Register["resources"]`, or a record of unknown values. */
|
|
133
|
+
export type ResourcesOf = Register extends { resources: infer R } ? R : Readonly<Record<string, unknown>>;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* The permissions of one invocation. A nested call gets the same capability or a narrower one,
|
|
137
|
+
* and only the host makes a capability (from its authentication). The object is frozen.
|
|
138
|
+
*/
|
|
139
|
+
export interface Capability<C = ClearanceOf> {
|
|
140
|
+
/** The data that the call can see. Absent: no limit. The application gives the order. */
|
|
141
|
+
readonly clearance?: C;
|
|
142
|
+
/** The effects that the call and its nested calls can have. Absent: all effects. */
|
|
143
|
+
readonly effects?: PermittedEffects;
|
|
144
|
+
/** The time (milliseconds since the epoch) at which the call and its nested calls stop. */
|
|
145
|
+
readonly deadline?: number;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* A request for a narrower capability (a nested call, an interceptor). The framework calculates
|
|
150
|
+
* the result, so a request for more has no effect.
|
|
151
|
+
*/
|
|
152
|
+
export interface CapabilityRequest<C = ClearanceOf> {
|
|
153
|
+
clearance?: C;
|
|
154
|
+
effects?: PermittedEffects;
|
|
155
|
+
/** The time from now, in milliseconds. The result is the earlier of the two deadlines. */
|
|
156
|
+
timeoutMs?: number;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/** The order of clearance values: a partial order with a meet (the highest common lower value). */
|
|
160
|
+
export interface ClearanceOrder<C = ClearanceOf> {
|
|
161
|
+
/** True when `a` is the same as or lower than `b`. */
|
|
162
|
+
leq(a: C, b: C): boolean;
|
|
163
|
+
/** The highest value that is the same as or lower than both. */
|
|
164
|
+
meet(a: C, b: C): C;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// =============================================================================
|
|
168
|
+
// Procedure Context
|
|
169
|
+
// =============================================================================
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Repository provider for storage access.
|
|
173
|
+
* Injected into procedure handlers for data access.
|
|
174
|
+
*/
|
|
175
|
+
export interface RepositoryProvider {
|
|
176
|
+
/**
|
|
177
|
+
* Get storage for a collection.
|
|
178
|
+
*
|
|
179
|
+
* @param collection - Collection name
|
|
180
|
+
* @returns Storage instance for the collection
|
|
181
|
+
*/
|
|
182
|
+
getStorage<T>(collection: string): CollectionStorage<T>;
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Check if a collection exists.
|
|
186
|
+
*
|
|
187
|
+
* @param collection - Collection name
|
|
188
|
+
*/
|
|
189
|
+
hasCollection(collection: string): boolean;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Context passed to procedure handlers.
|
|
194
|
+
* Contains request metadata and service access.
|
|
195
|
+
*/
|
|
196
|
+
export interface ProcedureContext {
|
|
197
|
+
/** Request metadata (auth, tracing, etc.) */
|
|
198
|
+
metadata: Record<string, unknown>;
|
|
199
|
+
|
|
200
|
+
/** Abort signal for cancellation */
|
|
201
|
+
signal?: AbortSignal;
|
|
202
|
+
|
|
203
|
+
/** Repository provider for storage access */
|
|
204
|
+
repository?: RepositoryProvider;
|
|
205
|
+
|
|
206
|
+
/** The full path that was called */
|
|
207
|
+
path: ProcedurePath;
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Event bus for pub/sub messaging.
|
|
211
|
+
* Use for streaming coordination and inter-procedure communication.
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```typescript
|
|
215
|
+
* // Subscribe to updates in a streaming handler
|
|
216
|
+
* handler: async function* (input, ctx) {
|
|
217
|
+
* yield await getInitial(input.id);
|
|
218
|
+
*
|
|
219
|
+
* for await (const update of ctx.bus.stream(`entity:${input.id}`)) {
|
|
220
|
+
* yield update;
|
|
221
|
+
* }
|
|
222
|
+
* }
|
|
223
|
+
*
|
|
224
|
+
* // Emit events from another procedure
|
|
225
|
+
* handler: async (input, ctx) => {
|
|
226
|
+
* const result = await saveEntity(input);
|
|
227
|
+
* ctx.bus.emit(`entity:${input.id}`, result);
|
|
228
|
+
* return result;
|
|
229
|
+
* }
|
|
230
|
+
* ```
|
|
231
|
+
*/
|
|
232
|
+
bus?: EventBus;
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Client for calling other procedures.
|
|
236
|
+
* Enables inter-procedure communication via the RPC mechanism.
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```typescript
|
|
240
|
+
* handler: async (input, ctx) => {
|
|
241
|
+
* // Call fs.mkdir procedure
|
|
242
|
+
* await ctx.client.call(["fs", "mkdir"], { path: input.dir });
|
|
243
|
+
*
|
|
244
|
+
* // Call git.init procedure
|
|
245
|
+
* await ctx.client.call(["git", "init"], { cwd: input.dir });
|
|
246
|
+
*
|
|
247
|
+
* return { created: true };
|
|
248
|
+
* }
|
|
249
|
+
* ```
|
|
250
|
+
*/
|
|
251
|
+
client: ProcedureClient;
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* The registry of the caller: `ctx.client` finds the nested procedures here. A procedure that
|
|
255
|
+
* reads or changes the registry (`procedure.define`, `client.lookup`) uses this one. When it is
|
|
256
|
+
* not set, such a procedure uses `PROCEDURE_REGISTRY`.
|
|
257
|
+
*/
|
|
258
|
+
registry?: ProcedureRegistryLike;
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* The hydration observer of the program that runs this procedure (`client.exec(ref, input,
|
|
262
|
+
* { onRef })`). A procedure that hydrates refs itself (control flow, a runner) gives it to
|
|
263
|
+
* `hydrateInput`, so a trace sees the events of its own program only.
|
|
264
|
+
*/
|
|
265
|
+
onRef?: ((event: HydrationEvent) => void) | undefined;
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* The capability of this invocation (CAPABILITIES-2026-10): its clearance, permitted effects
|
|
269
|
+
* and deadline. The nested calls of `ctx.client` get it, or a narrower one. Frozen.
|
|
270
|
+
*/
|
|
271
|
+
capability: Capability;
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* The resources that the host gives to this invocation, for its capability: a view of a
|
|
275
|
+
* database for a lower clearance, for example. Empty when the host gives none.
|
|
276
|
+
*/
|
|
277
|
+
resources: ResourcesOf;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* The part of `ProcedureRegistry` that a procedure can use through `ctx.registry`.
|
|
282
|
+
*/
|
|
283
|
+
export interface ProcedureRegistryLike {
|
|
284
|
+
get(path: ProcedurePath): AnyProcedure | undefined;
|
|
285
|
+
has(path: ProcedurePath): boolean;
|
|
286
|
+
getAll(): AnyProcedure[];
|
|
287
|
+
register(procedure: AnyProcedure, options?: RegistrationOptions): void;
|
|
288
|
+
unregister(path: ProcedurePath): boolean;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Interface for procedure-to-procedure calls.
|
|
293
|
+
* Implemented by both Client and ProcedureServer's internal caller.
|
|
294
|
+
*/
|
|
295
|
+
export interface ProcedureClient {
|
|
296
|
+
/**
|
|
297
|
+
* Call a procedure by path. For a streaming procedure, the result is the last item.
|
|
298
|
+
*/
|
|
299
|
+
call<TInput = unknown, TOutput = unknown>(
|
|
300
|
+
path: ProcedurePath,
|
|
301
|
+
input: TInput,
|
|
302
|
+
options?: NestedCallOptions
|
|
303
|
+
): Promise<TOutput>;
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* Call a procedure by path and read each output: each item of a streaming procedure, or the
|
|
307
|
+
* one value of another procedure. The procedure starts when the caller reads the first item.
|
|
308
|
+
* An older client has no `stream`.
|
|
309
|
+
*/
|
|
310
|
+
stream?<TInput = unknown, TOutput = unknown>(
|
|
311
|
+
path: ProcedurePath,
|
|
312
|
+
input: TInput,
|
|
313
|
+
options?: NestedCallOptions
|
|
314
|
+
): AsyncIterable<TOutput>;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/** The options of one nested call. */
|
|
318
|
+
export interface NestedCallOptions {
|
|
319
|
+
/** A narrower capability for the nested call. A request for more has no effect. */
|
|
320
|
+
narrow?: CapabilityRequest | undefined;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
// =============================================================================
|
|
324
|
+
// Procedure Handler
|
|
325
|
+
// =============================================================================
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Standard procedure handler function (single return).
|
|
329
|
+
* Receives validated input and context, returns output.
|
|
330
|
+
*
|
|
331
|
+
* @example
|
|
332
|
+
* ```typescript
|
|
333
|
+
* const handler: StandardHandler<{ id: string }, User> = async (input, ctx) => {
|
|
334
|
+
* const storage = ctx.repository?.getStorage<User>('users');
|
|
335
|
+
* const user = await storage?.get(input.id);
|
|
336
|
+
* if (!user) throw new Error('User not found');
|
|
337
|
+
* return user;
|
|
338
|
+
* };
|
|
339
|
+
* ```
|
|
340
|
+
*/
|
|
341
|
+
export type StandardHandler<TInput = unknown, TOutput = unknown> = (
|
|
342
|
+
input: TInput,
|
|
343
|
+
context: ProcedureContext
|
|
344
|
+
) => Promise<TOutput> | TOutput;
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Generator procedure handler (streaming/multi-yield).
|
|
348
|
+
* Yields output values one or more times.
|
|
349
|
+
*
|
|
350
|
+
* @example
|
|
351
|
+
* ```typescript
|
|
352
|
+
* // Single yield (same as standard, but generator syntax)
|
|
353
|
+
* const handler: GeneratorHandler<{ id: string }, User> = async function* (input, ctx) {
|
|
354
|
+
* const user = await fetchUser(input.id);
|
|
355
|
+
* yield user; // yields once
|
|
356
|
+
* };
|
|
357
|
+
*
|
|
358
|
+
* // Multi-yield streaming
|
|
359
|
+
* const handler: GeneratorHandler<{ roomId: string }, Message> = async function* (input, ctx) {
|
|
360
|
+
* // Initial data
|
|
361
|
+
* yield await getInitialMessages(input.roomId);
|
|
362
|
+
*
|
|
363
|
+
* // Stream updates
|
|
364
|
+
* for await (const msg of ctx.bus.stream(`room:${input.roomId}`)) {
|
|
365
|
+
* yield msg; // yields many times
|
|
366
|
+
* }
|
|
367
|
+
* };
|
|
368
|
+
* ```
|
|
369
|
+
*/
|
|
370
|
+
export type GeneratorHandler<TInput = unknown, TOutput = unknown> = (
|
|
371
|
+
input: TInput,
|
|
372
|
+
context: ProcedureContext
|
|
373
|
+
) => AsyncGenerator<TOutput, void, unknown>;
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Procedure handler function - supports both standard and generator forms.
|
|
377
|
+
*
|
|
378
|
+
* - **Standard handlers**: Return a single value (sync or async)
|
|
379
|
+
* - **Generator handlers**: Yield one or more values
|
|
380
|
+
*
|
|
381
|
+
* The caller's consumption mode (sponge/stream/handlers) determines
|
|
382
|
+
* how the output is delivered, regardless of handler type.
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* ```typescript
|
|
386
|
+
* // Standard handler (single return)
|
|
387
|
+
* const handler: ProcedureHandler<{ id: string }, User> = async (input, ctx) => {
|
|
388
|
+
* return await fetchUser(input.id);
|
|
389
|
+
* };
|
|
390
|
+
*
|
|
391
|
+
* // Generator handler (streaming)
|
|
392
|
+
* const handler: ProcedureHandler<{ query: string }, SearchResult> = async function* (input, ctx) {
|
|
393
|
+
* for await (const result of search(input.query)) {
|
|
394
|
+
* yield result;
|
|
395
|
+
* }
|
|
396
|
+
* };
|
|
397
|
+
* ```
|
|
398
|
+
*/
|
|
399
|
+
export type ProcedureHandler<TInput = unknown, TOutput = unknown> =
|
|
400
|
+
| StandardHandler<TInput, TOutput>
|
|
401
|
+
| GeneratorHandler<TInput, TOutput>;
|
|
402
|
+
|
|
403
|
+
// =============================================================================
|
|
404
|
+
// Procedure Definition
|
|
405
|
+
// =============================================================================
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* Full procedure definition with schemas and optional handler.
|
|
409
|
+
*
|
|
410
|
+
* @example
|
|
411
|
+
* ```typescript
|
|
412
|
+
* const getUserProcedure: Procedure<GetUserInput, User> = {
|
|
413
|
+
* path: ['users', 'get'],
|
|
414
|
+
* input: z.object({ id: z.string() }),
|
|
415
|
+
* output: z.object({ id: z.string(), name: z.string() }),
|
|
416
|
+
* metadata: { description: 'Get user by ID', tags: ['users', 'read'] },
|
|
417
|
+
* handler: async ({ id }, ctx) => { ... },
|
|
418
|
+
* };
|
|
419
|
+
* ```
|
|
420
|
+
*/
|
|
421
|
+
export interface Procedure<
|
|
422
|
+
TInput = unknown,
|
|
423
|
+
TOutput = unknown,
|
|
424
|
+
TMeta extends ProcedureMetadata = ProcedureMetadata
|
|
425
|
+
> {
|
|
426
|
+
/** Path in the route tree */
|
|
427
|
+
path: ProcedurePath;
|
|
428
|
+
|
|
429
|
+
/** Input validation schema: a Standard Schema (zod 4, valibot, arktype) or a `ZodLike` */
|
|
430
|
+
input: ProcedureSchema<TInput>;
|
|
431
|
+
|
|
432
|
+
/** Output validation schema: a Standard Schema or a `ZodLike` */
|
|
433
|
+
output: ProcedureSchema<TOutput>;
|
|
434
|
+
|
|
435
|
+
/** Procedure metadata for documentation */
|
|
436
|
+
metadata: TMeta;
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* Whether this procedure supports streaming (multi-yield).
|
|
440
|
+
* When true, the handler is expected to be a generator that may yield multiple times.
|
|
441
|
+
* When false or undefined, the procedure yields exactly once.
|
|
442
|
+
*
|
|
443
|
+
* This is a capability declaration - callers can still consume
|
|
444
|
+
* streaming procedures in sponge mode (getting only the final value).
|
|
445
|
+
*/
|
|
446
|
+
streaming?: boolean | undefined;
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Output mode declaration - how the procedure produces its output.
|
|
450
|
+
*
|
|
451
|
+
* - `single`: Returns a single value (default) - most procedures
|
|
452
|
+
* - `stream`: Returns multiple values over time (generator that yields many times)
|
|
453
|
+
* - `batch`: Returns an array of values all at once
|
|
454
|
+
*
|
|
455
|
+
* The consumer can choose their consumption mode (sponge/stream/handlers)
|
|
456
|
+
* independently. The system translates automatically:
|
|
457
|
+
*
|
|
458
|
+
* | Producer Mode | Consumer Mode | Result Type |
|
|
459
|
+
* |---------------|---------------|--------------------------|
|
|
460
|
+
* | single | sponge | Promise<T> |
|
|
461
|
+
* | single | stream | AsyncIterable<T> (1 item)|
|
|
462
|
+
* | stream | sponge | Promise<T> (last value) |
|
|
463
|
+
* | stream | stream | AsyncIterable<T> |
|
|
464
|
+
* | batch | sponge | Promise<T[]> |
|
|
465
|
+
* | batch | stream | AsyncIterable<T> |
|
|
466
|
+
*/
|
|
467
|
+
outputMode?: 'single' | 'stream' | 'batch' | undefined;
|
|
468
|
+
|
|
469
|
+
/** Server-side handler implementation (optional for stubs and aggregations) */
|
|
470
|
+
handler?: ProcedureHandler<TInput, TOutput> | undefined;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* Procedure without type parameters for generic storage.
|
|
475
|
+
* Uses `any` for handler to allow covariant/contravariant type compatibility.
|
|
476
|
+
*/
|
|
477
|
+
export type AnyProcedure = Procedure<any, any, ProcedureMetadata>;
|
|
478
|
+
|
|
479
|
+
// =============================================================================
|
|
480
|
+
// Output Mode Types
|
|
481
|
+
// =============================================================================
|
|
482
|
+
|
|
483
|
+
/**
|
|
484
|
+
* How a procedure produces its output.
|
|
485
|
+
*/
|
|
486
|
+
export type OutputMode = 'single' | 'stream' | 'batch';
|
|
487
|
+
|
|
488
|
+
/**
|
|
489
|
+
* Default output mode when not specified.
|
|
490
|
+
*/
|
|
491
|
+
export const DEFAULT_OUTPUT_MODE: OutputMode = 'single';
|
|
492
|
+
|
|
493
|
+
// =============================================================================
|
|
494
|
+
// Procedure Result Types
|
|
495
|
+
// =============================================================================
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* Result of a procedure call.
|
|
499
|
+
*/
|
|
500
|
+
export type ProcedureResult<TOutput> =
|
|
501
|
+
| { success: true; data: TOutput }
|
|
502
|
+
| { success: false; error: ProcedureError };
|
|
503
|
+
|
|
504
|
+
/**
|
|
505
|
+
* Error from procedure execution.
|
|
506
|
+
*/
|
|
507
|
+
export interface ProcedureError {
|
|
508
|
+
/** Error code */
|
|
509
|
+
code: string;
|
|
510
|
+
|
|
511
|
+
/** Error message */
|
|
512
|
+
message: string;
|
|
513
|
+
|
|
514
|
+
/** Whether the error is retryable */
|
|
515
|
+
retryable: boolean;
|
|
516
|
+
|
|
517
|
+
/** Validation errors if applicable */
|
|
518
|
+
validationErrors?: ZodErrorLike;
|
|
519
|
+
|
|
520
|
+
/** The procedure path that failed */
|
|
521
|
+
path: ProcedurePath;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
// =============================================================================
|
|
525
|
+
// Infer Types from Procedure
|
|
526
|
+
// =============================================================================
|
|
527
|
+
|
|
528
|
+
/**
|
|
529
|
+
* Infer input type from a procedure.
|
|
530
|
+
*/
|
|
531
|
+
export type InferProcedureInput<T> = T extends Procedure<infer TInput, any, any>
|
|
532
|
+
? TInput
|
|
533
|
+
: unknown;
|
|
534
|
+
|
|
535
|
+
/**
|
|
536
|
+
* Infer output type from a procedure.
|
|
537
|
+
*/
|
|
538
|
+
export type InferProcedureOutput<T> = T extends Procedure<any, infer TOutput, any>
|
|
539
|
+
? TOutput
|
|
540
|
+
: unknown;
|
|
541
|
+
|
|
542
|
+
/**
|
|
543
|
+
* Infer metadata type from a procedure.
|
|
544
|
+
*/
|
|
545
|
+
export type InferProcedureMetadata<T> = T extends Procedure<any, any, infer TMeta>
|
|
546
|
+
? TMeta
|
|
547
|
+
: ProcedureMetadata;
|
|
548
|
+
|
|
549
|
+
// =============================================================================
|
|
550
|
+
// Registry Events
|
|
551
|
+
// =============================================================================
|
|
552
|
+
|
|
553
|
+
/**
|
|
554
|
+
* Event types emitted by ProcedureRegistry.
|
|
555
|
+
*/
|
|
556
|
+
export type RegistryEventType = "register" | "unregister";
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* Listener for registry events.
|
|
560
|
+
*/
|
|
561
|
+
export interface RegistryListener {
|
|
562
|
+
event: RegistryEventType;
|
|
563
|
+
listener: (procedure: AnyProcedure) => void;
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
// =============================================================================
|
|
567
|
+
// Module Registration
|
|
568
|
+
// =============================================================================
|
|
569
|
+
|
|
570
|
+
/**
|
|
571
|
+
* Module that exports procedures for registration.
|
|
572
|
+
*/
|
|
573
|
+
export interface ProcedureModule {
|
|
574
|
+
/** Array of procedures exported by this module */
|
|
575
|
+
procedures: AnyProcedure[];
|
|
576
|
+
|
|
577
|
+
/** Optional module name for debugging */
|
|
578
|
+
name?: string;
|
|
579
|
+
|
|
580
|
+
/**
|
|
581
|
+
* The modules whose procedures this module calls (for example `client-lib` calls `fs.*` and
|
|
582
|
+
* `git.*`). `createRegistry()` registers them too.
|
|
583
|
+
*/
|
|
584
|
+
requires?: readonly ProcedureModule[] | undefined;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
/**
|
|
588
|
+
* Registration options for bulk procedure registration.
|
|
589
|
+
*/
|
|
590
|
+
export interface RegistrationOptions {
|
|
591
|
+
/** Override existing procedures with same path */
|
|
592
|
+
override?: boolean;
|
|
593
|
+
|
|
594
|
+
/** Prefix to prepend to all paths */
|
|
595
|
+
pathPrefix?: ProcedurePath;
|
|
596
|
+
}
|
package/src/register.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Importing this file registers the procedures of `@procedures/client` in the global registry:
|
|
3
|
+
* `import "@procedures/client/register"`. These are the control flow (`client.chain`, `client.map`
|
|
4
|
+
* and the others) and `procedure.define`/`get`/`list`/`delete`. The other entries of the package
|
|
5
|
+
* register nothing (ARCHITECTURE-PROPOSALS-2026-10, P9).
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { registerClientProcedures } from "./procedures/module.js";
|
|
9
|
+
|
|
10
|
+
registerClientProcedures();
|