@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,18 +1,11 @@
|
|
|
1
1
|
import { upperFirst, type EntityConstructor } from '@fougere/schema';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ListOptions } from '../storage/ListOptions.js';
|
|
3
|
+
import type { ListResult } from '../storage/ListResult.js';
|
|
4
|
+
import type { SelectOption } from '../storage/SelectOption.js';
|
|
5
|
+
import type { Storage } from '../storage/Storage.js';
|
|
3
6
|
import type { SchemaView } from '@fougere/schema';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* Repository(…entities) — who owns an entity's storage, and where its questions are named.
|
|
7
|
-
*
|
|
8
|
-
* Documented: [repositories](https://fougere.dev/docs/business/repositories).
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* The shape a repository of ONE entity has — the port itself, plus whatever the subclass names on
|
|
13
|
-
* top.
|
|
14
|
-
*/
|
|
15
|
-
export type RepositoryOf<T> = Storage<T>;
|
|
7
|
+
import type { AggregateOf } from './AggregateOf.js';
|
|
8
|
+
import type { AggregateConstructor } from './AggregateConstructor.js';
|
|
16
9
|
|
|
17
10
|
/** The single-entity form: the port, plus whatever the subclass names. */
|
|
18
11
|
export interface RepositoryConstructor<T> {
|
|
@@ -25,21 +18,12 @@ declare abstract class AggregateShape<E extends readonly EntityConstructor[]> {
|
|
|
25
18
|
protected storages: { [K in keyof E]: Storage<InstanceType<E[K]>> };
|
|
26
19
|
}
|
|
27
20
|
|
|
28
|
-
/** The tuple an aggregate holds — the readable form of {@link AggregateShape}'s member. */
|
|
29
|
-
export type AggregateOf<E extends readonly EntityConstructor[]> =
|
|
30
|
-
{ [K in keyof E]: Storage<InstanceType<E[K]>> };
|
|
31
|
-
|
|
32
|
-
export type AggregateConstructor<E extends readonly EntityConstructor[]> =
|
|
33
|
-
(new (...storages: unknown[]) => AggregateShape<E>) & {
|
|
34
|
-
readonly __entity: unknown;
|
|
35
|
-
/** The entities this class owns. Present from two on — an owner of one owns nothing. */
|
|
36
|
-
readonly __owns: E;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
21
|
export function Repository<E extends EntityConstructor>(entity: E): RepositoryConstructor<InstanceType<E>>;
|
|
22
|
+
|
|
40
23
|
export function Repository<E extends readonly [EntityConstructor, EntityConstructor, ...EntityConstructor[]]>(
|
|
41
24
|
...entities: E
|
|
42
25
|
): AggregateConstructor<E>;
|
|
26
|
+
|
|
43
27
|
export function Repository(...entities: EntityConstructor[]): unknown {
|
|
44
28
|
return entities.length === 1 ? one(entities[0]) : many(entities);
|
|
45
29
|
}
|
package/src/scan.ts
CHANGED
|
@@ -1,29 +1,9 @@
|
|
|
1
1
|
import type { Fronds } from './descriptor/Fronds.js';
|
|
2
|
+
import type { Diagnostic } from './diagnostic.js';
|
|
2
3
|
|
|
3
4
|
/** Result of scanning a project directory. */
|
|
4
|
-
/** Something the scan could NOT do — recorded instead of swallowed. */
|
|
5
|
-
export interface ScanDiagnostic {
|
|
6
|
-
/**
|
|
7
|
-
* `blocking` — the app now serves less than its source declares, and no caller can know it: a
|
|
8
|
-
* handler that failed to parse contributes zero operations.
|
|
9
|
-
*/
|
|
10
|
-
severity: 'blocking' | 'warning';
|
|
11
|
-
/** Stable rule name — `handler-parse-failed`, `directory-unreadable`. */
|
|
12
|
-
code: string;
|
|
13
|
-
/** Absolute path of what could not be read. */
|
|
14
|
-
filePath: string;
|
|
15
|
-
/** The frond it belongs to, when the scan got far enough to know. */
|
|
16
|
-
frond?: string;
|
|
17
|
-
/** The declaration the diagnostic is about — e.g. `PostHandler.publish`. */
|
|
18
|
-
subject?: string;
|
|
19
|
-
/** What could not be done, and what it costs. One sentence, for a human. */
|
|
20
|
-
message: string;
|
|
21
|
-
/** The underlying failure, kept whole. */
|
|
22
|
-
cause?: unknown;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
5
|
export interface ScanResult {
|
|
26
6
|
fronds: Fronds;
|
|
27
|
-
/** What the scan could not do. Empty is a claim, not a default — see {@link
|
|
28
|
-
diagnostics:
|
|
7
|
+
/** What the scan could not do. Empty is a claim, not a default — see {@link Diagnostic}. */
|
|
8
|
+
diagnostics: Diagnostic[];
|
|
29
9
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** What a read may ask about one field, and how a storage tells the two forms apart. */
|
|
2
1
|
import { type Field, Shapes } from '@fougere/schema';
|
|
2
|
+
import type { ComparisonName } from './ComparisonName.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* The comparisons a criterion may name.
|
|
@@ -23,8 +23,6 @@ export interface Comparison {
|
|
|
23
23
|
|
|
24
24
|
export const COMPARISONS = ['gte', 'lte', 'gt', 'lt', 'ne', 'between', 'contains', 'notIn', 'isNull'] as const;
|
|
25
25
|
|
|
26
|
-
export type ComparisonName = (typeof COMPARISONS)[number];
|
|
27
|
-
|
|
28
26
|
/**
|
|
29
27
|
* Is this criterion a comparison, or a value that happens to be an object?
|
|
30
28
|
*
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Options for list queries — pagination, sorting, counting. */
|
|
2
|
+
export interface ListOptions {
|
|
3
|
+
/** Number of records to return. */
|
|
4
|
+
limit?: number;
|
|
5
|
+
|
|
6
|
+
/** Offset-based: skip N records. */
|
|
7
|
+
offset?: number;
|
|
8
|
+
|
|
9
|
+
/** Page-based: 1-indexed page number (requires limit). */
|
|
10
|
+
page?: number;
|
|
11
|
+
|
|
12
|
+
/** Cursor-based: fetch records after this ID. */
|
|
13
|
+
after?: string;
|
|
14
|
+
|
|
15
|
+
/** Field name to order by. */
|
|
16
|
+
orderBy?: string;
|
|
17
|
+
|
|
18
|
+
/** Sort direction (default: 'asc'). */
|
|
19
|
+
order?: 'asc' | 'desc';
|
|
20
|
+
|
|
21
|
+
/** If true, also returns total count (for pagination UIs). */
|
|
22
|
+
count?: boolean;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Equality criteria, field by field — `{ orderId: '…' }`. Named rather than spread across the
|
|
26
|
+
* options so an unknown key stays ignored instead of silently becoming a filter.
|
|
27
|
+
*/
|
|
28
|
+
where?: Record<string, unknown>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Result of list() — extends Array so it's backward compatible. */
|
|
2
|
+
export interface ListResult<T> extends Array<T> {
|
|
3
|
+
/** Total number of matching records (only set when count: true). */
|
|
4
|
+
total?: number;
|
|
5
|
+
/** Cursor of the last item (for cursor-based pagination). */
|
|
6
|
+
endCursor?: string;
|
|
7
|
+
/** Whether more records exist after endCursor. */
|
|
8
|
+
hasMore?: boolean;
|
|
9
|
+
}
|
|
@@ -1,44 +1,7 @@
|
|
|
1
1
|
import { upperFirst, lowerFirst, type SchemaView } from '@fougere/schema';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/** Number of records to return. */
|
|
6
|
-
limit?: number;
|
|
7
|
-
|
|
8
|
-
/** Offset-based: skip N records. */
|
|
9
|
-
offset?: number;
|
|
10
|
-
|
|
11
|
-
/** Page-based: 1-indexed page number (requires limit). */
|
|
12
|
-
page?: number;
|
|
13
|
-
|
|
14
|
-
/** Cursor-based: fetch records after this ID. */
|
|
15
|
-
after?: string;
|
|
16
|
-
|
|
17
|
-
/** Field name to order by. */
|
|
18
|
-
orderBy?: string;
|
|
19
|
-
|
|
20
|
-
/** Sort direction (default: 'asc'). */
|
|
21
|
-
order?: 'asc' | 'desc';
|
|
22
|
-
|
|
23
|
-
/** If true, also returns total count (for pagination UIs). */
|
|
24
|
-
count?: boolean;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Equality criteria, field by field — `{ orderId: '…' }`. Named rather than spread across the
|
|
28
|
-
* options so an unknown key stays ignored instead of silently becoming a filter.
|
|
29
|
-
*/
|
|
30
|
-
where?: Record<string, unknown>;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/** Result of list() — extends Array so it's backward compatible. */
|
|
34
|
-
export interface ListResult<T> extends Array<T> {
|
|
35
|
-
/** Total number of matching records (only set when count: true). */
|
|
36
|
-
total?: number;
|
|
37
|
-
/** Cursor of the last item (for cursor-based pagination). */
|
|
38
|
-
endCursor?: string;
|
|
39
|
-
/** Whether more records exist after endCursor. */
|
|
40
|
-
hasMore?: boolean;
|
|
41
|
-
}
|
|
2
|
+
import type { ListOptions } from './ListOptions.js';
|
|
3
|
+
import type { ListResult } from './ListResult.js';
|
|
4
|
+
import type { SelectOption } from './SelectOption.js';
|
|
42
5
|
|
|
43
6
|
/** The keys `list()` answers to. */
|
|
44
7
|
const LIST_OPTION_KEYS = [
|
|
@@ -72,11 +35,6 @@ export function assertListOptions(
|
|
|
72
35
|
);
|
|
73
36
|
}
|
|
74
37
|
|
|
75
|
-
/** Select option — restrict returned fields to those of a SchemaView. */
|
|
76
|
-
export interface SelectOption {
|
|
77
|
-
select?: SchemaView;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
38
|
/** Per-entity storage — scoped CRUD operations on a single entity type. */
|
|
81
39
|
export interface Storage<T = Record<string, unknown>> {
|
|
82
40
|
list(options?: ListOptions & SelectOption): Promise<ListResult<T>>;
|
|
@@ -179,12 +137,6 @@ export abstract class Storage<T = Record<string, unknown>> {
|
|
|
179
137
|
get client(): unknown { return behind<T>(this).client; }
|
|
180
138
|
}
|
|
181
139
|
|
|
182
|
-
/**
|
|
183
|
-
* Factory that creates a Storage for a given entity.
|
|
184
|
-
* Called by bootstrap for every scanned entity.
|
|
185
|
-
*/
|
|
186
|
-
export type StorageFactory = (entity: SchemaView, name: string) => Storage;
|
|
187
|
-
|
|
188
140
|
/** Container key of an entity's storage — 'reading' → 'ReadingStorage'. */
|
|
189
141
|
export function storageKeyOf(entity: string): string {
|
|
190
142
|
return `${upperFirst(entity)}${HELD}`;
|
|
@@ -201,11 +153,6 @@ export function entityOfStorageKey(key: string, known: (entity: string) => boole
|
|
|
201
153
|
/** What a holder keeps, said in the key it is registered under. */
|
|
202
154
|
const HELD = 'Storage';
|
|
203
155
|
|
|
204
|
-
/** `Together<[Account, Ledger]>` — writes that stand or fall as one. */
|
|
205
|
-
export interface Together<E extends readonly unknown[], P extends readonly unknown[] = []> {
|
|
206
|
-
run<R>(fn: (entities: { [K in keyof E]: Storage<E[K]> }, providers: P) => Promise<R>): Promise<R>;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
156
|
/**
|
|
210
157
|
* The container key of a frame — `[['Account', 'Ledger'], ['RateMirror']]` →
|
|
211
158
|
* 'Account+Ledger|RateMirrorTogether'.
|
|
@@ -216,7 +163,9 @@ export function togetherKeyOf(entities: readonly string[], providers: readonly s
|
|
|
216
163
|
}
|
|
217
164
|
|
|
218
165
|
const FRAME = 'Together';
|
|
166
|
+
|
|
219
167
|
const SEPARATOR = '+';
|
|
168
|
+
|
|
220
169
|
/** Separates the two lists — what the unwind covers, and what is rebuilt to make it true. */
|
|
221
170
|
const KINDS = '|';
|
|
222
171
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type SchemaView } from '@fougere/schema';
|
|
2
|
+
import type { Storage } from './Storage.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Factory that creates a Storage for a given entity.
|
|
6
|
+
* Called by bootstrap for every scanned entity.
|
|
7
|
+
*/
|
|
8
|
+
export type StorageFactory = (entity: SchemaView, name: string) => Storage;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
/** The thirteen gestures of {@link Storage}, derived from four. */
|
|
2
1
|
import { applyCreate, applyUpdate, Lifecycle, Role, type SchemaView } from '@fougere/schema';
|
|
3
|
-
import { comparisonOf, comparisonsIn, type Comparison } from './
|
|
4
|
-
import type { Storage
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export type Values = Record<string, unknown>;
|
|
2
|
+
import { comparisonOf, comparisonsIn, type Comparison } from './Comparison.js';
|
|
3
|
+
import type { Storage } from './Storage.js';
|
|
4
|
+
import type { StorageFactory } from './StorageFactory.js';
|
|
5
|
+
import type { Values } from './Values.js';
|
|
8
6
|
|
|
9
7
|
/** Instances addressed by key — what an adapter supplies, and all of it. */
|
|
10
8
|
export interface Store {
|
|
@@ -49,7 +47,7 @@ export function storageOver(open: (entity: SchemaView, name: string) => Store):
|
|
|
49
47
|
|
|
50
48
|
// Same contract as SQL: the key and the creation stamps survive an overwrite.
|
|
51
49
|
// Named, and not reached through `this`: a caller may have wrapped these gestures,
|
|
52
|
-
// and a derived one that goes back through the front
|
|
50
|
+
// and a derived one that goes back through the front facade is judged twice.
|
|
53
51
|
const upsert = async (input: Partial<Record<string, unknown>>): Promise<Values> => {
|
|
54
52
|
const values = applyCreate(fields, applyUpdate(fields, input));
|
|
55
53
|
const id = values[pk] as string | undefined;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Storage } from './Storage.js';
|
|
2
|
+
|
|
3
|
+
/** `Together<[Account, Ledger]>` — writes that stand or fall as one. */
|
|
4
|
+
export interface Together<E extends readonly unknown[], P extends readonly unknown[] = []> {
|
|
5
|
+
run<R>(fn: (entities: { [K in keyof E]: Storage<E[K]> }, providers: P) => Promise<R>): Promise<R>;
|
|
6
|
+
}
|
package/src/verify.ts
CHANGED
|
@@ -1,27 +1,18 @@
|
|
|
1
|
-
import type { FrondDescriptor } from './descriptor/
|
|
1
|
+
import type { FrondDescriptor } from './descriptor/FrondDescriptor.js';
|
|
2
|
+
import type { Diagnostic } from './diagnostic.js';
|
|
2
3
|
import { lowerFirst } from '@fougere/schema';
|
|
3
|
-
import { repositoryKeyOf } from './prefab/
|
|
4
|
-
import { storageKeyOf } from './storage/
|
|
4
|
+
import { repositoryKeyOf } from './prefab/RepositoryConstructor.js';
|
|
5
|
+
import { storageKeyOf } from './storage/Storage.js';
|
|
5
6
|
import { presenterKeyOf } from './prefab/presenter.js';
|
|
6
7
|
import { collectorKeyOf } from './prefab/collector.js';
|
|
7
8
|
|
|
8
|
-
/**
|
|
9
|
-
export
|
|
10
|
-
/** Rule name, stable — 'cross-frond-dependency'. */
|
|
11
|
-
rule: string;
|
|
12
|
-
/** What it costs, decided by the rule that raises it — never by whoever renders it. */
|
|
13
|
-
severity: 'blocking' | 'warning';
|
|
14
|
-
/** The frond the subject lives in. */
|
|
9
|
+
/** A subject declared in one frond and reached from another — the rules below find no other kind. */
|
|
10
|
+
export type Misplaced = Diagnostic & {
|
|
15
11
|
frond: string;
|
|
16
|
-
/** What violates it — 'PostHandler'. */
|
|
17
12
|
subject: string;
|
|
18
|
-
/** Where to go and look. */
|
|
19
|
-
filePath: string;
|
|
20
13
|
/** What the subject reaches for, and where it actually lives. */
|
|
21
14
|
dependsOn: { key: string; frond: string; kind: string };
|
|
22
|
-
|
|
23
|
-
message: string;
|
|
24
|
-
}
|
|
15
|
+
};
|
|
25
16
|
|
|
26
17
|
/** A dependency declared in a frond's scope, and what kind of thing it is. */
|
|
27
18
|
type Registration = { frond: string; kind: string };
|
|
@@ -57,7 +48,7 @@ function injectablesOf(frond: FrondDescriptor) {
|
|
|
57
48
|
* Does this app survive being split? A frond runs in-process or in its own process behind JSON-RPC
|
|
58
49
|
* with identical user code — that is the whole claim.
|
|
59
50
|
*/
|
|
60
|
-
export function verify(app: { fronds: readonly FrondDescriptor[] }):
|
|
51
|
+
export function verify(app: { fronds: readonly FrondDescriptor[] }): Misplaced[] {
|
|
61
52
|
const index = new Map<string, Registration>();
|
|
62
53
|
for (const frond of app.fronds) {
|
|
63
54
|
for (const [key, reg] of registrationsOf(frond)) index.set(key, reg);
|
|
@@ -71,7 +62,7 @@ export function verify(app: { fronds: readonly FrondDescriptor[] }): Violation[]
|
|
|
71
62
|
for (const collector of frond.collectors) collectorFronds.set(collector.typeName, frond.name);
|
|
72
63
|
}
|
|
73
64
|
|
|
74
|
-
const violations:
|
|
65
|
+
const violations: Misplaced[] = [];
|
|
75
66
|
for (const frond of app.fronds) {
|
|
76
67
|
// Rule 1 — a constructor dependency declared in another frond's scope.
|
|
77
68
|
// Façade keys are exempt by construction, not by omission: a `Facade<X>`
|
|
@@ -86,7 +77,7 @@ export function verify(app: { fronds: readonly FrondDescriptor[] }): Violation[]
|
|
|
86
77
|
// an unresolved dependency is the container's complaint, not this rule's.
|
|
87
78
|
if (!declared || declared.frond === frond.name) continue;
|
|
88
79
|
violations.push({
|
|
89
|
-
|
|
80
|
+
code: 'cross-frond-dependency',
|
|
90
81
|
severity: 'warning',
|
|
91
82
|
frond: frond.name,
|
|
92
83
|
subject: subject.name,
|
|
@@ -120,7 +111,7 @@ export function verify(app: { fronds: readonly FrondDescriptor[] }): Violation[]
|
|
|
120
111
|
// provably false.
|
|
121
112
|
if (!elsewhere) continue;
|
|
122
113
|
violations.push({
|
|
123
|
-
|
|
114
|
+
code: 'collector-in-another-frond',
|
|
124
115
|
severity: 'blocking',
|
|
125
116
|
frond: frond.name,
|
|
126
117
|
subject: `${handler.ctor.name}.${opName}(${param.name})`,
|
|
@@ -147,6 +138,6 @@ export function verify(app: { fronds: readonly FrondDescriptor[] }): Violation[]
|
|
|
147
138
|
export function assertSplittable(app: { fronds: readonly FrondDescriptor[] }): void {
|
|
148
139
|
const violations = verify(app);
|
|
149
140
|
if (violations.length === 0) return;
|
|
150
|
-
const lines = violations.map((v) => ` [${v.
|
|
141
|
+
const lines = violations.map((v) => ` [${v.code}] ${v.frond}/${v.subject}\n ${v.message}\n ${v.filePath}`);
|
|
151
142
|
throw new Error(`${violations.length} violation(s) — this app does not survive a split:\n${lines.join('\n')}`);
|
|
152
143
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FougereOperations } from './FougereOperations.js';
|
|
2
|
+
|
|
3
|
+
type Served = keyof FougereOperations & string;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Both halves below take the union through a type PARAMETER, which is what makes the
|
|
7
|
+
* conditional distribute: `Served` is an alias, and an alias is matched whole — `'a.x' | 'b.y'`
|
|
8
|
+
* does not extend `` `${string}.${string}` `` as one thing, so the naive form answers `never`.
|
|
9
|
+
*/
|
|
10
|
+
type AddressIn<Key> = Key extends `${infer Address}.${string}` ? Address : never;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The addresses this app answers at — or any string, until a scan has said otherwise. The
|
|
14
|
+
* `[Served] extends [never]` form is what keeps an ungenerated project compiling: a bare `never`
|
|
15
|
+
* in a parameter position refuses every call, the correct ones included.
|
|
16
|
+
*/
|
|
17
|
+
export type Addresses = [Served] extends [never] ? string : AddressIn<Served>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { OperationContext } from './OperationContext.js';
|
|
2
|
+
import type { AppNext } from './AppNext.js';
|
|
3
|
+
|
|
4
|
+
export type AppMiddleware = (ctx: OperationContext, next: AppNext) => Promise<unknown>;
|
|
5
|
+
|
|
6
|
+
// ── Runner ──────────────────────────────────────
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Execute a middleware chain (onion model) then the handler.
|
|
10
|
+
*/
|
|
11
|
+
export function runMiddlewares(
|
|
12
|
+
middlewares: AppMiddleware[],
|
|
13
|
+
ctx: OperationContext,
|
|
14
|
+
handler: AppNext,
|
|
15
|
+
): Promise<unknown> {
|
|
16
|
+
let index = 0;
|
|
17
|
+
const next = (): Promise<unknown> => {
|
|
18
|
+
if (index < middlewares.length) {
|
|
19
|
+
return middlewares[index++](ctx, next);
|
|
20
|
+
}
|
|
21
|
+
return handler();
|
|
22
|
+
};
|
|
23
|
+
return next();
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type AppNext = () => Promise<unknown>;
|
package/src/wire/Call.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Invocation } from './Invocation.js';
|
|
2
|
+
import { type PartialInvocation } from './PartialInvocation.js';
|
|
3
|
+
import type { RouteAddress } from './RouteAddress.js';
|
|
4
|
+
|
|
5
|
+
/** One normalized request, frozen: where it goes and what the caller supplied. */
|
|
6
|
+
export class Call {
|
|
7
|
+
readonly address: RouteAddress;
|
|
8
|
+
readonly invocation: Invocation;
|
|
9
|
+
|
|
10
|
+
constructor(address: RouteAddress, invocation?: PartialInvocation) {
|
|
11
|
+
this.address = address;
|
|
12
|
+
this.invocation = Invocation.from(invocation);
|
|
13
|
+
Object.freeze(this);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { RouteKind } from './
|
|
1
|
+
import type { RouteKind } from './RouteKind.js';
|
|
2
2
|
|
|
3
|
-
/** What crosses the
|
|
3
|
+
/** What crosses the facade. */
|
|
4
4
|
export interface CallRecord {
|
|
5
5
|
/** Monotonic, and the whole cursor protocol: a reader asks for what is above its own. */
|
|
6
6
|
seq: number;
|
|
@@ -20,11 +20,3 @@ export interface CallRecord {
|
|
|
20
20
|
verdict: 'running' | 'ok' | 'failed';
|
|
21
21
|
refusal?: { code?: string; message: string };
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
/** One page of the ring. */
|
|
25
|
-
export interface CallPage {
|
|
26
|
-
calls: CallRecord[];
|
|
27
|
-
cursor: number;
|
|
28
|
-
inFlight: number;
|
|
29
|
-
dropped: number;
|
|
30
|
-
}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Announcing a fact — the half of the topology `remotes:` never covered.
|
|
3
|
-
*
|
|
4
|
-
* Documented: [facts](https://fougere.dev/docs/business/facts).
|
|
5
|
-
*/
|
|
6
1
|
import { lowerFirst } from '@fougere/schema';
|
|
7
2
|
|
|
8
3
|
/**
|
|
@@ -13,25 +8,6 @@ import { lowerFirst } from '@fougere/schema';
|
|
|
13
8
|
*/
|
|
14
9
|
export type Emit<T, A = never> = (fact: Partial<T>) => Promise<A[]>;
|
|
15
10
|
|
|
16
|
-
/**
|
|
17
|
-
* What a subscriber accepts — and what it PROMISES about itself.
|
|
18
|
-
*
|
|
19
|
-
* What it ANSWERS is its own to choose: `Promise<void>` says nothing, any other type is an
|
|
20
|
-
* opinion. It reaches an announcer that asked for one — `Emit<CanBook, Verdict>` — and
|
|
21
|
-
* nobody otherwise, since a plain announcement does not wait.
|
|
22
|
-
*/
|
|
23
|
-
export type Fact<T> = T;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* The same fact, BEFORE it is final: an op taking one ANSWERS the value every subscriber
|
|
27
|
-
* then receives, so it is the declared form of what `Emissions.stamped` already does for
|
|
28
|
-
* `created()`.
|
|
29
|
-
*
|
|
30
|
-
* Not a second announcement and not a chain a subscriber joins: the links run once, before
|
|
31
|
-
* anyone is handed anything, which is what keeps a fact the same for every reader.
|
|
32
|
-
*/
|
|
33
|
-
export type Pipe<T> = T;
|
|
34
|
-
|
|
35
11
|
/** The container key of an emission — THE one place that spells the format. */
|
|
36
12
|
export function emitKeyOf(fact: string): string {
|
|
37
13
|
return `${lowerFirst(fact)}Emit`;
|
|
@@ -47,6 +23,7 @@ export function awaitKeyOf(fact: string): string {
|
|
|
47
23
|
}
|
|
48
24
|
|
|
49
25
|
const SUFFIX = 'Emit';
|
|
26
|
+
|
|
50
27
|
const AWAIT_SUFFIX = 'Await';
|
|
51
28
|
|
|
52
29
|
/** The fact behind an emission key, or `undefined` when the key is not one. */
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Semantic error codes — transport-agnostic. Each bridge maps them to its own format. */
|
|
2
|
+
export enum ErrorCode {
|
|
3
|
+
// Input
|
|
4
|
+
VALIDATION_FAILED = 'VALIDATION_FAILED',
|
|
5
|
+
BAD_REQUEST = 'BAD_REQUEST',
|
|
6
|
+
|
|
7
|
+
// Auth
|
|
8
|
+
UNAUTHORIZED = 'UNAUTHORIZED',
|
|
9
|
+
FORBIDDEN = 'FORBIDDEN',
|
|
10
|
+
|
|
11
|
+
// Resources
|
|
12
|
+
NOT_FOUND = 'NOT_FOUND',
|
|
13
|
+
GONE = 'GONE',
|
|
14
|
+
CONFLICT = 'CONFLICT',
|
|
15
|
+
LOCKED = 'LOCKED',
|
|
16
|
+
METHOD_NOT_ALLOWED = 'METHOD_NOT_ALLOWED',
|
|
17
|
+
|
|
18
|
+
// Limits
|
|
19
|
+
PRECONDITION_FAILED = 'PRECONDITION_FAILED',
|
|
20
|
+
PAYLOAD_TOO_LARGE = 'PAYLOAD_TOO_LARGE',
|
|
21
|
+
UNPROCESSABLE_ENTITY = 'UNPROCESSABLE_ENTITY',
|
|
22
|
+
TOO_MANY_REQUESTS = 'TOO_MANY_REQUESTS',
|
|
23
|
+
REQUEST_TIMEOUT = 'REQUEST_TIMEOUT',
|
|
24
|
+
|
|
25
|
+
// Server
|
|
26
|
+
INTERNAL_ERROR = 'INTERNAL_ERROR',
|
|
27
|
+
NOT_IMPLEMENTED = 'NOT_IMPLEMENTED',
|
|
28
|
+
BAD_GATEWAY = 'BAD_GATEWAY',
|
|
29
|
+
SERVICE_UNAVAILABLE = 'SERVICE_UNAVAILABLE',
|
|
30
|
+
GATEWAY_TIMEOUT = 'GATEWAY_TIMEOUT',
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// ── FougereError ────────────────────────────────
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { InvocationContext } from './InvocationContext.js';
|
|
2
|
+
import type { FougereOperations } from './FougereOperations.js';
|
|
3
|
+
|
|
4
|
+
type Served = keyof FougereOperations & string;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Both halves below take the union through a type PARAMETER, which is what makes the
|
|
8
|
+
* conditional distribute: `Served` is an alias, and an alias is matched whole — `'a.x' | 'b.y'`
|
|
9
|
+
* does not extend `` `${string}.${string}` `` as one thing, so the naive form answers `never`.
|
|
10
|
+
*/
|
|
11
|
+
type AddressIn<Key> = Key extends `${infer Address}.${string}` ? Address : never;
|
|
12
|
+
|
|
13
|
+
/** The facade built in front of a handler — the framework's second port, after `Storage`. */
|
|
14
|
+
export type Facade<T> = {
|
|
15
|
+
[K in keyof T]: T[K] extends (...args: never[]) => infer R
|
|
16
|
+
? (invocation?: InvocationContext) => R
|
|
17
|
+
: never;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/** The container key of a façade — THE one place that spells the format. */
|
|
21
|
+
export function facadeKeyOf(entityName: string, surface?: string): string {
|
|
22
|
+
return surface ? `${surface}:${entityName}Handler` : `${entityName}Handler`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Where the contracts behind a façade live — the dual of `facadeKeyOf`. */
|
|
26
|
+
export function contractsKeyOf(entityName: string, surface?: string): string {
|
|
27
|
+
return `${facadeKeyOf(entityName, surface)}:contracts`;
|
|
28
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One facade: where a call goes, and the handler that answers there.
|
|
3
|
+
*
|
|
4
|
+
* The address is carried as a LITERAL, which is what lets an operation be looked up by
|
|
5
|
+
* `address.op`. A page never builds one by hand — the scan writes a `const` per address, and a
|
|
6
|
+
* page imports it, so a project that never generated them fails to resolve rather than losing
|
|
7
|
+
* its types in silence.
|
|
8
|
+
*/
|
|
9
|
+
export interface FacadeName<Handler, Address extends string> {
|
|
10
|
+
readonly address: Address;
|
|
11
|
+
/** Never read: it is how the handler's own signatures reach the page. */
|
|
12
|
+
readonly handler?: Handler;
|
|
13
|
+
}
|
package/src/wire/Fact.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a subscriber accepts — and what it PROMISES about itself.
|
|
3
|
+
*
|
|
4
|
+
* What it ANSWERS is its own to choose: `Promise<void>` says nothing, any other type is an
|
|
5
|
+
* opinion. It reaches an announcer that asked for one — `Emit<CanBook, Verdict>` — and
|
|
6
|
+
* nobody otherwise, since a plain announcement does not wait.
|
|
7
|
+
*/
|
|
8
|
+
export type Fact<T> = T;
|