@fougere/core 0.2.0-alpha.2 → 0.3.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 +2 -1
- package/dist/boot/AppLifecycle.d.ts +18 -0
- package/dist/boot/AppLifecycle.d.ts.map +1 -0
- package/dist/boot/AppLifecycle.js +42 -0
- package/dist/boot/AppLifecycle.js.map +1 -0
- package/dist/boot/Emissions.d.ts +126 -0
- package/dist/boot/Emissions.d.ts.map +1 -0
- package/dist/boot/Emissions.js +233 -0
- package/dist/boot/Emissions.js.map +1 -0
- package/dist/boot/HandlerFacade.d.ts +72 -0
- package/dist/boot/HandlerFacade.d.ts.map +1 -0
- package/dist/boot/HandlerFacade.js +174 -0
- package/dist/boot/HandlerFacade.js.map +1 -0
- package/dist/boot/Lifecycle.d.ts +4 -0
- package/dist/boot/Lifecycle.d.ts.map +1 -0
- package/dist/boot/Lifecycle.js +3 -0
- package/dist/boot/Lifecycle.js.map +1 -0
- package/dist/boot/ambient-port.d.ts +38 -0
- package/dist/boot/ambient-port.d.ts.map +1 -0
- package/dist/boot/ambient-port.js +2 -0
- package/dist/boot/ambient-port.js.map +1 -0
- package/dist/boot/ambient.als.d.ts +3 -0
- package/dist/boot/ambient.als.d.ts.map +1 -0
- package/dist/boot/ambient.als.js +34 -0
- package/dist/boot/ambient.als.js.map +1 -0
- package/dist/boot/ambient.queue.d.ts +10 -0
- package/dist/boot/ambient.queue.d.ts.map +1 -0
- package/dist/boot/ambient.queue.js +60 -0
- package/dist/boot/ambient.queue.js.map +1 -0
- package/dist/boot/apply.d.ts +22 -0
- package/dist/boot/apply.d.ts.map +1 -0
- package/dist/boot/apply.js +48 -0
- package/dist/boot/apply.js.map +1 -0
- package/dist/boot/auth.d.ts +53 -0
- package/dist/boot/auth.d.ts.map +1 -0
- package/dist/boot/auth.js +2 -0
- package/dist/boot/auth.js.map +1 -0
- package/dist/{binding.d.ts → boot/binding.d.ts} +14 -17
- package/dist/boot/binding.d.ts.map +1 -0
- package/dist/{binding.js → boot/binding.js} +19 -10
- package/dist/boot/binding.js.map +1 -0
- package/dist/{boot.d.ts → boot/boot.d.ts} +25 -5
- package/dist/boot/boot.d.ts.map +1 -0
- package/dist/boot/boot.js +70 -0
- package/dist/boot/boot.js.map +1 -0
- package/dist/boot/bootstrap.d.ts.map +1 -0
- package/dist/boot/bootstrap.js +721 -0
- package/dist/boot/bootstrap.js.map +1 -0
- package/dist/boot/egress.d.ts +8 -0
- package/dist/boot/egress.d.ts.map +1 -0
- package/dist/boot/egress.js +11 -0
- package/dist/boot/egress.js.map +1 -0
- package/dist/boot/frame.d.ts +44 -0
- package/dist/boot/frame.d.ts.map +1 -0
- package/dist/boot/frame.js +181 -0
- package/dist/boot/frame.js.map +1 -0
- package/dist/boot/ownership.d.ts +42 -0
- package/dist/boot/ownership.d.ts.map +1 -0
- package/dist/boot/ownership.js +127 -0
- package/dist/boot/ownership.js.map +1 -0
- package/dist/boot/ports.d.ts +17 -0
- package/dist/boot/ports.d.ts.map +1 -0
- package/dist/boot/ports.js +57 -0
- package/dist/boot/ports.js.map +1 -0
- package/dist/{remote.d.ts → boot/remote.d.ts} +11 -3
- package/dist/boot/remote.d.ts.map +1 -0
- package/dist/{remote.js → boot/remote.js} +24 -26
- package/dist/boot/remote.js.map +1 -0
- package/dist/{seed.d.ts → boot/seed.d.ts} +13 -1
- package/dist/boot/seed.d.ts.map +1 -0
- package/dist/{seed.js → boot/seed.js} +24 -3
- package/dist/boot/seed.js.map +1 -0
- package/dist/boot/together.d.ts +26 -0
- package/dist/boot/together.d.ts.map +1 -0
- package/dist/boot/together.js +163 -0
- package/dist/boot/together.js.map +1 -0
- package/dist/boot/types.d.ts +260 -0
- package/dist/boot/types.d.ts.map +1 -0
- package/dist/boot/types.js.map +1 -0
- package/dist/builtins/config.d.ts +9 -0
- package/dist/builtins/config.d.ts.map +1 -1
- package/dist/builtins/config.js +16 -1
- package/dist/builtins/config.js.map +1 -1
- package/dist/builtins/logger.d.ts +37 -4
- package/dist/builtins/logger.d.ts.map +1 -1
- package/dist/builtins/logger.js +66 -7
- package/dist/builtins/logger.js.map +1 -1
- package/dist/config-loader.d.ts +39 -35
- package/dist/config-loader.d.ts.map +1 -1
- package/dist/config-loader.js +15 -54
- package/dist/config-loader.js.map +1 -1
- package/dist/contract/Call.d.ts +10 -0
- package/dist/contract/Call.d.ts.map +1 -0
- package/dist/contract/Call.js +15 -0
- package/dist/contract/Call.js.map +1 -0
- package/dist/contract/Invocation.d.ts +27 -0
- package/dist/contract/Invocation.d.ts.map +1 -0
- package/dist/contract/Invocation.js +59 -0
- package/dist/contract/Invocation.js.map +1 -0
- package/dist/contract/RouteAddress.d.ts +17 -0
- package/dist/contract/RouteAddress.d.ts.map +1 -0
- package/dist/contract/RouteAddress.js +38 -0
- package/dist/contract/RouteAddress.js.map +1 -0
- package/dist/contract.d.ts +25 -19
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +25 -10
- package/dist/contract.js.map +1 -1
- package/dist/crypto/encoding.d.ts +25 -0
- package/dist/crypto/encoding.d.ts.map +1 -0
- package/dist/crypto/encoding.js +58 -0
- package/dist/crypto/encoding.js.map +1 -0
- package/dist/crypto/node.d.ts +4 -0
- package/dist/crypto/node.d.ts.map +1 -0
- package/dist/crypto/node.js +25 -0
- package/dist/crypto/node.js.map +1 -0
- package/dist/crypto/port.d.ts +42 -0
- package/dist/crypto/port.d.ts.map +1 -0
- package/dist/crypto/port.js +19 -0
- package/dist/crypto/port.js.map +1 -0
- package/dist/crypto/webcrypto.d.ts +4 -0
- package/dist/crypto/webcrypto.d.ts.map +1 -0
- package/dist/crypto/webcrypto.js +34 -0
- package/dist/crypto/webcrypto.js.map +1 -0
- package/dist/dispatch/ArgumentResolver.d.ts +10 -0
- package/dist/dispatch/ArgumentResolver.d.ts.map +1 -0
- package/dist/dispatch/ArgumentResolver.js +12 -0
- package/dist/dispatch/ArgumentResolver.js.map +1 -0
- package/dist/dispatch/ArrayResult.d.ts +3 -0
- package/dist/dispatch/ArrayResult.d.ts.map +1 -0
- package/dist/dispatch/ArrayResult.js +11 -0
- package/dist/dispatch/ArrayResult.js.map +1 -0
- package/dist/dispatch/DispatchEvent.d.ts +18 -0
- package/dist/dispatch/DispatchEvent.d.ts.map +1 -0
- package/dist/dispatch/DispatchEvent.js +30 -0
- package/dist/dispatch/DispatchEvent.js.map +1 -0
- package/dist/dispatch/DispatchLifecycle.d.ts +9 -0
- package/dist/dispatch/DispatchLifecycle.d.ts.map +1 -0
- package/dist/dispatch/DispatchLifecycle.js +25 -0
- package/dist/dispatch/DispatchLifecycle.js.map +1 -0
- package/dist/dispatch/DispatchPort.d.ts +6 -0
- package/dist/dispatch/DispatchPort.d.ts.map +1 -0
- package/dist/dispatch/DispatchPort.js +2 -0
- package/dist/dispatch/DispatchPort.js.map +1 -0
- package/dist/dispatch/Dispatcher.d.ts +16 -0
- package/dist/dispatch/Dispatcher.d.ts.map +1 -0
- package/dist/dispatch/Dispatcher.js +44 -0
- package/dist/dispatch/Dispatcher.js.map +1 -0
- package/dist/dispatch/InFlight.d.ts +12 -0
- package/dist/dispatch/InFlight.d.ts.map +1 -0
- package/dist/dispatch/InFlight.js +46 -0
- package/dist/dispatch/InFlight.js.map +1 -0
- package/dist/dispatch/InputValidator.d.ts +7 -0
- package/dist/dispatch/InputValidator.d.ts.map +1 -0
- package/dist/dispatch/InputValidator.js +21 -0
- package/dist/dispatch/InputValidator.js.map +1 -0
- package/dist/dispatch/LocalRoutePolicy.d.ts +11 -0
- package/dist/dispatch/LocalRoutePolicy.d.ts.map +1 -0
- package/dist/dispatch/LocalRoutePolicy.js +32 -0
- package/dist/dispatch/LocalRoutePolicy.js.map +1 -0
- package/dist/dispatch/OperationExecutor.d.ts +25 -0
- package/dist/dispatch/OperationExecutor.d.ts.map +1 -0
- package/dist/dispatch/OperationExecutor.js +32 -0
- package/dist/dispatch/OperationExecutor.js.map +1 -0
- package/dist/dispatch/OperationRoute.d.ts +13 -0
- package/dist/dispatch/OperationRoute.d.ts.map +1 -0
- package/dist/dispatch/OperationRoute.js +15 -0
- package/dist/dispatch/OperationRoute.js.map +1 -0
- package/dist/dispatch/OutputProjector.d.ts +12 -0
- package/dist/dispatch/OutputProjector.d.ts.map +1 -0
- package/dist/dispatch/OutputProjector.js +30 -0
- package/dist/dispatch/OutputProjector.js.map +1 -0
- package/dist/dispatch/OutputView.d.ts +8 -0
- package/dist/dispatch/OutputView.d.ts.map +1 -0
- package/dist/dispatch/OutputView.js +10 -0
- package/dist/dispatch/OutputView.js.map +1 -0
- package/dist/dispatch/PresenterArgumentResolver.d.ts +12 -0
- package/dist/dispatch/PresenterArgumentResolver.d.ts.map +1 -0
- package/dist/dispatch/PresenterArgumentResolver.js +20 -0
- package/dist/dispatch/PresenterArgumentResolver.js.map +1 -0
- package/dist/dispatch/PresenterExecutor.d.ts +11 -0
- package/dist/dispatch/PresenterExecutor.d.ts.map +1 -0
- package/dist/dispatch/PresenterExecutor.js +56 -0
- package/dist/dispatch/PresenterExecutor.js.map +1 -0
- package/dist/dispatch/RemoteRouteResolver.d.ts +13 -0
- package/dist/dispatch/RemoteRouteResolver.d.ts.map +1 -0
- package/dist/dispatch/RemoteRouteResolver.js +18 -0
- package/dist/dispatch/RemoteRouteResolver.js.map +1 -0
- package/dist/dispatch/Route.d.ts +10 -0
- package/dist/dispatch/Route.d.ts.map +1 -0
- package/dist/dispatch/Route.js +2 -0
- package/dist/dispatch/Route.js.map +1 -0
- package/dist/dispatch/RouteNotFoundError.d.ts +10 -0
- package/dist/dispatch/RouteNotFoundError.d.ts.map +1 -0
- package/dist/dispatch/RouteNotFoundError.js +24 -0
- package/dist/dispatch/RouteNotFoundError.js.map +1 -0
- package/dist/dispatch/RoutePolicy.d.ts +8 -0
- package/dist/dispatch/RoutePolicy.d.ts.map +1 -0
- package/dist/dispatch/RoutePolicy.js +2 -0
- package/dist/dispatch/RoutePolicy.js.map +1 -0
- package/dist/dispatch/RouteRegistry.d.ts +18 -0
- package/dist/dispatch/RouteRegistry.d.ts.map +1 -0
- package/dist/dispatch/RouteRegistry.js +62 -0
- package/dist/dispatch/RouteRegistry.js.map +1 -0
- package/dist/dispatch/RouteResolver.d.ts +7 -0
- package/dist/dispatch/RouteResolver.d.ts.map +1 -0
- package/dist/dispatch/RouteResolver.js +2 -0
- package/dist/dispatch/RouteResolver.js.map +1 -0
- package/dist/dispatch/StorageGuard.d.ts +15 -0
- package/dist/dispatch/StorageGuard.d.ts.map +1 -0
- package/dist/dispatch/StorageGuard.js +63 -0
- package/dist/dispatch/StorageGuard.js.map +1 -0
- package/dist/effective-operation.d.ts +90 -0
- package/dist/effective-operation.d.ts.map +1 -0
- package/dist/effective-operation.js +450 -0
- package/dist/effective-operation.js.map +1 -0
- package/dist/emit.js +2 -2
- package/dist/emit.js.map +1 -1
- package/dist/entry/DynamicFacade.d.ts +10 -0
- package/dist/entry/DynamicFacade.d.ts.map +1 -0
- package/dist/entry/DynamicFacade.js +27 -0
- package/dist/entry/DynamicFacade.js.map +1 -0
- package/dist/entry/FacadeEntry.d.ts +11 -0
- package/dist/entry/FacadeEntry.d.ts.map +1 -0
- package/dist/entry/FacadeEntry.js +26 -0
- package/dist/entry/FacadeEntry.js.map +1 -0
- package/dist/entry/TransportEntry.d.ts +13 -0
- package/dist/entry/TransportEntry.d.ts.map +1 -0
- package/dist/entry/TransportEntry.js +24 -0
- package/dist/entry/TransportEntry.js.map +1 -0
- package/dist/frond-config.d.ts +24 -7
- package/dist/frond-config.d.ts.map +1 -1
- 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/graph.js +3 -2
- package/dist/graph.js.map +1 -1
- package/dist/identity-keys.d.ts +14 -0
- package/dist/identity-keys.d.ts.map +1 -0
- package/dist/identity-keys.js +37 -0
- package/dist/identity-keys.js.map +1 -0
- package/dist/identity.d.ts +58 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +182 -0
- package/dist/identity.js.map +1 -0
- package/dist/imports.d.ts +1 -1
- package/dist/imports.d.ts.map +1 -1
- package/dist/imports.js +7 -3
- package/dist/imports.js.map +1 -1
- package/dist/index.d.ts +57 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -32
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +16 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +25 -0
- package/dist/loader.js.map +1 -0
- package/dist/node.d.ts +21 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +24 -0
- package/dist/node.js.map +1 -0
- package/dist/orm.d.ts +69 -8
- package/dist/orm.d.ts.map +1 -1
- package/dist/orm.js +35 -2
- package/dist/orm.js.map +1 -1
- package/dist/prefab/collector.d.ts +29 -0
- package/dist/prefab/collector.d.ts.map +1 -0
- package/dist/prefab/collector.js +34 -0
- package/dist/prefab/collector.js.map +1 -0
- package/dist/{crud.d.ts → prefab/crud.d.ts} +7 -8
- package/dist/prefab/crud.d.ts.map +1 -0
- package/dist/{crud.js → prefab/crud.js} +39 -5
- package/dist/prefab/crud.js.map +1 -0
- package/dist/prefab/mirror.d.ts +52 -0
- package/dist/prefab/mirror.d.ts.map +1 -0
- package/dist/prefab/mirror.js +66 -0
- package/dist/prefab/mirror.js.map +1 -0
- package/dist/prefab/prefab.d.ts +15 -0
- package/dist/prefab/prefab.d.ts.map +1 -0
- package/dist/prefab/prefab.js +19 -0
- package/dist/prefab/prefab.js.map +1 -0
- package/dist/{presenter.d.ts → prefab/presenter.d.ts} +6 -17
- package/dist/prefab/presenter.d.ts.map +1 -0
- package/dist/{presenter.js → prefab/presenter.js} +5 -23
- package/dist/prefab/presenter.js.map +1 -0
- package/dist/prefab/repository.d.ts +104 -0
- package/dist/prefab/repository.d.ts.map +1 -0
- package/dist/prefab/repository.js +62 -0
- package/dist/prefab/repository.js.map +1 -0
- package/dist/scan/Fronds.d.ts +45 -0
- package/dist/scan/Fronds.d.ts.map +1 -0
- package/dist/scan/Fronds.js +66 -0
- package/dist/scan/Fronds.js.map +1 -0
- package/dist/scan/conventions.d.ts +74 -0
- package/dist/scan/conventions.d.ts.map +1 -0
- package/dist/scan/conventions.js +82 -0
- package/dist/scan/conventions.js.map +1 -0
- package/dist/scan/emit.d.ts +14 -0
- package/dist/scan/emit.d.ts.map +1 -0
- package/dist/scan/emit.js +211 -0
- package/dist/scan/emit.js.map +1 -0
- package/dist/scan/frond.d.ts +224 -0
- package/dist/scan/frond.d.ts.map +1 -0
- package/dist/scan/frond.js +2 -0
- package/dist/scan/frond.js.map +1 -0
- package/dist/{handler-parser.d.ts → scan/handler-parser.d.ts} +18 -9
- package/dist/scan/handler-parser.d.ts.map +1 -0
- package/dist/scan/handler-parser.js +625 -0
- package/dist/scan/handler-parser.js.map +1 -0
- package/dist/scan/scan-cache.d.ts +16 -0
- package/dist/scan/scan-cache.d.ts.map +1 -0
- package/dist/{scan-cache.js → scan/scan-cache.js} +27 -20
- package/dist/scan/scan-cache.js.map +1 -0
- package/dist/scan/scanner.d.ts +20 -0
- package/dist/scan/scanner.d.ts.map +1 -0
- package/dist/{scanner.js → scan/scanner.js} +185 -167
- package/dist/scan/scanner.js.map +1 -0
- package/dist/verify.d.ts +16 -3
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +21 -18
- package/dist/verify.js.map +1 -1
- package/dist/{call.d.ts → wire/call.d.ts} +70 -1
- package/dist/wire/call.d.ts.map +1 -0
- package/dist/{call.js → wire/call.js} +48 -75
- package/dist/wire/call.js.map +1 -0
- package/dist/{middleware.d.ts → wire/errors.d.ts} +18 -19
- package/dist/wire/errors.d.ts.map +1 -0
- package/dist/{middleware.js → wire/errors.js} +26 -14
- package/dist/wire/errors.js.map +1 -0
- package/dist/{errors.d.ts → wire/http-error.d.ts} +5 -6
- package/dist/wire/http-error.d.ts.map +1 -0
- package/dist/{errors.js → wire/http-error.js} +7 -6
- package/dist/wire/http-error.js.map +1 -0
- package/dist/wire/invocation.d.ts +4 -0
- package/dist/wire/invocation.d.ts.map +1 -0
- package/dist/wire/invocation.js +3 -0
- package/dist/wire/invocation.js.map +1 -0
- package/dist/{middleware/logger.d.ts → wire/loggerMiddleware.d.ts} +3 -3
- package/dist/wire/loggerMiddleware.d.ts.map +1 -0
- package/dist/{middleware/logger.js → wire/loggerMiddleware.js} +2 -2
- package/dist/wire/loggerMiddleware.js.map +1 -0
- package/dist/wire/middleware.d.ts +29 -0
- package/dist/wire/middleware.d.ts.map +1 -0
- package/dist/wire/middleware.js +20 -0
- package/dist/wire/middleware.js.map +1 -0
- package/dist/{operation.d.ts → wire/operation.d.ts} +39 -10
- package/dist/wire/operation.d.ts.map +1 -0
- package/dist/wire/operation.js +167 -0
- package/dist/wire/operation.js.map +1 -0
- package/package.json +24 -7
- package/dist/binding.d.ts.map +0 -1
- package/dist/binding.js.map +0 -1
- package/dist/boot.d.ts.map +0 -1
- package/dist/boot.js +0 -53
- package/dist/boot.js.map +0 -1
- package/dist/bootstrap.d.ts.map +0 -1
- package/dist/bootstrap.js +0 -879
- package/dist/bootstrap.js.map +0 -1
- package/dist/call.d.ts.map +0 -1
- package/dist/call.js.map +0 -1
- package/dist/collector.d.ts +0 -28
- package/dist/collector.d.ts.map +0 -1
- package/dist/collector.js +0 -32
- package/dist/collector.js.map +0 -1
- package/dist/crud.d.ts.map +0 -1
- package/dist/crud.js.map +0 -1
- package/dist/egress.d.ts +0 -52
- package/dist/egress.d.ts.map +0 -1
- package/dist/egress.js +0 -186
- package/dist/egress.js.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/handler-parser.d.ts.map +0 -1
- package/dist/handler-parser.js +0 -505
- package/dist/handler-parser.js.map +0 -1
- package/dist/invocation.d.ts +0 -20
- package/dist/invocation.d.ts.map +0 -1
- package/dist/invocation.js +0 -15
- package/dist/invocation.js.map +0 -1
- package/dist/middleware/error-handler.d.ts +0 -15
- package/dist/middleware/error-handler.d.ts.map +0 -1
- package/dist/middleware/error-handler.js +0 -29
- package/dist/middleware/error-handler.js.map +0 -1
- package/dist/middleware/logger.d.ts.map +0 -1
- package/dist/middleware/logger.js.map +0 -1
- package/dist/middleware.d.ts.map +0 -1
- package/dist/middleware.js.map +0 -1
- package/dist/mirror.d.ts +0 -93
- package/dist/mirror.d.ts.map +0 -1
- package/dist/mirror.js +0 -96
- package/dist/mirror.js.map +0 -1
- package/dist/operation.d.ts.map +0 -1
- package/dist/operation.js +0 -95
- package/dist/operation.js.map +0 -1
- package/dist/presenter.d.ts.map +0 -1
- package/dist/presenter.js.map +0 -1
- package/dist/remote.d.ts.map +0 -1
- package/dist/remote.js.map +0 -1
- package/dist/repository.d.ts +0 -55
- package/dist/repository.d.ts.map +0 -1
- package/dist/repository.js +0 -26
- package/dist/repository.js.map +0 -1
- package/dist/scan-cache.d.ts +0 -10
- package/dist/scan-cache.d.ts.map +0 -1
- package/dist/scan-cache.js.map +0 -1
- package/dist/scanner.d.ts +0 -34
- package/dist/scanner.d.ts.map +0 -1
- package/dist/scanner.js.map +0 -1
- package/dist/seed.d.ts.map +0 -1
- package/dist/seed.js.map +0 -1
- package/dist/types.d.ts +0 -421
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- /package/dist/{bootstrap.d.ts → boot/bootstrap.d.ts} +0 -0
- /package/dist/{types.js → boot/types.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../src/wire/invocation.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Logger middleware — logs every operation with timing.
|
|
3
3
|
*/
|
|
4
|
-
import type { AppMiddleware } from '
|
|
4
|
+
import type { AppMiddleware } from './middleware.js';
|
|
5
5
|
import type { Logger } from '../builtins/logger.js';
|
|
6
6
|
/**
|
|
7
7
|
* Create a logger middleware that logs operation entry, exit, and errors.
|
|
8
8
|
*
|
|
9
9
|
* ```ts
|
|
10
|
-
* app.use(loggerMiddleware(app.resolve('
|
|
10
|
+
* app.use(loggerMiddleware(app.resolve('Logger')))
|
|
11
11
|
* ```
|
|
12
12
|
*/
|
|
13
13
|
export declare function loggerMiddleware(logger: Logger): AppMiddleware;
|
|
14
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=loggerMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loggerMiddleware.d.ts","sourceRoot":"","sources":["../../src/wire/loggerMiddleware.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAe9D"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Create a logger middleware that logs operation entry, exit, and errors.
|
|
3
3
|
*
|
|
4
4
|
* ```ts
|
|
5
|
-
* app.use(loggerMiddleware(app.resolve('
|
|
5
|
+
* app.use(loggerMiddleware(app.resolve('Logger')))
|
|
6
6
|
* ```
|
|
7
7
|
*/
|
|
8
8
|
export function loggerMiddleware(logger) {
|
|
@@ -22,4 +22,4 @@ export function loggerMiddleware(logger) {
|
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=
|
|
25
|
+
//# sourceMappingURL=loggerMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loggerMiddleware.js","sourceRoot":"","sources":["../../src/wire/loggerMiddleware.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC9D,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* App-level middleware — intercepts handler facade operations.
|
|
3
|
+
*
|
|
4
|
+
* Works regardless of entry point (HTTP, Nitro, event bus, CLI, tests).
|
|
5
|
+
*/
|
|
6
|
+
export interface OperationContext {
|
|
7
|
+
/** Entity name (e.g. 'product'). */
|
|
8
|
+
entity: string;
|
|
9
|
+
/**
|
|
10
|
+
* Which frond owns this operation — the unit that gets deployed, and therefore the
|
|
11
|
+
* one a reader groups by first. Absent only where no frond claims the call.
|
|
12
|
+
*/
|
|
13
|
+
frond?: string;
|
|
14
|
+
/** Operation name (e.g. 'create', 'findById', 'searchByTitle'). */
|
|
15
|
+
operation: string;
|
|
16
|
+
/** Arguments passed to the operation. */
|
|
17
|
+
args: unknown[];
|
|
18
|
+
/** Extensible bag — middlewares deposit data here (user, permissions, etc.). */
|
|
19
|
+
state: Record<string, unknown>;
|
|
20
|
+
/** Transport-agnostic invocation context (params, query, body, state). */
|
|
21
|
+
invocation?: import('./invocation.js').InvocationContext;
|
|
22
|
+
}
|
|
23
|
+
export type AppNext = () => Promise<unknown>;
|
|
24
|
+
export type AppMiddleware = (ctx: OperationContext, next: AppNext) => Promise<unknown>;
|
|
25
|
+
/**
|
|
26
|
+
* Execute a middleware chain (onion model) then the handler.
|
|
27
|
+
*/
|
|
28
|
+
export declare function runMiddlewares(middlewares: AppMiddleware[], ctx: OperationContext, handler: AppNext): Promise<unknown>;
|
|
29
|
+
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/wire/middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,iBAAiB,EAAE,iBAAiB,CAAC;CAC1D;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7C,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAIvF;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,aAAa,EAAE,EAC5B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,OAAO,CAAC,CASlB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* App-level middleware — intercepts handler facade operations.
|
|
3
|
+
*
|
|
4
|
+
* Works regardless of entry point (HTTP, Nitro, event bus, CLI, tests).
|
|
5
|
+
*/
|
|
6
|
+
// ── Runner ──────────────────────────────────────
|
|
7
|
+
/**
|
|
8
|
+
* Execute a middleware chain (onion model) then the handler.
|
|
9
|
+
*/
|
|
10
|
+
export function runMiddlewares(middlewares, ctx, handler) {
|
|
11
|
+
let index = 0;
|
|
12
|
+
const next = () => {
|
|
13
|
+
if (index < middlewares.length) {
|
|
14
|
+
return middlewares[index++](ctx, next);
|
|
15
|
+
}
|
|
16
|
+
return handler();
|
|
17
|
+
};
|
|
18
|
+
return next();
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/wire/middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwBH,mDAAmD;AAEnD;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,WAA4B,EAC5B,GAAqB,EACrB,OAAgB;IAEhB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,GAAqB,EAAE;QAClC,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC;IACF,OAAO,IAAI,EAAE,CAAC;AAChB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SchemaView } from '@fougere/schema';
|
|
2
|
-
import type { BindingPlan } from '
|
|
3
|
-
import type { HandlerEntry, FrondDescriptor } from '
|
|
4
|
-
import type { ParsedMethod, ParsedType, ParsedParam } from '
|
|
2
|
+
import type { BindingPlan } from '../boot/binding.js';
|
|
3
|
+
import type { HandlerEntry, FrondDescriptor } from '../scan/frond.js';
|
|
4
|
+
import type { ParsedMethod, ParsedType, ParsedParam } from '../scan/handler-parser.js';
|
|
5
5
|
/**
|
|
6
6
|
* The contract of one operation — everything the façade needs to serve a call.
|
|
7
7
|
*
|
|
@@ -36,7 +36,14 @@ export interface OperationContract {
|
|
|
36
36
|
* returns nothing.
|
|
37
37
|
*/
|
|
38
38
|
cardinality?: 'one' | 'maybe' | 'many' | 'page' | 'none';
|
|
39
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* The argument names and TYPES — the one thing `binding` cannot say.
|
|
41
|
+
*
|
|
42
|
+
* `binding` says where an argument is read from, `cardinality` how much comes back;
|
|
43
|
+
* neither gives a type, and a GraphQL argument needs one. So this is not the scan's
|
|
44
|
+
* private material: a prefab fills it too, from signatures it wrote itself. `binding`
|
|
45
|
+
* still wins on where an argument comes from.
|
|
46
|
+
*/
|
|
40
47
|
signature?: ParsedMethod;
|
|
41
48
|
}
|
|
42
49
|
/**
|
|
@@ -50,14 +57,36 @@ export declare function cardinalityOf(type: ParsedType | undefined): OperationCo
|
|
|
50
57
|
/** Map of operation name → its contract. */
|
|
51
58
|
export type OperationsMap = Map<string, OperationContract>;
|
|
52
59
|
export type { ParsedType, ParsedParam };
|
|
53
|
-
|
|
54
|
-
|
|
60
|
+
export type OperationKind = 'query' | 'command';
|
|
61
|
+
/** The convention's evidence, including both sides when a composed name contradicts itself. */
|
|
62
|
+
export interface OperationKindInference {
|
|
63
|
+
kind?: OperationKind;
|
|
64
|
+
queryMatches: string[];
|
|
65
|
+
commandMatches: string[];
|
|
66
|
+
}
|
|
67
|
+
/** The two lists, for a refusal that has to say what a name could have led with. */
|
|
68
|
+
export declare function knownVerbs(): {
|
|
69
|
+
query: string[];
|
|
70
|
+
command: string[];
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Infer only when the leading word names one convention and a composed clause does not
|
|
74
|
+
* name the opposite one. This is intentionally partial: `ofBook`, `computeReport` and
|
|
75
|
+
* `getOrCreateUser` have no inferred kind instead of falling through to command/query.
|
|
76
|
+
*/
|
|
77
|
+
export declare function inferOperationKind(name: string): OperationKindInference;
|
|
78
|
+
/** Explicit config is authoritative; otherwise the finite convention may decline. */
|
|
79
|
+
export declare function resolveOperationKind(name: string, overrides?: Record<string, {
|
|
80
|
+
kind?: OperationKind;
|
|
81
|
+
}>): OperationKind | undefined;
|
|
55
82
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
83
|
+
* Compatibility for boolean readers. An indeterminate name throws: returning `false`
|
|
84
|
+
* here would recreate the silent command fallback this module exists to prevent.
|
|
58
85
|
*/
|
|
86
|
+
export declare function isReadOp(name: string): boolean;
|
|
87
|
+
/** Resolve an explicit/conventional kind for existing adapters, never by fallback. */
|
|
59
88
|
export declare function resolveIsReadOp(name: string, overrides?: Record<string, {
|
|
60
|
-
kind?:
|
|
89
|
+
kind?: OperationKind;
|
|
61
90
|
}>): boolean;
|
|
62
91
|
/**
|
|
63
92
|
* The contract of every operation a handler serves — the three producers, merged once.
|
|
@@ -83,5 +112,5 @@ export declare function resolveIsReadOp(name: string, overrides?: Record<string,
|
|
|
83
112
|
* Pure: no container, no instance, no disk. The binding plan is resolved here, so
|
|
84
113
|
* nothing downstream ever meets an AST.
|
|
85
114
|
*/
|
|
86
|
-
export declare function resolveContracts(handler: Pick<HandlerEntry, 'ctor' | 'operations'>, overrides: FrondDescriptor['operationsOverrides'],
|
|
115
|
+
export declare function resolveContracts(handler: Pick<HandlerEntry, 'ctor' | 'operations'>, overrides: FrondDescriptor['operationsOverrides'], collectorTypeNames: Set<string>): OperationsMap;
|
|
87
116
|
//# sourceMappingURL=operation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../src/wire/operation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEvF;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,gCAAgC;IAChC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACzD;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAQ5F;AAKD,4CAA4C;AAC5C,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAE3D,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAQxC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhD,+FAA+F;AAC/F,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AA2BD,oFAAoF;AACpF,wBAAgB,UAAU,IAAI;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAEnE;AAYD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CA4BvE;AAED,qFAAqF;AACrF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC,GACnD,aAAa,GAAG,SAAS,CAE3B;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC,GACnD,OAAO,CAET;AAeD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAAC,EAClD,SAAS,EAAE,eAAe,CAAC,qBAAqB,CAAC,EACjD,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC9B,aAAa,CA0Bf"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { computeBindingPlan } from '../boot/binding.js';
|
|
2
|
+
/**
|
|
3
|
+
* Read an op's cardinality off its parsed return type.
|
|
4
|
+
*
|
|
5
|
+
* `Promise` is unwrapped first — it says when, not how much. `ListResult<T>` extends
|
|
6
|
+
* `Array<T>`, so it must be recognised BEFORE the array test or a page would read as
|
|
7
|
+
* a plain list and lose its `total`/`hasMore`.
|
|
8
|
+
*/
|
|
9
|
+
export function cardinalityOf(type) {
|
|
10
|
+
if (!type)
|
|
11
|
+
return undefined;
|
|
12
|
+
const inner = type.name === 'Promise' ? type.generics?.[0] : type;
|
|
13
|
+
if (!inner)
|
|
14
|
+
return 'none';
|
|
15
|
+
if (inner.name === 'ListResult')
|
|
16
|
+
return 'page';
|
|
17
|
+
if (inner.array)
|
|
18
|
+
return 'many';
|
|
19
|
+
if (PRIMITIVE_RETURNS.has(inner.name))
|
|
20
|
+
return 'none';
|
|
21
|
+
return inner.nullable || inner.undefined ? 'maybe' : 'one';
|
|
22
|
+
}
|
|
23
|
+
/** A return that carries no schema — the card has nothing to project onto it. */
|
|
24
|
+
const PRIMITIVE_RETURNS = new Set(['boolean', 'string', 'number', 'void', 'undefined', 'unknown', 'any']);
|
|
25
|
+
/**
|
|
26
|
+
* Deliberately finite: these are verbs whose leading use carries a stable read meaning.
|
|
27
|
+
* `stats` and `check` preserve conventions already used by the project; the rest are the
|
|
28
|
+
* ordinary query vocabulary shared by the built-in adapters.
|
|
29
|
+
*/
|
|
30
|
+
const QUERY_VERBS = new Set([
|
|
31
|
+
'all', 'check', 'count', 'exists', 'fetch', 'find', 'get', 'has', 'health', 'list',
|
|
32
|
+
'load', 'mine', 'ping', 'quote', 'read', 'search', 'stats', 'status', 'who',
|
|
33
|
+
]);
|
|
34
|
+
/**
|
|
35
|
+
* Leading verbs whose write intent is strong enough to infer. Domain words (`mine`,
|
|
36
|
+
* `drafts`, `bySlug`) stay out: a convention may omit syntax, but may not invent intent.
|
|
37
|
+
*/
|
|
38
|
+
const COMMAND_VERBS = new Set([
|
|
39
|
+
'add', 'apply', 'archive', 'assign', 'charge', 'checkout', 'complete', 'create',
|
|
40
|
+
'deactivate', 'delete', 'disable', 'edit', 'enable', 'execute', 'link', 'move', 'notify',
|
|
41
|
+
'open', 'pay', 'post', 'publish', 'queue', 'rebuild', 'record', 'refresh', 'refund',
|
|
42
|
+
'reindex', 'remove', 'rename', 'republish', 'reserve', 'restore', 'retitle', 'run',
|
|
43
|
+
'schedule', 'send', 'set', 'settle', 'stop', 'sync', 'toggle', 'track', 'transfer',
|
|
44
|
+
'unassign', 'update', 'upsert', 'withdraw', 'write',
|
|
45
|
+
]);
|
|
46
|
+
const COMPOUND_CONNECTORS = new Set(['and', 'or', 'then']);
|
|
47
|
+
/** The two lists, for a refusal that has to say what a name could have led with. */
|
|
48
|
+
export function knownVerbs() {
|
|
49
|
+
return { query: [...QUERY_VERBS].sort(), command: [...COMMAND_VERBS].sort() };
|
|
50
|
+
}
|
|
51
|
+
/** `getOrCreatePost` → `['get', 'or', 'create', 'post']`; `hash` never becomes `has`. */
|
|
52
|
+
function wordsOf(name) {
|
|
53
|
+
return name
|
|
54
|
+
.replace(/([a-z\d])([A-Z])/g, '$1 $2')
|
|
55
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')
|
|
56
|
+
.split(/[^A-Za-z\d]+/)
|
|
57
|
+
.filter(Boolean)
|
|
58
|
+
.map((word) => word.toLowerCase());
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Infer only when the leading word names one convention and a composed clause does not
|
|
62
|
+
* name the opposite one. This is intentionally partial: `ofBook`, `computeReport` and
|
|
63
|
+
* `getOrCreateUser` have no inferred kind instead of falling through to command/query.
|
|
64
|
+
*/
|
|
65
|
+
export function inferOperationKind(name) {
|
|
66
|
+
const words = wordsOf(name);
|
|
67
|
+
const first = words[0];
|
|
68
|
+
const primary = first && QUERY_VERBS.has(first)
|
|
69
|
+
? 'query'
|
|
70
|
+
: first && COMMAND_VERBS.has(first)
|
|
71
|
+
? 'command'
|
|
72
|
+
: undefined;
|
|
73
|
+
if (!primary)
|
|
74
|
+
return { kind: undefined, queryMatches: [], commandMatches: [] };
|
|
75
|
+
const queryMatches = primary === 'query' ? [first] : [];
|
|
76
|
+
const commandMatches = primary === 'command' ? [first] : [];
|
|
77
|
+
for (let i = 1; i < words.length; i++) {
|
|
78
|
+
if (!COMPOUND_CONNECTORS.has(words[i - 1]))
|
|
79
|
+
continue;
|
|
80
|
+
if (QUERY_VERBS.has(words[i]))
|
|
81
|
+
queryMatches.push(words[i]);
|
|
82
|
+
if (COMMAND_VERBS.has(words[i]))
|
|
83
|
+
commandMatches.push(words[i]);
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
kind: queryMatches.length > 0 && commandMatches.length === 0
|
|
87
|
+
? 'query'
|
|
88
|
+
: commandMatches.length > 0 && queryMatches.length === 0
|
|
89
|
+
? 'command'
|
|
90
|
+
: undefined,
|
|
91
|
+
queryMatches,
|
|
92
|
+
commandMatches,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/** Explicit config is authoritative; otherwise the finite convention may decline. */
|
|
96
|
+
export function resolveOperationKind(name, overrides) {
|
|
97
|
+
return overrides?.[name]?.kind ?? inferOperationKind(name).kind;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Compatibility for boolean readers. An indeterminate name throws: returning `false`
|
|
101
|
+
* here would recreate the silent command fallback this module exists to prevent.
|
|
102
|
+
*/
|
|
103
|
+
export function isReadOp(name) {
|
|
104
|
+
return requireOperationKind(name) === 'query';
|
|
105
|
+
}
|
|
106
|
+
/** Resolve an explicit/conventional kind for existing adapters, never by fallback. */
|
|
107
|
+
export function resolveIsReadOp(name, overrides) {
|
|
108
|
+
return requireOperationKind(name, overrides) === 'query';
|
|
109
|
+
}
|
|
110
|
+
function requireOperationKind(name, overrides) {
|
|
111
|
+
const kind = resolveOperationKind(name, overrides);
|
|
112
|
+
if (kind)
|
|
113
|
+
return kind;
|
|
114
|
+
throw new Error(`Cannot infer operation kind from '${name}'. `
|
|
115
|
+
+ `Declare operations.${name}.kind as 'query' or 'command' in frond.config.ts.`);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* The contract of every operation a handler serves — the three producers, merged once.
|
|
119
|
+
*
|
|
120
|
+
* This lived inline in `buildFacade`, which made the façade the only thing that could
|
|
121
|
+
* answer "what is this op's contract, really?". Anything else asking — a checker, a
|
|
122
|
+
* client generator, a descriptor — had to redo the merge, and a second opinion that
|
|
123
|
+
* drifts reports nothing wrong while looking at the wrong thing.
|
|
124
|
+
*
|
|
125
|
+
* The order is a claim about authority, not a convenience:
|
|
126
|
+
*
|
|
127
|
+
* 1. a prefab DECLARES what it built (`Crud(E).__ops`) — runtime, so it survives a
|
|
128
|
+
* scan that resolved nothing;
|
|
129
|
+
* 2. the scan DERIVES from source — a method written in this very file is the
|
|
130
|
+
* author's own word and beats everything; a method it merely READ on a base
|
|
131
|
+
* class is a guess about someone else's code, and yields to that code's own
|
|
132
|
+
* declaration;
|
|
133
|
+
* 3. `frond.config.ts` STATES — the most explicit statement, made by whoever
|
|
134
|
+
* assembles the app, and the only answer for an op inherited from an installed
|
|
135
|
+
* base class the workspace-only scan cannot see. Merged per key, so stating a
|
|
136
|
+
* `binding` alone does not erase an `input` the scan found.
|
|
137
|
+
*
|
|
138
|
+
* Pure: no container, no instance, no disk. The binding plan is resolved here, so
|
|
139
|
+
* nothing downstream ever meets an AST.
|
|
140
|
+
*/
|
|
141
|
+
export function resolveContracts(handler, overrides, collectorTypeNames) {
|
|
142
|
+
const declared = handler.ctor.__ops ?? {};
|
|
143
|
+
const contracts = new Map(Object.entries(declared));
|
|
144
|
+
for (const [opName, scanned] of handler.operations) {
|
|
145
|
+
if (scanned.signature?.inherited && opName in declared)
|
|
146
|
+
continue;
|
|
147
|
+
contracts.set(opName, {
|
|
148
|
+
...scanned,
|
|
149
|
+
binding: scanned.binding
|
|
150
|
+
?? (scanned.signature ? computeBindingPlan(scanned.signature.params, collectorTypeNames) : undefined),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
for (const [opName, override] of Object.entries(overrides ?? {})) {
|
|
154
|
+
const { input, output, binding, description } = override;
|
|
155
|
+
if (input === undefined && output === undefined && binding === undefined && description === undefined)
|
|
156
|
+
continue;
|
|
157
|
+
contracts.set(opName, {
|
|
158
|
+
...contracts.get(opName),
|
|
159
|
+
...(input !== undefined && { input }),
|
|
160
|
+
...(output !== undefined && { output }),
|
|
161
|
+
...(binding !== undefined && { binding }),
|
|
162
|
+
...(description !== undefined && { description }),
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
return contracts;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/wire/operation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fougere/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0-alpha.0",
|
|
4
4
|
"description": "The core — scan, call contract, façades, remote stand-ins.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fougere",
|
|
@@ -26,19 +26,36 @@
|
|
|
26
26
|
"import": "./dist/index.js",
|
|
27
27
|
"default": "./dist/index.js"
|
|
28
28
|
},
|
|
29
|
+
"./node": {
|
|
30
|
+
"types": "./dist/node.d.ts",
|
|
31
|
+
"import": "./dist/node.js",
|
|
32
|
+
"default": "./dist/node.js"
|
|
33
|
+
},
|
|
29
34
|
"./contract": {
|
|
30
35
|
"types": "./dist/contract.d.ts",
|
|
31
36
|
"import": "./dist/contract.js",
|
|
32
37
|
"default": "./dist/contract.js"
|
|
33
38
|
}
|
|
34
39
|
},
|
|
40
|
+
"imports": {
|
|
41
|
+
"#ambient": {
|
|
42
|
+
"types": "./src/boot/ambient.als.ts",
|
|
43
|
+
"workerd": "./dist/boot/ambient.queue.js",
|
|
44
|
+
"default": "./dist/boot/ambient.als.js"
|
|
45
|
+
},
|
|
46
|
+
"#crypto": {
|
|
47
|
+
"types": "./src/crypto/node.ts",
|
|
48
|
+
"workerd": "./dist/crypto/webcrypto.js",
|
|
49
|
+
"default": "./dist/crypto/node.js"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
35
52
|
"files": [
|
|
36
53
|
"dist"
|
|
37
54
|
],
|
|
38
55
|
"dependencies": {
|
|
39
|
-
"typescript": "^
|
|
40
|
-
"@fougere/
|
|
41
|
-
"@fougere/
|
|
56
|
+
"@typescript/typescript6": "^6.0.2",
|
|
57
|
+
"@fougere/schema": "0.3.0-alpha.0",
|
|
58
|
+
"@fougere/container": "0.3.0-alpha.0"
|
|
42
59
|
},
|
|
43
60
|
"devDependencies": {
|
|
44
61
|
"@types/node": "^22.0.0"
|
|
@@ -47,9 +64,9 @@
|
|
|
47
64
|
"access": "public"
|
|
48
65
|
},
|
|
49
66
|
"scripts": {
|
|
50
|
-
"build": "rm -rf dist &&
|
|
51
|
-
"test": "vitest run",
|
|
67
|
+
"build": "rm -rf dist && tsc6",
|
|
68
|
+
"test": "vitest run --maxWorkers=2",
|
|
52
69
|
"test:watch": "vitest",
|
|
53
|
-
"typecheck": "
|
|
70
|
+
"typecheck": "tsc6 --noEmit -p tsconfig.test.json"
|
|
54
71
|
}
|
|
55
72
|
}
|
package/dist/binding.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAKzD,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAC3C;;;;;;;GAOG;GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB,2EAA2E;GACzE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,EAAE,CAAC;AAczC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EAAE,EACrB,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,GAChC,WAAW,CAuDb;AAID,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,iBAAiB,EACtB,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,GACvE,OAAO,CAAC,OAAO,EAAE,CAAC,CA0CpB"}
|
package/dist/binding.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"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"}
|
package/dist/boot.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../src/boot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,mCAAmC;IACnC,eAAe,EAAE,MAAM,SAAS,CAAC;IACjC,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,8EAA8E;IAC9E,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;IAC7C;;;OAGG;IACH,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK;QAC9B,EAAE,CAAC,EAAE,OAAO,CAAC;QACb,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC3C,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KAChD,CAAC;CACH;AAED;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAiD7D"}
|
package/dist/boot.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { createApp } from './bootstrap.js';
|
|
2
|
-
import { orderSeeds, runSeeds } from './seed.js';
|
|
3
|
-
import { loadConfig } from './config-loader.js';
|
|
4
|
-
import { Logger } from './builtins/logger.js';
|
|
5
|
-
/**
|
|
6
|
-
* Boot a Fougere app from fougere.config.ts.
|
|
7
|
-
*
|
|
8
|
-
* Handles: config loading, container creation, DB setup, seeding.
|
|
9
|
-
* Works for any surface (Nuxt, GraphQL standalone, CLI, tests).
|
|
10
|
-
*/
|
|
11
|
-
export async function boot(options) {
|
|
12
|
-
const bootStart = performance.now();
|
|
13
|
-
const log = new Logger('boot', { level: process.env.FOUGERE_LOG_LEVEL ?? 'debug' });
|
|
14
|
-
const root = options.root ?? process.cwd();
|
|
15
|
-
log.info(`root: ${root}`);
|
|
16
|
-
log.debug('loading config');
|
|
17
|
-
const fileConfig = await loadConfig(root);
|
|
18
|
-
const config = { ...fileConfig, ...options.config };
|
|
19
|
-
log.info('config loaded');
|
|
20
|
-
let dbSetup;
|
|
21
|
-
if (options.db) {
|
|
22
|
-
log.debug('initializing database');
|
|
23
|
-
dbSetup = options.db(config);
|
|
24
|
-
log.info('database initialized');
|
|
25
|
-
}
|
|
26
|
-
log.debug('creating app (scan + container)');
|
|
27
|
-
const app = await createApp({
|
|
28
|
-
root,
|
|
29
|
-
createContainer: options.createContainer,
|
|
30
|
-
ormFactory: dbSetup?.ormFactory,
|
|
31
|
-
db: dbSetup?.db,
|
|
32
|
-
auth: config.auth,
|
|
33
|
-
fronds: options.fronds,
|
|
34
|
-
remotes: options.remotes,
|
|
35
|
-
remoteTransport: options.remoteTransport,
|
|
36
|
-
});
|
|
37
|
-
if (dbSetup?.afterBoot) {
|
|
38
|
-
log.debug('running migrations');
|
|
39
|
-
await dbSetup.afterBoot(app);
|
|
40
|
-
log.info('migrations done');
|
|
41
|
-
}
|
|
42
|
-
// Run seeds — in dependency order, so a referrer never lands before its target.
|
|
43
|
-
const seeds = orderSeeds(app.fronds);
|
|
44
|
-
if (seeds.length > 0) {
|
|
45
|
-
log.debug(`seeding ${seeds.length} entities: ${seeds.map((s) => s.entityName).join(' → ')}`);
|
|
46
|
-
await runSeeds(app, seeds, (message) => log.debug(message));
|
|
47
|
-
log.info('seeding done');
|
|
48
|
-
}
|
|
49
|
-
const ms = (performance.now() - bootStart).toFixed(0);
|
|
50
|
-
log.info(`ready in ${ms}ms — ${app.fronds.length} frond(s)`);
|
|
51
|
-
return app;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=boot.js.map
|
package/dist/boot.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boot.js","sourceRoot":"","sources":["../src/boot.ts"],"names":[],"mappings":"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"}
|
package/dist/bootstrap.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAA6C,MAAM,YAAY,CAAC;AA+EnG,uCAAuC;AACvC,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAo3BvE"}
|