@fougere/core 0.9.3-alpha.0 → 0.10.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AdapterConfig.d.ts +10 -0
- package/dist/AdapterConfig.d.ts.map +1 -0
- package/dist/AdapterConfig.js +3 -0
- package/dist/AdapterConfig.js.map +1 -0
- package/dist/AnswerFor.d.ts +5 -0
- package/dist/AnswerFor.d.ts.map +1 -0
- package/dist/AnswerFor.js +2 -0
- package/dist/AnswerFor.js.map +1 -0
- package/dist/Binding.d.ts +4 -0
- package/dist/Binding.d.ts.map +1 -0
- package/dist/Binding.js +2 -0
- package/dist/Binding.js.map +1 -0
- package/dist/{identity.d.ts → CallIdentity.d.ts} +4 -17
- package/dist/CallIdentity.d.ts.map +1 -0
- package/dist/{identity.js → CallIdentity.js} +1 -6
- package/dist/CallIdentity.js.map +1 -0
- package/dist/Constraint.d.ts +3 -0
- package/dist/Constraint.d.ts.map +1 -0
- package/dist/Constraint.js +2 -0
- package/dist/Constraint.js.map +1 -0
- package/dist/{conventions.d.ts → Conventions.d.ts} +14 -8
- package/dist/Conventions.d.ts.map +1 -0
- package/dist/{conventions.js → Conventions.js} +7 -3
- package/dist/Conventions.js.map +1 -0
- package/dist/ConventionsInput.d.ts +8 -0
- package/dist/ConventionsInput.d.ts.map +1 -0
- package/dist/ConventionsInput.js +2 -0
- package/dist/ConventionsInput.js.map +1 -0
- package/dist/Ctor.d.ts +3 -0
- package/dist/Ctor.d.ts.map +1 -0
- package/dist/Ctor.js +2 -0
- package/dist/Ctor.js.map +1 -0
- package/dist/Declared.d.ts +8 -0
- package/dist/Declared.d.ts.map +1 -0
- package/dist/Declared.js +2 -0
- package/dist/Declared.js.map +1 -0
- package/dist/DeclaredHandler.d.ts +18 -0
- package/dist/DeclaredHandler.d.ts.map +1 -0
- package/dist/DeclaredHandler.js +2 -0
- package/dist/DeclaredHandler.js.map +1 -0
- package/dist/DeclaredSubject.d.ts +7 -0
- package/dist/DeclaredSubject.d.ts.map +1 -0
- package/dist/DeclaredSubject.js +2 -0
- package/dist/DeclaredSubject.js.map +1 -0
- package/dist/{graph.d.ts → DomainCluster.d.ts} +3 -12
- package/dist/DomainCluster.d.ts.map +1 -0
- package/dist/{graph.js → DomainCluster.js} +1 -1
- package/dist/DomainCluster.js.map +1 -0
- package/dist/EffectiveCollector.d.ts +8 -0
- package/dist/EffectiveCollector.d.ts.map +1 -0
- package/dist/EffectiveCollector.js +2 -0
- package/dist/EffectiveCollector.js.map +1 -0
- package/dist/EffectiveOperation.d.ts +65 -0
- package/dist/EffectiveOperation.d.ts.map +1 -0
- package/dist/EffectiveOperation.js +2 -0
- package/dist/EffectiveOperation.js.map +1 -0
- package/dist/EffectiveOperationModel.d.ts +24 -0
- package/dist/EffectiveOperationModel.d.ts.map +1 -0
- package/dist/{effective-operation.js → EffectiveOperationModel.js} +9 -23
- package/dist/EffectiveOperationModel.js.map +1 -0
- package/dist/EffectiveOperationOptions.d.ts +7 -0
- package/dist/EffectiveOperationOptions.d.ts.map +1 -0
- package/dist/EffectiveOperationOptions.js +2 -0
- package/dist/EffectiveOperationOptions.js.map +1 -0
- package/dist/EffectiveOperationSemantics.d.ts +8 -0
- package/dist/EffectiveOperationSemantics.d.ts.map +1 -0
- package/dist/EffectiveOperationSemantics.js +8 -0
- package/dist/EffectiveOperationSemantics.js.map +1 -0
- package/dist/EffectiveOperationsMap.d.ts +3 -0
- package/dist/EffectiveOperationsMap.d.ts.map +1 -0
- package/dist/EffectiveOperationsMap.js +2 -0
- package/dist/EffectiveOperationsMap.js.map +1 -0
- package/dist/EffectiveParameter.d.ts +14 -0
- package/dist/EffectiveParameter.d.ts.map +1 -0
- package/dist/EffectiveParameter.js +2 -0
- package/dist/EffectiveParameter.js.map +1 -0
- package/dist/EntityNode.d.ts +7 -0
- package/dist/EntityNode.d.ts.map +1 -0
- package/dist/EntityNode.js +2 -0
- package/dist/EntityNode.js.map +1 -0
- package/dist/{config-loader.d.ts → FougereConfig.d.ts} +16 -16
- package/dist/FougereConfig.d.ts.map +1 -0
- package/dist/{config-loader.js → FougereConfig.js} +1 -2
- package/dist/FougereConfig.js.map +1 -0
- package/dist/FougereNames.d.ts +4 -0
- package/dist/FougereNames.d.ts.map +1 -0
- package/dist/FougereNames.js +2 -0
- package/dist/FougereNames.js.map +1 -0
- package/dist/FougerePorts.d.ts +9 -0
- package/dist/FougerePorts.d.ts.map +1 -0
- package/dist/FougerePorts.js +2 -0
- package/dist/FougerePorts.js.map +1 -0
- package/dist/FrondConfig.d.ts +36 -0
- package/dist/FrondConfig.d.ts.map +1 -0
- package/dist/{frond-config.js → FrondConfig.js} +1 -1
- package/dist/FrondConfig.js.map +1 -0
- package/dist/{declare.d.ts → FrondDeclaration.d.ts} +7 -29
- package/dist/FrondDeclaration.d.ts.map +1 -0
- package/dist/{declare.js → FrondDeclaration.js} +2 -3
- package/dist/FrondDeclaration.js.map +1 -0
- package/dist/FrondIdentity.d.ts +8 -0
- package/dist/FrondIdentity.d.ts.map +1 -0
- package/dist/FrondIdentity.js +2 -0
- package/dist/FrondIdentity.js.map +1 -0
- package/dist/NameOf.d.ts +10 -0
- package/dist/NameOf.d.ts.map +1 -0
- package/dist/NameOf.js +2 -0
- package/dist/NameOf.js.map +1 -0
- package/dist/OperationOverride.d.ts +38 -0
- package/dist/OperationOverride.d.ts.map +1 -0
- package/dist/OperationOverride.js +2 -0
- package/dist/OperationOverride.js.map +1 -0
- package/dist/PortChoice.d.ts +13 -0
- package/dist/PortChoice.d.ts.map +1 -0
- package/dist/PortChoice.js +2 -0
- package/dist/PortChoice.js.map +1 -0
- package/dist/{source.d.ts → Source.d.ts} +5 -24
- package/dist/Source.d.ts.map +1 -0
- package/dist/{source.js → Source.js} +1 -1
- package/dist/{source.js.map → Source.js.map} +1 -1
- package/dist/SourceConfig.d.ts +10 -0
- package/dist/SourceConfig.d.ts.map +1 -0
- package/dist/SourceConfig.js +2 -0
- package/dist/SourceConfig.js.map +1 -0
- package/dist/SourceView.d.ts +13 -0
- package/dist/SourceView.d.ts.map +1 -0
- package/dist/SourceView.js +2 -0
- package/dist/SourceView.js.map +1 -0
- package/dist/VerifiedCall.d.ts +8 -0
- package/dist/VerifiedCall.d.ts.map +1 -0
- package/dist/VerifiedCall.js +2 -0
- package/dist/VerifiedCall.js.map +1 -0
- package/dist/boot/App.d.ts +71 -0
- package/dist/boot/App.d.ts.map +1 -0
- package/dist/boot/App.js +2 -0
- package/dist/boot/App.js.map +1 -0
- package/dist/boot/AppLifecycle.d.ts +2 -19
- package/dist/boot/AppLifecycle.d.ts.map +1 -1
- package/dist/boot/AppLifecycle.js.map +1 -1
- package/dist/boot/AuthConfig.d.ts +14 -0
- package/dist/boot/AuthConfig.d.ts.map +1 -0
- package/dist/boot/AuthConfig.js +2 -0
- package/dist/boot/AuthConfig.js.map +1 -0
- package/dist/boot/AuthContext.d.ts +12 -0
- package/dist/boot/AuthContext.d.ts.map +1 -0
- package/dist/boot/AuthContext.js +2 -0
- package/dist/boot/AuthContext.js.map +1 -0
- package/dist/boot/AuthRuntime.d.ts +19 -0
- package/dist/boot/AuthRuntime.d.ts.map +1 -0
- package/dist/boot/AuthRuntime.js +2 -0
- package/dist/boot/AuthRuntime.js.map +1 -0
- package/dist/boot/CreateAppOptions.d.ts +81 -0
- package/dist/boot/CreateAppOptions.d.ts.map +1 -0
- package/dist/boot/CreateAppOptions.js +2 -0
- package/dist/boot/CreateAppOptions.js.map +1 -0
- package/dist/boot/Emissions.d.ts +11 -7
- package/dist/boot/Emissions.d.ts.map +1 -1
- package/dist/boot/Emissions.js +83 -45
- package/dist/boot/Emissions.js.map +1 -1
- package/dist/boot/Extension.d.ts +20 -0
- package/dist/boot/Extension.d.ts.map +1 -0
- package/dist/boot/Extension.js +2 -0
- package/dist/boot/Extension.js.map +1 -0
- package/dist/boot/apply.d.ts +1 -1
- package/dist/boot/apply.js +1 -1
- package/dist/boot/apply.js.map +1 -1
- package/dist/boot/bootstrap.d.ts +2 -1
- package/dist/boot/bootstrap.d.ts.map +1 -1
- package/dist/boot/bootstrap.js +77 -42
- package/dist/boot/bootstrap.js.map +1 -1
- package/dist/boot/card.d.ts +2 -2
- package/dist/boot/card.d.ts.map +1 -1
- package/dist/boot/card.js +11 -8
- package/dist/boot/card.js.map +1 -1
- package/dist/boot/declared.d.ts +2 -2
- package/dist/boot/declared.d.ts.map +1 -1
- package/dist/boot/declared.js +1 -1
- package/dist/boot/declared.js.map +1 -1
- package/dist/boot/frame.d.ts +1 -1
- package/dist/boot/frame.js +1 -1
- package/dist/boot/hosted.d.ts +1 -1
- package/dist/boot/hosted.d.ts.map +1 -1
- package/dist/boot/install.d.ts +11 -7
- package/dist/boot/install.d.ts.map +1 -1
- package/dist/boot/install.js +30 -25
- package/dist/boot/install.js.map +1 -1
- package/dist/boot/ownership.d.ts +7 -5
- package/dist/boot/ownership.d.ts.map +1 -1
- package/dist/boot/ownership.js +81 -40
- package/dist/boot/ownership.js.map +1 -1
- package/dist/boot/ports.d.ts +4 -3
- package/dist/boot/ports.d.ts.map +1 -1
- package/dist/boot/ports.js +48 -37
- package/dist/boot/ports.js.map +1 -1
- package/dist/boot/remote.d.ts +3 -8
- package/dist/boot/remote.d.ts.map +1 -1
- package/dist/boot/remote.js +19 -15
- package/dist/boot/remote.js.map +1 -1
- package/dist/boot/runner.d.ts +2 -2
- package/dist/boot/runner.d.ts.map +1 -1
- package/dist/boot/seed.d.ts +4 -3
- package/dist/boot/seed.d.ts.map +1 -1
- package/dist/boot/seed.js +6 -6
- package/dist/boot/seed.js.map +1 -1
- package/dist/boot/statement-drift.d.ts +4 -3
- package/dist/boot/statement-drift.d.ts.map +1 -1
- package/dist/boot/statement-drift.js.map +1 -1
- package/dist/boot/together.d.ts +8 -4
- package/dist/boot/together.d.ts.map +1 -1
- package/dist/boot/together.js +60 -27
- package/dist/boot/together.js.map +1 -1
- package/dist/builtin/Carry.d.ts +29 -0
- package/dist/builtin/Carry.d.ts.map +1 -0
- package/dist/builtin/Carry.js +46 -0
- package/dist/builtin/Carry.js.map +1 -0
- package/dist/builtin/LogLevel.d.ts +2 -0
- package/dist/builtin/LogLevel.d.ts.map +1 -0
- package/dist/builtin/LogLevel.js +2 -0
- package/dist/builtin/LogLevel.js.map +1 -0
- package/dist/builtin/LogRecord.d.ts +12 -0
- package/dist/builtin/LogRecord.d.ts.map +1 -0
- package/dist/builtin/LogRecord.js +2 -0
- package/dist/builtin/LogRecord.js.map +1 -0
- package/dist/builtin/LogSink.d.ts +4 -0
- package/dist/builtin/LogSink.d.ts.map +1 -0
- package/dist/builtin/LogSink.js +2 -0
- package/dist/builtin/LogSink.js.map +1 -0
- package/dist/builtin/Logger.d.ts +27 -0
- package/dist/builtin/Logger.d.ts.map +1 -0
- package/dist/builtin/{logger.js → Logger.js} +1 -47
- package/dist/builtin/Logger.js.map +1 -0
- package/dist/builtin/LoggerOptions.d.ts +14 -0
- package/dist/builtin/LoggerOptions.d.ts.map +1 -0
- package/dist/builtin/LoggerOptions.js +2 -0
- package/dist/builtin/LoggerOptions.js.map +1 -0
- package/dist/builtin/Rendered.d.ts +21 -0
- package/dist/builtin/Rendered.d.ts.map +1 -0
- package/dist/builtin/Rendered.js +2 -0
- package/dist/builtin/Rendered.js.map +1 -0
- package/dist/contract.d.ts +34 -13
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +9 -6
- package/dist/contract.js.map +1 -1
- package/dist/crypto/CryptoPort.d.ts +12 -0
- package/dist/crypto/CryptoPort.d.ts.map +1 -0
- package/dist/crypto/CryptoPort.js +2 -0
- package/dist/crypto/CryptoPort.js.map +1 -0
- package/dist/crypto/PublicJwk.d.ts +8 -0
- package/dist/crypto/PublicJwk.d.ts.map +1 -0
- package/dist/crypto/PublicJwk.js +2 -0
- package/dist/crypto/PublicJwk.js.map +1 -0
- package/dist/crypto/Signer.d.ts +5 -0
- package/dist/crypto/Signer.d.ts.map +1 -0
- package/dist/crypto/Signer.js +2 -0
- package/dist/crypto/Signer.js.map +1 -0
- package/dist/crypto/Verifier.d.ts +6 -0
- package/dist/crypto/Verifier.d.ts.map +1 -0
- package/dist/crypto/Verifier.js +2 -0
- package/dist/crypto/Verifier.js.map +1 -0
- package/dist/crypto/node.d.ts +4 -1
- package/dist/crypto/node.d.ts.map +1 -1
- package/dist/crypto/node.js.map +1 -1
- package/dist/crypto/webcrypto.d.ts +4 -1
- package/dist/crypto/webcrypto.d.ts.map +1 -1
- package/dist/crypto/webcrypto.js.map +1 -1
- package/dist/define.d.ts +1 -1
- package/dist/descriptor/CollectorEntry.d.ts +12 -0
- package/dist/descriptor/CollectorEntry.d.ts.map +1 -0
- package/dist/descriptor/CollectorEntry.js +2 -0
- package/dist/descriptor/CollectorEntry.js.map +1 -0
- package/dist/descriptor/EntityEntry.d.ts +13 -0
- package/dist/descriptor/EntityEntry.d.ts.map +1 -0
- package/dist/descriptor/EntityEntry.js +2 -0
- package/dist/descriptor/EntityEntry.js.map +1 -0
- package/dist/descriptor/ExtensionEntry.d.ts +20 -0
- package/dist/descriptor/ExtensionEntry.d.ts.map +1 -0
- package/dist/descriptor/ExtensionEntry.js +2 -0
- package/dist/descriptor/ExtensionEntry.js.map +1 -0
- package/dist/descriptor/FrondDescriptor.d.ts +61 -0
- package/dist/descriptor/FrondDescriptor.d.ts.map +1 -0
- package/dist/descriptor/{frond.js → FrondDescriptor.js} +1 -1
- package/dist/descriptor/FrondDescriptor.js.map +1 -0
- package/dist/descriptor/FrondSource.d.ts +8 -0
- package/dist/descriptor/FrondSource.d.ts.map +1 -0
- package/dist/descriptor/FrondSource.js +2 -0
- package/dist/descriptor/FrondSource.js.map +1 -0
- package/dist/descriptor/Fronds.d.ts +2 -1
- package/dist/descriptor/Fronds.d.ts.map +1 -1
- package/dist/descriptor/Fronds.js.map +1 -1
- package/dist/descriptor/HandlerEntry.d.ts +27 -0
- package/dist/descriptor/HandlerEntry.d.ts.map +1 -0
- package/dist/descriptor/HandlerEntry.js +2 -0
- package/dist/descriptor/HandlerEntry.js.map +1 -0
- package/dist/descriptor/MiddlewareEntry.d.ts +17 -0
- package/dist/descriptor/MiddlewareEntry.d.ts.map +1 -0
- package/dist/descriptor/MiddlewareEntry.js +2 -0
- package/dist/descriptor/MiddlewareEntry.js.map +1 -0
- package/dist/descriptor/PresenterEntry.d.ts +23 -0
- package/dist/descriptor/PresenterEntry.d.ts.map +1 -0
- package/dist/descriptor/PresenterEntry.js +2 -0
- package/dist/descriptor/PresenterEntry.js.map +1 -0
- package/dist/descriptor/PresenterFieldMeta.d.ts +14 -0
- package/dist/descriptor/PresenterFieldMeta.d.ts.map +1 -0
- package/dist/descriptor/PresenterFieldMeta.js +2 -0
- package/dist/descriptor/PresenterFieldMeta.js.map +1 -0
- package/dist/descriptor/ProviderEntry.d.ts +19 -0
- package/dist/descriptor/ProviderEntry.d.ts.map +1 -0
- package/dist/descriptor/ProviderEntry.js +2 -0
- package/dist/descriptor/ProviderEntry.js.map +1 -0
- package/dist/descriptor/SeedEntry.d.ts +11 -0
- package/dist/descriptor/SeedEntry.d.ts.map +1 -0
- package/dist/descriptor/SeedEntry.js +2 -0
- package/dist/descriptor/SeedEntry.js.map +1 -0
- package/dist/descriptor/SeedFactory.d.ts +3 -0
- package/dist/descriptor/SeedFactory.d.ts.map +1 -0
- package/dist/descriptor/SeedFactory.js +2 -0
- package/dist/descriptor/SeedFactory.js.map +1 -0
- package/dist/descriptor/bases.d.ts +17 -0
- package/dist/descriptor/bases.d.ts.map +1 -0
- package/dist/descriptor/bases.js +26 -0
- package/dist/descriptor/bases.js.map +1 -0
- package/dist/descriptor/index.d.ts +22 -6
- package/dist/descriptor/index.d.ts.map +1 -1
- package/dist/descriptor/index.js +19 -5
- package/dist/descriptor/index.js.map +1 -1
- package/dist/descriptor/surface.d.ts +3 -2
- package/dist/descriptor/surface.d.ts.map +1 -1
- package/dist/descriptor/surface.js +1 -1
- package/dist/descriptor/surface.js.map +1 -1
- package/dist/diagnostic.d.ts +33 -0
- package/dist/diagnostic.d.ts.map +1 -0
- package/dist/diagnostic.js +12 -0
- package/dist/diagnostic.js.map +1 -0
- package/dist/dispatch/ArgumentResolver.d.ts +2 -5
- package/dist/dispatch/ArgumentResolver.d.ts.map +1 -1
- package/dist/dispatch/ArgumentResolver.js.map +1 -1
- package/dist/dispatch/CollectorLookup.d.ts +3 -0
- package/dist/dispatch/CollectorLookup.d.ts.map +1 -0
- package/dist/dispatch/CollectorLookup.js +2 -0
- package/dist/dispatch/CollectorLookup.js.map +1 -0
- package/dist/dispatch/CollectorResolver.d.ts +5 -0
- package/dist/dispatch/CollectorResolver.d.ts.map +1 -0
- package/dist/dispatch/CollectorResolver.js +2 -0
- package/dist/dispatch/CollectorResolver.js.map +1 -0
- package/dist/dispatch/DispatchEvent.d.ts +3 -4
- package/dist/dispatch/DispatchEvent.d.ts.map +1 -1
- package/dist/dispatch/DispatchEvent.js.map +1 -1
- package/dist/dispatch/DispatchLifecycle.d.ts +2 -1
- package/dist/dispatch/DispatchLifecycle.d.ts.map +1 -1
- package/dist/dispatch/DispatchLifecycle.js.map +1 -1
- package/dist/dispatch/DispatchObserver.d.ts +3 -0
- package/dist/dispatch/DispatchObserver.d.ts.map +1 -0
- package/dist/dispatch/DispatchObserver.js +2 -0
- package/dist/dispatch/DispatchObserver.js.map +1 -0
- package/dist/dispatch/DispatchPort.d.ts +1 -1
- package/dist/dispatch/DispatchStage.d.ts +2 -0
- package/dist/dispatch/DispatchStage.d.ts.map +1 -0
- package/dist/dispatch/DispatchStage.js +2 -0
- package/dist/dispatch/DispatchStage.js.map +1 -0
- package/dist/dispatch/Dispatcher.d.ts +1 -1
- package/dist/dispatch/Facade.d.ts +25 -0
- package/dist/dispatch/Facade.d.ts.map +1 -0
- package/dist/dispatch/Facade.js +2 -0
- package/dist/dispatch/Facade.js.map +1 -0
- package/dist/dispatch/GuardReport.d.ts +9 -0
- package/dist/dispatch/GuardReport.d.ts.map +1 -0
- package/dist/dispatch/GuardReport.js +2 -0
- package/dist/dispatch/GuardReport.js.map +1 -0
- package/dist/dispatch/HandlerFacade.d.ts +9 -28
- package/dist/dispatch/HandlerFacade.d.ts.map +1 -1
- package/dist/dispatch/HandlerFacade.js +19 -19
- package/dist/dispatch/HandlerFacade.js.map +1 -1
- package/dist/dispatch/InFlight.d.ts.map +1 -1
- package/dist/dispatch/InFlight.js +2 -1
- package/dist/dispatch/InFlight.js.map +1 -1
- package/dist/dispatch/LocalRoutePolicy.d.ts +1 -1
- package/dist/dispatch/LocalRoutePolicy.d.ts.map +1 -1
- package/dist/dispatch/LocalRoutePolicy.js +2 -1
- package/dist/dispatch/LocalRoutePolicy.js.map +1 -1
- package/dist/dispatch/OperationRoute.d.ts +2 -2
- package/dist/dispatch/OperationRoute.d.ts.map +1 -1
- package/dist/dispatch/OperationRoute.js.map +1 -1
- package/dist/dispatch/PresenterArgs.d.ts +2 -0
- package/dist/dispatch/PresenterArgs.d.ts.map +1 -0
- package/dist/dispatch/PresenterArgs.js +2 -0
- package/dist/dispatch/PresenterArgs.js.map +1 -0
- package/dist/dispatch/PresenterExecutor.d.ts +1 -1
- package/dist/dispatch/PresenterExecutor.d.ts.map +1 -1
- package/dist/dispatch/PresenterExecutor.js +2 -1
- package/dist/dispatch/PresenterExecutor.js.map +1 -1
- package/dist/dispatch/Route.d.ts +3 -2
- package/dist/dispatch/Route.d.ts.map +1 -1
- package/dist/dispatch/RouteExecution.d.ts +3 -0
- package/dist/dispatch/RouteExecution.d.ts.map +1 -0
- package/dist/dispatch/RouteExecution.js +2 -0
- package/dist/dispatch/RouteExecution.js.map +1 -0
- package/dist/dispatch/RoutePolicy.d.ts +1 -1
- package/dist/dispatch/StorageGuard.d.ts +6 -12
- package/dist/dispatch/StorageGuard.d.ts.map +1 -1
- package/dist/dispatch/StorageGuard.js +12 -11
- package/dist/dispatch/StorageGuard.js.map +1 -1
- package/dist/dispatch/presenterArguments.d.ts +3 -3
- package/dist/dispatch/presenterArguments.d.ts.map +1 -1
- package/dist/dispatch/routeNotFound.d.ts +2 -2
- package/dist/dispatch/routeNotFound.d.ts.map +1 -1
- package/dist/dispatch/routeNotFound.js +2 -1
- package/dist/dispatch/routeNotFound.js.map +1 -1
- package/dist/dispatch/validateInput.d.ts +1 -1
- package/dist/dispatch/validateInput.d.ts.map +1 -1
- package/dist/dispatch/validateInput.js +2 -1
- package/dist/dispatch/validateInput.js.map +1 -1
- package/dist/entry/facade.js +1 -1
- package/dist/entry/transport.d.ts +1 -1
- package/dist/entry/transport.d.ts.map +1 -1
- package/dist/entry/transport.js +1 -1
- package/dist/index.d.ts +92 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -13
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +2 -2
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +2 -2
- package/dist/node.js.map +1 -1
- package/dist/prefab/AggregateConstructor.d.ts +8 -0
- package/dist/prefab/AggregateConstructor.d.ts.map +1 -0
- package/dist/prefab/AggregateConstructor.js +2 -0
- package/dist/prefab/AggregateConstructor.js.map +1 -0
- package/dist/prefab/AggregateOf.d.ts +7 -0
- package/dist/prefab/AggregateOf.d.ts.map +1 -0
- package/dist/prefab/AggregateOf.js +2 -0
- package/dist/prefab/AggregateOf.js.map +1 -0
- package/dist/prefab/AggregateShape.d.ts +9 -0
- package/dist/prefab/AggregateShape.d.ts.map +1 -0
- package/dist/prefab/AggregateShape.js +2 -0
- package/dist/prefab/AggregateShape.js.map +1 -0
- package/dist/prefab/{crud.d.ts → CrudConstructor.d.ts} +5 -21
- package/dist/prefab/CrudConstructor.d.ts.map +1 -0
- package/dist/prefab/{crud.js → CrudConstructor.js} +1 -1
- package/dist/prefab/CrudConstructor.js.map +1 -0
- package/dist/prefab/CrudOpName.d.ts +3 -0
- package/dist/prefab/CrudOpName.d.ts.map +1 -0
- package/dist/prefab/CrudOpName.js +2 -0
- package/dist/prefab/CrudOpName.js.map +1 -0
- package/dist/prefab/CrudOps.d.ts +20 -0
- package/dist/prefab/CrudOps.d.ts.map +1 -0
- package/dist/prefab/CrudOps.js +2 -0
- package/dist/prefab/CrudOps.js.map +1 -0
- package/dist/prefab/CrudViews.d.ts +5 -0
- package/dist/prefab/CrudViews.d.ts.map +1 -0
- package/dist/prefab/CrudViews.js +2 -0
- package/dist/prefab/CrudViews.js.map +1 -0
- package/dist/prefab/MirrorConstructor.d.ts +9 -0
- package/dist/prefab/MirrorConstructor.d.ts.map +1 -0
- package/dist/prefab/{mirror.js → MirrorConstructor.js} +1 -1
- package/dist/prefab/MirrorConstructor.js.map +1 -0
- package/dist/prefab/MirrorOf.d.ts +19 -0
- package/dist/prefab/MirrorOf.d.ts.map +1 -0
- package/dist/prefab/MirrorOf.js +2 -0
- package/dist/prefab/MirrorOf.js.map +1 -0
- package/dist/prefab/Refreshed.d.ts +10 -0
- package/dist/prefab/Refreshed.d.ts.map +1 -0
- package/dist/prefab/Refreshed.js +2 -0
- package/dist/prefab/Refreshed.js.map +1 -0
- package/dist/prefab/RepositoryConstructor.d.ts +15 -0
- package/dist/prefab/RepositoryConstructor.d.ts.map +1 -0
- package/dist/prefab/{repository.js → RepositoryConstructor.js} +1 -1
- package/dist/prefab/RepositoryConstructor.js.map +1 -0
- package/dist/prefab/RepositoryOf.d.ts +7 -0
- package/dist/prefab/RepositoryOf.d.ts.map +1 -0
- package/dist/prefab/RepositoryOf.js +2 -0
- package/dist/prefab/RepositoryOf.js.map +1 -0
- package/dist/scan.d.ts +3 -22
- package/dist/scan.d.ts.map +1 -1
- package/dist/storage/{criterion.d.ts → Comparison.d.ts} +2 -3
- package/dist/storage/Comparison.d.ts.map +1 -0
- package/dist/storage/{criterion.js → Comparison.js} +1 -2
- package/dist/storage/Comparison.js.map +1 -0
- package/dist/storage/ComparisonName.d.ts +3 -0
- package/dist/storage/ComparisonName.d.ts.map +1 -0
- package/dist/storage/ComparisonName.js +2 -0
- package/dist/storage/ComparisonName.js.map +1 -0
- package/dist/storage/ListOptions.d.ts +23 -0
- package/dist/storage/ListOptions.d.ts.map +1 -0
- package/dist/storage/ListOptions.js +2 -0
- package/dist/storage/ListOptions.js.map +1 -0
- package/dist/storage/ListResult.d.ts +10 -0
- package/dist/storage/ListResult.d.ts.map +1 -0
- package/dist/storage/ListResult.js +2 -0
- package/dist/storage/ListResult.js.map +1 -0
- package/dist/storage/SelectOption.d.ts +6 -0
- package/dist/storage/SelectOption.d.ts.map +1 -0
- package/dist/storage/SelectOption.js +2 -0
- package/dist/storage/SelectOption.js.map +1 -0
- package/dist/storage/{port.d.ts → Storage.d.ts} +4 -47
- package/dist/storage/Storage.d.ts.map +1 -0
- package/dist/storage/{port.js → Storage.js} +1 -1
- package/dist/storage/Storage.js.map +1 -0
- package/dist/storage/StorageFactory.d.ts +8 -0
- package/dist/storage/StorageFactory.d.ts.map +1 -0
- package/dist/storage/StorageFactory.js +2 -0
- package/dist/storage/StorageFactory.js.map +1 -0
- package/dist/storage/{store.d.ts → Store.d.ts} +3 -5
- package/dist/storage/Store.d.ts.map +1 -0
- package/dist/storage/{store.js → Store.js} +3 -4
- package/dist/storage/Store.js.map +1 -0
- package/dist/storage/Together.d.ts +8 -0
- package/dist/storage/Together.d.ts.map +1 -0
- package/dist/storage/Together.js +2 -0
- package/dist/storage/Together.js.map +1 -0
- package/dist/storage/Values.d.ts +3 -0
- package/dist/storage/Values.d.ts.map +1 -0
- package/dist/storage/Values.js +2 -0
- package/dist/storage/Values.js.map +1 -0
- package/dist/verify.d.ts +6 -15
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +5 -5
- package/dist/verify.js.map +1 -1
- package/dist/wire/Addresses.d.ts +16 -0
- package/dist/wire/Addresses.d.ts.map +1 -0
- package/dist/wire/Addresses.js +2 -0
- package/dist/wire/Addresses.js.map +1 -0
- package/dist/wire/Answer.d.ts +3 -0
- package/dist/wire/Answer.d.ts.map +1 -0
- package/dist/wire/Answer.js +2 -0
- package/dist/wire/Answer.js.map +1 -0
- package/dist/wire/AnyHandler.d.ts +3 -0
- package/dist/wire/AnyHandler.d.ts.map +1 -0
- package/dist/wire/AnyHandler.js +2 -0
- package/dist/wire/AnyHandler.js.map +1 -0
- package/dist/wire/AppMiddleware.d.ts +8 -0
- package/dist/wire/AppMiddleware.d.ts.map +1 -0
- package/dist/wire/{middleware.js → AppMiddleware.js} +1 -2
- package/dist/wire/AppMiddleware.js.map +1 -0
- package/dist/wire/AppNext.d.ts +2 -0
- package/dist/wire/AppNext.d.ts.map +1 -0
- package/dist/wire/AppNext.js +2 -0
- package/dist/wire/AppNext.js.map +1 -0
- package/dist/wire/Call.d.ts +10 -0
- package/dist/wire/Call.d.ts.map +1 -0
- package/dist/wire/Call.js +12 -0
- package/dist/wire/Call.js.map +1 -0
- package/dist/wire/CallPage.d.ts +9 -0
- package/dist/wire/CallPage.d.ts.map +1 -0
- package/dist/wire/CallPage.js +2 -0
- package/dist/wire/CallPage.js.map +1 -0
- package/dist/wire/{CallLog.d.ts → CallRecord.d.ts} +3 -10
- package/dist/wire/CallRecord.d.ts.map +1 -0
- package/dist/wire/CallRecord.js +2 -0
- package/dist/wire/CallRecord.js.map +1 -0
- package/dist/wire/{emit.d.ts → Emit.d.ts} +1 -18
- package/dist/wire/Emit.d.ts.map +1 -0
- package/dist/wire/{emit.js → Emit.js} +1 -6
- package/dist/wire/Emit.js.map +1 -0
- package/dist/wire/ErrorCode.d.ts +23 -0
- package/dist/wire/ErrorCode.d.ts.map +1 -0
- package/dist/wire/ErrorCode.js +30 -0
- package/dist/wire/ErrorCode.js.map +1 -0
- package/dist/wire/Facade.d.ts +10 -0
- package/dist/wire/Facade.d.ts.map +1 -0
- package/dist/wire/Facade.js +9 -0
- package/dist/wire/Facade.js.map +1 -0
- package/dist/wire/FacadeName.d.ts +14 -0
- package/dist/wire/FacadeName.d.ts.map +1 -0
- package/dist/wire/FacadeName.js +2 -0
- package/dist/wire/FacadeName.js.map +1 -0
- package/dist/wire/Fact.d.ts +9 -0
- package/dist/wire/Fact.d.ts.map +1 -0
- package/dist/wire/Fact.js +2 -0
- package/dist/wire/Fact.js.map +1 -0
- package/dist/wire/FougereError.d.ts +35 -0
- package/dist/wire/FougereError.d.ts.map +1 -0
- package/dist/wire/{errors.js → FougereError.js} +9 -32
- package/dist/wire/FougereError.js.map +1 -0
- package/dist/wire/FougereErrorOptions.d.ts +10 -0
- package/dist/wire/FougereErrorOptions.d.ts.map +1 -0
- package/dist/wire/FougereErrorOptions.js +2 -0
- package/dist/wire/FougereErrorOptions.js.map +1 -0
- package/dist/wire/FougereHandlers.d.ts +10 -0
- package/dist/wire/FougereHandlers.d.ts.map +1 -0
- package/dist/wire/FougereHandlers.js +2 -0
- package/dist/wire/FougereHandlers.js.map +1 -0
- package/dist/wire/FougereOperations.d.ts +4 -0
- package/dist/wire/FougereOperations.d.ts.map +1 -0
- package/dist/wire/FougereOperations.js +2 -0
- package/dist/wire/FougereOperations.js.map +1 -0
- package/dist/wire/FrondCall.d.ts +10 -0
- package/dist/wire/FrondCall.d.ts.map +1 -0
- package/dist/wire/FrondCall.js +2 -0
- package/dist/wire/FrondCall.js.map +1 -0
- package/dist/wire/HandlerOf.d.ts +10 -0
- package/dist/wire/HandlerOf.d.ts.map +1 -0
- package/dist/wire/HandlerOf.js +2 -0
- package/dist/wire/HandlerOf.js.map +1 -0
- package/dist/wire/Invocation.d.ts +2 -10
- package/dist/wire/Invocation.d.ts.map +1 -1
- package/dist/wire/Invocation.js.map +1 -1
- package/dist/wire/InvocationContext.d.ts +10 -0
- package/dist/wire/InvocationContext.d.ts.map +1 -0
- package/dist/wire/InvocationContext.js +2 -0
- package/dist/wire/InvocationContext.js.map +1 -0
- package/dist/wire/{middleware.d.ts → OperationContext.d.ts} +2 -9
- package/dist/wire/OperationContext.d.ts.map +1 -0
- package/dist/wire/OperationContext.js +2 -0
- package/dist/wire/OperationContext.js.map +1 -0
- package/dist/wire/{operation.d.ts → OperationContract.d.ts} +15 -12
- package/dist/wire/OperationContract.d.ts.map +1 -0
- package/dist/wire/{operation.js → OperationContract.js} +1 -1
- package/dist/wire/OperationContract.js.map +1 -0
- package/dist/wire/OperationKind.d.ts +2 -0
- package/dist/wire/OperationKind.d.ts.map +1 -0
- package/dist/wire/OperationKind.js +2 -0
- package/dist/wire/OperationKind.js.map +1 -0
- package/dist/wire/OperationKindInference.d.ts +8 -0
- package/dist/wire/OperationKindInference.d.ts.map +1 -0
- package/dist/wire/OperationKindInference.js +2 -0
- package/dist/wire/OperationKindInference.js.map +1 -0
- package/dist/wire/OperationsMap.d.ts +7 -0
- package/dist/wire/OperationsMap.d.ts.map +1 -0
- package/dist/wire/OperationsMap.js +7 -0
- package/dist/wire/OperationsMap.js.map +1 -0
- package/dist/wire/Param.d.ts +8 -0
- package/dist/wire/Param.d.ts.map +1 -0
- package/dist/wire/Param.js +2 -0
- package/dist/wire/Param.js.map +1 -0
- package/dist/wire/PartialInvocation.d.ts +3 -0
- package/dist/wire/PartialInvocation.d.ts.map +1 -0
- package/dist/wire/PartialInvocation.js +2 -0
- package/dist/wire/PartialInvocation.js.map +1 -0
- package/dist/wire/Pipe.d.ts +10 -0
- package/dist/wire/Pipe.d.ts.map +1 -0
- package/dist/wire/Pipe.js +2 -0
- package/dist/wire/Pipe.js.map +1 -0
- package/dist/wire/Refused.d.ts +10 -0
- package/dist/wire/Refused.d.ts.map +1 -0
- package/dist/wire/Refused.js +2 -0
- package/dist/wire/Refused.js.map +1 -0
- package/dist/wire/RouteAddress.d.ts +1 -7
- package/dist/wire/RouteAddress.d.ts.map +1 -1
- package/dist/wire/RouteAddress.js.map +1 -1
- package/dist/wire/RouteAddressInput.d.ts +6 -0
- package/dist/wire/RouteAddressInput.d.ts.map +1 -0
- package/dist/wire/RouteAddressInput.js +2 -0
- package/dist/wire/RouteAddressInput.js.map +1 -0
- package/dist/wire/RouteKind.d.ts +3 -0
- package/dist/wire/RouteKind.d.ts.map +1 -0
- package/dist/wire/RouteKind.js +2 -0
- package/dist/wire/RouteKind.js.map +1 -0
- package/dist/wire/Rows.d.ts +8 -0
- package/dist/wire/Rows.d.ts.map +1 -0
- package/dist/wire/Rows.js +2 -0
- package/dist/wire/Rows.js.map +1 -0
- package/dist/wire/RpcAnswer.d.ts +6 -0
- package/dist/wire/RpcAnswer.d.ts.map +1 -0
- package/dist/wire/RpcAnswer.js +3 -0
- package/dist/wire/RpcAnswer.js.map +1 -0
- package/dist/wire/Signature.d.ts +13 -0
- package/dist/wire/Signature.d.ts.map +1 -0
- package/dist/wire/Signature.js +2 -0
- package/dist/wire/Signature.js.map +1 -0
- package/dist/wire/SignedCall.d.ts +12 -0
- package/dist/wire/SignedCall.d.ts.map +1 -0
- package/dist/wire/SignedCall.js +3 -0
- package/dist/wire/SignedCall.js.map +1 -0
- package/dist/wire/Transport.d.ts +5 -0
- package/dist/wire/Transport.d.ts.map +1 -0
- package/dist/wire/Transport.js +2 -0
- package/dist/wire/Transport.js.map +1 -0
- package/dist/wire/{signature.d.ts → TypeRef.d.ts} +1 -17
- package/dist/wire/TypeRef.d.ts.map +1 -0
- package/dist/wire/TypeRef.js +2 -0
- package/dist/wire/TypeRef.js.map +1 -0
- package/dist/wire/binding.d.ts +1 -1
- package/dist/wire/binding.d.ts.map +1 -1
- package/dist/wire/card/CardOp.d.ts +22 -0
- package/dist/wire/card/CardOp.d.ts.map +1 -0
- package/dist/wire/card/CardOp.js +2 -0
- package/dist/wire/card/CardOp.js.map +1 -0
- package/dist/wire/card/IdentityCard.d.ts +22 -0
- package/dist/wire/card/IdentityCard.d.ts.map +1 -0
- package/dist/wire/card/IdentityCard.js +25 -0
- package/dist/wire/card/IdentityCard.js.map +1 -0
- package/dist/wire/drift.d.ts +6 -6
- package/dist/wire/drift.d.ts.map +1 -1
- package/dist/wire/drift.js +18 -18
- package/dist/wire/drift.js.map +1 -1
- package/dist/wire/http-error.d.ts +1 -2
- package/dist/wire/http-error.d.ts.map +1 -1
- package/dist/wire/http-error.js +4 -3
- package/dist/wire/http-error.js.map +1 -1
- package/dist/wire/loggerMiddleware.d.ts +2 -2
- package/dist/wire/loggerMiddleware.d.ts.map +1 -1
- package/dist/wire/refusals.d.ts +33 -0
- package/dist/wire/refusals.d.ts.map +1 -0
- package/dist/wire/refusals.js +44 -0
- package/dist/wire/refusals.js.map +1 -0
- package/dist/wire/topology/DeclaredEdge.d.ts +6 -0
- package/dist/wire/topology/DeclaredEdge.d.ts.map +1 -0
- package/dist/wire/topology/DeclaredEdge.js +2 -0
- package/dist/wire/topology/DeclaredEdge.js.map +1 -0
- package/dist/wire/topology/DeclaredFrond.d.ts +11 -0
- package/dist/wire/topology/DeclaredFrond.d.ts.map +1 -0
- package/dist/wire/topology/DeclaredFrond.js +2 -0
- package/dist/wire/topology/DeclaredFrond.js.map +1 -0
- package/dist/wire/topology/DeclaredTopology.d.ts +12 -0
- package/dist/wire/topology/DeclaredTopology.d.ts.map +1 -0
- package/dist/wire/topology/DeclaredTopology.js +2 -0
- package/dist/wire/topology/DeclaredTopology.js.map +1 -0
- package/dist/wire/topology/Edge.d.ts +8 -0
- package/dist/wire/topology/Edge.d.ts.map +1 -0
- package/dist/wire/topology/Edge.js +2 -0
- package/dist/wire/topology/Edge.js.map +1 -0
- package/dist/wire/topology/FrondPlacement.d.ts +8 -0
- package/dist/wire/topology/FrondPlacement.d.ts.map +1 -0
- package/dist/wire/topology/FrondPlacement.js +2 -0
- package/dist/wire/topology/FrondPlacement.js.map +1 -0
- package/dist/wire/topology/TopologyReport.d.ts +14 -0
- package/dist/wire/topology/TopologyReport.d.ts.map +1 -0
- package/dist/wire/topology/TopologyReport.js +2 -0
- package/dist/wire/topology/TopologyReport.js.map +1 -0
- package/package.json +4 -4
- package/src/AdapterConfig.ts +11 -0
- package/src/AnswerFor.ts +7 -0
- package/src/Binding.ts +4 -0
- package/src/{identity.ts → CallIdentity.ts} +7 -25
- package/src/Constraint.ts +2 -0
- package/src/{conventions.ts → Conventions.ts} +20 -9
- package/src/ConventionsInput.ts +8 -0
- package/src/Ctor.ts +2 -0
- package/src/Declared.ts +8 -0
- package/src/DeclaredHandler.ts +18 -0
- package/src/DeclaredSubject.ts +6 -0
- package/src/{graph.ts → DomainCluster.ts} +2 -12
- package/src/EffectiveCollector.ts +7 -0
- package/src/EffectiveOperation.ts +62 -0
- package/src/{effective-operation.ts → EffectiveOperationModel.ts} +28 -125
- package/src/EffectiveOperationOptions.ts +7 -0
- package/src/EffectiveOperationSemantics.ts +7 -0
- package/src/EffectiveOperationsMap.ts +3 -0
- package/src/EffectiveParameter.ts +13 -0
- package/src/EntityNode.ts +6 -0
- package/src/{config-loader.ts → FougereConfig.ts} +15 -20
- package/src/FougereNames.ts +2 -0
- package/src/FougerePorts.ts +7 -0
- package/src/{frond-config.ts → FrondConfig.ts} +8 -46
- package/src/{declare.ts → FrondDeclaration.ts} +14 -35
- package/src/FrondIdentity.ts +7 -0
- package/src/NameOf.ts +12 -0
- package/src/OperationOverride.ts +38 -0
- package/src/PortChoice.ts +13 -0
- package/src/{source.ts → Source.ts} +4 -21
- package/src/SourceConfig.ts +10 -0
- package/src/SourceView.ts +7 -0
- package/src/VerifiedCall.ts +7 -0
- package/src/boot/App.ts +71 -0
- package/src/boot/AppLifecycle.ts +2 -20
- package/src/boot/AuthConfig.ts +14 -0
- package/src/boot/AuthContext.ts +12 -0
- package/src/boot/AuthRuntime.ts +19 -0
- package/src/boot/CreateAppOptions.ts +81 -0
- package/src/boot/Emissions.ts +86 -56
- package/src/boot/Extension.ts +20 -0
- package/src/boot/apply.ts +2 -2
- package/src/boot/bootstrap.ts +101 -70
- package/src/boot/card.ts +15 -11
- package/src/boot/declared.ts +5 -2
- package/src/boot/frame.ts +2 -2
- package/src/boot/hosted.ts +1 -1
- package/src/boot/install.ts +42 -31
- package/src/boot/ownership.ts +92 -52
- package/src/boot/ports.ts +52 -41
- package/src/boot/remote.ts +24 -17
- package/src/boot/runner.ts +2 -2
- package/src/boot/seed.ts +12 -10
- package/src/boot/statement-drift.ts +6 -5
- package/src/boot/together.ts +77 -37
- package/src/builtin/Carry.ts +49 -0
- package/src/builtin/LogLevel.ts +1 -0
- package/src/builtin/LogRecord.ts +12 -0
- package/src/builtin/LogSink.ts +4 -0
- package/src/builtin/{logger.ts → Logger.ts} +5 -98
- package/src/builtin/LoggerOptions.ts +14 -0
- package/src/builtin/Rendered.ts +21 -0
- package/src/contract.ts +35 -16
- package/src/crypto/CryptoPort.ts +12 -0
- package/src/crypto/PublicJwk.ts +7 -0
- package/src/crypto/Signer.ts +4 -0
- package/src/crypto/Verifier.ts +5 -0
- package/src/crypto/node.ts +4 -1
- package/src/crypto/webcrypto.ts +4 -1
- package/src/define.ts +1 -1
- package/src/descriptor/CollectorEntry.ts +11 -0
- package/src/descriptor/EntityEntry.ts +13 -0
- package/src/descriptor/ExtensionEntry.ts +15 -0
- package/src/descriptor/FrondDescriptor.ts +58 -0
- package/src/descriptor/FrondSource.ts +7 -0
- package/src/descriptor/Fronds.ts +2 -1
- package/src/descriptor/HandlerEntry.ts +27 -0
- package/src/descriptor/MiddlewareEntry.ts +16 -0
- package/src/descriptor/PresenterEntry.ts +23 -0
- package/src/descriptor/PresenterFieldMeta.ts +14 -0
- package/src/descriptor/ProviderEntry.ts +18 -0
- package/src/descriptor/SeedEntry.ts +11 -0
- package/src/descriptor/SeedFactory.ts +2 -0
- package/src/descriptor/bases.ts +30 -0
- package/src/descriptor/index.ts +24 -6
- package/src/descriptor/surface.ts +3 -2
- package/src/diagnostic.ts +41 -0
- package/src/dispatch/ArgumentResolver.ts +2 -7
- package/src/dispatch/CollectorLookup.ts +3 -0
- package/src/dispatch/CollectorResolver.ts +5 -0
- package/src/dispatch/DispatchEvent.ts +3 -6
- package/src/dispatch/DispatchLifecycle.ts +2 -1
- package/src/dispatch/DispatchObserver.ts +3 -0
- package/src/dispatch/DispatchPort.ts +1 -1
- package/src/dispatch/DispatchStage.ts +1 -0
- package/src/dispatch/Dispatcher.ts +1 -1
- package/src/dispatch/Facade.ts +25 -0
- package/src/dispatch/GuardReport.ts +9 -0
- package/src/dispatch/HandlerFacade.ts +28 -46
- package/src/dispatch/InFlight.ts +2 -1
- package/src/dispatch/LocalRoutePolicy.ts +3 -2
- package/src/dispatch/OperationRoute.ts +2 -3
- package/src/dispatch/PresenterArgs.ts +1 -0
- package/src/dispatch/PresenterExecutor.ts +3 -3
- package/src/dispatch/Route.ts +3 -2
- package/src/dispatch/RouteExecution.ts +3 -0
- package/src/dispatch/RoutePolicy.ts +1 -1
- package/src/dispatch/StorageGuard.ts +13 -19
- package/src/dispatch/presenterArguments.ts +3 -3
- package/src/dispatch/routeNotFound.ts +3 -2
- package/src/dispatch/validateInput.ts +3 -2
- package/src/entry/facade.ts +2 -2
- package/src/entry/transport.ts +2 -2
- package/src/index.ts +96 -52
- package/src/node.ts +2 -2
- package/src/prefab/AggregateConstructor.ts +9 -0
- package/src/prefab/AggregateOf.ts +6 -0
- package/src/prefab/AggregateShape.ts +7 -0
- package/src/prefab/{crud.ts → CrudConstructor.ts} +10 -18
- package/src/prefab/CrudOpName.ts +2 -0
- package/src/prefab/CrudOps.ts +24 -0
- package/src/prefab/CrudViews.ts +5 -0
- package/src/prefab/MirrorConstructor.ts +35 -0
- package/src/prefab/MirrorOf.ts +19 -0
- package/src/prefab/Refreshed.ts +9 -0
- package/src/prefab/{repository.ts → RepositoryConstructor.ts} +8 -24
- package/src/prefab/RepositoryOf.ts +7 -0
- package/src/scan.ts +3 -23
- package/src/storage/{criterion.ts → Comparison.ts} +1 -3
- package/src/storage/ComparisonName.ts +3 -0
- package/src/storage/ListOptions.ts +29 -0
- package/src/storage/ListResult.ts +9 -0
- package/src/storage/SelectOption.ts +6 -0
- package/src/storage/{port.ts → Storage.ts} +5 -56
- package/src/storage/StorageFactory.ts +8 -0
- package/src/storage/{store.ts → Store.ts} +5 -7
- package/src/storage/Together.ts +6 -0
- package/src/storage/Values.ts +2 -0
- package/src/verify.ts +12 -21
- package/src/wire/Addresses.ts +17 -0
- package/src/wire/Answer.ts +3 -0
- package/src/wire/AnyHandler.ts +2 -0
- package/src/wire/AppMiddleware.ts +24 -0
- package/src/wire/AppNext.ts +1 -0
- package/src/wire/Call.ts +15 -0
- package/src/wire/CallPage.ts +9 -0
- package/src/wire/{CallLog.ts → CallRecord.ts} +2 -10
- package/src/wire/{emit.ts → Emit.ts} +1 -24
- package/src/wire/ErrorCode.ts +33 -0
- package/src/wire/Facade.ts +28 -0
- package/src/wire/FacadeName.ts +13 -0
- package/src/wire/Fact.ts +8 -0
- package/src/wire/{errors.ts → FougereError.ts} +14 -53
- package/src/wire/FougereErrorOptions.ts +10 -0
- package/src/wire/FougereHandlers.ts +8 -0
- package/src/wire/FougereOperations.ts +2 -0
- package/src/wire/FrondCall.ts +9 -0
- package/src/wire/HandlerOf.ts +10 -0
- package/src/wire/Invocation.ts +2 -11
- package/src/wire/InvocationContext.ts +9 -0
- package/src/wire/OperationContext.ts +18 -0
- package/src/wire/{operation.ts → OperationContract.ts} +14 -23
- package/src/wire/OperationKind.ts +1 -0
- package/src/wire/OperationKindInference.ts +8 -0
- package/src/wire/OperationsMap.ts +14 -0
- package/src/wire/Param.ts +8 -0
- package/src/wire/PartialInvocation.ts +3 -0
- package/src/wire/Pipe.ts +9 -0
- package/src/wire/Refused.ts +13 -0
- package/src/wire/RouteAddress.ts +1 -8
- package/src/wire/RouteAddressInput.ts +5 -0
- package/src/wire/RouteKind.ts +2 -0
- package/src/wire/Rows.ts +7 -0
- package/src/wire/RpcAnswer.ts +7 -0
- package/src/wire/Signature.ts +13 -0
- package/src/wire/SignedCall.ts +12 -0
- package/src/wire/Transport.ts +5 -0
- package/src/wire/{signature.ts → TypeRef.ts} +0 -18
- package/src/wire/binding.ts +1 -1
- package/src/wire/card/CardOp.ts +22 -0
- package/src/wire/card/IdentityCard.ts +41 -0
- package/src/wire/drift.ts +22 -22
- package/src/wire/http-error.ts +4 -3
- package/src/wire/loggerMiddleware.ts +2 -2
- package/src/wire/refusals.ts +55 -0
- package/src/wire/topology/DeclaredEdge.ts +5 -0
- package/src/wire/topology/DeclaredFrond.ts +10 -0
- package/src/wire/topology/DeclaredTopology.ts +12 -0
- package/src/wire/topology/Edge.ts +7 -0
- package/src/wire/topology/FrondPlacement.ts +7 -0
- package/src/wire/topology/TopologyReport.ts +14 -0
- package/dist/boot/auth.d.ts +0 -43
- package/dist/boot/auth.d.ts.map +0 -1
- package/dist/boot/auth.js +0 -2
- package/dist/boot/auth.js.map +0 -1
- package/dist/boot/types.d.ts +0 -147
- package/dist/boot/types.d.ts.map +0 -1
- package/dist/boot/types.js +0 -2
- package/dist/boot/types.js.map +0 -1
- package/dist/builtin/logger.d.ts +0 -96
- package/dist/builtin/logger.d.ts.map +0 -1
- package/dist/builtin/logger.js.map +0 -1
- package/dist/config-loader.d.ts.map +0 -1
- package/dist/config-loader.js.map +0 -1
- package/dist/conventions.d.ts.map +0 -1
- package/dist/conventions.js.map +0 -1
- package/dist/crypto/port.d.ts +0 -26
- package/dist/crypto/port.d.ts.map +0 -1
- package/dist/crypto/port.js +0 -3
- package/dist/crypto/port.js.map +0 -1
- package/dist/declare.d.ts.map +0 -1
- package/dist/declare.js.map +0 -1
- package/dist/descriptor/frond.d.ts +0 -187
- package/dist/descriptor/frond.d.ts.map +0 -1
- package/dist/descriptor/frond.js.map +0 -1
- package/dist/effective-operation.d.ts +0 -113
- package/dist/effective-operation.d.ts.map +0 -1
- package/dist/effective-operation.js.map +0 -1
- package/dist/frond-config.d.ts +0 -71
- package/dist/frond-config.d.ts.map +0 -1
- package/dist/frond-config.js.map +0 -1
- package/dist/graph.d.ts.map +0 -1
- package/dist/graph.js.map +0 -1
- package/dist/identity.d.ts.map +0 -1
- package/dist/identity.js.map +0 -1
- package/dist/prefab/crud.d.ts.map +0 -1
- package/dist/prefab/crud.js.map +0 -1
- package/dist/prefab/mirror.d.ts +0 -33
- package/dist/prefab/mirror.d.ts.map +0 -1
- package/dist/prefab/mirror.js.map +0 -1
- package/dist/prefab/repository.d.ts +0 -40
- package/dist/prefab/repository.d.ts.map +0 -1
- package/dist/prefab/repository.js.map +0 -1
- package/dist/source.d.ts.map +0 -1
- package/dist/storage/criterion.d.ts.map +0 -1
- package/dist/storage/criterion.js.map +0 -1
- package/dist/storage/port.d.ts.map +0 -1
- package/dist/storage/port.js.map +0 -1
- package/dist/storage/store.d.ts.map +0 -1
- package/dist/storage/store.js.map +0 -1
- package/dist/wire/CallLog.d.ts.map +0 -1
- package/dist/wire/CallLog.js +0 -2
- package/dist/wire/CallLog.js.map +0 -1
- package/dist/wire/call.d.ts +0 -130
- package/dist/wire/call.d.ts.map +0 -1
- package/dist/wire/call.js +0 -47
- package/dist/wire/call.js.map +0 -1
- package/dist/wire/emit.d.ts.map +0 -1
- package/dist/wire/emit.js.map +0 -1
- package/dist/wire/errors.d.ts +0 -58
- package/dist/wire/errors.d.ts.map +0 -1
- package/dist/wire/errors.js.map +0 -1
- package/dist/wire/middleware.d.ts.map +0 -1
- package/dist/wire/middleware.js.map +0 -1
- package/dist/wire/operation.d.ts.map +0 -1
- package/dist/wire/operation.js.map +0 -1
- package/dist/wire/signature.d.ts.map +0 -1
- package/dist/wire/signature.js +0 -2
- package/dist/wire/signature.js.map +0 -1
- package/src/boot/auth.ts +0 -45
- package/src/boot/types.ts +0 -148
- package/src/crypto/port.ts +0 -29
- package/src/descriptor/frond.ts +0 -195
- package/src/prefab/mirror.ts +0 -60
- package/src/wire/call.ts +0 -178
- package/src/wire/middleware.ts +0 -43
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { lowerFirst, type EntityConstructor, type SchemaView } from '@fougere/schema';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { ListOptions } from '../storage/ListOptions.js';
|
|
3
|
+
import type { ListResult } from '../storage/ListResult.js';
|
|
4
|
+
import type { Storage } from '../storage/Storage.js';
|
|
5
|
+
import type { OperationContract } from '../wire/OperationContract.js';
|
|
4
6
|
import { targetOf } from './prefab.js';
|
|
7
|
+
import type { CrudOpName } from './CrudOpName.js';
|
|
8
|
+
import type { CrudViews } from './CrudViews.js';
|
|
9
|
+
import type { CrudOps } from './CrudOps.js';
|
|
5
10
|
|
|
6
11
|
/**
|
|
7
12
|
* A class is recognized by what it ANSWERS — the mixin leaves no other trace.
|
|
@@ -27,11 +32,14 @@ export function subjectOf(ctor: unknown, address: string): string {
|
|
|
27
32
|
|
|
28
33
|
/** The id of the row an op acts on — a route segment, or a query fallback. */
|
|
29
34
|
const byId = { name: 'id', source: { kind: 'param' as const, name: 'id' }, optional: false };
|
|
35
|
+
|
|
30
36
|
const fromBody = { name: 'input', source: { kind: 'input' as const }, optional: false };
|
|
31
37
|
|
|
32
38
|
/** The same five, written as the scan would have written them. */
|
|
33
39
|
const idParam = { name: 'id', type: { raw: 'string', name: 'string' } };
|
|
40
|
+
|
|
34
41
|
const inputParam = (entity: string) => ({ name: 'input', type: { raw: `Partial<${entity}>`, name: entity } });
|
|
42
|
+
|
|
35
43
|
const returns = (raw: string, name: string, extra?: { array?: boolean; nullable?: boolean }) =>
|
|
36
44
|
({ raw, name, ...extra });
|
|
37
45
|
|
|
@@ -78,12 +86,6 @@ function asCrudConstructor<T, V>(impl: object): CrudConstructor<T, V> {
|
|
|
78
86
|
return impl as CrudConstructor<T, V>;
|
|
79
87
|
}
|
|
80
88
|
|
|
81
|
-
/** The five ops the mixin fabricates. */
|
|
82
|
-
export type CrudOpName = 'list' | 'findById' | 'create' | 'update' | 'delete';
|
|
83
|
-
|
|
84
|
-
/** Which view each op speaks — omitted ops speak the entity, the trivial view. */
|
|
85
|
-
export type CrudViews = Partial<Record<CrudOpName, EntityConstructor>>;
|
|
86
|
-
|
|
87
89
|
/** The view an op emits, fabricated. */
|
|
88
90
|
type OutOf<V, K extends CrudOpName, T> =
|
|
89
91
|
// Bracketed on purpose: a naked `V extends …` DISTRIBUTES, and the no-view default
|
|
@@ -93,16 +95,6 @@ type OutOf<V, K extends CrudOpName, T> =
|
|
|
93
95
|
: K extends keyof V ? (V[K] extends EntityConstructor ? InstanceType<V[K]> : T)
|
|
94
96
|
: T;
|
|
95
97
|
|
|
96
|
-
/** The five ops, typed from the entity and its views. */
|
|
97
|
-
export interface CrudOps<T, V = {}> {
|
|
98
|
-
storage: Storage<T>;
|
|
99
|
-
list(options?: ListOptions, ...collected: never[]): Promise<ListResult<OutOf<V, 'list', T>>>;
|
|
100
|
-
findById(id: string, ...collected: never[]): Promise<OutOf<V, 'findById', T> | undefined>;
|
|
101
|
-
create(input: Partial<T>, ...collected: never[]): Promise<OutOf<V, 'create', T>>;
|
|
102
|
-
update(id: string, input: Partial<T>, ...collected: never[]): Promise<OutOf<V, 'update', T>>;
|
|
103
|
-
delete(id: string, ...collected: never[]): Promise<boolean>;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
98
|
/** The prefab handler class — its ops, plus the statics the bootstrap and adapters read. */
|
|
107
99
|
export interface CrudConstructor<T, V = {}> {
|
|
108
100
|
// `Storage<T>`, not the bare `Storage`: a handler that injects a second storage has to
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { CrudOpName } from './CrudOpName.js';
|
|
2
|
+
import type { EntityConstructor } from '@fougere/schema';
|
|
3
|
+
import type { ListOptions } from '../storage/ListOptions.js';
|
|
4
|
+
import type { ListResult } from '../storage/ListResult.js';
|
|
5
|
+
import type { Storage } from '../storage/Storage.js';
|
|
6
|
+
|
|
7
|
+
/** The view an op emits, fabricated. */
|
|
8
|
+
type OutOf<V, K extends CrudOpName, T> =
|
|
9
|
+
// Bracketed on purpose: a naked `V extends …` DISTRIBUTES, and the no-view default
|
|
10
|
+
// is the empty map, whose `keyof` is `never` — distribution would then collapse
|
|
11
|
+
// every op's output to `never` instead of falling through to the entity.
|
|
12
|
+
[V] extends [EntityConstructor] ? InstanceType<V & EntityConstructor>
|
|
13
|
+
: K extends keyof V ? (V[K] extends EntityConstructor ? InstanceType<V[K]> : T)
|
|
14
|
+
: T;
|
|
15
|
+
|
|
16
|
+
/** The five ops, typed from the entity and its views. */
|
|
17
|
+
export interface CrudOps<T, V = {}> {
|
|
18
|
+
storage: Storage<T>;
|
|
19
|
+
list(options?: ListOptions, ...collected: never[]): Promise<ListResult<OutOf<V, 'list', T>>>;
|
|
20
|
+
findById(id: string, ...collected: never[]): Promise<OutOf<V, 'findById', T> | undefined>;
|
|
21
|
+
create(input: Partial<T>, ...collected: never[]): Promise<OutOf<V, 'create', T>>;
|
|
22
|
+
update(id: string, input: Partial<T>, ...collected: never[]): Promise<OutOf<V, 'update', T>>;
|
|
23
|
+
delete(id: string, ...collected: never[]): Promise<boolean>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { EntityConstructor } from '@fougere/schema';
|
|
2
|
+
import type { Storage } from '../storage/Storage.js';
|
|
3
|
+
import type { Refreshed } from './Refreshed.js';
|
|
4
|
+
import type { MirrorOf } from './MirrorOf.js';
|
|
5
|
+
|
|
6
|
+
export interface MirrorConstructor<T> {
|
|
7
|
+
new (storage: Storage<T>): MirrorOf<T>;
|
|
8
|
+
readonly __entity: unknown;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function Mirror<E extends EntityConstructor>(shape: E): MirrorConstructor<InstanceType<E>> {
|
|
12
|
+
type T = InstanceType<E>;
|
|
13
|
+
|
|
14
|
+
abstract class MirrorBase implements MirrorOf<T> {
|
|
15
|
+
static readonly __entity = shape;
|
|
16
|
+
|
|
17
|
+
constructor(public storage: Storage<T>) {}
|
|
18
|
+
|
|
19
|
+
abstract pull(since?: Date): AsyncIterable<Partial<T>[]>;
|
|
20
|
+
|
|
21
|
+
async refresh(since?: Date): Promise<Refreshed> {
|
|
22
|
+
const started = Date.now();
|
|
23
|
+
let written = 0;
|
|
24
|
+
// Preserve the source's page boundaries: one page becomes one upsert.
|
|
25
|
+
for await (const page of this.pull(since)) {
|
|
26
|
+
if (page.length === 0) continue;
|
|
27
|
+
written += await this.storage.upsertAll(page);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return { written, since, ms: Date.now() - started };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return MirrorBase as unknown as MirrorConstructor<T>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Storage } from '../storage/Storage.js';
|
|
2
|
+
import type { Refreshed } from './Refreshed.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A paginated local copy of a source that cannot be queried directly.
|
|
6
|
+
*
|
|
7
|
+
* Documented: [the base](https://fougere.dev/docs/concepts/the-base).
|
|
8
|
+
*/
|
|
9
|
+
export interface MirrorOf<T> {
|
|
10
|
+
/** The copy's own storage — where a page lands. */
|
|
11
|
+
storage: Storage<T>;
|
|
12
|
+
/** Pages of rows to write. The one thing a mirror's author supplies. */
|
|
13
|
+
pull(since?: Date): AsyncIterable<Partial<T>[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Pull from `since` and write every page. The mark is the CALLER's: only it knows
|
|
16
|
+
* whether a pass completed, and a pass that throws must not advance it.
|
|
17
|
+
*/
|
|
18
|
+
refresh(since?: Date): Promise<Refreshed>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** What one refresh did — enough to log it, and to decide whether to run again. */
|
|
2
|
+
export interface Refreshed {
|
|
3
|
+
/** Instances written, counting a replaced one once. */
|
|
4
|
+
written: number;
|
|
5
|
+
/** The age the pull was asked to start from — absent when it asked for everything. */
|
|
6
|
+
since?: Date;
|
|
7
|
+
/** How long the whole pass took, pull included. */
|
|
8
|
+
ms: number;
|
|
9
|
+
}
|
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
import { upperFirst, type EntityConstructor } from '@fougere/schema';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ListOptions } from '../storage/ListOptions.js';
|
|
3
|
+
import type { ListResult } from '../storage/ListResult.js';
|
|
4
|
+
import type { SelectOption } from '../storage/SelectOption.js';
|
|
5
|
+
import type { Storage } from '../storage/Storage.js';
|
|
3
6
|
import type { SchemaView } from '@fougere/schema';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* Repository(…entities) — who owns an entity's storage, and where its questions are named.
|
|
7
|
-
*
|
|
8
|
-
* Documented: [repositories](https://fougere.dev/docs/business/repositories).
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* The shape a repository of ONE entity has — the port itself, plus whatever the subclass names on
|
|
13
|
-
* top.
|
|
14
|
-
*/
|
|
15
|
-
export type RepositoryOf<T> = Storage<T>;
|
|
7
|
+
import type { AggregateOf } from './AggregateOf.js';
|
|
8
|
+
import type { AggregateConstructor } from './AggregateConstructor.js';
|
|
16
9
|
|
|
17
10
|
/** The single-entity form: the port, plus whatever the subclass names. */
|
|
18
11
|
export interface RepositoryConstructor<T> {
|
|
@@ -25,21 +18,12 @@ declare abstract class AggregateShape<E extends readonly EntityConstructor[]> {
|
|
|
25
18
|
protected storages: { [K in keyof E]: Storage<InstanceType<E[K]>> };
|
|
26
19
|
}
|
|
27
20
|
|
|
28
|
-
/** The tuple an aggregate holds — the readable form of {@link AggregateShape}'s member. */
|
|
29
|
-
export type AggregateOf<E extends readonly EntityConstructor[]> =
|
|
30
|
-
{ [K in keyof E]: Storage<InstanceType<E[K]>> };
|
|
31
|
-
|
|
32
|
-
export type AggregateConstructor<E extends readonly EntityConstructor[]> =
|
|
33
|
-
(new (...storages: unknown[]) => AggregateShape<E>) & {
|
|
34
|
-
readonly __entity: unknown;
|
|
35
|
-
/** The entities this class owns. Present from two on — an owner of one owns nothing. */
|
|
36
|
-
readonly __owns: E;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
21
|
export function Repository<E extends EntityConstructor>(entity: E): RepositoryConstructor<InstanceType<E>>;
|
|
22
|
+
|
|
40
23
|
export function Repository<E extends readonly [EntityConstructor, EntityConstructor, ...EntityConstructor[]]>(
|
|
41
24
|
...entities: E
|
|
42
25
|
): AggregateConstructor<E>;
|
|
26
|
+
|
|
43
27
|
export function Repository(...entities: EntityConstructor[]): unknown {
|
|
44
28
|
return entities.length === 1 ? one(entities[0]) : many(entities);
|
|
45
29
|
}
|
package/src/scan.ts
CHANGED
|
@@ -1,29 +1,9 @@
|
|
|
1
1
|
import type { Fronds } from './descriptor/Fronds.js';
|
|
2
|
-
|
|
3
|
-
/** Something the scan could NOT do — recorded instead of swallowed. */
|
|
4
|
-
export interface ScanDiagnostic {
|
|
5
|
-
/**
|
|
6
|
-
* `blocking` — the app now serves less than its source declares, and no caller can know it: a
|
|
7
|
-
* handler that failed to parse contributes zero operations.
|
|
8
|
-
*/
|
|
9
|
-
severity: 'blocking' | 'warning';
|
|
10
|
-
/** Stable rule name — `handler-parse-failed`, `directory-unreadable`. */
|
|
11
|
-
code: string;
|
|
12
|
-
/** Absolute path of what could not be read. */
|
|
13
|
-
filePath: string;
|
|
14
|
-
/** The frond it belongs to, when the scan got far enough to know. */
|
|
15
|
-
frond?: string;
|
|
16
|
-
/** The declaration the diagnostic is about — e.g. `PostHandler.publish`. */
|
|
17
|
-
subject?: string;
|
|
18
|
-
/** What could not be done, and what it costs. One sentence, for a human. */
|
|
19
|
-
message: string;
|
|
20
|
-
/** The underlying failure, kept whole. */
|
|
21
|
-
cause?: unknown;
|
|
22
|
-
}
|
|
2
|
+
import type { Diagnostic } from './diagnostic.js';
|
|
23
3
|
|
|
24
4
|
/** Result of scanning a project directory. */
|
|
25
5
|
export interface ScanResult {
|
|
26
6
|
fronds: Fronds;
|
|
27
|
-
/** What the scan could not do. Empty is a claim, not a default — see {@link
|
|
28
|
-
diagnostics:
|
|
7
|
+
/** What the scan could not do. Empty is a claim, not a default — see {@link Diagnostic}. */
|
|
8
|
+
diagnostics: Diagnostic[];
|
|
29
9
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** What a read may ask about one field, and how a storage tells the two forms apart. */
|
|
2
1
|
import { type Field, Shapes } from '@fougere/schema';
|
|
2
|
+
import type { ComparisonName } from './ComparisonName.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* The comparisons a criterion may name.
|
|
@@ -23,8 +23,6 @@ export interface Comparison {
|
|
|
23
23
|
|
|
24
24
|
export const COMPARISONS = ['gte', 'lte', 'gt', 'lt', 'ne', 'between', 'contains', 'notIn', 'isNull'] as const;
|
|
25
25
|
|
|
26
|
-
export type ComparisonName = (typeof COMPARISONS)[number];
|
|
27
|
-
|
|
28
26
|
/**
|
|
29
27
|
* Is this criterion a comparison, or a value that happens to be an object?
|
|
30
28
|
*
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Options for list queries — pagination, sorting, counting. */
|
|
2
|
+
export interface ListOptions {
|
|
3
|
+
/** Number of records to return. */
|
|
4
|
+
limit?: number;
|
|
5
|
+
|
|
6
|
+
/** Offset-based: skip N records. */
|
|
7
|
+
offset?: number;
|
|
8
|
+
|
|
9
|
+
/** Page-based: 1-indexed page number (requires limit). */
|
|
10
|
+
page?: number;
|
|
11
|
+
|
|
12
|
+
/** Cursor-based: fetch records after this ID. */
|
|
13
|
+
after?: string;
|
|
14
|
+
|
|
15
|
+
/** Field name to order by. */
|
|
16
|
+
orderBy?: string;
|
|
17
|
+
|
|
18
|
+
/** Sort direction (default: 'asc'). */
|
|
19
|
+
order?: 'asc' | 'desc';
|
|
20
|
+
|
|
21
|
+
/** If true, also returns total count (for pagination UIs). */
|
|
22
|
+
count?: boolean;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Equality criteria, field by field — `{ orderId: '…' }`. Named rather than spread across the
|
|
26
|
+
* options so an unknown key stays ignored instead of silently becoming a filter.
|
|
27
|
+
*/
|
|
28
|
+
where?: Record<string, unknown>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Result of list() — extends Array so it's backward compatible. */
|
|
2
|
+
export interface ListResult<T> extends Array<T> {
|
|
3
|
+
/** Total number of matching records (only set when count: true). */
|
|
4
|
+
total?: number;
|
|
5
|
+
/** Cursor of the last item (for cursor-based pagination). */
|
|
6
|
+
endCursor?: string;
|
|
7
|
+
/** Whether more records exist after endCursor. */
|
|
8
|
+
hasMore?: boolean;
|
|
9
|
+
}
|
|
@@ -1,44 +1,7 @@
|
|
|
1
1
|
import { upperFirst, lowerFirst, type SchemaView } from '@fougere/schema';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/** Number of records to return. */
|
|
6
|
-
limit?: number;
|
|
7
|
-
|
|
8
|
-
/** Offset-based: skip N records. */
|
|
9
|
-
offset?: number;
|
|
10
|
-
|
|
11
|
-
/** Page-based: 1-indexed page number (requires limit). */
|
|
12
|
-
page?: number;
|
|
13
|
-
|
|
14
|
-
/** Cursor-based: fetch records after this ID. */
|
|
15
|
-
after?: string;
|
|
16
|
-
|
|
17
|
-
/** Field name to order by. */
|
|
18
|
-
orderBy?: string;
|
|
19
|
-
|
|
20
|
-
/** Sort direction (default: 'asc'). */
|
|
21
|
-
order?: 'asc' | 'desc';
|
|
22
|
-
|
|
23
|
-
/** If true, also returns total count (for pagination UIs). */
|
|
24
|
-
count?: boolean;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Equality criteria, field by field — `{ orderId: '…' }`. Named rather than spread across the
|
|
28
|
-
* options so an unknown key stays ignored instead of silently becoming a filter.
|
|
29
|
-
*/
|
|
30
|
-
where?: Record<string, unknown>;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/** Result of list() — extends Array so it's backward compatible. */
|
|
34
|
-
export interface ListResult<T> extends Array<T> {
|
|
35
|
-
/** Total number of matching records (only set when count: true). */
|
|
36
|
-
total?: number;
|
|
37
|
-
/** Cursor of the last item (for cursor-based pagination). */
|
|
38
|
-
endCursor?: string;
|
|
39
|
-
/** Whether more records exist after endCursor. */
|
|
40
|
-
hasMore?: boolean;
|
|
41
|
-
}
|
|
2
|
+
import type { ListOptions } from './ListOptions.js';
|
|
3
|
+
import type { ListResult } from './ListResult.js';
|
|
4
|
+
import type { SelectOption } from './SelectOption.js';
|
|
42
5
|
|
|
43
6
|
/** The keys `list()` answers to. */
|
|
44
7
|
const LIST_OPTION_KEYS = [
|
|
@@ -72,11 +35,6 @@ export function assertListOptions(
|
|
|
72
35
|
);
|
|
73
36
|
}
|
|
74
37
|
|
|
75
|
-
/** Select option — restrict returned fields to those of a SchemaView. */
|
|
76
|
-
export interface SelectOption {
|
|
77
|
-
select?: SchemaView;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
38
|
/** Per-entity storage — scoped CRUD operations on a single entity type. */
|
|
81
39
|
export interface Storage<T = Record<string, unknown>> {
|
|
82
40
|
list(options?: ListOptions & SelectOption): Promise<ListResult<T>>;
|
|
@@ -179,12 +137,6 @@ export abstract class Storage<T = Record<string, unknown>> {
|
|
|
179
137
|
get client(): unknown { return behind<T>(this).client; }
|
|
180
138
|
}
|
|
181
139
|
|
|
182
|
-
/**
|
|
183
|
-
* Factory that creates a Storage for a given entity.
|
|
184
|
-
* Called by bootstrap for every scanned entity.
|
|
185
|
-
*/
|
|
186
|
-
export type StorageFactory = (entity: SchemaView, name: string) => Storage;
|
|
187
|
-
|
|
188
140
|
/** Container key of an entity's storage — 'reading' → 'ReadingStorage'. */
|
|
189
141
|
export function storageKeyOf(entity: string): string {
|
|
190
142
|
return `${upperFirst(entity)}${HELD}`;
|
|
@@ -201,11 +153,6 @@ export function entityOfStorageKey(key: string, known: (entity: string) => boole
|
|
|
201
153
|
/** What a holder keeps, said in the key it is registered under. */
|
|
202
154
|
const HELD = 'Storage';
|
|
203
155
|
|
|
204
|
-
/** `Together<[Account, Ledger]>` — writes that stand or fall as one. */
|
|
205
|
-
export interface Together<E extends readonly unknown[], P extends readonly unknown[] = []> {
|
|
206
|
-
run<R>(fn: (entities: { [K in keyof E]: Storage<E[K]> }, providers: P) => Promise<R>): Promise<R>;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
156
|
/**
|
|
210
157
|
* The container key of a frame — `[['Account', 'Ledger'], ['RateMirror']]` →
|
|
211
158
|
* 'Account+Ledger|RateMirrorTogether'.
|
|
@@ -216,7 +163,9 @@ export function togetherKeyOf(entities: readonly string[], providers: readonly s
|
|
|
216
163
|
}
|
|
217
164
|
|
|
218
165
|
const FRAME = 'Together';
|
|
166
|
+
|
|
219
167
|
const SEPARATOR = '+';
|
|
168
|
+
|
|
220
169
|
/** Separates the two lists — what the unwind covers, and what is rebuilt to make it true. */
|
|
221
170
|
const KINDS = '|';
|
|
222
171
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type SchemaView } from '@fougere/schema';
|
|
2
|
+
import type { Storage } from './Storage.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Factory that creates a Storage for a given entity.
|
|
6
|
+
* Called by bootstrap for every scanned entity.
|
|
7
|
+
*/
|
|
8
|
+
export type StorageFactory = (entity: SchemaView, name: string) => Storage;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
/** The thirteen gestures of {@link Storage}, derived from four. */
|
|
2
1
|
import { applyCreate, applyUpdate, Lifecycle, Role, type SchemaView } from '@fougere/schema';
|
|
3
|
-
import { comparisonOf, comparisonsIn, type Comparison } from './
|
|
4
|
-
import type { Storage
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export type Values = Record<string, unknown>;
|
|
2
|
+
import { comparisonOf, comparisonsIn, type Comparison } from './Comparison.js';
|
|
3
|
+
import type { Storage } from './Storage.js';
|
|
4
|
+
import type { StorageFactory } from './StorageFactory.js';
|
|
5
|
+
import type { Values } from './Values.js';
|
|
8
6
|
|
|
9
7
|
/** Instances addressed by key — what an adapter supplies, and all of it. */
|
|
10
8
|
export interface Store {
|
|
@@ -49,7 +47,7 @@ export function storageOver(open: (entity: SchemaView, name: string) => Store):
|
|
|
49
47
|
|
|
50
48
|
// Same contract as SQL: the key and the creation stamps survive an overwrite.
|
|
51
49
|
// Named, and not reached through `this`: a caller may have wrapped these gestures,
|
|
52
|
-
// and a derived one that goes back through the front
|
|
50
|
+
// and a derived one that goes back through the front facade is judged twice.
|
|
53
51
|
const upsert = async (input: Partial<Record<string, unknown>>): Promise<Values> => {
|
|
54
52
|
const values = applyCreate(fields, applyUpdate(fields, input));
|
|
55
53
|
const id = values[pk] as string | undefined;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Storage } from './Storage.js';
|
|
2
|
+
|
|
3
|
+
/** `Together<[Account, Ledger]>` — writes that stand or fall as one. */
|
|
4
|
+
export interface Together<E extends readonly unknown[], P extends readonly unknown[] = []> {
|
|
5
|
+
run<R>(fn: (entities: { [K in keyof E]: Storage<E[K]> }, providers: P) => Promise<R>): Promise<R>;
|
|
6
|
+
}
|
package/src/verify.ts
CHANGED
|
@@ -1,27 +1,18 @@
|
|
|
1
|
-
import type { FrondDescriptor } from './descriptor/
|
|
1
|
+
import type { FrondDescriptor } from './descriptor/FrondDescriptor.js';
|
|
2
|
+
import type { Diagnostic } from './diagnostic.js';
|
|
2
3
|
import { lowerFirst } from '@fougere/schema';
|
|
3
|
-
import { repositoryKeyOf } from './prefab/
|
|
4
|
-
import { storageKeyOf } from './storage/
|
|
4
|
+
import { repositoryKeyOf } from './prefab/RepositoryConstructor.js';
|
|
5
|
+
import { storageKeyOf } from './storage/Storage.js';
|
|
5
6
|
import { presenterKeyOf } from './prefab/presenter.js';
|
|
6
7
|
import { collectorKeyOf } from './prefab/collector.js';
|
|
7
8
|
|
|
8
|
-
/**
|
|
9
|
-
export
|
|
10
|
-
/** Rule name, stable — 'cross-frond-dependency'. */
|
|
11
|
-
rule: string;
|
|
12
|
-
/** What it costs, decided by the rule that raises it — never by whoever renders it. */
|
|
13
|
-
severity: 'blocking' | 'warning';
|
|
14
|
-
/** The frond the subject lives in. */
|
|
9
|
+
/** A subject declared in one frond and reached from another — the rules below find no other kind. */
|
|
10
|
+
export type Misplaced = Diagnostic & {
|
|
15
11
|
frond: string;
|
|
16
|
-
/** What violates it — 'PostHandler'. */
|
|
17
12
|
subject: string;
|
|
18
|
-
/** Where to go and look. */
|
|
19
|
-
filePath: string;
|
|
20
13
|
/** What the subject reaches for, and where it actually lives. */
|
|
21
14
|
dependsOn: { key: string; frond: string; kind: string };
|
|
22
|
-
|
|
23
|
-
message: string;
|
|
24
|
-
}
|
|
15
|
+
};
|
|
25
16
|
|
|
26
17
|
/** A dependency declared in a frond's scope, and what kind of thing it is. */
|
|
27
18
|
type Registration = { frond: string; kind: string };
|
|
@@ -57,7 +48,7 @@ function injectablesOf(frond: FrondDescriptor) {
|
|
|
57
48
|
* Does this app survive being split? A frond runs in-process or in its own process behind JSON-RPC
|
|
58
49
|
* with identical user code — that is the whole claim.
|
|
59
50
|
*/
|
|
60
|
-
export function verify(app: { fronds: readonly FrondDescriptor[] }):
|
|
51
|
+
export function verify(app: { fronds: readonly FrondDescriptor[] }): Misplaced[] {
|
|
61
52
|
const index = new Map<string, Registration>();
|
|
62
53
|
for (const frond of app.fronds) {
|
|
63
54
|
for (const [key, reg] of registrationsOf(frond)) index.set(key, reg);
|
|
@@ -71,7 +62,7 @@ export function verify(app: { fronds: readonly FrondDescriptor[] }): Violation[]
|
|
|
71
62
|
for (const collector of frond.collectors) collectorFronds.set(collector.typeName, frond.name);
|
|
72
63
|
}
|
|
73
64
|
|
|
74
|
-
const violations:
|
|
65
|
+
const violations: Misplaced[] = [];
|
|
75
66
|
for (const frond of app.fronds) {
|
|
76
67
|
// Rule 1 — a constructor dependency declared in another frond's scope.
|
|
77
68
|
// Façade keys are exempt by construction, not by omission: a `Facade<X>`
|
|
@@ -86,7 +77,7 @@ export function verify(app: { fronds: readonly FrondDescriptor[] }): Violation[]
|
|
|
86
77
|
// an unresolved dependency is the container's complaint, not this rule's.
|
|
87
78
|
if (!declared || declared.frond === frond.name) continue;
|
|
88
79
|
violations.push({
|
|
89
|
-
|
|
80
|
+
code: 'cross-frond-dependency',
|
|
90
81
|
severity: 'warning',
|
|
91
82
|
frond: frond.name,
|
|
92
83
|
subject: subject.name,
|
|
@@ -120,7 +111,7 @@ export function verify(app: { fronds: readonly FrondDescriptor[] }): Violation[]
|
|
|
120
111
|
// provably false.
|
|
121
112
|
if (!elsewhere) continue;
|
|
122
113
|
violations.push({
|
|
123
|
-
|
|
114
|
+
code: 'collector-in-another-frond',
|
|
124
115
|
severity: 'blocking',
|
|
125
116
|
frond: frond.name,
|
|
126
117
|
subject: `${handler.ctor.name}.${opName}(${param.name})`,
|
|
@@ -147,6 +138,6 @@ export function verify(app: { fronds: readonly FrondDescriptor[] }): Violation[]
|
|
|
147
138
|
export function assertSplittable(app: { fronds: readonly FrondDescriptor[] }): void {
|
|
148
139
|
const violations = verify(app);
|
|
149
140
|
if (violations.length === 0) return;
|
|
150
|
-
const lines = violations.map((v) => ` [${v.
|
|
141
|
+
const lines = violations.map((v) => ` [${v.code}] ${v.frond}/${v.subject}\n ${v.message}\n ${v.filePath}`);
|
|
151
142
|
throw new Error(`${violations.length} violation(s) — this app does not survive a split:\n${lines.join('\n')}`);
|
|
152
143
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FougereOperations } from './FougereOperations.js';
|
|
2
|
+
|
|
3
|
+
type Served = keyof FougereOperations & string;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Both halves below take the union through a type PARAMETER, which is what makes the
|
|
7
|
+
* conditional distribute: `Served` is an alias, and an alias is matched whole — `'a.x' | 'b.y'`
|
|
8
|
+
* does not extend `` `${string}.${string}` `` as one thing, so the naive form answers `never`.
|
|
9
|
+
*/
|
|
10
|
+
type AddressIn<Key> = Key extends `${infer Address}.${string}` ? Address : never;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The addresses this app answers at — or any string, until a scan has said otherwise. The
|
|
14
|
+
* `[Served] extends [never]` form is what keeps an ungenerated project compiling: a bare `never`
|
|
15
|
+
* in a parameter position refuses every call, the correct ones included.
|
|
16
|
+
*/
|
|
17
|
+
export type Addresses = [Served] extends [never] ? string : AddressIn<Served>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { OperationContext } from './OperationContext.js';
|
|
2
|
+
import type { AppNext } from './AppNext.js';
|
|
3
|
+
|
|
4
|
+
export type AppMiddleware = (ctx: OperationContext, next: AppNext) => Promise<unknown>;
|
|
5
|
+
|
|
6
|
+
// ── Runner ──────────────────────────────────────
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Execute a middleware chain (onion model) then the handler.
|
|
10
|
+
*/
|
|
11
|
+
export function runMiddlewares(
|
|
12
|
+
middlewares: AppMiddleware[],
|
|
13
|
+
ctx: OperationContext,
|
|
14
|
+
handler: AppNext,
|
|
15
|
+
): Promise<unknown> {
|
|
16
|
+
let index = 0;
|
|
17
|
+
const next = (): Promise<unknown> => {
|
|
18
|
+
if (index < middlewares.length) {
|
|
19
|
+
return middlewares[index++](ctx, next);
|
|
20
|
+
}
|
|
21
|
+
return handler();
|
|
22
|
+
};
|
|
23
|
+
return next();
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type AppNext = () => Promise<unknown>;
|
package/src/wire/Call.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Invocation } from './Invocation.js';
|
|
2
|
+
import { type PartialInvocation } from './PartialInvocation.js';
|
|
3
|
+
import type { RouteAddress } from './RouteAddress.js';
|
|
4
|
+
|
|
5
|
+
/** One normalized request, frozen: where it goes and what the caller supplied. */
|
|
6
|
+
export class Call {
|
|
7
|
+
readonly address: RouteAddress;
|
|
8
|
+
readonly invocation: Invocation;
|
|
9
|
+
|
|
10
|
+
constructor(address: RouteAddress, invocation?: PartialInvocation) {
|
|
11
|
+
this.address = address;
|
|
12
|
+
this.invocation = Invocation.from(invocation);
|
|
13
|
+
Object.freeze(this);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { RouteKind } from './
|
|
1
|
+
import type { RouteKind } from './RouteKind.js';
|
|
2
2
|
|
|
3
|
-
/** What crosses the
|
|
3
|
+
/** What crosses the facade. */
|
|
4
4
|
export interface CallRecord {
|
|
5
5
|
/** Monotonic, and the whole cursor protocol: a reader asks for what is above its own. */
|
|
6
6
|
seq: number;
|
|
@@ -20,11 +20,3 @@ export interface CallRecord {
|
|
|
20
20
|
verdict: 'running' | 'ok' | 'failed';
|
|
21
21
|
refusal?: { code?: string; message: string };
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
/** One page of the ring. */
|
|
25
|
-
export interface CallPage {
|
|
26
|
-
calls: CallRecord[];
|
|
27
|
-
cursor: number;
|
|
28
|
-
inFlight: number;
|
|
29
|
-
dropped: number;
|
|
30
|
-
}
|