@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
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
|
+
}
|
package/src/contract.ts
CHANGED
|
@@ -3,35 +3,57 @@
|
|
|
3
3
|
* runtime: the error vocabulary, the invocation shape, the call value, the naming convention.
|
|
4
4
|
*/
|
|
5
5
|
import { lowerFirst } from '@fougere/schema';
|
|
6
|
-
import { Invocation
|
|
7
|
-
import type
|
|
6
|
+
import { Invocation } from './wire/Invocation.js';
|
|
7
|
+
import { type InvocationContext } from './wire/InvocationContext.js';
|
|
8
|
+
import type { FrondCall } from './wire/FrondCall.js';
|
|
8
9
|
|
|
9
|
-
export {
|
|
10
|
+
export { ErrorCode } from './wire/ErrorCode.js';
|
|
11
|
+
export { FougereError, validationErrorsOf } from './wire/FougereError.js';
|
|
10
12
|
// What a read may ask about one field. Here rather than on the main entry because an
|
|
11
13
|
// adapter reads it to compile a query, and an adapter carries no boot.
|
|
12
|
-
export { comparisonOf, comparisonsIn } from './storage/
|
|
13
|
-
export type { Comparison } from './storage/
|
|
14
|
+
export { comparisonOf, comparisonsIn } from './storage/Comparison.js';
|
|
15
|
+
export type { Comparison } from './storage/Comparison.js';
|
|
14
16
|
// A receiver turns a refusal into what may cross a process boundary, and it is not
|
|
15
17
|
// core's boot — reaching it through the main entry dragged the scanner into a bundle.
|
|
16
18
|
export { toPublicError } from './wire/http-error.js';
|
|
17
19
|
export { Invocation } from './wire/Invocation.js';
|
|
18
|
-
export type { InvocationContext } from './wire/
|
|
19
|
-
export { Call } from './wire/
|
|
20
|
+
export type { InvocationContext } from './wire/InvocationContext.js';
|
|
21
|
+
export { Call } from './wire/Call.js';
|
|
20
22
|
export { RouteAddress } from './wire/RouteAddress.js';
|
|
21
|
-
export type { FrondCall
|
|
22
|
-
export {
|
|
23
|
+
export type { FrondCall } from './wire/FrondCall.js';
|
|
24
|
+
export type { SignedCall } from './wire/SignedCall.js';
|
|
25
|
+
export type { Transport } from './wire/Transport.js';
|
|
26
|
+
export { MAX_BODY_BYTES } from './wire/SignedCall.js';
|
|
23
27
|
// The reserved entity, VALUE and not type: a consumer that wants to leave it alone — a
|
|
24
28
|
// call log ignoring its own reader — has to be able to name it.
|
|
25
|
-
export { RPC_ENTITY } from './wire/
|
|
26
|
-
export type { CallPage
|
|
29
|
+
export { RPC_ENTITY } from './wire/RpcAnswer.js';
|
|
30
|
+
export type { CallPage } from './wire/CallPage.js';
|
|
31
|
+
export type { CallRecord } from './wire/CallRecord.js';
|
|
27
32
|
// The comparison of two cards, which a consumer runs about a producer — browser-safe on
|
|
28
33
|
// purpose: a panel showing the drift holds only the two cards, never the app.
|
|
29
34
|
export { driftOf, agrees, explain } from './wire/drift.js';
|
|
30
35
|
export type { CardDrift } from './wire/drift.js';
|
|
31
36
|
|
|
32
37
|
/** What `rpc.discover` answers. */
|
|
33
|
-
export
|
|
34
|
-
export {
|
|
38
|
+
export { refusalsOf, type Refusable } from './wire/refusals.js';
|
|
39
|
+
export type { Addresses } from './wire/Addresses.js';
|
|
40
|
+
export type { Answer } from './wire/Answer.js';
|
|
41
|
+
export type { AnyHandler } from './wire/AnyHandler.js';
|
|
42
|
+
export type { FacadeName } from './wire/FacadeName.js';
|
|
43
|
+
export type { FougereHandlers } from './wire/FougereHandlers.js';
|
|
44
|
+
export type { FougereOperations } from './wire/FougereOperations.js';
|
|
45
|
+
export type { HandlerOf } from './wire/HandlerOf.js';
|
|
46
|
+
export type { Refused } from './wire/Refused.js';
|
|
47
|
+
export type { Rows } from './wire/Rows.js';
|
|
48
|
+
export type { CardOp } from './wire/card/CardOp.js';
|
|
49
|
+
export type { IdentityCard } from './wire/card/IdentityCard.js';
|
|
50
|
+
export type { DeclaredEdge } from './wire/topology/DeclaredEdge.js';
|
|
51
|
+
export type { DeclaredFrond } from './wire/topology/DeclaredFrond.js';
|
|
52
|
+
export type { DeclaredTopology } from './wire/topology/DeclaredTopology.js';
|
|
53
|
+
export type { Edge } from './wire/topology/Edge.js';
|
|
54
|
+
export type { FrondPlacement } from './wire/topology/FrondPlacement.js';
|
|
55
|
+
export type { TopologyReport } from './wire/topology/TopologyReport.js';
|
|
56
|
+
export { assertIdentityCard } from './wire/card/IdentityCard.js';
|
|
35
57
|
|
|
36
58
|
/** The key a class name is filed under — 'Post' → 'post'. */
|
|
37
59
|
export { lowerFirst } from '@fougere/schema';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Signer } from './Signer.js';
|
|
2
|
+
import type { Verifier } from './Verifier.js';
|
|
3
|
+
import type { PublicJwk } from './PublicJwk.js';
|
|
4
|
+
|
|
5
|
+
export interface CryptoPort {
|
|
6
|
+
/** SHA-256. What binds an input to an envelope without carrying the input. */
|
|
7
|
+
sha256(data: Uint8Array): Promise<Uint8Array>;
|
|
8
|
+
/** From a PKCS#8 PEM — what `fougere keys` writes. */
|
|
9
|
+
signerOf(privateKeyPem: string): Promise<Signer>;
|
|
10
|
+
/** From an SPKI PEM (the root's) or a JWK (the one a grant embeds). */
|
|
11
|
+
verifierOf(key: string | PublicJwk): Promise<Verifier>;
|
|
12
|
+
}
|
package/src/crypto/node.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/** Ed25519 through `node:crypto` — the default realization, and the fast one. */
|
|
2
2
|
import { createHash, createPrivateKey, createPublicKey, sign, verify } from 'node:crypto';
|
|
3
|
-
import type { CryptoPort
|
|
3
|
+
import type { CryptoPort } from './CryptoPort.js';
|
|
4
|
+
import type { PublicJwk } from './PublicJwk.js';
|
|
5
|
+
import type { Signer } from './Signer.js';
|
|
6
|
+
import type { Verifier } from './Verifier.js';
|
|
4
7
|
|
|
5
8
|
export const crypto: CryptoPort = {
|
|
6
9
|
async sha256(data) {
|
package/src/crypto/webcrypto.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/** Ed25519 through WebCrypto — what a runtime with no `node:` builtin has. */
|
|
2
2
|
import { derOf } from './encoding.js';
|
|
3
|
-
import type { CryptoPort
|
|
3
|
+
import type { CryptoPort } from './CryptoPort.js';
|
|
4
|
+
import type { PublicJwk } from './PublicJwk.js';
|
|
5
|
+
import type { Signer } from './Signer.js';
|
|
6
|
+
import type { Verifier } from './Verifier.js';
|
|
4
7
|
|
|
5
8
|
interface WebSubtle {
|
|
6
9
|
digest(algorithm: string, data: Uint8Array): Promise<ArrayBuffer>;
|
package/src/define.ts
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** A discovered collector (resolves handler input params from invocation context). */
|
|
2
|
+
export interface CollectorEntry {
|
|
3
|
+
/** Registration key of the TYPE this collector resolves — 'user', 'ability'. */
|
|
4
|
+
typeName: string;
|
|
5
|
+
/** The collector class. */
|
|
6
|
+
ctor: new (...args: never[]) => unknown;
|
|
7
|
+
/** Constructor dependency type names (from AST scan). */
|
|
8
|
+
deps: string[];
|
|
9
|
+
/** Absolute file path (for debugging). */
|
|
10
|
+
filePath: string;
|
|
11
|
+
}
|