@toa.io/extensions.exposition 1.0.0-alpha.302 → 1.0.0-alpha.304
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/components/identity.basic/types/toa.d.ts +1 -1
- package/components/identity.clients/types/toa.d.ts +1 -1
- package/components/identity.federation/types/toa.d.ts +1 -1
- package/components/identity.grants/manifest.toa.yaml +3 -1
- package/components/identity.grants/types/toa.d.ts +1 -1
- package/components/identity.otp/types/toa.d.ts +1 -1
- package/components/identity.passkeys/types/toa.d.ts +1 -1
- package/components/identity.tokens/operations/decrypt.js +106 -60
- package/components/identity.tokens/operations/lib/jose.js +5 -2
- package/components/identity.tokens/source/decrypt.ts +136 -65
- package/components/identity.tokens/source/lib/jose.js +5 -1
- package/components/identity.tokens/types/index.d.ts +1 -0
- package/components/identity.tokens/types/toa.d.ts +1 -1
- package/package.json +7 -7
- package/transpiled/Directive.d.ts +11 -4
- package/transpiled/Directive.js +50 -14
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.js +13 -11
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Gateway.js +4 -0
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +17 -0
- package/transpiled/HTTP/Context.js +17 -0
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Server.js +12 -6
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +9 -7
- package/transpiled/HTTP/messages.js +15 -2
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/HTTP/types.d.ts +1 -0
- package/transpiled/MCP/tools.js +66 -31
- package/transpiled/MCP/tools.js.map +1 -1
- package/transpiled/Query.js +2 -0
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RTD/Directives.d.ts +26 -8
- package/transpiled/RTD/Match.d.ts +6 -0
- package/transpiled/RTD/Method.d.ts +12 -0
- package/transpiled/RTD/Method.js +21 -1
- package/transpiled/RTD/Method.js.map +1 -1
- package/transpiled/RTD/Node.d.ts +3 -1
- package/transpiled/RTD/Node.js +5 -3
- package/transpiled/RTD/Node.js.map +1 -1
- package/transpiled/RTD/Route.d.ts +1 -1
- package/transpiled/RTD/Route.js +8 -5
- package/transpiled/RTD/Route.js.map +1 -1
- package/transpiled/RTD/Tree.d.ts +12 -0
- package/transpiled/RTD/Tree.js +19 -1
- package/transpiled/RTD/Tree.js.map +1 -1
- package/transpiled/RTD/segment.d.ts +2 -0
- package/transpiled/RTD/segment.js +15 -0
- package/transpiled/RTD/segment.js.map +1 -1
- package/transpiled/directives/auth/Authorization.d.ts +9 -7
- package/transpiled/directives/auth/Authorization.js +17 -16
- package/transpiled/directives/auth/Authorization.js.map +1 -1
- package/transpiled/directives/cache/Cache.d.ts +11 -0
- package/transpiled/directives/cache/Cache.js +23 -24
- package/transpiled/directives/cache/Cache.js.map +1 -1
- package/transpiled/directives/cache/etag.d.ts +10 -7
- package/transpiled/directives/cache/etag.js +13 -10
- package/transpiled/directives/cache/etag.js.map +1 -1
- package/transpiled/directives/cors/CORS.js +1 -1
- package/transpiled/directives/cors/CORS.js.map +1 -1
- package/transpiled/directives/flow/Compose.js +2 -0
- package/transpiled/directives/flow/Compose.js.map +1 -1
- package/transpiled/directives/help/Family.d.ts +1 -2
- package/transpiled/directives/help/Family.js +1 -1
- package/transpiled/directives/help/Family.js.map +1 -1
- package/transpiled/directives/io/IO.d.ts +1 -1
- package/transpiled/directives/io/IO.js +1 -1
- package/transpiled/directives/io/IO.js.map +1 -1
- package/transpiled/directives/io/Output.d.ts +5 -3
- package/transpiled/directives/io/Output.js +11 -35
- package/transpiled/directives/io/Output.js.map +1 -1
- package/transpiled/directives/io/Status.d.ts +1 -1
- package/transpiled/directives/io/Status.js +4 -2
- package/transpiled/directives/io/Status.js.map +1 -1
- package/transpiled/directives/map/Map.d.ts +1 -1
- package/transpiled/directives/map/Map.js +1 -1
- package/transpiled/directives/map/Map.js.map +1 -1
- package/transpiled/directives/mcp/MCP.d.ts +1 -2
- package/transpiled/directives/mcp/MCP.js +1 -1
- package/transpiled/directives/mcp/MCP.js.map +1 -1
- package/transpiled/directives/octets/Octets.d.ts +1 -1
- package/transpiled/directives/octets/Octets.js +1 -1
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/measurements.d.ts +22 -0
- package/transpiled/measurements.js +37 -0
- package/transpiled/measurements.js.map +1 -0
- package/transpiled/service.js +22 -2
- package/transpiled/service.js.map +1 -1
- package/ui/dist/_app/immutable/chunks/{Wl536IQX.js → BI21DxGX.js} +1 -1
- package/ui/dist/_app/immutable/chunks/{CyQvDdUS.js → B_XBOx9b.js} +1 -1
- package/ui/dist/_app/immutable/chunks/{BNmwbB_m.js → D9-CL3SX.js} +2 -2
- package/ui/dist/_app/immutable/chunks/{D8WVrjO4.js → DfeVAkjY.js} +1 -1
- package/ui/dist/_app/immutable/entry/{app.BnIDHdVY.js → app.BG2uapp5.js} +2 -2
- package/ui/dist/_app/immutable/entry/start.Bnttjc6A.js +1 -0
- package/ui/dist/_app/immutable/nodes/{0.DV2orh1u.js → 0.CAhVptPP.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{1.Bgonurdo.js → 1.CymYf6vY.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{2.C0ZHj2rR.js → 2.DtwEKRzb.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{3.DOixCoug.js → 3.BgfGYNeS.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{4.fXuZ_LUX.js → 4.B7W24tJ1.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{5.BN65yDZR.js → 5.FCfJU5jO.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{6.gez_DiIA.js → 6.B9oqMcPQ.js} +1 -1
- package/ui/dist/_app/version.json +1 -1
- package/ui/dist/index.html +10 -10
- package/ui/dist/_app/immutable/entry/start.BhKXzsOH.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../source/HTTP/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,WAAW,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAe,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../source/HTTP/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ export interface ServerResponse extends Writable {
|
|
|
26
26
|
setHeader: (name: string, value: number | string | string[]) => void;
|
|
27
27
|
appendHeader: (name: string, value: string | string[]) => void;
|
|
28
28
|
hasHeader: (name: string) => boolean;
|
|
29
|
+
getHeader: (name: string) => number | string | string[] | undefined;
|
|
29
30
|
writeHead: (status: number, headers?: OutgoingHttpHeaders) => ServerResponse;
|
|
30
31
|
}
|
|
31
32
|
/**
|
package/transpiled/MCP/tools.js
CHANGED
|
@@ -19,39 +19,62 @@ import { variables } from '../RTD/segment.js';
|
|
|
19
19
|
* Sorted, because the revision asks for an order a client can cache on.
|
|
20
20
|
*/
|
|
21
21
|
export async function list(tree, request) {
|
|
22
|
-
const tools = [];
|
|
23
22
|
/*
|
|
24
23
|
* A description, not the request asking. What refuses a credentialed request at an
|
|
25
24
|
* `anonymous` route does not refuse the call a tool makes, and a list that says otherwise
|
|
26
25
|
* disagrees with what `tools/call` then does.
|
|
27
26
|
*/
|
|
28
27
|
const context = describing(request);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
// a route a name cannot spell is a route nothing addresses, here or at `/.rpc`
|
|
34
|
-
if (named === null)
|
|
35
|
-
continue;
|
|
36
|
-
const params = variables(segments);
|
|
37
|
-
const introspection = await method.explain(context, params);
|
|
38
|
-
if (introspection === null)
|
|
28
|
+
const tools = [];
|
|
29
|
+
for (const { node, method, tool } of await published(tree)) {
|
|
30
|
+
// a branch that has expired is not walked, and what it published is not served either
|
|
31
|
+
if (Date.now() >= node.expiration)
|
|
39
32
|
continue;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const hints = annotations(verb);
|
|
43
|
-
// in the order the revision documents one, which is the order it is read in
|
|
44
|
-
const tool = {
|
|
45
|
-
name: named,
|
|
46
|
-
...(introspection.title === undefined ? {} : { title: introspection.title }),
|
|
47
|
-
...(described === undefined ? {} : { description: described }),
|
|
48
|
-
inputSchema: input(introspection, params.map((param) => param.name), method.endpoint?.selection() ?? null),
|
|
49
|
-
...(schema === undefined ? {} : { outputSchema: schema }),
|
|
50
|
-
...(hints === undefined ? {} : { annotations: hints })
|
|
51
|
-
};
|
|
52
|
-
tools.push(tool);
|
|
33
|
+
if (await method.directives.admits(context))
|
|
34
|
+
tools.push(tool);
|
|
53
35
|
}
|
|
54
|
-
return tools
|
|
36
|
+
return tools;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* What the tree publishes, in the order a client reads it, whoever is asking: what a tool is
|
|
40
|
+
* said to be is the route's and not the caller's, and the only thing a caller decides is
|
|
41
|
+
* whether it is told of one at all.
|
|
42
|
+
*
|
|
43
|
+
* Built once per tree — a merged branch drops it — so a `tools/list` describes the tree once
|
|
44
|
+
* and then answers from what it described.
|
|
45
|
+
*/
|
|
46
|
+
async function published(tree) {
|
|
47
|
+
return await tree.derived(TOOLS, async () => {
|
|
48
|
+
const tools = [];
|
|
49
|
+
for (const { segments, verb, method, node } of tree.walk()) {
|
|
50
|
+
if (!MCP.published(method.directives.declared(FAMILY)))
|
|
51
|
+
continue;
|
|
52
|
+
const named = name(segments, verb);
|
|
53
|
+
// a route a name cannot spell is a route nothing addresses, here or at `/.rpc`
|
|
54
|
+
if (named === null)
|
|
55
|
+
continue;
|
|
56
|
+
const params = variables(segments);
|
|
57
|
+
const introspection = await method.describe(params);
|
|
58
|
+
// a method hidden is hidden from every answer, this one included
|
|
59
|
+
if (introspection === null)
|
|
60
|
+
continue;
|
|
61
|
+
const described = introspection.description;
|
|
62
|
+
const schema = output(introspection);
|
|
63
|
+
const hints = annotations(verb);
|
|
64
|
+
// in the order the revision documents one, which is the order it is read in
|
|
65
|
+
const tool = {
|
|
66
|
+
name: named,
|
|
67
|
+
...(introspection.title === undefined ? {} : { title: introspection.title }),
|
|
68
|
+
...(described === undefined ? {} : { description: described }),
|
|
69
|
+
inputSchema: input(introspection, params.map((param) => param.name), method.endpoint?.selection() ?? null),
|
|
70
|
+
...(schema === undefined ? {} : { outputSchema: schema }),
|
|
71
|
+
...(hints === undefined ? {} : { annotations: hints })
|
|
72
|
+
};
|
|
73
|
+
tools.push({ node, method, tool });
|
|
74
|
+
}
|
|
75
|
+
// sorted, because the revision asks for an order a client can cache on
|
|
76
|
+
return tools.sort((one, other) => (one.tool.name < other.tool.name ? -1 : 1));
|
|
77
|
+
});
|
|
55
78
|
}
|
|
56
79
|
/**
|
|
57
80
|
* The call the tool is. Its arguments are the procedure's parameters, taken apart the way a
|
|
@@ -62,7 +85,7 @@ export async function list(tree, request) {
|
|
|
62
85
|
* its name. What the caller may then do with one that is published is still `auth`'s to say.
|
|
63
86
|
*/
|
|
64
87
|
export async function call(scope, named, args) {
|
|
65
|
-
if (!
|
|
88
|
+
if (!serves(scope.tree, named))
|
|
66
89
|
throw new http.NotFound(response(null, failure(METHOD_NOT_FOUND, `'${named}' is not a tool this server publishes`)));
|
|
67
90
|
const { path, verb, variables } = address(named, args);
|
|
68
91
|
const { query, input: body } = split(args, variables);
|
|
@@ -92,11 +115,21 @@ export async function call(scope, named, args) {
|
|
|
92
115
|
* asked here — the declaration is the route's and does not vary by who is calling, and the
|
|
93
116
|
* call that follows is authorized as any request to that route is.
|
|
94
117
|
*/
|
|
95
|
-
function
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
118
|
+
function serves(tree, named) {
|
|
119
|
+
const names = tree.derived(NAMES, () => {
|
|
120
|
+
const names = new Map();
|
|
121
|
+
for (const { segments, verb, method, node } of tree.walk()) {
|
|
122
|
+
const tool = name(segments, verb);
|
|
123
|
+
// the first mount of a name is the one a call would reach, as `match` tries them;
|
|
124
|
+
// one that publishes nothing takes the name all the same
|
|
125
|
+
if (tool !== null && !names.has(tool))
|
|
126
|
+
names.set(tool, MCP.published(method.directives.declared(FAMILY)) ? node : null);
|
|
127
|
+
}
|
|
128
|
+
return names;
|
|
129
|
+
});
|
|
130
|
+
const node = names.get(named);
|
|
131
|
+
// a branch that has expired publishes nothing, as it answers nothing
|
|
132
|
+
return node !== undefined && node !== null && Date.now() < node.expiration;
|
|
100
133
|
}
|
|
101
134
|
function result(body) {
|
|
102
135
|
if (body === undefined || body === null)
|
|
@@ -106,4 +139,6 @@ function result(body) {
|
|
|
106
139
|
structuredContent: body
|
|
107
140
|
};
|
|
108
141
|
}
|
|
142
|
+
const TOOLS = 'mcp:tools';
|
|
143
|
+
const NAMES = 'mcp:names';
|
|
109
144
|
//# sourceMappingURL=tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../source/MCP/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,GAAG,EAA4B,MAAM,4BAA4B,CAAA;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../source/MCP/tools.ts"],"names":[],"mappings":"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"}
|
package/transpiled/Query.js
CHANGED
package/transpiled/Query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Query.js","sourceRoot":"","sources":["../source/Query.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Query.js","sourceRoot":"","sources":["../source/Query.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,17 @@ export interface Directives {
|
|
|
13
13
|
*/
|
|
14
14
|
declared: <T>(family: string) => T[] | undefined;
|
|
15
15
|
precall: (context: Context, parameters: Parameter[]) => Promise<Output>;
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Whether this caller is told of the method at all. Asked per request, which is the one
|
|
18
|
+
* thing about a description that depends on who is asking.
|
|
19
|
+
*/
|
|
20
|
+
admits: (context: Context) => Promise<boolean>;
|
|
21
|
+
/**
|
|
22
|
+
* What this route's directives make of what its method says about itself. No caller: what
|
|
23
|
+
* a family describes is what the route declares, so the answer is the same for everyone
|
|
24
|
+
* who is admitted, and is built once.
|
|
25
|
+
*/
|
|
26
|
+
describe: (introspection: Introspection) => Introspection | null;
|
|
18
27
|
settle: (context: Context, response: OutgoingMessage) => Promise<void>;
|
|
19
28
|
dispose: () => void;
|
|
20
29
|
}
|
|
@@ -64,16 +73,25 @@ export interface DirectiveFamily<TDirective = any, TExtension = any> {
|
|
|
64
73
|
preflight?: (request: Context & TExtension) => void | Promise<void>;
|
|
65
74
|
/** Call-scoped, with what the node declares. Runs once per call. */
|
|
66
75
|
precall?: (directives: TDirective[], request: Context & TExtension, parameters: Parameter[]) => Output | Promise<Output>;
|
|
76
|
+
/**
|
|
77
|
+
* Whether this caller is told of the method at all — `auth` alone has anything to say
|
|
78
|
+
* here. A family that does not implement it admits everyone; `false` takes the method
|
|
79
|
+
* out of every answer that describes it.
|
|
80
|
+
*
|
|
81
|
+
* Apart from `explain` because it is the one part of describing a method that depends on
|
|
82
|
+
* the caller: what is described is then built once and answered to all of them.
|
|
83
|
+
*/
|
|
84
|
+
admits?: (directives: TDirective[], request: Context & TExtension) => Promise<boolean>;
|
|
67
85
|
/**
|
|
68
86
|
* What this family's directives make of what the method says about itself, which is
|
|
69
|
-
* what `OPTIONS` answers and what a tool is described by. `null`
|
|
70
|
-
*
|
|
87
|
+
* what `OPTIONS` answers and what a tool is described by. `null` hides it: the method is
|
|
88
|
+
* described to nobody, whoever asks.
|
|
71
89
|
*
|
|
72
|
-
* There is no request here — no route variable has a value
|
|
73
|
-
* is
|
|
74
|
-
*
|
|
90
|
+
* There is no request here — no route variable has a value, no body has arrived, and no
|
|
91
|
+
* caller is known — so a directive that can only tell from one hands back what it was
|
|
92
|
+
* given.
|
|
75
93
|
*/
|
|
76
|
-
explain?: (directives: TDirective[],
|
|
94
|
+
explain?: (directives: TDirective[], introspection: Introspection) => Introspection | null;
|
|
77
95
|
/** Call-scoped, on the message that call produced. */
|
|
78
96
|
settle?: (directives: TDirective[], request: Context & TExtension, response: OutgoingMessage) => void | Promise<void>;
|
|
79
97
|
/**
|
|
@@ -2,6 +2,12 @@ import { type Node } from './Node.ts';
|
|
|
2
2
|
export interface Match {
|
|
3
3
|
node: Node;
|
|
4
4
|
parameters: Parameter[];
|
|
5
|
+
/**
|
|
6
|
+
* The path that was matched, with placeholders as declared — `/users/:id/` and not
|
|
7
|
+
* `/users/42/`. A metric labels a request by it, because a URL is unbounded and a series per
|
|
8
|
+
* URL is a series per caller.
|
|
9
|
+
*/
|
|
10
|
+
route: string;
|
|
5
11
|
}
|
|
6
12
|
export interface Parameter {
|
|
7
13
|
name: string;
|
|
@@ -4,6 +4,7 @@ import type { Directives } from './Directives.ts';
|
|
|
4
4
|
import type { Context } from '../HTTP/index.ts';
|
|
5
5
|
import type { Introspection } from '../Introspection.ts';
|
|
6
6
|
export declare class Method {
|
|
7
|
+
#private;
|
|
7
8
|
readonly endpoint: Endpoint | null;
|
|
8
9
|
readonly directives: Directives;
|
|
9
10
|
constructor(endpoint: Endpoint | null, directives: Directives);
|
|
@@ -13,6 +14,17 @@ export declare class Method {
|
|
|
13
14
|
* states nothing of its own, and its directives still have their say.
|
|
14
15
|
*/
|
|
15
16
|
explain(context: Context, parameters: Parameter[]): Promise<Introspection | null>;
|
|
17
|
+
/**
|
|
18
|
+
* What the method is, which is the route's and not the caller's: the operation's own
|
|
19
|
+
* description, what the directives fill in, and what a hidden method answers instead,
|
|
20
|
+
* which is nothing. Built once and answered to everyone admitted, so whoever reads it
|
|
21
|
+
* reads it and leaves it as it is.
|
|
22
|
+
*
|
|
23
|
+
* Under no key: a branch that changes is merged as methods of its own, and this one is
|
|
24
|
+
* dropped with the node that holds it.
|
|
25
|
+
*/
|
|
26
|
+
describe(parameters: Parameter[]): Promise<Introspection | null>;
|
|
27
|
+
private build;
|
|
16
28
|
close(): Promise<void>;
|
|
17
29
|
}
|
|
18
30
|
export type Methods = Record<string, Method>;
|
package/transpiled/RTD/Method.js
CHANGED
|
@@ -2,6 +2,8 @@ import { order } from '../Introspection.js';
|
|
|
2
2
|
export class Method {
|
|
3
3
|
endpoint;
|
|
4
4
|
directives;
|
|
5
|
+
/** What this method is, built on the first answer that describes it. See `described`. */
|
|
6
|
+
#description;
|
|
5
7
|
constructor(endpoint, directives) {
|
|
6
8
|
this.endpoint = endpoint;
|
|
7
9
|
this.directives = directives;
|
|
@@ -12,8 +14,26 @@ export class Method {
|
|
|
12
14
|
* states nothing of its own, and its directives still have their say.
|
|
13
15
|
*/
|
|
14
16
|
async explain(context, parameters) {
|
|
17
|
+
if (!(await this.directives.admits(context)))
|
|
18
|
+
return null;
|
|
19
|
+
return await this.describe(parameters);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* What the method is, which is the route's and not the caller's: the operation's own
|
|
23
|
+
* description, what the directives fill in, and what a hidden method answers instead,
|
|
24
|
+
* which is nothing. Built once and answered to everyone admitted, so whoever reads it
|
|
25
|
+
* reads it and leaves it as it is.
|
|
26
|
+
*
|
|
27
|
+
* Under no key: a branch that changes is merged as methods of its own, and this one is
|
|
28
|
+
* dropped with the node that holds it.
|
|
29
|
+
*/
|
|
30
|
+
async describe(parameters) {
|
|
31
|
+
this.#description ??= this.build(parameters);
|
|
32
|
+
return await this.#description;
|
|
33
|
+
}
|
|
34
|
+
async build(parameters) {
|
|
15
35
|
const introspection = this.endpoint === null ? {} : await this.endpoint.explain(parameters);
|
|
16
|
-
const described =
|
|
36
|
+
const described = this.directives.describe(introspection);
|
|
17
37
|
return described === null ? null : order(described);
|
|
18
38
|
}
|
|
19
39
|
async close() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Method.js","sourceRoot":"","sources":["../../source/RTD/Method.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAG3C,MAAM,OAAO,MAAM;IACD,QAAQ,CAAiB;IACzB,UAAU,CAAY;IAEtC,YAAmB,QAAyB,EAAE,UAAsB;QAClE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAClB,OAAgB,EAChB,UAAuB;QAEvB,MAAM,aAAa,GACjB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAEvE,MAAM,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"Method.js","sourceRoot":"","sources":["../../source/RTD/Method.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAG3C,MAAM,OAAO,MAAM;IACD,QAAQ,CAAiB;IACzB,UAAU,CAAY;IAEtC,yFAAyF;IACzF,YAAY,CAAgC;IAE5C,YAAmB,QAAyB,EAAE,UAAsB;QAClE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAClB,OAAgB,EAChB,UAAuB;QAEvB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QAEzD,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IACxC,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,QAAQ,CAAC,UAAuB;QAC3C,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAE5C,OAAO,MAAM,IAAI,CAAC,YAAY,CAAA;IAChC,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,UAAuB;QACzC,MAAM,aAAa,GACjB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAEvE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QAEzD,OAAO,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACrD,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;IAC9B,CAAC;CACF"}
|
package/transpiled/RTD/Node.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare class Node {
|
|
|
13
13
|
private readonly protected;
|
|
14
14
|
private routes;
|
|
15
15
|
constructor(routes: Route[], methods: Methods, properties: Properties);
|
|
16
|
-
match(fragments: string[], parameters?: Parameter[]): Match | null;
|
|
16
|
+
match(fragments: string[], parameters?: Parameter[], segments?: Segment[]): Match | null;
|
|
17
17
|
/**
|
|
18
18
|
* Returns the nodes the merged branch has landed on, so that its expiration
|
|
19
19
|
* can later be extended without rebuilding anything.
|
|
@@ -49,6 +49,8 @@ export interface Mount {
|
|
|
49
49
|
segments: Segment[];
|
|
50
50
|
verb: string;
|
|
51
51
|
method: Method;
|
|
52
|
+
/** what the method is mounted on, which is what says whether it is still served */
|
|
53
|
+
node: Node;
|
|
52
54
|
}
|
|
53
55
|
export interface Properties {
|
|
54
56
|
protected: boolean;
|
package/transpiled/RTD/Node.js
CHANGED
|
@@ -15,14 +15,16 @@ export class Node {
|
|
|
15
15
|
this.intermediate = this.routes.findIndex((route) => route.root) !== -1;
|
|
16
16
|
this.sort();
|
|
17
17
|
}
|
|
18
|
-
match(fragments, parameters = []) {
|
|
18
|
+
match(fragments, parameters = [], segments = []) {
|
|
19
19
|
// a route only pushes, so what a failed one added is cut off rather than the array copied
|
|
20
20
|
const mark = parameters.length;
|
|
21
|
+
const pieces = segments.length;
|
|
21
22
|
for (const route of this.routes) {
|
|
22
|
-
const match = route.match(fragments, parameters);
|
|
23
|
+
const match = route.match(fragments, parameters, segments);
|
|
23
24
|
if (match !== null)
|
|
24
25
|
return match;
|
|
25
26
|
parameters.length = mark;
|
|
27
|
+
segments.length = pieces;
|
|
26
28
|
}
|
|
27
29
|
return null;
|
|
28
30
|
}
|
|
@@ -50,7 +52,7 @@ export class Node {
|
|
|
50
52
|
*walk(segments, trunk = false) {
|
|
51
53
|
if (trunk || !this.intermediate)
|
|
52
54
|
for (const [verb, method] of Object.entries(this.methods))
|
|
53
|
-
yield { segments, verb, method };
|
|
55
|
+
yield { segments, verb, method, node: this };
|
|
54
56
|
for (const route of this.routes)
|
|
55
57
|
yield* route.walk(segments);
|
|
56
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../source/RTD/Node.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,6BAA6B,CAAA;AAG/E,MAAM,OAAO,IAAI;IACR,YAAY,CAAS;IACrB,OAAO,CAAe;IACtB,UAAU,CAAQ;IAClB,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../source/RTD/Node.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export declare class Route {
|
|
|
8
8
|
readonly node: Node;
|
|
9
9
|
private readonly wildcard;
|
|
10
10
|
constructor(segments: Segment[], node: Node);
|
|
11
|
-
match(fragments: string[], parameters: Parameter[]): Match | null;
|
|
11
|
+
match(fragments: string[], parameters: Parameter[], segments: Segment[]): Match | null;
|
|
12
12
|
walk(prefix: Segment[]): Generator<Mount>;
|
|
13
13
|
equals(route: Route): boolean;
|
|
14
14
|
merge(route: Route): Node[];
|
package/transpiled/RTD/Route.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { template } from './segment.js';
|
|
1
2
|
export class Route {
|
|
2
3
|
root;
|
|
3
4
|
variables = 0;
|
|
@@ -14,9 +15,11 @@ export class Route {
|
|
|
14
15
|
this.wildcard ||= segment.wildcard === true;
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
|
-
match(fragments, parameters) {
|
|
18
|
+
match(fragments, parameters, segments) {
|
|
18
19
|
if (Date.now() >= this.node.expiration)
|
|
19
20
|
return null;
|
|
21
|
+
// what a request matched is a template, and the pieces of it are these
|
|
22
|
+
segments.push(...this.segments);
|
|
20
23
|
for (let i = 0; i < this.segments.length; i++) {
|
|
21
24
|
const segment = this.segments[i];
|
|
22
25
|
if (segment.fragment !== null && segment.fragment !== fragments[i])
|
|
@@ -34,9 +37,9 @@ export class Route {
|
|
|
34
37
|
}
|
|
35
38
|
const exact = this.segments.length === fragments.length;
|
|
36
39
|
if ((exact && !this.node.intermediate) || this.wildcard)
|
|
37
|
-
return { node: this.node, parameters };
|
|
40
|
+
return { node: this.node, parameters, route: template(segments) };
|
|
38
41
|
else
|
|
39
|
-
return this.matchNested(fragments, parameters);
|
|
42
|
+
return this.matchNested(fragments, parameters, segments);
|
|
40
43
|
}
|
|
41
44
|
*walk(prefix) {
|
|
42
45
|
// an expired branch is not matched, so nothing under it is reachable to name
|
|
@@ -55,9 +58,9 @@ export class Route {
|
|
|
55
58
|
merge(route) {
|
|
56
59
|
return this.node.merge(route.node);
|
|
57
60
|
}
|
|
58
|
-
matchNested(fragments, parameters) {
|
|
61
|
+
matchNested(fragments, parameters, segments) {
|
|
59
62
|
fragments = fragments.slice(this.segments.length);
|
|
60
|
-
return this.node.match(fragments, parameters);
|
|
63
|
+
return this.node.match(fragments, parameters, segments);
|
|
61
64
|
}
|
|
62
65
|
}
|
|
63
66
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Route.js","sourceRoot":"","sources":["../../source/RTD/Route.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Route.js","sourceRoot":"","sources":["../../source/RTD/Route.ts"],"names":[],"mappings":"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"}
|
package/transpiled/RTD/Tree.d.ts
CHANGED
|
@@ -8,10 +8,22 @@ export declare class Tree {
|
|
|
8
8
|
private readonly trunk;
|
|
9
9
|
private readonly endpoints;
|
|
10
10
|
private readonly directives;
|
|
11
|
+
/** What has been read off the whole tree. See `derived`. */
|
|
12
|
+
private readonly memo;
|
|
11
13
|
constructor(node: syntax.Node, endpoints: EndpointsFactory, directives: DirectiveFactory);
|
|
12
14
|
match(path: string): Match | null;
|
|
13
15
|
/** Every method in the tree, with the template it answers at. */
|
|
14
16
|
walk(): Generator<Mount>;
|
|
17
|
+
/**
|
|
18
|
+
* What is read off the whole tree rather than off one route — the tools it publishes, the
|
|
19
|
+
* page that lists it — built on demand and dropped whole when a branch is merged. A merge
|
|
20
|
+
* is the only thing that changes what the tree holds; a branch that expires stops being
|
|
21
|
+
* walked, so what is derived from it says so by carrying the node it came from.
|
|
22
|
+
*
|
|
23
|
+
* Nothing that depends on the caller belongs here: the tree is one, and its callers are
|
|
24
|
+
* not.
|
|
25
|
+
*/
|
|
26
|
+
derived<T>(key: string, build: () => T): T;
|
|
15
27
|
merge(node: syntax.Node, extension: unknown): Node[];
|
|
16
28
|
/**
|
|
17
29
|
* Extends the expiration of an already merged branch, leaving its endpoints
|
package/transpiled/RTD/Tree.js
CHANGED
|
@@ -8,6 +8,8 @@ export class Tree {
|
|
|
8
8
|
trunk;
|
|
9
9
|
endpoints;
|
|
10
10
|
directives;
|
|
11
|
+
/** What has been read off the whole tree. See `derived`. */
|
|
12
|
+
memo = new Map();
|
|
11
13
|
constructor(node, endpoints, directives) {
|
|
12
14
|
this.endpoints = endpoints;
|
|
13
15
|
this.directives = directives;
|
|
@@ -19,7 +21,8 @@ export class Tree {
|
|
|
19
21
|
if (path === '/')
|
|
20
22
|
return {
|
|
21
23
|
node: this.trunk,
|
|
22
|
-
parameters: []
|
|
24
|
+
parameters: [],
|
|
25
|
+
route: '/'
|
|
23
26
|
};
|
|
24
27
|
const fragments = fragment(path);
|
|
25
28
|
return this.trunk.match(fragments);
|
|
@@ -28,9 +31,24 @@ export class Tree {
|
|
|
28
31
|
walk() {
|
|
29
32
|
return this.trunk.walk([], TRUNK);
|
|
30
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* What is read off the whole tree rather than off one route — the tools it publishes, the
|
|
36
|
+
* page that lists it — built on demand and dropped whole when a branch is merged. A merge
|
|
37
|
+
* is the only thing that changes what the tree holds; a branch that expires stops being
|
|
38
|
+
* walked, so what is derived from it says so by carrying the node it came from.
|
|
39
|
+
*
|
|
40
|
+
* Nothing that depends on the caller belongs here: the tree is one, and its callers are
|
|
41
|
+
* not.
|
|
42
|
+
*/
|
|
43
|
+
derived(key, build) {
|
|
44
|
+
if (!this.memo.has(key))
|
|
45
|
+
this.memo.set(key, build());
|
|
46
|
+
return this.memo.get(key);
|
|
47
|
+
}
|
|
31
48
|
merge(node, extension) {
|
|
32
49
|
const branch = this.createNode(node, !PROTECTED, extension);
|
|
33
50
|
announce(branch);
|
|
51
|
+
this.memo.clear();
|
|
34
52
|
return this.trunk.merge(branch);
|
|
35
53
|
}
|
|
36
54
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../source/RTD/Tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAQvC,MAAM,OAAO,IAAI;IACE,IAAI,CAAa;IACjB,KAAK,CAAM;IACX,SAAS,CAAkB;IAC3B,UAAU,CAAkB;IAE7C,YACE,IAAiB,EACjB,SAA2B,EAC3B,UAA4B;QAE5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAE7C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,IAAY;QACvB,IAAI,IAAI,KAAK,GAAG;YACd,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,UAAU,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../source/RTD/Tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,3 +14,5 @@ export type Segment = {
|
|
|
14
14
|
* for a segment the caller cannot name, so there is nothing to substitute.
|
|
15
15
|
*/
|
|
16
16
|
export declare function variables(segments: Segment[]): Parameter[];
|
|
17
|
+
/** What the segments a request matched read as: a path with its placeholders, not its values. */
|
|
18
|
+
export declare function template(segments: Segment[]): string;
|