@toa.io/extensions.exposition 1.0.0-alpha.286 → 1.0.0-alpha.288
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/CHANGELOG.md +16 -0
- package/components/identity.basic/tsconfig.tsbuildinfo +1 -1
- package/components/identity.clients/tsconfig.tsbuildinfo +1 -1
- package/components/identity.credentials/tsconfig.tsbuildinfo +1 -1
- package/components/identity.federation/tsconfig.tsbuildinfo +1 -1
- package/components/identity.grants/tsconfig.tsbuildinfo +1 -1
- package/components/identity.keys/tsconfig.tsbuildinfo +1 -1
- package/components/identity.otp/tsconfig.tsbuildinfo +1 -1
- package/components/identity.passkeys/manifest.toa.yaml +2 -1
- package/components/identity.passkeys/source/errors.test.ts +34 -0
- package/components/identity.passkeys/source/webauthn.test.ts +26 -0
- package/components/identity.passkeys/tsconfig.tsbuildinfo +1 -1
- package/components/identity.passkeys/types/toa.d.ts +1 -1
- package/components/identity.tokens/tsconfig.tsbuildinfo +1 -1
- package/documentation/access.md +22 -4
- package/documentation/discovery.md +81 -0
- package/documentation/help.md +109 -0
- package/documentation/introspection.md +34 -9
- package/documentation/mcp.md +13 -16
- package/features/cors.feature +31 -1
- package/features/dev.feature +2 -0
- package/features/discovery.feature +211 -0
- package/features/discovery.ui.feature +197 -0
- package/features/help.feature +466 -0
- package/features/introspection.feature +94 -8
- package/features/map.feature +1 -0
- package/features/mcp.feature +74 -12
- package/features/methods.feature +2 -1
- package/features/oauth.grants.feature +3 -1
- package/features/octets.download.feature +1 -0
- package/features/octets.meta.feature +1 -0
- package/features/site/_app/immutable/asset.js +1 -0
- package/features/site/favicon.ico +0 -0
- package/features/site/index.html +10 -0
- package/features/steps/Parameters.ts +12 -0
- package/package.json +6 -4
- package/readme.md +3 -0
- package/source/Directive.ts +4 -0
- package/source/Discovery/Explorer.ts +34 -0
- package/source/Discovery/Site.test.ts +147 -0
- package/source/Discovery/Site.ts +202 -0
- package/source/Discovery/index.ts +3 -0
- package/source/Discovery/tree.test.ts +175 -0
- package/source/Discovery/tree.ts +77 -0
- package/source/Discovery/trunk.ts +23 -0
- package/source/Endpoint.ts +4 -0
- package/source/Gateway.ts +34 -4
- package/source/HTTP/Context.ts +7 -0
- package/source/Introspection.ts +33 -10
- package/source/MCP/schema.ts +16 -5
- package/source/MCP/tools.ts +14 -32
- package/source/Mapping.ts +5 -0
- package/source/Query.ts +17 -2
- package/source/RTD/Directives.ts +10 -0
- package/source/RTD/Endpoint.ts +8 -1
- package/source/RTD/Node.ts +20 -6
- package/source/RTD/Tree.ts +19 -9
- package/source/RTD/factory.ts +37 -1
- package/source/RTD/segment.ts +21 -0
- package/source/const.ts +8 -0
- package/source/directives/auth/Anonymous.test.ts +31 -5
- package/source/directives/auth/Anonymous.ts +5 -3
- package/source/directives/auth/Anyone.ts +6 -0
- package/source/directives/auth/Assert.ts +5 -0
- package/source/directives/auth/Delegate.ts +5 -2
- package/source/directives/auth/Federation.ts +11 -0
- package/source/directives/auth/Id.ts +15 -0
- package/source/directives/auth/Input.ts +5 -0
- package/source/directives/auth/Role.ts +17 -0
- package/source/directives/cors/CORS.test.ts +75 -0
- package/source/directives/cors/CORS.ts +10 -3
- package/source/directives/help/Family.ts +118 -0
- package/source/directives/help/Help.test.ts +227 -0
- package/source/directives/help/Help.ts +26 -0
- package/source/directives/help/Parameters.ts +47 -0
- package/source/directives/help/described.ts +57 -0
- package/source/directives/help/index.ts +45 -0
- package/source/directives/index.ts +8 -1
- package/source/directives/map/Headers.ts +6 -6
- package/source/directives/mcp/MCP.ts +12 -21
- package/source/directives/mcp/Tool.test.ts +22 -68
- package/source/directives/mcp/Tool.ts +14 -41
- package/transpiled/Directive.d.ts +1 -0
- package/transpiled/Directive.js +3 -0
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Discovery/Explorer.d.ts +11 -0
- package/transpiled/Discovery/Explorer.js +29 -0
- package/transpiled/Discovery/Explorer.js.map +1 -0
- package/transpiled/Discovery/Site.d.ts +43 -0
- package/transpiled/Discovery/Site.js +171 -0
- package/transpiled/Discovery/Site.js.map +1 -0
- package/transpiled/Discovery/index.d.ts +3 -0
- package/transpiled/Discovery/index.js +4 -0
- package/transpiled/Discovery/index.js.map +1 -0
- package/transpiled/Discovery/tree.d.ts +26 -0
- package/transpiled/Discovery/tree.js +50 -0
- package/transpiled/Discovery/tree.js.map +1 -0
- package/transpiled/Discovery/trunk.d.ts +10 -0
- package/transpiled/Discovery/trunk.js +21 -0
- package/transpiled/Discovery/trunk.js.map +1 -0
- package/transpiled/Endpoint.d.ts +2 -1
- package/transpiled/Endpoint.js +3 -0
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Gateway.d.ts +4 -0
- package/transpiled/Gateway.js +29 -4
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +6 -0
- package/transpiled/HTTP/Context.js +6 -0
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/Introspection.d.ts +18 -7
- package/transpiled/Introspection.js +16 -1
- package/transpiled/Introspection.js.map +1 -1
- package/transpiled/MCP/schema.d.ts +2 -2
- package/transpiled/MCP/schema.js +11 -5
- package/transpiled/MCP/schema.js.map +1 -1
- package/transpiled/MCP/tools.d.ts +1 -1
- package/transpiled/MCP/tools.js +12 -28
- package/transpiled/MCP/tools.js.map +1 -1
- package/transpiled/Mapping.d.ts +2 -0
- package/transpiled/Mapping.js +4 -0
- package/transpiled/Mapping.js.map +1 -1
- package/transpiled/Query.d.ts +12 -0
- package/transpiled/Query.js +16 -2
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RTD/Directives.d.ts +8 -0
- package/transpiled/RTD/Endpoint.d.ts +7 -1
- package/transpiled/RTD/Node.d.ts +11 -2
- package/transpiled/RTD/Node.js +12 -2
- package/transpiled/RTD/Node.js.map +1 -1
- package/transpiled/RTD/Tree.js +15 -8
- package/transpiled/RTD/Tree.js.map +1 -1
- package/transpiled/RTD/factory.js +27 -1
- package/transpiled/RTD/factory.js.map +1 -1
- package/transpiled/RTD/segment.d.ts +7 -0
- package/transpiled/RTD/segment.js +17 -0
- package/transpiled/RTD/segment.js.map +1 -1
- package/transpiled/const.d.ts +7 -0
- package/transpiled/const.js +7 -0
- package/transpiled/const.js.map +1 -1
- package/transpiled/directives/auth/Anonymous.d.ts +4 -2
- package/transpiled/directives/auth/Anonymous.js +5 -3
- package/transpiled/directives/auth/Anonymous.js.map +1 -1
- package/transpiled/directives/auth/Anyone.d.ts +3 -0
- package/transpiled/directives/auth/Anyone.js +4 -0
- package/transpiled/directives/auth/Anyone.js.map +1 -1
- package/transpiled/directives/auth/Assert.d.ts +2 -0
- package/transpiled/directives/auth/Assert.js +4 -0
- package/transpiled/directives/auth/Assert.js.map +1 -1
- package/transpiled/directives/auth/Delegate.d.ts +4 -1
- package/transpiled/directives/auth/Delegate.js +5 -2
- package/transpiled/directives/auth/Delegate.js.map +1 -1
- package/transpiled/directives/auth/Federation.d.ts +5 -0
- package/transpiled/directives/auth/Federation.js +8 -0
- package/transpiled/directives/auth/Federation.js.map +1 -1
- package/transpiled/directives/auth/Id.d.ts +9 -0
- package/transpiled/directives/auth/Id.js +12 -0
- package/transpiled/directives/auth/Id.js.map +1 -1
- package/transpiled/directives/auth/Input.d.ts +2 -0
- package/transpiled/directives/auth/Input.js +4 -0
- package/transpiled/directives/auth/Input.js.map +1 -1
- package/transpiled/directives/auth/Role.d.ts +7 -0
- package/transpiled/directives/auth/Role.js +11 -0
- package/transpiled/directives/auth/Role.js.map +1 -1
- package/transpiled/directives/cors/CORS.js +9 -2
- package/transpiled/directives/cors/CORS.js.map +1 -1
- package/transpiled/directives/help/Family.d.ts +28 -0
- package/transpiled/directives/help/Family.js +79 -0
- package/transpiled/directives/help/Family.js.map +1 -0
- package/transpiled/directives/help/Help.d.ts +16 -0
- package/transpiled/directives/help/Help.js +22 -0
- package/transpiled/directives/help/Help.js.map +1 -0
- package/transpiled/directives/help/Parameters.d.ts +18 -0
- package/transpiled/directives/help/Parameters.js +34 -0
- package/transpiled/directives/help/Parameters.js.map +1 -0
- package/transpiled/directives/help/described.d.ts +16 -0
- package/transpiled/directives/help/described.js +23 -0
- package/transpiled/directives/help/described.js.map +1 -0
- package/transpiled/directives/help/index.d.ts +22 -0
- package/transpiled/directives/help/index.js +34 -0
- package/transpiled/directives/help/index.js.map +1 -0
- package/transpiled/directives/index.d.ts +4 -0
- package/transpiled/directives/index.js +8 -1
- package/transpiled/directives/index.js.map +1 -1
- package/transpiled/directives/map/Headers.d.ts +5 -0
- package/transpiled/directives/map/Headers.js +7 -5
- package/transpiled/directives/map/Headers.js.map +1 -1
- package/transpiled/directives/mcp/MCP.d.ts +8 -5
- package/transpiled/directives/mcp/MCP.js +9 -13
- package/transpiled/directives/mcp/MCP.js.map +1 -1
- package/transpiled/directives/mcp/Tool.d.ts +6 -12
- package/transpiled/directives/mcp/Tool.js +10 -23
- package/transpiled/directives/mcp/Tool.js.map +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/ui/dist/_app/env.js +1 -0
- package/ui/dist/_app/immutable/assets/0.BcIGtTfw.css +2 -0
- package/ui/dist/_app/immutable/assets/2.BC0-Jhqu.css +1 -0
- package/ui/dist/_app/immutable/assets/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2 +0 -0
- package/ui/dist/_app/immutable/assets/inter-cyrillic-wght-normal.DqGufNeO.woff2 +0 -0
- package/ui/dist/_app/immutable/assets/inter-greek-ext-wght-normal.DlzME5K_.woff2 +0 -0
- package/ui/dist/_app/immutable/assets/inter-greek-wght-normal.CkhJZR-_.woff2 +0 -0
- package/ui/dist/_app/immutable/assets/inter-latin-ext-wght-normal.DO1Apj_S.woff2 +0 -0
- package/ui/dist/_app/immutable/assets/inter-latin-wght-normal.Dx4kXJAl.woff2 +0 -0
- package/ui/dist/_app/immutable/assets/inter-vietnamese-wght-normal.CBcvBZtf.woff2 +0 -0
- package/ui/dist/_app/immutable/chunks/BgTrzN6u.js +1 -0
- package/ui/dist/_app/immutable/chunks/Bjy-W4x2.js +81 -0
- package/ui/dist/_app/immutable/chunks/CWJaG9mK.js +6 -0
- package/ui/dist/_app/immutable/chunks/DjIYL2zC.js +3 -0
- package/ui/dist/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/ui/dist/_app/immutable/chunks/yDQhitF9.js +1 -0
- package/ui/dist/_app/immutable/entry/app.WZSMBcGf.js +2 -0
- package/ui/dist/_app/immutable/entry/start._LkoC6Lz.js +1 -0
- package/ui/dist/_app/immutable/nodes/0.Dl2DqINo.js +1 -0
- package/ui/dist/_app/immutable/nodes/1.CSSnGhVD.js +1 -0
- package/ui/dist/_app/immutable/nodes/2.DmolQyNG.js +14 -0
- package/ui/dist/_app/version.json +1 -0
- package/ui/dist/apple-touch-icon.png +0 -0
- package/ui/dist/favicon-96x96.png +0 -0
- package/ui/dist/favicon.ico +0 -0
- package/ui/dist/index.html +66 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mapping.js","sourceRoot":"","sources":["../source/Mapping.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Mapping.js","sourceRoot":"","sources":["../source/Mapping.ts"],"names":[],"mappings":"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"}
|
package/transpiled/Query.d.ts
CHANGED
|
@@ -21,7 +21,19 @@ export declare class Query {
|
|
|
21
21
|
* Only what it actually accepts — a criteria the declaration closes is refused, and so is
|
|
22
22
|
* a search where none was asked for.
|
|
23
23
|
*/
|
|
24
|
+
/**
|
|
25
|
+
* The querystring parameters this resource declares, which are properties of its own
|
|
26
|
+
* taken out of the input. What selects records is not among them: that is the same of
|
|
27
|
+
* every queryable resource, and `selection` is where it is stated.
|
|
28
|
+
*/
|
|
24
29
|
explain(introspection: Introspection): Record<string, Schema> | null;
|
|
30
|
+
/**
|
|
31
|
+
* What picks the records a call is about, which is the querystring the gateway reads
|
|
32
|
+
* rather than anything the resource declares — the same for every queryable resource,
|
|
33
|
+
* and so not what one says about itself. A procedure states it, because there it is
|
|
34
|
+
* something the caller sends.
|
|
35
|
+
*/
|
|
36
|
+
selection(): Record<string, Schema> | null;
|
|
25
37
|
private split;
|
|
26
38
|
private fitCriteria;
|
|
27
39
|
/** A route that answers one object is not paged, so a request that pages it is a mistake. */
|
package/transpiled/Query.js
CHANGED
|
@@ -65,6 +65,11 @@ export class Query {
|
|
|
65
65
|
* Only what it actually accepts — a criteria the declaration closes is refused, and so is
|
|
66
66
|
* a search where none was asked for.
|
|
67
67
|
*/
|
|
68
|
+
/**
|
|
69
|
+
* The querystring parameters this resource declares, which are properties of its own
|
|
70
|
+
* taken out of the input. What selects records is not among them: that is the same of
|
|
71
|
+
* every queryable resource, and `selection` is where it is stated.
|
|
72
|
+
*/
|
|
68
73
|
explain(introspection) {
|
|
69
74
|
let query = null;
|
|
70
75
|
if (this.query?.parameters !== undefined)
|
|
@@ -76,9 +81,18 @@ export class Query {
|
|
|
76
81
|
query ??= {};
|
|
77
82
|
query[parameter] = schema;
|
|
78
83
|
}
|
|
84
|
+
return query;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* What picks the records a call is about, which is the querystring the gateway reads
|
|
88
|
+
* rather than anything the resource declares — the same for every queryable resource,
|
|
89
|
+
* and so not what one says about itself. A procedure states it, because there it is
|
|
90
|
+
* something the caller sends.
|
|
91
|
+
*/
|
|
92
|
+
selection() {
|
|
79
93
|
if (!this.queryable)
|
|
80
|
-
return
|
|
81
|
-
query
|
|
94
|
+
return null;
|
|
95
|
+
const query = {};
|
|
82
96
|
if (!this.closed)
|
|
83
97
|
query.criteria = keyword('string', 'What to match, in RSQL: `state==hot`, `rank=gt=5;name==*tea*`.');
|
|
84
98
|
query.sort = keyword('string', 'What to order by: `rank:desc`, or `rank` for ascending.');
|
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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"}
|
|
@@ -20,6 +20,8 @@ export interface Directives {
|
|
|
20
20
|
}
|
|
21
21
|
export interface DirectiveFactory {
|
|
22
22
|
create: (directives: syntax.Directive[], route: string) => Directives;
|
|
23
|
+
/** Whether this declaration is carried into the nodes below the one it is on. */
|
|
24
|
+
inheritable: (directive: syntax.Directive) => boolean;
|
|
23
25
|
/** Runs every family's `preflight`, which is request-scoped and needs no node. */
|
|
24
26
|
preflight: (context: Context) => Promise<void>;
|
|
25
27
|
/** Runs every family's `depart`, the counterpart of `preflight`. */
|
|
@@ -35,6 +37,12 @@ export interface DirectiveSet {
|
|
|
35
37
|
export interface DirectiveFamily<TDirective = any, TExtension = any> {
|
|
36
38
|
readonly name: string;
|
|
37
39
|
readonly mandatory: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Whether a declaration applies to everything below the node it is on, as every directive
|
|
42
|
+
* does unless it says otherwise. A family that describes what one node *is* sets this
|
|
43
|
+
* `false`: inherited, it would say the same thing of every resource under it.
|
|
44
|
+
*/
|
|
45
|
+
readonly inherited?: boolean;
|
|
38
46
|
create: (name: string, ...rest: any[]) => TDirective;
|
|
39
47
|
/**
|
|
40
48
|
* Called once per gateway with what the host provides and how the gateway is configured,
|
|
@@ -2,10 +2,16 @@ import { type Context } from './Context.js';
|
|
|
2
2
|
import type * as http from '../HTTP/index.js';
|
|
3
3
|
import type * as syntax from './syntax/index.js';
|
|
4
4
|
import type * as RTD from './index.js';
|
|
5
|
-
import type { Introspection } from '../Introspection.js';
|
|
5
|
+
import type { Introspection, Schema } from '../Introspection.js';
|
|
6
6
|
export interface Endpoint {
|
|
7
7
|
call: (context: http.Context, parameters: RTD.Parameter[]) => Promise<http.OutgoingMessage>;
|
|
8
8
|
explain: (parameters: RTD.Parameter[]) => Promise<Introspection>;
|
|
9
|
+
/**
|
|
10
|
+
* What picks the records a call is about — `criteria`, `sort` and the rest. Not part of
|
|
11
|
+
* what the resource says about itself: it is the same of every queryable one. A
|
|
12
|
+
* procedure carries it, because there it is something the caller sends.
|
|
13
|
+
*/
|
|
14
|
+
selection: () => Record<string, Schema> | null;
|
|
9
15
|
close: () => Promise<void>;
|
|
10
16
|
}
|
|
11
17
|
export interface EndpointsFactory {
|
package/transpiled/RTD/Node.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { type Method, type Methods } from './Method.js';
|
|
|
3
3
|
import { type Match, type Parameter } from './Match.js';
|
|
4
4
|
import type { Segment } from './segment.js';
|
|
5
5
|
import type { Context } from '../HTTP/index.js';
|
|
6
|
+
import { type Described } from '../directives/help/index.js';
|
|
6
7
|
import type { Introspection } from '../Introspection.js';
|
|
7
8
|
export declare class Node {
|
|
8
9
|
intermediate: boolean;
|
|
@@ -27,14 +28,22 @@ export declare class Node {
|
|
|
27
28
|
* makes for it — `'/'` answers the trunk itself, whatever it holds.
|
|
28
29
|
*/
|
|
29
30
|
walk(segments: Segment[], trunk?: boolean): Generator<Mount>;
|
|
30
|
-
/**
|
|
31
|
-
|
|
31
|
+
/**
|
|
32
|
+
* What this resource is, and every method of it this caller may reach, in the order they
|
|
33
|
+
* were declared. The two are answered apart because only the methods are `Allow`.
|
|
34
|
+
*/
|
|
35
|
+
explain(context: Context, parameters: Parameter[]): Promise<Explained>;
|
|
32
36
|
private replace;
|
|
33
37
|
private append;
|
|
34
38
|
private route;
|
|
35
39
|
private nodes;
|
|
36
40
|
private sort;
|
|
37
41
|
}
|
|
42
|
+
/** What a resource says of itself, and what it serves. */
|
|
43
|
+
export interface Explained {
|
|
44
|
+
described: Described | null;
|
|
45
|
+
methods: Record<string, Introspection>;
|
|
46
|
+
}
|
|
38
47
|
/** A method, and the route template it is reached by. */
|
|
39
48
|
export interface Mount {
|
|
40
49
|
segments: Segment[];
|
package/transpiled/RTD/Node.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { guarded, resource } from '../directives/help/index.js';
|
|
1
2
|
export class Node {
|
|
2
3
|
intermediate;
|
|
3
4
|
forward;
|
|
@@ -53,7 +54,10 @@ export class Node {
|
|
|
53
54
|
for (const route of this.routes)
|
|
54
55
|
yield* route.walk(segments);
|
|
55
56
|
}
|
|
56
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* What this resource is, and every method of it this caller may reach, in the order they
|
|
59
|
+
* were declared. The two are answered apart because only the methods are `Allow`.
|
|
60
|
+
*/
|
|
57
61
|
async explain(context, parameters) {
|
|
58
62
|
const entries = Object.entries(this.methods);
|
|
59
63
|
const explained = await Promise.all(entries.map(async ([, method]) => await method.explain(context, parameters)));
|
|
@@ -61,7 +65,13 @@ export class Node {
|
|
|
61
65
|
for (let i = 0; i < entries.length; i++)
|
|
62
66
|
if (explained[i] !== null)
|
|
63
67
|
methods[entries[i][0]] = explained[i];
|
|
64
|
-
|
|
68
|
+
// every method of a node carries the same declaration, so the first that is there says it
|
|
69
|
+
const stated = entries.length === 0 ? null : resource(entries[0][1].directives);
|
|
70
|
+
const described = { ...stated, ...guarded(methods) };
|
|
71
|
+
return {
|
|
72
|
+
described: Object.keys(described).length === 0 ? null : described,
|
|
73
|
+
methods
|
|
74
|
+
};
|
|
65
75
|
}
|
|
66
76
|
replace(node) {
|
|
67
77
|
const methods = Object.values(this.methods);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../source/RTD/Node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../source/RTD/Node.ts"],"names":[],"mappings":"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"}
|
package/transpiled/RTD/Tree.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { console } from 'openspan';
|
|
2
2
|
import { refusal, template } from '../RPC/names.js';
|
|
3
|
+
import { DISCOVERY } from '../const.js';
|
|
3
4
|
import { branchTTL, createNode } from './factory.js';
|
|
4
5
|
import { fragment } from './segment.js';
|
|
5
6
|
export class Tree {
|
|
@@ -12,7 +13,7 @@ export class Tree {
|
|
|
12
13
|
this.directives = directives;
|
|
13
14
|
this.root = node;
|
|
14
15
|
this.trunk = this.createNode(node, PROTECTED);
|
|
15
|
-
|
|
16
|
+
announce(this.trunk);
|
|
16
17
|
}
|
|
17
18
|
match(path) {
|
|
18
19
|
if (path === '/')
|
|
@@ -29,7 +30,7 @@ export class Tree {
|
|
|
29
30
|
}
|
|
30
31
|
merge(node, extension) {
|
|
31
32
|
const branch = this.createNode(node, !PROTECTED, extension);
|
|
32
|
-
|
|
33
|
+
announce(branch);
|
|
33
34
|
return this.trunk.merge(branch);
|
|
34
35
|
}
|
|
35
36
|
/**
|
|
@@ -62,18 +63,24 @@ export class Tree {
|
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
65
|
/**
|
|
65
|
-
* What is served but cannot be
|
|
66
|
-
*
|
|
66
|
+
* What is served but cannot be reached as it reads. Said once per route as it is built,
|
|
67
|
+
* because either of these is otherwise noticed only by the caller who cannot find it.
|
|
67
68
|
*/
|
|
68
|
-
function
|
|
69
|
+
function announce(node) {
|
|
69
70
|
const said = new Set();
|
|
70
71
|
for (const { segments } of node.walk([], TRUNK)) {
|
|
71
|
-
const segment = refusal(segments);
|
|
72
|
-
if (segment === null)
|
|
73
|
-
continue;
|
|
74
72
|
const route = template(segments);
|
|
75
73
|
if (said.has(route))
|
|
76
74
|
continue;
|
|
75
|
+
// the page is served under this prefix, before a request is routed at all
|
|
76
|
+
if (route === DISCOVERY || route.startsWith(DISCOVERY + '/')) {
|
|
77
|
+
said.add(route);
|
|
78
|
+
console.warn('Route is shadowed by the discovery endpoint', { route });
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const segment = refusal(segments);
|
|
82
|
+
if (segment === null)
|
|
83
|
+
continue;
|
|
77
84
|
said.add(route);
|
|
78
85
|
console.warn('Route cannot be addressed as a procedure', { route, segment });
|
|
79
86
|
}
|
|
@@ -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,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,
|
|
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,aAAa,CAAA;AACvC,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;aACf,CAAA;QAEH,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEhC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACpC,CAAC;IAED,iEAAiE;IAC1D,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;IAEM,KAAK,CAAC,IAAiB,EAAE,SAAkB;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAE3D,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEhB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,KAAa;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAA;QAE3C,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAClD,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IAEO,UAAU,CAAC,IAAiB,EAAE,OAAgB,EAAE,SAAmB;QACzE,MAAM,OAAO,GAAY;YACvB,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI,CAAC,UAAU;gBACxB,uEAAuE;gBACvE,sEAAsE;gBACtE,6DAA6D;gBAC7D,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;aAC9D;YACD,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;YACtB,SAAS;SACV,CAAA;QAED,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,IAAU;IAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAE9B,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEhC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAQ;QAE7B,0EAA0E;QAC1E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAEf,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YAEtE,SAAQ;QACV,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;QAEjC,IAAI,OAAO,KAAK,IAAI;YAAE,SAAQ;QAE9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAEf,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IAC9E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,KAAK,CAAC,SAAkB;IAC/B,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAA;IAElE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,SAAoC,CAAA;IAErE,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ;QACnE,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,EAAE;QAC7B,CAAC,CAAC,EAAE,CAAA;AACR,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,KAAK,GAAG,IAAI,CAAA"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
import assert from 'node:assert';
|
|
1
2
|
import { BRANCH_TTL } from '../const.js';
|
|
2
3
|
import { Node } from './Node.js';
|
|
3
4
|
import { Route } from './Route.js';
|
|
4
|
-
import { segment } from './segment.js';
|
|
5
|
+
import { fragment, segment } from './segment.js';
|
|
5
6
|
import { Method } from './Method.js';
|
|
6
7
|
export function createNode(node, context) {
|
|
7
8
|
if (node.isolated === true)
|
|
8
9
|
context.directives.stack = node.directives;
|
|
9
10
|
else
|
|
10
11
|
context.directives.stack = node.directives.concat(context.directives.stack);
|
|
12
|
+
described(node, context);
|
|
11
13
|
const routes = node.routes.map((route) => createRoute(route, context));
|
|
12
14
|
const methods = {};
|
|
13
15
|
for (const method of node.methods)
|
|
@@ -32,6 +34,13 @@ function createRoute(route, context) {
|
|
|
32
34
|
const path = context.path;
|
|
33
35
|
const segments = segment(route.path);
|
|
34
36
|
context.path = join(path, route.path);
|
|
37
|
+
/*
|
|
38
|
+
* What a node says of itself is not said of what is under it. Its own `/` is the
|
|
39
|
+
* exception: an intermediate node is never what a path matches, because that route
|
|
40
|
+
* answers in its place — so the two are one resource and what describes it carries.
|
|
41
|
+
*/
|
|
42
|
+
if (route.path !== ROOT)
|
|
43
|
+
context.directives.stack = stack.filter((directive) => context.directives.factory.inheritable(directive));
|
|
35
44
|
const node = createNode(route.node, context);
|
|
36
45
|
context.directives.stack = stack; // restore
|
|
37
46
|
context.path = path;
|
|
@@ -49,4 +58,21 @@ function createMethod(method, context) {
|
|
|
49
58
|
: context.endpoints.create(method, context);
|
|
50
59
|
return new Method(endpoint, directives);
|
|
51
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* A resource is what it is described beside: a node with no methods of its own is never
|
|
63
|
+
* what a path answers, so nothing would carry what it says about itself. Refused where the
|
|
64
|
+
* declaration is, rather than left to be noticed by whoever cannot find it in the answer.
|
|
65
|
+
*/
|
|
66
|
+
function described(node, context) {
|
|
67
|
+
const help = node.directives.find((directive) => directive.family === HELP && directive.name === 'node');
|
|
68
|
+
if (help === undefined || node.methods.length > 0)
|
|
69
|
+
return;
|
|
70
|
+
// an intermediate node's `/` answers in its place, and carries what it says
|
|
71
|
+
if (node.routes.some((route) => route.path === ROOT))
|
|
72
|
+
return;
|
|
73
|
+
const route = '/' + fragment(context.path).join('/');
|
|
74
|
+
assert.fail(`Directive help:node: '${route}' serves no methods`);
|
|
75
|
+
}
|
|
76
|
+
const ROOT = '/';
|
|
77
|
+
const HELP = 'help';
|
|
52
78
|
//# sourceMappingURL=factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../source/RTD/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,IAAI,EAAmB,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../source/RTD/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Parameter } from './Match.js';
|
|
1
2
|
export declare function segment(path: string): Segment[];
|
|
2
3
|
export declare function fragment(path: string): string[];
|
|
3
4
|
export type Segment = {
|
|
@@ -7,3 +8,9 @@ export type Segment = {
|
|
|
7
8
|
placeholder: string | null;
|
|
8
9
|
wildcard?: boolean;
|
|
9
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* What a route template takes, by name. Describing has no values for them — a template is
|
|
13
|
+
* not a path — and nothing that describes a method reads one. A `*` is skipped: it stands
|
|
14
|
+
* for a segment the caller cannot name, so there is nothing to substitute.
|
|
15
|
+
*/
|
|
16
|
+
export declare function variables(segments: Segment[]): Parameter[];
|
|
@@ -19,4 +19,21 @@ function parse(segment) {
|
|
|
19
19
|
else
|
|
20
20
|
return { fragment: segment };
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* What a route template takes, by name. Describing has no values for them — a template is
|
|
24
|
+
* not a path — and nothing that describes a method reads one. A `*` is skipped: it stands
|
|
25
|
+
* for a segment the caller cannot name, so there is nothing to substitute.
|
|
26
|
+
*/
|
|
27
|
+
export function variables(segments) {
|
|
28
|
+
const params = [];
|
|
29
|
+
for (const segment of segments) {
|
|
30
|
+
if (segment.fragment !== null)
|
|
31
|
+
continue;
|
|
32
|
+
if (segment.wildcard === true)
|
|
33
|
+
params.push({ name: '**', value: '' });
|
|
34
|
+
else if (segment.placeholder !== null)
|
|
35
|
+
params.push({ name: segment.placeholder, value: '' });
|
|
36
|
+
}
|
|
37
|
+
return params;
|
|
38
|
+
}
|
|
22
39
|
//# sourceMappingURL=segment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segment.js","sourceRoot":"","sources":["../../source/RTD/segment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"segment.js","sourceRoot":"","sources":["../../source/RTD/segment.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE7B,iBAAiB;IACjB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,MAAM,EAAE,CAAA;IAElD,gBAAgB;IAChB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACxB,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC5B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;SAC/E,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;SACjE,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;QAClF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AACnC,CAAC;AAYD;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,QAAmB;IAC3C,MAAM,MAAM,GAAgB,EAAE,CAAA;IAE9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;YAAE,SAAQ;QAEvC,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;aAChE,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI;YACnC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/transpiled/const.d.ts
CHANGED
|
@@ -13,3 +13,10 @@ export declare const BATCH = 32;
|
|
|
13
13
|
* application could choose is a path it could collide with a route of its own.
|
|
14
14
|
*/
|
|
15
15
|
export declare const MCP = "/.mcp";
|
|
16
|
+
/**
|
|
17
|
+
* Where the resource tree and the page that reads it are served. Pinned for the reason
|
|
18
|
+
* `/.rpc` is: a path an application could choose is a path it could collide with a route of
|
|
19
|
+
* its own. Unlike those two it is not annotated — every entry it carries is what `OPTIONS`
|
|
20
|
+
* on that path already answers to the same caller, and what it adds is the enumeration.
|
|
21
|
+
*/
|
|
22
|
+
export declare const DISCOVERY = "/.discovery";
|
package/transpiled/const.js
CHANGED
|
@@ -13,4 +13,11 @@ export const BATCH = 32;
|
|
|
13
13
|
* application could choose is a path it could collide with a route of its own.
|
|
14
14
|
*/
|
|
15
15
|
export const MCP = '/.mcp';
|
|
16
|
+
/**
|
|
17
|
+
* Where the resource tree and the page that reads it are served. Pinned for the reason
|
|
18
|
+
* `/.rpc` is: a path an application could choose is a path it could collide with a route of
|
|
19
|
+
* its own. Unlike those two it is not annotated — every entry it carries is what `OPTIONS`
|
|
20
|
+
* on that path already answers to the same caller, and what it adds is the enumeration.
|
|
21
|
+
*/
|
|
22
|
+
export const DISCOVERY = '/.discovery';
|
|
16
23
|
//# sourceMappingURL=const.js.map
|
package/transpiled/const.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../source/const.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAA;AAEnC,gFAAgF;AAChF,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAA;AAEtC;;;GAGG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAA;AAE1B,qEAAqE;AACrE,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAA;AAEvB;;;GAGG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAA"}
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../source/const.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAA;AAEnC,gFAAgF;AAChF,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAA;AAEtC;;;GAGG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAA;AAE1B,qEAAqE;AACrE,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAA;AAEvB;;;GAGG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAA;AAE1B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAA"}
|
|
@@ -4,8 +4,10 @@ export declare class Anonymous implements Directive {
|
|
|
4
4
|
constructor(allow: boolean);
|
|
5
5
|
/**
|
|
6
6
|
* A credential refuses, because it would make the reply uncacheable — which is the whole
|
|
7
|
-
* of the rule, and none of it applies to a procedure
|
|
8
|
-
* in an envelope, and the envelope is the one thing that is
|
|
7
|
+
* of the rule, and none of it applies to a procedure, nor to a description. What a
|
|
8
|
+
* procedure answers is a value in an envelope, and the envelope is the one thing that is
|
|
9
|
+
* cached or not; what a description answers is what the resource is, which is not the
|
|
10
|
+
* reply a cache would hold and varies by who asked in any case.
|
|
9
11
|
*/
|
|
10
12
|
authorize(_: any, context: Context): boolean;
|
|
11
13
|
admits(_: any, context: Context): boolean;
|
|
@@ -5,11 +5,13 @@ export class Anonymous {
|
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* A credential refuses, because it would make the reply uncacheable — which is the whole
|
|
8
|
-
* of the rule, and none of it applies to a procedure
|
|
9
|
-
* in an envelope, and the envelope is the one thing that is
|
|
8
|
+
* of the rule, and none of it applies to a procedure, nor to a description. What a
|
|
9
|
+
* procedure answers is a value in an envelope, and the envelope is the one thing that is
|
|
10
|
+
* cached or not; what a description answers is what the resource is, which is not the
|
|
11
|
+
* reply a cache would hold and varies by who asked in any case.
|
|
10
12
|
*/
|
|
11
13
|
authorize(_, context) {
|
|
12
|
-
if (context.procedural)
|
|
14
|
+
if (context.procedural || context.exploratory)
|
|
13
15
|
return this.allow;
|
|
14
16
|
return 'authorization' in context.request.headers ? false : this.allow;
|
|
15
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Anonymous.js","sourceRoot":"","sources":["../../../source/directives/auth/Anonymous.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,SAAS;IACH,KAAK,CAAS;IAE/B,YAAmB,KAAc;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"Anonymous.js","sourceRoot":"","sources":["../../../source/directives/auth/Anonymous.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,SAAS;IACH,KAAK,CAAS;IAE/B,YAAmB,KAAc;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED;;;;;;OAMG;IACI,SAAS,CAAC,CAAM,EAAE,OAAgB;QACvC,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,KAAK,CAAA;QAEhE,OAAO,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;IACxE,CAAC;IAEM,MAAM,CAAC,CAAM,EAAE,OAAgB;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IACnC,CAAC;CACF"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { type Directive, type Context } from './types.js';
|
|
2
|
+
import type { Introspection } from '../../Introspection.js';
|
|
2
3
|
export declare class Anyone implements Directive {
|
|
3
4
|
private readonly allow;
|
|
4
5
|
constructor(allow: boolean);
|
|
5
6
|
authorize(_: any, context: Context): boolean;
|
|
6
7
|
admits(_: any, context: Context): boolean;
|
|
8
|
+
/** Whoever asks, as long as they are somebody. */
|
|
9
|
+
describe(introspection: Introspection): Introspection;
|
|
7
10
|
}
|
|
@@ -9,5 +9,9 @@ export class Anyone {
|
|
|
9
9
|
admits(_, context) {
|
|
10
10
|
return this.authorize(_, context);
|
|
11
11
|
}
|
|
12
|
+
/** Whoever asks, as long as they are somebody. */
|
|
13
|
+
describe(introspection) {
|
|
14
|
+
return this.allow ? { ...introspection, authenticated: true } : introspection;
|
|
15
|
+
}
|
|
12
16
|
}
|
|
13
17
|
//# sourceMappingURL=Anyone.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Anyone.js","sourceRoot":"","sources":["../../../source/directives/auth/Anyone.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Anyone.js","sourceRoot":"","sources":["../../../source/directives/auth/Anyone.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,MAAM;IACA,KAAK,CAAS;IAE/B,YAAmB,KAAc;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,SAAS,CAAC,CAAM,EAAE,OAAgB;QACvC,OAAO,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAA;IAChD,CAAC;IAEM,MAAM,CAAC,CAAM,EAAE,OAAgB;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IACnC,CAAC;IAED,kDAAkD;IAC3C,QAAQ,CAAC,aAA4B;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,CAAA;IAC/E,CAAC;CACF"}
|
|
@@ -2,6 +2,8 @@ import type { Context, Directive, Identity } from './types.js';
|
|
|
2
2
|
export declare class Assert implements Directive {
|
|
3
3
|
private readonly disabled;
|
|
4
4
|
constructor(enabled: boolean);
|
|
5
|
+
/** It admits nobody: it is there to require a credential, not to authorize one. */
|
|
6
|
+
admits(): boolean;
|
|
5
7
|
authorize(identity: Identity | null, context: Context): Promise<boolean>;
|
|
6
8
|
private incept;
|
|
7
9
|
}
|
|
@@ -8,6 +8,10 @@ export class Assert {
|
|
|
8
8
|
assert.ok(typeof enabled === 'boolean', '`auth:assert` directive value must be a boolean');
|
|
9
9
|
this.disabled = !enabled;
|
|
10
10
|
}
|
|
11
|
+
/** It admits nobody: it is there to require a credential, not to authorize one. */
|
|
12
|
+
admits() {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
11
15
|
async authorize(identity, context) {
|
|
12
16
|
if (!this.disabled)
|
|
13
17
|
await this.incept(context, identity);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Assert.js","sourceRoot":"","sources":["../../../source/directives/auth/Assert.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGpC,MAAM,OAAO,MAAM;IACA,QAAQ,CAAS;IAElC,YAAmB,OAAgB;QACjC,MAAM,CAAC,EAAE,CACP,OAAO,OAAO,KAAK,SAAS,EAC5B,iDAAiD,CAClD,CAAA;QAED,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAA;IAC1B,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,QAAyB,EAAE,OAAgB;QAChE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAExD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,QAAyB;QAC9D,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;YAAE,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA;QAEtF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA;YAE9D,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;YAExD,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC3C,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAA;YACvB,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"Assert.js","sourceRoot":"","sources":["../../../source/directives/auth/Assert.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGpC,MAAM,OAAO,MAAM;IACA,QAAQ,CAAS;IAElC,YAAmB,OAAgB;QACjC,MAAM,CAAC,EAAE,CACP,OAAO,OAAO,KAAK,SAAS,EAC5B,iDAAiD,CAClD,CAAA;QAED,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAA;IAC1B,CAAC;IAED,mFAAmF;IAC5E,MAAM;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,QAAyB,EAAE,OAAgB;QAChE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAExD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,QAAyB;QAC9D,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;YAAE,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA;QAEtF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA;YAE9D,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;YAExD,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC3C,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAA;YACvB,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -8,7 +8,10 @@ export declare class Delegate implements Directive {
|
|
|
8
8
|
authorize(identity: Identity | null, context: Context): Promise<boolean>;
|
|
9
9
|
/** It admits whoever there is, and embedding the identity is the request's business. */
|
|
10
10
|
admits(identity: Identity | null): boolean;
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* It takes an identity, and the property it embeds is that identity's — so a caller has
|
|
13
|
+
* nothing to put there.
|
|
14
|
+
*/
|
|
12
15
|
describe(introspection: Introspection): Introspection;
|
|
13
16
|
private embed;
|
|
14
17
|
}
|
|
@@ -19,10 +19,13 @@ export class Delegate {
|
|
|
19
19
|
admits(identity) {
|
|
20
20
|
return identity !== null;
|
|
21
21
|
}
|
|
22
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* It takes an identity, and the property it embeds is that identity's — so a caller has
|
|
24
|
+
* nothing to put there.
|
|
25
|
+
*/
|
|
23
26
|
describe(introspection) {
|
|
24
27
|
take(introspection, this.property);
|
|
25
|
-
return introspection;
|
|
28
|
+
return { ...introspection, authenticated: true };
|
|
26
29
|
}
|
|
27
30
|
embed(body, identity) {
|
|
28
31
|
if (body === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Delegate.js","sourceRoot":"","sources":["../../../source/directives/auth/Delegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAKhC,MAAM,OAAO,QAAQ;IACF,QAAQ,CAAQ;IAChB,SAAS,CAAoB;IAE9C,YAAmB,QAAgB,EAAE,SAA6B;QAChE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,QAAyB,EAAE,OAAgB;QAChE,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QAEnC,QAAQ,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC3D,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;QAEjE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,wFAAwF;IACjF,MAAM,CAAC,QAAyB;QACrC,OAAO,QAAQ,KAAK,IAAI,CAAA;IAC1B,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"Delegate.js","sourceRoot":"","sources":["../../../source/directives/auth/Delegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAKhC,MAAM,OAAO,QAAQ;IACF,QAAQ,CAAQ;IAChB,SAAS,CAAoB;IAE9C,YAAmB,QAAgB,EAAE,SAA6B;QAChE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,QAAyB,EAAE,OAAgB;QAChE,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QAEnC,QAAQ,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC3D,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;QAEjE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,wFAAwF;IACjF,MAAM,CAAC,QAAyB;QACrC,OAAO,QAAQ,KAAK,IAAI,CAAA;IAC1B,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,aAA4B;QAC1C,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAElC,OAAO,EAAE,GAAG,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;IAClD,CAAC;IAEO,KAAK,CAAC,IAAa,EAAE,QAAkB;QAC7C,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,GAAG,EAAE,CAAA;QAEjC,KAAK,CAAC,IAAI,CAAC,CAAA;QACX,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;QAE/C,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED,SAAS,KAAK,CAAC,IAAa;IAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAC3C,MAAM,IAAI,UAAU,CAAC,sBAAsB,CAAC,CAAA;AAChD,CAAC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import type { Directive, Identity, Context } from './types.js';
|
|
2
|
+
import type { Introspection } from '../../Introspection.js';
|
|
2
3
|
import type { Parameter } from '../../RTD/index.js';
|
|
3
4
|
export declare class Federation implements Directive {
|
|
4
5
|
private readonly matchers;
|
|
5
6
|
constructor(options: Options);
|
|
7
|
+
/** Which claims it takes needs the request; that it takes an identity does not. */
|
|
8
|
+
admits(identity: Identity | null): boolean | undefined;
|
|
9
|
+
/** Which claims is the application's business; that it takes an identity is the caller's. */
|
|
10
|
+
describe(introspection: Introspection): Introspection;
|
|
6
11
|
authorize(identity: Identity | null, context: Context, parameters: Parameter[]): boolean;
|
|
7
12
|
}
|
|
8
13
|
interface Claims {
|