@fougere/core 0.9.3-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} +9 -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 -16
- 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 +2 -2
- package/dist/boot/declared.d.ts.map +1 -1
- package/dist/boot/declared.js +1 -1
- package/dist/boot/declared.js.map +1 -1
- 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 -25
- package/dist/boot/install.js.map +1 -1
- package/dist/boot/ownership.d.ts +7 -5
- package/dist/boot/ownership.d.ts.map +1 -1
- package/dist/boot/ownership.js +81 -40
- 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 +92 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -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} +1 -1
- 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 -17
- 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} +28 -125
- 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 -20
- 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 +5 -2
- package/src/boot/frame.ts +2 -2
- package/src/boot/hosted.ts +1 -1
- package/src/boot/install.ts +42 -31
- package/src/boot/ownership.ts +92 -52
- 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 -16
- 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 +96 -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} +10 -18
- 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 -18
- 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 -113
- 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 -130
- 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 -178
- package/src/wire/middleware.ts +0 -43
package/src/boot/remote.ts
CHANGED
|
@@ -3,11 +3,16 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Documented: [the gradient](https://fougere.dev/docs/infra/gradient).
|
|
5
5
|
*/
|
|
6
|
-
import type { FrondCall
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
6
|
+
import type { FrondCall } from '../wire/FrondCall.js';
|
|
7
|
+
import type { Transport } from '../wire/Transport.js';
|
|
8
|
+
import { RPC_ENTITY } from '../wire/RpcAnswer.js';
|
|
9
|
+
import { assertIdentityCard } from '../wire/card/IdentityCard.js';
|
|
10
|
+
import { runMiddlewares, type AppMiddleware } from '../wire/AppMiddleware.js';
|
|
11
|
+
import { type OperationContext } from '../wire/OperationContext.js';
|
|
12
|
+
import { Invocation } from '../wire/Invocation.js';
|
|
13
|
+
import { type InvocationContext } from '../wire/InvocationContext.js';
|
|
14
|
+
import { ErrorCode } from '../wire/ErrorCode.js';
|
|
15
|
+
import { FougereError } from '../wire/FougereError.js';
|
|
11
16
|
import { Card, type SchemaView, type SchemaDescriptor } from '@fougere/schema';
|
|
12
17
|
import { dynamicOperations } from '../entry/facade.js';
|
|
13
18
|
|
|
@@ -35,7 +40,7 @@ export function createRemoteRouter(
|
|
|
35
40
|
const pending = new Map(Object.entries(remotes));
|
|
36
41
|
const transports = new Map<string, Transport>();
|
|
37
42
|
|
|
38
|
-
/** Which remote label claimed a
|
|
43
|
+
/** Which remote label claimed a facade name — so a second claim can name the first. */
|
|
39
44
|
const claimedBy = new Map<string, string>();
|
|
40
45
|
|
|
41
46
|
const discover = async (): Promise<void> => {
|
|
@@ -65,28 +70,28 @@ export function createRemoteRouter(
|
|
|
65
70
|
const card = assertIdentityCard(answer, `Remote '${label}' (${url})`);
|
|
66
71
|
|
|
67
72
|
for (const frond of card.fronds) {
|
|
68
|
-
//
|
|
69
|
-
// adding one here would answer a call with a transport to a
|
|
73
|
+
// Facades only. A fact is not routable — nobody calls it, it arrives — so
|
|
74
|
+
// adding one here would answer a call with a transport to a facade that
|
|
70
75
|
// does not exist.
|
|
71
|
-
for (const
|
|
72
|
-
const first = claimedBy.get(
|
|
76
|
+
for (const facade of frond.facades) {
|
|
77
|
+
const first = claimedBy.get(facade.name);
|
|
73
78
|
/** Two remotes claiming one name is refused, not silently arbitrated. */
|
|
74
79
|
if (first !== undefined && first !== label) {
|
|
75
80
|
throw new FougereError({
|
|
76
81
|
code: ErrorCode.INTERNAL_ERROR,
|
|
77
82
|
message:
|
|
78
|
-
`Two remotes serve '${
|
|
83
|
+
`[claim] Two remotes serve '${facade.name}': '${first}' and '${label}'.\n`
|
|
79
84
|
+ ` A call names an entity, not a frond, so nothing could choose between them.\n`
|
|
80
85
|
+ ` - Keep one of the two out of \`remotes:\`, or\n`
|
|
81
86
|
+ ` - expose one of them under a different entity name.`,
|
|
82
|
-
entity:
|
|
87
|
+
entity: facade.name,
|
|
83
88
|
});
|
|
84
89
|
}
|
|
85
|
-
claimedBy.set(
|
|
86
|
-
byEntity.set(
|
|
90
|
+
claimedBy.set(facade.name, label);
|
|
91
|
+
byEntity.set(facade.name, {
|
|
87
92
|
frond: frond.name,
|
|
88
93
|
transport,
|
|
89
|
-
...(
|
|
94
|
+
...(facade.schema ? { schema: Card.fromDescriptor(facade.schema as SchemaDescriptor).toSchema() } : {}),
|
|
90
95
|
});
|
|
91
96
|
}
|
|
92
97
|
}
|
|
@@ -101,13 +106,15 @@ export function createRemoteRouter(
|
|
|
101
106
|
if (pending.size > 0) {
|
|
102
107
|
throw new FougereError({
|
|
103
108
|
code: ErrorCode.SERVICE_UNAVAILABLE,
|
|
104
|
-
message: `No reachable remote hosts '${entity}' — unreachable: ${[...pending.keys()].join(', ')}
|
|
109
|
+
message: `No reachable remote hosts '${entity}' — unreachable: ${[...pending.keys()].join(', ')}.\n`
|
|
110
|
+
+ ' Named in `remotes:`, and did not answer.',
|
|
105
111
|
entity,
|
|
106
112
|
});
|
|
107
113
|
}
|
|
108
114
|
throw new FougereError({
|
|
109
115
|
code: ErrorCode.NOT_FOUND,
|
|
110
|
-
message: `No declared remote hosts '${entity}'
|
|
116
|
+
message: `No declared remote hosts '${entity}'.\n`
|
|
117
|
+
+ ' Nothing here serves it either — add its frond to `fronds:`/`scan:`, or name the frond that does in `remotes:`.',
|
|
111
118
|
entity,
|
|
112
119
|
});
|
|
113
120
|
},
|
package/src/boot/runner.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** A Transport built from an app — the two ways a call enters this process. */
|
|
2
|
-
import type { App } from './
|
|
3
|
-
import type { Transport } from '../wire/
|
|
2
|
+
import type { App } from './App.js';
|
|
3
|
+
import type { Transport } from '../wire/Transport.js';
|
|
4
4
|
import { createTransportEntry } from '../entry/transport.js';
|
|
5
5
|
|
|
6
6
|
/** Build the local runner — the reference realization of Transport. */
|
package/src/boot/seed.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Role } from '@fougere/schema';
|
|
2
|
-
import { facadeKeyOf } from '../wire/
|
|
3
|
-
import type { FrondDescriptor
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
2
|
+
import { facadeKeyOf } from '../wire/Facade.js';
|
|
3
|
+
import type { FrondDescriptor } from '../descriptor/FrondDescriptor.js';
|
|
4
|
+
import type { SeedEntry } from '../descriptor/SeedEntry.js';
|
|
5
|
+
import type { SeedFactory } from '../descriptor/SeedFactory.js';
|
|
6
|
+
import type { App } from './App.js';
|
|
7
|
+
import type { Extension } from './Extension.js';
|
|
6
8
|
|
|
7
9
|
/** What the ordering satisfied, and what no order can. */
|
|
8
10
|
export interface SeedOrder {
|
|
@@ -56,7 +58,7 @@ export function orderSeeds(fronds: FrondDescriptor[]): SeedOrder {
|
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
/** Where a seed writes, and what it may skip — resolved per entity. */
|
|
59
|
-
interface
|
|
61
|
+
interface SeedFacade {
|
|
60
62
|
list(): Promise<unknown[]>;
|
|
61
63
|
write(item: unknown): Promise<unknown>;
|
|
62
64
|
}
|
|
@@ -75,13 +77,13 @@ export async function runSeeds(
|
|
|
75
77
|
const resolve = <T>(name: string) => app.resolve<T>(name + 'Handler');
|
|
76
78
|
const data = typeof seed.data === 'function' ? await (seed.data as SeedFactory)(resolve) : seed.data;
|
|
77
79
|
|
|
78
|
-
const
|
|
79
|
-
if (!
|
|
80
|
+
const facade = facadeFor(app, seed.entityName);
|
|
81
|
+
if (!facade) {
|
|
80
82
|
report(` ${seed.entityName}: no handler façade nor storage — skipping seed`);
|
|
81
83
|
continue;
|
|
82
84
|
}
|
|
83
85
|
|
|
84
|
-
const existing = await
|
|
86
|
+
const existing = await facade.list();
|
|
85
87
|
if (existing.length > 0) {
|
|
86
88
|
report(` ${seed.entityName}: skipped (${existing.length} exist)`);
|
|
87
89
|
continue;
|
|
@@ -91,7 +93,7 @@ export async function runSeeds(
|
|
|
91
93
|
// key is exactly what a seed gets wrong.
|
|
92
94
|
for (const item of data) {
|
|
93
95
|
try {
|
|
94
|
-
await
|
|
96
|
+
await facade.write(item);
|
|
95
97
|
} catch (cause) {
|
|
96
98
|
throw new Error(
|
|
97
99
|
`Seed '${seed.entityName}' failed on ${JSON.stringify(item)}: ${(cause as Error)?.message ?? cause}`,
|
|
@@ -104,7 +106,7 @@ export async function runSeeds(
|
|
|
104
106
|
}
|
|
105
107
|
|
|
106
108
|
/** A seed is not a client. */
|
|
107
|
-
function
|
|
109
|
+
function facadeFor(app: App, entityName: string): SeedFacade | undefined {
|
|
108
110
|
let handler: Record<string, Function> | undefined;
|
|
109
111
|
try { handler = app.resolve<Record<string, Function>>(facadeKeyOf(entityName)); } catch {}
|
|
110
112
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/** Where a STATED contract and the signature it is about have stopped agreeing. */
|
|
2
|
-
import type { FrondDescriptor
|
|
3
|
-
import type {
|
|
2
|
+
import type { FrondDescriptor } from '../descriptor/FrondDescriptor.js';
|
|
3
|
+
import type { HandlerEntry } from '../descriptor/HandlerEntry.js';
|
|
4
|
+
import type { Diagnostic } from '../diagnostic.js';
|
|
4
5
|
import type { BindingPlan } from '../wire/binding.js';
|
|
5
|
-
import type { Signature } from '../wire/
|
|
6
|
+
import type { Signature } from '../wire/Signature.js';
|
|
6
7
|
|
|
7
8
|
/** The parameters a binding plan names, against the ones the method declares. */
|
|
8
9
|
function namesDisagreeing(plan: BindingPlan, signature: Signature): string[] {
|
|
@@ -12,8 +13,8 @@ function namesDisagreeing(plan: BindingPlan, signature: Signature): string[] {
|
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
/** What a frond's stated contracts no longer match. */
|
|
15
|
-
export function statementDrift(frond: FrondDescriptor, handler: HandlerEntry):
|
|
16
|
-
const found:
|
|
16
|
+
export function statementDrift(frond: FrondDescriptor, handler: HandlerEntry): Diagnostic[] {
|
|
17
|
+
const found: Diagnostic[] = [];
|
|
17
18
|
|
|
18
19
|
for (const [name, override] of Object.entries(frond.operationsOverrides ?? {})) {
|
|
19
20
|
if (!override.binding) continue;
|
package/src/boot/together.ts
CHANGED
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
import { ambient } from '#ambient';
|
|
7
7
|
import { upperFirst, lowerFirst, type SchemaView } from '@fougere/schema';
|
|
8
8
|
import type { Container } from '@fougere/container';
|
|
9
|
-
import { membersOfTogetherKey, storageKeyOf,
|
|
10
|
-
import type
|
|
11
|
-
import type {
|
|
9
|
+
import { entityOfStorageKey, membersOfTogetherKey, storageKeyOf, type Storage } from '../storage/Storage.js';
|
|
10
|
+
import { type StorageFactory } from '../storage/StorageFactory.js';
|
|
11
|
+
import type { Logger } from '../builtin/Logger.js';
|
|
12
|
+
import type { ProviderEntry } from '../descriptor/ProviderEntry.js';
|
|
12
13
|
import { StorageGuard } from '../dispatch/StorageGuard.js';
|
|
13
14
|
import { recording, unwind, type Undo } from './frame.js';
|
|
15
|
+
import type { Diagnostic } from '../diagnostic.js';
|
|
14
16
|
|
|
15
17
|
/** Everything the boot knows that a frame needs, gathered once for every frond. */
|
|
16
18
|
export interface FrameWorld {
|
|
@@ -33,61 +35,87 @@ interface Members {
|
|
|
33
35
|
providers: ProviderEntry[];
|
|
34
36
|
}
|
|
35
37
|
|
|
36
|
-
/** Each declared name, resolved to what it designates. */
|
|
37
|
-
function resolve(
|
|
38
|
-
|
|
38
|
+
/** Each declared name, resolved to what it designates — or nothing, and why. */
|
|
39
|
+
function resolve(
|
|
40
|
+
names: { entities: string[]; providers: string[] },
|
|
41
|
+
declared: readonly ProviderEntry[],
|
|
42
|
+
world: FrameWorld,
|
|
43
|
+
asked: Asked,
|
|
44
|
+
refused: Diagnostic[],
|
|
45
|
+
): Members | undefined {
|
|
46
|
+
const before = refused.length;
|
|
47
|
+
|
|
48
|
+
const entities = names.entities.flatMap((member) => {
|
|
39
49
|
const name = lowerFirst(member);
|
|
40
50
|
const schema = world.entityByName.get(name);
|
|
41
51
|
if (!schema) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
52
|
+
refused.push({
|
|
53
|
+
...asked,
|
|
54
|
+
code: 'together-entity-unknown',
|
|
55
|
+
message: `Together<[…${member}…]>: no entity named '${member}' is scanned in this app. `
|
|
56
|
+
+ 'The first list names entities; a class of this frond goes in the second.',
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
return [];
|
|
46
60
|
}
|
|
47
|
-
|
|
61
|
+
|
|
62
|
+
return [{ name, schema }];
|
|
48
63
|
});
|
|
49
64
|
|
|
50
|
-
const providers = names.providers.
|
|
65
|
+
const providers = names.providers.flatMap((member) => {
|
|
51
66
|
const entry = declared.find((provider) => provider.ctor.name === member);
|
|
52
67
|
if (!entry) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
`
|
|
57
|
-
|
|
68
|
+
refused.push({
|
|
69
|
+
...asked,
|
|
70
|
+
code: 'together-provider-unknown',
|
|
71
|
+
message: `Together<[…], [… ${member} …]>: this frond declares no class named '${member}'. `
|
|
72
|
+
+ 'The second list names providers to rebuild inside the frame — a service, a mirror, '
|
|
73
|
+
+ 'a repository — so that what they write is covered by the unwind.',
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
return [];
|
|
58
77
|
}
|
|
59
|
-
|
|
78
|
+
|
|
79
|
+
return [entry];
|
|
60
80
|
});
|
|
61
81
|
|
|
62
|
-
return { entities, providers };
|
|
82
|
+
return refused.length === before ? { entities, providers } : undefined;
|
|
63
83
|
}
|
|
64
84
|
|
|
85
|
+
/** Who asked for the frame, and where they wrote it — the same three fields every refusal here carries. */
|
|
86
|
+
type Asked = { severity: 'blocking'; filePath: string; subject: string };
|
|
87
|
+
|
|
65
88
|
/** A member that cannot write here at all — its frond is hosted elsewhere. */
|
|
66
|
-
function
|
|
89
|
+
function remoteMembers(members: Members, world: FrameWorld, asked: Asked, refused: Diagnostic[]): void {
|
|
67
90
|
for (const member of members.entities) {
|
|
68
91
|
const frond = world.frondOf.get(member.name);
|
|
69
92
|
if (frond && !world.hostedHere(frond)) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
`
|
|
74
|
-
|
|
93
|
+
refused.push({
|
|
94
|
+
...asked,
|
|
95
|
+
code: 'together-member-remote',
|
|
96
|
+
message: `'${member.name}' belongs to frond '${frond}', which this process declares in `
|
|
97
|
+
+ 'remotes: — it registers no storage here, so its writes cannot be part of a frame. '
|
|
98
|
+
+ 'Host the frond here, or split the work and join the halves with a fact.',
|
|
99
|
+
});
|
|
75
100
|
}
|
|
76
101
|
}
|
|
77
102
|
}
|
|
78
103
|
|
|
79
104
|
/** A provider member writing an entity the frame does not name. */
|
|
80
|
-
function
|
|
105
|
+
function uncoveredWrites(members: Members, world: FrameWorld, asked: Asked, refused: Diagnostic[]): void {
|
|
81
106
|
const covered = new Set(members.entities.map((member) => member.name));
|
|
82
107
|
for (const provider of members.providers) {
|
|
83
108
|
for (const dep of provider.deps) {
|
|
84
109
|
const entity = entityOfStorageKey(dep, (name) => world.entityByName.has(name));
|
|
85
110
|
if (!entity || covered.has(entity)) continue;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
111
|
+
refused.push({
|
|
112
|
+
...asked,
|
|
113
|
+
filePath: provider.filePath,
|
|
114
|
+
code: 'together-write-uncovered',
|
|
115
|
+
message: `${provider.ctor.name} writes ${entity}, which is not in the frame's entity list `
|
|
116
|
+
+ `— its writes would escape the unwind. Add it: `
|
|
117
|
+
+ `Together<[…, ${upperFirst(entity)}], [… ${provider.ctor.name} …]>.`,
|
|
118
|
+
});
|
|
91
119
|
}
|
|
92
120
|
}
|
|
93
121
|
}
|
|
@@ -121,22 +149,34 @@ async function inScope<R>(
|
|
|
121
149
|
/** Register one frame per key a handler or provider of this frond asked for. */
|
|
122
150
|
export function registerFrames(
|
|
123
151
|
scope: Container,
|
|
124
|
-
|
|
152
|
+
wanted: Iterable<{ key: string; filePath: string }>,
|
|
125
153
|
providers: readonly ProviderEntry[],
|
|
126
154
|
world: FrameWorld,
|
|
155
|
+
refused: Diagnostic[],
|
|
127
156
|
): void {
|
|
128
157
|
let registered = 0;
|
|
129
|
-
|
|
158
|
+
const seen = new Set<string>();
|
|
159
|
+
for (const { key, filePath } of wanted) {
|
|
160
|
+
if (seen.has(key)) continue;
|
|
161
|
+
seen.add(key);
|
|
130
162
|
const names = membersOfTogetherKey(key);
|
|
131
163
|
if (!names) continue;
|
|
132
164
|
registered += 1;
|
|
165
|
+
const asked = { severity: 'blocking', filePath, subject: key } as const;
|
|
133
166
|
if (!world.storageFactory) {
|
|
134
|
-
|
|
167
|
+
refused.push({
|
|
168
|
+
...asked,
|
|
169
|
+
code: 'together-needs-storage',
|
|
170
|
+
message: `Together<[${names.entities.join(', ')}]> needs storage, and this boot declares none.`,
|
|
171
|
+
});
|
|
172
|
+
continue;
|
|
135
173
|
}
|
|
136
174
|
|
|
137
|
-
const members = resolve(names, providers, world);
|
|
138
|
-
|
|
139
|
-
|
|
175
|
+
const members = resolve(names, providers, world, asked, refused);
|
|
176
|
+
// Nothing left to build a frame out of, and the refusals above already say what is missing.
|
|
177
|
+
if (!members) continue;
|
|
178
|
+
remoteMembers(members, world, asked, refused);
|
|
179
|
+
uncoveredWrites(members, world, asked, refused);
|
|
140
180
|
|
|
141
181
|
const sources = new Set(members.entities.map((member) => world.sourceOf?.(member.name) ?? 'db'));
|
|
142
182
|
const validator = (storage: Storage, name: string, schema: SchemaView) =>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { LogRecord } from './LogRecord.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Where one boot's lines wait, and where they go once they can.
|
|
5
|
+
*
|
|
6
|
+
* PER BOOT and never per process: two apps in one process each have their own
|
|
7
|
+
* destinations, and a slot shared between them sent the second app's lines to the first
|
|
8
|
+
* app's facade — measured on `demos/observability`, where only the first of three printed.
|
|
9
|
+
*
|
|
10
|
+
* A boot writes most of what a process ever logs, and it writes it before any emission is
|
|
11
|
+
* registered, so the lines that say what an app is made of are the ones a destination
|
|
12
|
+
* would miss. Bounded: a boot that never finishes must not grow, and what is dropped is
|
|
13
|
+
* the OLDEST since the lines explaining a refusal are the last.
|
|
14
|
+
*/
|
|
15
|
+
export class Carry {
|
|
16
|
+
private held: LogRecord[] = [];
|
|
17
|
+
private take?: (line: LogRecord) => void;
|
|
18
|
+
|
|
19
|
+
static readonly MAX = 500;
|
|
20
|
+
|
|
21
|
+
/** Take it now, or keep it for whoever arrives. */
|
|
22
|
+
push(record: LogRecord): void {
|
|
23
|
+
if (this.take) {
|
|
24
|
+
try {
|
|
25
|
+
this.take(record);
|
|
26
|
+
} catch { /* announcing never breaks logging, for the same reason a sink does not */ }
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.held.push(record);
|
|
30
|
+
if (this.held.length > Carry.MAX) this.held.shift();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Hand what is held over, and everything after it. */
|
|
34
|
+
to(take: (line: LogRecord) => void): () => void {
|
|
35
|
+
this.take = take;
|
|
36
|
+
for (const line of this.held.splice(0)) take(line);
|
|
37
|
+
|
|
38
|
+
return () => { this.take = undefined; };
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Forget what is still held — a boot that refused, or an app that declares no
|
|
43
|
+
* destination. Nothing is printed: the console had every one of these lines when it was
|
|
44
|
+
* written, and the hold exists only to hand them on later.
|
|
45
|
+
*/
|
|
46
|
+
forget(): void {
|
|
47
|
+
this.held.length = 0;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { LogLevel } from './LogLevel.js';
|
|
2
|
+
|
|
3
|
+
/** One line, before it was formatted for a terminal. */
|
|
4
|
+
export interface LogRecord {
|
|
5
|
+
level: Exclude<LogLevel, 'silent'>;
|
|
6
|
+
/** The logger's own name — 'boot:app', 'boot:app:catalog'. */
|
|
7
|
+
name: string;
|
|
8
|
+
message: string;
|
|
9
|
+
args: unknown[];
|
|
10
|
+
/** Epoch milliseconds. */
|
|
11
|
+
at: number;
|
|
12
|
+
}
|
|
@@ -1,68 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export interface LogRecord {
|
|
7
|
-
level: Exclude<LogLevel, 'silent'>;
|
|
8
|
-
/** The logger's own name — 'boot:app', 'boot:app:catalog'. */
|
|
9
|
-
name: string;
|
|
10
|
-
message: string;
|
|
11
|
-
args: unknown[];
|
|
12
|
-
/** Epoch milliseconds. */
|
|
13
|
-
at: number;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/** Where a line goes once it is written — `@fougere/log` ships one, `observability` another. */
|
|
17
|
-
export type LogSink = (record: LogRecord) => void;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Where one boot's lines wait, and where they go once they can.
|
|
21
|
-
*
|
|
22
|
-
* PER BOOT and never per process: two apps in one process each have their own
|
|
23
|
-
* destinations, and a slot shared between them sent the second app's lines to the first
|
|
24
|
-
* app's door — measured on `demos/observability`, where only the first of three printed.
|
|
25
|
-
*
|
|
26
|
-
* A boot writes most of what a process ever logs, and it writes it before any emission is
|
|
27
|
-
* registered, so the lines that say what an app is made of are the ones a destination
|
|
28
|
-
* would miss. Bounded: a boot that never finishes must not grow, and what is dropped is
|
|
29
|
-
* the OLDEST since the lines explaining a refusal are the last.
|
|
30
|
-
*/
|
|
31
|
-
export class Carry {
|
|
32
|
-
private held: LogRecord[] = [];
|
|
33
|
-
private take?: (line: LogRecord) => void;
|
|
34
|
-
|
|
35
|
-
static readonly MAX = 500;
|
|
36
|
-
|
|
37
|
-
/** Take it now, or keep it for whoever arrives. */
|
|
38
|
-
push(record: LogRecord): void {
|
|
39
|
-
if (this.take) {
|
|
40
|
-
try {
|
|
41
|
-
this.take(record);
|
|
42
|
-
} catch { /* announcing never breaks logging, for the same reason a sink does not */ }
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
this.held.push(record);
|
|
46
|
-
if (this.held.length > Carry.MAX) this.held.shift();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/** Hand what is held over, and everything after it. */
|
|
50
|
-
to(take: (line: LogRecord) => void): () => void {
|
|
51
|
-
this.take = take;
|
|
52
|
-
for (const line of this.held.splice(0)) take(line);
|
|
53
|
-
|
|
54
|
-
return () => { this.take = undefined; };
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Forget what is still held — a boot that refused, or an app that declares no
|
|
59
|
-
* destination. Nothing is printed: the console had every one of these lines when it was
|
|
60
|
-
* written, and the hold exists only to hand them on later.
|
|
61
|
-
*/
|
|
62
|
-
forget(): void {
|
|
63
|
-
this.held.length = 0;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
1
|
+
import type { LogLevel } from './LogLevel.js';
|
|
2
|
+
import type { LogRecord } from './LogRecord.js';
|
|
3
|
+
import type { Carry } from './Carry.js';
|
|
4
|
+
import type { LoggerOptions } from './LoggerOptions.js';
|
|
5
|
+
import type { Rendered } from './Rendered.js';
|
|
66
6
|
|
|
67
7
|
const LEVELS: Record<LogLevel, number> = { debug: 0, info: 1, warn: 2, error: 3, silent: 4 };
|
|
68
8
|
|
|
@@ -125,19 +65,6 @@ function stamp(at: number | Date): string {
|
|
|
125
65
|
return `${h}:${m}:${s}.${ms}`;
|
|
126
66
|
}
|
|
127
67
|
|
|
128
|
-
export interface LoggerOptions {
|
|
129
|
-
/** Logger name / prefix. */
|
|
130
|
-
name?: string;
|
|
131
|
-
/**
|
|
132
|
-
* Where its lines go — one boot's, so two apps in a process do not share a door. A
|
|
133
|
-
* logger without one writes to the console and nowhere else, which is what the boot's
|
|
134
|
-
* first lines do and what an app declaring no destination does forever.
|
|
135
|
-
*/
|
|
136
|
-
carry?: Carry;
|
|
137
|
-
/** Force color on/off. Auto-detected by default. */
|
|
138
|
-
color?: boolean;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
68
|
export class Logger {
|
|
142
69
|
private name: string;
|
|
143
70
|
private color: boolean;
|
|
@@ -176,26 +103,6 @@ export class Logger {
|
|
|
176
103
|
}
|
|
177
104
|
}
|
|
178
105
|
|
|
179
|
-
/**
|
|
180
|
-
* One line, ready for a terminal — the console arguments and which method takes them.
|
|
181
|
-
*
|
|
182
|
-
* Here rather than inside the class because the boot is not the only writer: a destination
|
|
183
|
-
* that prints (`@fougere/log`) hands its own record to the same formatting, so the two
|
|
184
|
-
* outputs cannot drift.
|
|
185
|
-
*
|
|
186
|
-
* One console method per level: `debug` and `info` both went to `console.log`, so nothing
|
|
187
|
-
* downstream — a terminal filter, a collector — could tell them apart.
|
|
188
|
-
*/
|
|
189
|
-
export interface Rendered {
|
|
190
|
-
level: Exclude<LogLevel, 'silent'>;
|
|
191
|
-
name: string;
|
|
192
|
-
message: string;
|
|
193
|
-
/** Absent on most lines: a message usually carries its own detail. */
|
|
194
|
-
args?: unknown[] | null;
|
|
195
|
-
/** Epoch milliseconds from a logger, a `Date` from an entity that stamped it. */
|
|
196
|
-
at: number | Date;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
106
|
export function formatted(
|
|
200
107
|
record: Rendered,
|
|
201
108
|
color = supportsColor(),
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Carry } from './Carry.js';
|
|
2
|
+
|
|
3
|
+
export interface LoggerOptions {
|
|
4
|
+
/** Logger name / prefix. */
|
|
5
|
+
name?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Where its lines go — one boot's, so two apps in a process do not share a facade. A
|
|
8
|
+
* logger without one writes to the console and nowhere else, which is what the boot's
|
|
9
|
+
* first lines do and what an app declaring no destination does forever.
|
|
10
|
+
*/
|
|
11
|
+
carry?: Carry;
|
|
12
|
+
/** Force color on/off. Auto-detected by default. */
|
|
13
|
+
color?: boolean;
|
|
14
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { LogLevel } from './LogLevel.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* One line, ready for a terminal — the console arguments and which method takes them.
|
|
5
|
+
*
|
|
6
|
+
* Here rather than inside the class because the boot is not the only writer: a destination
|
|
7
|
+
* that prints (`@fougere/log`) hands its own record to the same formatting, so the two
|
|
8
|
+
* outputs cannot drift.
|
|
9
|
+
*
|
|
10
|
+
* One console method per level: `debug` and `info` both went to `console.log`, so nothing
|
|
11
|
+
* downstream — a terminal filter, a collector — could tell them apart.
|
|
12
|
+
*/
|
|
13
|
+
export interface Rendered {
|
|
14
|
+
level: Exclude<LogLevel, 'silent'>;
|
|
15
|
+
name: string;
|
|
16
|
+
message: string;
|
|
17
|
+
/** Absent on most lines: a message usually carries its own detail. */
|
|
18
|
+
args?: unknown[] | null;
|
|
19
|
+
/** Epoch milliseconds from a logger, a `Date` from an entity that stamped it. */
|
|
20
|
+
at: number | Date;
|
|
21
|
+
}
|