@fougere/core 0.9.3-alpha.0 → 0.11.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} +3 -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} +5 -4
- package/dist/Source.js.map +1 -0
- 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/Hosting.d.ts +38 -0
- package/dist/boot/Hosting.d.ts.map +1 -0
- package/dist/boot/Hosting.js +2 -0
- package/dist/boot/Hosting.js.map +1 -0
- package/dist/boot/Peer.d.ts +16 -0
- package/dist/boot/Peer.d.ts.map +1 -0
- package/dist/boot/Peer.js +2 -0
- package/dist/boot/Peer.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 +196 -59
- 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 +36 -4
- 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 +21 -7
- package/dist/boot/install.d.ts.map +1 -1
- package/dist/boot/install.js +41 -27
- 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/peerOver.d.ts +4 -0
- package/dist/boot/peerOver.d.ts.map +1 -0
- package/dist/boot/peerOver.js +12 -0
- package/dist/boot/peerOver.js.map +1 -0
- 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/relations.d.ts +54 -0
- package/dist/boot/relations.d.ts.map +1 -0
- package/dist/boot/relations.js +150 -0
- package/dist/boot/relations.js.map +1 -0
- 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 +11 -4
- package/dist/boot/together.d.ts.map +1 -1
- package/dist/boot/together.js +62 -28
- 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 +35 -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/Dependent.d.ts +19 -0
- package/dist/dispatch/Dependent.d.ts.map +1 -0
- package/dist/dispatch/Dependent.js +2 -0
- package/dist/dispatch/Dependent.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 +15 -2
- package/dist/dispatch/Dispatcher.d.ts.map +1 -1
- package/dist/dispatch/Dispatcher.js +36 -8
- package/dist/dispatch/Dispatcher.js.map +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/Journal.d.ts +25 -0
- package/dist/dispatch/Journal.d.ts.map +1 -0
- package/dist/dispatch/Journal.js +3 -0
- package/dist/dispatch/Journal.js.map +1 -0
- 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/RelationCheck.d.ts +22 -0
- package/dist/dispatch/RelationCheck.d.ts.map +1 -0
- package/dist/dispatch/RelationCheck.js +2 -0
- package/dist/dispatch/RelationCheck.js.map +1 -0
- package/dist/dispatch/Release.d.ts +36 -0
- package/dist/dispatch/Release.d.ts.map +1 -0
- package/dist/dispatch/Release.js +124 -0
- package/dist/dispatch/Release.js.map +1 -0
- 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 +24 -13
- package/dist/dispatch/StorageGuard.d.ts.map +1 -1
- package/dist/dispatch/StorageGuard.js +69 -12
- 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 +97 -33
- 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} +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} +10 -18
- package/dist/wire/Emit.d.ts.map +1 -0
- package/dist/wire/{emit.js → Emit.js} +17 -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 +4 -11
- package/dist/wire/Invocation.d.ts.map +1 -1
- package/dist/wire/Invocation.js +4 -1
- package/dist/wire/Invocation.js.map +1 -1
- package/dist/wire/InvocationContext.d.ts +12 -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 +14 -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} +9 -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} +7 -23
- 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/Hosting.ts +38 -0
- package/src/boot/Peer.ts +15 -0
- package/src/boot/apply.ts +2 -2
- package/src/boot/bootstrap.ts +240 -87
- package/src/boot/card.ts +15 -11
- package/src/boot/declared.ts +40 -5
- package/src/boot/frame.ts +2 -2
- package/src/boot/hosted.ts +1 -1
- package/src/boot/install.ts +65 -33
- package/src/boot/ownership.ts +92 -52
- package/src/boot/peerOver.ts +17 -0
- package/src/boot/ports.ts +52 -41
- package/src/boot/relations.ts +172 -0
- 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 +82 -38
- 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 +36 -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/Dependent.ts +19 -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 +44 -8
- 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/Journal.ts +26 -0
- 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/RelationCheck.ts +21 -0
- package/src/dispatch/Release.ts +156 -0
- 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 +75 -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 +101 -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} +24 -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 +5 -12
- package/src/wire/InvocationContext.ts +11 -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 +14 -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/source.js.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
|
@@ -1,44 +1,7 @@
|
|
|
1
1
|
import { upperFirst, lowerFirst, type SchemaView } from '@fougere/schema';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/** Number of records to return. */
|
|
6
|
-
limit?: number;
|
|
7
|
-
|
|
8
|
-
/** Offset-based: skip N records. */
|
|
9
|
-
offset?: number;
|
|
10
|
-
|
|
11
|
-
/** Page-based: 1-indexed page number (requires limit). */
|
|
12
|
-
page?: number;
|
|
13
|
-
|
|
14
|
-
/** Cursor-based: fetch records after this ID. */
|
|
15
|
-
after?: string;
|
|
16
|
-
|
|
17
|
-
/** Field name to order by. */
|
|
18
|
-
orderBy?: string;
|
|
19
|
-
|
|
20
|
-
/** Sort direction (default: 'asc'). */
|
|
21
|
-
order?: 'asc' | 'desc';
|
|
22
|
-
|
|
23
|
-
/** If true, also returns total count (for pagination UIs). */
|
|
24
|
-
count?: boolean;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Equality criteria, field by field — `{ orderId: '…' }`. Named rather than spread across the
|
|
28
|
-
* options so an unknown key stays ignored instead of silently becoming a filter.
|
|
29
|
-
*/
|
|
30
|
-
where?: Record<string, unknown>;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/** Result of list() — extends Array so it's backward compatible. */
|
|
34
|
-
export interface ListResult<T> extends Array<T> {
|
|
35
|
-
/** Total number of matching records (only set when count: true). */
|
|
36
|
-
total?: number;
|
|
37
|
-
/** Cursor of the last item (for cursor-based pagination). */
|
|
38
|
-
endCursor?: string;
|
|
39
|
-
/** Whether more records exist after endCursor. */
|
|
40
|
-
hasMore?: boolean;
|
|
41
|
-
}
|
|
2
|
+
import type { ListOptions } from './ListOptions.js';
|
|
3
|
+
import type { ListResult } from './ListResult.js';
|
|
4
|
+
import type { SelectOption } from './SelectOption.js';
|
|
42
5
|
|
|
43
6
|
/** The keys `list()` answers to. */
|
|
44
7
|
const LIST_OPTION_KEYS = [
|
|
@@ -72,11 +35,6 @@ export function assertListOptions(
|
|
|
72
35
|
);
|
|
73
36
|
}
|
|
74
37
|
|
|
75
|
-
/** Select option — restrict returned fields to those of a SchemaView. */
|
|
76
|
-
export interface SelectOption {
|
|
77
|
-
select?: SchemaView;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
38
|
/** Per-entity storage — scoped CRUD operations on a single entity type. */
|
|
81
39
|
export interface Storage<T = Record<string, unknown>> {
|
|
82
40
|
list(options?: ListOptions & SelectOption): Promise<ListResult<T>>;
|
|
@@ -179,12 +137,6 @@ export abstract class Storage<T = Record<string, unknown>> {
|
|
|
179
137
|
get client(): unknown { return behind<T>(this).client; }
|
|
180
138
|
}
|
|
181
139
|
|
|
182
|
-
/**
|
|
183
|
-
* Factory that creates a Storage for a given entity.
|
|
184
|
-
* Called by bootstrap for every scanned entity.
|
|
185
|
-
*/
|
|
186
|
-
export type StorageFactory = (entity: SchemaView, name: string) => Storage;
|
|
187
|
-
|
|
188
140
|
/** Container key of an entity's storage — 'reading' → 'ReadingStorage'. */
|
|
189
141
|
export function storageKeyOf(entity: string): string {
|
|
190
142
|
return `${upperFirst(entity)}${HELD}`;
|
|
@@ -201,11 +153,6 @@ export function entityOfStorageKey(key: string, known: (entity: string) => boole
|
|
|
201
153
|
/** What a holder keeps, said in the key it is registered under. */
|
|
202
154
|
const HELD = 'Storage';
|
|
203
155
|
|
|
204
|
-
/** `Together<[Account, Ledger]>` — writes that stand or fall as one. */
|
|
205
|
-
export interface Together<E extends readonly unknown[], P extends readonly unknown[] = []> {
|
|
206
|
-
run<R>(fn: (entities: { [K in keyof E]: Storage<E[K]> }, providers: P) => Promise<R>): Promise<R>;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
156
|
/**
|
|
210
157
|
* The container key of a frame — `[['Account', 'Ledger'], ['RateMirror']]` →
|
|
211
158
|
* 'Account+Ledger|RateMirrorTogether'.
|
|
@@ -216,7 +163,9 @@ export function togetherKeyOf(entities: readonly string[], providers: readonly s
|
|
|
216
163
|
}
|
|
217
164
|
|
|
218
165
|
const FRAME = 'Together';
|
|
166
|
+
|
|
219
167
|
const SEPARATOR = '+';
|
|
168
|
+
|
|
220
169
|
/** Separates the two lists — what the unwind covers, and what is rebuilt to make it true. */
|
|
221
170
|
const KINDS = '|';
|
|
222
171
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type SchemaView } from '@fougere/schema';
|
|
2
|
+
import type { Storage } from './Storage.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Factory that creates a Storage for a given entity.
|
|
6
|
+
* Called by bootstrap for every scanned entity.
|
|
7
|
+
*/
|
|
8
|
+
export type StorageFactory = (entity: SchemaView, name: string) => Storage;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
/** The thirteen gestures of {@link Storage}, derived from four. */
|
|
2
1
|
import { applyCreate, applyUpdate, Lifecycle, Role, type SchemaView } from '@fougere/schema';
|
|
3
|
-
import { comparisonOf, comparisonsIn, type Comparison } from './
|
|
4
|
-
import type { Storage
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export type Values = Record<string, unknown>;
|
|
2
|
+
import { comparisonOf, comparisonsIn, type Comparison } from './Comparison.js';
|
|
3
|
+
import type { Storage } from './Storage.js';
|
|
4
|
+
import type { StorageFactory } from './StorageFactory.js';
|
|
5
|
+
import type { Values } from './Values.js';
|
|
8
6
|
|
|
9
7
|
/** Instances addressed by key — what an adapter supplies, and all of it. */
|
|
10
8
|
export interface Store {
|
|
@@ -49,7 +47,7 @@ export function storageOver(open: (entity: SchemaView, name: string) => Store):
|
|
|
49
47
|
|
|
50
48
|
// Same contract as SQL: the key and the creation stamps survive an overwrite.
|
|
51
49
|
// Named, and not reached through `this`: a caller may have wrapped these gestures,
|
|
52
|
-
// and a derived one that goes back through the front
|
|
50
|
+
// and a derived one that goes back through the front facade is judged twice.
|
|
53
51
|
const upsert = async (input: Partial<Record<string, unknown>>): Promise<Values> => {
|
|
54
52
|
const values = applyCreate(fields, applyUpdate(fields, input));
|
|
55
53
|
const id = values[pk] as string | undefined;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Storage } from './Storage.js';
|
|
2
|
+
|
|
3
|
+
/** `Together<[Account, Ledger]>` — writes that stand or fall as one. */
|
|
4
|
+
export interface Together<E extends readonly unknown[], P extends readonly unknown[] = []> {
|
|
5
|
+
run<R>(fn: (entities: { [K in keyof E]: Storage<E[K]> }, providers: P) => Promise<R>): Promise<R>;
|
|
6
|
+
}
|
package/src/verify.ts
CHANGED
|
@@ -1,27 +1,18 @@
|
|
|
1
|
-
import type { FrondDescriptor } from './descriptor/
|
|
1
|
+
import type { FrondDescriptor } from './descriptor/FrondDescriptor.js';
|
|
2
|
+
import type { Diagnostic } from './diagnostic.js';
|
|
2
3
|
import { lowerFirst } from '@fougere/schema';
|
|
3
|
-
import { repositoryKeyOf } from './prefab/
|
|
4
|
-
import { storageKeyOf } from './storage/
|
|
4
|
+
import { repositoryKeyOf } from './prefab/RepositoryConstructor.js';
|
|
5
|
+
import { storageKeyOf } from './storage/Storage.js';
|
|
5
6
|
import { presenterKeyOf } from './prefab/presenter.js';
|
|
6
7
|
import { collectorKeyOf } from './prefab/collector.js';
|
|
7
8
|
|
|
8
|
-
/**
|
|
9
|
-
export
|
|
10
|
-
/** Rule name, stable — 'cross-frond-dependency'. */
|
|
11
|
-
rule: string;
|
|
12
|
-
/** What it costs, decided by the rule that raises it — never by whoever renders it. */
|
|
13
|
-
severity: 'blocking' | 'warning';
|
|
14
|
-
/** The frond the subject lives in. */
|
|
9
|
+
/** A subject declared in one frond and reached from another — the rules below find no other kind. */
|
|
10
|
+
export type Misplaced = Diagnostic & {
|
|
15
11
|
frond: string;
|
|
16
|
-
/** What violates it — 'PostHandler'. */
|
|
17
12
|
subject: string;
|
|
18
|
-
/** Where to go and look. */
|
|
19
|
-
filePath: string;
|
|
20
13
|
/** What the subject reaches for, and where it actually lives. */
|
|
21
14
|
dependsOn: { key: string; frond: string; kind: string };
|
|
22
|
-
|
|
23
|
-
message: string;
|
|
24
|
-
}
|
|
15
|
+
};
|
|
25
16
|
|
|
26
17
|
/** A dependency declared in a frond's scope, and what kind of thing it is. */
|
|
27
18
|
type Registration = { frond: string; kind: string };
|
|
@@ -57,7 +48,7 @@ function injectablesOf(frond: FrondDescriptor) {
|
|
|
57
48
|
* Does this app survive being split? A frond runs in-process or in its own process behind JSON-RPC
|
|
58
49
|
* with identical user code — that is the whole claim.
|
|
59
50
|
*/
|
|
60
|
-
export function verify(app: { fronds: readonly FrondDescriptor[] }):
|
|
51
|
+
export function verify(app: { fronds: readonly FrondDescriptor[] }): Misplaced[] {
|
|
61
52
|
const index = new Map<string, Registration>();
|
|
62
53
|
for (const frond of app.fronds) {
|
|
63
54
|
for (const [key, reg] of registrationsOf(frond)) index.set(key, reg);
|
|
@@ -71,7 +62,7 @@ export function verify(app: { fronds: readonly FrondDescriptor[] }): Violation[]
|
|
|
71
62
|
for (const collector of frond.collectors) collectorFronds.set(collector.typeName, frond.name);
|
|
72
63
|
}
|
|
73
64
|
|
|
74
|
-
const violations:
|
|
65
|
+
const violations: Misplaced[] = [];
|
|
75
66
|
for (const frond of app.fronds) {
|
|
76
67
|
// Rule 1 — a constructor dependency declared in another frond's scope.
|
|
77
68
|
// Façade keys are exempt by construction, not by omission: a `Facade<X>`
|
|
@@ -86,7 +77,7 @@ export function verify(app: { fronds: readonly FrondDescriptor[] }): Violation[]
|
|
|
86
77
|
// an unresolved dependency is the container's complaint, not this rule's.
|
|
87
78
|
if (!declared || declared.frond === frond.name) continue;
|
|
88
79
|
violations.push({
|
|
89
|
-
|
|
80
|
+
code: 'cross-frond-dependency',
|
|
90
81
|
severity: 'warning',
|
|
91
82
|
frond: frond.name,
|
|
92
83
|
subject: subject.name,
|
|
@@ -120,7 +111,7 @@ export function verify(app: { fronds: readonly FrondDescriptor[] }): Violation[]
|
|
|
120
111
|
// provably false.
|
|
121
112
|
if (!elsewhere) continue;
|
|
122
113
|
violations.push({
|
|
123
|
-
|
|
114
|
+
code: 'collector-in-another-frond',
|
|
124
115
|
severity: 'blocking',
|
|
125
116
|
frond: frond.name,
|
|
126
117
|
subject: `${handler.ctor.name}.${opName}(${param.name})`,
|
|
@@ -147,6 +138,6 @@ export function verify(app: { fronds: readonly FrondDescriptor[] }): Violation[]
|
|
|
147
138
|
export function assertSplittable(app: { fronds: readonly FrondDescriptor[] }): void {
|
|
148
139
|
const violations = verify(app);
|
|
149
140
|
if (violations.length === 0) return;
|
|
150
|
-
const lines = violations.map((v) => ` [${v.
|
|
141
|
+
const lines = violations.map((v) => ` [${v.code}] ${v.frond}/${v.subject}\n ${v.message}\n ${v.filePath}`);
|
|
151
142
|
throw new Error(`${violations.length} violation(s) — this app does not survive a split:\n${lines.join('\n')}`);
|
|
152
143
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FougereOperations } from './FougereOperations.js';
|
|
2
|
+
|
|
3
|
+
type Served = keyof FougereOperations & string;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Both halves below take the union through a type PARAMETER, which is what makes the
|
|
7
|
+
* conditional distribute: `Served` is an alias, and an alias is matched whole — `'a.x' | 'b.y'`
|
|
8
|
+
* does not extend `` `${string}.${string}` `` as one thing, so the naive form answers `never`.
|
|
9
|
+
*/
|
|
10
|
+
type AddressIn<Key> = Key extends `${infer Address}.${string}` ? Address : never;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The addresses this app answers at — or any string, until a scan has said otherwise. The
|
|
14
|
+
* `[Served] extends [never]` form is what keeps an ungenerated project compiling: a bare `never`
|
|
15
|
+
* in a parameter position refuses every call, the correct ones included.
|
|
16
|
+
*/
|
|
17
|
+
export type Addresses = [Served] extends [never] ? string : AddressIn<Served>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { OperationContext } from './OperationContext.js';
|
|
2
|
+
import type { AppNext } from './AppNext.js';
|
|
3
|
+
|
|
4
|
+
export type AppMiddleware = (ctx: OperationContext, next: AppNext) => Promise<unknown>;
|
|
5
|
+
|
|
6
|
+
// ── Runner ──────────────────────────────────────
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Execute a middleware chain (onion model) then the handler.
|
|
10
|
+
*/
|
|
11
|
+
export function runMiddlewares(
|
|
12
|
+
middlewares: AppMiddleware[],
|
|
13
|
+
ctx: OperationContext,
|
|
14
|
+
handler: AppNext,
|
|
15
|
+
): Promise<unknown> {
|
|
16
|
+
let index = 0;
|
|
17
|
+
const next = (): Promise<unknown> => {
|
|
18
|
+
if (index < middlewares.length) {
|
|
19
|
+
return middlewares[index++](ctx, next);
|
|
20
|
+
}
|
|
21
|
+
return handler();
|
|
22
|
+
};
|
|
23
|
+
return next();
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type AppNext = () => Promise<unknown>;
|
package/src/wire/Call.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Invocation } from './Invocation.js';
|
|
2
|
+
import { type PartialInvocation } from './PartialInvocation.js';
|
|
3
|
+
import type { RouteAddress } from './RouteAddress.js';
|
|
4
|
+
|
|
5
|
+
/** One normalized request, frozen: where it goes and what the caller supplied. */
|
|
6
|
+
export class Call {
|
|
7
|
+
readonly address: RouteAddress;
|
|
8
|
+
readonly invocation: Invocation;
|
|
9
|
+
|
|
10
|
+
constructor(address: RouteAddress, invocation?: PartialInvocation) {
|
|
11
|
+
this.address = address;
|
|
12
|
+
this.invocation = Invocation.from(invocation);
|
|
13
|
+
Object.freeze(this);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { RouteKind } from './
|
|
1
|
+
import type { RouteKind } from './RouteKind.js';
|
|
2
2
|
|
|
3
|
-
/** What crosses the
|
|
3
|
+
/** What crosses the facade. */
|
|
4
4
|
export interface CallRecord {
|
|
5
5
|
/** Monotonic, and the whole cursor protocol: a reader asks for what is above its own. */
|
|
6
6
|
seq: number;
|
|
@@ -20,11 +20,3 @@ export interface CallRecord {
|
|
|
20
20
|
verdict: 'running' | 'ok' | 'failed';
|
|
21
21
|
refusal?: { code?: string; message: string };
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
/** One page of the ring. */
|
|
25
|
-
export interface CallPage {
|
|
26
|
-
calls: CallRecord[];
|
|
27
|
-
cursor: number;
|
|
28
|
-
inFlight: number;
|
|
29
|
-
dropped: number;
|
|
30
|
-
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Announcing a fact — the half of the topology `remotes:` never covered.
|
|
3
|
-
*
|
|
4
|
-
* Documented: [facts](https://fougere.dev/docs/business/facts).
|
|
5
|
-
*/
|
|
6
1
|
import { lowerFirst } from '@fougere/schema';
|
|
2
|
+
import { computeBindingPlan } from './binding.js';
|
|
3
|
+
import type { OperationContract } from './OperationContract.js';
|
|
4
|
+
import type { OperationsMap } from './OperationsMap.js';
|
|
7
5
|
|
|
8
6
|
/**
|
|
9
7
|
* What an emitter injects. PARTIAL, because announcing is what REALIZES the fact's
|
|
@@ -13,25 +11,6 @@ import { lowerFirst } from '@fougere/schema';
|
|
|
13
11
|
*/
|
|
14
12
|
export type Emit<T, A = never> = (fact: Partial<T>) => Promise<A[]>;
|
|
15
13
|
|
|
16
|
-
/**
|
|
17
|
-
* What a subscriber accepts — and what it PROMISES about itself.
|
|
18
|
-
*
|
|
19
|
-
* What it ANSWERS is its own to choose: `Promise<void>` says nothing, any other type is an
|
|
20
|
-
* opinion. It reaches an announcer that asked for one — `Emit<CanBook, Verdict>` — and
|
|
21
|
-
* nobody otherwise, since a plain announcement does not wait.
|
|
22
|
-
*/
|
|
23
|
-
export type Fact<T> = T;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* The same fact, BEFORE it is final: an op taking one ANSWERS the value every subscriber
|
|
27
|
-
* then receives, so it is the declared form of what `Emissions.stamped` already does for
|
|
28
|
-
* `created()`.
|
|
29
|
-
*
|
|
30
|
-
* Not a second announcement and not a chain a subscriber joins: the links run once, before
|
|
31
|
-
* anyone is handed anything, which is what keeps a fact the same for every reader.
|
|
32
|
-
*/
|
|
33
|
-
export type Pipe<T> = T;
|
|
34
|
-
|
|
35
14
|
/** The container key of an emission — THE one place that spells the format. */
|
|
36
15
|
export function emitKeyOf(fact: string): string {
|
|
37
16
|
return `${lowerFirst(fact)}Emit`;
|
|
@@ -47,6 +26,7 @@ export function awaitKeyOf(fact: string): string {
|
|
|
47
26
|
}
|
|
48
27
|
|
|
49
28
|
const SUFFIX = 'Emit';
|
|
29
|
+
|
|
50
30
|
const AWAIT_SUFFIX = 'Await';
|
|
51
31
|
|
|
52
32
|
/** The fact behind an emission key, or `undefined` when the key is not one. */
|
|
@@ -75,6 +55,26 @@ export function factsAwaitedBy(handlers: readonly { deps: readonly string[] }[])
|
|
|
75
55
|
return factsIn(handlers, factOfAwaitKey);
|
|
76
56
|
}
|
|
77
57
|
|
|
58
|
+
/**
|
|
59
|
+
* What a set of handlers LISTENS to — the dual of what it announces, and the half no
|
|
60
|
+
* dependency spells: accepting a `Fact<T>` IS the subscription, so it is read from the
|
|
61
|
+
* binding plan, where `Emissions` reads it too.
|
|
62
|
+
*/
|
|
63
|
+
export function factsListenedTo(handlers: readonly { operations: OperationsMap }[]): string[] {
|
|
64
|
+
const taken = (contract: OperationContract): string[] => {
|
|
65
|
+
const plan = contract.binding
|
|
66
|
+
?? (contract.signature ? computeBindingPlan(contract.signature.params, NO_COLLECTOR) : []);
|
|
67
|
+
|
|
68
|
+
return plan.flatMap((bound) =>
|
|
69
|
+
bound.source.kind === 'fact' || bound.source.kind === 'pipe' ? [bound.source.factName] : []);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
return [...new Set(handlers.flatMap((handler) => [...handler.operations.values()].flatMap(taken)))];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** `Fact` and `Pipe` name themselves, and the plan reads them before it reads a collector. */
|
|
76
|
+
const NO_COLLECTOR = new Set<string>();
|
|
77
|
+
|
|
78
78
|
function factsIn(
|
|
79
79
|
handlers: readonly { deps: readonly string[] }[],
|
|
80
80
|
behindKey: (key: string) => string | undefined,
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Semantic error codes — transport-agnostic. Each bridge maps them to its own format. */
|
|
2
|
+
export enum ErrorCode {
|
|
3
|
+
// Input
|
|
4
|
+
VALIDATION_FAILED = 'VALIDATION_FAILED',
|
|
5
|
+
BAD_REQUEST = 'BAD_REQUEST',
|
|
6
|
+
|
|
7
|
+
// Auth
|
|
8
|
+
UNAUTHORIZED = 'UNAUTHORIZED',
|
|
9
|
+
FORBIDDEN = 'FORBIDDEN',
|
|
10
|
+
|
|
11
|
+
// Resources
|
|
12
|
+
NOT_FOUND = 'NOT_FOUND',
|
|
13
|
+
GONE = 'GONE',
|
|
14
|
+
CONFLICT = 'CONFLICT',
|
|
15
|
+
LOCKED = 'LOCKED',
|
|
16
|
+
METHOD_NOT_ALLOWED = 'METHOD_NOT_ALLOWED',
|
|
17
|
+
|
|
18
|
+
// Limits
|
|
19
|
+
PRECONDITION_FAILED = 'PRECONDITION_FAILED',
|
|
20
|
+
PAYLOAD_TOO_LARGE = 'PAYLOAD_TOO_LARGE',
|
|
21
|
+
UNPROCESSABLE_ENTITY = 'UNPROCESSABLE_ENTITY',
|
|
22
|
+
TOO_MANY_REQUESTS = 'TOO_MANY_REQUESTS',
|
|
23
|
+
REQUEST_TIMEOUT = 'REQUEST_TIMEOUT',
|
|
24
|
+
|
|
25
|
+
// Server
|
|
26
|
+
INTERNAL_ERROR = 'INTERNAL_ERROR',
|
|
27
|
+
NOT_IMPLEMENTED = 'NOT_IMPLEMENTED',
|
|
28
|
+
BAD_GATEWAY = 'BAD_GATEWAY',
|
|
29
|
+
SERVICE_UNAVAILABLE = 'SERVICE_UNAVAILABLE',
|
|
30
|
+
GATEWAY_TIMEOUT = 'GATEWAY_TIMEOUT',
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// ── FougereError ────────────────────────────────
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { InvocationContext } from './InvocationContext.js';
|
|
2
|
+
import type { FougereOperations } from './FougereOperations.js';
|
|
3
|
+
|
|
4
|
+
type Served = keyof FougereOperations & string;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Both halves below take the union through a type PARAMETER, which is what makes the
|
|
8
|
+
* conditional distribute: `Served` is an alias, and an alias is matched whole — `'a.x' | 'b.y'`
|
|
9
|
+
* does not extend `` `${string}.${string}` `` as one thing, so the naive form answers `never`.
|
|
10
|
+
*/
|
|
11
|
+
type AddressIn<Key> = Key extends `${infer Address}.${string}` ? Address : never;
|
|
12
|
+
|
|
13
|
+
/** The facade built in front of a handler — the framework's second port, after `Storage`. */
|
|
14
|
+
export type Facade<T> = {
|
|
15
|
+
[K in keyof T]: T[K] extends (...args: never[]) => infer R
|
|
16
|
+
? (invocation?: InvocationContext) => R
|
|
17
|
+
: never;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/** The container key of a façade — THE one place that spells the format. */
|
|
21
|
+
export function facadeKeyOf(entityName: string, surface?: string): string {
|
|
22
|
+
return surface ? `${surface}:${entityName}Handler` : `${entityName}Handler`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Where the contracts behind a façade live — the dual of `facadeKeyOf`. */
|
|
26
|
+
export function contractsKeyOf(entityName: string, surface?: string): string {
|
|
27
|
+
return `${facadeKeyOf(entityName, surface)}:contracts`;
|
|
28
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One facade: where a call goes, and the handler that answers there.
|
|
3
|
+
*
|
|
4
|
+
* The address is carried as a LITERAL, which is what lets an operation be looked up by
|
|
5
|
+
* `address.op`. A page never builds one by hand — the scan writes a `const` per address, and a
|
|
6
|
+
* page imports it, so a project that never generated them fails to resolve rather than losing
|
|
7
|
+
* its types in silence.
|
|
8
|
+
*/
|
|
9
|
+
export interface FacadeName<Handler, Address extends string> {
|
|
10
|
+
readonly address: Address;
|
|
11
|
+
/** Never read: it is how the handler's own signatures reach the page. */
|
|
12
|
+
readonly handler?: Handler;
|
|
13
|
+
}
|
package/src/wire/Fact.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a subscriber accepts — and what it PROMISES about itself.
|
|
3
|
+
*
|
|
4
|
+
* What it ANSWERS is its own to choose: `Promise<void>` says nothing, any other type is an
|
|
5
|
+
* opinion. It reaches an announcer that asked for one — `Emit<CanBook, Verdict>` — and
|
|
6
|
+
* nobody otherwise, since a plain announcement does not wait.
|
|
7
|
+
*/
|
|
8
|
+
export type Fact<T> = T;
|
|
@@ -1,63 +1,24 @@
|
|
|
1
|
+
import type { ValidationError } from '@fougere/schema';
|
|
2
|
+
import { ErrorCode } from './ErrorCode.js';
|
|
3
|
+
import type { FougereErrorOptions } from './FougereErrorOptions.js';
|
|
4
|
+
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
6
|
+
* A refusal, and which one — narrowed by the operation that answered it where the caller knows.
|
|
3
7
|
*
|
|
4
|
-
*
|
|
8
|
+
* `Code` defaults to every code there is, so a thrower writes what it always wrote. What it buys
|
|
9
|
+
* is on the READING side: a client generated from a card gets `FougereError<'NOT_FOUND' |
|
|
10
|
+
* 'CONFLICT'>`, and a `switch` over `code` with a `never` in its default stops compiling the day
|
|
11
|
+
* the op learns to refuse something else.
|
|
12
|
+
*
|
|
13
|
+
* Documented: [observability](https://fougere.dev/docs/infra/observability).
|
|
5
14
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
// ── ErrorCode ──────────────────────────────────
|
|
10
|
-
|
|
11
|
-
/** Semantic error codes — transport-agnostic. Each bridge maps them to its own format. */
|
|
12
|
-
export enum ErrorCode {
|
|
13
|
-
// Input
|
|
14
|
-
VALIDATION_FAILED = 'VALIDATION_FAILED',
|
|
15
|
-
BAD_REQUEST = 'BAD_REQUEST',
|
|
16
|
-
|
|
17
|
-
// Auth
|
|
18
|
-
UNAUTHORIZED = 'UNAUTHORIZED',
|
|
19
|
-
FORBIDDEN = 'FORBIDDEN',
|
|
20
|
-
|
|
21
|
-
// Resources
|
|
22
|
-
NOT_FOUND = 'NOT_FOUND',
|
|
23
|
-
GONE = 'GONE',
|
|
24
|
-
CONFLICT = 'CONFLICT',
|
|
25
|
-
LOCKED = 'LOCKED',
|
|
26
|
-
METHOD_NOT_ALLOWED = 'METHOD_NOT_ALLOWED',
|
|
27
|
-
|
|
28
|
-
// Limits
|
|
29
|
-
PRECONDITION_FAILED = 'PRECONDITION_FAILED',
|
|
30
|
-
PAYLOAD_TOO_LARGE = 'PAYLOAD_TOO_LARGE',
|
|
31
|
-
UNPROCESSABLE_ENTITY = 'UNPROCESSABLE_ENTITY',
|
|
32
|
-
TOO_MANY_REQUESTS = 'TOO_MANY_REQUESTS',
|
|
33
|
-
REQUEST_TIMEOUT = 'REQUEST_TIMEOUT',
|
|
34
|
-
|
|
35
|
-
// Server
|
|
36
|
-
INTERNAL_ERROR = 'INTERNAL_ERROR',
|
|
37
|
-
NOT_IMPLEMENTED = 'NOT_IMPLEMENTED',
|
|
38
|
-
BAD_GATEWAY = 'BAD_GATEWAY',
|
|
39
|
-
SERVICE_UNAVAILABLE = 'SERVICE_UNAVAILABLE',
|
|
40
|
-
GATEWAY_TIMEOUT = 'GATEWAY_TIMEOUT',
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// ── FougereError ────────────────────────────────
|
|
44
|
-
|
|
45
|
-
export interface FougereErrorOptions {
|
|
46
|
-
code: ErrorCode;
|
|
47
|
-
message: string;
|
|
48
|
-
entity?: string;
|
|
49
|
-
operation?: string;
|
|
50
|
-
details?: unknown;
|
|
51
|
-
cause?: unknown;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export class FougereError extends Error {
|
|
55
|
-
readonly code: ErrorCode;
|
|
15
|
+
export class FougereError<Code extends ErrorCode = ErrorCode> extends Error {
|
|
16
|
+
readonly code: Code;
|
|
56
17
|
readonly entity?: string;
|
|
57
18
|
readonly operation?: string;
|
|
58
19
|
readonly details?: unknown;
|
|
59
20
|
|
|
60
|
-
constructor(options: FougereErrorOptions) {
|
|
21
|
+
constructor(options: FougereErrorOptions<Code>) {
|
|
61
22
|
super(options.message, { cause: options.cause });
|
|
62
23
|
this.name = new.target.name;
|
|
63
24
|
this.code = options.code;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The handler behind each address, carried as `import('…/PostHandler').default`.
|
|
3
|
+
*
|
|
4
|
+
* TypeScript resolves it from the source, so the operations that exist and what each one
|
|
5
|
+
* answers cost the generated module nothing: no signature is printed into it, and none can
|
|
6
|
+
* drift from the class it was read off.
|
|
7
|
+
*/
|
|
8
|
+
export interface FougereHandlers {}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Target of a call — which façade operation, wherever it lives. */
|
|
2
|
+
export interface FrondCall {
|
|
3
|
+
/** Frond name, when the caller knows it. Routing hint only. */
|
|
4
|
+
frond?: string;
|
|
5
|
+
/** Entity registration key (e.g. 'product'). */
|
|
6
|
+
entity: string;
|
|
7
|
+
/** Façade operation name (e.g. 'findById', 'search'). */
|
|
8
|
+
op: string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FougereHandlers } from './FougereHandlers.js';
|
|
2
|
+
import type { AnyHandler } from './AnyHandler.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The handler that answers at one address. It falls back to an unconstrained facade when nothing
|
|
6
|
+
* was generated, because a `never` there would refuse every call a project makes.
|
|
7
|
+
*/
|
|
8
|
+
export type HandlerOf<Address extends string> =
|
|
9
|
+
[keyof FougereHandlers] extends [never] ? AnyHandler
|
|
10
|
+
: Address extends keyof FougereHandlers ? FougereHandlers[Address] : AnyHandler;
|
package/src/wire/Invocation.ts
CHANGED
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
query: Record<string, unknown>;
|
|
4
|
-
input: unknown;
|
|
5
|
-
state: Record<string, unknown>;
|
|
6
|
-
trace?: string;
|
|
7
|
-
identity?: string;
|
|
8
|
-
caller?: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export type PartialInvocation = Partial<InvocationContext>;
|
|
1
|
+
import type { InvocationContext } from './InvocationContext.js';
|
|
2
|
+
import type { PartialInvocation } from './PartialInvocation.js';
|
|
12
3
|
|
|
13
4
|
/** Freezes plain data deeply, and leaves a class instance alone — a `Date` is not a record. */
|
|
14
5
|
function canonicalValue(value: unknown): unknown {
|
|
@@ -40,8 +31,9 @@ export class Invocation implements InvocationContext {
|
|
|
40
31
|
readonly trace?: string;
|
|
41
32
|
readonly identity?: string;
|
|
42
33
|
readonly caller?: string;
|
|
34
|
+
readonly runAt?: number;
|
|
43
35
|
|
|
44
|
-
/** Gives every entry and every transport the same
|
|
36
|
+
/** Gives every entry and every transport the same eight-member value, frozen. */
|
|
45
37
|
private constructor(context: PartialInvocation) {
|
|
46
38
|
this.params = canonicalRecord(context.params);
|
|
47
39
|
this.query = canonicalRecord(context.query);
|
|
@@ -52,6 +44,7 @@ export class Invocation implements InvocationContext {
|
|
|
52
44
|
if (context.trace !== undefined) this.trace = context.trace;
|
|
53
45
|
if (context.identity !== undefined) this.identity = context.identity;
|
|
54
46
|
if (context.caller !== undefined) this.caller = context.caller;
|
|
47
|
+
if (context.runAt !== undefined) this.runAt = context.runAt;
|
|
55
48
|
Object.freeze(this);
|
|
56
49
|
}
|
|
57
50
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface InvocationContext {
|
|
2
|
+
params: Record<string, unknown>;
|
|
3
|
+
query: Record<string, unknown>;
|
|
4
|
+
input: unknown;
|
|
5
|
+
state: Record<string, unknown>;
|
|
6
|
+
trace?: string;
|
|
7
|
+
identity?: string;
|
|
8
|
+
caller?: string;
|
|
9
|
+
/** Epoch milliseconds before which this call is not to run. */
|
|
10
|
+
runAt?: number;
|
|
11
|
+
}
|