@fougere/core 0.1.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/LICENSE +21 -0
- package/README.md +21 -0
- package/dist/binding.d.ts +63 -0
- package/dist/binding.d.ts.map +1 -0
- package/dist/binding.js +107 -0
- package/dist/binding.js.map +1 -0
- package/dist/boot.d.ts +38 -0
- package/dist/boot.d.ts.map +1 -0
- package/dist/boot.js +53 -0
- package/dist/boot.js.map +1 -0
- package/dist/bootstrap.d.ts +4 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +825 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/builtins/config.d.ts +4 -0
- package/dist/builtins/config.d.ts.map +1 -0
- package/dist/builtins/config.js +6 -0
- package/dist/builtins/config.js.map +1 -0
- package/dist/builtins/logger.d.ts +28 -0
- package/dist/builtins/logger.d.ts.map +1 -0
- package/dist/builtins/logger.js +76 -0
- package/dist/builtins/logger.js.map +1 -0
- package/dist/call.d.ts +172 -0
- package/dist/call.d.ts.map +1 -0
- package/dist/call.js +209 -0
- package/dist/call.js.map +1 -0
- package/dist/collector.d.ts +28 -0
- package/dist/collector.d.ts.map +1 -0
- package/dist/collector.js +32 -0
- package/dist/collector.js.map +1 -0
- package/dist/config-loader.d.ts +59 -0
- package/dist/config-loader.d.ts.map +1 -0
- package/dist/config-loader.js +97 -0
- package/dist/config-loader.js.map +1 -0
- package/dist/contract.d.ts +43 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +29 -0
- package/dist/contract.js.map +1 -0
- package/dist/crud.d.ts +61 -0
- package/dist/crud.d.ts.map +1 -0
- package/dist/crud.js +85 -0
- package/dist/crud.js.map +1 -0
- package/dist/define.d.ts +8 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/define.js +9 -0
- package/dist/define.js.map +1 -0
- package/dist/egress.d.ts +78 -0
- package/dist/egress.d.ts.map +1 -0
- package/dist/egress.js +185 -0
- package/dist/egress.js.map +1 -0
- package/dist/emit.d.ts +51 -0
- package/dist/emit.d.ts.map +1 -0
- package/dist/emit.js +57 -0
- package/dist/emit.js.map +1 -0
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +74 -0
- package/dist/errors.js.map +1 -0
- package/dist/frond-config.d.ts +80 -0
- package/dist/frond-config.d.ts.map +1 -0
- package/dist/frond-config.js +32 -0
- package/dist/frond-config.js.map +1 -0
- package/dist/graph.d.ts +33 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/graph.js +142 -0
- package/dist/graph.js.map +1 -0
- package/dist/handler-parser.d.ts +82 -0
- package/dist/handler-parser.d.ts.map +1 -0
- package/dist/handler-parser.js +505 -0
- package/dist/handler-parser.js.map +1 -0
- package/dist/imports.d.ts +22 -0
- package/dist/imports.d.ts.map +1 -0
- package/dist/imports.js +80 -0
- package/dist/imports.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/invocation.d.ts +20 -0
- package/dist/invocation.d.ts.map +1 -0
- package/dist/invocation.js +15 -0
- package/dist/invocation.js.map +1 -0
- package/dist/middleware/error-handler.d.ts +15 -0
- package/dist/middleware/error-handler.d.ts.map +1 -0
- package/dist/middleware/error-handler.js +29 -0
- package/dist/middleware/error-handler.js.map +1 -0
- package/dist/middleware/logger.d.ts +14 -0
- package/dist/middleware/logger.d.ts.map +1 -0
- package/dist/middleware/logger.js +25 -0
- package/dist/middleware/logger.js.map +1 -0
- package/dist/middleware.d.ts +75 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +89 -0
- package/dist/middleware.js.map +1 -0
- package/dist/operation.d.ts +87 -0
- package/dist/operation.d.ts.map +1 -0
- package/dist/operation.js +95 -0
- package/dist/operation.js.map +1 -0
- package/dist/orm.d.ts +96 -0
- package/dist/orm.d.ts.map +1 -0
- package/dist/orm.js +33 -0
- package/dist/orm.js.map +1 -0
- package/dist/presenter.d.ts +63 -0
- package/dist/presenter.d.ts.map +1 -0
- package/dist/presenter.js +72 -0
- package/dist/presenter.js.map +1 -0
- package/dist/remote.d.ts +48 -0
- package/dist/remote.d.ts.map +1 -0
- package/dist/remote.js +135 -0
- package/dist/remote.js.map +1 -0
- package/dist/repository.d.ts +55 -0
- package/dist/repository.d.ts.map +1 -0
- package/dist/repository.js +26 -0
- package/dist/repository.js.map +1 -0
- package/dist/scan-cache.d.ts +10 -0
- package/dist/scan-cache.d.ts.map +1 -0
- package/dist/scan-cache.js +92 -0
- package/dist/scan-cache.js.map +1 -0
- package/dist/scanner.d.ts +34 -0
- package/dist/scanner.d.ts.map +1 -0
- package/dist/scanner.js +595 -0
- package/dist/scanner.js.map +1 -0
- package/dist/seed.d.ts +28 -0
- package/dist/seed.d.ts.map +1 -0
- package/dist/seed.js +110 -0
- package/dist/seed.js.map +1 -0
- package/dist/types.d.ts +387 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/verify.d.ts +57 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +147 -0
- package/dist/verify.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/builtins/config.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM;IACjB,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;CAG9C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/builtins/config.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACjB,GAAG,CAAa,GAAW,EAAE,QAAY;QACvC,OAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAO,IAAK,QAAc,CAAC;IACpD,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fougere Logger — structured, colored, multi-runtime.
|
|
3
|
+
*
|
|
4
|
+
* Works on Node, Bun, Deno, Cloudflare Workers (console-based, no native bindings).
|
|
5
|
+
*/
|
|
6
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
|
7
|
+
export interface LoggerOptions {
|
|
8
|
+
/** Minimum log level. Default: 'info'. */
|
|
9
|
+
level?: LogLevel;
|
|
10
|
+
/** Logger name / prefix. */
|
|
11
|
+
name?: string;
|
|
12
|
+
/** Force color on/off. Auto-detected by default. */
|
|
13
|
+
color?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare class Logger {
|
|
16
|
+
private level;
|
|
17
|
+
private name;
|
|
18
|
+
private color;
|
|
19
|
+
constructor(prefix?: string, options?: Omit<LoggerOptions, 'name'>);
|
|
20
|
+
/** Create a child logger with a sub-name. */
|
|
21
|
+
child(name: string): Logger;
|
|
22
|
+
debug(msg: string, ...args: unknown[]): void;
|
|
23
|
+
info(msg: string, ...args: unknown[]): void;
|
|
24
|
+
warn(msg: string, ...args: unknown[]): void;
|
|
25
|
+
error(msg: string, ...args: unknown[]): void;
|
|
26
|
+
private log;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/builtins/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAyCtE,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAU;gBAEX,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IAMlE,6CAA6C;IAC7C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAK3B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IACrC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IACpC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IACpC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAErC,OAAO,CAAC,GAAG;CAeZ"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fougere Logger — structured, colored, multi-runtime.
|
|
3
|
+
*
|
|
4
|
+
* Works on Node, Bun, Deno, Cloudflare Workers (console-based, no native bindings).
|
|
5
|
+
*/
|
|
6
|
+
const LEVELS = { debug: 0, info: 1, warn: 2, error: 3, silent: 4 };
|
|
7
|
+
const COLORS = {
|
|
8
|
+
reset: '\x1b[0m',
|
|
9
|
+
dim: '\x1b[2m',
|
|
10
|
+
bold: '\x1b[1m',
|
|
11
|
+
green: '\x1b[32m',
|
|
12
|
+
yellow: '\x1b[33m',
|
|
13
|
+
red: '\x1b[31m',
|
|
14
|
+
cyan: '\x1b[36m',
|
|
15
|
+
magenta: '\x1b[35m',
|
|
16
|
+
gray: '\x1b[90m',
|
|
17
|
+
};
|
|
18
|
+
const LEVEL_STYLE = {
|
|
19
|
+
debug: { badge: 'DBG', color: 'gray' },
|
|
20
|
+
info: { badge: 'INF', color: 'green' },
|
|
21
|
+
warn: { badge: 'WRN', color: 'yellow' },
|
|
22
|
+
error: { badge: 'ERR', color: 'red' },
|
|
23
|
+
};
|
|
24
|
+
function supportsColor() {
|
|
25
|
+
if (typeof process !== 'undefined') {
|
|
26
|
+
if (process.env.NO_COLOR)
|
|
27
|
+
return false;
|
|
28
|
+
if (process.env.FORCE_COLOR === '1')
|
|
29
|
+
return true;
|
|
30
|
+
return process.stdout?.isTTY === true;
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
function formatTime() {
|
|
35
|
+
const d = new Date();
|
|
36
|
+
const h = String(d.getHours()).padStart(2, '0');
|
|
37
|
+
const m = String(d.getMinutes()).padStart(2, '0');
|
|
38
|
+
const s = String(d.getSeconds()).padStart(2, '0');
|
|
39
|
+
const ms = String(d.getMilliseconds()).padStart(3, '0');
|
|
40
|
+
return `${h}:${m}:${s}.${ms}`;
|
|
41
|
+
}
|
|
42
|
+
export class Logger {
|
|
43
|
+
level;
|
|
44
|
+
name;
|
|
45
|
+
color;
|
|
46
|
+
constructor(prefix, options) {
|
|
47
|
+
this.name = prefix ?? 'app';
|
|
48
|
+
this.level = LEVELS[options?.level ?? 'info'];
|
|
49
|
+
this.color = options?.color ?? supportsColor();
|
|
50
|
+
}
|
|
51
|
+
/** Create a child logger with a sub-name. */
|
|
52
|
+
child(name) {
|
|
53
|
+
const level = (Object.entries(LEVELS).find(([, v]) => v === this.level)?.[0] ?? 'info');
|
|
54
|
+
return new Logger(`${this.name}:${name}`, { level, color: this.color });
|
|
55
|
+
}
|
|
56
|
+
debug(msg, ...args) { this.log('debug', msg, args); }
|
|
57
|
+
info(msg, ...args) { this.log('info', msg, args); }
|
|
58
|
+
warn(msg, ...args) { this.log('warn', msg, args); }
|
|
59
|
+
error(msg, ...args) { this.log('error', msg, args); }
|
|
60
|
+
log(level, msg, args) {
|
|
61
|
+
if (LEVELS[level] < this.level)
|
|
62
|
+
return;
|
|
63
|
+
const style = LEVEL_STYLE[level];
|
|
64
|
+
const time = formatTime();
|
|
65
|
+
const method = level === 'error' ? 'error' : level === 'warn' ? 'warn' : 'log';
|
|
66
|
+
if (this.color) {
|
|
67
|
+
const c = COLORS[style.color];
|
|
68
|
+
const prefix = `${COLORS.dim}${time}${COLORS.reset} ${c}${COLORS.bold}${style.badge}${COLORS.reset} ${COLORS.magenta}${this.name}${COLORS.reset}`;
|
|
69
|
+
console[method](prefix, msg, ...args);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
console[method](`${time} ${style.badge} [${this.name}]`, msg, ...args);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/builtins/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/call.d.ts
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Call contract — a frond call is a value.
|
|
3
|
+
*
|
|
4
|
+
* (frond, entity, op, invocation) → result, or a thrown FougereError.
|
|
5
|
+
* A transport is a function that executes this call elsewhere; the local
|
|
6
|
+
* runner below is the reference realization. Transports move the value,
|
|
7
|
+
* they never reshape it.
|
|
8
|
+
*/
|
|
9
|
+
import { type SchemaDescriptor } from '@fougere/schema';
|
|
10
|
+
import type { InvocationContext } from './invocation.js';
|
|
11
|
+
import type { App } from './types.js';
|
|
12
|
+
/** Target of a call — which façade operation, wherever it lives. */
|
|
13
|
+
export interface FrondCall {
|
|
14
|
+
/** Frond name, when the caller knows it. Routing hint only. */
|
|
15
|
+
frond?: string;
|
|
16
|
+
/** Entity registration key (e.g. 'product'). */
|
|
17
|
+
entity: string;
|
|
18
|
+
/** Façade operation name (e.g. 'findById', 'search'). */
|
|
19
|
+
op: string;
|
|
20
|
+
}
|
|
21
|
+
/** A transport executes a call somewhere else. Failures surface as thrown FougereError. */
|
|
22
|
+
export type Transport = (call: FrondCall, invocation: InvocationContext) => Promise<unknown>;
|
|
23
|
+
/** Reserved namespace — calls the runner answers itself, never a façade. */
|
|
24
|
+
export declare const RPC_ENTITY = "rpc";
|
|
25
|
+
/**
|
|
26
|
+
* One operation, as a stranger meets it — its name, what it is for, what it takes
|
|
27
|
+
* and whether it reads or writes. Everything here already existed on the contract;
|
|
28
|
+
* it just never left the process.
|
|
29
|
+
*/
|
|
30
|
+
export interface CardOp {
|
|
31
|
+
name: string;
|
|
32
|
+
/** The author's own doc sentence, when the method carries one. */
|
|
33
|
+
description?: string;
|
|
34
|
+
/** JSON Schema of what it accepts, when the contract names a view. */
|
|
35
|
+
input?: SchemaDescriptor;
|
|
36
|
+
/** JSON Schema of what it emits, when the contract names one. */
|
|
37
|
+
output?: SchemaDescriptor;
|
|
38
|
+
/** `query` reads, `command` writes — the same call REST turns into GET vs POST. */
|
|
39
|
+
kind: 'query' | 'command';
|
|
40
|
+
/**
|
|
41
|
+
* How much `output` describes: one row, maybe one, many, a page, or nothing shaped.
|
|
42
|
+
* `output` alone is the shape of a ROW, so a consumer generating a signature from
|
|
43
|
+
* this card would otherwise have to guess — and `list` returning a page rather than
|
|
44
|
+
* an array is exactly the guess it would get wrong.
|
|
45
|
+
*/
|
|
46
|
+
cardinality?: 'one' | 'maybe' | 'many' | 'page' | 'none';
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* What an app hosts — the wire projection of its scanned fronds.
|
|
50
|
+
*
|
|
51
|
+
* Two lists per frond, and they are duals: **what you may call**, and **what you will
|
|
52
|
+
* receive**. A door is entered from outside; a fact leaves on its own.
|
|
53
|
+
*
|
|
54
|
+
* `doors` was called `entities` and the name lied: an entry is an ADDRESS, and the shape
|
|
55
|
+
* behind it is optional (`facadeKeyOf` builds its key from a handler's name, which need not
|
|
56
|
+
* be an entity's). The lie cost something real — `fougere sync` demanded a descriptor on
|
|
57
|
+
* every entry and refused whole cards over a health check.
|
|
58
|
+
*/
|
|
59
|
+
export interface IdentityCard {
|
|
60
|
+
fronds: Array<{
|
|
61
|
+
name: string;
|
|
62
|
+
doors: Array<{
|
|
63
|
+
name: string;
|
|
64
|
+
ops: CardOp[];
|
|
65
|
+
/**
|
|
66
|
+
* The shape stored under this name — **absent when nothing is**. A handler may
|
|
67
|
+
* carry no entity (`bootstrap`: *pointing at nothing is legal*), and a door with
|
|
68
|
+
* no rows behind it is ordinary: a health check, a computation, a search across
|
|
69
|
+
* several shapes. A reader that needs the shape must say what it does without one.
|
|
70
|
+
*/
|
|
71
|
+
schema?: SchemaDescriptor;
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* The facts this frond ANNOUNCES — one entry per `Emit<T>` its handlers inject.
|
|
75
|
+
*
|
|
76
|
+
* They carry no operation, which is why they cannot ride in `doors`: the rule there is
|
|
77
|
+
* *hosting means answering*, and an entity with no façade is excluded on purpose (it
|
|
78
|
+
* would publish the auth tables to anyone who asks). A fact is the opposite case —
|
|
79
|
+
* someone WROTE that it leaves, so publishing its shape is honouring a statement, not
|
|
80
|
+
* leaking one.
|
|
81
|
+
*
|
|
82
|
+
* Without this, a fact stopped at the repository boundary: `remotes:` gives the
|
|
83
|
+
* location, colocation gives the contract, and across two repositories there is no
|
|
84
|
+
* colocation. The subscriber had to hand-copy the emitter's declaration.
|
|
85
|
+
*
|
|
86
|
+
* `schema` is absent when the announced type is not a declared entity — legal (nothing
|
|
87
|
+
* requires a fact to be one) and worth saying rather than hiding: the name travels, the
|
|
88
|
+
* shape does not, and a consumer can see exactly that.
|
|
89
|
+
*/
|
|
90
|
+
facts: Array<{
|
|
91
|
+
name: string;
|
|
92
|
+
schema?: SchemaDescriptor;
|
|
93
|
+
}>;
|
|
94
|
+
}>;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* The door built in front of a handler — the framework's second port, after `EntityOrm`.
|
|
98
|
+
*
|
|
99
|
+
* `Facade<PostHandler>` is what a neighbouring frond injects. It names what ARRIVES
|
|
100
|
+
* rather than what is written: never the handler (nobody injects it, and its methods take
|
|
101
|
+
* positional arguments), but the door, whose every op takes the invocation and whose
|
|
102
|
+
* implementation is the local façade or a doublure. A signature therefore says nothing
|
|
103
|
+
* about where the other frond runs, which is the whole point.
|
|
104
|
+
*
|
|
105
|
+
* `keyof T` is the right set by construction, not by approximation: the scan skips
|
|
106
|
+
* `private` and `protected` (`handler-parser.ts`) because "TypeScript already has the
|
|
107
|
+
* word for it", so a handler's public methods ARE its operations — and `keyof` excludes
|
|
108
|
+
* the rest for the same reason.
|
|
109
|
+
*/
|
|
110
|
+
export type Facade<T> = {
|
|
111
|
+
[K in keyof T]: T[K] extends (...args: never[]) => infer R ? (invocation?: InvocationContext) => R : never;
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* The container key of a façade — THE one place that spells the format.
|
|
115
|
+
*
|
|
116
|
+
* A surface is a named audience, and it is a key: `handlers/public/PostHandler.ts`
|
|
117
|
+
* registers `public:postHandler` next to the default `postHandler`. The default
|
|
118
|
+
* surface is the empty key, so callers that know nothing about surfaces keep
|
|
119
|
+
* designating exactly what they designated before.
|
|
120
|
+
*
|
|
121
|
+
* Nobody outside this package builds this string: adapters ask `app.facadeFor()`,
|
|
122
|
+
* which is why an adapter can stay structurally typed and core-free.
|
|
123
|
+
*/
|
|
124
|
+
export declare function facadeKeyOf(entityName: string, surface?: string): string;
|
|
125
|
+
/**
|
|
126
|
+
* Where the contracts behind a façade live — the dual of `facadeKeyOf`.
|
|
127
|
+
*
|
|
128
|
+
* The façade answers calls; it does not say what it answers. That sentence used
|
|
129
|
+
* to be true only inside `buildFacade`, so anything asking the app what it hosts
|
|
130
|
+
* got bare names. A door and its terms are registered together, under the same
|
|
131
|
+
* audience.
|
|
132
|
+
*/
|
|
133
|
+
export declare function contractsKeyOf(entityName: string, surface?: string): string;
|
|
134
|
+
/**
|
|
135
|
+
* Serialize what the app hosts, for one audience. Served on `rpc.discover`,
|
|
136
|
+
* cached by callers.
|
|
137
|
+
*
|
|
138
|
+
* Hosting means answering: an entity with no façade declares no operation, so
|
|
139
|
+
* it is not among the DOORS — publishing its shape would hand an anonymous caller
|
|
140
|
+
* the structure of tables it can never reach (the auth tables, typically), and
|
|
141
|
+
* `fougere sync` would rebuild a schema with nothing to call on it.
|
|
142
|
+
*
|
|
143
|
+
* `facts` is the one thing that shape-without-a-door rule does not cover, and the
|
|
144
|
+
* reason is the opposite of a leak: an entity nobody exposed is silent, whereas a
|
|
145
|
+
* fact was explicitly declared to leave.
|
|
146
|
+
*
|
|
147
|
+
* `surface` makes that sentence audience-aware rather than app-wide: a door
|
|
148
|
+
* answers with what IT serves. Nothing falls back to the full façade — under a
|
|
149
|
+
* named surface, an entity with no façade of its own is simply not there.
|
|
150
|
+
*/
|
|
151
|
+
export declare function identityCardOf(app: App, surface?: string): IdentityCard;
|
|
152
|
+
/**
|
|
153
|
+
* Build the local runner — the reference realization of Transport.
|
|
154
|
+
*
|
|
155
|
+
* Resolves strictly from the app's own container: a call that lands here is
|
|
156
|
+
* judged here. A miss is a typed NOT_FOUND, never a forward to another remote.
|
|
157
|
+
*/
|
|
158
|
+
export declare function createLocalRunner(app: App, surface?: string): Transport;
|
|
159
|
+
/**
|
|
160
|
+
* Build the app runner — same judgment, but resolution follows the app's
|
|
161
|
+
* topology: local façades and remote doublures alike. This is the runner
|
|
162
|
+
* an app's own entry points (browser endpoint, bridges) stand on.
|
|
163
|
+
*
|
|
164
|
+
* `surface` is the audience this runner serves, and it belongs to the DOOR that
|
|
165
|
+
* builds the runner, never to the call: a caller cannot name its own audience
|
|
166
|
+
* any more than it can name its own identity (`state` is stamped server-side
|
|
167
|
+
* for the same reason). Reaching the admin door IS the proof. So `FrondCall`
|
|
168
|
+
* gains nothing and the wire format gains nothing — a remote frond's audience
|
|
169
|
+
* is simply which URL `remotes:` points at.
|
|
170
|
+
*/
|
|
171
|
+
export declare function createAppRunner(app: App, surface?: string): Transport;
|
|
172
|
+
//# sourceMappingURL=call.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../src/call.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,oEAAoE;AACpE,MAAM,WAAW,SAAS;IACxB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,2FAA2F;AAC3F,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE7F,4EAA4E;AAC5E,eAAO,MAAM,UAAU,QAAQ,CAAC;AAEhC;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,iEAAiE;IACjE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,mFAAmF;IACnF,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAC1D;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,KAAK,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,EAAE,CAAC;YACd;;;;;eAKG;YACH,MAAM,CAAC,EAAE,gBAAgB,CAAC;SAC3B,CAAC,CAAC;QACH;;;;;;;;;;;;;;;;WAgBG;QACH,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;SAAE,CAAC,CAAC;KAC3D,CAAC,CAAC;CACJ;AAKD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI;KACrB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,MAAM,CAAC,GACtD,CAAC,UAAU,CAAC,EAAE,iBAAiB,KAAK,CAAC,GACrC,KAAK;CACV,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAExE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAmDvE;AAiCD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAEvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAErE"}
|
package/dist/call.js
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Call contract — a frond call is a value.
|
|
3
|
+
*
|
|
4
|
+
* (frond, entity, op, invocation) → result, or a thrown FougereError.
|
|
5
|
+
* A transport is a function that executes this call elsewhere; the local
|
|
6
|
+
* runner below is the reference realization. Transports move the value,
|
|
7
|
+
* they never reshape it.
|
|
8
|
+
*/
|
|
9
|
+
import { describe as describeSchema } from '@fougere/schema';
|
|
10
|
+
import { factsAnnouncedBy } from './emit.js';
|
|
11
|
+
import { FougereError, ErrorCode } from './middleware.js';
|
|
12
|
+
import { resolveIsReadOp } from './operation.js';
|
|
13
|
+
/** Reserved namespace — calls the runner answers itself, never a façade. */
|
|
14
|
+
export const RPC_ENTITY = 'rpc';
|
|
15
|
+
/**
|
|
16
|
+
* The container key of a façade — THE one place that spells the format.
|
|
17
|
+
*
|
|
18
|
+
* A surface is a named audience, and it is a key: `handlers/public/PostHandler.ts`
|
|
19
|
+
* registers `public:postHandler` next to the default `postHandler`. The default
|
|
20
|
+
* surface is the empty key, so callers that know nothing about surfaces keep
|
|
21
|
+
* designating exactly what they designated before.
|
|
22
|
+
*
|
|
23
|
+
* Nobody outside this package builds this string: adapters ask `app.facadeFor()`,
|
|
24
|
+
* which is why an adapter can stay structurally typed and core-free.
|
|
25
|
+
*/
|
|
26
|
+
export function facadeKeyOf(entityName, surface) {
|
|
27
|
+
return surface ? `${surface}:${entityName}Handler` : `${entityName}Handler`;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Where the contracts behind a façade live — the dual of `facadeKeyOf`.
|
|
31
|
+
*
|
|
32
|
+
* The façade answers calls; it does not say what it answers. That sentence used
|
|
33
|
+
* to be true only inside `buildFacade`, so anything asking the app what it hosts
|
|
34
|
+
* got bare names. A door and its terms are registered together, under the same
|
|
35
|
+
* audience.
|
|
36
|
+
*/
|
|
37
|
+
export function contractsKeyOf(entityName, surface) {
|
|
38
|
+
return `${facadeKeyOf(entityName, surface)}:contracts`;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Serialize what the app hosts, for one audience. Served on `rpc.discover`,
|
|
42
|
+
* cached by callers.
|
|
43
|
+
*
|
|
44
|
+
* Hosting means answering: an entity with no façade declares no operation, so
|
|
45
|
+
* it is not among the DOORS — publishing its shape would hand an anonymous caller
|
|
46
|
+
* the structure of tables it can never reach (the auth tables, typically), and
|
|
47
|
+
* `fougere sync` would rebuild a schema with nothing to call on it.
|
|
48
|
+
*
|
|
49
|
+
* `facts` is the one thing that shape-without-a-door rule does not cover, and the
|
|
50
|
+
* reason is the opposite of a leak: an entity nobody exposed is silent, whereas a
|
|
51
|
+
* fact was explicitly declared to leave.
|
|
52
|
+
*
|
|
53
|
+
* `surface` makes that sentence audience-aware rather than app-wide: a door
|
|
54
|
+
* answers with what IT serves. Nothing falls back to the full façade — under a
|
|
55
|
+
* named surface, an entity with no façade of its own is simply not there.
|
|
56
|
+
*/
|
|
57
|
+
export function identityCardOf(app, surface) {
|
|
58
|
+
/**
|
|
59
|
+
* Every entity of every frond, by name — a fact is announced where it is USED, which is
|
|
60
|
+
* not always where it is declared. Same reason the boot builds this map to judge one.
|
|
61
|
+
*/
|
|
62
|
+
const declared = new Map(app.fronds.flatMap((frond) => frond.entities.map((entity) => [entity.name, entity.entityClass])));
|
|
63
|
+
return {
|
|
64
|
+
fronds: app.fronds.map((frond) => {
|
|
65
|
+
// What the frond answers to, not what it stores. This walked `frond.entities`, so a
|
|
66
|
+
// handler carrying no entity — a health check, a search across shapes — was built,
|
|
67
|
+
// served, and absent from the card: `sync` could not generate its door and a remote
|
|
68
|
+
// consumer had no way to know it existed. The boot has said "pointing at nothing is
|
|
69
|
+
// legal" since handlers became the subject; the card had not caught up.
|
|
70
|
+
const byEntity = new Map(frond.entities.map((entity) => [entity.name, entity]));
|
|
71
|
+
const addresses = [...new Set([
|
|
72
|
+
...frond.entities.map((entity) => entity.name),
|
|
73
|
+
...frond.handlers.map((handler) => handler.address),
|
|
74
|
+
])];
|
|
75
|
+
return {
|
|
76
|
+
name: frond.name,
|
|
77
|
+
doors: addresses.flatMap((address) => {
|
|
78
|
+
const ops = facadeOps(app, address, surface);
|
|
79
|
+
if (ops.length === 0)
|
|
80
|
+
return [];
|
|
81
|
+
const entity = byEntity.get(address);
|
|
82
|
+
return [{
|
|
83
|
+
name: address,
|
|
84
|
+
ops,
|
|
85
|
+
// Absent when nothing of that name is stored. A door is still a door.
|
|
86
|
+
...(entity ? { schema: describeSchema(entity.entityClass, address) } : {}),
|
|
87
|
+
}];
|
|
88
|
+
}),
|
|
89
|
+
/**
|
|
90
|
+
* What leaves on its own — the same list on every surface, deliberately.
|
|
91
|
+
*
|
|
92
|
+
* A door has an audience; a fact does not. `Emit<T>` names a subject and *the
|
|
93
|
+
* number of readers is not the emitter's business* (`emit.ts`), so narrowing this
|
|
94
|
+
* by `surface` would invent an axis the primitive refuses. The consequence is
|
|
95
|
+
* stated rather than hidden: a fact's SHAPE is readable by anyone who can read the
|
|
96
|
+
* card at all. What must not be published must not be announced.
|
|
97
|
+
*/
|
|
98
|
+
facts: factsAnnouncedBy(frond.handlers).map((name) => {
|
|
99
|
+
const entityClass = declared.get(name);
|
|
100
|
+
return { name, ...(entityClass ? { schema: describeSchema(entityClass, name) } : {}) };
|
|
101
|
+
}),
|
|
102
|
+
};
|
|
103
|
+
}),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function facadeOps(app, entityName, surface) {
|
|
107
|
+
let facade;
|
|
108
|
+
try {
|
|
109
|
+
facade = app.container.resolve(facadeKeyOf(entityName, surface));
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return [];
|
|
113
|
+
}
|
|
114
|
+
// The façade is the list of names; the contracts are the terms. Registered
|
|
115
|
+
// together, so a door that serves fewer ops also describes fewer.
|
|
116
|
+
let contracts;
|
|
117
|
+
try {
|
|
118
|
+
contracts = app.container.resolve(contractsKeyOf(entityName, surface));
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
contracts = undefined;
|
|
122
|
+
}
|
|
123
|
+
return Object.keys(facade).map((name) => {
|
|
124
|
+
const contract = contracts?.get(name);
|
|
125
|
+
return {
|
|
126
|
+
name,
|
|
127
|
+
...(contract?.description && { description: contract.description }),
|
|
128
|
+
...(contract?.input && { input: describeSchema(contract.input, name) }),
|
|
129
|
+
...(contract?.output && { output: describeSchema(contract.output, name) }),
|
|
130
|
+
...(contract?.cardinality && { cardinality: contract.cardinality }),
|
|
131
|
+
kind: resolveIsReadOp(name) ? 'query' : 'command',
|
|
132
|
+
};
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Build the local runner — the reference realization of Transport.
|
|
137
|
+
*
|
|
138
|
+
* Resolves strictly from the app's own container: a call that lands here is
|
|
139
|
+
* judged here. A miss is a typed NOT_FOUND, never a forward to another remote.
|
|
140
|
+
*/
|
|
141
|
+
export function createLocalRunner(app, surface) {
|
|
142
|
+
return runnerFor(app, (key) => app.container.resolve(key), surface);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Build the app runner — same judgment, but resolution follows the app's
|
|
146
|
+
* topology: local façades and remote doublures alike. This is the runner
|
|
147
|
+
* an app's own entry points (browser endpoint, bridges) stand on.
|
|
148
|
+
*
|
|
149
|
+
* `surface` is the audience this runner serves, and it belongs to the DOOR that
|
|
150
|
+
* builds the runner, never to the call: a caller cannot name its own audience
|
|
151
|
+
* any more than it can name its own identity (`state` is stamped server-side
|
|
152
|
+
* for the same reason). Reaching the admin door IS the proof. So `FrondCall`
|
|
153
|
+
* gains nothing and the wire format gains nothing — a remote frond's audience
|
|
154
|
+
* is simply which URL `remotes:` points at.
|
|
155
|
+
*/
|
|
156
|
+
export function createAppRunner(app, surface) {
|
|
157
|
+
return runnerFor(app, (key) => app.resolve(key), surface);
|
|
158
|
+
}
|
|
159
|
+
function runnerFor(app, resolveFacade, surface) {
|
|
160
|
+
return async (call, invocation) => {
|
|
161
|
+
if (call.entity === RPC_ENTITY) {
|
|
162
|
+
if (call.op === 'discover')
|
|
163
|
+
return identityCardOf(app, surface);
|
|
164
|
+
throw new FougereError({
|
|
165
|
+
code: ErrorCode.NOT_FOUND,
|
|
166
|
+
message: `Unknown rpc operation '${call.op}'`,
|
|
167
|
+
entity: RPC_ENTITY,
|
|
168
|
+
operation: call.op,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
let facade;
|
|
172
|
+
try {
|
|
173
|
+
facade = resolveFacade(facadeKeyOf(call.entity, surface));
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// What IS hosted, so a wrong entity name (or a missing frond) reads at a glance.
|
|
177
|
+
const hosted = app.fronds.flatMap((frond) => frond.entities.map((e) => e.name)).sort();
|
|
178
|
+
throw new FougereError({
|
|
179
|
+
code: ErrorCode.NOT_FOUND,
|
|
180
|
+
message: (surface
|
|
181
|
+
? `Entity '${call.entity}' is not served on surface '${surface}'`
|
|
182
|
+
: `Entity '${call.entity}' is not hosted here`)
|
|
183
|
+
+ (hosted.length ? `. Hosted here: ${hosted.join(', ')}.` : '. This app hosts no entity.'),
|
|
184
|
+
entity: call.entity,
|
|
185
|
+
operation: call.op,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
// Own properties only: a façade is a plain object, so a bare lookup reaches
|
|
189
|
+
// Object.prototype — `constructor` echoed the invocation back, `toString`
|
|
190
|
+
// answered. An op is what the façade declares, not what JS inherits.
|
|
191
|
+
const fn = Object.hasOwn(facade, call.op) ? facade[call.op] : undefined;
|
|
192
|
+
if (typeof fn !== 'function') {
|
|
193
|
+
// Name what IS served: the façade is right here, and `op` is a bare string all
|
|
194
|
+
// the way from `useQuery` — so a typo is the ordinary case, not the exotic one.
|
|
195
|
+
const served = Object.keys(facade).filter((key) => typeof facade[key] === 'function');
|
|
196
|
+
throw new FougereError({
|
|
197
|
+
code: ErrorCode.NOT_FOUND,
|
|
198
|
+
message: `Unknown operation '${call.op}' on '${call.entity}'. `
|
|
199
|
+
+ (served.length ? `It serves ${served.join(', ')}.` : 'It serves nothing.'),
|
|
200
|
+
entity: call.entity,
|
|
201
|
+
operation: call.op,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
// A call's result is JSON-shaped: undefined has no wire form, it
|
|
205
|
+
// normalizes to null at the contract edge — identically on every transport.
|
|
206
|
+
return (await fn(invocation)) ?? null;
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=call.js.map
|
package/dist/call.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call.js","sourceRoot":"","sources":["../src/call.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collector(Entity) — resolves handler input parameters from invocation context.
|
|
3
|
+
*
|
|
4
|
+
* The dual of Presenter: Presenter enriches output, Collector resolves input.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* ```ts
|
|
8
|
+
* export default class UserCollector extends Collector(User) {
|
|
9
|
+
* constructor(private userOrm: UserOrm) { super(); }
|
|
10
|
+
*
|
|
11
|
+
* async collect(ctx: InvocationContext) {
|
|
12
|
+
* return this.userOrm.findById(ctx.state.userId as string);
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
type EntityClass = abstract new (...args: any[]) => any;
|
|
18
|
+
declare const COLLECTOR_TARGET: unique symbol;
|
|
19
|
+
export declare function Collector<E extends EntityClass>(entity: E): {
|
|
20
|
+
new (): {};
|
|
21
|
+
[COLLECTOR_TARGET]: E;
|
|
22
|
+
};
|
|
23
|
+
/** Get the entity class a collector targets. */
|
|
24
|
+
export declare function getCollectorTarget(ctor: Function): EntityClass | undefined;
|
|
25
|
+
/** Container key of an entity's collector — 'user' → 'UserCollector'. */
|
|
26
|
+
export declare function collectorKeyOf(entity: string): string;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=collector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,KAAK,WAAW,GAAG,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAExD,QAAA,MAAM,gBAAgB,eAAyC,CAAC;AAEhE,wBAAgB,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,CAAC;;;EAKzD;AAED,gDAAgD;AAChD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAE1E;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD"}
|