@fougere/core 0.5.0-alpha.1 → 0.7.0-alpha.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/README.md +1 -1
- package/dist/boot/Emissions.d.ts +14 -91
- package/dist/boot/Emissions.d.ts.map +1 -1
- package/dist/boot/Emissions.js +21 -118
- package/dist/boot/Emissions.js.map +1 -1
- package/dist/boot/ambient-port.d.ts +3 -24
- package/dist/boot/ambient-port.d.ts.map +1 -1
- package/dist/boot/ambient.als.d.ts.map +1 -1
- package/dist/boot/ambient.als.js +7 -12
- package/dist/boot/ambient.als.js.map +1 -1
- package/dist/boot/ambient.queue.d.ts +2 -5
- package/dist/boot/ambient.queue.d.ts.map +1 -1
- package/dist/boot/ambient.queue.js.map +1 -1
- package/dist/boot/apply.d.ts +1 -13
- package/dist/boot/apply.d.ts.map +1 -1
- package/dist/boot/apply.js +3 -15
- package/dist/boot/apply.js.map +1 -1
- package/dist/boot/auth.d.ts +6 -16
- package/dist/boot/auth.d.ts.map +1 -1
- package/dist/boot/boot.d.ts +5 -18
- package/dist/boot/boot.d.ts.map +1 -1
- package/dist/boot/boot.js +4 -11
- package/dist/boot/boot.js.map +1 -1
- package/dist/boot/bootstrap.d.ts.map +1 -1
- package/dist/boot/bootstrap.js +106 -163
- package/dist/boot/bootstrap.js.map +1 -1
- package/dist/boot/card.d.ts +5 -0
- package/dist/boot/card.d.ts.map +1 -0
- package/dist/boot/card.js +71 -0
- package/dist/boot/card.js.map +1 -0
- package/dist/boot/frame.d.ts +8 -32
- package/dist/boot/frame.d.ts.map +1 -1
- package/dist/boot/frame.js +23 -57
- package/dist/boot/frame.js.map +1 -1
- package/dist/boot/hosted.d.ts +3 -19
- package/dist/boot/hosted.d.ts.map +1 -1
- package/dist/boot/hosted.js +12 -17
- package/dist/boot/hosted.js.map +1 -1
- package/dist/boot/ownership.d.ts +5 -36
- package/dist/boot/ownership.d.ts.map +1 -1
- package/dist/boot/ownership.js +9 -49
- package/dist/boot/ownership.js.map +1 -1
- package/dist/boot/ports.d.ts +2 -15
- package/dist/boot/ports.d.ts.map +1 -1
- package/dist/boot/ports.js +1 -14
- package/dist/boot/ports.js.map +1 -1
- package/dist/boot/remote.d.ts +5 -38
- package/dist/boot/remote.d.ts.map +1 -1
- package/dist/boot/remote.js +8 -41
- package/dist/boot/remote.js.map +1 -1
- package/dist/boot/runner.d.ts +11 -0
- package/dist/boot/runner.d.ts.map +1 -0
- package/dist/boot/runner.js +13 -0
- package/dist/boot/runner.js.map +1 -0
- package/dist/boot/seed.d.ts +5 -32
- package/dist/boot/seed.d.ts.map +1 -1
- package/dist/boot/seed.js +10 -41
- package/dist/boot/seed.js.map +1 -1
- package/dist/boot/statement-drift.d.ts +4 -22
- package/dist/boot/statement-drift.d.ts.map +1 -1
- package/dist/boot/statement-drift.js +4 -9
- package/dist/boot/statement-drift.js.map +1 -1
- package/dist/boot/together.d.ts +8 -12
- package/dist/boot/together.d.ts.map +1 -1
- package/dist/boot/together.js +28 -65
- package/dist/boot/together.js.map +1 -1
- package/dist/boot/types.d.ts +36 -180
- package/dist/boot/types.d.ts.map +1 -1
- package/dist/builtin/config.d.ts +7 -0
- package/dist/builtin/config.d.ts.map +1 -0
- package/dist/builtin/config.js +15 -0
- package/dist/builtin/config.js.map +1 -0
- package/dist/{builtins → builtin}/logger.d.ts +4 -25
- package/dist/builtin/logger.d.ts.map +1 -0
- package/dist/{builtins → builtin}/logger.js +5 -32
- package/dist/builtin/logger.js.map +1 -0
- package/dist/config-loader.d.ts +9 -67
- package/dist/config-loader.d.ts.map +1 -1
- package/dist/config-loader.js +5 -18
- package/dist/config-loader.js.map +1 -1
- package/dist/contract.d.ts +13 -31
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +10 -26
- package/dist/contract.js.map +1 -1
- package/dist/crypto/encoding.d.ts +2 -15
- package/dist/crypto/encoding.d.ts.map +1 -1
- package/dist/crypto/encoding.js +2 -15
- package/dist/crypto/encoding.js.map +1 -1
- package/dist/crypto/node.d.ts.map +1 -1
- package/dist/crypto/node.js +1 -7
- package/dist/crypto/node.js.map +1 -1
- package/dist/crypto/port.d.ts +2 -18
- package/dist/crypto/port.d.ts.map +1 -1
- package/dist/crypto/port.js +1 -17
- package/dist/crypto/port.js.map +1 -1
- package/dist/crypto/webcrypto.d.ts.map +1 -1
- package/dist/crypto/webcrypto.js +1 -12
- package/dist/crypto/webcrypto.js.map +1 -1
- package/dist/declare.d.ts +41 -0
- package/dist/declare.d.ts.map +1 -0
- package/dist/{scan/declare.js → declare.js} +6 -31
- package/dist/declare.js.map +1 -0
- package/dist/define.d.ts +2 -3
- package/dist/define.d.ts.map +1 -1
- package/dist/define.js +2 -3
- package/dist/define.js.map +1 -1
- package/dist/descriptor/Fronds.d.ts +19 -0
- package/dist/descriptor/Fronds.d.ts.map +1 -0
- package/dist/descriptor/Fronds.js +40 -0
- package/dist/descriptor/Fronds.js.map +1 -0
- package/dist/descriptor/frond.d.ts +135 -0
- package/dist/descriptor/frond.d.ts.map +1 -0
- package/dist/{scan → descriptor}/frond.js.map +1 -1
- package/dist/dispatch/ArgumentResolver.d.ts +6 -3
- package/dist/dispatch/ArgumentResolver.d.ts.map +1 -1
- package/dist/dispatch/ArgumentResolver.js +48 -3
- package/dist/dispatch/ArgumentResolver.js.map +1 -1
- package/dist/dispatch/DispatchEvent.d.ts +2 -2
- package/dist/dispatch/DispatchEvent.d.ts.map +1 -1
- package/dist/dispatch/DispatchLifecycle.d.ts +1 -7
- package/dist/dispatch/DispatchLifecycle.d.ts.map +1 -1
- package/dist/dispatch/DispatchLifecycle.js +1 -7
- package/dist/dispatch/DispatchLifecycle.js.map +1 -1
- package/dist/dispatch/DispatchPort.d.ts +1 -1
- package/dist/dispatch/DispatchPort.d.ts.map +1 -1
- package/dist/dispatch/Dispatcher.d.ts +1 -1
- package/dist/dispatch/Dispatcher.d.ts.map +1 -1
- package/dist/dispatch/Dispatcher.js +2 -2
- package/dist/dispatch/Dispatcher.js.map +1 -1
- package/dist/{boot → dispatch}/HandlerFacade.d.ts +25 -38
- package/dist/dispatch/HandlerFacade.d.ts.map +1 -0
- package/dist/{boot → dispatch}/HandlerFacade.js +65 -74
- package/dist/dispatch/HandlerFacade.js.map +1 -0
- package/dist/dispatch/LocalRoutePolicy.d.ts +1 -1
- package/dist/dispatch/LocalRoutePolicy.d.ts.map +1 -1
- package/dist/dispatch/LocalRoutePolicy.js +4 -4
- package/dist/dispatch/LocalRoutePolicy.js.map +1 -1
- package/dist/dispatch/OperationRoute.d.ts +2 -2
- package/dist/dispatch/OperationRoute.d.ts.map +1 -1
- package/dist/dispatch/OutputView.d.ts +3 -2
- package/dist/dispatch/OutputView.d.ts.map +1 -1
- package/dist/dispatch/OutputView.js +19 -1
- package/dist/dispatch/OutputView.js.map +1 -1
- package/dist/dispatch/Route.d.ts +2 -3
- package/dist/dispatch/Route.d.ts.map +1 -1
- package/dist/dispatch/RoutePolicy.d.ts +1 -1
- package/dist/dispatch/RoutePolicy.d.ts.map +1 -1
- package/dist/dispatch/RouteRegistry.d.ts +1 -1
- package/dist/dispatch/RouteRegistry.d.ts.map +1 -1
- package/dist/dispatch/RouteRegistry.js +2 -2
- package/dist/dispatch/RouteRegistry.js.map +1 -1
- package/dist/dispatch/RouteResolver.d.ts +2 -4
- package/dist/dispatch/RouteResolver.d.ts.map +1 -1
- package/dist/dispatch/StorageGuard.d.ts +9 -8
- package/dist/dispatch/StorageGuard.d.ts.map +1 -1
- package/dist/dispatch/StorageGuard.js +66 -23
- package/dist/dispatch/StorageGuard.js.map +1 -1
- package/dist/dispatch/presenterArguments.d.ts +7 -0
- package/dist/dispatch/presenterArguments.d.ts.map +1 -0
- package/dist/dispatch/presenterArguments.js +12 -0
- package/dist/dispatch/presenterArguments.js.map +1 -0
- package/dist/dispatch/remoteRoutes.d.ts +7 -0
- package/dist/dispatch/remoteRoutes.d.ts.map +1 -0
- package/dist/dispatch/{RemoteRouteResolver.js → remoteRoutes.js} +6 -10
- package/dist/dispatch/remoteRoutes.js.map +1 -0
- package/dist/dispatch/routeNotFound.d.ts +9 -0
- package/dist/dispatch/routeNotFound.d.ts.map +1 -0
- package/dist/dispatch/routeNotFound.js +21 -0
- package/dist/dispatch/routeNotFound.js.map +1 -0
- package/dist/dispatch/validateInput.d.ts +5 -0
- package/dist/dispatch/validateInput.d.ts.map +1 -0
- package/dist/dispatch/validateInput.js +20 -0
- package/dist/dispatch/validateInput.js.map +1 -0
- package/dist/effective-operation.d.ts +6 -3
- package/dist/effective-operation.d.ts.map +1 -1
- package/dist/effective-operation.js +49 -27
- package/dist/effective-operation.js.map +1 -1
- package/dist/emit.d.ts +4 -42
- package/dist/emit.d.ts.map +1 -1
- package/dist/emit.js +3 -39
- package/dist/emit.js.map +1 -1
- package/dist/entry/facade.d.ts +8 -0
- package/dist/entry/facade.d.ts.map +1 -0
- package/dist/entry/facade.js +28 -0
- package/dist/entry/facade.js.map +1 -0
- package/dist/entry/transport.d.ts +5 -0
- package/dist/entry/transport.d.ts.map +1 -0
- package/dist/entry/transport.js +11 -0
- package/dist/entry/transport.js.map +1 -0
- package/dist/frond-config.d.ts +8 -71
- package/dist/frond-config.d.ts.map +1 -1
- package/dist/frond-config.js +1 -9
- package/dist/frond-config.js.map +1 -1
- package/dist/graph.d.ts +1 -1
- package/dist/graph.d.ts.map +1 -1
- package/dist/identity-keys.d.ts +2 -5
- package/dist/identity-keys.d.ts.map +1 -1
- package/dist/identity-keys.js +3 -16
- package/dist/identity-keys.js.map +1 -1
- package/dist/identity.d.ts +4 -30
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +11 -73
- package/dist/identity.js.map +1 -1
- package/dist/imports.d.ts +2 -8
- package/dist/imports.d.ts.map +1 -1
- package/dist/imports.js +1 -7
- package/dist/imports.js.map +1 -1
- package/dist/index.d.ts +28 -30
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -22
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +1 -8
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +1 -8
- package/dist/loader.js.map +1 -1
- package/dist/node.d.ts +2 -11
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +2 -11
- package/dist/node.js.map +1 -1
- package/dist/prefab/collector.d.ts +1 -22
- package/dist/prefab/collector.d.ts.map +1 -1
- package/dist/prefab/collector.js +1 -22
- package/dist/prefab/collector.js.map +1 -1
- package/dist/prefab/crud.d.ts +19 -35
- package/dist/prefab/crud.d.ts.map +1 -1
- package/dist/prefab/crud.js +39 -66
- package/dist/prefab/crud.js.map +1 -1
- package/dist/prefab/mirror.d.ts +5 -27
- package/dist/prefab/mirror.d.ts.map +1 -1
- package/dist/prefab/mirror.js +6 -24
- package/dist/prefab/mirror.js.map +1 -1
- package/dist/prefab/prefab.d.ts +1 -7
- package/dist/prefab/prefab.d.ts.map +1 -1
- package/dist/prefab/prefab.js +1 -7
- package/dist/prefab/prefab.js.map +1 -1
- package/dist/prefab/presenter.d.ts +2 -36
- package/dist/prefab/presenter.d.ts.map +1 -1
- package/dist/prefab/presenter.js +2 -36
- package/dist/prefab/presenter.js.map +1 -1
- package/dist/prefab/repository.d.ts +12 -80
- package/dist/prefab/repository.d.ts.map +1 -1
- package/dist/prefab/repository.js +22 -35
- package/dist/prefab/repository.js.map +1 -1
- package/dist/scan/adapters.d.ts +3 -0
- package/dist/scan/adapters.d.ts.map +1 -0
- package/dist/scan/adapters.js +25 -0
- package/dist/scan/adapters.js.map +1 -0
- package/dist/scan/bundling.d.ts +1 -12
- package/dist/scan/bundling.d.ts.map +1 -1
- package/dist/scan/bundling.js +1 -12
- package/dist/scan/bundling.js.map +1 -1
- package/dist/scan/conventions.d.ts +6 -40
- package/dist/scan/conventions.d.ts.map +1 -1
- package/dist/scan/conventions.js +5 -34
- package/dist/scan/conventions.js.map +1 -1
- package/dist/scan/emit.d.ts +2 -6
- package/dist/scan/emit.d.ts.map +1 -1
- package/dist/scan/emit.js +5 -39
- package/dist/scan/emit.js.map +1 -1
- package/dist/scan/handler-parser.d.ts +9 -76
- package/dist/scan/handler-parser.d.ts.map +1 -1
- package/dist/scan/handler-parser.js +28 -85
- package/dist/scan/handler-parser.js.map +1 -1
- package/dist/scan/result.d.ts +28 -0
- package/dist/scan/result.d.ts.map +1 -0
- package/dist/scan/result.js +2 -0
- package/dist/scan/result.js.map +1 -0
- package/dist/scan/scanner.d.ts +3 -28
- package/dist/scan/scanner.d.ts.map +1 -1
- package/dist/scan/scanner.js +36 -135
- package/dist/scan/scanner.js.map +1 -1
- package/dist/scan/statement.d.ts +1 -1
- package/dist/scan/statement.d.ts.map +1 -1
- package/dist/scan/statement.js +4 -30
- package/dist/scan/statement.js.map +1 -1
- package/dist/source.d.ts +41 -0
- package/dist/source.d.ts.map +1 -0
- package/dist/source.js +10 -0
- package/dist/source.js.map +1 -0
- package/dist/storage.d.ts +92 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +50 -0
- package/dist/storage.js.map +1 -0
- package/dist/store.d.ts +18 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +146 -0
- package/dist/store.js.map +1 -0
- package/dist/verify.d.ts +6 -39
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +19 -39
- package/dist/verify.js.map +1 -1
- package/dist/wire/CallLog.d.ts +32 -0
- package/dist/wire/CallLog.d.ts.map +1 -0
- package/dist/{contract → wire}/CallLog.js.map +1 -1
- package/dist/wire/Invocation.d.ts +32 -0
- package/dist/wire/Invocation.d.ts.map +1 -0
- package/dist/wire/Invocation.js +66 -0
- package/dist/wire/Invocation.js.map +1 -0
- package/dist/wire/RouteAddress.d.ts +24 -0
- package/dist/wire/RouteAddress.d.ts.map +1 -0
- package/dist/{contract → wire}/RouteAddress.js +7 -0
- package/dist/wire/RouteAddress.js.map +1 -0
- package/dist/wire/binding.d.ts +36 -0
- package/dist/wire/binding.d.ts.map +1 -0
- package/dist/{boot → wire}/binding.js +5 -62
- package/dist/wire/binding.js.map +1 -0
- package/dist/wire/call.d.ts +25 -172
- package/dist/wire/call.d.ts.map +1 -1
- package/dist/wire/call.js +15 -166
- package/dist/wire/call.js.map +1 -1
- package/dist/wire/drift.d.ts +3 -28
- package/dist/wire/drift.d.ts.map +1 -1
- package/dist/wire/drift.js +4 -23
- package/dist/wire/drift.js.map +1 -1
- package/dist/wire/errors.d.ts +4 -24
- package/dist/wire/errors.d.ts.map +1 -1
- package/dist/wire/errors.js +4 -24
- package/dist/wire/errors.js.map +1 -1
- package/dist/wire/http-error.d.ts +2 -13
- package/dist/wire/http-error.d.ts.map +1 -1
- package/dist/wire/http-error.js +5 -19
- package/dist/wire/http-error.js.map +1 -1
- package/dist/wire/loggerMiddleware.d.ts +2 -8
- package/dist/wire/loggerMiddleware.d.ts.map +1 -1
- package/dist/wire/loggerMiddleware.js +1 -7
- package/dist/wire/loggerMiddleware.js.map +1 -1
- package/dist/wire/middleware.d.ts +3 -7
- package/dist/wire/middleware.d.ts.map +1 -1
- package/dist/wire/middleware.js +1 -5
- package/dist/wire/middleware.js.map +1 -1
- package/dist/wire/operation.d.ts +12 -74
- package/dist/wire/operation.d.ts.map +1 -1
- package/dist/wire/operation.js +4 -66
- package/dist/wire/operation.js.map +1 -1
- package/dist/wire/signature.d.ts +37 -0
- package/dist/wire/signature.d.ts.map +1 -0
- package/dist/wire/signature.js +2 -0
- package/dist/wire/signature.js.map +1 -0
- package/package.json +3 -3
- package/src/boot/Emissions.ts +22 -119
- package/src/boot/ambient-port.ts +3 -24
- package/src/boot/ambient.als.ts +7 -12
- package/src/boot/ambient.queue.ts +2 -5
- package/src/boot/apply.ts +3 -15
- package/src/boot/auth.ts +6 -16
- package/src/boot/boot.ts +8 -23
- package/src/boot/bootstrap.ts +117 -173
- package/src/boot/card.ts +84 -0
- package/src/boot/frame.ts +31 -65
- package/src/boot/hosted.ts +15 -40
- package/src/boot/ownership.ts +14 -49
- package/src/boot/ports.ts +2 -15
- package/src/boot/remote.ts +11 -58
- package/src/boot/runner.ts +17 -0
- package/src/boot/seed.ts +11 -42
- package/src/boot/statement-drift.ts +10 -28
- package/src/boot/together.ts +38 -72
- package/src/boot/types.ts +36 -180
- package/src/{builtins → builtin}/config.ts +1 -7
- package/src/{builtins → builtin}/logger.ts +6 -39
- package/src/config-loader.ts +12 -71
- package/src/contract.ts +15 -39
- package/src/crypto/encoding.ts +2 -15
- package/src/crypto/node.ts +1 -7
- package/src/crypto/port.ts +2 -18
- package/src/crypto/webcrypto.ts +1 -12
- package/src/{scan/declare.ts → declare.ts} +11 -42
- package/src/define.ts +2 -3
- package/src/descriptor/Fronds.ts +47 -0
- package/src/descriptor/frond.ts +145 -0
- package/src/dispatch/ArgumentResolver.ts +54 -8
- package/src/dispatch/DispatchEvent.ts +2 -2
- package/src/dispatch/DispatchLifecycle.ts +1 -7
- package/src/dispatch/DispatchPort.ts +1 -1
- package/src/dispatch/Dispatcher.ts +3 -3
- package/src/dispatch/HandlerFacade.ts +231 -0
- package/src/dispatch/LocalRoutePolicy.ts +4 -4
- package/src/dispatch/OperationRoute.ts +2 -2
- package/src/dispatch/OutputView.ts +24 -2
- package/src/dispatch/Route.ts +2 -4
- package/src/dispatch/RoutePolicy.ts +1 -1
- package/src/dispatch/RouteRegistry.ts +2 -2
- package/src/dispatch/RouteResolver.ts +2 -4
- package/src/dispatch/StorageGuard.ts +75 -23
- package/src/dispatch/presenterArguments.ts +25 -0
- package/src/dispatch/{RemoteRouteResolver.ts → remoteRoutes.ts} +7 -9
- package/src/dispatch/routeNotFound.ts +33 -0
- package/src/dispatch/validateInput.ts +28 -0
- package/src/effective-operation.ts +60 -37
- package/src/emit.ts +5 -63
- package/src/entry/facade.ts +44 -0
- package/src/entry/transport.ts +16 -0
- package/src/frond-config.ts +8 -71
- package/src/graph.ts +1 -1
- package/src/identity-keys.ts +3 -16
- package/src/identity.ts +12 -80
- package/src/imports.ts +3 -32
- package/src/index.ts +28 -33
- package/src/loader.ts +2 -16
- package/src/node.ts +2 -11
- package/src/prefab/collector.ts +1 -22
- package/src/prefab/crud.ts +51 -90
- package/src/prefab/mirror.ts +9 -49
- package/src/prefab/prefab.ts +2 -21
- package/src/prefab/presenter.ts +2 -36
- package/src/prefab/repository.ts +32 -108
- package/src/scan/adapters.ts +32 -0
- package/src/scan/bundling.ts +1 -12
- package/src/scan/conventions.ts +6 -40
- package/src/scan/emit.ts +7 -43
- package/src/scan/handler-parser.ts +41 -163
- package/src/scan/result.ts +29 -0
- package/src/scan/scanner.ts +40 -138
- package/src/scan/statement.ts +6 -31
- package/src/source.ts +44 -0
- package/src/storage.ts +141 -0
- package/src/store.ts +152 -0
- package/src/verify.ts +19 -60
- package/src/wire/CallLog.ts +30 -0
- package/src/{contract → wire}/Invocation.ts +24 -17
- package/src/{contract → wire}/RouteAddress.ts +10 -0
- package/src/wire/binding.ts +102 -0
- package/src/wire/call.ts +30 -261
- package/src/wire/drift.ts +5 -30
- package/src/wire/errors.ts +4 -24
- package/src/wire/http-error.ts +5 -19
- package/src/wire/loggerMiddleware.ts +2 -8
- package/src/wire/middleware.ts +3 -7
- package/src/wire/operation.ts +13 -110
- package/src/wire/signature.ts +38 -0
- package/dist/boot/HandlerFacade.d.ts.map +0 -1
- package/dist/boot/HandlerFacade.js.map +0 -1
- package/dist/boot/binding.d.ts +0 -60
- package/dist/boot/binding.d.ts.map +0 -1
- package/dist/boot/binding.js.map +0 -1
- package/dist/builtins/config.d.ts +0 -13
- package/dist/builtins/config.d.ts.map +0 -1
- package/dist/builtins/config.js +0 -21
- package/dist/builtins/config.js.map +0 -1
- package/dist/builtins/logger.d.ts.map +0 -1
- package/dist/builtins/logger.js.map +0 -1
- package/dist/contract/Call.d.ts +0 -10
- package/dist/contract/Call.d.ts.map +0 -1
- package/dist/contract/Call.js +0 -15
- package/dist/contract/Call.js.map +0 -1
- package/dist/contract/CallLog.d.ts +0 -57
- package/dist/contract/CallLog.d.ts.map +0 -1
- package/dist/contract/Invocation.d.ts +0 -27
- package/dist/contract/Invocation.d.ts.map +0 -1
- package/dist/contract/Invocation.js +0 -59
- package/dist/contract/Invocation.js.map +0 -1
- package/dist/contract/RouteAddress.d.ts +0 -17
- package/dist/contract/RouteAddress.d.ts.map +0 -1
- package/dist/contract/RouteAddress.js.map +0 -1
- package/dist/dispatch/InputValidator.d.ts +0 -7
- package/dist/dispatch/InputValidator.d.ts.map +0 -1
- package/dist/dispatch/InputValidator.js +0 -22
- package/dist/dispatch/InputValidator.js.map +0 -1
- package/dist/dispatch/OperationExecutor.d.ts +0 -25
- package/dist/dispatch/OperationExecutor.d.ts.map +0 -1
- package/dist/dispatch/OperationExecutor.js +0 -32
- package/dist/dispatch/OperationExecutor.js.map +0 -1
- package/dist/dispatch/OutputProjector.d.ts +0 -12
- package/dist/dispatch/OutputProjector.d.ts.map +0 -1
- package/dist/dispatch/OutputProjector.js +0 -30
- package/dist/dispatch/OutputProjector.js.map +0 -1
- package/dist/dispatch/PresenterArgumentResolver.d.ts +0 -12
- package/dist/dispatch/PresenterArgumentResolver.d.ts.map +0 -1
- package/dist/dispatch/PresenterArgumentResolver.js +0 -20
- package/dist/dispatch/PresenterArgumentResolver.js.map +0 -1
- package/dist/dispatch/RemoteRouteResolver.d.ts +0 -13
- package/dist/dispatch/RemoteRouteResolver.d.ts.map +0 -1
- package/dist/dispatch/RemoteRouteResolver.js.map +0 -1
- package/dist/dispatch/RouteNotFoundError.d.ts +0 -10
- package/dist/dispatch/RouteNotFoundError.d.ts.map +0 -1
- package/dist/dispatch/RouteNotFoundError.js +0 -24
- package/dist/dispatch/RouteNotFoundError.js.map +0 -1
- package/dist/entry/DynamicFacade.d.ts +0 -10
- package/dist/entry/DynamicFacade.d.ts.map +0 -1
- package/dist/entry/DynamicFacade.js +0 -27
- package/dist/entry/DynamicFacade.js.map +0 -1
- package/dist/entry/FacadeEntry.d.ts +0 -11
- package/dist/entry/FacadeEntry.d.ts.map +0 -1
- package/dist/entry/FacadeEntry.js +0 -26
- package/dist/entry/FacadeEntry.js.map +0 -1
- package/dist/entry/TransportEntry.d.ts +0 -13
- package/dist/entry/TransportEntry.d.ts.map +0 -1
- package/dist/entry/TransportEntry.js +0 -24
- package/dist/entry/TransportEntry.js.map +0 -1
- package/dist/orm.d.ts +0 -207
- package/dist/orm.d.ts.map +0 -1
- package/dist/orm.js +0 -66
- package/dist/orm.js.map +0 -1
- package/dist/scan/Fronds.d.ts +0 -45
- package/dist/scan/Fronds.d.ts.map +0 -1
- package/dist/scan/Fronds.js +0 -66
- package/dist/scan/Fronds.js.map +0 -1
- package/dist/scan/declare.d.ts +0 -71
- package/dist/scan/declare.d.ts.map +0 -1
- package/dist/scan/declare.js.map +0 -1
- package/dist/scan/frond.d.ts +0 -224
- package/dist/scan/frond.d.ts.map +0 -1
- package/src/boot/HandlerFacade.ts +0 -242
- package/src/boot/binding.ts +0 -182
- package/src/contract/Call.ts +0 -18
- package/src/contract/CallLog.ts +0 -55
- package/src/dispatch/InputValidator.ts +0 -28
- package/src/dispatch/OperationExecutor.ts +0 -60
- package/src/dispatch/OutputProjector.ts +0 -32
- package/src/dispatch/PresenterArgumentResolver.ts +0 -25
- package/src/dispatch/RouteNotFoundError.ts +0 -29
- package/src/entry/DynamicFacade.ts +0 -28
- package/src/entry/FacadeEntry.ts +0 -32
- package/src/entry/TransportEntry.ts +0 -30
- package/src/orm.ts +0 -252
- package/src/scan/Fronds.ts +0 -73
- package/src/scan/frond.ts +0 -235
- /package/dist/{scan → descriptor}/frond.js +0 -0
- /package/dist/{contract → wire}/CallLog.js +0 -0
|
@@ -1,59 +1,47 @@
|
|
|
1
1
|
import type { Container } from '@fougere/container';
|
|
2
|
-
import type
|
|
2
|
+
import { type AppMiddleware } from '../wire/middleware.js';
|
|
3
3
|
import type { OperationsMap } from '../wire/operation.js';
|
|
4
4
|
import type { EffectiveOperationsMap } from '../effective-operation.js';
|
|
5
|
-
import type
|
|
6
|
-
import type {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export interface Doorway {
|
|
10
|
-
handler: HandlerEntry;
|
|
11
|
-
/** Handlers in the owning frond, used to realize a resolved implementation override. */
|
|
12
|
-
handlers: readonly HandlerEntry[];
|
|
13
|
-
/** The canonical operation table resolved before boot performs any side effect. */
|
|
14
|
-
operations: EffectiveOperationsMap;
|
|
15
|
-
/** The subject — absent is ordinary: a health check owns no row. */
|
|
16
|
-
entity: EntityEntry | undefined;
|
|
17
|
-
/** The scope the handler and its collectors resolve in — a surface gets its own. */
|
|
18
|
-
scope: Container;
|
|
5
|
+
import { type InvocationContext } from '../wire/Invocation.js';
|
|
6
|
+
import type { HandlerEntry, PresenterEntry } from '../descriptor/frond.js';
|
|
7
|
+
/** What boot resolved around one handler, beyond the handler and the scope it resolves in. */
|
|
8
|
+
export interface Door {
|
|
19
9
|
/** The container key this door answers under. */
|
|
20
10
|
key: string;
|
|
21
|
-
}
|
|
22
|
-
/** What the frond and the boot supply to every door alike. */
|
|
23
|
-
export interface Wiring {
|
|
24
11
|
/** The frond this door belongs to — travels on every OperationContext. */
|
|
25
12
|
frond: string;
|
|
26
|
-
/**
|
|
27
|
-
|
|
28
|
-
|
|
13
|
+
/** Handlers in the owning frond, used to realize a resolved implementation override. */
|
|
14
|
+
handlers: readonly HandlerEntry[];
|
|
15
|
+
/** The canonical operation table resolved before boot performs any side effect. */
|
|
16
|
+
operations: EffectiveOperationsMap;
|
|
29
17
|
/** Entity names this frond has a collector for. */
|
|
30
18
|
collectors: Set<string>;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
19
|
+
/** The presenter over this handler's entity, when the frond declares one. */
|
|
20
|
+
presenter: PresenterEntry | undefined;
|
|
21
|
+
/** Presenters live in the frond's own scope, whatever sub-scope this door resolves in. */
|
|
22
|
+
presenterScope: Container;
|
|
23
|
+
/** The middlewares that apply to this address, read at call time and never at boot. */
|
|
24
|
+
middlewares: () => AppMiddleware[];
|
|
35
25
|
}
|
|
36
26
|
/** Adapts one handler door to executable operations. */
|
|
37
27
|
export declare class HandlerFacade {
|
|
28
|
+
private readonly handler;
|
|
29
|
+
private readonly scope;
|
|
38
30
|
private readonly door;
|
|
39
|
-
private readonly wiring;
|
|
40
31
|
/** Rich operation facts shared with check, explain and adapters. */
|
|
41
32
|
readonly effectiveOperations: EffectiveOperationsMap;
|
|
42
33
|
/** Contracts served by this door. */
|
|
43
34
|
readonly contracts: OperationsMap;
|
|
44
|
-
/** The callable surface: op name → the function a caller reaches. */
|
|
45
|
-
readonly ops: Record<string, Function>;
|
|
46
35
|
private readonly cachedViews;
|
|
47
36
|
private instance;
|
|
48
37
|
private readonly implementationKeys;
|
|
49
38
|
private readonly implementationInstances;
|
|
50
|
-
private readonly
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
private
|
|
56
|
-
private inheritsCrud;
|
|
39
|
+
private readonly arguments;
|
|
40
|
+
constructor(handler: HandlerEntry, scope: Container, door: Door);
|
|
41
|
+
/** One operation, through the same ordered boundary steps on every route. */
|
|
42
|
+
execute(op: string, input?: Partial<InvocationContext>): Promise<unknown>;
|
|
43
|
+
/** The computed fields a presenter adds, over the page the façade just projected. */
|
|
44
|
+
private present;
|
|
57
45
|
private get handlerKey();
|
|
58
46
|
private depsOf;
|
|
59
47
|
/** A custom Crud constructor must explicitly receive its repository. */
|
|
@@ -62,11 +50,10 @@ export declare class HandlerFacade {
|
|
|
62
50
|
private viewOf;
|
|
63
51
|
private collectorResolver;
|
|
64
52
|
/** The handler itself, resolved on first call — never at boot. */
|
|
65
|
-
private
|
|
53
|
+
private resolveHandler;
|
|
66
54
|
private isBaseImplementation;
|
|
67
55
|
/** The exact handler entry the pure model selected; no name-only retry or fallback. */
|
|
68
56
|
private implementationHandler;
|
|
69
|
-
private
|
|
70
|
-
private wrap;
|
|
57
|
+
private resolveImplementation;
|
|
71
58
|
}
|
|
72
59
|
//# sourceMappingURL=HandlerFacade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HandlerFacade.d.ts","sourceRoot":"","sources":["../../src/dispatch/HandlerFacade.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAsB,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAO3E,8FAA8F;AAC9F,MAAM,WAAW,IAAI;IACnB,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,mFAAmF;IACnF,UAAU,EAAE,sBAAsB,CAAC;IACnC,mDAAmD;IACnD,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,6EAA6E;IAC7E,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,0FAA0F;IAC1F,cAAc,EAAE,SAAS,CAAC;IAC1B,uFAAuF;IACvF,WAAW,EAAE,MAAM,aAAa,EAAE,CAAC;CACpC;AAED,wDAAwD;AACxD,qBAAa,aAAa;IAetB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAhBvB,oEAAoE;IACpE,QAAQ,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;IACrD,qCAAqC;IACrC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAElC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;IAC7D,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6B;IAChE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAExB;gBAGiB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,IAAI;IAyB7B,6EAA6E;IACvE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAoC/E,qFAAqF;IACrF,OAAO,CAAC,OAAO;IAkBf,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,MAAM;IASd,wEAAwE;IACxE,OAAO,CAAC,2BAA2B;IAWnC,oEAAoE;IACpE,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,iBAAiB,CAGvB;IAEF,kEAAkE;IAClE,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,oBAAoB;IAM5B,uFAAuF;IACvF,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,qBAAqB;CAgB9B"}
|
|
@@ -1,39 +1,34 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { runMiddlewares, } from '../wire/middleware.js';
|
|
2
2
|
import { collectorKeyOf } from '../prefab/collector.js';
|
|
3
|
+
import { inheritsCrud, subjectOf } from '../prefab/crud.js';
|
|
3
4
|
import { presenterKeyOf } from '../prefab/presenter.js';
|
|
4
5
|
import { repositoryKeyOf } from '../prefab/repository.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { PresenterExecutor } from '../dispatch/PresenterExecutor.js';
|
|
12
|
-
import { PresenterArgumentResolver } from '../dispatch/PresenterArgumentResolver.js';
|
|
6
|
+
import { canonicalInvocation } from '../wire/Invocation.js';
|
|
7
|
+
import { ArgumentResolver } from './ArgumentResolver.js';
|
|
8
|
+
import { OutputView } from './OutputView.js';
|
|
9
|
+
import { PresenterExecutor } from './PresenterExecutor.js';
|
|
10
|
+
import { presenterArguments } from './presenterArguments.js';
|
|
11
|
+
import { validateInput } from './validateInput.js';
|
|
13
12
|
/** Adapts one handler door to executable operations. */
|
|
14
13
|
export class HandlerFacade {
|
|
14
|
+
handler;
|
|
15
|
+
scope;
|
|
15
16
|
door;
|
|
16
|
-
wiring;
|
|
17
17
|
/** Rich operation facts shared with check, explain and adapters. */
|
|
18
18
|
effectiveOperations;
|
|
19
19
|
/** Contracts served by this door. */
|
|
20
20
|
contracts;
|
|
21
|
-
/** The callable surface: op name → the function a caller reaches. */
|
|
22
|
-
ops = {};
|
|
23
21
|
cachedViews = new Map();
|
|
24
22
|
instance;
|
|
25
23
|
implementationKeys = new Map();
|
|
26
24
|
implementationInstances = new Map();
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
arguments = new ArgumentResolver((typeName) => this.collectorResolver(typeName));
|
|
26
|
+
constructor(handler, scope, door) {
|
|
27
|
+
this.handler = handler;
|
|
28
|
+
this.scope = scope;
|
|
31
29
|
this.door = door;
|
|
32
|
-
this.wiring = wiring;
|
|
33
|
-
const { handler, entity } = door;
|
|
34
|
-
this.presenterArguments = new PresenterArgumentResolver(this.argumentResolver, wiring.collectors);
|
|
35
30
|
this.refuseCrudWithoutRepository(handler);
|
|
36
|
-
|
|
31
|
+
scope.register(this.handlerKey, handler.ctor, { deps: this.depsOf(handler) });
|
|
37
32
|
this.effectiveOperations = door.operations;
|
|
38
33
|
this.contracts = new Map([...door.operations].map(([name, operation]) => [name, operation]));
|
|
39
34
|
handler.operations = this.contracts;
|
|
@@ -45,29 +40,47 @@ export class HandlerFacade {
|
|
|
45
40
|
this.refuseCrudWithoutRepository(implementation);
|
|
46
41
|
const key = `${this.handlerKey}:implementation:${operation.implementation.className}`;
|
|
47
42
|
if (!this.implementationKeys.has(operation.implementation.className)) {
|
|
48
|
-
|
|
43
|
+
scope.register(key, implementation.ctor, { deps: this.depsOf(implementation) });
|
|
49
44
|
this.implementationKeys.set(operation.implementation.className, key);
|
|
50
45
|
}
|
|
51
46
|
}
|
|
52
|
-
// Emissions use the same contracts and execution path as direct calls.
|
|
53
|
-
wiring.emissions.note(this.contracts, door.key);
|
|
54
|
-
// Only declared operations become callable façade members.
|
|
55
|
-
for (const op of this.contracts.keys())
|
|
56
|
-
this.ops[op] = this.wrap(op);
|
|
57
|
-
if (this.inheritsCrud(handler) && !entity) {
|
|
58
|
-
// An installed Crud subject may be absent from the local scan.
|
|
59
|
-
wiring.log.debug(`${handler.ctor.name} extends Crud() and no scanned entity is named `
|
|
60
|
-
+ `'${this.subjectOf(handler)}' — installed entity, or a missing one: no ORM will be injected`);
|
|
61
|
-
}
|
|
62
47
|
}
|
|
63
|
-
/**
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
48
|
+
/** One operation, through the same ordered boundary steps on every route. */
|
|
49
|
+
async execute(op, input) {
|
|
50
|
+
const entity = this.handler.address;
|
|
51
|
+
const contract = this.contracts.get(op);
|
|
52
|
+
if (!contract) {
|
|
53
|
+
throw new Error(`${entity} serves no operation '${op}'. `
|
|
54
|
+
+ `It serves ${[...this.contracts.keys()].join(', ')}.`);
|
|
55
|
+
}
|
|
56
|
+
const invocation = canonicalInvocation(input);
|
|
57
|
+
const context = {
|
|
58
|
+
entity,
|
|
59
|
+
frond: this.door.frond,
|
|
60
|
+
operation: op,
|
|
61
|
+
args: [],
|
|
62
|
+
state: invocation.state,
|
|
63
|
+
invocation,
|
|
64
|
+
};
|
|
65
|
+
return runMiddlewares(this.door.middlewares(), context, async () => {
|
|
66
|
+
const validated = validateInput(contract.input, invocation, entity, op);
|
|
67
|
+
context.invocation = validated;
|
|
68
|
+
const args = contract.binding
|
|
69
|
+
? await this.arguments.resolve(contract.binding, validated)
|
|
70
|
+
: [];
|
|
71
|
+
const { instance, method } = this.resolveImplementation(op);
|
|
72
|
+
const view = this.viewOf(op);
|
|
73
|
+
const output = view.project(await instance[method](...args));
|
|
74
|
+
const { presenter } = this.door;
|
|
75
|
+
return view.closed || !presenter ? output : this.present(op, presenter, output, validated);
|
|
76
|
+
});
|
|
67
77
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
78
|
+
/** The computed fields a presenter adds, over the page the façade just projected. */
|
|
79
|
+
present(op, presenter, output, invocation) {
|
|
80
|
+
const entity = this.handler.address;
|
|
81
|
+
const executor = new PresenterExecutor(this.door.presenterScope.resolve(presenterKeyOf(entity)), presenter.fields, entity, op);
|
|
82
|
+
return presenterArguments(presenter, invocation, this.arguments, this.door.collectors)
|
|
83
|
+
.then((args) => executor.present(output, args));
|
|
71
84
|
}
|
|
72
85
|
get handlerKey() {
|
|
73
86
|
return `_handler:${this.door.key}`;
|
|
@@ -76,12 +89,14 @@ export class HandlerFacade {
|
|
|
76
89
|
const { deps } = handler;
|
|
77
90
|
if (deps.length > 0)
|
|
78
91
|
return deps;
|
|
79
|
-
return
|
|
92
|
+
return inheritsCrud(handler.ctor)
|
|
93
|
+
? [repositoryKeyOf(subjectOf(handler.ctor, handler.address))]
|
|
94
|
+
: [];
|
|
80
95
|
}
|
|
81
96
|
/** A custom Crud constructor must explicitly receive its repository. */
|
|
82
97
|
refuseCrudWithoutRepository(handler) {
|
|
83
|
-
const repoTypeName = repositoryKeyOf(
|
|
84
|
-
if (!
|
|
98
|
+
const repoTypeName = repositoryKeyOf(subjectOf(handler.ctor, handler.address));
|
|
99
|
+
if (!inheritsCrud(handler.ctor) || handler.deps.length === 0 || handler.deps.includes(repoTypeName))
|
|
85
100
|
return;
|
|
86
101
|
throw new Error(`${handler.ctor.name} extends Crud() and declares a constructor, so its storage is no ` +
|
|
87
102
|
`longer injected for it — but it does not take any.\n` +
|
|
@@ -101,22 +116,22 @@ export class HandlerFacade {
|
|
|
101
116
|
}
|
|
102
117
|
collectorResolver = (typeName) => {
|
|
103
118
|
try {
|
|
104
|
-
return this.
|
|
119
|
+
return this.scope.resolve(collectorKeyOf(typeName));
|
|
105
120
|
}
|
|
106
121
|
catch {
|
|
107
122
|
return undefined;
|
|
108
123
|
}
|
|
109
124
|
};
|
|
110
125
|
/** The handler itself, resolved on first call — never at boot. */
|
|
111
|
-
|
|
126
|
+
resolveHandler() {
|
|
112
127
|
if (!this.instance)
|
|
113
|
-
this.instance = this.
|
|
128
|
+
this.instance = this.scope.resolve(this.handlerKey);
|
|
114
129
|
return this.instance;
|
|
115
130
|
}
|
|
116
131
|
isBaseImplementation(operation) {
|
|
117
|
-
return operation.implementation.className === this.
|
|
118
|
-
&& operation.implementation.address === this.
|
|
119
|
-
&& operation.implementation.filePath === this.
|
|
132
|
+
return operation.implementation.className === this.handler.ctor.name
|
|
133
|
+
&& operation.implementation.address === this.handler.address
|
|
134
|
+
&& operation.implementation.filePath === this.handler.filePath;
|
|
120
135
|
}
|
|
121
136
|
/** The exact handler entry the pure model selected; no name-only retry or fallback. */
|
|
122
137
|
implementationHandler(operationName) {
|
|
@@ -130,10 +145,10 @@ export class HandlerFacade {
|
|
|
130
145
|
}
|
|
131
146
|
return matches[0];
|
|
132
147
|
}
|
|
133
|
-
|
|
148
|
+
resolveImplementation(operationName) {
|
|
134
149
|
const operation = this.effectiveOperations.get(operationName);
|
|
135
150
|
if (this.isBaseImplementation(operation)) {
|
|
136
|
-
return { instance: this.
|
|
151
|
+
return { instance: this.resolveHandler(), method: operation.implementation.method };
|
|
137
152
|
}
|
|
138
153
|
const className = operation.implementation.className;
|
|
139
154
|
const key = this.implementationKeys.get(className);
|
|
@@ -141,34 +156,10 @@ export class HandlerFacade {
|
|
|
141
156
|
throw new Error(`No registered implementation for EffectiveOperation '${operation.id}'.`);
|
|
142
157
|
let instance = this.implementationInstances.get(key);
|
|
143
158
|
if (!instance) {
|
|
144
|
-
instance = this.
|
|
159
|
+
instance = this.scope.resolve(key);
|
|
145
160
|
this.implementationInstances.set(key, instance);
|
|
146
161
|
}
|
|
147
162
|
return { instance, method: operation.implementation.method };
|
|
148
163
|
}
|
|
149
|
-
wrap(op) {
|
|
150
|
-
const address = this.door.handler.address;
|
|
151
|
-
const contract = this.contracts.get(op);
|
|
152
|
-
const view = this.viewOf(op);
|
|
153
|
-
const presenter = this.wiring.presenters.get(address);
|
|
154
|
-
const executor = new OperationExecutor({
|
|
155
|
-
entity: address,
|
|
156
|
-
frond: this.wiring.frond,
|
|
157
|
-
operation: op,
|
|
158
|
-
contract,
|
|
159
|
-
middlewares: () => this.wiring.middlewaresFor(address),
|
|
160
|
-
validator: this.inputValidator,
|
|
161
|
-
arguments: this.argumentResolver,
|
|
162
|
-
invoke: async (args) => {
|
|
163
|
-
const implementation = this.resolvedImplementation(op);
|
|
164
|
-
return implementation.instance[implementation.method](...args);
|
|
165
|
-
},
|
|
166
|
-
projector: new OutputProjector(view),
|
|
167
|
-
...(view.closed || !presenter ? {} : {
|
|
168
|
-
present: async (result, effective) => new PresenterExecutor(this.wiring.frondScope.resolve(presenterKeyOf(address)), presenter.fields, address, op).present(result, await this.presenterArguments.resolve(presenter, effective)),
|
|
169
|
-
}),
|
|
170
|
-
});
|
|
171
|
-
return (invocation) => executor.execute(invocation);
|
|
172
|
-
}
|
|
173
164
|
}
|
|
174
165
|
//# sourceMappingURL=HandlerFacade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HandlerFacade.js","sourceRoot":"","sources":["../../src/dispatch/HandlerFacade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalRoutePolicy.d.ts","sourceRoot":"","sources":["../../src/dispatch/LocalRoutePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"LocalRoutePolicy.d.ts","sourceRoot":"","sources":["../../src/dispatch/LocalRoutePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,yEAAyE;AACzE,qBAAa,gBAAiB,YAAW,WAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE;IAExE,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAI9B,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,KAAK,GAAG,SAAS;CAmBlE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ErrorCode, FougereError } from '../wire/errors.js';
|
|
2
|
-
import {
|
|
2
|
+
import { routeNotFound, servedOperations } from './routeNotFound.js';
|
|
3
3
|
/** Incoming calls may execute here but never forward to another host. */
|
|
4
4
|
export class LocalRoutePolicy {
|
|
5
5
|
hostedNames;
|
|
@@ -12,9 +12,9 @@ export class LocalRoutePolicy {
|
|
|
12
12
|
notFound(call, routes) {
|
|
13
13
|
if (call.address.entity === 'rpc')
|
|
14
14
|
return undefined;
|
|
15
|
-
const
|
|
16
|
-
if (
|
|
17
|
-
return
|
|
15
|
+
const served = servedOperations(call, routes, this);
|
|
16
|
+
if (served.length > 0)
|
|
17
|
+
return routeNotFound(call, served);
|
|
18
18
|
const hosted = this.hostedNames(call.address.surface);
|
|
19
19
|
const entity = call.address.entity;
|
|
20
20
|
const surface = call.address.surface;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalRoutePolicy.js","sourceRoot":"","sources":["../../src/dispatch/LocalRoutePolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"LocalRoutePolicy.js","sourceRoot":"","sources":["../../src/dispatch/LocalRoutePolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAErE,yEAAyE;AACzE,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,WAA2C;QAA3C,gBAAW,GAAX,WAAW,CAAgC;IAAG,CAAC;IAE5E,OAAO,CAAC,KAAY;QAClB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;IACjC,CAAC;IAED,QAAQ,CAAC,IAAU,EAAE,MAAwB;QAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK;YAAE,OAAO,SAAS,CAAC;QAEpD,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,OAAO,IAAI,YAAY,CAAC;YACtB,IAAI,EAAE,SAAS,CAAC,SAAS;YACzB,OAAO,EAAE,CAAC,OAAO;gBACf,CAAC,CAAC,WAAW,MAAM,+BAA+B,OAAO,GAAG;gBAC5D,CAAC,CAAC,WAAW,MAAM,sBAAsB,CAAC;kBACxC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B,CAAC;YAC5F,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;SAClC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Call } from '../
|
|
2
|
-
import type { RouteAddress } from '../
|
|
1
|
+
import type { Call } from '../wire/call.js';
|
|
2
|
+
import type { RouteAddress } from '../wire/RouteAddress.js';
|
|
3
3
|
import type { Route } from './Route.js';
|
|
4
4
|
export type RouteExecution = (call: Call) => unknown | Promise<unknown>;
|
|
5
5
|
/** One executable route, distinguished by its routing kind. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperationRoute.d.ts","sourceRoot":"","sources":["../../src/dispatch/OperationRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"OperationRoute.d.ts","sourceRoot":"","sources":["../../src/dispatch/OperationRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAExE,+DAA+D;AAC/D,qBAAa,cAAe,YAAW,KAAK;IAExC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,YAAY;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFjB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EACnB,OAAO,EAAE,YAAY,EACb,SAAS,EAAE,cAAc;IAGtC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;CAG5C"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type
|
|
2
|
-
/**
|
|
1
|
+
import { type Fields } from '@fougere/schema';
|
|
2
|
+
/** What one operation result may show. One of the two exits a validator watches. */
|
|
3
3
|
export declare class OutputView {
|
|
4
4
|
readonly fields: Fields;
|
|
5
5
|
readonly closed: boolean;
|
|
6
6
|
constructor(fields: Fields, closed?: boolean);
|
|
7
|
+
project(result: unknown): unknown;
|
|
7
8
|
}
|
|
8
9
|
//# sourceMappingURL=OutputView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputView.d.ts","sourceRoot":"","sources":["../../src/dispatch/OutputView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"OutputView.d.ts","sourceRoot":"","sources":["../../src/dispatch/OutputView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG1D,oFAAoF;AACpF,qBAAa,UAAU;IAEnB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,MAAM,EACd,MAAM,UAAQ;IAGzB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;CAoBlC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { Visibility } from '@fougere/schema';
|
|
2
|
+
import { preserveArrayProperties } from './ArrayResult.js';
|
|
3
|
+
/** What one operation result may show. One of the two exits a validator watches. */
|
|
2
4
|
export class OutputView {
|
|
3
5
|
fields;
|
|
4
6
|
closed;
|
|
@@ -6,5 +8,21 @@ export class OutputView {
|
|
|
6
8
|
this.fields = fields;
|
|
7
9
|
this.closed = closed;
|
|
8
10
|
}
|
|
11
|
+
project(result) {
|
|
12
|
+
if (result === null || result === undefined)
|
|
13
|
+
return result;
|
|
14
|
+
if (Array.isArray(result)) {
|
|
15
|
+
return preserveArrayProperties(result, result.map((item) => this.project(item)));
|
|
16
|
+
}
|
|
17
|
+
if (typeof result !== 'object')
|
|
18
|
+
return result;
|
|
19
|
+
const record = result;
|
|
20
|
+
const scoped = this.closed
|
|
21
|
+
? Object.fromEntries(Object.keys(this.fields)
|
|
22
|
+
.filter((key) => key in record)
|
|
23
|
+
.map((key) => [key, record[key]]))
|
|
24
|
+
: record;
|
|
25
|
+
return Visibility.of(this.fields).encode(scoped);
|
|
26
|
+
}
|
|
9
27
|
}
|
|
10
28
|
//# sourceMappingURL=OutputView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputView.js","sourceRoot":"","sources":["../../src/dispatch/OutputView.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OutputView.js","sourceRoot":"","sources":["../../src/dispatch/OutputView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,oFAAoF;AACpF,MAAM,OAAO,UAAU;IAEV;IACA;IAFX,YACW,MAAc,EACd,SAAS,KAAK;QADd,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;IACtB,CAAC;IAEJ,OAAO,CAAC,MAAe;QACrB,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAE3D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC;QAE9C,MAAM,MAAM,GAAG,MAAiC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;YACxB,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;iBACrB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC;iBAC9B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CACpC;YACH,CAAC,CAAC,MAAM,CAAC;QAEX,OAAO,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;CACF"}
|
package/dist/dispatch/Route.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { Call } from '../
|
|
2
|
-
import type { RouteAddress } from '../
|
|
3
|
-
export type RouteKind = 'local' | 'remote' | 'system';
|
|
1
|
+
import type { Call } from '../wire/call.js';
|
|
2
|
+
import type { RouteAddress, RouteKind } from '../wire/RouteAddress.js';
|
|
4
3
|
/** Executable destination known by the dispatcher. */
|
|
5
4
|
export interface Route {
|
|
6
5
|
readonly kind: RouteKind;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../src/dispatch/Route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../src/dispatch/Route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEvE,sDAAsD;AACtD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoutePolicy.d.ts","sourceRoot":"","sources":["../../src/dispatch/RoutePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"RoutePolicy.d.ts","sourceRoot":"","sources":["../../src/dispatch/RoutePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAC/B,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,KAAK,GAAG,SAAS,CAAC;CACpE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RouteAddress } from '../
|
|
1
|
+
import { RouteAddress } from '../wire/RouteAddress.js';
|
|
2
2
|
import type { Route } from './Route.js';
|
|
3
3
|
import type { RouteResolver } from './RouteResolver.js';
|
|
4
4
|
/** Exact registry of every operation the application can dispatch. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteRegistry.d.ts","sourceRoot":"","sources":["../../src/dispatch/RouteRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"RouteRegistry.d.ts","sourceRoot":"","sources":["../../src/dispatch/RouteRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,sEAAsE;AACtE,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiD;IAEzE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAW5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAI1C,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,KAAK,GAAG,SAAS;IAWxC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;YAalD,cAAc;IAU5B,MAAM,IAAI,KAAK,EAAE;IAIjB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;CAK3D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RouteAddress } from '../
|
|
1
|
+
import { RouteAddress } from '../wire/RouteAddress.js';
|
|
2
2
|
/** Exact registry of every operation the application can dispatch. */
|
|
3
3
|
export class RouteRegistry {
|
|
4
4
|
byAddress = new Map();
|
|
@@ -42,7 +42,7 @@ export class RouteRegistry {
|
|
|
42
42
|
}
|
|
43
43
|
async resolveUnknown(address) {
|
|
44
44
|
for (const resolver of this.resolvers) {
|
|
45
|
-
const route = await resolver
|
|
45
|
+
const route = await resolver(address);
|
|
46
46
|
if (!route)
|
|
47
47
|
continue;
|
|
48
48
|
this.register(route);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteRegistry.js","sourceRoot":"","sources":["../../src/dispatch/RouteRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"RouteRegistry.js","sourceRoot":"","sources":["../../src/dispatch/RouteRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIvD,sEAAsE;AACtE,MAAM,OAAO,aAAa;IACP,SAAS,GAAG,IAAI,GAAG,EAAiB,CAAC;IACrC,SAAS,GAAoB,EAAE,CAAC;IAChC,OAAO,GAAG,IAAI,GAAG,EAAsC,CAAC;IAEzE,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,uBAAuB,KAAK,CAAC,OAAO,MAAM,QAAQ,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,EAAE,CAC5E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,QAAuB;QACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,OAAqB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAChD,IAAI,KAAK,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAEzD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;YACjD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACV,OAAO,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAqB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAAqB;QAChD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,MAAc,EAAE,OAAgB;QAC7C,OAAO,IAAI,CAAC,MAAM,EAAE;aACjB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC;aACvF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import type { RouteAddress } from '../
|
|
1
|
+
import type { RouteAddress } from '../wire/RouteAddress.js';
|
|
2
2
|
import type { Route } from './Route.js';
|
|
3
3
|
/** Resolves routes that cannot be known when the registry is built. */
|
|
4
|
-
export
|
|
5
|
-
resolve(address: RouteAddress): Route | undefined | Promise<Route | undefined>;
|
|
6
|
-
}
|
|
4
|
+
export type RouteResolver = (address: RouteAddress) => Route | undefined | Promise<Route | undefined>;
|
|
7
5
|
//# sourceMappingURL=RouteResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteResolver.d.ts","sourceRoot":"","sources":["../../src/dispatch/RouteResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"RouteResolver.d.ts","sourceRoot":"","sources":["../../src/dispatch/RouteResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { type Fields } from '@fougere/schema';
|
|
2
|
-
/**
|
|
3
|
-
* Judges storage writes and list options without narrowing the ORM interface.
|
|
4
|
-
*
|
|
5
|
-
* Storage is a way out like the client surface, so what goes to it is judged too — the
|
|
6
|
-
* same rule `OutputProjector` applies on the other exit.
|
|
7
|
-
*/
|
|
2
|
+
/** Judges storage writes and list options without narrowing the storage interface. */
|
|
8
3
|
export declare class StorageGuard {
|
|
9
4
|
private readonly fields;
|
|
10
5
|
private readonly entity;
|
|
11
6
|
constructor(fields: Fields, entity: string);
|
|
12
|
-
guard<T extends object>(
|
|
13
|
-
|
|
7
|
+
guard<T extends object>(storage: T): T;
|
|
8
|
+
/**
|
|
9
|
+
* The values this write carries, validated and handed on PARSED — the rule the client door
|
|
10
|
+
* already holds (`InputValidator`), applied to a write that never passed through it. What a
|
|
11
|
+
* handler is allowed to write is not asked here: only the value is.
|
|
12
|
+
*/
|
|
13
|
+
private rowAt;
|
|
14
|
+
private validated;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=StorageGuard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageGuard.d.ts","sourceRoot":"","sources":["../../src/dispatch/StorageGuard.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"StorageGuard.d.ts","sourceRoot":"","sources":["../../src/dispatch/StorageGuard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAarG,sFAAsF;AACtF,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;IAGjC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;IA8CtC;;;;OAIG;IACH,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,SAAS;CA6ClB"}
|