@fougere/core 0.9.2-alpha.0 → 0.10.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/dist/AdapterConfig.d.ts +10 -0
- package/dist/AdapterConfig.d.ts.map +1 -0
- package/dist/AdapterConfig.js +3 -0
- package/dist/AdapterConfig.js.map +1 -0
- package/dist/AnswerFor.d.ts +5 -0
- package/dist/AnswerFor.d.ts.map +1 -0
- package/dist/AnswerFor.js +2 -0
- package/dist/AnswerFor.js.map +1 -0
- package/dist/Binding.d.ts +4 -0
- package/dist/Binding.d.ts.map +1 -0
- package/dist/Binding.js +2 -0
- package/dist/Binding.js.map +1 -0
- package/dist/{identity.d.ts → CallIdentity.d.ts} +4 -17
- package/dist/CallIdentity.d.ts.map +1 -0
- package/dist/{identity.js → CallIdentity.js} +1 -6
- package/dist/CallIdentity.js.map +1 -0
- package/dist/Constraint.d.ts +3 -0
- package/dist/Constraint.d.ts.map +1 -0
- package/dist/Constraint.js +2 -0
- package/dist/Constraint.js.map +1 -0
- package/dist/{conventions.d.ts → Conventions.d.ts} +14 -8
- package/dist/Conventions.d.ts.map +1 -0
- package/dist/{conventions.js → Conventions.js} +7 -3
- package/dist/Conventions.js.map +1 -0
- package/dist/ConventionsInput.d.ts +8 -0
- package/dist/ConventionsInput.d.ts.map +1 -0
- package/dist/ConventionsInput.js +2 -0
- package/dist/ConventionsInput.js.map +1 -0
- package/dist/Ctor.d.ts +3 -0
- package/dist/Ctor.d.ts.map +1 -0
- package/dist/Ctor.js +2 -0
- package/dist/Ctor.js.map +1 -0
- package/dist/Declared.d.ts +8 -0
- package/dist/Declared.d.ts.map +1 -0
- package/dist/Declared.js +2 -0
- package/dist/Declared.js.map +1 -0
- package/dist/DeclaredHandler.d.ts +18 -0
- package/dist/DeclaredHandler.d.ts.map +1 -0
- package/dist/DeclaredHandler.js +2 -0
- package/dist/DeclaredHandler.js.map +1 -0
- package/dist/DeclaredSubject.d.ts +7 -0
- package/dist/DeclaredSubject.d.ts.map +1 -0
- package/dist/DeclaredSubject.js +2 -0
- package/dist/DeclaredSubject.js.map +1 -0
- package/dist/{graph.d.ts → DomainCluster.d.ts} +3 -12
- package/dist/DomainCluster.d.ts.map +1 -0
- package/dist/{graph.js → DomainCluster.js} +1 -1
- package/dist/DomainCluster.js.map +1 -0
- package/dist/EffectiveCollector.d.ts +8 -0
- package/dist/EffectiveCollector.d.ts.map +1 -0
- package/dist/EffectiveCollector.js +2 -0
- package/dist/EffectiveCollector.js.map +1 -0
- package/dist/EffectiveOperation.d.ts +65 -0
- package/dist/EffectiveOperation.d.ts.map +1 -0
- package/dist/EffectiveOperation.js +2 -0
- package/dist/EffectiveOperation.js.map +1 -0
- package/dist/EffectiveOperationModel.d.ts +24 -0
- package/dist/EffectiveOperationModel.d.ts.map +1 -0
- package/dist/{effective-operation.js → EffectiveOperationModel.js} +26 -23
- package/dist/EffectiveOperationModel.js.map +1 -0
- package/dist/EffectiveOperationOptions.d.ts +7 -0
- package/dist/EffectiveOperationOptions.d.ts.map +1 -0
- package/dist/EffectiveOperationOptions.js +2 -0
- package/dist/EffectiveOperationOptions.js.map +1 -0
- package/dist/EffectiveOperationSemantics.d.ts +8 -0
- package/dist/EffectiveOperationSemantics.d.ts.map +1 -0
- package/dist/EffectiveOperationSemantics.js +8 -0
- package/dist/EffectiveOperationSemantics.js.map +1 -0
- package/dist/EffectiveOperationsMap.d.ts +3 -0
- package/dist/EffectiveOperationsMap.d.ts.map +1 -0
- package/dist/EffectiveOperationsMap.js +2 -0
- package/dist/EffectiveOperationsMap.js.map +1 -0
- package/dist/EffectiveParameter.d.ts +14 -0
- package/dist/EffectiveParameter.d.ts.map +1 -0
- package/dist/EffectiveParameter.js +2 -0
- package/dist/EffectiveParameter.js.map +1 -0
- package/dist/EntityNode.d.ts +7 -0
- package/dist/EntityNode.d.ts.map +1 -0
- package/dist/EntityNode.js +2 -0
- package/dist/EntityNode.js.map +1 -0
- package/dist/{config-loader.d.ts → FougereConfig.d.ts} +16 -17
- package/dist/FougereConfig.d.ts.map +1 -0
- package/dist/{config-loader.js → FougereConfig.js} +1 -2
- package/dist/FougereConfig.js.map +1 -0
- package/dist/FougereNames.d.ts +4 -0
- package/dist/FougereNames.d.ts.map +1 -0
- package/dist/FougereNames.js +2 -0
- package/dist/FougereNames.js.map +1 -0
- package/dist/FougerePorts.d.ts +9 -0
- package/dist/FougerePorts.d.ts.map +1 -0
- package/dist/FougerePorts.js +2 -0
- package/dist/FougerePorts.js.map +1 -0
- package/dist/FrondConfig.d.ts +36 -0
- package/dist/FrondConfig.d.ts.map +1 -0
- package/dist/{frond-config.js → FrondConfig.js} +1 -1
- package/dist/FrondConfig.js.map +1 -0
- package/dist/{declare.d.ts → FrondDeclaration.d.ts} +7 -29
- package/dist/FrondDeclaration.d.ts.map +1 -0
- package/dist/{declare.js → FrondDeclaration.js} +2 -3
- package/dist/FrondDeclaration.js.map +1 -0
- package/dist/FrondIdentity.d.ts +8 -0
- package/dist/FrondIdentity.d.ts.map +1 -0
- package/dist/FrondIdentity.js +2 -0
- package/dist/FrondIdentity.js.map +1 -0
- package/dist/NameOf.d.ts +10 -0
- package/dist/NameOf.d.ts.map +1 -0
- package/dist/NameOf.js +2 -0
- package/dist/NameOf.js.map +1 -0
- package/dist/OperationOverride.d.ts +38 -0
- package/dist/OperationOverride.d.ts.map +1 -0
- package/dist/OperationOverride.js +2 -0
- package/dist/OperationOverride.js.map +1 -0
- package/dist/PortChoice.d.ts +13 -0
- package/dist/PortChoice.d.ts.map +1 -0
- package/dist/PortChoice.js +2 -0
- package/dist/PortChoice.js.map +1 -0
- package/dist/{source.d.ts → Source.d.ts} +5 -24
- package/dist/Source.d.ts.map +1 -0
- package/dist/{source.js → Source.js} +1 -1
- package/dist/{source.js.map → Source.js.map} +1 -1
- package/dist/SourceConfig.d.ts +10 -0
- package/dist/SourceConfig.d.ts.map +1 -0
- package/dist/SourceConfig.js +2 -0
- package/dist/SourceConfig.js.map +1 -0
- package/dist/SourceView.d.ts +13 -0
- package/dist/SourceView.d.ts.map +1 -0
- package/dist/SourceView.js +2 -0
- package/dist/SourceView.js.map +1 -0
- package/dist/VerifiedCall.d.ts +8 -0
- package/dist/VerifiedCall.d.ts.map +1 -0
- package/dist/VerifiedCall.js +2 -0
- package/dist/VerifiedCall.js.map +1 -0
- package/dist/boot/App.d.ts +71 -0
- package/dist/boot/App.d.ts.map +1 -0
- package/dist/boot/App.js +2 -0
- package/dist/boot/App.js.map +1 -0
- package/dist/boot/AppLifecycle.d.ts +2 -19
- package/dist/boot/AppLifecycle.d.ts.map +1 -1
- package/dist/boot/AppLifecycle.js.map +1 -1
- package/dist/boot/AuthConfig.d.ts +14 -0
- package/dist/boot/AuthConfig.d.ts.map +1 -0
- package/dist/boot/AuthConfig.js +2 -0
- package/dist/boot/AuthConfig.js.map +1 -0
- package/dist/boot/AuthContext.d.ts +12 -0
- package/dist/boot/AuthContext.d.ts.map +1 -0
- package/dist/boot/AuthContext.js +2 -0
- package/dist/boot/AuthContext.js.map +1 -0
- package/dist/boot/AuthRuntime.d.ts +19 -0
- package/dist/boot/AuthRuntime.d.ts.map +1 -0
- package/dist/boot/AuthRuntime.js +2 -0
- package/dist/boot/AuthRuntime.js.map +1 -0
- package/dist/boot/CreateAppOptions.d.ts +81 -0
- package/dist/boot/CreateAppOptions.d.ts.map +1 -0
- package/dist/boot/CreateAppOptions.js +2 -0
- package/dist/boot/CreateAppOptions.js.map +1 -0
- package/dist/boot/Emissions.d.ts +11 -7
- package/dist/boot/Emissions.d.ts.map +1 -1
- package/dist/boot/Emissions.js +83 -45
- package/dist/boot/Emissions.js.map +1 -1
- package/dist/boot/Extension.d.ts +20 -0
- package/dist/boot/Extension.d.ts.map +1 -0
- package/dist/boot/Extension.js +2 -0
- package/dist/boot/Extension.js.map +1 -0
- package/dist/boot/apply.d.ts +1 -1
- package/dist/boot/apply.js +1 -1
- package/dist/boot/apply.js.map +1 -1
- package/dist/boot/bootstrap.d.ts +2 -1
- package/dist/boot/bootstrap.d.ts.map +1 -1
- package/dist/boot/bootstrap.js +77 -42
- package/dist/boot/bootstrap.js.map +1 -1
- package/dist/boot/card.d.ts +2 -2
- package/dist/boot/card.d.ts.map +1 -1
- package/dist/boot/card.js +11 -8
- package/dist/boot/card.js.map +1 -1
- package/dist/boot/declared.d.ts +29 -0
- package/dist/boot/declared.d.ts.map +1 -0
- package/dist/boot/declared.js +67 -0
- package/dist/boot/declared.js.map +1 -0
- package/dist/boot/frame.d.ts +1 -1
- package/dist/boot/frame.js +1 -1
- package/dist/boot/hosted.d.ts +1 -1
- package/dist/boot/hosted.d.ts.map +1 -1
- package/dist/boot/install.d.ts +11 -7
- package/dist/boot/install.d.ts.map +1 -1
- package/dist/boot/install.js +30 -24
- package/dist/boot/install.js.map +1 -1
- package/dist/boot/ownership.d.ts +8 -4
- package/dist/boot/ownership.d.ts.map +1 -1
- package/dist/boot/ownership.js +91 -33
- package/dist/boot/ownership.js.map +1 -1
- package/dist/boot/ports.d.ts +4 -3
- package/dist/boot/ports.d.ts.map +1 -1
- package/dist/boot/ports.js +48 -37
- package/dist/boot/ports.js.map +1 -1
- package/dist/boot/remote.d.ts +3 -8
- package/dist/boot/remote.d.ts.map +1 -1
- package/dist/boot/remote.js +19 -15
- package/dist/boot/remote.js.map +1 -1
- package/dist/boot/runner.d.ts +2 -2
- package/dist/boot/runner.d.ts.map +1 -1
- package/dist/boot/seed.d.ts +4 -3
- package/dist/boot/seed.d.ts.map +1 -1
- package/dist/boot/seed.js +6 -6
- package/dist/boot/seed.js.map +1 -1
- package/dist/boot/statement-drift.d.ts +4 -3
- package/dist/boot/statement-drift.d.ts.map +1 -1
- package/dist/boot/statement-drift.js.map +1 -1
- package/dist/boot/together.d.ts +8 -4
- package/dist/boot/together.d.ts.map +1 -1
- package/dist/boot/together.js +60 -27
- package/dist/boot/together.js.map +1 -1
- package/dist/builtin/Carry.d.ts +29 -0
- package/dist/builtin/Carry.d.ts.map +1 -0
- package/dist/builtin/Carry.js +46 -0
- package/dist/builtin/Carry.js.map +1 -0
- package/dist/builtin/LogLevel.d.ts +2 -0
- package/dist/builtin/LogLevel.d.ts.map +1 -0
- package/dist/builtin/LogLevel.js +2 -0
- package/dist/builtin/LogLevel.js.map +1 -0
- package/dist/builtin/LogRecord.d.ts +12 -0
- package/dist/builtin/LogRecord.d.ts.map +1 -0
- package/dist/builtin/LogRecord.js +2 -0
- package/dist/builtin/LogRecord.js.map +1 -0
- package/dist/builtin/LogSink.d.ts +4 -0
- package/dist/builtin/LogSink.d.ts.map +1 -0
- package/dist/builtin/LogSink.js +2 -0
- package/dist/builtin/LogSink.js.map +1 -0
- package/dist/builtin/Logger.d.ts +27 -0
- package/dist/builtin/Logger.d.ts.map +1 -0
- package/dist/builtin/{logger.js → Logger.js} +1 -47
- package/dist/builtin/Logger.js.map +1 -0
- package/dist/builtin/LoggerOptions.d.ts +14 -0
- package/dist/builtin/LoggerOptions.d.ts.map +1 -0
- package/dist/builtin/LoggerOptions.js +2 -0
- package/dist/builtin/LoggerOptions.js.map +1 -0
- package/dist/builtin/Rendered.d.ts +21 -0
- package/dist/builtin/Rendered.d.ts.map +1 -0
- package/dist/builtin/Rendered.js +2 -0
- package/dist/builtin/Rendered.js.map +1 -0
- package/dist/contract.d.ts +34 -13
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +9 -6
- package/dist/contract.js.map +1 -1
- package/dist/crypto/CryptoPort.d.ts +12 -0
- package/dist/crypto/CryptoPort.d.ts.map +1 -0
- package/dist/crypto/CryptoPort.js +2 -0
- package/dist/crypto/CryptoPort.js.map +1 -0
- package/dist/crypto/PublicJwk.d.ts +8 -0
- package/dist/crypto/PublicJwk.d.ts.map +1 -0
- package/dist/crypto/PublicJwk.js +2 -0
- package/dist/crypto/PublicJwk.js.map +1 -0
- package/dist/crypto/Signer.d.ts +5 -0
- package/dist/crypto/Signer.d.ts.map +1 -0
- package/dist/crypto/Signer.js +2 -0
- package/dist/crypto/Signer.js.map +1 -0
- package/dist/crypto/Verifier.d.ts +6 -0
- package/dist/crypto/Verifier.d.ts.map +1 -0
- package/dist/crypto/Verifier.js +2 -0
- package/dist/crypto/Verifier.js.map +1 -0
- package/dist/crypto/node.d.ts +4 -1
- package/dist/crypto/node.d.ts.map +1 -1
- package/dist/crypto/node.js.map +1 -1
- package/dist/crypto/webcrypto.d.ts +4 -1
- package/dist/crypto/webcrypto.d.ts.map +1 -1
- package/dist/crypto/webcrypto.js.map +1 -1
- package/dist/define.d.ts +1 -1
- package/dist/descriptor/CollectorEntry.d.ts +12 -0
- package/dist/descriptor/CollectorEntry.d.ts.map +1 -0
- package/dist/descriptor/CollectorEntry.js +2 -0
- package/dist/descriptor/CollectorEntry.js.map +1 -0
- package/dist/descriptor/EntityEntry.d.ts +13 -0
- package/dist/descriptor/EntityEntry.d.ts.map +1 -0
- package/dist/descriptor/EntityEntry.js +2 -0
- package/dist/descriptor/EntityEntry.js.map +1 -0
- package/dist/descriptor/ExtensionEntry.d.ts +20 -0
- package/dist/descriptor/ExtensionEntry.d.ts.map +1 -0
- package/dist/descriptor/ExtensionEntry.js +2 -0
- package/dist/descriptor/ExtensionEntry.js.map +1 -0
- package/dist/descriptor/FrondDescriptor.d.ts +61 -0
- package/dist/descriptor/FrondDescriptor.d.ts.map +1 -0
- package/dist/descriptor/{frond.js → FrondDescriptor.js} +1 -1
- package/dist/descriptor/FrondDescriptor.js.map +1 -0
- package/dist/descriptor/FrondSource.d.ts +8 -0
- package/dist/descriptor/FrondSource.d.ts.map +1 -0
- package/dist/descriptor/FrondSource.js +2 -0
- package/dist/descriptor/FrondSource.js.map +1 -0
- package/dist/descriptor/Fronds.d.ts +2 -1
- package/dist/descriptor/Fronds.d.ts.map +1 -1
- package/dist/descriptor/Fronds.js.map +1 -1
- package/dist/descriptor/HandlerEntry.d.ts +27 -0
- package/dist/descriptor/HandlerEntry.d.ts.map +1 -0
- package/dist/descriptor/HandlerEntry.js +2 -0
- package/dist/descriptor/HandlerEntry.js.map +1 -0
- package/dist/descriptor/MiddlewareEntry.d.ts +17 -0
- package/dist/descriptor/MiddlewareEntry.d.ts.map +1 -0
- package/dist/descriptor/MiddlewareEntry.js +2 -0
- package/dist/descriptor/MiddlewareEntry.js.map +1 -0
- package/dist/descriptor/PresenterEntry.d.ts +23 -0
- package/dist/descriptor/PresenterEntry.d.ts.map +1 -0
- package/dist/descriptor/PresenterEntry.js +2 -0
- package/dist/descriptor/PresenterEntry.js.map +1 -0
- package/dist/descriptor/PresenterFieldMeta.d.ts +14 -0
- package/dist/descriptor/PresenterFieldMeta.d.ts.map +1 -0
- package/dist/descriptor/PresenterFieldMeta.js +2 -0
- package/dist/descriptor/PresenterFieldMeta.js.map +1 -0
- package/dist/descriptor/ProviderEntry.d.ts +19 -0
- package/dist/descriptor/ProviderEntry.d.ts.map +1 -0
- package/dist/descriptor/ProviderEntry.js +2 -0
- package/dist/descriptor/ProviderEntry.js.map +1 -0
- package/dist/descriptor/SeedEntry.d.ts +11 -0
- package/dist/descriptor/SeedEntry.d.ts.map +1 -0
- package/dist/descriptor/SeedEntry.js +2 -0
- package/dist/descriptor/SeedEntry.js.map +1 -0
- package/dist/descriptor/SeedFactory.d.ts +3 -0
- package/dist/descriptor/SeedFactory.d.ts.map +1 -0
- package/dist/descriptor/SeedFactory.js +2 -0
- package/dist/descriptor/SeedFactory.js.map +1 -0
- package/dist/descriptor/bases.d.ts +17 -0
- package/dist/descriptor/bases.d.ts.map +1 -0
- package/dist/descriptor/bases.js +26 -0
- package/dist/descriptor/bases.js.map +1 -0
- package/dist/descriptor/index.d.ts +22 -6
- package/dist/descriptor/index.d.ts.map +1 -1
- package/dist/descriptor/index.js +19 -5
- package/dist/descriptor/index.js.map +1 -1
- package/dist/descriptor/surface.d.ts +3 -2
- package/dist/descriptor/surface.d.ts.map +1 -1
- package/dist/descriptor/surface.js +1 -1
- package/dist/descriptor/surface.js.map +1 -1
- package/dist/diagnostic.d.ts +33 -0
- package/dist/diagnostic.d.ts.map +1 -0
- package/dist/diagnostic.js +12 -0
- package/dist/diagnostic.js.map +1 -0
- package/dist/dispatch/ArgumentResolver.d.ts +2 -5
- package/dist/dispatch/ArgumentResolver.d.ts.map +1 -1
- package/dist/dispatch/ArgumentResolver.js.map +1 -1
- package/dist/dispatch/CollectorLookup.d.ts +3 -0
- package/dist/dispatch/CollectorLookup.d.ts.map +1 -0
- package/dist/dispatch/CollectorLookup.js +2 -0
- package/dist/dispatch/CollectorLookup.js.map +1 -0
- package/dist/dispatch/CollectorResolver.d.ts +5 -0
- package/dist/dispatch/CollectorResolver.d.ts.map +1 -0
- package/dist/dispatch/CollectorResolver.js +2 -0
- package/dist/dispatch/CollectorResolver.js.map +1 -0
- package/dist/dispatch/DispatchEvent.d.ts +3 -4
- package/dist/dispatch/DispatchEvent.d.ts.map +1 -1
- package/dist/dispatch/DispatchEvent.js.map +1 -1
- package/dist/dispatch/DispatchLifecycle.d.ts +2 -1
- package/dist/dispatch/DispatchLifecycle.d.ts.map +1 -1
- package/dist/dispatch/DispatchLifecycle.js.map +1 -1
- package/dist/dispatch/DispatchObserver.d.ts +3 -0
- package/dist/dispatch/DispatchObserver.d.ts.map +1 -0
- package/dist/dispatch/DispatchObserver.js +2 -0
- package/dist/dispatch/DispatchObserver.js.map +1 -0
- package/dist/dispatch/DispatchPort.d.ts +1 -1
- package/dist/dispatch/DispatchStage.d.ts +2 -0
- package/dist/dispatch/DispatchStage.d.ts.map +1 -0
- package/dist/dispatch/DispatchStage.js +2 -0
- package/dist/dispatch/DispatchStage.js.map +1 -0
- package/dist/dispatch/Dispatcher.d.ts +1 -1
- package/dist/dispatch/Facade.d.ts +25 -0
- package/dist/dispatch/Facade.d.ts.map +1 -0
- package/dist/dispatch/Facade.js +2 -0
- package/dist/dispatch/Facade.js.map +1 -0
- package/dist/dispatch/GuardReport.d.ts +9 -0
- package/dist/dispatch/GuardReport.d.ts.map +1 -0
- package/dist/dispatch/GuardReport.js +2 -0
- package/dist/dispatch/GuardReport.js.map +1 -0
- package/dist/dispatch/HandlerFacade.d.ts +9 -28
- package/dist/dispatch/HandlerFacade.d.ts.map +1 -1
- package/dist/dispatch/HandlerFacade.js +19 -19
- package/dist/dispatch/HandlerFacade.js.map +1 -1
- package/dist/dispatch/InFlight.d.ts.map +1 -1
- package/dist/dispatch/InFlight.js +2 -1
- package/dist/dispatch/InFlight.js.map +1 -1
- package/dist/dispatch/LocalRoutePolicy.d.ts +1 -1
- package/dist/dispatch/LocalRoutePolicy.d.ts.map +1 -1
- package/dist/dispatch/LocalRoutePolicy.js +2 -1
- 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/OperationRoute.js.map +1 -1
- package/dist/dispatch/PresenterArgs.d.ts +2 -0
- package/dist/dispatch/PresenterArgs.d.ts.map +1 -0
- package/dist/dispatch/PresenterArgs.js +2 -0
- package/dist/dispatch/PresenterArgs.js.map +1 -0
- package/dist/dispatch/PresenterExecutor.d.ts +1 -1
- package/dist/dispatch/PresenterExecutor.d.ts.map +1 -1
- package/dist/dispatch/PresenterExecutor.js +2 -1
- package/dist/dispatch/PresenterExecutor.js.map +1 -1
- package/dist/dispatch/Route.d.ts +3 -2
- package/dist/dispatch/Route.d.ts.map +1 -1
- package/dist/dispatch/RouteExecution.d.ts +3 -0
- package/dist/dispatch/RouteExecution.d.ts.map +1 -0
- package/dist/dispatch/RouteExecution.js +2 -0
- package/dist/dispatch/RouteExecution.js.map +1 -0
- package/dist/dispatch/RoutePolicy.d.ts +1 -1
- package/dist/dispatch/StorageGuard.d.ts +6 -12
- package/dist/dispatch/StorageGuard.d.ts.map +1 -1
- package/dist/dispatch/StorageGuard.js +12 -11
- package/dist/dispatch/StorageGuard.js.map +1 -1
- package/dist/dispatch/presenterArguments.d.ts +3 -3
- package/dist/dispatch/presenterArguments.d.ts.map +1 -1
- package/dist/dispatch/routeNotFound.d.ts +2 -2
- package/dist/dispatch/routeNotFound.d.ts.map +1 -1
- package/dist/dispatch/routeNotFound.js +2 -1
- package/dist/dispatch/routeNotFound.js.map +1 -1
- package/dist/dispatch/validateInput.d.ts +1 -1
- package/dist/dispatch/validateInput.d.ts.map +1 -1
- package/dist/dispatch/validateInput.js +2 -1
- package/dist/dispatch/validateInput.js.map +1 -1
- package/dist/entry/facade.js +1 -1
- package/dist/entry/transport.d.ts +1 -1
- package/dist/entry/transport.d.ts.map +1 -1
- package/dist/entry/transport.js +1 -1
- package/dist/index.d.ts +94 -34
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -13
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +2 -2
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +2 -2
- package/dist/node.js.map +1 -1
- package/dist/prefab/AggregateConstructor.d.ts +8 -0
- package/dist/prefab/AggregateConstructor.d.ts.map +1 -0
- package/dist/prefab/AggregateConstructor.js +2 -0
- package/dist/prefab/AggregateConstructor.js.map +1 -0
- package/dist/prefab/AggregateOf.d.ts +7 -0
- package/dist/prefab/AggregateOf.d.ts.map +1 -0
- package/dist/prefab/AggregateOf.js +2 -0
- package/dist/prefab/AggregateOf.js.map +1 -0
- package/dist/prefab/AggregateShape.d.ts +9 -0
- package/dist/prefab/AggregateShape.d.ts.map +1 -0
- package/dist/prefab/AggregateShape.js +2 -0
- package/dist/prefab/AggregateShape.js.map +1 -0
- package/dist/prefab/{crud.d.ts → CrudConstructor.d.ts} +5 -21
- package/dist/prefab/CrudConstructor.d.ts.map +1 -0
- package/dist/prefab/{crud.js → CrudConstructor.js} +6 -3
- package/dist/prefab/CrudConstructor.js.map +1 -0
- package/dist/prefab/CrudOpName.d.ts +3 -0
- package/dist/prefab/CrudOpName.d.ts.map +1 -0
- package/dist/prefab/CrudOpName.js +2 -0
- package/dist/prefab/CrudOpName.js.map +1 -0
- package/dist/prefab/CrudOps.d.ts +20 -0
- package/dist/prefab/CrudOps.d.ts.map +1 -0
- package/dist/prefab/CrudOps.js +2 -0
- package/dist/prefab/CrudOps.js.map +1 -0
- package/dist/prefab/CrudViews.d.ts +5 -0
- package/dist/prefab/CrudViews.d.ts.map +1 -0
- package/dist/prefab/CrudViews.js +2 -0
- package/dist/prefab/CrudViews.js.map +1 -0
- package/dist/prefab/MirrorConstructor.d.ts +9 -0
- package/dist/prefab/MirrorConstructor.d.ts.map +1 -0
- package/dist/prefab/{mirror.js → MirrorConstructor.js} +1 -1
- package/dist/prefab/MirrorConstructor.js.map +1 -0
- package/dist/prefab/MirrorOf.d.ts +19 -0
- package/dist/prefab/MirrorOf.d.ts.map +1 -0
- package/dist/prefab/MirrorOf.js +2 -0
- package/dist/prefab/MirrorOf.js.map +1 -0
- package/dist/prefab/Refreshed.d.ts +10 -0
- package/dist/prefab/Refreshed.d.ts.map +1 -0
- package/dist/prefab/Refreshed.js +2 -0
- package/dist/prefab/Refreshed.js.map +1 -0
- package/dist/prefab/RepositoryConstructor.d.ts +15 -0
- package/dist/prefab/RepositoryConstructor.d.ts.map +1 -0
- package/dist/prefab/{repository.js → RepositoryConstructor.js} +1 -1
- package/dist/prefab/RepositoryConstructor.js.map +1 -0
- package/dist/prefab/RepositoryOf.d.ts +7 -0
- package/dist/prefab/RepositoryOf.d.ts.map +1 -0
- package/dist/prefab/RepositoryOf.js +2 -0
- package/dist/prefab/RepositoryOf.js.map +1 -0
- package/dist/scan.d.ts +3 -22
- package/dist/scan.d.ts.map +1 -1
- package/dist/storage/{criterion.d.ts → Comparison.d.ts} +2 -3
- package/dist/storage/Comparison.d.ts.map +1 -0
- package/dist/storage/{criterion.js → Comparison.js} +1 -2
- package/dist/storage/Comparison.js.map +1 -0
- package/dist/storage/ComparisonName.d.ts +3 -0
- package/dist/storage/ComparisonName.d.ts.map +1 -0
- package/dist/storage/ComparisonName.js +2 -0
- package/dist/storage/ComparisonName.js.map +1 -0
- package/dist/storage/ListOptions.d.ts +23 -0
- package/dist/storage/ListOptions.d.ts.map +1 -0
- package/dist/storage/ListOptions.js +2 -0
- package/dist/storage/ListOptions.js.map +1 -0
- package/dist/storage/ListResult.d.ts +10 -0
- package/dist/storage/ListResult.d.ts.map +1 -0
- package/dist/storage/ListResult.js +2 -0
- package/dist/storage/ListResult.js.map +1 -0
- package/dist/storage/SelectOption.d.ts +6 -0
- package/dist/storage/SelectOption.d.ts.map +1 -0
- package/dist/storage/SelectOption.js +2 -0
- package/dist/storage/SelectOption.js.map +1 -0
- package/dist/storage/{port.d.ts → Storage.d.ts} +4 -47
- package/dist/storage/Storage.d.ts.map +1 -0
- package/dist/storage/{port.js → Storage.js} +1 -1
- package/dist/storage/Storage.js.map +1 -0
- package/dist/storage/StorageFactory.d.ts +8 -0
- package/dist/storage/StorageFactory.d.ts.map +1 -0
- package/dist/storage/StorageFactory.js +2 -0
- package/dist/storage/StorageFactory.js.map +1 -0
- package/dist/storage/{store.d.ts → Store.d.ts} +3 -5
- package/dist/storage/Store.d.ts.map +1 -0
- package/dist/storage/{store.js → Store.js} +3 -4
- package/dist/storage/Store.js.map +1 -0
- package/dist/storage/Together.d.ts +8 -0
- package/dist/storage/Together.d.ts.map +1 -0
- package/dist/storage/Together.js +2 -0
- package/dist/storage/Together.js.map +1 -0
- package/dist/storage/Values.d.ts +3 -0
- package/dist/storage/Values.d.ts.map +1 -0
- package/dist/storage/Values.js +2 -0
- package/dist/storage/Values.js.map +1 -0
- package/dist/verify.d.ts +6 -15
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +5 -5
- package/dist/verify.js.map +1 -1
- package/dist/wire/Addresses.d.ts +16 -0
- package/dist/wire/Addresses.d.ts.map +1 -0
- package/dist/wire/Addresses.js +2 -0
- package/dist/wire/Addresses.js.map +1 -0
- package/dist/wire/Answer.d.ts +3 -0
- package/dist/wire/Answer.d.ts.map +1 -0
- package/dist/wire/Answer.js +2 -0
- package/dist/wire/Answer.js.map +1 -0
- package/dist/wire/AnyHandler.d.ts +3 -0
- package/dist/wire/AnyHandler.d.ts.map +1 -0
- package/dist/wire/AnyHandler.js +2 -0
- package/dist/wire/AnyHandler.js.map +1 -0
- package/dist/wire/AppMiddleware.d.ts +8 -0
- package/dist/wire/AppMiddleware.d.ts.map +1 -0
- package/dist/wire/{middleware.js → AppMiddleware.js} +1 -2
- package/dist/wire/AppMiddleware.js.map +1 -0
- package/dist/wire/AppNext.d.ts +2 -0
- package/dist/wire/AppNext.d.ts.map +1 -0
- package/dist/wire/AppNext.js +2 -0
- package/dist/wire/AppNext.js.map +1 -0
- package/dist/wire/Call.d.ts +10 -0
- package/dist/wire/Call.d.ts.map +1 -0
- package/dist/wire/Call.js +12 -0
- package/dist/wire/Call.js.map +1 -0
- package/dist/wire/CallPage.d.ts +9 -0
- package/dist/wire/CallPage.d.ts.map +1 -0
- package/dist/wire/CallPage.js +2 -0
- package/dist/wire/CallPage.js.map +1 -0
- package/dist/wire/{CallLog.d.ts → CallRecord.d.ts} +3 -10
- package/dist/wire/CallRecord.d.ts.map +1 -0
- package/dist/wire/CallRecord.js +2 -0
- package/dist/wire/CallRecord.js.map +1 -0
- package/dist/wire/{emit.d.ts → Emit.d.ts} +1 -18
- package/dist/wire/Emit.d.ts.map +1 -0
- package/dist/wire/{emit.js → Emit.js} +1 -6
- package/dist/wire/Emit.js.map +1 -0
- package/dist/wire/ErrorCode.d.ts +23 -0
- package/dist/wire/ErrorCode.d.ts.map +1 -0
- package/dist/wire/ErrorCode.js +30 -0
- package/dist/wire/ErrorCode.js.map +1 -0
- package/dist/wire/Facade.d.ts +10 -0
- package/dist/wire/Facade.d.ts.map +1 -0
- package/dist/wire/Facade.js +9 -0
- package/dist/wire/Facade.js.map +1 -0
- package/dist/wire/FacadeName.d.ts +14 -0
- package/dist/wire/FacadeName.d.ts.map +1 -0
- package/dist/wire/FacadeName.js +2 -0
- package/dist/wire/FacadeName.js.map +1 -0
- package/dist/wire/Fact.d.ts +9 -0
- package/dist/wire/Fact.d.ts.map +1 -0
- package/dist/wire/Fact.js +2 -0
- package/dist/wire/Fact.js.map +1 -0
- package/dist/wire/FougereError.d.ts +35 -0
- package/dist/wire/FougereError.d.ts.map +1 -0
- package/dist/wire/{errors.js → FougereError.js} +9 -32
- package/dist/wire/FougereError.js.map +1 -0
- package/dist/wire/FougereErrorOptions.d.ts +10 -0
- package/dist/wire/FougereErrorOptions.d.ts.map +1 -0
- package/dist/wire/FougereErrorOptions.js +2 -0
- package/dist/wire/FougereErrorOptions.js.map +1 -0
- package/dist/wire/FougereHandlers.d.ts +10 -0
- package/dist/wire/FougereHandlers.d.ts.map +1 -0
- package/dist/wire/FougereHandlers.js +2 -0
- package/dist/wire/FougereHandlers.js.map +1 -0
- package/dist/wire/FougereOperations.d.ts +4 -0
- package/dist/wire/FougereOperations.d.ts.map +1 -0
- package/dist/wire/FougereOperations.js +2 -0
- package/dist/wire/FougereOperations.js.map +1 -0
- package/dist/wire/FrondCall.d.ts +10 -0
- package/dist/wire/FrondCall.d.ts.map +1 -0
- package/dist/wire/FrondCall.js +2 -0
- package/dist/wire/FrondCall.js.map +1 -0
- package/dist/wire/HandlerOf.d.ts +10 -0
- package/dist/wire/HandlerOf.d.ts.map +1 -0
- package/dist/wire/HandlerOf.js +2 -0
- package/dist/wire/HandlerOf.js.map +1 -0
- package/dist/wire/Invocation.d.ts +2 -10
- package/dist/wire/Invocation.d.ts.map +1 -1
- package/dist/wire/Invocation.js.map +1 -1
- package/dist/wire/InvocationContext.d.ts +10 -0
- package/dist/wire/InvocationContext.d.ts.map +1 -0
- package/dist/wire/InvocationContext.js +2 -0
- package/dist/wire/InvocationContext.js.map +1 -0
- package/dist/wire/{middleware.d.ts → OperationContext.d.ts} +2 -9
- package/dist/wire/OperationContext.d.ts.map +1 -0
- package/dist/wire/OperationContext.js +2 -0
- package/dist/wire/OperationContext.js.map +1 -0
- package/dist/wire/{operation.d.ts → OperationContract.d.ts} +15 -12
- package/dist/wire/OperationContract.d.ts.map +1 -0
- package/dist/wire/{operation.js → OperationContract.js} +1 -1
- package/dist/wire/OperationContract.js.map +1 -0
- package/dist/wire/OperationKind.d.ts +2 -0
- package/dist/wire/OperationKind.d.ts.map +1 -0
- package/dist/wire/OperationKind.js +2 -0
- package/dist/wire/OperationKind.js.map +1 -0
- package/dist/wire/OperationKindInference.d.ts +8 -0
- package/dist/wire/OperationKindInference.d.ts.map +1 -0
- package/dist/wire/OperationKindInference.js +2 -0
- package/dist/wire/OperationKindInference.js.map +1 -0
- package/dist/wire/OperationsMap.d.ts +7 -0
- package/dist/wire/OperationsMap.d.ts.map +1 -0
- package/dist/wire/OperationsMap.js +7 -0
- package/dist/wire/OperationsMap.js.map +1 -0
- package/dist/wire/Param.d.ts +8 -0
- package/dist/wire/Param.d.ts.map +1 -0
- package/dist/wire/Param.js +2 -0
- package/dist/wire/Param.js.map +1 -0
- package/dist/wire/PartialInvocation.d.ts +3 -0
- package/dist/wire/PartialInvocation.d.ts.map +1 -0
- package/dist/wire/PartialInvocation.js +2 -0
- package/dist/wire/PartialInvocation.js.map +1 -0
- package/dist/wire/Pipe.d.ts +10 -0
- package/dist/wire/Pipe.d.ts.map +1 -0
- package/dist/wire/Pipe.js +2 -0
- package/dist/wire/Pipe.js.map +1 -0
- package/dist/wire/Refused.d.ts +10 -0
- package/dist/wire/Refused.d.ts.map +1 -0
- package/dist/wire/Refused.js +2 -0
- package/dist/wire/Refused.js.map +1 -0
- package/dist/wire/RouteAddress.d.ts +1 -7
- package/dist/wire/RouteAddress.d.ts.map +1 -1
- package/dist/wire/RouteAddress.js.map +1 -1
- package/dist/wire/RouteAddressInput.d.ts +6 -0
- package/dist/wire/RouteAddressInput.d.ts.map +1 -0
- package/dist/wire/RouteAddressInput.js +2 -0
- package/dist/wire/RouteAddressInput.js.map +1 -0
- package/dist/wire/RouteKind.d.ts +3 -0
- package/dist/wire/RouteKind.d.ts.map +1 -0
- package/dist/wire/RouteKind.js +2 -0
- package/dist/wire/RouteKind.js.map +1 -0
- package/dist/wire/Rows.d.ts +8 -0
- package/dist/wire/Rows.d.ts.map +1 -0
- package/dist/wire/Rows.js +2 -0
- package/dist/wire/Rows.js.map +1 -0
- package/dist/wire/RpcAnswer.d.ts +6 -0
- package/dist/wire/RpcAnswer.d.ts.map +1 -0
- package/dist/wire/RpcAnswer.js +3 -0
- package/dist/wire/RpcAnswer.js.map +1 -0
- package/dist/wire/Signature.d.ts +13 -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/dist/wire/SignedCall.d.ts +12 -0
- package/dist/wire/SignedCall.d.ts.map +1 -0
- package/dist/wire/SignedCall.js +3 -0
- package/dist/wire/SignedCall.js.map +1 -0
- package/dist/wire/Transport.d.ts +5 -0
- package/dist/wire/Transport.d.ts.map +1 -0
- package/dist/wire/Transport.js +2 -0
- package/dist/wire/Transport.js.map +1 -0
- package/dist/wire/{signature.d.ts → TypeRef.d.ts} +1 -18
- package/dist/wire/TypeRef.d.ts.map +1 -0
- package/dist/wire/TypeRef.js +2 -0
- package/dist/wire/TypeRef.js.map +1 -0
- package/dist/wire/binding.d.ts +1 -1
- package/dist/wire/binding.d.ts.map +1 -1
- package/dist/wire/card/CardOp.d.ts +22 -0
- package/dist/wire/card/CardOp.d.ts.map +1 -0
- package/dist/wire/card/CardOp.js +2 -0
- package/dist/wire/card/CardOp.js.map +1 -0
- package/dist/wire/card/IdentityCard.d.ts +22 -0
- package/dist/wire/card/IdentityCard.d.ts.map +1 -0
- package/dist/wire/card/IdentityCard.js +25 -0
- package/dist/wire/card/IdentityCard.js.map +1 -0
- package/dist/wire/drift.d.ts +6 -6
- package/dist/wire/drift.d.ts.map +1 -1
- package/dist/wire/drift.js +18 -18
- package/dist/wire/drift.js.map +1 -1
- package/dist/wire/http-error.d.ts +1 -2
- package/dist/wire/http-error.d.ts.map +1 -1
- package/dist/wire/http-error.js +4 -3
- package/dist/wire/http-error.js.map +1 -1
- package/dist/wire/loggerMiddleware.d.ts +2 -2
- package/dist/wire/loggerMiddleware.d.ts.map +1 -1
- package/dist/wire/refusals.d.ts +33 -0
- package/dist/wire/refusals.d.ts.map +1 -0
- package/dist/wire/refusals.js +44 -0
- package/dist/wire/refusals.js.map +1 -0
- package/dist/wire/topology/DeclaredEdge.d.ts +6 -0
- package/dist/wire/topology/DeclaredEdge.d.ts.map +1 -0
- package/dist/wire/topology/DeclaredEdge.js +2 -0
- package/dist/wire/topology/DeclaredEdge.js.map +1 -0
- package/dist/wire/topology/DeclaredFrond.d.ts +11 -0
- package/dist/wire/topology/DeclaredFrond.d.ts.map +1 -0
- package/dist/wire/topology/DeclaredFrond.js +2 -0
- package/dist/wire/topology/DeclaredFrond.js.map +1 -0
- package/dist/wire/topology/DeclaredTopology.d.ts +12 -0
- package/dist/wire/topology/DeclaredTopology.d.ts.map +1 -0
- package/dist/wire/topology/DeclaredTopology.js +2 -0
- package/dist/wire/topology/DeclaredTopology.js.map +1 -0
- package/dist/wire/topology/Edge.d.ts +8 -0
- package/dist/wire/topology/Edge.d.ts.map +1 -0
- package/dist/wire/topology/Edge.js +2 -0
- package/dist/wire/topology/Edge.js.map +1 -0
- package/dist/wire/topology/FrondPlacement.d.ts +8 -0
- package/dist/wire/topology/FrondPlacement.d.ts.map +1 -0
- package/dist/wire/topology/FrondPlacement.js +2 -0
- package/dist/wire/topology/FrondPlacement.js.map +1 -0
- package/dist/wire/topology/TopologyReport.d.ts +14 -0
- package/dist/wire/topology/TopologyReport.d.ts.map +1 -0
- package/dist/wire/topology/TopologyReport.js +2 -0
- package/dist/wire/topology/TopologyReport.js.map +1 -0
- package/package.json +4 -4
- package/src/AdapterConfig.ts +11 -0
- package/src/AnswerFor.ts +7 -0
- package/src/Binding.ts +4 -0
- package/src/{identity.ts → CallIdentity.ts} +7 -25
- package/src/Constraint.ts +2 -0
- package/src/{conventions.ts → Conventions.ts} +20 -9
- package/src/ConventionsInput.ts +8 -0
- package/src/Ctor.ts +2 -0
- package/src/Declared.ts +8 -0
- package/src/DeclaredHandler.ts +18 -0
- package/src/DeclaredSubject.ts +6 -0
- package/src/{graph.ts → DomainCluster.ts} +2 -12
- package/src/EffectiveCollector.ts +7 -0
- package/src/EffectiveOperation.ts +62 -0
- package/src/{effective-operation.ts → EffectiveOperationModel.ts} +50 -106
- package/src/EffectiveOperationOptions.ts +7 -0
- package/src/EffectiveOperationSemantics.ts +7 -0
- package/src/EffectiveOperationsMap.ts +3 -0
- package/src/EffectiveParameter.ts +13 -0
- package/src/EntityNode.ts +6 -0
- package/src/{config-loader.ts → FougereConfig.ts} +15 -21
- package/src/FougereNames.ts +2 -0
- package/src/FougerePorts.ts +7 -0
- package/src/{frond-config.ts → FrondConfig.ts} +8 -46
- package/src/{declare.ts → FrondDeclaration.ts} +14 -35
- package/src/FrondIdentity.ts +7 -0
- package/src/NameOf.ts +12 -0
- package/src/OperationOverride.ts +38 -0
- package/src/PortChoice.ts +13 -0
- package/src/{source.ts → Source.ts} +4 -21
- package/src/SourceConfig.ts +10 -0
- package/src/SourceView.ts +7 -0
- package/src/VerifiedCall.ts +7 -0
- package/src/boot/App.ts +71 -0
- package/src/boot/AppLifecycle.ts +2 -20
- package/src/boot/AuthConfig.ts +14 -0
- package/src/boot/AuthContext.ts +12 -0
- package/src/boot/AuthRuntime.ts +19 -0
- package/src/boot/CreateAppOptions.ts +81 -0
- package/src/boot/Emissions.ts +86 -56
- package/src/boot/Extension.ts +20 -0
- package/src/boot/apply.ts +2 -2
- package/src/boot/bootstrap.ts +101 -70
- package/src/boot/card.ts +15 -11
- package/src/boot/declared.ts +91 -0
- package/src/boot/frame.ts +2 -2
- package/src/boot/hosted.ts +1 -1
- package/src/boot/install.ts +42 -30
- package/src/boot/ownership.ts +104 -43
- package/src/boot/ports.ts +52 -41
- package/src/boot/remote.ts +24 -17
- package/src/boot/runner.ts +2 -2
- package/src/boot/seed.ts +12 -10
- package/src/boot/statement-drift.ts +6 -5
- package/src/boot/together.ts +77 -37
- package/src/builtin/Carry.ts +49 -0
- package/src/builtin/LogLevel.ts +1 -0
- package/src/builtin/LogRecord.ts +12 -0
- package/src/builtin/LogSink.ts +4 -0
- package/src/builtin/{logger.ts → Logger.ts} +5 -98
- package/src/builtin/LoggerOptions.ts +14 -0
- package/src/builtin/Rendered.ts +21 -0
- package/src/contract.ts +35 -13
- package/src/crypto/CryptoPort.ts +12 -0
- package/src/crypto/PublicJwk.ts +7 -0
- package/src/crypto/Signer.ts +4 -0
- package/src/crypto/Verifier.ts +5 -0
- package/src/crypto/node.ts +4 -1
- package/src/crypto/webcrypto.ts +4 -1
- package/src/define.ts +1 -1
- package/src/descriptor/CollectorEntry.ts +11 -0
- package/src/descriptor/EntityEntry.ts +13 -0
- package/src/descriptor/ExtensionEntry.ts +15 -0
- package/src/descriptor/FrondDescriptor.ts +58 -0
- package/src/descriptor/FrondSource.ts +7 -0
- package/src/descriptor/Fronds.ts +2 -1
- package/src/descriptor/HandlerEntry.ts +27 -0
- package/src/descriptor/MiddlewareEntry.ts +16 -0
- package/src/descriptor/PresenterEntry.ts +23 -0
- package/src/descriptor/PresenterFieldMeta.ts +14 -0
- package/src/descriptor/ProviderEntry.ts +18 -0
- package/src/descriptor/SeedEntry.ts +11 -0
- package/src/descriptor/SeedFactory.ts +2 -0
- package/src/descriptor/bases.ts +30 -0
- package/src/descriptor/index.ts +24 -6
- package/src/descriptor/surface.ts +3 -2
- package/src/diagnostic.ts +41 -0
- package/src/dispatch/ArgumentResolver.ts +2 -7
- package/src/dispatch/CollectorLookup.ts +3 -0
- package/src/dispatch/CollectorResolver.ts +5 -0
- package/src/dispatch/DispatchEvent.ts +3 -6
- package/src/dispatch/DispatchLifecycle.ts +2 -1
- package/src/dispatch/DispatchObserver.ts +3 -0
- package/src/dispatch/DispatchPort.ts +1 -1
- package/src/dispatch/DispatchStage.ts +1 -0
- package/src/dispatch/Dispatcher.ts +1 -1
- package/src/dispatch/Facade.ts +25 -0
- package/src/dispatch/GuardReport.ts +9 -0
- package/src/dispatch/HandlerFacade.ts +28 -46
- package/src/dispatch/InFlight.ts +2 -1
- package/src/dispatch/LocalRoutePolicy.ts +3 -2
- package/src/dispatch/OperationRoute.ts +2 -3
- package/src/dispatch/PresenterArgs.ts +1 -0
- package/src/dispatch/PresenterExecutor.ts +3 -3
- package/src/dispatch/Route.ts +3 -2
- package/src/dispatch/RouteExecution.ts +3 -0
- package/src/dispatch/RoutePolicy.ts +1 -1
- package/src/dispatch/StorageGuard.ts +13 -19
- package/src/dispatch/presenterArguments.ts +3 -3
- package/src/dispatch/routeNotFound.ts +3 -2
- package/src/dispatch/validateInput.ts +3 -2
- package/src/entry/facade.ts +2 -2
- package/src/entry/transport.ts +2 -2
- package/src/index.ts +102 -52
- package/src/node.ts +2 -2
- package/src/prefab/AggregateConstructor.ts +9 -0
- package/src/prefab/AggregateOf.ts +6 -0
- package/src/prefab/AggregateShape.ts +7 -0
- package/src/prefab/{crud.ts → CrudConstructor.ts} +15 -20
- package/src/prefab/CrudOpName.ts +2 -0
- package/src/prefab/CrudOps.ts +24 -0
- package/src/prefab/CrudViews.ts +5 -0
- package/src/prefab/MirrorConstructor.ts +35 -0
- package/src/prefab/MirrorOf.ts +19 -0
- package/src/prefab/Refreshed.ts +9 -0
- package/src/prefab/{repository.ts → RepositoryConstructor.ts} +8 -24
- package/src/prefab/RepositoryOf.ts +7 -0
- package/src/scan.ts +3 -23
- package/src/storage/{criterion.ts → Comparison.ts} +1 -3
- package/src/storage/ComparisonName.ts +3 -0
- package/src/storage/ListOptions.ts +29 -0
- package/src/storage/ListResult.ts +9 -0
- package/src/storage/SelectOption.ts +6 -0
- package/src/storage/{port.ts → Storage.ts} +5 -56
- package/src/storage/StorageFactory.ts +8 -0
- package/src/storage/{store.ts → Store.ts} +5 -7
- package/src/storage/Together.ts +6 -0
- package/src/storage/Values.ts +2 -0
- package/src/verify.ts +12 -21
- package/src/wire/Addresses.ts +17 -0
- package/src/wire/Answer.ts +3 -0
- package/src/wire/AnyHandler.ts +2 -0
- package/src/wire/AppMiddleware.ts +24 -0
- package/src/wire/AppNext.ts +1 -0
- package/src/wire/Call.ts +15 -0
- package/src/wire/CallPage.ts +9 -0
- package/src/wire/{CallLog.ts → CallRecord.ts} +2 -10
- package/src/wire/{emit.ts → Emit.ts} +1 -24
- package/src/wire/ErrorCode.ts +33 -0
- package/src/wire/Facade.ts +28 -0
- package/src/wire/FacadeName.ts +13 -0
- package/src/wire/Fact.ts +8 -0
- package/src/wire/{errors.ts → FougereError.ts} +14 -53
- package/src/wire/FougereErrorOptions.ts +10 -0
- package/src/wire/FougereHandlers.ts +8 -0
- package/src/wire/FougereOperations.ts +2 -0
- package/src/wire/FrondCall.ts +9 -0
- package/src/wire/HandlerOf.ts +10 -0
- package/src/wire/Invocation.ts +2 -11
- package/src/wire/InvocationContext.ts +9 -0
- package/src/wire/OperationContext.ts +18 -0
- package/src/wire/{operation.ts → OperationContract.ts} +14 -23
- package/src/wire/OperationKind.ts +1 -0
- package/src/wire/OperationKindInference.ts +8 -0
- package/src/wire/OperationsMap.ts +14 -0
- package/src/wire/Param.ts +8 -0
- package/src/wire/PartialInvocation.ts +3 -0
- package/src/wire/Pipe.ts +9 -0
- package/src/wire/Refused.ts +13 -0
- package/src/wire/RouteAddress.ts +1 -8
- package/src/wire/RouteAddressInput.ts +5 -0
- package/src/wire/RouteKind.ts +2 -0
- package/src/wire/Rows.ts +7 -0
- package/src/wire/RpcAnswer.ts +7 -0
- package/src/wire/Signature.ts +13 -0
- package/src/wire/SignedCall.ts +12 -0
- package/src/wire/Transport.ts +5 -0
- package/src/wire/{signature.ts → TypeRef.ts} +0 -19
- package/src/wire/binding.ts +1 -1
- package/src/wire/card/CardOp.ts +22 -0
- package/src/wire/card/IdentityCard.ts +41 -0
- package/src/wire/drift.ts +22 -22
- package/src/wire/http-error.ts +4 -3
- package/src/wire/loggerMiddleware.ts +2 -2
- package/src/wire/refusals.ts +55 -0
- package/src/wire/topology/DeclaredEdge.ts +5 -0
- package/src/wire/topology/DeclaredFrond.ts +10 -0
- package/src/wire/topology/DeclaredTopology.ts +12 -0
- package/src/wire/topology/Edge.ts +7 -0
- package/src/wire/topology/FrondPlacement.ts +7 -0
- package/src/wire/topology/TopologyReport.ts +14 -0
- package/dist/boot/auth.d.ts +0 -43
- package/dist/boot/auth.d.ts.map +0 -1
- package/dist/boot/auth.js +0 -2
- package/dist/boot/auth.js.map +0 -1
- package/dist/boot/types.d.ts +0 -147
- package/dist/boot/types.d.ts.map +0 -1
- package/dist/boot/types.js +0 -2
- package/dist/boot/types.js.map +0 -1
- package/dist/builtin/logger.d.ts +0 -96
- package/dist/builtin/logger.d.ts.map +0 -1
- package/dist/builtin/logger.js.map +0 -1
- package/dist/config-loader.d.ts.map +0 -1
- package/dist/config-loader.js.map +0 -1
- package/dist/conventions.d.ts.map +0 -1
- package/dist/conventions.js.map +0 -1
- package/dist/crypto/port.d.ts +0 -26
- package/dist/crypto/port.d.ts.map +0 -1
- package/dist/crypto/port.js +0 -3
- package/dist/crypto/port.js.map +0 -1
- package/dist/declare.d.ts.map +0 -1
- package/dist/declare.js.map +0 -1
- package/dist/descriptor/frond.d.ts +0 -187
- package/dist/descriptor/frond.d.ts.map +0 -1
- package/dist/descriptor/frond.js.map +0 -1
- package/dist/effective-operation.d.ts +0 -93
- package/dist/effective-operation.d.ts.map +0 -1
- package/dist/effective-operation.js.map +0 -1
- package/dist/frond-config.d.ts +0 -71
- package/dist/frond-config.d.ts.map +0 -1
- package/dist/frond-config.js.map +0 -1
- package/dist/graph.d.ts.map +0 -1
- package/dist/graph.js.map +0 -1
- package/dist/identity.d.ts.map +0 -1
- package/dist/identity.js.map +0 -1
- package/dist/prefab/crud.d.ts.map +0 -1
- package/dist/prefab/crud.js.map +0 -1
- package/dist/prefab/mirror.d.ts +0 -33
- package/dist/prefab/mirror.d.ts.map +0 -1
- package/dist/prefab/mirror.js.map +0 -1
- package/dist/prefab/repository.d.ts +0 -40
- package/dist/prefab/repository.d.ts.map +0 -1
- package/dist/prefab/repository.js.map +0 -1
- package/dist/source.d.ts.map +0 -1
- package/dist/storage/criterion.d.ts.map +0 -1
- package/dist/storage/criterion.js.map +0 -1
- package/dist/storage/port.d.ts.map +0 -1
- package/dist/storage/port.js.map +0 -1
- package/dist/storage/store.d.ts.map +0 -1
- package/dist/storage/store.js.map +0 -1
- package/dist/wire/CallLog.d.ts.map +0 -1
- package/dist/wire/CallLog.js +0 -2
- package/dist/wire/CallLog.js.map +0 -1
- package/dist/wire/call.d.ts +0 -105
- package/dist/wire/call.d.ts.map +0 -1
- package/dist/wire/call.js +0 -47
- package/dist/wire/call.js.map +0 -1
- package/dist/wire/emit.d.ts.map +0 -1
- package/dist/wire/emit.js.map +0 -1
- package/dist/wire/errors.d.ts +0 -58
- package/dist/wire/errors.d.ts.map +0 -1
- package/dist/wire/errors.js.map +0 -1
- package/dist/wire/middleware.d.ts.map +0 -1
- package/dist/wire/middleware.js.map +0 -1
- package/dist/wire/operation.d.ts.map +0 -1
- package/dist/wire/operation.js.map +0 -1
- package/dist/wire/signature.d.ts.map +0 -1
- package/dist/wire/signature.js +0 -2
- package/dist/wire/signature.js.map +0 -1
- package/src/boot/auth.ts +0 -45
- package/src/boot/types.ts +0 -148
- package/src/crypto/port.ts +0 -29
- package/src/descriptor/frond.ts +0 -195
- package/src/prefab/mirror.ts +0 -60
- package/src/wire/call.ts +0 -150
- package/src/wire/middleware.ts +0 -43
|
@@ -1,63 +1,24 @@
|
|
|
1
|
+
import type { ValidationError } from '@fougere/schema';
|
|
2
|
+
import { ErrorCode } from './ErrorCode.js';
|
|
3
|
+
import type { FougereErrorOptions } from './FougereErrorOptions.js';
|
|
4
|
+
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
6
|
+
* A refusal, and which one — narrowed by the operation that answered it where the caller knows.
|
|
3
7
|
*
|
|
4
|
-
*
|
|
8
|
+
* `Code` defaults to every code there is, so a thrower writes what it always wrote. What it buys
|
|
9
|
+
* is on the READING side: a client generated from a card gets `FougereError<'NOT_FOUND' |
|
|
10
|
+
* 'CONFLICT'>`, and a `switch` over `code` with a `never` in its default stops compiling the day
|
|
11
|
+
* the op learns to refuse something else.
|
|
12
|
+
*
|
|
13
|
+
* Documented: [observability](https://fougere.dev/docs/infra/observability).
|
|
5
14
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
// ── ErrorCode ──────────────────────────────────
|
|
10
|
-
|
|
11
|
-
/** Semantic error codes — transport-agnostic. Each bridge maps them to its own format. */
|
|
12
|
-
export enum ErrorCode {
|
|
13
|
-
// Input
|
|
14
|
-
VALIDATION_FAILED = 'VALIDATION_FAILED',
|
|
15
|
-
BAD_REQUEST = 'BAD_REQUEST',
|
|
16
|
-
|
|
17
|
-
// Auth
|
|
18
|
-
UNAUTHORIZED = 'UNAUTHORIZED',
|
|
19
|
-
FORBIDDEN = 'FORBIDDEN',
|
|
20
|
-
|
|
21
|
-
// Resources
|
|
22
|
-
NOT_FOUND = 'NOT_FOUND',
|
|
23
|
-
GONE = 'GONE',
|
|
24
|
-
CONFLICT = 'CONFLICT',
|
|
25
|
-
LOCKED = 'LOCKED',
|
|
26
|
-
METHOD_NOT_ALLOWED = 'METHOD_NOT_ALLOWED',
|
|
27
|
-
|
|
28
|
-
// Limits
|
|
29
|
-
PRECONDITION_FAILED = 'PRECONDITION_FAILED',
|
|
30
|
-
PAYLOAD_TOO_LARGE = 'PAYLOAD_TOO_LARGE',
|
|
31
|
-
UNPROCESSABLE_ENTITY = 'UNPROCESSABLE_ENTITY',
|
|
32
|
-
TOO_MANY_REQUESTS = 'TOO_MANY_REQUESTS',
|
|
33
|
-
REQUEST_TIMEOUT = 'REQUEST_TIMEOUT',
|
|
34
|
-
|
|
35
|
-
// Server
|
|
36
|
-
INTERNAL_ERROR = 'INTERNAL_ERROR',
|
|
37
|
-
NOT_IMPLEMENTED = 'NOT_IMPLEMENTED',
|
|
38
|
-
BAD_GATEWAY = 'BAD_GATEWAY',
|
|
39
|
-
SERVICE_UNAVAILABLE = 'SERVICE_UNAVAILABLE',
|
|
40
|
-
GATEWAY_TIMEOUT = 'GATEWAY_TIMEOUT',
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// ── FougereError ────────────────────────────────
|
|
44
|
-
|
|
45
|
-
export interface FougereErrorOptions {
|
|
46
|
-
code: ErrorCode;
|
|
47
|
-
message: string;
|
|
48
|
-
entity?: string;
|
|
49
|
-
operation?: string;
|
|
50
|
-
details?: unknown;
|
|
51
|
-
cause?: unknown;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export class FougereError extends Error {
|
|
55
|
-
readonly code: ErrorCode;
|
|
15
|
+
export class FougereError<Code extends ErrorCode = ErrorCode> extends Error {
|
|
16
|
+
readonly code: Code;
|
|
56
17
|
readonly entity?: string;
|
|
57
18
|
readonly operation?: string;
|
|
58
19
|
readonly details?: unknown;
|
|
59
20
|
|
|
60
|
-
constructor(options: FougereErrorOptions) {
|
|
21
|
+
constructor(options: FougereErrorOptions<Code>) {
|
|
61
22
|
super(options.message, { cause: options.cause });
|
|
62
23
|
this.name = new.target.name;
|
|
63
24
|
this.code = options.code;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The handler behind each address, carried as `import('…/PostHandler').default`.
|
|
3
|
+
*
|
|
4
|
+
* TypeScript resolves it from the source, so the operations that exist and what each one
|
|
5
|
+
* answers cost the generated module nothing: no signature is printed into it, and none can
|
|
6
|
+
* drift from the class it was read off.
|
|
7
|
+
*/
|
|
8
|
+
export interface FougereHandlers {}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Target of a call — which façade operation, wherever it lives. */
|
|
2
|
+
export interface FrondCall {
|
|
3
|
+
/** Frond name, when the caller knows it. Routing hint only. */
|
|
4
|
+
frond?: string;
|
|
5
|
+
/** Entity registration key (e.g. 'product'). */
|
|
6
|
+
entity: string;
|
|
7
|
+
/** Façade operation name (e.g. 'findById', 'search'). */
|
|
8
|
+
op: string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FougereHandlers } from './FougereHandlers.js';
|
|
2
|
+
import type { AnyHandler } from './AnyHandler.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The handler that answers at one address. It falls back to an unconstrained facade when nothing
|
|
6
|
+
* was generated, because a `never` there would refuse every call a project makes.
|
|
7
|
+
*/
|
|
8
|
+
export type HandlerOf<Address extends string> =
|
|
9
|
+
[keyof FougereHandlers] extends [never] ? AnyHandler
|
|
10
|
+
: Address extends keyof FougereHandlers ? FougereHandlers[Address] : AnyHandler;
|
package/src/wire/Invocation.ts
CHANGED
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
query: Record<string, unknown>;
|
|
4
|
-
input: unknown;
|
|
5
|
-
state: Record<string, unknown>;
|
|
6
|
-
trace?: string;
|
|
7
|
-
identity?: string;
|
|
8
|
-
caller?: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export type PartialInvocation = Partial<InvocationContext>;
|
|
1
|
+
import type { InvocationContext } from './InvocationContext.js';
|
|
2
|
+
import type { PartialInvocation } from './PartialInvocation.js';
|
|
12
3
|
|
|
13
4
|
/** Freezes plain data deeply, and leaves a class instance alone — a `Date` is not a record. */
|
|
14
5
|
function canonicalValue(value: unknown): unknown {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// ── Types ───────────────────────────────────────
|
|
2
|
+
export interface OperationContext {
|
|
3
|
+
/** Entity name (e.g. 'product'). */
|
|
4
|
+
entity: string;
|
|
5
|
+
/**
|
|
6
|
+
* Which frond owns this operation — the unit that gets deployed, and therefore the
|
|
7
|
+
* one a reader groups by first. Absent only where no frond claims the call.
|
|
8
|
+
*/
|
|
9
|
+
frond?: string;
|
|
10
|
+
/** Operation name (e.g. 'create', 'findById', 'searchByTitle'). */
|
|
11
|
+
operation: string;
|
|
12
|
+
/** Arguments passed to the operation. */
|
|
13
|
+
args: unknown[];
|
|
14
|
+
/** Extensible bag — middlewares deposit data here (user, permissions, etc.). */
|
|
15
|
+
state: Record<string, unknown>;
|
|
16
|
+
/** Transport-agnostic invocation context (params, query, input, state). */
|
|
17
|
+
invocation?: import('./InvocationContext.js').InvocationContext;
|
|
18
|
+
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { SchemaView } from '@fougere/schema';
|
|
2
2
|
import type { BindingPlan } from './binding.js';
|
|
3
|
-
import type { Signature
|
|
3
|
+
import type { Signature } from './Signature.js';
|
|
4
|
+
import type { TypeRef } from './TypeRef.js';
|
|
5
|
+
import type { ErrorCode } from './ErrorCode.js';
|
|
6
|
+
import type { OperationKind } from './OperationKind.js';
|
|
7
|
+
import type { OperationKindInference } from './OperationKindInference.js';
|
|
4
8
|
|
|
5
9
|
/** The contract of one operation — everything the façade needs to serve a call. */
|
|
6
10
|
export interface OperationContract {
|
|
@@ -16,6 +20,15 @@ export interface OperationContract {
|
|
|
16
20
|
cardinality?: 'one' | 'maybe' | 'many' | 'page' | 'none';
|
|
17
21
|
/** The argument names and TYPES — the one thing `binding` cannot say. */
|
|
18
22
|
signature?: Signature;
|
|
23
|
+
/**
|
|
24
|
+
* The refusals a path from this operation can reach, walked from every `throw` upward.
|
|
25
|
+
*
|
|
26
|
+
* What the FRAMEWORK refuses is not here: `VALIDATION_FAILED` follows from `input`,
|
|
27
|
+
* `SERVICE_UNAVAILABLE` from being dispatched at all, the gateway pair from a remote
|
|
28
|
+
* placement — all already on the card, so listing them per op would write one fact twice.
|
|
29
|
+
* `refusalsOf` puts the two halves together for whoever reads.
|
|
30
|
+
*/
|
|
31
|
+
errors?: ErrorCode[];
|
|
19
32
|
}
|
|
20
33
|
|
|
21
34
|
/** Read an op's cardinality off its parsed return type. */
|
|
@@ -32,26 +45,6 @@ export function cardinalityOf(type: TypeRef | undefined): OperationContract['car
|
|
|
32
45
|
/** A return that carries no schema — the card has nothing to project onto it. */
|
|
33
46
|
const PRIMITIVE_RETURNS = new Set(['boolean', 'string', 'number', 'void', 'undefined', 'unknown', 'any']);
|
|
34
47
|
|
|
35
|
-
/** Map of operation name → its contract. */
|
|
36
|
-
export type OperationsMap = Map<string, OperationContract>;
|
|
37
|
-
|
|
38
|
-
export type { TypeRef, Param };
|
|
39
|
-
|
|
40
|
-
// ─── Operation intent (read vs write) ──────────
|
|
41
|
-
// Naming convention for inferred handlers — scheduled to die with the
|
|
42
|
-
// handler-kind plan (docs/notes/handler-kind.md). Lives here, NOT in
|
|
43
|
-
// @fougere/schema: it is a runtime convention about operations, not a
|
|
44
|
-
// schema concept.
|
|
45
|
-
|
|
46
|
-
export type OperationKind = 'query' | 'command';
|
|
47
|
-
|
|
48
|
-
/** The convention's evidence, including both sides when a composed name contradicts itself. */
|
|
49
|
-
export interface OperationKindInference {
|
|
50
|
-
kind?: OperationKind;
|
|
51
|
-
queryMatches: string[];
|
|
52
|
-
commandMatches: string[];
|
|
53
|
-
}
|
|
54
|
-
|
|
55
48
|
/** Deliberately finite. */
|
|
56
49
|
const QUERY_VERBS = new Set([
|
|
57
50
|
'all', 'check', 'count', 'exists', 'fetch', 'find', 'get', 'has', 'health', 'list',
|
|
@@ -157,5 +150,3 @@ function requireOperationKind(
|
|
|
157
150
|
+ `Declare operations.${name}.kind as 'query' or 'command' in frond.config.ts.`,
|
|
158
151
|
);
|
|
159
152
|
}
|
|
160
|
-
|
|
161
|
-
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type OperationKind = 'query' | 'command';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { OperationKind } from './OperationKind.js';
|
|
2
|
+
|
|
3
|
+
/** The convention's evidence, including both sides when a composed name contradicts itself. */
|
|
4
|
+
export interface OperationKindInference {
|
|
5
|
+
kind?: OperationKind;
|
|
6
|
+
queryMatches: string[];
|
|
7
|
+
commandMatches: string[];
|
|
8
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Param } from './Param.js';
|
|
2
|
+
import type { TypeRef } from './TypeRef.js';
|
|
3
|
+
import type { OperationContract } from './OperationContract.js';
|
|
4
|
+
|
|
5
|
+
/** Map of operation name → its contract. */
|
|
6
|
+
export type OperationsMap = Map<string, OperationContract>;
|
|
7
|
+
|
|
8
|
+
export type { TypeRef, Param };
|
|
9
|
+
|
|
10
|
+
// ─── Operation intent (read vs write) ──────────
|
|
11
|
+
// Naming convention for inferred handlers — scheduled to die with the
|
|
12
|
+
// handler-kind plan (docs/notes/handler-kind.md). Lives here, NOT in
|
|
13
|
+
// @fougere/schema: it is a runtime convention about operations, not a
|
|
14
|
+
// schema concept.
|
package/src/wire/Pipe.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The same fact, BEFORE it is final: an op taking one ANSWERS the value every subscriber
|
|
3
|
+
* then receives, so it is the declared form of what `Emissions.stamped` already does for
|
|
4
|
+
* `created()`.
|
|
5
|
+
*
|
|
6
|
+
* Not a second announcement and not a chain a subscriber joins: the links run once, before
|
|
7
|
+
* anyone is handed anything, which is what keeps a fact the same for every reader.
|
|
8
|
+
*/
|
|
9
|
+
export type Pipe<T> = T;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ErrorCode } from './ErrorCode.js';
|
|
2
|
+
import type { FougereOperations } from './FougereOperations.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* What one call can come back refusing — both halves, the frond's and the framework's, as the
|
|
6
|
+
* generated module already merged them. Every code until a scan has narrowed it.
|
|
7
|
+
*/
|
|
8
|
+
export type Refused<Address extends string, Op extends string> =
|
|
9
|
+
`${Address}.${Op}` extends keyof FougereOperations
|
|
10
|
+
? FougereOperations[`${Address}.${Op}`] extends { errors: infer Codes }
|
|
11
|
+
? [Codes] extends [ErrorCode] ? Codes : ErrorCode
|
|
12
|
+
: ErrorCode
|
|
13
|
+
: ErrorCode;
|
package/src/wire/RouteAddress.ts
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export type RouteKind = 'local' | 'remote' | 'system';
|
|
3
|
-
|
|
4
|
-
export interface RouteAddressInput {
|
|
5
|
-
entity: string;
|
|
6
|
-
operation: string;
|
|
7
|
-
surface?: string;
|
|
8
|
-
}
|
|
1
|
+
import type { RouteAddressInput } from './RouteAddressInput.js';
|
|
9
2
|
|
|
10
3
|
/** Refuses an empty segment, so no address can be built that nothing can serve. */
|
|
11
4
|
function required(value: string, name: string): string {
|
package/src/wire/Rows.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The row inside what an operation answers — the page reads rows whether the op returns a list,
|
|
3
|
+
* a page or a single one, so `items` is typed off this rather than off the whole answer.
|
|
4
|
+
*/
|
|
5
|
+
export type Rows<Answered> = Answered extends readonly (infer Row)[] ? Row
|
|
6
|
+
: Answered extends { items: readonly (infer Row)[] } ? Row
|
|
7
|
+
: Answered;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { InvocationContext } from './InvocationContext.js';
|
|
2
|
+
|
|
3
|
+
/** Reserved namespace — calls the runner answers itself, never a façade. */
|
|
4
|
+
export const RPC_ENTITY = 'rpc';
|
|
5
|
+
|
|
6
|
+
/** What an `rpc` op answers — the facade for what the app says about ITSELF, never about a row. */
|
|
7
|
+
export type RpcAnswer = (invocation: InvocationContext, surface?: string) => unknown;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TypeRef } from './TypeRef.js';
|
|
2
|
+
import type { Param } from './Param.js';
|
|
3
|
+
|
|
4
|
+
/** A method's signature, as a contract is built from it — the shape, never the reading. */
|
|
5
|
+
export interface Signature {
|
|
6
|
+
name: string;
|
|
7
|
+
params: Param[];
|
|
8
|
+
returnType?: TypeRef;
|
|
9
|
+
/** Came from a base class, not from the file being scanned. */
|
|
10
|
+
inherited?: boolean;
|
|
11
|
+
/** The operation in words — the first sentence of the method's doc comment. */
|
|
12
|
+
description?: string;
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** What a receiver accepts before it stops reading an input. */
|
|
2
|
+
export const MAX_BODY_BYTES = 1024 * 1024;
|
|
3
|
+
|
|
4
|
+
/** Everything a caller's envelope covers — the call as the sender meant it. */
|
|
5
|
+
export interface SignedCall {
|
|
6
|
+
entity: string;
|
|
7
|
+
op: string;
|
|
8
|
+
params?: Record<string, unknown>;
|
|
9
|
+
query?: Record<string, unknown>;
|
|
10
|
+
input?: unknown;
|
|
11
|
+
state?: Record<string, unknown>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { InvocationContext } from './InvocationContext.js';
|
|
2
|
+
import type { FrondCall } from './FrondCall.js';
|
|
3
|
+
|
|
4
|
+
/** A transport executes a call somewhere else. Failures surface as thrown FougereError. */
|
|
5
|
+
export type Transport = (call: FrondCall, invocation: InvocationContext) => Promise<unknown>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** A method's signature, as a contract is built from it — the shape, never the reading. */
|
|
2
1
|
/** A type reference — primitives, entities, arrays, generics. */
|
|
3
2
|
export interface TypeRef {
|
|
4
3
|
/** Raw type text as written in source (e.g. 'Pagination<Post>'). */
|
|
@@ -18,21 +17,3 @@ export interface TypeRef {
|
|
|
18
17
|
/** Whether this is a Promise wrapper (unwrapped in output). */
|
|
19
18
|
promise?: boolean;
|
|
20
19
|
}
|
|
21
|
-
|
|
22
|
-
/** One parameter of a signature. */
|
|
23
|
-
export interface Param {
|
|
24
|
-
name: string;
|
|
25
|
-
type: TypeRef;
|
|
26
|
-
optional?: boolean;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/** A method signature. */
|
|
30
|
-
export interface Signature {
|
|
31
|
-
name: string;
|
|
32
|
-
params: Param[];
|
|
33
|
-
returnType?: TypeRef;
|
|
34
|
-
/** Came from a base class, not from the file being scanned. */
|
|
35
|
-
inherited?: boolean;
|
|
36
|
-
/** The operation in words — the first sentence of the method's doc comment. */
|
|
37
|
-
description?: string;
|
|
38
|
-
}
|
package/src/wire/binding.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Where each parameter of an operation gets its value — decided once at boot from the parsed
|
|
3
3
|
* signature, replayed per call by `resolveArgs`.
|
|
4
4
|
*/
|
|
5
|
-
import type { Param } from './
|
|
5
|
+
import type { Param } from './Param.js';
|
|
6
6
|
import { lowerFirst } from '@fougere/schema';
|
|
7
7
|
|
|
8
8
|
// ── Types ─────────────────────────────────────
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { SchemaDescriptor } from '@fougere/schema';
|
|
2
|
+
import type { ErrorCode } from '../ErrorCode.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* One operation, as a stranger meets it — its name, what it is for, what it takes and whether it
|
|
6
|
+
* reads or writes.
|
|
7
|
+
*/
|
|
8
|
+
export interface CardOp {
|
|
9
|
+
name: string;
|
|
10
|
+
/** The author's own doc sentence, when the method carries one. */
|
|
11
|
+
description?: string;
|
|
12
|
+
/** JSON Schema of what it accepts, when the contract names a view. */
|
|
13
|
+
input?: SchemaDescriptor;
|
|
14
|
+
/** JSON Schema of what it emits, when the contract names one. */
|
|
15
|
+
output?: SchemaDescriptor;
|
|
16
|
+
/** `query` reads, `command` writes — the same call REST turns into GET vs POST. */
|
|
17
|
+
kind: 'query' | 'command';
|
|
18
|
+
/** How much `output` describes. */
|
|
19
|
+
cardinality?: 'one' | 'maybe' | 'many' | 'page' | 'none';
|
|
20
|
+
/** What this op can REFUSE, beyond what `kind` and `input` already imply. */
|
|
21
|
+
errors?: ErrorCode[];
|
|
22
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { SchemaDescriptor } from '@fougere/schema';
|
|
2
|
+
import { ErrorCode } from '../ErrorCode.js';
|
|
3
|
+
import { FougereError } from '../FougereError.js';
|
|
4
|
+
import type { CardOp } from './CardOp.js';
|
|
5
|
+
|
|
6
|
+
/** What an app hosts — the wire projection of its scanned fronds. */
|
|
7
|
+
export interface IdentityCard {
|
|
8
|
+
fronds: {
|
|
9
|
+
name: string;
|
|
10
|
+
facades: {
|
|
11
|
+
name: string;
|
|
12
|
+
ops: CardOp[];
|
|
13
|
+
/** The shape stored under this name — **absent when nothing is**. */
|
|
14
|
+
schema?: SchemaDescriptor;
|
|
15
|
+
}[];
|
|
16
|
+
/** The facts this frond ANNOUNCES — one entry per `Emit<T>` its handlers inject. */
|
|
17
|
+
facts: { name: string; schema?: SchemaDescriptor }[];
|
|
18
|
+
}[];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** The shape a card must have to be walked — `fronds`, and each frond's `facades`. */
|
|
22
|
+
export function assertIdentityCard(value: unknown, source: string): IdentityCard {
|
|
23
|
+
const card = value as IdentityCard | undefined;
|
|
24
|
+
const fronds = Array.isArray(card?.fronds) ? card.fronds : undefined;
|
|
25
|
+
if (!fronds) throw cardRefusal(source, 'no fronds array');
|
|
26
|
+
for (const frond of fronds) {
|
|
27
|
+
if (!frond || typeof frond.name !== 'string') throw cardRefusal(source, 'a frond with no name');
|
|
28
|
+
if (!Array.isArray(frond.facades)) throw cardRefusal(source, `frond '${frond.name}' has no valid facades array`);
|
|
29
|
+
}
|
|
30
|
+
return card as IdentityCard;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function cardRefusal(source: string, what: string): FougereError {
|
|
34
|
+
return new FougereError({
|
|
35
|
+
code: ErrorCode.INTERNAL_ERROR,
|
|
36
|
+
message:
|
|
37
|
+
`${source} answered an invalid identity card: ${what}.\n`
|
|
38
|
+
+ ` A card is what tells this process what the other one hosts, so nothing can be routed from it.\n`
|
|
39
|
+
+ ` - Check that the address serves a Fougere app, and that its version still speaks this card.`,
|
|
40
|
+
});
|
|
41
|
+
}
|
package/src/wire/drift.ts
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { Card, type Change, type SchemaDescriptor } from '@fougere/schema';
|
|
2
|
-
import type { IdentityCard } from './
|
|
2
|
+
import type { IdentityCard } from './card/IdentityCard.js';
|
|
3
3
|
|
|
4
4
|
/** What separates the copy a consumer holds from what the producer actually serves. */
|
|
5
5
|
export interface CardDrift {
|
|
6
6
|
frond: string;
|
|
7
|
-
/** A
|
|
7
|
+
/** A facade the consumer calls that the producer no longer serves. */
|
|
8
8
|
missingDoors: string[];
|
|
9
|
-
/** An operation the consumer calls that the
|
|
10
|
-
missingOps: {
|
|
11
|
-
/** A shape that moved under a
|
|
12
|
-
shapes: {
|
|
9
|
+
/** An operation the consumer calls that the facade no longer has. */
|
|
10
|
+
missingOps: { facade: string; ops: string[] }[];
|
|
11
|
+
/** A shape that moved under a facade the consumer still calls. */
|
|
12
|
+
shapes: { facade: string; changes: Change[] }[];
|
|
13
13
|
/** A fact the consumer subscribes to whose shape moved, or that is gone. */
|
|
14
14
|
facts: { fact: string; changes: Change[] | 'gone' }[];
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
/** Every
|
|
18
|
-
function
|
|
17
|
+
/** Every facade of a card, by name. */
|
|
18
|
+
function facadesOf(card: IdentityCard, frond: string): Map<string, { ops: Set<string>; schema?: SchemaDescriptor }> {
|
|
19
19
|
const found = new Map<string, { ops: Set<string>; schema?: SchemaDescriptor }>();
|
|
20
20
|
for (const one of card.fronds) {
|
|
21
21
|
if (one.name !== frond) continue;
|
|
22
|
-
for (const
|
|
23
|
-
found.set(
|
|
22
|
+
for (const facade of one.facades) {
|
|
23
|
+
found.set(facade.name, { ops: new Set(facade.ops.map((op) => op.name)), schema: facade.schema });
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
return found;
|
|
@@ -37,23 +37,23 @@ function factsOf(card: IdentityCard, frond: string): Map<string, SchemaDescripto
|
|
|
37
37
|
|
|
38
38
|
/** What a consumer's synced copy no longer matches in what the producer serves. */
|
|
39
39
|
export function driftOf(mine: IdentityCard, theirs: IdentityCard, frond: string): CardDrift {
|
|
40
|
-
const
|
|
41
|
-
const served =
|
|
40
|
+
const mineFacades = facadesOf(mine, frond);
|
|
41
|
+
const served = facadesOf(theirs, frond);
|
|
42
42
|
const drift: CardDrift = { frond, missingDoors: [], missingOps: [], shapes: [], facts: [] };
|
|
43
43
|
|
|
44
|
-
for (const [name,
|
|
44
|
+
for (const [name, facade] of mineFacades) {
|
|
45
45
|
const there = served.get(name);
|
|
46
46
|
if (!there) { drift.missingDoors.push(name); continue; }
|
|
47
47
|
|
|
48
|
-
const missing = [...
|
|
49
|
-
if (missing.length > 0) drift.missingOps.push({
|
|
48
|
+
const missing = [...facade.ops].filter((op) => !there.ops.has(op));
|
|
49
|
+
if (missing.length > 0) drift.missingOps.push({ facade: name, ops: missing.sort() });
|
|
50
50
|
|
|
51
|
-
if (
|
|
51
|
+
if (facade.schema && there.schema) {
|
|
52
52
|
// `Card.diff` never guesses a rename — a field gone plus a field appeared lands in
|
|
53
53
|
// `ambiguous`, and only a declaration settles it. Here nobody can declare one, so
|
|
54
54
|
// the pair is reported as it is and a human reads it.
|
|
55
|
-
const moved = Card.fromDescriptor(
|
|
56
|
-
if (moved.changes.length > 0) drift.shapes.push({
|
|
55
|
+
const moved = Card.fromDescriptor(facade.schema).diff(Card.fromDescriptor(there.schema));
|
|
56
|
+
if (moved.changes.length > 0) drift.shapes.push({ facade: name, changes: moved.changes });
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -81,10 +81,10 @@ export function agrees(drift: CardDrift): boolean {
|
|
|
81
81
|
/** The drift, in the words a deploy needs. */
|
|
82
82
|
export function explain(drift: CardDrift): string[] {
|
|
83
83
|
const lines: string[] = [];
|
|
84
|
-
for (const
|
|
85
|
-
for (const {
|
|
86
|
-
for (const {
|
|
87
|
-
for (const change of changes) lines.push(`${drift.frond}.${
|
|
84
|
+
for (const facade of drift.missingDoors) lines.push(`${drift.frond}.${facade} — you call it, it is not served`);
|
|
85
|
+
for (const { facade, ops } of drift.missingOps) lines.push(`${drift.frond}.${facade} — gone: ${ops.join(', ')}`);
|
|
86
|
+
for (const { facade, changes } of drift.shapes) {
|
|
87
|
+
for (const change of changes) lines.push(`${drift.frond}.${facade} — ${describe(change)}`);
|
|
88
88
|
}
|
|
89
89
|
for (const { fact, changes } of drift.facts) {
|
|
90
90
|
if (changes === 'gone') { lines.push(`${fact} — you subscribe to it, it is no longer announced`); continue; }
|
package/src/wire/http-error.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** HTTP reading of an error — used by HTTP bridges (REST, Next, Inertia). */
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { ErrorCode } from './ErrorCode.js';
|
|
3
|
+
import { FougereError } from './FougereError.js';
|
|
4
|
+
import { Logger } from '../builtin/Logger.js';
|
|
4
5
|
/**
|
|
5
6
|
* An INTERNAL_ERROR is the one class of error whose message never leaves: it was not written for a
|
|
6
7
|
* caller and may quote a path, a query or a row.
|
|
@@ -53,7 +54,7 @@ export function toHttpError(err: unknown): { status: number; body: ReturnType<Fo
|
|
|
53
54
|
return { status: httpStatusFor(err.code), body: toPublicError(err) };
|
|
54
55
|
}
|
|
55
56
|
// A throw that never became a FougereError is masked by the same rule, so it goes
|
|
56
|
-
// through the same
|
|
57
|
+
// through the same facade rather than growing a second, quieter one here.
|
|
57
58
|
const framed = new FougereError({
|
|
58
59
|
code: ErrorCode.INTERNAL_ERROR,
|
|
59
60
|
message: (err as { message?: string })?.message ?? 'Internal error',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Logger middleware — logs every operation with timing.
|
|
3
3
|
*/
|
|
4
|
-
import type { AppMiddleware } from './
|
|
5
|
-
import type { Logger } from '../builtin/
|
|
4
|
+
import type { AppMiddleware } from './AppMiddleware.js';
|
|
5
|
+
import type { Logger } from '../builtin/Logger.js';
|
|
6
6
|
import { CARRIES_LINE } from '../builtin/LogLine.js';
|
|
7
7
|
|
|
8
8
|
/** Create a logger middleware that logs operation entry, exit, and errors. */
|