@fougere/core 0.17.4-alpha.0 → 0.19.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/README.md +1 -1
- package/dist/BootRefusal.d.ts +9 -0
- package/dist/BootRefusal.d.ts.map +1 -0
- package/dist/BootRefusal.js +12 -0
- package/dist/BootRefusal.js.map +1 -0
- package/dist/CallIdentity.d.ts.map +1 -1
- package/dist/CallIdentity.js +2 -1
- package/dist/CallIdentity.js.map +1 -1
- package/dist/Declared.d.ts +2 -5
- package/dist/Declared.d.ts.map +1 -1
- package/dist/DeclaredHandler.d.ts +3 -8
- package/dist/DeclaredHandler.d.ts.map +1 -1
- package/dist/DeclaredSubject.d.ts +2 -5
- package/dist/DeclaredSubject.d.ts.map +1 -1
- package/dist/EffectiveOperation.d.ts +7 -6
- package/dist/EffectiveOperation.d.ts.map +1 -1
- package/dist/EffectiveOperationModel.d.ts.map +1 -1
- package/dist/EffectiveOperationModel.js +9 -6
- package/dist/EffectiveOperationModel.js.map +1 -1
- package/dist/FrondConfig.d.ts +0 -2
- package/dist/FrondConfig.d.ts.map +1 -1
- package/dist/FrondConfig.js.map +1 -1
- package/dist/FrondDeclaration.d.ts +3 -8
- package/dist/FrondDeclaration.d.ts.map +1 -1
- package/dist/FrondDeclaration.js +2 -1
- package/dist/FrondDeclaration.js.map +1 -1
- package/dist/OperationOverride.d.ts +5 -3
- package/dist/OperationOverride.d.ts.map +1 -1
- package/dist/SourceView.d.ts +10 -8
- package/dist/SourceView.d.ts.map +1 -1
- package/dist/SourceView.js +10 -1
- package/dist/SourceView.js.map +1 -1
- package/dist/boot/AppLifecycle.d.ts.map +1 -1
- package/dist/boot/AppLifecycle.js +2 -1
- package/dist/boot/AppLifecycle.js.map +1 -1
- package/dist/boot/Emissions.d.ts +8 -1
- package/dist/boot/Emissions.d.ts.map +1 -1
- package/dist/boot/Emissions.js +16 -11
- package/dist/boot/Emissions.js.map +1 -1
- package/dist/boot/bootstrap.d.ts.map +1 -1
- package/dist/boot/bootstrap.js +27 -15
- package/dist/boot/bootstrap.js.map +1 -1
- package/dist/boot/card.d.ts.map +1 -1
- package/dist/boot/card.js.map +1 -1
- package/dist/boot/install.d.ts.map +1 -1
- package/dist/boot/install.js +1 -0
- package/dist/boot/install.js.map +1 -1
- package/dist/boot/ownership.d.ts.map +1 -1
- package/dist/boot/ownership.js +26 -14
- package/dist/boot/ownership.js.map +1 -1
- package/dist/boot/unregistered.d.ts +4 -2
- package/dist/boot/unregistered.d.ts.map +1 -1
- package/dist/boot/unregistered.js +30 -30
- package/dist/boot/unregistered.js.map +1 -1
- package/dist/contract.d.ts +3 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +3 -0
- package/dist/contract.js.map +1 -1
- package/dist/descriptor/CollectorEntry.d.ts +2 -7
- package/dist/descriptor/CollectorEntry.d.ts.map +1 -1
- package/dist/descriptor/FrondDescriptor.d.ts +5 -23
- package/dist/descriptor/FrondDescriptor.d.ts.map +1 -1
- package/dist/descriptor/FrondDescriptor.js.map +1 -1
- package/dist/descriptor/HandlerEntry.d.ts +2 -7
- package/dist/descriptor/HandlerEntry.d.ts.map +1 -1
- package/dist/descriptor/MiddlewareEntry.d.ts +2 -7
- package/dist/descriptor/MiddlewareEntry.d.ts.map +1 -1
- package/dist/descriptor/PresenterEntry.d.ts +2 -7
- package/dist/descriptor/PresenterEntry.d.ts.map +1 -1
- package/dist/descriptor/ProviderEntry.d.ts +2 -7
- package/dist/descriptor/ProviderEntry.d.ts.map +1 -1
- package/dist/descriptor/Subject.d.ts +10 -0
- package/dist/descriptor/Subject.d.ts.map +1 -0
- package/dist/descriptor/Subject.js +2 -0
- package/dist/descriptor/Subject.js.map +1 -0
- package/dist/descriptor/index.d.ts +1 -0
- package/dist/descriptor/index.d.ts.map +1 -1
- package/dist/descriptor/index.js +1 -0
- package/dist/descriptor/index.js.map +1 -1
- package/dist/diagnostic.d.ts +2 -1
- package/dist/diagnostic.d.ts.map +1 -1
- package/dist/diagnostic.js +2 -1
- package/dist/diagnostic.js.map +1 -1
- package/dist/dispatch/ArgumentResolver.d.ts +13 -1
- package/dist/dispatch/ArgumentResolver.d.ts.map +1 -1
- package/dist/dispatch/ArgumentResolver.js +48 -2
- package/dist/dispatch/ArgumentResolver.js.map +1 -1
- package/dist/dispatch/EntityLookup.d.ts +4 -0
- package/dist/dispatch/EntityLookup.d.ts.map +1 -0
- package/dist/dispatch/EntityLookup.js +2 -0
- package/dist/dispatch/EntityLookup.js.map +1 -0
- package/dist/dispatch/Facade.d.ts +3 -0
- package/dist/dispatch/Facade.d.ts.map +1 -1
- package/dist/dispatch/HandlerFacade.d.ts +2 -0
- package/dist/dispatch/HandlerFacade.d.ts.map +1 -1
- package/dist/dispatch/HandlerFacade.js +14 -4
- package/dist/dispatch/HandlerFacade.js.map +1 -1
- package/dist/entry/facade.d.ts +10 -1
- package/dist/entry/facade.d.ts.map +1 -1
- package/dist/entry/facade.js +26 -2
- package/dist/entry/facade.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/prefab/AggregateConstructor.d.ts +2 -2
- package/dist/prefab/AggregateConstructor.d.ts.map +1 -1
- package/dist/prefab/AggregateOf.d.ts +2 -2
- package/dist/prefab/AggregateOf.d.ts.map +1 -1
- package/dist/prefab/AggregateShape.d.ts +2 -2
- package/dist/prefab/AggregateShape.d.ts.map +1 -1
- package/dist/prefab/CrudConstructor.d.ts +2 -2
- package/dist/prefab/CrudConstructor.d.ts.map +1 -1
- package/dist/prefab/CrudConstructor.js +13 -10
- package/dist/prefab/CrudConstructor.js.map +1 -1
- package/dist/prefab/CrudOps.d.ts +2 -2
- package/dist/prefab/CrudOps.d.ts.map +1 -1
- package/dist/prefab/CrudViews.d.ts +2 -2
- package/dist/prefab/CrudViews.d.ts.map +1 -1
- package/dist/prefab/Middleware.d.ts +13 -0
- package/dist/prefab/Middleware.d.ts.map +1 -0
- package/dist/prefab/Middleware.js +10 -0
- package/dist/prefab/Middleware.js.map +1 -0
- package/dist/prefab/MirrorConstructor.d.ts +2 -2
- package/dist/prefab/MirrorConstructor.d.ts.map +1 -1
- package/dist/prefab/MirrorConstructor.js.map +1 -1
- package/dist/prefab/RepositoryConstructor.d.ts +4 -4
- package/dist/prefab/RepositoryConstructor.d.ts.map +1 -1
- package/dist/prefab/RepositoryConstructor.js.map +1 -1
- package/dist/prefab/collector.d.ts +2 -1
- package/dist/prefab/collector.d.ts.map +1 -1
- package/dist/prefab/collector.js.map +1 -1
- package/dist/prefab/opsOf.d.ts +4 -0
- package/dist/prefab/opsOf.d.ts.map +1 -0
- package/dist/prefab/opsOf.js +5 -0
- package/dist/prefab/opsOf.js.map +1 -0
- package/dist/prefab/prefab.d.ts +3 -3
- package/dist/prefab/prefab.d.ts.map +1 -1
- package/dist/prefab/presenter.d.ts +3 -3
- package/dist/prefab/presenter.d.ts.map +1 -1
- package/dist/prefab/presenter.js.map +1 -1
- package/dist/wire/Addresses.d.ts +4 -4
- package/dist/wire/Addresses.d.ts.map +1 -1
- package/dist/wire/Cardinality.d.ts +4 -0
- package/dist/wire/Cardinality.d.ts.map +1 -0
- package/dist/wire/Cardinality.js +3 -0
- package/dist/wire/Cardinality.js.map +1 -0
- package/dist/wire/Facade.d.ts +5 -7
- package/dist/wire/Facade.d.ts.map +1 -1
- package/dist/wire/Facade.js.map +1 -1
- package/dist/wire/Invocation.d.ts +2 -1
- 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 +6 -0
- package/dist/wire/InvocationContext.d.ts.map +1 -1
- package/dist/wire/OperationContract.d.ts +2 -1
- package/dist/wire/OperationContract.d.ts.map +1 -1
- package/dist/wire/OperationContract.js +2 -2
- package/dist/wire/OperationContract.js.map +1 -1
- package/dist/wire/OperationKind.d.ts +3 -1
- package/dist/wire/OperationKind.d.ts.map +1 -1
- package/dist/wire/OperationKind.js +2 -1
- package/dist/wire/OperationKind.js.map +1 -1
- package/dist/wire/Placement.d.ts +4 -0
- package/dist/wire/Placement.d.ts.map +1 -0
- package/dist/wire/Placement.js +3 -0
- package/dist/wire/Placement.js.map +1 -0
- package/dist/wire/RouteKind.d.ts +2 -1
- package/dist/wire/RouteKind.d.ts.map +1 -1
- package/dist/wire/SignedCall.d.ts +2 -0
- package/dist/wire/SignedCall.d.ts.map +1 -1
- package/dist/wire/StateShape.d.ts +1 -2
- package/dist/wire/StateShape.d.ts.map +1 -1
- package/dist/wire/StateShape.js +11 -11
- package/dist/wire/StateShape.js.map +1 -1
- package/dist/wire/TypeRef.d.ts +7 -0
- package/dist/wire/TypeRef.d.ts.map +1 -1
- package/dist/wire/binding.d.ts +11 -1
- package/dist/wire/binding.d.ts.map +1 -1
- package/dist/wire/binding.js +4 -2
- package/dist/wire/binding.js.map +1 -1
- package/dist/wire/card/CardOp.d.ts +4 -10
- package/dist/wire/card/CardOp.d.ts.map +1 -1
- package/dist/wire/refusals.d.ts +2 -1
- package/dist/wire/refusals.d.ts.map +1 -1
- package/dist/wire/refusals.js.map +1 -1
- package/dist/wire/topology/DeclaredFrond.d.ts +2 -1
- package/dist/wire/topology/DeclaredFrond.d.ts.map +1 -1
- package/dist/wire/topology/FrondPlacement.d.ts +2 -1
- package/dist/wire/topology/FrondPlacement.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/BootRefusal.ts +11 -0
- package/src/CallIdentity.ts +2 -1
- package/src/Declared.ts +3 -7
- package/src/DeclaredHandler.ts +3 -8
- package/src/DeclaredSubject.ts +3 -5
- package/src/EffectiveOperation.ts +7 -6
- package/src/EffectiveOperationModel.ts +11 -7
- package/src/FrondConfig.ts +0 -2
- package/src/FrondDeclaration.ts +5 -8
- package/src/OperationOverride.ts +5 -3
- package/src/SourceView.ts +21 -3
- package/src/boot/AppLifecycle.ts +2 -1
- package/src/boot/Emissions.ts +18 -11
- package/src/boot/bootstrap.ts +32 -16
- package/src/boot/card.ts +1 -2
- package/src/boot/install.ts +1 -0
- package/src/boot/ownership.ts +35 -16
- package/src/boot/unregistered.ts +31 -33
- package/src/contract.ts +3 -0
- package/src/descriptor/CollectorEntry.ts +2 -7
- package/src/descriptor/FrondDescriptor.ts +5 -19
- package/src/descriptor/HandlerEntry.ts +2 -7
- package/src/descriptor/MiddlewareEntry.ts +2 -7
- package/src/descriptor/PresenterEntry.ts +2 -7
- package/src/descriptor/ProviderEntry.ts +2 -7
- package/src/descriptor/Subject.ts +10 -0
- package/src/descriptor/index.ts +1 -0
- package/src/diagnostic.ts +4 -2
- package/src/dispatch/ArgumentResolver.ts +54 -2
- package/src/dispatch/EntityLookup.ts +4 -0
- package/src/dispatch/Facade.ts +3 -0
- package/src/dispatch/HandlerFacade.ts +14 -6
- package/src/entry/facade.ts +38 -2
- package/src/index.ts +5 -1
- package/src/prefab/AggregateConstructor.ts +2 -2
- package/src/prefab/AggregateOf.ts +2 -2
- package/src/prefab/AggregateShape.ts +2 -2
- package/src/prefab/CrudConstructor.ts +18 -13
- package/src/prefab/CrudOps.ts +3 -3
- package/src/prefab/CrudViews.ts +2 -2
- package/src/prefab/Middleware.ts +13 -0
- package/src/prefab/MirrorConstructor.ts +2 -2
- package/src/prefab/RepositoryConstructor.ts +9 -9
- package/src/prefab/collector.ts +4 -3
- package/src/prefab/opsOf.ts +6 -0
- package/src/prefab/prefab.ts +5 -5
- package/src/prefab/presenter.ts +3 -3
- package/src/wire/Addresses.ts +4 -4
- package/src/wire/Cardinality.ts +4 -0
- package/src/wire/Facade.ts +6 -9
- package/src/wire/Invocation.ts +3 -1
- package/src/wire/InvocationContext.ts +6 -0
- package/src/wire/OperationContract.ts +4 -3
- package/src/wire/OperationKind.ts +4 -1
- package/src/wire/Placement.ts +4 -0
- package/src/wire/RouteKind.ts +3 -1
- package/src/wire/SignedCall.ts +2 -0
- package/src/wire/StateShape.ts +9 -11
- package/src/wire/TypeRef.ts +4 -0
- package/src/wire/binding.ts +10 -2
- package/src/wire/card/CardOp.ts +4 -10
- package/src/wire/refusals.ts +2 -1
- package/src/wire/topology/DeclaredFrond.ts +3 -1
- package/src/wire/topology/FrondPlacement.ts +3 -1
package/dist/boot/ownership.js
CHANGED
|
@@ -3,7 +3,7 @@ import { nameOf } from '../descriptor/FrondDescriptor.js';
|
|
|
3
3
|
import { inheritsCrud } from '../prefab/CrudConstructor.js';
|
|
4
4
|
import { targetOf } from '../prefab/prefab.js';
|
|
5
5
|
import { ownedBy, repositoryKeyOf } from '../prefab/RepositoryConstructor.js';
|
|
6
|
-
import { entityOfStorageKey } from '../storage/Storage.js';
|
|
6
|
+
import { entityOfStorageKey, membersOfTogetherKey } from '../storage/Storage.js';
|
|
7
7
|
/** One name, one file: two providers under one key and the second silently replaces the first. */
|
|
8
8
|
export function sharedNames(frond, refused) {
|
|
9
9
|
const declared = new Map();
|
|
@@ -106,23 +106,18 @@ function refuseStorageKeyAsProvider(provider, frond, known, refused) {
|
|
|
106
106
|
function refuseStorageReached(decl, frond, owners, known, refused) {
|
|
107
107
|
const allowed = decl.kind === 'provider' ? builtOn(decl.ctor) : [];
|
|
108
108
|
for (const dep of decl.deps) {
|
|
109
|
+
const framed = membersOfTogetherKey(dep);
|
|
110
|
+
if (framed) {
|
|
111
|
+
const members = framed.entities.map(lowerFirst).filter(known);
|
|
112
|
+
for (const entity of members)
|
|
113
|
+
reachesOwned(decl, dep, entity, frond, owners, refused);
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
109
116
|
const entity = entityOfStorageKey(dep, known);
|
|
110
117
|
if (!entity)
|
|
111
118
|
continue;
|
|
112
|
-
|
|
113
|
-
if (owner && owner !== decl.ctor.name) {
|
|
114
|
-
refused.push({
|
|
115
|
-
severity: 'blocking',
|
|
116
|
-
code: 'aggregate-storage-reached',
|
|
117
|
-
filePath: decl.filePath,
|
|
118
|
-
frond,
|
|
119
|
-
subject: `${decl.ctor.name}(${dep})`,
|
|
120
|
-
message: `${decl.ctor.name} asks for ${dep}, and ${owner} owns ${entity}. Nothing else `
|
|
121
|
-
+ `reaches an owned entity's storage — name the operation on ${owner} and ask for it: `
|
|
122
|
-
+ `constructor(private ${entity}: ${owner}) {}`,
|
|
123
|
-
});
|
|
119
|
+
if (reachesOwned(decl, dep, entity, frond, owners, refused))
|
|
124
120
|
continue;
|
|
125
|
-
}
|
|
126
121
|
if (allowed.includes(entity))
|
|
127
122
|
continue;
|
|
128
123
|
refused.push({
|
|
@@ -138,6 +133,23 @@ function refuseStorageReached(decl, frond, owners, known, refused) {
|
|
|
138
133
|
});
|
|
139
134
|
}
|
|
140
135
|
}
|
|
136
|
+
/** Whether `dep` reaches an entity an aggregate other than `decl` owns — a frame as much as a storage. */
|
|
137
|
+
function reachesOwned(decl, dep, entity, frond, owners, refused) {
|
|
138
|
+
const owner = owners.get(entity);
|
|
139
|
+
if (!owner || owner === decl.ctor.name)
|
|
140
|
+
return false;
|
|
141
|
+
refused.push({
|
|
142
|
+
severity: 'blocking',
|
|
143
|
+
code: 'aggregate-storage-reached',
|
|
144
|
+
filePath: decl.filePath,
|
|
145
|
+
frond,
|
|
146
|
+
subject: `${decl.ctor.name}(${dep})`,
|
|
147
|
+
message: `${decl.ctor.name} asks for ${dep}, and ${owner} owns ${entity}. Nothing else `
|
|
148
|
+
+ `reaches an owned entity's storage — name the operation on ${owner} and ask for it: `
|
|
149
|
+
+ `constructor(private ${entity}: ${owner}) {}`,
|
|
150
|
+
});
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
141
153
|
export function storageInUserCode(frond, owners, known, refused) {
|
|
142
154
|
const facades = [
|
|
143
155
|
...frond.handlers.map((h) => ({ ...h, kind: 'handler' })),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ownership.js","sourceRoot":"","sources":["../../src/boot/ownership.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAwB,MAAM,kCAAkC,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ownership.js","sourceRoot":"","sources":["../../src/boot/ownership.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@ import type { Diagnostic } from '../diagnostic.js';
|
|
|
3
3
|
import type { FrondDescriptor } from '../descriptor/FrondDescriptor.js';
|
|
4
4
|
/**
|
|
5
5
|
* What a constructor asks for and nothing where it is built answers — refused at boot rather than
|
|
6
|
-
* at its first call, once the extensions have risen, since `up` registers too.
|
|
6
|
+
* at its first call, once the extensions have risen, since `up` registers too. Read off what each
|
|
7
|
+
* class DECLARES, in the scope of the frond that declares it. A seam is answered by the link that
|
|
8
|
+
* wraps it, and a facade another process serves by the stand-in `answeredElsewhere` names.
|
|
7
9
|
*/
|
|
8
|
-
export declare function unregistered(container: Container, fronds: readonly FrondDescriptor[]): Diagnostic[];
|
|
10
|
+
export declare function unregistered(container: Container, fronds: readonly FrondDescriptor[], answeredElsewhere: (name: string) => boolean): Diagnostic[];
|
|
9
11
|
//# sourceMappingURL=unregistered.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unregistered.d.ts","sourceRoot":"","sources":["../../src/boot/unregistered.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"unregistered.d.ts","sourceRoot":"","sources":["../../src/boot/unregistered.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAC3C,UAAU,EAAE,CAwBd"}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
function declaredBy(fronds) {
|
|
3
|
-
const declared = new Map();
|
|
4
|
-
for (const frond of fronds) {
|
|
5
|
-
const entries = [...frond.handlers, ...frond.providers, ...frond.presenters, ...frond.collectors, ...frond.middlewares];
|
|
6
|
-
for (const { ctor, filePath } of entries)
|
|
7
|
-
declared.set(ctor, { frond: frond.name, filePath });
|
|
8
|
-
}
|
|
9
|
-
return declared;
|
|
10
|
-
}
|
|
1
|
+
import { SEAMS } from './ports.js';
|
|
11
2
|
/**
|
|
12
3
|
* What a constructor asks for and nothing where it is built answers — refused at boot rather than
|
|
13
|
-
* at its first call, once the extensions have risen, since `up` registers too.
|
|
4
|
+
* at its first call, once the extensions have risen, since `up` registers too. Read off what each
|
|
5
|
+
* class DECLARES, in the scope of the frond that declares it. A seam is answered by the link that
|
|
6
|
+
* wraps it, and a facade another process serves by the stand-in `answeredElsewhere` names.
|
|
14
7
|
*/
|
|
15
|
-
export function unregistered(container, fronds) {
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
8
|
+
export function unregistered(container, fronds, answeredElsewhere) {
|
|
9
|
+
const refused = new Map();
|
|
10
|
+
for (const frond of fronds) {
|
|
11
|
+
if (!container.has(`frond:${frond.name}`))
|
|
12
|
+
continue;
|
|
13
|
+
const scope = container.resolve(`frond:${frond.name}`);
|
|
14
|
+
const declared = [...frond.handlers, ...frond.providers, ...frond.presenters, ...frond.collectors, ...frond.middlewares];
|
|
15
|
+
for (const { ctor, deps, filePath } of declared) {
|
|
16
|
+
for (const missing of deps) {
|
|
17
|
+
if (scope.has(missing) || SEAMS.has(missing) || answeredElsewhere(missing))
|
|
18
|
+
continue;
|
|
19
|
+
if (refused.has(`${ctor.name}→${missing}`))
|
|
20
|
+
continue;
|
|
21
|
+
refused.set(`${ctor.name}→${missing}`, {
|
|
22
|
+
severity: 'blocking',
|
|
23
|
+
code: 'dependency-unregistered',
|
|
24
|
+
frond: frond.name,
|
|
25
|
+
subject: ctor.name,
|
|
26
|
+
filePath,
|
|
27
|
+
message: `${ctor.name} asks for ${missing}, and nothing in frond '${frond.name}' or above it answers that name. `
|
|
28
|
+
+ `A class of that name in a convention directory, or one extending it, would.`,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return [...refused.values()];
|
|
34
34
|
}
|
|
35
35
|
//# sourceMappingURL=unregistered.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unregistered.js","sourceRoot":"","sources":["../../src/boot/unregistered.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unregistered.js","sourceRoot":"","sources":["../../src/boot/unregistered.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAoB,EACpB,MAAkC,EAClC,iBAA4C;IAE5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC;YAAE,SAAS;QACpD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAY,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QACzH,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,QAAQ,EAAE,CAAC;YAChD,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACrF,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;oBAAE,SAAS;gBACrD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE;oBACrC,QAAQ,EAAE,UAAU;oBACpB,IAAI,EAAE,yBAAyB;oBAC/B,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,OAAO,EAAE,IAAI,CAAC,IAAI;oBAClB,QAAQ;oBACR,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,aAAa,OAAO,2BAA2B,KAAK,CAAC,IAAI,mCAAmC;0BAC7G,6EAA6E;iBAClF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/contract.d.ts
CHANGED
|
@@ -37,6 +37,9 @@ export type { DeclaredEdge } from './wire/topology/DeclaredEdge.js';
|
|
|
37
37
|
export type { DeclaredFrond } from './wire/topology/DeclaredFrond.js';
|
|
38
38
|
export type { DeclaredTopology } from './wire/topology/DeclaredTopology.js';
|
|
39
39
|
export type { Edge } from './wire/topology/Edge.js';
|
|
40
|
+
export { OPERATION_KINDS, type OperationKind } from './wire/OperationKind.js';
|
|
41
|
+
export { CARDINALITIES, type Cardinality } from './wire/Cardinality.js';
|
|
42
|
+
export { PLACEMENTS, type Placement } from './wire/Placement.js';
|
|
40
43
|
export type { FrondPlacement } from './wire/topology/FrondPlacement.js';
|
|
41
44
|
export type { TopologyReport } from './wire/topology/TopologyReport.js';
|
|
42
45
|
export { assertIdentityCard } from './wire/card/IdentityCard.js';
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG1E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACtE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGnG,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,mCAAmC;AACnC,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,YAAY,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,6DAA6D;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACpC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,EAC/C,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACjC,SAAS,CAOX"}
|
package/dist/contract.js
CHANGED
|
@@ -25,6 +25,9 @@ export { pageOf, asPage } from './wire/Page.js';
|
|
|
25
25
|
export { driftOf, agrees, explain } from './wire/drift.js';
|
|
26
26
|
/** What `rpc.discover` answers. */
|
|
27
27
|
export { refusalsOf } from './wire/refusals.js';
|
|
28
|
+
export { OPERATION_KINDS } from './wire/OperationKind.js';
|
|
29
|
+
export { CARDINALITIES } from './wire/Cardinality.js';
|
|
30
|
+
export { PLACEMENTS } from './wire/Placement.js';
|
|
28
31
|
export { assertIdentityCard } from './wire/card/IdentityCard.js';
|
|
29
32
|
export { decoded } from './dispatch/decoded.js';
|
|
30
33
|
/** The key a class name is filed under — 'Post' → 'post'. */
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,qFAAqF;AACrF,uEAAuE;AACvE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEtE,mFAAmF;AACnF,sFAAsF;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnG,uFAAuF;AACvF,gEAAgE;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAa,MAAM,gBAAgB,CAAC;AAE3D,wFAAwF;AACxF,8EAA8E;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG3D,mCAAmC;AACnC,OAAO,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,qFAAqF;AACrF,uEAAuE;AACvE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEtE,mFAAmF;AACnF,sFAAsF;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnG,uFAAuF;AACvF,gEAAgE;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAa,MAAM,gBAAgB,CAAC;AAE3D,wFAAwF;AACxF,8EAA8E;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG3D,mCAAmC;AACnC,OAAO,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAgBhE,OAAO,EAAE,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAoB,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAkB,MAAM,qBAAqB,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,6DAA6D;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQ7C;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,MAAoC,EACpC,SAA+C,EAC/C,KAAkC;IAElC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GACjB,OAAO,SAAS,KAAK,QAAQ;QAC3B,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAE,MAA2B,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC;QACpF,CAAC,CAAC,CAAC,MAAmB,EAAE,SAAS,CAAC,CAAC;IAEvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
+
import type { Subject } from './Subject.js';
|
|
1
2
|
/** A discovered collector (resolves handler input params from invocation context). */
|
|
2
|
-
export interface CollectorEntry {
|
|
3
|
+
export interface CollectorEntry extends Subject {
|
|
3
4
|
/** Registration key of the TYPE this collector resolves — 'user', 'ability'. */
|
|
4
5
|
typeName: string;
|
|
5
|
-
/** The collector class. */
|
|
6
|
-
ctor: new (...args: never[]) => unknown;
|
|
7
|
-
/** Constructor dependency type names (from AST scan). */
|
|
8
|
-
deps: string[];
|
|
9
|
-
/** Absolute file path (for debugging). */
|
|
10
|
-
filePath: string;
|
|
11
6
|
}
|
|
12
7
|
//# sourceMappingURL=CollectorEntry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollectorEntry.d.ts","sourceRoot":"","sources":["../../src/descriptor/CollectorEntry.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"CollectorEntry.d.ts","sourceRoot":"","sources":["../../src/descriptor/CollectorEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,sFAAsF;AACtF,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { OperationContract } from '../wire/OperationContract.js';
|
|
2
|
+
import type { OperationOverride } from '../OperationOverride.js';
|
|
3
|
+
import type { FrondConfig } from '../FrondConfig.js';
|
|
2
4
|
import type { ProviderEntry } from './ProviderEntry.js';
|
|
3
5
|
import type { EntityEntry } from './EntityEntry.js';
|
|
4
6
|
import type { HandlerEntry } from './HandlerEntry.js';
|
|
@@ -13,7 +15,7 @@ import type { ExtensionEntry } from './ExtensionEntry.js';
|
|
|
13
15
|
* where nobody wrote it down — a statement is read as code, and code can say it.
|
|
14
16
|
*/
|
|
15
17
|
export declare const nameOf: (provider: ProviderEntry) => string;
|
|
16
|
-
export interface FrondDescriptor {
|
|
18
|
+
export interface FrondDescriptor extends Pick<FrondConfig, 'pipes' | 'surfaces' | 'reads'> {
|
|
17
19
|
name: string;
|
|
18
20
|
source: FrondSource;
|
|
19
21
|
providers: ProviderEntry[];
|
|
@@ -39,30 +41,10 @@ export interface FrondDescriptor {
|
|
|
39
41
|
* flat, and a directory says nothing about who shares its code.
|
|
40
42
|
*/
|
|
41
43
|
extends?: string;
|
|
42
|
-
/** The ops that finish a fact, in order — see `FrondConfig.pipes`. */
|
|
43
|
-
pipes?: Record<string, string[]>;
|
|
44
|
-
/**
|
|
45
|
-
* Per-surface entity lists from frond.config.ts (e.g. { graphql: ['Post'], rest: ['Post',
|
|
46
|
-
* 'Author'] }).
|
|
47
|
-
*/
|
|
48
|
-
surfaces?: Record<string, string[]>;
|
|
49
|
-
/** Entities this frond may read across sources — see `FrondConfig.reads`. */
|
|
50
|
-
reads?: string[];
|
|
51
44
|
/** Per-operation overrides from frond.config.ts. */
|
|
52
|
-
operationsOverrides?: Record<string, OperationContract & {
|
|
53
|
-
|
|
54
|
-
/** Class name to resolve from DI (overrides default `{Entity}Handler` lookup). */
|
|
45
|
+
operationsOverrides?: Record<string, OperationContract & Omit<OperationOverride, 'handler'> & {
|
|
46
|
+
/** The handler CLASS of `frond.config.ts`, by the name DI resolves it under. */
|
|
55
47
|
handlerName?: string;
|
|
56
|
-
/** Method name on the resolved handler (defaults to op name). */
|
|
57
|
-
method?: string;
|
|
58
|
-
/** The GraphQL root field this op answers to — read by `adapter/graphql`. */
|
|
59
|
-
graphql?: string;
|
|
60
|
-
/** Where it answers over REST — read by `adapter/rest`, the dual of `graphql`. */
|
|
61
|
-
rest?: {
|
|
62
|
-
method?: string;
|
|
63
|
-
path?: string;
|
|
64
|
-
status?: number;
|
|
65
|
-
};
|
|
66
48
|
}>;
|
|
67
49
|
}
|
|
68
50
|
/** Recognized by its FORM, like everything a config holds: a name and the lists every frond carries. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrondDescriptor.d.ts","sourceRoot":"","sources":["../../src/descriptor/FrondDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,UAAU,aAAa,KAAG,MAA6C,CAAC;AAE/F,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"FrondDescriptor.d.ts","sourceRoot":"","sources":["../../src/descriptor/FrondDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,UAAU,aAAa,KAAG,MAA6C,CAAC;AAE/F,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,0FAA0F;IAC1F,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,GAAG;QAC5F,gFAAgF;QAChF,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,wGAAwG;AACxG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAI1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrondDescriptor.js","sourceRoot":"","sources":["../../src/descriptor/FrondDescriptor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FrondDescriptor.js","sourceRoot":"","sources":["../../src/descriptor/FrondDescriptor.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,QAAuB,EAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAmC/F,wGAAwG;AACxG,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,KAAK,GAAG,KAA+D,CAAC;IAE9E,OAAO,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC3G,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { Subject } from './Subject.js';
|
|
1
2
|
import type { SchemaView } from '@fougere/schema';
|
|
2
3
|
import type { OperationsMap } from '../wire/OperationsMap.js';
|
|
3
4
|
/** A discovered handler (controls what a service exposes). */
|
|
4
|
-
export interface HandlerEntry {
|
|
5
|
+
export interface HandlerEntry extends Subject {
|
|
5
6
|
/** Registration key (e.g. 'postHandler'). */
|
|
6
7
|
name: string;
|
|
7
8
|
/**
|
|
@@ -9,14 +10,8 @@ export interface HandlerEntry {
|
|
|
9
10
|
* `post`).
|
|
10
11
|
*/
|
|
11
12
|
address: string;
|
|
12
|
-
/** The handler class. */
|
|
13
|
-
ctor: new (...args: never[]) => unknown;
|
|
14
13
|
/** All operations with full signatures for binding. */
|
|
15
14
|
operations: OperationsMap;
|
|
16
|
-
/** Constructor dependency type names (from AST scan). */
|
|
17
|
-
deps: string[];
|
|
18
|
-
/** Absolute file path (for debugging). */
|
|
19
|
-
filePath: string;
|
|
20
15
|
/** Whether this handler is part of the frond's public contract. */
|
|
21
16
|
exposed?: boolean;
|
|
22
17
|
/** Output schema override — when Crud(Entity, Output), restricts storage output. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandlerEntry.d.ts","sourceRoot":"","sources":["../../src/descriptor/HandlerEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,8DAA8D;AAC9D,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"HandlerEntry.d.ts","sourceRoot":"","sources":["../../src/descriptor/HandlerEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,8DAA8D;AAC9D,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,UAAU,EAAE,aAAa,CAAC;IAC1B,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oFAAoF;IACpF,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Subject } from './Subject.js';
|
|
1
2
|
/**
|
|
2
3
|
* A discovered middleware — a class declaring `around(ctx, next)`, which runs before and after
|
|
3
4
|
* every operation of its frond, and of the fronds that inherit from it.
|
|
@@ -5,14 +6,8 @@
|
|
|
5
6
|
* How far it reaches is not written here: it is where the frond sits in `FougereConfig.fronds`,
|
|
6
7
|
* and stating it twice would put one decision in two places.
|
|
7
8
|
*/
|
|
8
|
-
export interface MiddlewareEntry {
|
|
9
|
+
export interface MiddlewareEntry extends Subject {
|
|
9
10
|
/** Class name — the key it registers under in its frond's scope. */
|
|
10
11
|
name: string;
|
|
11
|
-
/** The middleware class. */
|
|
12
|
-
ctor: new (...args: never[]) => unknown;
|
|
13
|
-
/** Constructor dependency type names (from AST scan). */
|
|
14
|
-
deps: string[];
|
|
15
|
-
/** Absolute file path (for debugging). */
|
|
16
|
-
filePath: string;
|
|
17
12
|
}
|
|
18
13
|
//# sourceMappingURL=MiddlewareEntry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiddlewareEntry.d.ts","sourceRoot":"","sources":["../../src/descriptor/MiddlewareEntry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"MiddlewareEntry.d.ts","sourceRoot":"","sources":["../../src/descriptor/MiddlewareEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C;;;;;;GAMG;AACH,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
+
import type { Subject } from './Subject.js';
|
|
1
2
|
import type { PresenterViews } from '../prefab/presenter.js';
|
|
2
3
|
import type { PresenterFieldMeta } from './PresenterFieldMeta.js';
|
|
3
4
|
/** A discovered presenter (computed fields for an entity's output). */
|
|
4
|
-
export interface PresenterEntry {
|
|
5
|
+
export interface PresenterEntry extends Subject {
|
|
5
6
|
/** Entity name this presenter enriches (e.g. 'post' from PostPresenter). */
|
|
6
7
|
entityName: string;
|
|
7
|
-
/** The presenter class. */
|
|
8
|
-
ctor: new (...args: never[]) => unknown;
|
|
9
8
|
/** Computed field names (method names on prototype). */
|
|
10
9
|
fields: string[];
|
|
11
10
|
/** Per-field type metadata (inferred from source via parser). */
|
|
@@ -15,9 +14,5 @@ export interface PresenterEntry {
|
|
|
15
14
|
* items: [OrderItemView] })`).
|
|
16
15
|
*/
|
|
17
16
|
views?: PresenterViews;
|
|
18
|
-
/** Constructor dependency type names (from AST scan). */
|
|
19
|
-
deps: string[];
|
|
20
|
-
/** Absolute file path (for debugging). */
|
|
21
|
-
filePath: string;
|
|
22
17
|
}
|
|
23
18
|
//# sourceMappingURL=PresenterEntry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresenterEntry.d.ts","sourceRoot":"","sources":["../../src/descriptor/PresenterEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,uEAAuE;AACvE,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"PresenterEntry.d.ts","sourceRoot":"","sources":["../../src/descriptor/PresenterEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,uEAAuE;AACvE,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iEAAiE;IACjE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { Subject } from './Subject.js';
|
|
1
2
|
/** A discovered provider — a class under `services/` or `repositories/`, injected by type. */
|
|
2
|
-
export interface ProviderEntry {
|
|
3
|
+
export interface ProviderEntry extends Subject {
|
|
3
4
|
/**
|
|
4
5
|
* The container key — the class name as the SOURCE spells it.
|
|
5
6
|
*
|
|
@@ -9,12 +10,6 @@ export interface ProviderEntry {
|
|
|
9
10
|
* A name a tool may rewrite is written down, for the same reason `deps` is.
|
|
10
11
|
*/
|
|
11
12
|
name?: string;
|
|
12
|
-
/** The class constructor (default export of the file). */
|
|
13
|
-
ctor: new (...args: never[]) => unknown;
|
|
14
|
-
/** Constructor dependency type names (from AST scan). */
|
|
15
|
-
deps: string[];
|
|
16
|
-
/** Absolute file path (for debugging). */
|
|
17
|
-
filePath: string;
|
|
18
13
|
/**
|
|
19
14
|
* What the source said and the runtime erased: a port, which a class below answers for and
|
|
20
15
|
* nothing may instantiate — never a candidate for the ports above it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderEntry.d.ts","sourceRoot":"","sources":["../../src/descriptor/ProviderEntry.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ProviderEntry.d.ts","sourceRoot":"","sources":["../../src/descriptor/ProviderEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,8FAA8F;AAC9F,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Ctor } from '../Ctor.js';
|
|
2
|
+
/** A class the boot builds — what its constructor asks for, and where the scan found it. */
|
|
3
|
+
export interface Subject {
|
|
4
|
+
ctor: Ctor;
|
|
5
|
+
/** Constructor dependency type names (from AST scan). */
|
|
6
|
+
deps: string[];
|
|
7
|
+
/** Absolute file path (for debugging). */
|
|
8
|
+
filePath: string;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=Subject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subject.d.ts","sourceRoot":"","sources":["../../src/descriptor/Subject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,4FAA4F;AAC5F,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,yDAAyD;IACzD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subject.js","sourceRoot":"","sources":["../../src/descriptor/Subject.ts"],"names":[],"mappings":""}
|
|
@@ -20,6 +20,7 @@ export { type OperationsMap } from '../wire/OperationsMap.js';
|
|
|
20
20
|
export { type Param } from '../wire/Param.js';
|
|
21
21
|
export { type TypeRef } from '../wire/TypeRef.js';
|
|
22
22
|
export { computeBindingPlan, type BindingPlan } from '../wire/binding.js';
|
|
23
|
+
export { opsOf } from '../prefab/opsOf.js';
|
|
23
24
|
export type { Signature } from '../wire/Signature.js';
|
|
24
25
|
export { awaitKeyOf, emitKeyOf } from '../wire/Emit.js';
|
|
25
26
|
export { addressOf } from '../wire/Facade.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/descriptor/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAG9E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/descriptor/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAG9E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/descriptor/index.js
CHANGED
|
@@ -17,6 +17,7 @@ export * from './FrondDescriptor.js';
|
|
|
17
17
|
export { Fronds } from './Fronds.js';
|
|
18
18
|
export { cardinalityOf } from '../wire/OperationContract.js';
|
|
19
19
|
export { computeBindingPlan } from '../wire/binding.js';
|
|
20
|
+
export { opsOf } from '../prefab/opsOf.js';
|
|
20
21
|
export { awaitKeyOf, emitKeyOf } from '../wire/Emit.js';
|
|
21
22
|
export { addressOf } from '../wire/Facade.js';
|
|
22
23
|
export { storageKeyOf } from '../storage/Storage.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/descriptor/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,aAAa,EAA0B,MAAM,8BAA8B,CAAC;AAIrF,OAAO,EAAE,kBAAkB,EAAoB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/descriptor/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,aAAa,EAA0B,MAAM,8BAA8B,CAAC;AAIrF,OAAO,EAAE,kBAAkB,EAAoB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE9E,4FAA4F;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/diagnostic.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BootRefusal } from './BootRefusal.js';
|
|
1
2
|
/**
|
|
2
3
|
* One thing that does not hold, in the terms of whoever has to fix it — raised by the scan,
|
|
3
4
|
* by a boot rule, or by `fougere check`, which is why it belongs to no phase.
|
|
@@ -29,5 +30,5 @@ export interface Diagnostic {
|
|
|
29
30
|
* Every blocking diagnostic in ONE refusal, so a boot names all of them rather than the
|
|
30
31
|
* first — the shape `fougere check` renders, read back by whoever has to fix it.
|
|
31
32
|
*/
|
|
32
|
-
export declare function refusalOf(diagnostics: readonly Diagnostic[], what: string):
|
|
33
|
+
export declare function refusalOf(diagnostics: readonly Diagnostic[], what: string): BootRefusal | undefined;
|
|
33
34
|
//# sourceMappingURL=diagnostic.d.ts.map
|
package/dist/diagnostic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAQnG"}
|
package/dist/diagnostic.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BootRefusal } from './BootRefusal.js';
|
|
1
2
|
/**
|
|
2
3
|
* Every blocking diagnostic in ONE refusal, so a boot names all of them rather than the
|
|
3
4
|
* first — the shape `fougere check` renders, read back by whoever has to fix it.
|
|
@@ -7,6 +8,6 @@ export function refusalOf(diagnostics, what) {
|
|
|
7
8
|
if (blocking.length === 0)
|
|
8
9
|
return undefined;
|
|
9
10
|
const lines = blocking.map((one) => ` [${one.code}]${one.subject ? ` ${one.subject}` : ''}\n ${one.message}\n ${one.filePath}`);
|
|
10
|
-
return new
|
|
11
|
+
return new BootRefusal(`Fougere boot refused: ${blocking.length} ${what}:\n${lines.join('\n')}`);
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=diagnostic.js.map
|
package/dist/diagnostic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA8B/C;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,WAAkC,EAAE,IAAY;IACxE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;IAC1E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACjC,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,OAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAErG,OAAO,IAAI,WAAW,CAAC,yBAAyB,QAAQ,CAAC,MAAM,IAAI,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnG,CAAC"}
|
|
@@ -1,16 +1,28 @@
|
|
|
1
|
+
import { type SchemaView } from '@fougere/schema';
|
|
1
2
|
import type { InvocationContext } from '../wire/InvocationContext.js';
|
|
2
3
|
import type { BindingPlan } from '../wire/binding.js';
|
|
3
4
|
import type { CollectorLookup } from './CollectorLookup.js';
|
|
5
|
+
import type { EntityLookup } from './EntityLookup.js';
|
|
4
6
|
/** Resolves an operation's declared binding plan against one invocation. */
|
|
5
7
|
export declare class ArgumentResolver {
|
|
6
8
|
private readonly collectors?;
|
|
7
|
-
|
|
9
|
+
private readonly entities?;
|
|
10
|
+
constructor(collectors?: CollectorLookup | undefined, entities?: EntityLookup | undefined);
|
|
8
11
|
resolve(plan: BindingPlan, ctx: InvocationContext): Promise<unknown[]>;
|
|
12
|
+
/**
|
|
13
|
+
* The arguments code wrote, judged where a door would have judged them: the input against
|
|
14
|
+
* the op's view, a value a collector would have produced through that collector's entity —
|
|
15
|
+
* which also puts back a `Date` that crossed a wire as text. Nothing is collected: what the
|
|
16
|
+
* caller left out stays out.
|
|
17
|
+
*/
|
|
18
|
+
given(plan: BindingPlan, input: SchemaView | undefined, ctx: InvocationContext): unknown[];
|
|
9
19
|
/**
|
|
10
20
|
* A value the caller typed in a path or a query string. `null` is a value, not a miss: only
|
|
11
21
|
* `undefined` means absent, so `T | null` stays apart from `T | undefined`.
|
|
12
22
|
*/
|
|
13
23
|
private static param;
|
|
24
|
+
/** `age: Sample['age']` obeys what `Sample.age` declares, after the query string was read. */
|
|
25
|
+
private judged;
|
|
14
26
|
private static number;
|
|
15
27
|
private static boolean;
|
|
16
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArgumentResolver.d.ts","sourceRoot":"","sources":["../../src/dispatch/ArgumentResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ArgumentResolver.d.ts","sourceRoot":"","sources":["../../src/dispatch/ArgumentResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtD,4EAA4E;AAC5E,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBADT,UAAU,CAAC,EAAE,eAAe,YAAA,EAC5B,QAAQ,CAAC,EAAE,YAAY,YAAA;IAGpC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA6C5E;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,EAAE;IA2B1F;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,KAAK;IAiBpB,8FAA8F;IAC9F,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,MAAM,CAAC,MAAM;IAQrB,OAAO,CAAC,MAAM,CAAC,OAAO;CAMvB"}
|