@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
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { EFFECTIVE_OPERATION_SEMANTICS } from './EffectiveOperationSemantics.js';
|
|
2
|
+
import { type BindingPlan } from './wire/binding.js';
|
|
3
|
+
import { type OperationContract } from './wire/OperationContract.js';
|
|
4
|
+
import { type OperationKind } from './wire/OperationKind.js';
|
|
5
|
+
import type { EffectiveParameter } from './EffectiveParameter.js';
|
|
6
|
+
import type { EffectiveCollector } from './EffectiveCollector.js';
|
|
7
|
+
|
|
8
|
+
export interface EffectiveOperation extends OperationContract {
|
|
9
|
+
/** Stable qualified identity: `blog/public/Post.publish`. */
|
|
10
|
+
id: string;
|
|
11
|
+
/** Human-facing identity independent of placement: `Post.publish`. */
|
|
12
|
+
operation: string;
|
|
13
|
+
name: string;
|
|
14
|
+
kind: OperationKind;
|
|
15
|
+
kindSource: 'explicit' | 'convention';
|
|
16
|
+
handler: {
|
|
17
|
+
className: string;
|
|
18
|
+
address: string;
|
|
19
|
+
filePath: string;
|
|
20
|
+
};
|
|
21
|
+
/** The class and method that execute after an optional operation override. */
|
|
22
|
+
implementation: {
|
|
23
|
+
className: string;
|
|
24
|
+
address: string;
|
|
25
|
+
method: string;
|
|
26
|
+
filePath: string;
|
|
27
|
+
};
|
|
28
|
+
/** Every valid operation has a plan, including the empty plan. */
|
|
29
|
+
binding: BindingPlan;
|
|
30
|
+
parameters: EffectiveParameter[];
|
|
31
|
+
collectors: EffectiveCollector[];
|
|
32
|
+
contexts: string[];
|
|
33
|
+
placement: {
|
|
34
|
+
frond: string;
|
|
35
|
+
runtime: 'local' | 'remote';
|
|
36
|
+
remote?: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* What running this op reaches, and how much of that crosses a process.
|
|
40
|
+
*
|
|
41
|
+
* `placement` says where the op ANSWERS; this says where it GOES. The pair is what every
|
|
42
|
+
* number a process hard-codes is really a function of — how often a trace is sampled, where
|
|
43
|
+
* a latency histogram's bounds should sit, what a load threshold may assume. An op that
|
|
44
|
+
* answers here and hops twice is not the same subject as one that answers here and hops none.
|
|
45
|
+
*
|
|
46
|
+
* Read from the handler, never from the op: a dependency is declared on the constructor, so
|
|
47
|
+
* the crossing belongs to the CLASS. Every op of one handler reaches the same fronds, and
|
|
48
|
+
* saying otherwise would dress a structural fact as a precise effect.
|
|
49
|
+
*/
|
|
50
|
+
reach: {
|
|
51
|
+
fronds: { frond: string; runtime: 'local' | 'remote' }[];
|
|
52
|
+
/** How many of them are a process away — zero when everything it reaches runs here. */
|
|
53
|
+
hops: number;
|
|
54
|
+
};
|
|
55
|
+
exposure: {
|
|
56
|
+
surfaces: string[];
|
|
57
|
+
adapters: string[];
|
|
58
|
+
};
|
|
59
|
+
/** Whether output is an explicitly closed per-operation view. */
|
|
60
|
+
outputClosed: boolean;
|
|
61
|
+
semantics: typeof EFFECTIVE_OPERATION_SEMANTICS;
|
|
62
|
+
}
|
|
@@ -1,103 +1,26 @@
|
|
|
1
|
-
/** The operation model after every declaration and convention has been resolved. */
|
|
2
1
|
import { lowerFirst, type SchemaView } from '@fougere/schema';
|
|
3
2
|
import { statementDrift } from './boot/statement-drift.js';
|
|
4
3
|
import { reachedBy, servedBy } from './boot/declared.js';
|
|
5
4
|
import { computeBindingPlan, type BindingPlan } from './wire/binding.js';
|
|
6
5
|
import { targetOf } from './prefab/prefab.js';
|
|
7
|
-
import
|
|
6
|
+
import { EFFECTIVE_OPERATION_SEMANTICS } from './EffectiveOperationSemantics.js';
|
|
7
|
+
import type { CollectorEntry } from './descriptor/CollectorEntry.js';
|
|
8
|
+
import type { FrondDescriptor } from './descriptor/FrondDescriptor.js';
|
|
9
|
+
import type { HandlerEntry } from './descriptor/HandlerEntry.js';
|
|
8
10
|
import { servedSurfaces } from './descriptor/surface.js';
|
|
9
|
-
import type {
|
|
11
|
+
import type { Diagnostic } from './diagnostic.js';
|
|
10
12
|
import { verify } from './verify.js';
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} from './
|
|
13
|
+
import { inferOperationKind, knownVerbs, type OperationContract } from './wire/OperationContract.js';
|
|
14
|
+
import { type OperationKind } from './wire/OperationKind.js';
|
|
15
|
+
import { type OperationsMap } from './wire/OperationsMap.js';
|
|
16
|
+
import { type TypeRef } from './wire/TypeRef.js';
|
|
17
|
+
import type { EffectiveParameter } from './EffectiveParameter.js';
|
|
18
|
+
import type { EffectiveOperation } from './EffectiveOperation.js';
|
|
19
|
+
import type { EffectiveOperationsMap } from './EffectiveOperationsMap.js';
|
|
20
|
+
import type { EffectiveOperationOptions } from './EffectiveOperationOptions.js';
|
|
19
21
|
|
|
20
22
|
type Binding = BindingPlan[number];
|
|
21
23
|
|
|
22
|
-
export interface EffectiveParameter {
|
|
23
|
-
/** Position in the TypeScript signature. Never used to infer provenance. */
|
|
24
|
-
position: number;
|
|
25
|
-
name: string;
|
|
26
|
-
type: string | null;
|
|
27
|
-
optional: boolean;
|
|
28
|
-
nullable: boolean;
|
|
29
|
-
/** `?` and `| undefined` both mean canonical absence. */
|
|
30
|
-
undefinable: boolean;
|
|
31
|
-
/** The resolved provenance of this parameter. */
|
|
32
|
-
binding: Binding;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export interface EffectiveCollector {
|
|
36
|
-
parameter: string;
|
|
37
|
-
typeName: string;
|
|
38
|
-
className: string;
|
|
39
|
-
frond: string;
|
|
40
|
-
filePath: string;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export interface EffectiveOperation extends OperationContract {
|
|
44
|
-
/** Stable qualified identity: `blog/public/Post.publish`. */
|
|
45
|
-
id: string;
|
|
46
|
-
/** Human-facing identity independent of placement: `Post.publish`. */
|
|
47
|
-
operation: string;
|
|
48
|
-
name: string;
|
|
49
|
-
kind: OperationKind;
|
|
50
|
-
kindSource: 'explicit' | 'convention';
|
|
51
|
-
handler: {
|
|
52
|
-
className: string;
|
|
53
|
-
address: string;
|
|
54
|
-
filePath: string;
|
|
55
|
-
};
|
|
56
|
-
/** The class and method that execute after an optional operation override. */
|
|
57
|
-
implementation: {
|
|
58
|
-
className: string;
|
|
59
|
-
address: string;
|
|
60
|
-
method: string;
|
|
61
|
-
filePath: string;
|
|
62
|
-
};
|
|
63
|
-
/** Every valid operation has a plan, including the empty plan. */
|
|
64
|
-
binding: BindingPlan;
|
|
65
|
-
parameters: EffectiveParameter[];
|
|
66
|
-
collectors: EffectiveCollector[];
|
|
67
|
-
contexts: string[];
|
|
68
|
-
placement: {
|
|
69
|
-
frond: string;
|
|
70
|
-
runtime: 'local' | 'remote';
|
|
71
|
-
remote?: string;
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
* What running this op reaches, and how much of that crosses a process.
|
|
75
|
-
*
|
|
76
|
-
* `placement` says where the op ANSWERS; this says where it GOES. The pair is what every
|
|
77
|
-
* number a process hard-codes is really a function of — how often a trace is sampled, where
|
|
78
|
-
* a latency histogram's bounds should sit, what a load threshold may assume. An op that
|
|
79
|
-
* answers here and hops twice is not the same subject as one that answers here and hops none.
|
|
80
|
-
*
|
|
81
|
-
* Read from the handler, never from the op: a dependency is declared on the constructor, so
|
|
82
|
-
* the crossing belongs to the CLASS. Every op of one handler reaches the same fronds, and
|
|
83
|
-
* saying otherwise would dress a structural fact as a precise effect.
|
|
84
|
-
*/
|
|
85
|
-
reach: {
|
|
86
|
-
fronds: { frond: string; runtime: 'local' | 'remote' }[];
|
|
87
|
-
/** How many of them are a process away — zero when everything it reaches runs here. */
|
|
88
|
-
hops: number;
|
|
89
|
-
};
|
|
90
|
-
exposure: {
|
|
91
|
-
surfaces: string[];
|
|
92
|
-
adapters: string[];
|
|
93
|
-
};
|
|
94
|
-
/** Whether output is an explicitly closed per-operation view. */
|
|
95
|
-
outputClosed: boolean;
|
|
96
|
-
semantics: typeof EFFECTIVE_OPERATION_SEMANTICS;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export type EffectiveOperationsMap = Map<string, EffectiveOperation>;
|
|
100
|
-
|
|
101
24
|
/**
|
|
102
25
|
* Where an op's work goes: the fronds its handler reaches, and how many are a process away.
|
|
103
26
|
*
|
|
@@ -118,19 +41,6 @@ function reachOf(
|
|
|
118
41
|
return { fronds, hops: fronds.filter((one) => one.runtime === 'remote').length };
|
|
119
42
|
}
|
|
120
43
|
|
|
121
|
-
/** The absence rules every door normalises to before the handler is invoked. */
|
|
122
|
-
export const EFFECTIVE_OPERATION_SEMANTICS = Object.freeze({
|
|
123
|
-
optional: 'undefined' as const,
|
|
124
|
-
undefined: 'absence' as const,
|
|
125
|
-
null: 'explicit-value' as const,
|
|
126
|
-
jsonObjectUndefined: 'omitted' as const,
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
export interface EffectiveOperationOptions {
|
|
130
|
-
diagnostics?: readonly ScanDiagnostic[];
|
|
131
|
-
remotes?: Record<string, string>;
|
|
132
|
-
adapters?: Record<string, boolean | undefined>;
|
|
133
|
-
}
|
|
134
44
|
|
|
135
45
|
/**
|
|
136
46
|
* One resolved program. The handler map preserves object identity from the scan, so the
|
|
@@ -138,13 +48,13 @@ export interface EffectiveOperationOptions {
|
|
|
138
48
|
*/
|
|
139
49
|
export class EffectiveOperationModel {
|
|
140
50
|
readonly operations: EffectiveOperation[];
|
|
141
|
-
readonly diagnostics:
|
|
142
|
-
readonly resolutionDiagnostics:
|
|
51
|
+
readonly diagnostics: Diagnostic[];
|
|
52
|
+
readonly resolutionDiagnostics: Diagnostic[];
|
|
143
53
|
|
|
144
54
|
constructor(
|
|
145
55
|
operations: EffectiveOperation[],
|
|
146
|
-
diagnostics:
|
|
147
|
-
resolutionDiagnostics:
|
|
56
|
+
diagnostics: Diagnostic[],
|
|
57
|
+
resolutionDiagnostics: Diagnostic[],
|
|
148
58
|
private readonly byHandler: Map<HandlerEntry, EffectiveOperationsMap>,
|
|
149
59
|
) {
|
|
150
60
|
this.operations = operations;
|
|
@@ -164,7 +74,7 @@ export function resolveEffectiveOperations(
|
|
|
164
74
|
): EffectiveOperationModel {
|
|
165
75
|
const operations: EffectiveOperation[] = [];
|
|
166
76
|
const byHandler = new Map<HandlerEntry, EffectiveOperationsMap>();
|
|
167
|
-
const resolutionDiagnostics:
|
|
77
|
+
const resolutionDiagnostics: Diagnostic[] = [];
|
|
168
78
|
const scanDiagnostics = [...(options.diagnostics ?? [])];
|
|
169
79
|
const schemas = new Map(
|
|
170
80
|
fronds.flatMap((frond) => frond.entities.map((entity) => [entity.name, entity.entityClass] as const)),
|
|
@@ -341,19 +251,12 @@ export function resolveEffectiveOperations(
|
|
|
341
251
|
|
|
342
252
|
// Topology and DI are part of the same effective program. A dependency targeting an
|
|
343
253
|
// actually remote frond is a refusal, not the warning appropriate to a future split.
|
|
344
|
-
for (const
|
|
345
|
-
const remoteBoundary = options.remotes?.[
|
|
346
|
-
|| options.remotes?.[
|
|
347
|
-
resolutionDiagnostics.push(
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
: violation.severity,
|
|
351
|
-
code: violation.rule,
|
|
352
|
-
filePath: violation.filePath,
|
|
353
|
-
frond: violation.frond,
|
|
354
|
-
subject: violation.subject,
|
|
355
|
-
message: violation.message,
|
|
356
|
-
});
|
|
254
|
+
for (const misplaced of verify({ fronds })) {
|
|
255
|
+
const remoteBoundary = options.remotes?.[misplaced.frond] !== undefined
|
|
256
|
+
|| options.remotes?.[misplaced.dependsOn.frond] !== undefined;
|
|
257
|
+
resolutionDiagnostics.push(remoteBoundary && misplaced.code === 'cross-frond-dependency'
|
|
258
|
+
? { ...misplaced, severity: 'blocking' }
|
|
259
|
+
: misplaced);
|
|
357
260
|
}
|
|
358
261
|
|
|
359
262
|
const resolution = uniqueDiagnostics(resolutionDiagnostics);
|
|
@@ -380,7 +283,7 @@ function normalizeBinding(
|
|
|
380
283
|
handler: HandlerEntry,
|
|
381
284
|
frond: FrondDescriptor,
|
|
382
285
|
name: string,
|
|
383
|
-
diagnostics:
|
|
286
|
+
diagnostics: Diagnostic[],
|
|
384
287
|
): (OperationContract & { binding: BindingPlan }) | undefined {
|
|
385
288
|
const params = contract.signature?.params ?? [];
|
|
386
289
|
if (!contract.binding) {
|
|
@@ -435,7 +338,7 @@ function validateProvenance(
|
|
|
435
338
|
contract: OperationContract & { binding: BindingPlan },
|
|
436
339
|
parameters: EffectiveParameter[],
|
|
437
340
|
localCollectors: Map<string, CollectorEntry[]>,
|
|
438
|
-
diagnostics:
|
|
341
|
+
diagnostics: Diagnostic[],
|
|
439
342
|
): boolean {
|
|
440
343
|
let valid = true;
|
|
441
344
|
const declared = (handler.ctor as { __ops?: Record<string, OperationContract> }).__ops?.[name];
|
|
@@ -543,7 +446,7 @@ function implementationOf(
|
|
|
543
446
|
frond: FrondDescriptor,
|
|
544
447
|
handler: HandlerEntry,
|
|
545
448
|
name: string,
|
|
546
|
-
diagnostics:
|
|
449
|
+
diagnostics: Diagnostic[],
|
|
547
450
|
): EffectiveOperation['implementation'] | undefined {
|
|
548
451
|
const override = frond.operationsOverrides?.[name];
|
|
549
452
|
const candidates = override?.handlerName
|
|
@@ -616,7 +519,7 @@ function exposedAdapters(
|
|
|
616
519
|
.sort();
|
|
617
520
|
}
|
|
618
521
|
|
|
619
|
-
function uniqueDiagnostics(diagnostics: readonly
|
|
522
|
+
function uniqueDiagnostics(diagnostics: readonly Diagnostic[]): Diagnostic[] {
|
|
620
523
|
const seen = new Set<string>();
|
|
621
524
|
return diagnostics.filter((diagnostic) => {
|
|
622
525
|
const key = [diagnostic.code, diagnostic.filePath, diagnostic.subject, diagnostic.message].join('\0');
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** The absence rules every facade normalises to before the handler is invoked. */
|
|
2
|
+
export const EFFECTIVE_OPERATION_SEMANTICS = Object.freeze({
|
|
3
|
+
optional: 'undefined' as const,
|
|
4
|
+
undefined: 'absence' as const,
|
|
5
|
+
null: 'explicit-value' as const,
|
|
6
|
+
jsonObjectUndefined: 'omitted' as const,
|
|
7
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Binding } from './Binding.js';
|
|
2
|
+
export interface EffectiveParameter {
|
|
3
|
+
/** Position in the TypeScript signature. Never used to infer provenance. */
|
|
4
|
+
position: number;
|
|
5
|
+
name: string;
|
|
6
|
+
type: string | null;
|
|
7
|
+
optional: boolean;
|
|
8
|
+
nullable: boolean;
|
|
9
|
+
/** `?` and `| undefined` both mean canonical absence. */
|
|
10
|
+
undefinable: boolean;
|
|
11
|
+
/** The resolved provenance of this parameter. */
|
|
12
|
+
binding: Binding;
|
|
13
|
+
}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
|
-
import type { AuthConfig } from './boot/
|
|
4
|
-
import type { LogLevel } from './builtin/
|
|
5
|
-
import type { ConventionsInput } from './
|
|
3
|
+
import type { AuthConfig } from './boot/AuthConfig.js';
|
|
4
|
+
import type { LogLevel } from './builtin/LogLevel.js';
|
|
5
|
+
import type { ConventionsInput } from './ConventionsInput.js';
|
|
6
|
+
import type { NameOf } from './NameOf.js';
|
|
7
|
+
import type { PortChoice } from './PortChoice.js';
|
|
6
8
|
import { getModuleLoader } from './loader.js';
|
|
7
|
-
|
|
8
|
-
// ── Types ────────────────────────────────────────
|
|
9
|
+
import type { AdapterConfig } from './AdapterConfig.js';
|
|
9
10
|
|
|
10
11
|
export interface FougereConfig {
|
|
11
12
|
/** Database configuration — the DEFAULT source, the one an entity lands in unnamed. */
|
|
12
13
|
db?: 'sqlite' | { dialect: 'sqlite'; path?: string } | false;
|
|
13
14
|
/** The other places rows live — a name, an engine, and the entities it holds. */
|
|
14
|
-
sources?: Record<string, { dialect?: 'sqlite'; path?: string; entities:
|
|
15
|
+
sources?: Record<string, { dialect?: 'sqlite'; path?: string; entities: NameOf<'entity'>[] }>;
|
|
15
16
|
/**
|
|
16
17
|
* The names the scan reads instead of deriving them — the import scope, the fronds directory,
|
|
17
18
|
* the seven convention directories.
|
|
@@ -19,28 +20,22 @@ export interface FougereConfig {
|
|
|
19
20
|
conventions?: ConventionsInput;
|
|
20
21
|
/** How much every logger says. */
|
|
21
22
|
logLevel?: LogLevel;
|
|
22
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Remote fronds — frondName → base URL.
|
|
25
|
+
*
|
|
26
|
+
* The KEY is not narrowed to `NameOf<'frond'>`, and that is a choice: constraining it means
|
|
27
|
+
* making every key optional, which puts `| undefined` on the values and changes what six
|
|
28
|
+
* readers here already treat as present. The name is checked at boot instead.
|
|
29
|
+
*/
|
|
23
30
|
remotes?: Record<string, string>;
|
|
24
31
|
/** What answers a port — a name, or the chain from the outside in. */
|
|
25
|
-
ports?:
|
|
32
|
+
ports?: PortChoice;
|
|
26
33
|
/** Auth declaration — picks a provider package and forwards options to it. */
|
|
27
34
|
auth?: AuthConfig;
|
|
28
35
|
/** Which protocol adapters this app serves. */
|
|
29
36
|
adapters?: AdapterConfig;
|
|
30
37
|
}
|
|
31
38
|
|
|
32
|
-
/** Protocol adapters, by the name of the package that provides them. */
|
|
33
|
-
export interface AdapterConfig {
|
|
34
|
-
/** `@fougere/adapter-rest` — REST under `/api/{frond}/{plural}`. */
|
|
35
|
-
rest?: boolean;
|
|
36
|
-
/** `@fougere/adapter-graphql` — a GraphQL schema over the same operations. */
|
|
37
|
-
graphql?: boolean;
|
|
38
|
-
/** A surface of your own; the framework only records that you declared it. */
|
|
39
|
-
[adapter: string]: boolean | undefined;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// ── Loading ──────────────────────────────────────
|
|
43
|
-
|
|
44
39
|
const CONFIG_FILES = ['fougere.config.ts', 'fougere.config.js', 'fougere.config.mjs'];
|
|
45
40
|
|
|
46
41
|
async function loadConfigFrom(dir: string, fresh?: boolean): Promise<FougereConfig> {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Each port, and the classes that extend it — a RELATION, not two lists.
|
|
3
|
+
*
|
|
4
|
+
* Two unions would accept `ports: { Payment: 'FileStorage' }`: both names exist, and nothing
|
|
5
|
+
* would say that one does not answer the other. What the boot refuses, the type refuses first.
|
|
6
|
+
*/
|
|
7
|
+
export interface FougerePorts {}
|
|
@@ -1,55 +1,17 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
|
+
import type { NameOf } from './NameOf.js';
|
|
2
3
|
import { existsSync } from 'node:fs';
|
|
3
|
-
import type {
|
|
4
|
-
import type { BindingPlan } from './wire/binding.js';
|
|
5
|
-
|
|
6
|
-
// ── Types ────────────────────────────────────────
|
|
7
|
-
|
|
8
|
-
/** Per-operation override. */
|
|
9
|
-
export interface OperationOverride {
|
|
10
|
-
/** Force operation kind, over the naming convention (`isReadOp`). */
|
|
11
|
-
kind?: 'query' | 'command';
|
|
12
|
-
/** The GraphQL root field this op answers to. */
|
|
13
|
-
graphql?: string;
|
|
14
|
-
/**
|
|
15
|
-
* Where this op answers over REST — the dual of `graphql:`, and the frond's to say for
|
|
16
|
-
* the same reason: how an operation is CALLED belongs beside it, not in whatever host
|
|
17
|
-
* mounts the router. The prefix stays the host's: naming is the frond's, mounting is not.
|
|
18
|
-
*/
|
|
19
|
-
rest?: { method?: string; path?: string; status?: number };
|
|
20
|
-
/**
|
|
21
|
-
* Handler class to delegate to (overrides the default `{Entity}Handler` lookup).
|
|
22
|
-
* Class name is used to resolve from DI. E.g. `ArchiveHandler` → `app.resolve('ArchiveHandler')`.
|
|
23
|
-
*/
|
|
24
|
-
handler?: EntityConstructor;
|
|
25
|
-
/** Method name on `handler` (defaults to the operation name). */
|
|
26
|
-
method?: string;
|
|
27
|
-
/** CASL ability check (e.g. */
|
|
28
|
-
policy?: string;
|
|
29
|
-
|
|
30
|
-
// ── The contract itself — see the note above ──
|
|
31
|
-
|
|
32
|
-
/** What validates the input. The view carries its own mode (`partial()` → patch). */
|
|
33
|
-
input?: SchemaView;
|
|
34
|
-
/**
|
|
35
|
-
* Where each argument is read from — states what the scan would otherwise derive
|
|
36
|
-
* from the method signature. An empty array is meaningful: "this op takes nothing".
|
|
37
|
-
*/
|
|
38
|
-
binding?: BindingPlan;
|
|
39
|
-
|
|
40
|
-
/** Per-operation output view, below prefab declarations and above handler/entity defaults. */
|
|
41
|
-
output?: SchemaView;
|
|
42
|
-
}
|
|
4
|
+
import type { OperationOverride } from './OperationOverride.js';
|
|
43
5
|
|
|
44
6
|
export interface FrondConfig {
|
|
45
7
|
/** Class names exposed as the frond's public contract (all surfaces). */
|
|
46
|
-
expose?:
|
|
8
|
+
expose?: (NameOf<'handler'> | NameOf<'entity'>)[];
|
|
47
9
|
/** The entities this frond may read ACROSS sources, by name. */
|
|
48
|
-
reads?:
|
|
10
|
+
reads?: NameOf<'entity'>[];
|
|
49
11
|
/** Per-surface entity lists. Overrides default deduction for each named surface. */
|
|
50
|
-
surfaces?: Record<string,
|
|
12
|
+
surfaces?: Record<string, NameOf<'entity'>[]>;
|
|
51
13
|
/** Interface → implementation bindings for DI (e.g. { Database: 'SqliteDatabase' }). */
|
|
52
|
-
bindings?: Record<string,
|
|
14
|
+
bindings?: Record<string, NameOf<'provider'>>;
|
|
53
15
|
/**
|
|
54
16
|
* The ops that FINISH a fact, in the order they run — by class name, keyed by fact.
|
|
55
17
|
*
|
|
@@ -57,13 +19,13 @@ export interface FrondConfig {
|
|
|
57
19
|
* fact itself and it has one owner. Without it two links refuse: nothing would say which
|
|
58
20
|
* ran first, and scan order is not an answer.
|
|
59
21
|
*/
|
|
60
|
-
pipes?: Record<
|
|
22
|
+
pipes?: Record<NameOf<'entity'>, NameOf<'handler'>[]>;
|
|
61
23
|
/**
|
|
62
24
|
* How far a middleware reaches, by class name. A middleware answers for its own frond
|
|
63
25
|
* without being named here; `'app'` is the exception, and it is stated by the frond
|
|
64
26
|
* that decides for the others.
|
|
65
27
|
*/
|
|
66
|
-
middlewares?: Record<
|
|
28
|
+
middlewares?: Record<NameOf<'middleware'>, 'frond' | 'app'>;
|
|
67
29
|
/** Per-operation overrides. Key = operation name (method name on a handler). */
|
|
68
30
|
operations?: Record<string, OperationOverride>;
|
|
69
31
|
}
|
|
@@ -1,44 +1,22 @@
|
|
|
1
|
-
/** A frond stated by its author, for an app that will not scan. */
|
|
2
1
|
import { lowerFirst, type SchemaView } from '@fougere/schema';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
} from './descriptor/
|
|
7
|
-
import {
|
|
2
|
+
import type { CollectorEntry } from './descriptor/CollectorEntry.js';
|
|
3
|
+
import type { EntityEntry } from './descriptor/EntityEntry.js';
|
|
4
|
+
import type { FrondDescriptor } from './descriptor/FrondDescriptor.js';
|
|
5
|
+
import type { HandlerEntry } from './descriptor/HandlerEntry.js';
|
|
6
|
+
import type { MiddlewareEntry } from './descriptor/MiddlewareEntry.js';
|
|
7
|
+
import type { PresenterEntry } from './descriptor/PresenterEntry.js';
|
|
8
|
+
import type { ProviderEntry } from './descriptor/ProviderEntry.js';
|
|
9
|
+
import type { SeedEntry } from './descriptor/SeedEntry.js';
|
|
10
|
+
import { DEFAULT_CONVENTIONS } from './Conventions.js';
|
|
8
11
|
import { getPresenterFields } from './prefab/presenter.js';
|
|
9
|
-
import type { OperationContract } from './wire/
|
|
12
|
+
import type { OperationContract } from './wire/OperationContract.js';
|
|
13
|
+
import type { DeclaredSubject } from './DeclaredSubject.js';
|
|
14
|
+
import type { DeclaredHandler } from './DeclaredHandler.js';
|
|
15
|
+
import type { Declared } from './Declared.js';
|
|
10
16
|
|
|
11
17
|
/** A class, as a declaration hands it over: the constructor itself. */
|
|
12
18
|
type Ctor = new (...args: never[]) => unknown;
|
|
13
19
|
|
|
14
|
-
/** What a subject needs beyond its class, when its constructor names a frame or a port. */
|
|
15
|
-
export interface DeclaredSubject {
|
|
16
|
-
ctor: Ctor;
|
|
17
|
-
deps?: string[];
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/** A handler, and the surface it answers on when it is not the default one. */
|
|
21
|
-
export interface DeclaredHandler extends DeclaredSubject {
|
|
22
|
-
/**
|
|
23
|
-
* The scan reads this from the directory (`handlers/public/`), so a statement has to say it: two
|
|
24
|
-
* handlers over one entity collide on their address otherwise, and the refusal names the same
|
|
25
|
-
* route twice.
|
|
26
|
-
*/
|
|
27
|
-
surface?: string;
|
|
28
|
-
/**
|
|
29
|
-
* What each method takes and answers — read from SOURCE by the scan, and unreachable
|
|
30
|
-
* from a class at runtime. A prefab declares its own (`Crud.__ops`) and needs nothing
|
|
31
|
-
* here; a method someone wrote does, or the route it should serve does not exist.
|
|
32
|
-
*/
|
|
33
|
-
operations?: ReadonlyMap<string, OperationContract> | Record<string, OperationContract>;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/** A class on its own, or a class with what it asks for. */
|
|
37
|
-
export type Declared = Ctor | (DeclaredSubject & {
|
|
38
|
-
/** The container key, when the class's own name cannot be trusted to survive a build. */
|
|
39
|
-
name?: string;
|
|
40
|
-
});
|
|
41
|
-
|
|
42
20
|
const ctorOf = (d: Declared): Ctor => (typeof d === 'function' ? d : d.ctor);
|
|
43
21
|
|
|
44
22
|
/**
|
|
@@ -57,6 +35,7 @@ function subjectOf(ctor: Ctor, kind: string): { name: string } {
|
|
|
57
35
|
|
|
58
36
|
return subject;
|
|
59
37
|
}
|
|
38
|
+
|
|
60
39
|
const depsOf = (d: Declared): string[] => (typeof d === 'function' ? [] : d.deps ?? []);
|
|
61
40
|
|
|
62
41
|
/**
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** What a deployment hands a frond that CALLS: its own key, and the root's word for it. */
|
|
2
|
+
export interface FrondIdentity {
|
|
3
|
+
/** The frond's private key, PEM (PKCS#8). */
|
|
4
|
+
privateKey: string;
|
|
5
|
+
/** The root's statement binding this frond's name to its public key. */
|
|
6
|
+
grant: string;
|
|
7
|
+
}
|
package/src/NameOf.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FougereNames } from './FougereNames.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* One kind's union, or `string` where nothing was generated.
|
|
5
|
+
*
|
|
6
|
+
* A conditional and never `Partial<FougereNames>`: an un-augmented interface makes that
|
|
7
|
+
* `Partial<{}>`, which in TypeScript means "anything non-nullish" — the silent hole `adapters:`
|
|
8
|
+
* already has. Falling back to `string` is what a config had before this file existed.
|
|
9
|
+
*/
|
|
10
|
+
export type NameOf<K extends string> = FougereNames extends Record<K, infer Found extends string>
|
|
11
|
+
? Found
|
|
12
|
+
: string;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { EntityConstructor, SchemaView } from '@fougere/schema';
|
|
2
|
+
import type { BindingPlan } from './wire/binding.js';
|
|
3
|
+
|
|
4
|
+
/** Per-operation override. */
|
|
5
|
+
export interface OperationOverride {
|
|
6
|
+
/** Force operation kind, over the naming convention (`isReadOp`). */
|
|
7
|
+
kind?: 'query' | 'command';
|
|
8
|
+
/** The GraphQL root field this op answers to. */
|
|
9
|
+
graphql?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Where this op answers over REST — the dual of `graphql:`, and the frond's to say for
|
|
12
|
+
* the same reason: how an operation is CALLED belongs beside it, not in whatever host
|
|
13
|
+
* mounts the router. The prefix stays the host's: naming is the frond's, mounting is not.
|
|
14
|
+
*/
|
|
15
|
+
rest?: { method?: string; path?: string; status?: number };
|
|
16
|
+
/**
|
|
17
|
+
* Handler class to delegate to (overrides the default `{Entity}Handler` lookup).
|
|
18
|
+
* Class name is used to resolve from DI. E.g. `ArchiveHandler` → `app.resolve('ArchiveHandler')`.
|
|
19
|
+
*/
|
|
20
|
+
handler?: EntityConstructor;
|
|
21
|
+
/** Method name on `handler` (defaults to the operation name). */
|
|
22
|
+
method?: string;
|
|
23
|
+
/** CASL ability check (e.g. */
|
|
24
|
+
policy?: string;
|
|
25
|
+
|
|
26
|
+
// ── The contract itself — see the note above ──
|
|
27
|
+
|
|
28
|
+
/** What validates the input. The view carries its own mode (`partial()` → patch). */
|
|
29
|
+
input?: SchemaView;
|
|
30
|
+
/**
|
|
31
|
+
* Where each argument is read from — states what the scan would otherwise derive
|
|
32
|
+
* from the method signature. An empty array is meaningful: "this op takes nothing".
|
|
33
|
+
*/
|
|
34
|
+
binding?: BindingPlan;
|
|
35
|
+
|
|
36
|
+
/** Per-operation output view, below prefab declarations and above handler/entity defaults. */
|
|
37
|
+
output?: SchemaView;
|
|
38
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FougerePorts } from './FougerePorts.js';
|
|
2
|
+
import type { AnswerFor } from './AnswerFor.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The ports of this app, each mapped to what may answer it.
|
|
6
|
+
*
|
|
7
|
+
* `keyof FougerePorts` is `never` before generation, and a mapped type over `never` is `{}` —
|
|
8
|
+
* which would refuse every key rather than accept any. So the empty case widens to the plain
|
|
9
|
+
* record the config had, and only a generated file narrows it.
|
|
10
|
+
*/
|
|
11
|
+
export type PortChoice = keyof FougerePorts extends never
|
|
12
|
+
? Record<string, string | readonly string[]>
|
|
13
|
+
: { [Port in keyof FougerePorts]?: AnswerFor<Port & string> | readonly AnswerFor<Port & string>[] };
|