@toa.io/extensions.exposition 1.0.0-alpha.303 → 1.0.0-alpha.305
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/operations/info.js +6 -2
- package/components/identity.basic/source/info.ts +5 -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.d.ts +3 -1
- package/transpiled/Endpoint.js +14 -2
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +5 -0
- package/transpiled/HTTP/Context.js +5 -0
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Server.js +1 -4
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +9 -4
- package/transpiled/HTTP/messages.js +11 -30
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/Introspection.d.ts +5 -0
- package/transpiled/Introspection.js +1 -0
- package/transpiled/Introspection.js.map +1 -1
- package/transpiled/MCP/schema.d.ts +6 -2
- package/transpiled/MCP/schema.js +7 -3
- package/transpiled/MCP/schema.js.map +1 -1
- package/transpiled/MCP/tools.js +66 -31
- package/transpiled/MCP/tools.js.map +1 -1
- package/transpiled/RTD/Directives.d.ts +26 -8
- 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 +2 -0
- package/transpiled/RTD/Node.js +1 -1
- package/transpiled/RTD/Node.js.map +1 -1
- package/transpiled/RTD/Tree.d.ts +12 -0
- package/transpiled/RTD/Tree.js +17 -0
- package/transpiled/RTD/Tree.js.map +1 -1
- package/transpiled/directives/auth/Authorization.d.ts +9 -7
- package/transpiled/directives/auth/Authorization.js +13 -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 +24 -0
- package/transpiled/directives/cache/Cache.js.map +1 -1
- package/transpiled/directives/cache/etag.d.ts +12 -1
- package/transpiled/directives/cache/etag.js +17 -1
- package/transpiled/directives/cache/etag.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 +6 -2
- package/transpiled/directives/io/IO.js.map +1 -1
- package/transpiled/directives/io/Readonly.d.ts +14 -0
- package/transpiled/directives/io/Readonly.js +20 -0
- package/transpiled/directives/io/Readonly.js.map +1 -0
- 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 +7 -0
- package/transpiled/measurements.js +7 -1
- package/transpiled/measurements.js.map +1 -1
- package/transpiled/service.js +18 -2
- package/transpiled/service.js.map +1 -1
- package/ui/dist/_app/immutable/chunks/{DRS9txKW.js → Bkbyu6vn.js} +2 -2
- package/ui/dist/_app/immutable/chunks/{DnWGJfpc.js → C7J5KQK6.js} +1 -1
- package/ui/dist/_app/immutable/chunks/DTnwtQM2.js +1 -0
- package/ui/dist/_app/immutable/chunks/{nIxWLg1R.js → DtshrYtp.js} +1 -1
- package/ui/dist/_app/immutable/entry/{app.D4ObD8yN.js → app.C0OvB0hq.js} +2 -2
- package/ui/dist/_app/immutable/entry/start.CFX55M0W.js +1 -0
- package/ui/dist/_app/immutable/nodes/{0.Cy6HYeeI.js → 0.CIL473U0.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{1.yaYCPqWc.js → 1.DDKEU6si.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{2.CurrgQf4.js → 2.BQPvh5Jc.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{3.DE-49kqe.js → 3.jAg26Fhx.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{4.ZYSduUe_.js → 4.DdELMX4y.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{5.hxn_XW6t.js → 5.uYu6Sa_o.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{6.CKsWjgtd.js → 6.Cwh8eXsp.js} +1 -1
- package/ui/dist/_app/version.json +1 -1
- package/ui/dist/index.html +10 -10
- package/transpiled/HTTP/etag.d.ts +0 -15
- package/transpiled/HTTP/etag.js +0 -24
- package/transpiled/HTTP/etag.js.map +0 -1
- package/ui/dist/_app/immutable/chunks/2Pi0xij4.js +0 -1
- package/ui/dist/_app/immutable/entry/start.CNbFMeFw.js +0 -1
package/transpiled/MCP/schema.js
CHANGED
|
@@ -56,10 +56,14 @@ export function output(introspection) {
|
|
|
56
56
|
return undefined;
|
|
57
57
|
return Object.keys(schema).length === 0 ? undefined : schema;
|
|
58
58
|
}
|
|
59
|
-
/**
|
|
60
|
-
|
|
59
|
+
/**
|
|
60
|
+
* What the call is, which the revision has a client treat as a hint — and a client that reads
|
|
61
|
+
* `readOnlyHint` may call a tool without asking, so a route that says it writes is believed over
|
|
62
|
+
* the verb it is served under.
|
|
63
|
+
*/
|
|
64
|
+
export function annotations(verb, introspection) {
|
|
61
65
|
const value = {};
|
|
62
|
-
if (verb === 'GET' || verb === 'HEAD')
|
|
66
|
+
if (introspection.readonly ?? (verb === 'GET' || verb === 'HEAD'))
|
|
63
67
|
value.readOnlyHint = true;
|
|
64
68
|
if (verb === 'DELETE')
|
|
65
69
|
value.destructiveHint = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../source/MCP/schema.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,sCAAsC;AACtC,MAAM,UAAU,KAAK,CACnB,aAA4B,EAC5B,SAAmB,EACnB,SAAwC;IAExC,MAAM,UAAU,GAA4B,EAAE,CAAA;IAC9C,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B;;;;;OAKG;IACH,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,UAAU,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;QAC5E,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzB,CAAC;IAED;;;;;OAKG;IACH,MAAM,KAAK,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE,CAAA;IAEtD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QAC/B,UAAU,CAAC,KAAK,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,iEAAiE;gBACjE,uBAAuB;YACzB,UAAU,EAAE,KAAK;SAClB,CAAA;IAEH,MAAM,IAAI,GAAG,aAAa,CAAC,KAAiC,CAAA;IAE5D,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;IAEtE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAEnD,mFAAmF;IACnF,MAAM,CAAC,oBAAoB,GAAG,KAAK,CAAA;IAEnC,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,aAA4B;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAkC,CAAA;IAE/D,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAE7D,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,MAAiB,CAAA;AAC1E,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../source/MCP/schema.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,sCAAsC;AACtC,MAAM,UAAU,KAAK,CACnB,aAA4B,EAC5B,SAAmB,EACnB,SAAwC;IAExC,MAAM,UAAU,GAA4B,EAAE,CAAA;IAC9C,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B;;;;;OAKG;IACH,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,UAAU,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;QAC5E,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzB,CAAC;IAED;;;;;OAKG;IACH,MAAM,KAAK,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE,CAAA;IAEtD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QAC/B,UAAU,CAAC,KAAK,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,iEAAiE;gBACjE,uBAAuB;YACzB,UAAU,EAAE,KAAK;SAClB,CAAA;IAEH,MAAM,IAAI,GAAG,aAAa,CAAC,KAAiC,CAAA;IAE5D,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;IAEtE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAEnD,mFAAmF;IACnF,MAAM,CAAC,oBAAoB,GAAG,KAAK,CAAA;IAEnC,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,aAA4B;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAkC,CAAA;IAE/D,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAE7D,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,MAAiB,CAAA;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,aAA4B;IAE5B,MAAM,KAAK,GAAgB,EAAE,CAAA;IAE7B,IAAI,aAAa,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,CAAC;QAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;IAE5F,IAAI,IAAI,KAAK,QAAQ;QAAE,KAAK,CAAC,eAAe,GAAG,IAAI,CAAA;IAEnD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ;QAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAA;IAEpE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;AAC5D,CAAC"}
|
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, introspection);
|
|
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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"}
|
|
@@ -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
|
/**
|
|
@@ -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
package/transpiled/RTD/Node.js
CHANGED
|
@@ -52,7 +52,7 @@ export class Node {
|
|
|
52
52
|
*walk(segments, trunk = false) {
|
|
53
53
|
if (trunk || !this.intermediate)
|
|
54
54
|
for (const [verb, method] of Object.entries(this.methods))
|
|
55
|
-
yield { segments, verb, method };
|
|
55
|
+
yield { segments, verb, method, node: this };
|
|
56
56
|
for (const route of this.routes)
|
|
57
57
|
yield* route.walk(segments);
|
|
58
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;IAEN,SAAS,CAAS;IAC3B,MAAM,CAAS;IAEvB,YAAmB,MAAe,EAAE,OAAgB,EAAE,UAAsB;QAC1E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;QACrC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,IAAI,CAAA;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,QAAQ,CAAA;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAEvE,IAAI,CAAC,IAAI,EAAE,CAAA;IACb,CAAC;IAEM,KAAK,CACV,SAAmB,EACnB,UAAU,GAAgB,EAAE,EAC5B,QAAQ,GAAc,EAAE;QAExB,0FAA0F;QAC1F,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAA;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;QAE9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;YAE1D,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAA;YAEhC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAA;YACxB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;QAC1B,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,IAAU;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QAErC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAErE,IAAI,CAAC,IAAI,EAAE,CAAA;QAEX,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,KAAK,CAAC,UAAkB;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IACnD,CAAC;IAED;;;;;;OAMG;IACI,CAAC,IAAI,CAAC,QAAmB,EAAE,KAAK,GAAG,KAAK;QAC7C,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY;YAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;gBACvD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../source/RTD/Node.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;
|
|
@@ -29,9 +31,24 @@ export class Tree {
|
|
|
29
31
|
walk() {
|
|
30
32
|
return this.trunk.walk([], TRUNK);
|
|
31
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
|
+
}
|
|
32
48
|
merge(node, extension) {
|
|
33
49
|
const branch = this.createNode(node, !PROTECTED, extension);
|
|
34
50
|
announce(branch);
|
|
51
|
+
this.memo.clear();
|
|
35
52
|
return this.trunk.merge(branch);
|
|
36
53
|
}
|
|
37
54
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../source/RTD/Tree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../source/RTD/Tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,18 +29,20 @@ export declare class Authorization implements DirectiveFamily<Directive, Extensi
|
|
|
29
29
|
precall(directives: Directive[], context: Context, parameters: Parameter[]): Promise<Output>;
|
|
30
30
|
/**
|
|
31
31
|
* The same disjunction as `precall`, over what can be told without a request. A method no
|
|
32
|
-
* directive admits, and none is undecided about, is not this caller's to be told about
|
|
33
|
-
* `null` takes it out of the answer.
|
|
32
|
+
* directive admits, and none is undecided about, is not this caller's to be told about.
|
|
34
33
|
*
|
|
35
34
|
* A permission is matched against a path, and a description is not a request to one, so
|
|
36
35
|
* `permits` has no say here. The call it describes is still checked, which is where a
|
|
37
36
|
* token's permissions belong.
|
|
38
|
-
*
|
|
39
|
-
* A method that is described is then described by each of them, which is a separate pass:
|
|
40
|
-
* admission is a disjunction and stops at the first that admits, while what the directives
|
|
41
|
-
* fill is not any one of them's to state alone.
|
|
42
37
|
*/
|
|
43
|
-
|
|
38
|
+
admits(directives: Directive[], context: Context): Promise<boolean>;
|
|
39
|
+
/**
|
|
40
|
+
* What the directives fill in of what the method says about itself. A pass of its own,
|
|
41
|
+
* and not the caller's: admission is a disjunction and stops at the first that admits,
|
|
42
|
+
* while what the directives fill is not any one of them's to state alone — and what it
|
|
43
|
+
* fills is filled from whoever calls, which is what a caller may not send for itself.
|
|
44
|
+
*/
|
|
45
|
+
explain(directives: Directive[], introspection: Introspection): Introspection;
|
|
44
46
|
settle(directives: Directive[], context: Context, response: http.OutgoingMessage): Promise<void>;
|
|
45
47
|
/**
|
|
46
48
|
* Re-issuing a credential, and refusing a ban, are the request's business: the header
|
|
@@ -95,35 +95,32 @@ export class Authorization {
|
|
|
95
95
|
}
|
|
96
96
|
/**
|
|
97
97
|
* The same disjunction as `precall`, over what can be told without a request. A method no
|
|
98
|
-
* directive admits, and none is undecided about, is not this caller's to be told about
|
|
99
|
-
* `null` takes it out of the answer.
|
|
98
|
+
* directive admits, and none is undecided about, is not this caller's to be told about.
|
|
100
99
|
*
|
|
101
100
|
* A permission is matched against a path, and a description is not a request to one, so
|
|
102
101
|
* `permits` has no say here. The call it describes is still checked, which is where a
|
|
103
102
|
* token's permissions belong.
|
|
104
|
-
*
|
|
105
|
-
* A method that is described is then described by each of them, which is a separate pass:
|
|
106
|
-
* admission is a disjunction and stops at the first that admits, while what the directives
|
|
107
|
-
* fill is not any one of them's to state alone.
|
|
108
103
|
*/
|
|
109
|
-
async
|
|
104
|
+
async admits(directives, context) {
|
|
110
105
|
let untold = false;
|
|
111
|
-
let admitted = false;
|
|
112
106
|
for (const directive of directives) {
|
|
113
107
|
const admits = await directive.admits?.(context.identity, context);
|
|
114
108
|
if (admits === undefined) {
|
|
115
109
|
untold = true;
|
|
116
110
|
continue;
|
|
117
111
|
}
|
|
118
|
-
if (admits)
|
|
119
|
-
|
|
120
|
-
break;
|
|
121
|
-
}
|
|
112
|
+
if (admits)
|
|
113
|
+
return true;
|
|
122
114
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
115
|
+
return untold;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* What the directives fill in of what the method says about itself. A pass of its own,
|
|
119
|
+
* and not the caller's: admission is a disjunction and stops at the first that admits,
|
|
120
|
+
* while what the directives fill is not any one of them's to state alone — and what it
|
|
121
|
+
* fills is filled from whoever calls, which is what a caller may not send for itself.
|
|
122
|
+
*/
|
|
123
|
+
explain(directives, introspection) {
|
|
127
124
|
for (const directive of directives)
|
|
128
125
|
introspection = directive.describe?.(introspection) ?? introspection;
|
|
129
126
|
return introspection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../../source/directives/auth/Authorization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../../source/directives/auth/Authorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,4 +8,15 @@ export declare class Cache implements DirectiveFamily<Directive> {
|
|
|
8
8
|
create(name: string, value: any): Directive;
|
|
9
9
|
precall(): Output;
|
|
10
10
|
settle(directives: Directive[], context: AuthenticatedContext, response: http.OutgoingMessage): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* What the reply is validated by, which is the body it holds. Request-scoped, because the
|
|
13
|
+
* body is the whole request's: one that made several calls sends back one of them.
|
|
14
|
+
*
|
|
15
|
+
* The tag is formed for a safe method (`GET`, `HEAD`) whose reply the client may store, and
|
|
16
|
+
* for no other: a client never sends a tag back on a write, and a reply stating `no-store`
|
|
17
|
+
* it can never send back at all. A directive that stated a tag of its own — the checksum of
|
|
18
|
+
* a stored file — keeps it. The body is bytes only once it is encoded, so what is left here
|
|
19
|
+
* is what forms the tag out of them.
|
|
20
|
+
*/
|
|
21
|
+
depart(context: http.Context, response: http.OutgoingMessage): void;
|
|
11
22
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Control } from './Control.js';
|
|
2
2
|
import { Exact } from './Exact.js';
|
|
3
|
+
import { same, tag } from './etag.js';
|
|
3
4
|
export class Cache {
|
|
4
5
|
name = 'cache';
|
|
5
6
|
mandatory = true;
|
|
@@ -35,6 +36,29 @@ export class Cache {
|
|
|
35
36
|
else
|
|
36
37
|
directive.set(context, response.headers);
|
|
37
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* What the reply is validated by, which is the body it holds. Request-scoped, because the
|
|
41
|
+
* body is the whole request's: one that made several calls sends back one of them.
|
|
42
|
+
*
|
|
43
|
+
* The tag is formed for a safe method (`GET`, `HEAD`) whose reply the client may store, and
|
|
44
|
+
* for no other: a client never sends a tag back on a write, and a reply stating `no-store`
|
|
45
|
+
* it can never send back at all. A directive that stated a tag of its own — the checksum of
|
|
46
|
+
* a stored file — keeps it. The body is bytes only once it is encoded, so what is left here
|
|
47
|
+
* is what forms the tag out of them.
|
|
48
|
+
*/
|
|
49
|
+
depart(context, response) {
|
|
50
|
+
const method = context.request.method;
|
|
51
|
+
if (method !== 'GET' && method !== 'HEAD')
|
|
52
|
+
return;
|
|
53
|
+
const headers = response.headers;
|
|
54
|
+
if (headers !== undefined && (headers.has('etag') || Control.disabled(headers)))
|
|
55
|
+
return;
|
|
56
|
+
response.validate = (body) => {
|
|
57
|
+
const etag = tag(body);
|
|
58
|
+
const sent = context.request.headers['if-none-match'];
|
|
59
|
+
return { etag, held: sent !== undefined && same(sent, etag) };
|
|
60
|
+
};
|
|
61
|
+
}
|
|
38
62
|
}
|
|
39
63
|
const constructors = {
|
|
40
64
|
control: Control,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../source/directives/cache/Cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../source/directives/cache/Cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAMrC,MAAM,OAAO,KAAK;IACA,IAAI,GAAW,OAAO,CAAA;IACtB,SAAS,GAAY,IAAI,CAAA;IAElC,MAAM,CAAC,IAAY,EAAE,KAAU;QACpC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QAEhC,IAAI,KAAK,KAAK,SAAS;YACrB,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,sBAAsB,CAAC,CAAA;QAEjE,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,UAAuB,EACvB,OAA6B,EAC7B,QAA8B;QAE9B,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;QACrC,MAAM,IAAI,GAAG,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,CAAA;QAElD,QAAQ,CAAC,OAAO,KAAK,IAAI,OAAO,EAAE,CAAA;QAElC,mFAAmF;QACnF,+EAA+E;QAC/E,gDAAgD;QAChD,IAAI,SAAS,YAAY,KAAK,EAAE,CAAC;YAC/B,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;YAExC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,IAAI;YAAE,OAAM;QAEjB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;gBAChD,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;;YAAM,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,OAAqB,EAAE,QAA8B;QACjE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;QAErC,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM;YAAE,OAAM;QAEjD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;QAEhC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7E,OAAM;QAER,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;YACtB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;YAErD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAA;QAC/D,CAAC,CAAA;IACH,CAAC;CACF;AAED,MAAM,YAAY,GAAkD;IAClE,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,KAAK;CACb,CAAA"}
|