@toa.io/extensions.exposition 1.0.0-alpha.304 → 1.0.0-alpha.306

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.
Files changed (55) hide show
  1. package/components/identity.basic/operations/info.js +6 -2
  2. package/components/identity.basic/source/info.ts +5 -1
  3. package/package.json +5 -5
  4. package/transpiled/Branch.d.ts +11 -1
  5. package/transpiled/Branch.js +3 -2
  6. package/transpiled/Branch.js.map +1 -1
  7. package/transpiled/Endpoint.d.ts +3 -1
  8. package/transpiled/Endpoint.js +14 -2
  9. package/transpiled/Endpoint.js.map +1 -1
  10. package/transpiled/Factory.d.ts +6 -1
  11. package/transpiled/Factory.js +4 -3
  12. package/transpiled/Factory.js.map +1 -1
  13. package/transpiled/Gateway.js +6 -1
  14. package/transpiled/Gateway.js.map +1 -1
  15. package/transpiled/HTTP/Context.d.ts +5 -0
  16. package/transpiled/HTTP/Context.js +5 -0
  17. package/transpiled/HTTP/Context.js.map +1 -1
  18. package/transpiled/HTTP/Server.d.ts +17 -0
  19. package/transpiled/HTTP/Server.js +31 -0
  20. package/transpiled/HTTP/Server.js.map +1 -1
  21. package/transpiled/Introspection.d.ts +5 -0
  22. package/transpiled/Introspection.js +1 -0
  23. package/transpiled/Introspection.js.map +1 -1
  24. package/transpiled/MCP/schema.d.ts +6 -2
  25. package/transpiled/MCP/schema.js +7 -3
  26. package/transpiled/MCP/schema.js.map +1 -1
  27. package/transpiled/MCP/tools.js +1 -1
  28. package/transpiled/MCP/tools.js.map +1 -1
  29. package/transpiled/Remotes.d.ts +6 -0
  30. package/transpiled/Remotes.js +11 -5
  31. package/transpiled/Remotes.js.map +1 -1
  32. package/transpiled/directives/io/IO.js +5 -1
  33. package/transpiled/directives/io/IO.js.map +1 -1
  34. package/transpiled/directives/io/Readonly.d.ts +14 -0
  35. package/transpiled/directives/io/Readonly.js +20 -0
  36. package/transpiled/directives/io/Readonly.js.map +1 -0
  37. package/transpiled/service.js +44 -19
  38. package/transpiled/service.js.map +1 -1
  39. package/ui/dist/_app/immutable/chunks/BWxWooeV.js +1 -0
  40. package/ui/dist/_app/immutable/chunks/{B_XBOx9b.js → DEWcyJIO.js} +2 -2
  41. package/ui/dist/_app/immutable/chunks/{D9-CL3SX.js → DIJj33i_.js} +2 -2
  42. package/ui/dist/_app/immutable/chunks/{BI21DxGX.js → Dd_uoeO5.js} +1 -1
  43. package/ui/dist/_app/immutable/entry/{app.BG2uapp5.js → app.Ca0C0mib.js} +2 -2
  44. package/ui/dist/_app/immutable/entry/start.CZ-f9DlO.js +1 -0
  45. package/ui/dist/_app/immutable/nodes/{0.CAhVptPP.js → 0.J0nDYoBH.js} +1 -1
  46. package/ui/dist/_app/immutable/nodes/{1.CymYf6vY.js → 1.BJWPzZCm.js} +1 -1
  47. package/ui/dist/_app/immutable/nodes/{2.DtwEKRzb.js → 2.BoTc0hYm.js} +1 -1
  48. package/ui/dist/_app/immutable/nodes/{3.BgfGYNeS.js → 3.C5wM5V-u.js} +1 -1
  49. package/ui/dist/_app/immutable/nodes/{4.B7W24tJ1.js → 4.C_4kq_Ey.js} +1 -1
  50. package/ui/dist/_app/immutable/nodes/{5.FCfJU5jO.js → 5.CdpEbADK.js} +1 -1
  51. package/ui/dist/_app/immutable/nodes/{6.B9oqMcPQ.js → 6.BXL9uT_h.js} +1 -1
  52. package/ui/dist/_app/version.json +1 -1
  53. package/ui/dist/index.html +10 -10
  54. package/ui/dist/_app/immutable/chunks/DfeVAkjY.js +0 -1
  55. package/ui/dist/_app/immutable/entry/start.Bnttjc6A.js +0 -1
@@ -1,7 +1,11 @@
1
- export async function effect({ authority, identity }, context) {
1
+ /**
2
+ * A computation: it reads the record and answers what of it may be shown. Reached by a `GET`, which
3
+ * may only read, so what it is matters — see `documentation/readonly.md`.
4
+ */
5
+ export async function computation({ authority, identity }, context) {
2
6
  const object = await context.local.observe({ query: { id: identity } });
3
7
  if (object === null || object instanceof Error || object.authority !== authority)
4
8
  return null;
5
9
  return { username: object.username };
6
10
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxLQUFLLFVBQVUsTUFBTSxDQUMxQixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVMsRUFDOUIsT0FBZ0I7SUFFaEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFdkUsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sWUFBWSxLQUFLLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxTQUFTO1FBQzlFLE9BQU8sSUFBSSxDQUFBO0lBRWIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7QUFDdEMsQ0FBQyJ9
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVMsRUFDOUIsT0FBZ0I7SUFFaEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFdkUsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sWUFBWSxLQUFLLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxTQUFTO1FBQzlFLE9BQU8sSUFBSSxDQUFBO0lBRWIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7QUFDdEMsQ0FBQyJ9
@@ -1,6 +1,10 @@
1
1
  import type { Context, Entity } from '../types/index.d.ts'
2
2
 
3
- export async function effect(
3
+ /**
4
+ * A computation: it reads the record and answers what of it may be shown. Reached by a `GET`, which
5
+ * may only read, so what it is matters — see `documentation/readonly.md`.
6
+ */
7
+ export async function computation(
4
8
  { authority, identity }: Input,
5
9
  context: Context
6
10
  ): Promise<Output | null> {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toa.io/extensions.exposition",
3
- "version": "1.0.0-alpha.304",
3
+ "version": "1.0.0-alpha.306",
4
4
  "type": "module",
5
5
  "description": "Toa Exposition",
6
6
  "author": "temich <tema.gurtovoy@gmail.com>",
@@ -28,8 +28,8 @@
28
28
  "!**/.env*"
29
29
  ],
30
30
  "dependencies": {
31
- "@toa.io/core": "1.0.0-alpha.304",
32
- "@toa.io/definitions": "1.0.0-alpha.304",
31
+ "@toa.io/core": "1.0.0-alpha.306",
32
+ "@toa.io/definitions": "1.0.0-alpha.306",
33
33
  "@toa.io/generic": "1.0.0-alpha.304",
34
34
  "@toa.io/schemas": "1.0.0-alpha.304",
35
35
  "content-type": "3.0.0",
@@ -37,7 +37,7 @@
37
37
  "minimatch": "10.2.6",
38
38
  "msgpackr": "2.1.0",
39
39
  "negotiator": "1.1.0",
40
- "openspan": "1.0.0-alpha.304"
40
+ "openspan": "1.0.0-alpha.305"
41
41
  },
42
42
  "scripts": {
43
43
  "test": "echo \"Error: run tests from root\" && exit 1",
@@ -72,5 +72,5 @@
72
72
  "lru-cache": "11.5.2",
73
73
  "paseto": "4.0.1"
74
74
  },
75
- "gitHead": "a95a5a5a64922b11b23142d4acbcee1331ed31aa"
75
+ "gitHead": "0693d180a8053a7d07dca879dac2a3c4784d6d45"
76
76
  }
@@ -5,7 +5,14 @@ export interface Branch {
5
5
  component: string;
6
6
  isolated: boolean;
7
7
  node: RTD.Node;
8
+ /**
9
+ * The version of the component whose routes these are. It is what the contract of every
10
+ * endpoint they reach belongs to, so a component that changed without its routes changing
11
+ * is still a different thing to expose.
12
+ */
8
13
  version: string;
14
+ /** What the routes are, so that a tree changed by something other than the sources is one too. */
15
+ routes: string;
9
16
  /**
10
17
  * When the tenant that announced it started, by its own clock. A replica on its way
11
18
  * out announces the same component with an older stamp than the one replacing it, and
@@ -16,6 +23,8 @@ export interface Branch {
16
23
  /** A branch the gateway has merged, and the tenant it came from. */
17
24
  export interface Exposed {
18
25
  version: string;
26
+ /** @see Branch.routes */
27
+ routes: string;
19
28
  /** The start time of the tenant this branch came from. */
20
29
  timestamp: number;
21
30
  nodes: Node[];
@@ -23,7 +32,8 @@ export interface Exposed {
23
32
  /**
24
33
  * What to do with an announcement about a component that already has a branch exposed.
25
34
  *
26
- * - `refresh`: the same version, so its expiration is extended and its endpoints left alone
35
+ * - `refresh`: the same component and the same routes, so its expiration is extended and its
36
+ * endpoints left alone
27
37
  * - `superseded`: it came from a tenant that started before the one exposed now
28
38
  * - `merge`: everything else
29
39
  */
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * What to do with an announcement about a component that already has a branch exposed.
3
3
  *
4
- * - `refresh`: the same version, so its expiration is extended and its endpoints left alone
4
+ * - `refresh`: the same component and the same routes, so its expiration is extended and its
5
+ * endpoints left alone
5
6
  * - `superseded`: it came from a tenant that started before the one exposed now
6
7
  * - `merge`: everything else
7
8
  */
8
9
  export function decide(exposed, branch) {
9
- if (exposed.version === branch.version)
10
+ if (exposed.version === branch.version && exposed.routes === branch.routes)
10
11
  return 'refresh';
11
12
  if (branch.timestamp < exposed.timestamp)
12
13
  return 'superseded';
@@ -1 +1 @@
1
- {"version":3,"file":"Branch.js","sourceRoot":"","sources":["../source/Branch.ts"],"names":[],"mappings":"AA4BA;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,OAAgB,EAAE,MAAc;IACrD,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAExD,IAAI,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;QAAE,OAAO,YAAY,CAAA;IAE7D,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"Branch.js","sourceRoot":"","sources":["../source/Branch.ts"],"names":[],"mappings":"AAwCA;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAC,OAAgB,EAAE,MAAc;IACrD,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAE5F,IAAI,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;QAAE,OAAO,YAAY,CAAA;IAE7D,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -10,9 +10,11 @@ export declare class Endpoint implements RTD.Endpoint {
10
10
  private readonly mapping;
11
11
  private readonly discovery;
12
12
  private remote;
13
+ /** Whether the method this serves is a safe one, which `io:readonly` overrides per request. */
14
+ private readonly safe;
13
15
  /** What the operation says, with what the route takes already split out of it. */
14
16
  private introspection;
15
- constructor(endpoint: string, mapping: Mapping, discovery: Promise<Remote>);
17
+ constructor(endpoint: string, mapping: Mapping, discovery: Promise<Remote>, safe?: boolean);
16
18
  call(context: http.Context & Authenticated, parameters: RTD.Parameter[]): Promise<http.OutgoingMessage>;
17
19
  selection(): Record<string, Schema> | null;
18
20
  explain(parameters: RTD.Parameter[]): Promise<Introspection>;
@@ -10,12 +10,16 @@ export class Endpoint {
10
10
  mapping;
11
11
  discovery;
12
12
  remote = null;
13
+ /** Whether the method this serves is a safe one, which `io:readonly` overrides per request. */
14
+ safe;
13
15
  /** What the operation says, with what the route takes already split out of it. */
14
16
  introspection = null;
15
- constructor(endpoint, mapping, discovery) {
17
+ // eslint-disable-next-line max-params
18
+ constructor(endpoint, mapping, discovery, safe = false) {
16
19
  this.endpoint = endpoint;
17
20
  this.mapping = mapping;
18
21
  this.discovery = discovery;
22
+ this.safe = safe;
19
23
  }
20
24
  async call(context, parameters) {
21
25
  const body = await context.body();
@@ -38,6 +42,9 @@ export class Endpoint {
38
42
  */
39
43
  if (context.encoder?.type === JSON_TYPE && context.reads !== true && !context.procedural)
40
44
  request.encoded = true;
45
+ // what the method means, unless a route said otherwise; see `documentation/readonly.md`
46
+ if (context.readonly ?? this.safe)
47
+ request.readonly = true;
41
48
  this.remote ??= await this.discovery;
42
49
  const reply = await this.remote.invoke(this.endpoint, request);
43
50
  if (reply instanceof Error)
@@ -119,9 +126,14 @@ export class EndpointsFactory {
119
126
  if (namespace === undefined || component === undefined)
120
127
  throw new Error('Annotation endpoints must be fully qualified');
121
128
  const discovery = this.remotes.discover(namespace, component, branch?.version);
122
- return new Endpoint(method.mapping.endpoint, mapping, discovery);
129
+ return new Endpoint(method.mapping.endpoint, mapping, discovery, SAFE.has(method.verb));
123
130
  }
124
131
  }
132
+ /**
133
+ * The methods that only read, as RFC 9110 defines safe ones. `OPTIONS` is not among them because it
134
+ * reaches no endpoint, and `TRACE` because the server answers it `501`.
135
+ */
136
+ const SAFE = new Set(['GET', 'HEAD']);
125
137
  const INTERRUPT = true;
126
138
  /**
127
139
  * What a client's idempotency key names, as an identity the runtime can hold: it is what the
@@ -1 +1 @@
1
- {"version":3,"file":"Endpoint.js","sourceRoot":"","sources":["../source/Endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Endpoint.js","sourceRoot":"","sources":["../source/Endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AAOvC,wFAAwF;AACxF,MAAM,SAAS,GAAG,kBAAkB,CAAA;AAEpC,MAAM,OAAO,QAAQ;IACF,QAAQ,CAAQ;IAChB,OAAO,CAAS;IAChB,SAAS,CAAiB;IACnC,MAAM,GAAkB,IAAI,CAAA;IAEpC,+FAA+F;IAC9E,IAAI,CAAS;IAE9B,kFAAkF;IAC1E,aAAa,GAAyB,IAAI,CAAA;IAElD,sCAAsC;IACtC,YACE,QAAgB,EAChB,OAAgB,EAChB,SAA0B,EAC1B,IAAI,GAAY,KAAK;QAErB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,OAAqC,EACrC,UAA2B;QAE3B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;QACzD,uFAAuF;QACvF,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QAEpD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAE9E,6EAA6E;QAC7E,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAEvE,8EAA8E;QAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAEjE;;;;WAIG;QACH,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU;YACtF,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;QAExB,wFAAwF;QACxF,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAA;QAE1D,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAEpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE9D,IAAI,KAAK,YAAY,KAAK;YAAE,MAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAErE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;IACjC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,UAA2B;QAC9C,IAAI,CAAC,aAAa,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAExD,0EAA0E;QAC1E,OAAO,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,UAAU,CAAC,UAA2B;QAClD,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAEpC,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;QAE3E,wFAAwF;QACxF,yFAAyF;QACzF,yFAAyF;QACzF,OAAO,SAAS,CAAC,WAAW,CAAA;QAE5B,IAAI,KAAK,GAAkC,IAAI,CAAA;QAE/C,uFAAuF;QACvF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;YAE9C,IAAI,MAAM,KAAK,SAAS;gBAAE,SAAQ;YAElC,KAAK,KAAK,EAAE,CAAA;YACZ,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;QAChC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;QAC1C,MAAM,aAAa,GAAkB,EAAE,CAAA;QAEvC,IAAI,KAAK,KAAK,IAAI;YAAE,aAAa,CAAC,KAAK,GAAG,KAAK,CAAA;QAE/C,IAAI,KAAK,KAAK,IAAI;YAAE,aAAa,CAAC,KAAK,GAAG,KAAK,CAAA;QAE/C,IAAI,SAAS,KAAK,IAAI;YAAE,aAAa,CAAC,SAAS,GAAG,SAAS,CAAA;QAE3D,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QAEvC,OAAO,aAAa,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAEpC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IACzC,CAAC;IAEO,KAAK,CAAC,OAAqB;QACjC,MAAM,KAAK,GAAe,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACtE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAEhD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAEpF,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,OAAO,CAAC,IAAY;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QAE3B,IAAI,OAAO,KAAK,IAAI;YAAE,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;QAE/D,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IACV,OAAO,CAAS;IAEjC,YAAmB,OAAgB;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,MAAM,CAAC,MAAyB,EAAE,OAAgB;QACvD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAC9B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAE3D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAE1E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAA;QAEhC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,EAAE,SAAS,CAAA;QAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,EAAE,SAAS,CAAA;QAE/D,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;YACpD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;QAEjE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAE9E,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACzF,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;AAErC,MAAM,SAAS,GAAG,IAAI,CAAA;AAEtB;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,QAAQ,CAAC,OAAqC,EAAE,GAAW;IAClE,OAAO,QAAQ,CAAC,MAAM,CACpB,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,SAAS,EACjC,GAAG,EACH,OAAO,CAAC,OAAO,CAAC,MAAM,EACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,CACrB,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,SAAS,GAAG,EAAE,CAAA;AAEpB,MAAM,eAAe,GAAG,iBAAiB,CAAA"}
@@ -4,7 +4,12 @@ import type { extensions } from '@toa.io/core/types';
4
4
  export declare class Factory implements extensions.Factory {
5
5
  private readonly host;
6
6
  constructor(host: Host);
7
- tenant(locator: Locator, node: syntax.Node): Promise<Connector>;
7
+ tenant(locator: Locator, node: syntax.Node, manifest: Manifest): Promise<Connector>;
8
8
  service(): Promise<Connector | null>;
9
9
  }
10
10
  export type Host = extensions.Host;
11
+ /** What a tenant reads of the component it announces. */
12
+ interface Manifest {
13
+ version: string;
14
+ }
15
+ export {};
@@ -6,9 +6,9 @@ export class Factory {
6
6
  constructor(host) {
7
7
  this.host = host;
8
8
  }
9
- async tenant(locator, node) {
9
+ async tenant(locator, node, manifest) {
10
10
  const broadcast = await this.host.broadcast(CHANNEL, locator.id);
11
- const hash = createHash('sha256').update(JSON.stringify(node)).digest('hex');
11
+ const routes = createHash('sha256').update(JSON.stringify(node)).digest('hex');
12
12
  // no timestamp: the tenant stamps each announcement with its own start time
13
13
  const branch = {
14
14
  // boot only ever hands a tenant a component's locator, which always has a namespace
@@ -16,7 +16,8 @@ export class Factory {
16
16
  component: locator.name,
17
17
  isolated: locator.namespace === 'identity',
18
18
  node,
19
- version: hash
19
+ version: manifest.version,
20
+ routes
20
21
  };
21
22
  return new Tenant(broadcast, branch);
22
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Factory.js","sourceRoot":"","sources":["../source/Factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAA;AAOnE,MAAM,OAAO,OAAO;IACD,IAAI,CAAM;IAE3B,YAAmB,IAAU;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,IAAiB;QACrD,MAAM,SAAS,GAAc,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QAC3E,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAE5E,4EAA4E;QAC5E,MAAM,MAAM,GAA8B;YACxC,oFAAoF;YACpF,SAAS,EAAE,OAAO,CAAC,SAAU;YAC7B,SAAS,EAAE,OAAO,CAAC,IAAI;YACvB,QAAQ,EAAE,OAAO,CAAC,SAAS,KAAK,UAAU;YAC1C,IAAI;YACJ,OAAO,EAAE,IAAI;SACd,CAAA;QAED,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACtC,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;QAEhD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"Factory.js","sourceRoot":"","sources":["../source/Factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAA;AAOnE,MAAM,OAAO,OAAO;IACD,IAAI,CAAM;IAE3B,YAAmB,IAAU;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,OAAgB,EAChB,IAAiB,EACjB,QAAkB;QAElB,MAAM,SAAS,GAAc,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QAC3E,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAE9E,4EAA4E;QAC5E,MAAM,MAAM,GAA8B;YACxC,oFAAoF;YACpF,SAAS,EAAE,OAAO,CAAC,SAAU;YAC7B,SAAS,EAAE,OAAO,CAAC,IAAI;YACvB,QAAQ,EAAE,OAAO,CAAC,SAAS,KAAK,UAAU;YAC1C,IAAI;YACJ,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM;SACP,CAAA;QAED,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACtC,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;QAEhD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;CACF"}
@@ -267,7 +267,12 @@ export class Gateway extends Connector {
267
267
  console.error('Branch merge exception', { message, ...attributes });
268
268
  return;
269
269
  }
270
- this.branches.set(id, { version: branch.version, timestamp: branch.timestamp, nodes });
270
+ this.branches.set(id, {
271
+ version: branch.version,
272
+ routes: branch.routes,
273
+ timestamp: branch.timestamp,
274
+ nodes
275
+ });
271
276
  if (this.lastMerge !== 0)
272
277
  this.widestGap = Math.max(this.widestGap, Date.now() - this.lastMerge);
273
278
  this.lastMerge = Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"Gateway.js","sourceRoot":"","sources":["../source/Gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Gateway.js","sourceRoot":"","sources":["../source/Gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAexD,MAAM,OAAO,OAAQ,SAAQ,SAAS;IACnB,SAAS,CAAW;IACpB,IAAI,CAAM;IACV,WAAW,CAAc;IACzB,UAAU,CAAkB;IAE7C,iEAAiE;IAChD,UAAU,CAAmB;IAE9C,2BAA2B;IACV,GAAG,CAAe;IAEnC,6EAA6E;IAC5D,QAAQ,CAAU;IAClB,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAA;IAC9C,SAAS,GAAG,CAAC,CAAA;IACb,SAAS,GAAG,CAAC,CAAA;IACb,QAAQ,GAAG,CAAC,CAAA;IACZ,OAAO,GAAG,KAAK,CAAA;IACf,iBAAiB,GAAwB,IAAI,CAAA;IAErD,sCAAsC;IACtC,YACE,SAAoB,EACpB,IAAU,EACV,YAA0B,EAC1B,UAA4B,EAC5B,UAA6B,EAC7B,GAAkB;QAElB,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,WAAW,GAAG,YAAY,CAAA;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;QAElC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,OAAqB;QACxC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAE9D,IAAI,YAAY,KAAK,IAAI;YAAE,OAAO,YAAY,CAAA;QAE9C,gFAAgF;QAChF,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAE7C,qFAAqF;QACrF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAE9D,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,QAAQ,CAAC,OAAqB;QAC1C,MAAM,KAAK,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEpE,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,GAAG;YAC1D,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAEvD,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,GAAG;YACnD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAE/C,2EAA2E;QAC3E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,GAAG,GAAG;YAChF,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE7C,sFAAsF;QACtF,yDAAyD;QACzD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;YAE7B,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAA;QAChC,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,wFAAwF;IAChF,MAAM,CAAC,OAAqB;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAElC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAA;IACvE,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,KAAK,CAAC,OAAqB;QACvC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEhD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;YACtC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;QAEtD,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;QAEjC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,GAAG,KAAK,CAAA;QAErF,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAE9D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAEjC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,UAAU;aACzC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;aAC5B,KAAK,CAAC,OAAO,CAAC,CAAA;QACjB,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;QAE/E,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEhE,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEkB,KAAK,CAAC,IAAI;QAC3B,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QAErB,qFAAqF;QACrF,MAAM,MAAM,GAAa,EAAE,CAAA;QAE3B,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAE9C,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEvC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SAC3D,CAAC,CAAA;IACJ,CAAC;IAED;;;;;OAKG;IACgB,KAAK,CAAC,KAAK;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;IACrB,CAAC;IAEkB,OAAO;QACxB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACnC,CAAC;IAEO,KAAK,CAAC,OAAqB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEnD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,2DAA2D;YAC3D,IAAI,CAAC,MAAM,EAAE,CAAA;YAEb,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;QAC5C,CAAC;QAED,uFAAuF;QACvF,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QAElC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QAE7C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YACxE,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,CAAA;YAElF,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,aAAa,CAAC,CAAA;YAEnF,OAAO,IAAI,KAAK,EAAE,CAAA;QACpB,CAAC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAE5C,IAAI,OAAO,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAElE,kFAAkF;QAClF,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,KAAK,CAAC,IAAI,CAChB,MAAc,EACd,OAAqB,EACrB,UAAuB;QAEvB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;YAC/D,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAA;QAEvD,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;YAAE,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAA;QAE5D,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI;YAAE,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAE/D,OAAO,CAAC,MAAM,MAAM,CAAC,QAAQ;aAC1B,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;aACzB,KAAK,CAAC,OAAO,CAAC,CAAyB,CAAA;IAC5C,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,OAAqB,EACrB,IAAU,EACV,UAAuB;QAEvB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAA;QAClF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAElC,2FAA2F;QAC3F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YAC5D,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAA;QAE5B,sFAAsF;QACtF,0BAA0B;QAC1B,OAAO;YACL,IAAI,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,EAAE;YAClC,OAAO,EAAE,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAClD,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,KAAK,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC1C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAA;QAClC,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAS,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAErE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAA;QAEjB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,KAAK;QACjB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAM;YAExB,IAAI,KAAK,GAAG,CAAC;gBAAE,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;YAEjE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAM;QAExB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAE1B,MAAM,IAAI,CAAC,SAAS;aACjB,QAAQ,CAAO,MAAM,EAAE,IAAI,CAAC;aAC5B,KAAK,CAAC,CAAC,SAAgB,EAAE,EAAE,CAC1B,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CACvE,CAAA;IACL,CAAC;IAEO,MAAM;QACZ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,aAAa;YAAE,OAAM;QAEtD,KAAK,IAAI,CAAC,IAAI,EAAE,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAAoB;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAA;QAC5C,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAA;QAEnC,0EAA0E;QAC1E,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,KAAK;YACL,UAAU,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;SAChE,CAAC;aACC,OAAO,CAAC,GAAG,EAAE;YACZ,KAAK,CAAC,KAAK,EAAE,CAAA;QACf,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAElB,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;YAEhE,OAAM;QACR,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAClD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;gBAAE,MAAK;YAEjC,MAAM,UAAU,CAAC,WAAW,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAA;QAErD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,CAAA;IACzE,CAAC;IAEO,KAAK,CAAC,MAAc;QAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,GAAG,MAAM,CAAC,SAAS,CAAA;QAEpD,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAA;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAErC,IAAI,OAAO,KAAK,SAAS;YACvB,QAAQ,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;gBAChC,yEAAyE;gBACzE,KAAK,SAAS;oBACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;oBAChC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAA;oBAE7C,OAAM;gBAER,KAAK,YAAY;oBACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE;wBACjC,GAAG,UAAU;wBACb,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,OAAO,EAAE,OAAO,CAAC,SAAS;qBAC3B,CAAC,CAAA;oBAEF,OAAM;YACV,CAAC;QAEH,IAAI,KAAa,CAAA;QAEjB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC9C,CAAC;QAAC,OAAO,SAAkB,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAA;YAEhF,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC,CAAA;YAEnE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE;YACpB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK;SACN,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;QAExE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC3B,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAA;QAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;QAE7B,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;IAC3C,CAAC;CACF;AAID,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAC5B,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAC/B,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAC7B,MAAM,cAAc,GAAG,MAAM,CAAA;AAC7B,MAAM,WAAW,GAAG,EAAE,CAAA;AACtB,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACzC,MAAM,aAAa,GAAG,KAAK,CAAA"}
@@ -45,6 +45,11 @@ export declare class Context {
45
45
  * the reply passes whole.
46
46
  */
47
47
  output?: string[];
48
+ /**
49
+ * Whether the call this request makes may only read, as `io:readonly` states it. Absent where
50
+ * no route states one, and the method the request was made with is then what answers.
51
+ */
52
+ readonly?: boolean;
48
53
  /**
49
54
  * Whether anything on the way out reads the body: a directive that takes a property of it, or
50
55
  * builds an answer around it. What does says so, and a reply is then values rather than bytes.
@@ -48,6 +48,11 @@ export class Context {
48
48
  * the reply passes whole.
49
49
  */
50
50
  output;
51
+ /**
52
+ * Whether the call this request makes may only read, as `io:readonly` states it. Absent where
53
+ * no route states one, and the method the request was made with is then what answers.
54
+ */
55
+ readonly;
51
56
  /**
52
57
  * Whether anything on the way out reads the body: a directive that takes a property of it, or
53
58
  * builds an answer around it. What does says so, and a reply is then values rather than bytes.
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../source/HTTP/Context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../source/HTTP/Context.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Connector } from '@toa.io/core';
2
2
  import { type OutgoingMessage } from './messages.ts';
3
3
  import { Context } from './Context.ts';
4
+ import type { Gate } from '@toa.io/core';
4
5
  import type { Protocol } from './types.ts';
5
6
  import type { Bouncer, Censor, MCPAnnotation as MCP, OAuth, RPCAnnotation as RPC } from '@toa.io/definitions/extensions.exposition';
6
7
  export declare class Server extends Connector {
@@ -12,6 +13,16 @@ export declare class Server extends Connector {
12
13
  private readonly sessions;
13
14
  /** Every request not yet answered in full, by what it is answered on. */
14
15
  private readonly inflight;
16
+ /** Whether the process has been told to go quiet, see `stop`. */
17
+ private quiesced;
18
+ /**
19
+ * The gate that holds the gateway, where there is one. While it is down the port stays bound
20
+ * and every request is answered `503`: a client is owed an answer, and a closed port is not
21
+ * one — nor is one that whatever fronts the deployment invents on its behalf.
22
+ */
23
+ private gate?;
24
+ /** What a halt takes the gateway down by, so that this can say when it is back. */
25
+ gated(gate: Gate): void;
15
26
  /** Resolves the wait for the last of them, while the stop is waiting. */
16
27
  private drained;
17
28
  private readonly probe;
@@ -31,6 +42,12 @@ export declare class Server extends Connector {
31
42
  private h1;
32
43
  /** HTTP/2 has no `clientError`: failures surface per session, per stream, or per frame. */
33
44
  private h2;
45
+ /**
46
+ * While the process is quiesced the port stays bound and every request is answered `503`: a
47
+ * refused connection is not an answer, and the answer has to be the application's.
48
+ */
49
+ protected pause(): void;
50
+ protected unpause(): void;
34
51
  private listener;
35
52
  private serve;
36
53
  private success;
@@ -21,6 +21,18 @@ export class Server extends Connector {
21
21
  sessions = new Set();
22
22
  /** Every request not yet answered in full, by what it is answered on. */
23
23
  inflight = new Map();
24
+ /** Whether the process has been told to go quiet, see `stop`. */
25
+ quiesced = false;
26
+ /**
27
+ * The gate that holds the gateway, where there is one. While it is down the port stays bound
28
+ * and every request is answered `503`: a client is owed an answer, and a closed port is not
29
+ * one — nor is one that whatever fronts the deployment invents on its behalf.
30
+ */
31
+ gate;
32
+ /** What a halt takes the gateway down by, so that this can say when it is back. */
33
+ gated(gate) {
34
+ this.gate = gate;
35
+ }
24
36
  /** Resolves the wait for the last of them, while the stop is waiting. */
25
37
  drained = null;
26
38
  probe;
@@ -131,7 +143,26 @@ export class Server extends Connector {
131
143
  socket.destroy();
132
144
  });
133
145
  }
146
+ /**
147
+ * While the process is quiesced the port stays bound and every request is answered `503`: a
148
+ * refused connection is not an answer, and the answer has to be the application's.
149
+ */
150
+ pause() {
151
+ this.quiesced = true;
152
+ }
153
+ unpause() {
154
+ this.quiesced = false;
155
+ }
134
156
  listener(request, response) {
157
+ // answered before anything is parsed: a gateway that is not working does no work, it says so
158
+ if (this.quiesced || this.gate?.holding() === false) {
159
+ const headers = { 'cache-control': 'no-store' };
160
+ const remaining = this.gate?.remaining() ?? 0;
161
+ if (remaining > 0)
162
+ headers['retry-after'] = remaining.toString();
163
+ response.writeHead(503, headers).end();
164
+ return;
165
+ }
135
166
  request.once('error', (error) => {
136
167
  console.warn('Request error', errorAttributes(request, error));
137
168
  if (!response.writableEnded)
@@ -1 +1 @@
1
- {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../source/HTTP/Server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../source/HTTP/Server.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,11 @@ export interface Introspection {
33
33
  * call, and the same one mounted twice is as safe under either.
34
34
  */
35
35
  once?: boolean;
36
+ /**
37
+ * Whether the call this method makes may only read — [`io:readonly`](io.md#readonly). Said only
38
+ * where a route states it: absent, the method says it, and `GET` and `HEAD` are the safe ones.
39
+ */
40
+ readonly?: boolean;
36
41
  /** whether the route publishes this method to a model — [`mcp:tool`](mcp.md) */
37
42
  mcp?: boolean;
38
43
  route?: Record<string, Schema>;
@@ -29,6 +29,7 @@ const KEYS = [
29
29
  'protected',
30
30
  'system',
31
31
  'once',
32
+ 'readonly',
32
33
  'mcp',
33
34
  'route',
34
35
  'query',
@@ -1 +1 @@
1
- {"version":3,"file":"Introspection.js","sourceRoot":"","sources":["../source/Introspection.ts"],"names":[],"mappings":"AAiFA;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QAC5B,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;KAC/C,CAAY,CAAA;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,aAA4B;IAChD,MAAM,OAAO,GAAkB,EAAE,CAAA;IAEjC,KAAK,MAAM,GAAG,IAAI,IAAI;QACpB,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS;YAAG,OAAO,CAAC,GAAG,CAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IAEtF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,IAAI,GAAG;IACX,OAAO;IACP,aAAa;IACb,WAAW;IACX,eAAe;IACf,SAAS;IACT,WAAW;IACX,QAAQ;IACR,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,WAAW;IACX,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;CACA,CAAA;AAEV;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,OAAgB,EAAE,QAAgB;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAiC,CAAA;IACvD,MAAM,UAAU,GAAG,KAAK,EAAE,UAAU,CAAA;IAEpC,IACE,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,IAAI;QACd,UAAU,KAAK,SAAS;QACxB,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC;QAEzB,OAAO,SAAS,CAAA;IAElB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IAEnC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAA;IAE3B,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC9B,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;IAErE,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CACtB,MAA0B,EAC1B,OAAoB;IAEpB,MAAM,KAAK,GAAG,MAAkC,CAAA;IAEhD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAA;IAExD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAC3B,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAuB,CAAA;IAEjF,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IAEjD,MAAM,UAAU,GAA2B,EAAE,CAAA;IAE7C,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QAC7D,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;IAEpD,MAAM,UAAU,GAAU,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,CAAA;IAElD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC9B,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAE1E,OAAO,UAA+B,CAAA;AACxC,CAAC"}
1
+ {"version":3,"file":"Introspection.js","sourceRoot":"","sources":["../source/Introspection.ts"],"names":[],"mappings":"AAuFA;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QAC5B,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;KAC/C,CAAY,CAAA;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,aAA4B;IAChD,MAAM,OAAO,GAAkB,EAAE,CAAA;IAEjC,KAAK,MAAM,GAAG,IAAI,IAAI;QACpB,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS;YAAG,OAAO,CAAC,GAAG,CAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IAEtF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,IAAI,GAAG;IACX,OAAO;IACP,aAAa;IACb,WAAW;IACX,eAAe;IACf,SAAS;IACT,WAAW;IACX,QAAQ;IACR,MAAM;IACN,UAAU;IACV,KAAK;IACL,OAAO;IACP,OAAO;IACP,WAAW;IACX,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;CACA,CAAA;AAEV;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,OAAgB,EAAE,QAAgB;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAiC,CAAA;IACvD,MAAM,UAAU,GAAG,KAAK,EAAE,UAAU,CAAA;IAEpC,IACE,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,IAAI;QACd,UAAU,KAAK,SAAS;QACxB,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC;QAEzB,OAAO,SAAS,CAAA;IAElB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IAEnC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAA;IAE3B,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC9B,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;IAErE,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CACtB,MAA0B,EAC1B,OAAoB;IAEpB,MAAM,KAAK,GAAG,MAAkC,CAAA;IAEhD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAA;IAExD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAC3B,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAuB,CAAA;IAEjF,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IAEjD,MAAM,UAAU,GAA2B,EAAE,CAAA;IAE7C,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QAC7D,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;IAEpD,MAAM,UAAU,GAAU,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,CAAA;IAElD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC9B,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAE1E,OAAO,UAA+B,CAAA;AACxC,CAAC"}
@@ -14,5 +14,9 @@ export declare function input(introspection: Introspection, variables: string[],
14
14
  * reply validated against is worse said emptily than left unsaid.
15
15
  */
16
16
  export declare function output(introspection: Introspection): object | undefined;
17
- /** What the verb says of the call, which the revision has a client treat as a hint. */
18
- export declare function annotations(verb: string): Annotations | undefined;
17
+ /**
18
+ * What the call is, which the revision has a client treat as a hint — and a client that reads
19
+ * `readOnlyHint` may call a tool without asking, so a route that says it writes is believed over
20
+ * the verb it is served under.
21
+ */
22
+ export declare function annotations(verb: string, introspection: Introspection): Annotations | undefined;
@@ -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
- /** What the verb says of the call, which the revision has a client treat as a hint. */
60
- export function annotations(verb) {
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,uFAAuF;AACvF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,KAAK,GAAgB,EAAE,CAAA;IAE7B,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM;QAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;IAEhE,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"}
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"}
@@ -60,7 +60,7 @@ async function published(tree) {
60
60
  continue;
61
61
  const described = introspection.description;
62
62
  const schema = output(introspection);
63
- const hints = annotations(verb);
63
+ const hints = annotations(verb, introspection);
64
64
  // in the order the revision documents one, which is the order it is read in
65
65
  const tool = {
66
66
  name: named,