@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,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Middleware Type System
|
|
3
|
+
*
|
|
4
|
+
* This module provides a sophisticated type-safe middleware system that supports
|
|
5
|
+
* both synchronous and asynchronous middleware with full context tracking.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - Type-level context tracking through middleware chains
|
|
9
|
+
* - Compile-time validation of middleware compatibility
|
|
10
|
+
* - Support for both sync and async execution
|
|
11
|
+
* - Recursive type inference for composed middleware
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/middleware/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Invocation capabilities (packages/documentation/CAPABILITIES-2026-10.md).
|
|
3
|
+
*
|
|
4
|
+
* Each invocation operates with a capability: a clearance (the data that it can see), the
|
|
5
|
+
* effects that it can have, and a deadline. A nested call gets the same capability or a
|
|
6
|
+
* narrower one: `narrowCapability()` calculates it, so a request for more has no effect. Only
|
|
7
|
+
* the host makes a capability, from its authentication.
|
|
8
|
+
*
|
|
9
|
+
* A procedure declares its effects in `metadata.effects`. The admission (`capabilityRefusal()`)
|
|
10
|
+
* compares them with the permitted effects. It examines each call of a host, each nested call
|
|
11
|
+
* of a data-driven procedure (its caller chose the refs), and each nested call with a narrowed
|
|
12
|
+
* capability. A procedure of code that declares its effects answers for its own nested calls:
|
|
13
|
+
* `checkEffects()` examines those declarations against the call graph, as `metadata.calls`
|
|
14
|
+
* makes the reach of a procedure visible.
|
|
15
|
+
*/
|
|
16
|
+
import type { AnyProcedure, Capability, CapabilityRequest, ClearanceOrder, Effects, ProcedurePath } from "./types.js";
|
|
17
|
+
/** The standard resource names. An application adds its own names. */
|
|
18
|
+
export declare const STANDARD_RESOURCES: readonly ["fs", "network", "process", "registry"];
|
|
19
|
+
/**
|
|
20
|
+
* The metadata key of the remaining time of a remote call, in milliseconds. A server uses it
|
|
21
|
+
* only to make its deadline earlier.
|
|
22
|
+
*/
|
|
23
|
+
export declare const TIMEOUT_METADATA_KEY = "procedure-timeout";
|
|
24
|
+
/** The capability without limits: the capability of a host that sets none. */
|
|
25
|
+
export declare const UNLIMITED_CAPABILITY: Capability;
|
|
26
|
+
/**
|
|
27
|
+
* This function gives the order of a ladder: each value is higher than the values before it.
|
|
28
|
+
* `ladder(["public", "shared", "private"])`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function ladder<C>(levels: readonly C[]): ClearanceOrder<C>;
|
|
31
|
+
/** The declared effects of a procedure, or undefined when it declares none. */
|
|
32
|
+
export declare function effectsOf(procedure: {
|
|
33
|
+
readonly metadata?: unknown;
|
|
34
|
+
}): Effects | undefined;
|
|
35
|
+
/** True when the effects say that the procedure changes nothing (`writes: []`). */
|
|
36
|
+
export declare function isReadOnly(effects: Effects | undefined): boolean;
|
|
37
|
+
/** True when the procedure can delete or overwrite data. Not known: true (as in MCP). */
|
|
38
|
+
export declare function isDestructive(effects: Effects | undefined): boolean;
|
|
39
|
+
/** True when the procedure can reach systems outside the host. Not known: true (as in MCP). */
|
|
40
|
+
export declare function isOpenWorld(effects: Effects | undefined): boolean;
|
|
41
|
+
/** The MCP hints of a tool. */
|
|
42
|
+
export interface ToolHints {
|
|
43
|
+
readonly readOnlyHint?: boolean;
|
|
44
|
+
readonly destructiveHint?: boolean;
|
|
45
|
+
readonly idempotentHint?: boolean;
|
|
46
|
+
readonly openWorldHint?: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The MCP hints of a procedure, from its declared effects. A procedure without a declaration,
|
|
50
|
+
* or a data-driven one (its operands decide what it does), gets no hints: then the MCP defaults
|
|
51
|
+
* apply (not read-only, destructive, open world).
|
|
52
|
+
*/
|
|
53
|
+
export declare function toolHints(procedure: AnyProcedure): ToolHints;
|
|
54
|
+
/**
|
|
55
|
+
* This function gives the capability for a request: the same as `current`, or narrower. The
|
|
56
|
+
* clearance is the meet of the two values (a ladder: the lower one). The permitted effects are
|
|
57
|
+
* the intersection. The deadline is the earlier one. Two different clearances need an order.
|
|
58
|
+
*/
|
|
59
|
+
export declare function narrowCapability<C>(current: Capability<C> | undefined, request: CapabilityRequest<C> | undefined, order?: ClearanceOrder<C>, now?: number): Capability<C>;
|
|
60
|
+
/** The reason of a refusal. */
|
|
61
|
+
export type CapabilityRefusalReason = "effects-undeclared" | "effects-exceeded" | "clearance" | "deadline";
|
|
62
|
+
/** A refused invocation: the reason and a message for the caller. */
|
|
63
|
+
export interface CapabilityRefusal {
|
|
64
|
+
readonly reason: CapabilityRefusalReason;
|
|
65
|
+
readonly message: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* This function gives the refusal of an invocation under a capability, or undefined when the
|
|
69
|
+
* capability permits it. It compares the declared effects with the permitted effects, and the
|
|
70
|
+
* time with the deadline. The clearance does not refuse an invocation: it limits the data.
|
|
71
|
+
*/
|
|
72
|
+
export declare function capabilityRefusal(procedure: AnyProcedure, capability: Capability<unknown> | undefined, now?: number): CapabilityRefusal | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* True when the admission examines a nested call: the caller is data-driven (its caller chose
|
|
75
|
+
* the refs), the caller declares no effects, or the capability of the nested call is narrower
|
|
76
|
+
* than the capability of its caller. A procedure of code with declared effects answers for its
|
|
77
|
+
* own nested calls (`checkEffects()` examines them).
|
|
78
|
+
*/
|
|
79
|
+
export declare function examinesNestedCall(caller: AnyProcedure, callerCapability: Capability<unknown>, capability: Capability<unknown>): boolean;
|
|
80
|
+
/** The result of `explainInvocation()`. */
|
|
81
|
+
export interface InvocationExplanation {
|
|
82
|
+
readonly permitted: boolean;
|
|
83
|
+
readonly reason?: CapabilityRefusalReason | "not-found";
|
|
84
|
+
readonly message: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* This function tells, without a call, if a host call of a path is permitted under a
|
|
88
|
+
* capability, and why. An application can show it to a user.
|
|
89
|
+
*/
|
|
90
|
+
export declare function explainInvocation(path: ProcedurePath, capability: Capability<unknown> | undefined, registry: {
|
|
91
|
+
get(path: ProcedurePath): AnyProcedure | undefined;
|
|
92
|
+
}, now?: number): InvocationExplanation;
|
|
93
|
+
/** A declaration of effects that does not include the effects of a procedure that it calls. */
|
|
94
|
+
export interface EffectsViolation {
|
|
95
|
+
readonly path: ProcedurePath;
|
|
96
|
+
readonly callee: string;
|
|
97
|
+
readonly message: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* This function examines each procedure of code that declares its effects and its calls
|
|
101
|
+
* (`metadata.calls`). Its declaration must include the reads and the writes of each procedure
|
|
102
|
+
* that it calls: the resources are structural, so a caller cannot touch less than its callees.
|
|
103
|
+
*
|
|
104
|
+
* Two things are the caller's own claim, and the check does not compare them. A callee that
|
|
105
|
+
* writes `process` starts any program, and its caller declares what that program does. The
|
|
106
|
+
* flags `destructive` and `idempotent` depend on the input that the caller gives: `lib.new`
|
|
107
|
+
* creates new files with `fs.write`, which can overwrite. The effects snapshot of the MCP tools
|
|
108
|
+
* shows these claims in a review.
|
|
109
|
+
*/
|
|
110
|
+
export declare function checkEffects(procedures: readonly AnyProcedure[]): EffectsViolation[];
|
|
111
|
+
//# sourceMappingURL=capability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../src/procedures/capability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Invocation capabilities (packages/documentation/CAPABILITIES-2026-10.md).
|
|
3
|
+
*
|
|
4
|
+
* Each invocation operates with a capability: a clearance (the data that it can see), the
|
|
5
|
+
* effects that it can have, and a deadline. A nested call gets the same capability or a
|
|
6
|
+
* narrower one: `narrowCapability()` calculates it, so a request for more has no effect. Only
|
|
7
|
+
* the host makes a capability, from its authentication.
|
|
8
|
+
*
|
|
9
|
+
* A procedure declares its effects in `metadata.effects`. The admission (`capabilityRefusal()`)
|
|
10
|
+
* compares them with the permitted effects. It examines each call of a host, each nested call
|
|
11
|
+
* of a data-driven procedure (its caller chose the refs), and each nested call with a narrowed
|
|
12
|
+
* capability. A procedure of code that declares its effects answers for its own nested calls:
|
|
13
|
+
* `checkEffects()` examines those declarations against the call graph, as `metadata.calls`
|
|
14
|
+
* makes the reach of a procedure visible.
|
|
15
|
+
*/
|
|
16
|
+
import { pathToKey } from "./types.js";
|
|
17
|
+
import { isDataDriven } from "./ref.js";
|
|
18
|
+
import { callMatches } from "./policy.js";
|
|
19
|
+
/** The standard resource names. An application adds its own names. */
|
|
20
|
+
export const STANDARD_RESOURCES = ["fs", "network", "process", "registry"];
|
|
21
|
+
/**
|
|
22
|
+
* The metadata key of the remaining time of a remote call, in milliseconds. A server uses it
|
|
23
|
+
* only to make its deadline earlier.
|
|
24
|
+
*/
|
|
25
|
+
export const TIMEOUT_METADATA_KEY = "procedure-timeout";
|
|
26
|
+
/** The capability without limits: the capability of a host that sets none. */
|
|
27
|
+
export const UNLIMITED_CAPABILITY = Object.freeze({});
|
|
28
|
+
// =============================================================================
|
|
29
|
+
// Clearance orders
|
|
30
|
+
// =============================================================================
|
|
31
|
+
/**
|
|
32
|
+
* This function gives the order of a ladder: each value is higher than the values before it.
|
|
33
|
+
* `ladder(["public", "shared", "private"])`.
|
|
34
|
+
*/
|
|
35
|
+
export function ladder(levels) {
|
|
36
|
+
const rank = (value) => {
|
|
37
|
+
const index = levels.indexOf(value);
|
|
38
|
+
if (index === -1)
|
|
39
|
+
throw new Error(`Not a clearance value of the ladder: ${String(value)}`);
|
|
40
|
+
return index;
|
|
41
|
+
};
|
|
42
|
+
return {
|
|
43
|
+
leq: (a, b) => rank(a) <= rank(b),
|
|
44
|
+
meet: (a, b) => (rank(a) <= rank(b) ? a : b),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// =============================================================================
|
|
48
|
+
// Effects
|
|
49
|
+
// =============================================================================
|
|
50
|
+
/** The declared effects of a procedure, or undefined when it declares none. */
|
|
51
|
+
export function effectsOf(procedure) {
|
|
52
|
+
const effects = procedure.metadata?.effects;
|
|
53
|
+
return effects !== null && typeof effects === "object" ? effects : undefined;
|
|
54
|
+
}
|
|
55
|
+
/** True when the effects say that the procedure changes nothing (`writes: []`). */
|
|
56
|
+
export function isReadOnly(effects) {
|
|
57
|
+
return effects?.writes !== undefined && effects.writes.length === 0;
|
|
58
|
+
}
|
|
59
|
+
/** True when the procedure can delete or overwrite data. Not known: true (as in MCP). */
|
|
60
|
+
export function isDestructive(effects) {
|
|
61
|
+
if (isReadOnly(effects))
|
|
62
|
+
return false;
|
|
63
|
+
return effects?.destructive ?? true;
|
|
64
|
+
}
|
|
65
|
+
/** True when the procedure can reach systems outside the host. Not known: true (as in MCP). */
|
|
66
|
+
export function isOpenWorld(effects) {
|
|
67
|
+
if (effects?.reads === undefined || effects.writes === undefined)
|
|
68
|
+
return true;
|
|
69
|
+
return effects.reads.includes("network") || effects.writes.includes("network") || effects.writes.includes("process");
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The MCP hints of a procedure, from its declared effects. A procedure without a declaration,
|
|
73
|
+
* or a data-driven one (its operands decide what it does), gets no hints: then the MCP defaults
|
|
74
|
+
* apply (not read-only, destructive, open world).
|
|
75
|
+
*/
|
|
76
|
+
export function toolHints(procedure) {
|
|
77
|
+
const effects = effectsOf(procedure);
|
|
78
|
+
if (!effects || isDataDriven(procedure))
|
|
79
|
+
return {};
|
|
80
|
+
if (isReadOnly(effects)) {
|
|
81
|
+
return { readOnlyHint: true, openWorldHint: isOpenWorld(effects) };
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
readOnlyHint: false,
|
|
85
|
+
destructiveHint: isDestructive(effects),
|
|
86
|
+
idempotentHint: effects.idempotent ?? false,
|
|
87
|
+
openWorldHint: isOpenWorld(effects),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function intersect(current, requested) {
|
|
91
|
+
if (current === undefined || current === "any")
|
|
92
|
+
return requested ?? current;
|
|
93
|
+
if (requested === undefined || requested === "any")
|
|
94
|
+
return current;
|
|
95
|
+
return Object.freeze(current.filter((name) => requested.includes(name)));
|
|
96
|
+
}
|
|
97
|
+
function narrowEffects(current, requested) {
|
|
98
|
+
if (!requested)
|
|
99
|
+
return current;
|
|
100
|
+
const reads = intersect(current?.reads, requested.reads);
|
|
101
|
+
const writes = intersect(current?.writes, requested.writes);
|
|
102
|
+
const destructive = current?.destructive === false || requested.destructive === false ? false : undefined;
|
|
103
|
+
const result = {};
|
|
104
|
+
if (reads !== undefined)
|
|
105
|
+
result.reads = reads;
|
|
106
|
+
if (writes !== undefined)
|
|
107
|
+
result.writes = writes;
|
|
108
|
+
if (destructive !== undefined)
|
|
109
|
+
result.destructive = destructive;
|
|
110
|
+
return Object.freeze(result);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* This function gives the capability for a request: the same as `current`, or narrower. The
|
|
114
|
+
* clearance is the meet of the two values (a ladder: the lower one). The permitted effects are
|
|
115
|
+
* the intersection. The deadline is the earlier one. Two different clearances need an order.
|
|
116
|
+
*/
|
|
117
|
+
export function narrowCapability(current, request, order, now = Date.now()) {
|
|
118
|
+
const base = current ?? UNLIMITED_CAPABILITY;
|
|
119
|
+
if (!request)
|
|
120
|
+
return base;
|
|
121
|
+
const result = {};
|
|
122
|
+
if (request.clearance === undefined) {
|
|
123
|
+
if (base.clearance !== undefined)
|
|
124
|
+
result.clearance = base.clearance;
|
|
125
|
+
}
|
|
126
|
+
else if (base.clearance === undefined) {
|
|
127
|
+
result.clearance = request.clearance;
|
|
128
|
+
}
|
|
129
|
+
else if (Object.is(base.clearance, request.clearance)) {
|
|
130
|
+
result.clearance = base.clearance;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
if (!order) {
|
|
134
|
+
throw new Error("Two different clearances need a clearance order: give clearanceOrder to the host (hostPolicy)");
|
|
135
|
+
}
|
|
136
|
+
result.clearance = order.meet(base.clearance, request.clearance);
|
|
137
|
+
}
|
|
138
|
+
const effects = narrowEffects(base.effects, request.effects);
|
|
139
|
+
if (effects !== undefined)
|
|
140
|
+
result.effects = effects;
|
|
141
|
+
const requestedDeadline = request.timeoutMs !== undefined ? now + request.timeoutMs : undefined;
|
|
142
|
+
const deadline = base.deadline === undefined ? requestedDeadline : requestedDeadline === undefined ? base.deadline : Math.min(base.deadline, requestedDeadline);
|
|
143
|
+
if (deadline !== undefined)
|
|
144
|
+
result.deadline = deadline;
|
|
145
|
+
return Object.freeze(result);
|
|
146
|
+
}
|
|
147
|
+
const VERB = { reads: "reads", writes: "changes" };
|
|
148
|
+
/**
|
|
149
|
+
* This function gives the refusal of an invocation under a capability, or undefined when the
|
|
150
|
+
* capability permits it. It compares the declared effects with the permitted effects, and the
|
|
151
|
+
* time with the deadline. The clearance does not refuse an invocation: it limits the data.
|
|
152
|
+
*/
|
|
153
|
+
export function capabilityRefusal(procedure, capability, now = Date.now()) {
|
|
154
|
+
if (!capability)
|
|
155
|
+
return undefined;
|
|
156
|
+
const key = pathToKey(procedure.path);
|
|
157
|
+
if (capability.deadline !== undefined && now >= capability.deadline) {
|
|
158
|
+
return { reason: "deadline", message: `The deadline of the call passed before ${key} started` };
|
|
159
|
+
}
|
|
160
|
+
const permitted = capability.effects;
|
|
161
|
+
if (!permitted)
|
|
162
|
+
return undefined;
|
|
163
|
+
const effects = effectsOf(procedure);
|
|
164
|
+
for (const kind of ["reads", "writes"]) {
|
|
165
|
+
const allowed = permitted[kind];
|
|
166
|
+
if (allowed === undefined || allowed === "any")
|
|
167
|
+
continue;
|
|
168
|
+
const declared = effects?.[kind];
|
|
169
|
+
const limit = allowed.length > 0 ? `only ${allowed.join(", ")}` : "nothing";
|
|
170
|
+
if (declared === undefined) {
|
|
171
|
+
return {
|
|
172
|
+
reason: "effects-undeclared",
|
|
173
|
+
message: `${key} does not declare what it ${VERB[kind]}, and this call ${VERB[kind]} ${limit}`,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
const extra = declared.filter((name) => !allowed.includes(name));
|
|
177
|
+
if (extra.length > 0) {
|
|
178
|
+
return {
|
|
179
|
+
reason: "effects-exceeded",
|
|
180
|
+
message: `${key} ${VERB[kind]} ${extra.join(", ")}, and this call ${VERB[kind]} ${limit}`,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (permitted.destructive === false && isDestructive(effects)) {
|
|
185
|
+
return {
|
|
186
|
+
reason: "effects-exceeded",
|
|
187
|
+
message: `${key} can delete or overwrite data, and this call cannot start such a procedure`,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
return undefined;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* True when the admission examines a nested call: the caller is data-driven (its caller chose
|
|
194
|
+
* the refs), the caller declares no effects, or the capability of the nested call is narrower
|
|
195
|
+
* than the capability of its caller. A procedure of code with declared effects answers for its
|
|
196
|
+
* own nested calls (`checkEffects()` examines them).
|
|
197
|
+
*/
|
|
198
|
+
export function examinesNestedCall(caller, callerCapability, capability) {
|
|
199
|
+
return isDataDriven(caller) || effectsOf(caller) === undefined || capability !== callerCapability;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* This function tells, without a call, if a host call of a path is permitted under a
|
|
203
|
+
* capability, and why. An application can show it to a user.
|
|
204
|
+
*/
|
|
205
|
+
export function explainInvocation(path, capability, registry, now = Date.now()) {
|
|
206
|
+
const procedure = registry.get(path);
|
|
207
|
+
if (!procedure)
|
|
208
|
+
return { permitted: false, reason: "not-found", message: `No procedure at ${pathToKey(path)}` };
|
|
209
|
+
const refusal = capabilityRefusal(procedure, capability, now);
|
|
210
|
+
if (refusal)
|
|
211
|
+
return { permitted: false, reason: refusal.reason, message: refusal.message };
|
|
212
|
+
return { permitted: true, message: `${pathToKey(path)} is permitted` };
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* This function examines each procedure of code that declares its effects and its calls
|
|
216
|
+
* (`metadata.calls`). Its declaration must include the reads and the writes of each procedure
|
|
217
|
+
* that it calls: the resources are structural, so a caller cannot touch less than its callees.
|
|
218
|
+
*
|
|
219
|
+
* Two things are the caller's own claim, and the check does not compare them. A callee that
|
|
220
|
+
* writes `process` starts any program, and its caller declares what that program does. The
|
|
221
|
+
* flags `destructive` and `idempotent` depend on the input that the caller gives: `lib.new`
|
|
222
|
+
* creates new files with `fs.write`, which can overwrite. The effects snapshot of the MCP tools
|
|
223
|
+
* shows these claims in a review.
|
|
224
|
+
*/
|
|
225
|
+
export function checkEffects(procedures) {
|
|
226
|
+
const byKey = new Map(procedures.map((procedure) => [pathToKey(procedure.path), procedure]));
|
|
227
|
+
const violations = [];
|
|
228
|
+
for (const procedure of procedures) {
|
|
229
|
+
const own = effectsOf(procedure);
|
|
230
|
+
const calls = procedure.metadata?.calls;
|
|
231
|
+
if (!own || !Array.isArray(calls) || isDataDriven(procedure))
|
|
232
|
+
continue;
|
|
233
|
+
const key = pathToKey(procedure.path);
|
|
234
|
+
const callees = new Set();
|
|
235
|
+
for (const entry of calls) {
|
|
236
|
+
for (const candidate of byKey.keys())
|
|
237
|
+
if (callMatches(entry, candidate))
|
|
238
|
+
callees.add(candidate);
|
|
239
|
+
}
|
|
240
|
+
for (const calleeKey of [...callees].sort()) {
|
|
241
|
+
const callee = byKey.get(calleeKey);
|
|
242
|
+
const theirs = effectsOf(callee);
|
|
243
|
+
const report = (message) => {
|
|
244
|
+
violations.push({ path: procedure.path, callee: calleeKey, message: `${key} calls ${calleeKey}: ${message}` });
|
|
245
|
+
};
|
|
246
|
+
if (!theirs) {
|
|
247
|
+
report("the callee declares no effects");
|
|
248
|
+
continue;
|
|
249
|
+
}
|
|
250
|
+
for (const kind of ["reads", "writes"]) {
|
|
251
|
+
const mine = own[kind];
|
|
252
|
+
const needed = (theirs[kind] ?? []).filter((name) => name !== "process");
|
|
253
|
+
if (theirs[kind] === undefined) {
|
|
254
|
+
report(`the callee does not declare what it ${VERB[kind]}`);
|
|
255
|
+
}
|
|
256
|
+
else if (mine === undefined) {
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
const missing = needed.filter((name) => !mine.includes(name));
|
|
261
|
+
if (missing.length > 0)
|
|
262
|
+
report(`the declaration does not include ${missing.join(", ")} in ${kind}`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return violations;
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=capability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../../src/procedures/capability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Procedure Announcement (Self-Registration)
|
|
3
|
+
*
|
|
4
|
+
* When a package with procedures is installed, it "announces" itself
|
|
5
|
+
* by writing to a registry file at the root of the project.
|
|
6
|
+
*
|
|
7
|
+
* This enables true bottom-up propagation:
|
|
8
|
+
* - Each package with procedures has `"postinstall": "client-registry announce"`
|
|
9
|
+
* - On install, it walks up to find the root and registers itself
|
|
10
|
+
* - `client-registry discover` reads this registry instead of scanning
|
|
11
|
+
*
|
|
12
|
+
* The registry file (.client-registry.json) accumulates entries from
|
|
13
|
+
* all packages as they're installed, making discovery instant.
|
|
14
|
+
*/
|
|
15
|
+
export interface AnnounceOptions {
|
|
16
|
+
/** Be verbose about what's happening */
|
|
17
|
+
verbose: boolean;
|
|
18
|
+
/** The folder to start from (default: the current folder) */
|
|
19
|
+
cwd?: string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Add `client-registry announce` to the postinstall script of the package that depends on this one.
|
|
22
|
+
* This edits a package.json that belongs to the consumer, so it happens only when asked
|
|
23
|
+
* (`client-registry announce --propagate`). Default: false.
|
|
24
|
+
*/
|
|
25
|
+
propagate?: boolean | undefined;
|
|
26
|
+
}
|
|
27
|
+
interface RegistryEntry {
|
|
28
|
+
/** Path to procedures file relative to package */
|
|
29
|
+
proceduresPath: string;
|
|
30
|
+
/** When this entry was added */
|
|
31
|
+
registeredAt: string;
|
|
32
|
+
/** Package version */
|
|
33
|
+
version?: string;
|
|
34
|
+
}
|
|
35
|
+
interface Registry {
|
|
36
|
+
/** Schema version for future compatibility */
|
|
37
|
+
schemaVersion: 1;
|
|
38
|
+
/** Map of package name to registry entry */
|
|
39
|
+
packages: Record<string, RegistryEntry>;
|
|
40
|
+
}
|
|
41
|
+
declare const REGISTRY_FILENAME = ".client-registry.json";
|
|
42
|
+
/**
|
|
43
|
+
* Announce this package's procedures to the project registry.
|
|
44
|
+
*
|
|
45
|
+
* Called from a package's postinstall script to register its procedures.
|
|
46
|
+
*
|
|
47
|
+
* With `propagate: true` (`client-registry announce --propagate`), it also adds the postinstall script
|
|
48
|
+
* to the package that depends on this one, for transitive discovery:
|
|
49
|
+
* - When client is installed in package D, client's postinstall adds postinstall to D
|
|
50
|
+
* - When D is installed in C, D's postinstall adds postinstall to C
|
|
51
|
+
* - When C is installed in B, C's postinstall adds postinstall to B
|
|
52
|
+
*
|
|
53
|
+
* The propagation edits the package.json of the consumer, so it happens only when asked.
|
|
54
|
+
* Without it, each package that has its own postinstall script still registers itself.
|
|
55
|
+
*/
|
|
56
|
+
export declare function announce(options: AnnounceOptions): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Remove this package from the registry (for uninstall).
|
|
59
|
+
*/
|
|
60
|
+
export declare function unannounce(options: AnnounceOptions): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Get the registry for use by discover command.
|
|
63
|
+
*/
|
|
64
|
+
export declare function getRegistry(rootDir: string): Promise<Registry>;
|
|
65
|
+
export { REGISTRY_FILENAME };
|
|
66
|
+
export type { Registry, RegistryEntry };
|
|
67
|
+
//# sourceMappingURL=announce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"announce.d.ts","sourceRoot":"","sources":["../../../src/procedures/cli/announce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED,UAAU,aAAa;IACrB,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,QAAQ;IAChB,8CAA8C;IAC9C,aAAa,EAAE,CAAC,CAAC;IACjB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACzC;AAkFD,QAAA,MAAM,iBAAiB,0BAA0B,CAAC;AA0GlD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BtE;AAiKD;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBxE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEpE;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC"}
|