@procedures/client 0.9.0 → 0.9.1

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 (115) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/adapters/http/server/addressing.d.ts +78 -0
  4. package/dist/adapters/http/server/addressing.d.ts.map +1 -0
  5. package/dist/adapters/http/server/addressing.js +62 -0
  6. package/dist/adapters/http/server/addressing.js.map +1 -0
  7. package/dist/adapters/http/server/cors.d.ts.map +1 -1
  8. package/dist/adapters/http/server/cors.js +3 -0
  9. package/dist/adapters/http/server/cors.js.map +1 -1
  10. package/dist/adapters/http/server/handler.d.ts +9 -1
  11. package/dist/adapters/http/server/handler.d.ts.map +1 -1
  12. package/dist/adapters/http/server/handler.js +49 -23
  13. package/dist/adapters/http/server/handler.js.map +1 -1
  14. package/dist/adapters/http/server/strategies.d.ts +1 -0
  15. package/dist/adapters/http/server/strategies.d.ts.map +1 -1
  16. package/dist/adapters/http/server/strategies.js +6 -0
  17. package/dist/adapters/http/server/strategies.js.map +1 -1
  18. package/dist/adapters/http/server/transport.d.ts.map +1 -1
  19. package/dist/adapters/http/server/transport.js +7 -2
  20. package/dist/adapters/http/server/transport.js.map +1 -1
  21. package/dist/adapters/http/server/types.d.ts +7 -0
  22. package/dist/adapters/http/server/types.d.ts.map +1 -1
  23. package/dist/adapters/http/shared/strategies.d.ts +7 -0
  24. package/dist/adapters/http/shared/strategies.d.ts.map +1 -1
  25. package/dist/adapters/http/shared/strategies.js +26 -7
  26. package/dist/adapters/http/shared/strategies.js.map +1 -1
  27. package/dist/adapters/local/client/types.d.ts.map +1 -1
  28. package/dist/adapters/local/client/types.js +3 -1
  29. package/dist/adapters/local/client/types.js.map +1 -1
  30. package/dist/browser.d.ts +5 -2
  31. package/dist/browser.d.ts.map +1 -1
  32. package/dist/browser.js +4 -2
  33. package/dist/browser.js.map +1 -1
  34. package/dist/client/client.d.ts +6 -0
  35. package/dist/client/client.d.ts.map +1 -1
  36. package/dist/client/client.js +3 -1
  37. package/dist/client/client.js.map +1 -1
  38. package/dist/client/errors/factory.d.ts.map +1 -1
  39. package/dist/client/errors/factory.js +2 -3
  40. package/dist/client/errors/factory.js.map +1 -1
  41. package/dist/client/middleware/cache.d.ts.map +1 -1
  42. package/dist/client/middleware/cache.js +2 -1
  43. package/dist/client/middleware/cache.js.map +1 -1
  44. package/dist/events/publisher.d.ts +14 -1
  45. package/dist/events/publisher.d.ts.map +1 -1
  46. package/dist/events/publisher.js +20 -6
  47. package/dist/events/publisher.js.map +1 -1
  48. package/dist/node.d.ts +6 -0
  49. package/dist/node.d.ts.map +1 -1
  50. package/dist/node.js +6 -0
  51. package/dist/node.js.map +1 -1
  52. package/dist/procedures/collection/index.d.ts +1 -1
  53. package/dist/procedures/collection/index.d.ts.map +1 -1
  54. package/dist/procedures/collection/index.js +1 -1
  55. package/dist/procedures/collection/index.js.map +1 -1
  56. package/dist/procedures/collection/partition.d.ts +21 -2
  57. package/dist/procedures/collection/partition.d.ts.map +1 -1
  58. package/dist/procedures/collection/partition.js +19 -1
  59. package/dist/procedures/collection/partition.js.map +1 -1
  60. package/dist/procedures/index.d.ts +3 -1
  61. package/dist/procedures/index.d.ts.map +1 -1
  62. package/dist/procedures/index.js +3 -1
  63. package/dist/procedures/index.js.map +1 -1
  64. package/dist/procedures/invoke.d.ts +13 -0
  65. package/dist/procedures/invoke.d.ts.map +1 -1
  66. package/dist/procedures/invoke.js +29 -0
  67. package/dist/procedures/invoke.js.map +1 -1
  68. package/dist/procedures/narrowing.d.ts +93 -0
  69. package/dist/procedures/narrowing.d.ts.map +1 -0
  70. package/dist/procedures/narrowing.js +328 -0
  71. package/dist/procedures/narrowing.js.map +1 -0
  72. package/dist/procedures/types.d.ts +6 -0
  73. package/dist/procedures/types.d.ts.map +1 -1
  74. package/dist/procedures/types.js.map +1 -1
  75. package/dist/server/index.d.ts +2 -2
  76. package/dist/server/index.d.ts.map +1 -1
  77. package/dist/server/index.js +1 -1
  78. package/dist/server/index.js.map +1 -1
  79. package/dist/server/method.d.ts +8 -2
  80. package/dist/server/method.d.ts.map +1 -1
  81. package/dist/server/method.js +16 -5
  82. package/dist/server/method.js.map +1 -1
  83. package/dist/server/procedure-server.d.ts +18 -1
  84. package/dist/server/procedure-server.d.ts.map +1 -1
  85. package/dist/server/procedure-server.js +31 -2
  86. package/dist/server/procedure-server.js.map +1 -1
  87. package/dist/server/types.d.ts +16 -0
  88. package/dist/server/types.d.ts.map +1 -1
  89. package/dist/server/types.js +2 -1
  90. package/dist/server/types.js.map +1 -1
  91. package/package.json +1 -1
  92. package/src/adapters/http/server/addressing.ts +118 -0
  93. package/src/adapters/http/server/cors.ts +3 -0
  94. package/src/adapters/http/server/handler.ts +57 -23
  95. package/src/adapters/http/server/strategies.ts +7 -0
  96. package/src/adapters/http/server/transport.ts +8 -3
  97. package/src/adapters/http/server/types.ts +8 -0
  98. package/src/adapters/http/shared/strategies.ts +25 -7
  99. package/src/adapters/local/client/types.ts +3 -1
  100. package/src/browser.ts +6 -1
  101. package/src/client/client.ts +8 -1
  102. package/src/client/errors/factory.ts +2 -3
  103. package/src/client/middleware/cache.ts +2 -1
  104. package/src/events/publisher.ts +26 -7
  105. package/src/node.ts +7 -0
  106. package/src/procedures/collection/index.ts +1 -1
  107. package/src/procedures/collection/partition.ts +24 -2
  108. package/src/procedures/index.ts +4 -0
  109. package/src/procedures/invoke.ts +38 -0
  110. package/src/procedures/narrowing.ts +357 -0
  111. package/src/procedures/types.ts +7 -0
  112. package/src/server/index.ts +2 -1
  113. package/src/server/method.ts +17 -5
  114. package/src/server/procedure-server.ts +42 -2
  115. package/src/server/types.ts +19 -1
@@ -0,0 +1,78 @@
1
+ /**
2
+ * The addressing of an HTTP request (roadmap CLI-31): a hook of the request and its body that
3
+ * gives the method and the payload of the call.
4
+ *
5
+ * A URL strategy reads only the request, so a single endpoint with the path in the body was not
6
+ * possible. The addressing reads the body too. The default is `urlAddressing()`: the method from
7
+ * the URL, and the body as the payload. `bodyPathAddressing()` reads the path and the input from
8
+ * the body, for example `POST /api/proc` with `{"path": ["notes", "list"], "input": {}}`.
9
+ *
10
+ * This module imports only the types of `node:http`, so it loads no Node code at run time.
11
+ */
12
+ import type { IncomingMessage } from "node:http";
13
+ import type { Method } from "../../../client/types.js";
14
+ import type { NodeUrlStrategy, UrlRequest } from "./handler.js";
15
+ /** The address of a call: the method of the procedure and its payload. */
16
+ export interface CallAddress {
17
+ /** The method of the procedure. */
18
+ readonly method: Method;
19
+ /** The input of the procedure. An absent payload becomes `{}`. */
20
+ readonly payload?: unknown;
21
+ }
22
+ /**
23
+ * The addressing of `procedureHandler` and `HttpServerTransport` (CLI-31): a hook of the request
24
+ * and its body that gives the method and the payload of the call. Null: the request names no
25
+ * call, and the handler answers `INVALID_REQUEST`. An error of the hook gives `INVALID_REQUEST`
26
+ * with its message.
27
+ */
28
+ export interface Addressing {
29
+ (request: UrlRequest, body: unknown, req: IncomingMessage): CallAddress | null;
30
+ /**
31
+ * True: the handler also takes a request for the base path itself, without a segment after
32
+ * it. A single endpoint with the path in the body needs it, for example `POST /api/proc`.
33
+ * @default false
34
+ */
35
+ readonly takesBasePath?: boolean | undefined;
36
+ }
37
+ /** The options of `urlAddressing`. */
38
+ export interface UrlAddressingOptions {
39
+ /**
40
+ * The path before the method in the URL, for the default URL strategy.
41
+ * @default "/api"
42
+ */
43
+ readonly basePath?: string | undefined;
44
+ /**
45
+ * The method of a request. The default reads the URL format of `HttpTransport`:
46
+ * `{basePath}/{service}/{operation}`.
47
+ */
48
+ readonly urlStrategy?: NodeUrlStrategy | undefined;
49
+ }
50
+ /**
51
+ * This function gives the URL addressing, the default of `procedureHandler`: the URL strategy
52
+ * gives the method, and the body is the payload. The `:id` of a RESTful `GET` route of a
53
+ * framework becomes the payload `{ id }`.
54
+ */
55
+ export declare function urlAddressing(options?: UrlAddressingOptions): Addressing;
56
+ /** The options of `bodyPathAddressing`. */
57
+ export interface BodyPathAddressingOptions {
58
+ /**
59
+ * The field of the body with the path of the procedure: a list of segments, or a text with
60
+ * dots between the segments.
61
+ * @default "path"
62
+ */
63
+ readonly pathField?: string | undefined;
64
+ /**
65
+ * The field of the body with the input of the procedure. Without the field, the input is `{}`.
66
+ * @default "input"
67
+ */
68
+ readonly inputField?: string | undefined;
69
+ }
70
+ /**
71
+ * This function gives the addressing of a single endpoint with the path in the body (CLI-31), for
72
+ * example `POST /api/proc` with `{"path": ["notes", "list"], "input": {}}`. The handler takes the
73
+ * base path itself too. The function reads only the own fields of the body, so a `__proto__` key
74
+ * cannot give the path. A body without a valid path names no call: the handler answers
75
+ * `INVALID_REQUEST`.
76
+ */
77
+ export declare function bodyPathAddressing(options?: BodyPathAddressingOptions): Addressing;
78
+ //# sourceMappingURL=addressing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addressing.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/addressing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEhE,0EAA0E;AAC1E,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI,CAAC;IAC/E;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9C;AAED,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CACpD;AAQD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,UAAU,CAQ5E;AAED,2CAA2C;AAC3C,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AASD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,yBAA8B,GAAG,UAAU,CAWtF"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * The addressing of an HTTP request (roadmap CLI-31): a hook of the request and its body that
3
+ * gives the method and the payload of the call.
4
+ *
5
+ * A URL strategy reads only the request, so a single endpoint with the path in the body was not
6
+ * possible. The addressing reads the body too. The default is `urlAddressing()`: the method from
7
+ * the URL, and the body as the payload. `bodyPathAddressing()` reads the path and the input from
8
+ * the body, for example `POST /api/proc` with `{"path": ["notes", "list"], "input": {}}`.
9
+ *
10
+ * This module imports only the types of `node:http`, so it loads no Node code at run time.
11
+ */
12
+ import { pathToMethod } from "../../../server/method.js";
13
+ import { createPatternServerUrlStrategy } from "./strategies.js";
14
+ /** The route parameters that a framework parsed (`req.params` of Express), or none. */
15
+ function paramsOf(req) {
16
+ const parsed = req.params;
17
+ return parsed !== null && typeof parsed === "object" ? parsed : {};
18
+ }
19
+ /**
20
+ * This function gives the URL addressing, the default of `procedureHandler`: the URL strategy
21
+ * gives the method, and the body is the payload. The `:id` of a RESTful `GET` route of a
22
+ * framework becomes the payload `{ id }`.
23
+ */
24
+ export function urlAddressing(options = {}) {
25
+ const strategy = options.urlStrategy ?? createPatternServerUrlStrategy(options.basePath ?? "/api");
26
+ return (request, body, req) => {
27
+ const method = strategy(request, req);
28
+ if (!method)
29
+ return null;
30
+ const id = paramsOf(req)["id"];
31
+ return { method, payload: req.method === "GET" && typeof id === "string" && id !== "" ? { id } : body };
32
+ };
33
+ }
34
+ /** The segments of a path in a body: a list of texts, or one text with dots. */
35
+ function segmentsOf(value) {
36
+ const segments = typeof value === "string" ? value.split(".") : value;
37
+ if (!Array.isArray(segments) || segments.length === 0)
38
+ return undefined;
39
+ return segments.every((segment) => typeof segment === "string" && segment !== "") ? segments : undefined;
40
+ }
41
+ /**
42
+ * This function gives the addressing of a single endpoint with the path in the body (CLI-31), for
43
+ * example `POST /api/proc` with `{"path": ["notes", "list"], "input": {}}`. The handler takes the
44
+ * base path itself too. The function reads only the own fields of the body, so a `__proto__` key
45
+ * cannot give the path. A body without a valid path names no call: the handler answers
46
+ * `INVALID_REQUEST`.
47
+ */
48
+ export function bodyPathAddressing(options = {}) {
49
+ const pathField = options.pathField ?? "path";
50
+ const inputField = options.inputField ?? "input";
51
+ const addressing = (_request, body) => {
52
+ if (body === null || typeof body !== "object" || Array.isArray(body))
53
+ return null;
54
+ const fields = body;
55
+ const path = segmentsOf(Object.hasOwn(fields, pathField) ? fields[pathField] : undefined);
56
+ if (!path)
57
+ return null;
58
+ return { method: pathToMethod(path), payload: Object.hasOwn(fields, inputField) ? fields[inputField] : undefined };
59
+ };
60
+ return Object.assign(addressing, { takesBasePath: true });
61
+ }
62
+ //# sourceMappingURL=addressing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addressing.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/addressing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/cors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3D,8CAA8C;AAC9C,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACzF,qGAAqG;IACrG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACjD,qGAAqG;IACrG,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACxD,iGAAiG;IACjG,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACxD;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3C,kGAAkG;IAClG,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACxC;AAED,oFAAoF;AACpF,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAehD,CAAC;AAEH,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAOhD,CAAC;AAEH,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,QAAQ,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IAChF,+FAA+F;IAC/F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,GAAG,UAAU,CAoBxF;AAWD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAchG;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAMlH"}
1
+ {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/cors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAIjE,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3D,8CAA8C;AAC9C,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACzF,qGAAqG;IACrG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACjD,qGAAqG;IACrG,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACxD,iGAAiG;IACjG,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACxD;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3C,kGAAkG;IAClG,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACxC;AAED,oFAAoF;AACpF,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAiBhD,CAAC;AAEH,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAOhD,CAAC;AAEH,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,QAAQ,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IAChF,+FAA+F;IAC/F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,GAAG,UAAU,CAoBxF;AAWD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAchG;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAMlH"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { HTTPHeaders, HTTPMethod } from "../shared/index.js";
7
7
  import { PROTOCOL_HEADER } from "../../../protocol.js";
8
+ import { NARROWING_HEADER } from "../../../procedures/narrowing.js";
8
9
  import { toMs } from "../../../duration.js";
9
10
  /** The request headers that `HttpTransport` sends: the default `allowedHeaders`. */
10
11
  export const DEFAULT_CORS_HEADERS = Object.freeze([
@@ -19,6 +20,8 @@ export const DEFAULT_CORS_HEADERS = Object.freeze([
19
20
  "traceparent",
20
21
  PROTOCOL_HEADER,
21
22
  HTTPHeaders.METADATA,
23
+ // The narrowing key of a call (CLI-30)
24
+ NARROWING_HEADER,
22
25
  "collection",
23
26
  "collectionName",
24
27
  "database",
@@ -1 +1 @@
1
- {"version":3,"file":"cors.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/cors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cors.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/cors.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ import { type BrowserGuardOptions } from "../../../server/browser-guard.js";
22
22
  import { type Clock } from "../../../clock.js";
23
23
  import { type Duration } from "../../../duration.js";
24
24
  import { type CorsOptions } from "./cors.js";
25
+ import { type Addressing } from "./addressing.js";
25
26
  /** The parts of a request that a URL strategy of `procedureHandler` reads. */
26
27
  export interface UrlRequest {
27
28
  /** The HTTP method, in upper case. */
@@ -48,9 +49,16 @@ export interface ProcedureHandlerOptions extends BrowserGuardOptions {
48
49
  readonly basePath?: string | undefined;
49
50
  /**
50
51
  * The method of a request. The default reads the URL format of `HttpTransport`:
51
- * `{basePath}/{service}/{operation}`.
52
+ * `{basePath}/{service}/{operation}`. The option `addressing` replaces it.
52
53
  */
53
54
  readonly urlStrategy?: NodeUrlStrategy | undefined;
55
+ /**
56
+ * The addressing of a request (CLI-31): a hook of the request and its body that gives the
57
+ * method and the payload of the call. `bodyPathAddressing()` reads the path from the body of a
58
+ * single endpoint.
59
+ * @default urlAddressing({ basePath, urlStrategy })
60
+ */
61
+ readonly addressing?: Addressing | undefined;
54
62
  /**
55
63
  * The CORS headers of the requests on the path. `true` uses the defaults: each origin, without
56
64
  * credentials. The permitted origins of the browser checks follow the CORS origins.
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/handler.ts"],"names":[],"mappings":"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"}
@@ -23,8 +23,9 @@ import { PROTOCOL_HEADER, PROTOCOL_VERSION, httpStatusOf, protocolVersionOf } fr
23
23
  import { realClock } from "../../../clock.js";
24
24
  import { ms } from "../../../duration.js";
25
25
  import { NDJSON_MEDIA_TYPE as NDJSON, defaultNdjsonError as errorOf, keepAliveMsOf, writeNdjsonStream } from "./ndjson.js";
26
- import { createPatternServerUrlStrategy } from "./strategies.js";
27
26
  import { applyCors, corsOrigins, corsPolicy } from "./cors.js";
27
+ import { urlAddressing } from "./addressing.js";
28
+ import { NARROWING_METADATA_KEY, addNarrowing } from "../../../procedures/narrowing.js";
28
29
  /** The error of a request body or of a header that the handler cannot read. */
29
30
  class BodyError extends Error {
30
31
  httpStatus;
@@ -70,6 +71,17 @@ const GUARD_REASONS = {
70
71
  METHOD_NOT_ALLOWED: "method-not-allowed",
71
72
  UNSUPPORTED_MEDIA_TYPE: "media-type-not-allowed",
72
73
  };
74
+ /** This function sets a key as an own property, also the key `__proto__` (the `put` of the query language). */
75
+ function put(target, key, value) {
76
+ Object.defineProperty(target, key, { value, enumerable: true, writable: true, configurable: true });
77
+ }
78
+ /**
79
+ * This function sets a key at the root of the metadata. Each source of the narrowing key adds to
80
+ * the key, so no source replaces another (CLI-30).
81
+ */
82
+ function setMetadata(metadata, key, value) {
83
+ metadata[key] = key === NARROWING_METADATA_KEY ? addNarrowing(metadata[key], value) : value;
84
+ }
73
85
  /** This function writes a JSON response without a framework. */
74
86
  function writeJson(res, status, body) {
75
87
  const text = JSON.stringify(body);
@@ -144,13 +156,13 @@ export function createProcedureHandler(server, options, compat = {}) {
144
156
  assertNamedOrigins(compat.face?.name ?? "procedureHandler", ambientMode, guard.allowedOrigins, compat.face?.originOption ?? "cors.origin");
145
157
  const secretHeaders = headerNames(options.secretHeaders);
146
158
  const secretQuery = new Set(options.secretQuery ?? (legacy ? [] : ["token"]));
147
- const strategy = options.urlStrategy ?? createPatternServerUrlStrategy(basePath);
148
- const methodOf = compat.methodOf ??
149
- ((req) => {
150
- const { path, query } = urlParts(req.url);
151
- const view = { method: (req.method ?? "GET").toUpperCase(), path, url: req.url ?? "/", headers: req.headers, query: queryRecord(query) };
152
- return strategy(view, req);
153
- });
159
+ // The addressing of a request (CLI-31): the option, or the URL strategy of the shim, or the URL
160
+ // format of HttpTransport
161
+ const compatMethodOf = compat.methodOf;
162
+ const addressing = options.addressing ??
163
+ urlAddressing(compatMethodOf ? { urlStrategy: (_view, req) => compatMethodOf(req) } : { basePath, urlStrategy: options.urlStrategy });
164
+ // A single endpoint (the path in the body) is the base path itself
165
+ const bareBase = prefix.slice(0, -1);
154
166
  const sendJson = compat.sendJson ?? writeJson;
155
167
  /** The controllers of the requests in progress: close() aborts them (deep dive TRN-15) */
156
168
  const openRequests = new Set();
@@ -165,7 +177,12 @@ export function createProcedureHandler(server, options, compat = {}) {
165
177
  for (const waiter of waiters)
166
178
  waiter();
167
179
  };
168
- const matches = (req) => compat.matchAll === true || pathOf(req).startsWith(prefix);
180
+ const matches = (req) => {
181
+ if (compat.matchAll === true)
182
+ return true;
183
+ const path = pathOf(req);
184
+ return path.startsWith(prefix) || (addressing.takesBasePath === true && path === bareBase);
185
+ };
169
186
  /** The error body of wire v1: the message, the code, the retryable flag and the more fields. */
170
187
  const sendError = (res, status, message, code, retryable = false, more = {}) => {
171
188
  sendJson(res, status, { error: message, code, retryable, ...more });
@@ -206,17 +223,24 @@ export function createProcedureHandler(server, options, compat = {}) {
206
223
  throw new BodyError("The request body is not valid JSON", 400);
207
224
  }
208
225
  };
209
- /** This function converts an HTTP request to a `ServerRequest`, or null when the URL names no method. */
226
+ /**
227
+ * This function converts an HTTP request to a `ServerRequest`, or gives null when the addressing
228
+ * finds no call in the request.
229
+ */
210
230
  const toServerRequest = (req, body) => {
211
- const method = methodOf(req);
212
- if (!method)
231
+ const { path, query: urlQuery } = urlParts(req.url);
232
+ const view = { method: (req.method ?? "GET").toUpperCase(), path, url: req.url ?? "/", headers: req.headers, query: queryRecord(urlQuery) };
233
+ const address = addressing(view, body, req);
234
+ if (!address)
213
235
  return null;
236
+ const method = address.method;
214
237
  const id = req.headers["x-request-id"] ?? `req-${Date.now()}-${Math.random()}`;
215
238
  // The query without its secret parameters: they go into the credentials (CLI-2a)
239
+ // An own property for each key, also `__proto__`: a key of the request changes no prototype
216
240
  const query = {};
217
241
  for (const [key, value] of Object.entries(queryOf(req)))
218
242
  if (!secretQuery.has(key))
219
- query[key] = value;
243
+ put(query, key, value);
220
244
  const params = paramsOf(req);
221
245
  // The metadata of the headers and of the query. The query parameters cannot replace headers,
222
246
  // query or params. The secret headers go into the credentials, not into the metadata, so a
@@ -228,18 +252,24 @@ export function createProcedureHandler(server, options, compat = {}) {
228
252
  };
229
253
  for (const [key, value] of Object.entries(query)) {
230
254
  if (!RESERVED_METADATA.has(key) && !key.startsWith("__"))
231
- metadata[key] = value;
255
+ setMetadata(metadata, key, value);
232
256
  }
233
257
  // The custom headers at the root of the metadata, as the client's metadataToHeaders() sends
234
258
  // them. A secret header (Cookie too) does not go there.
235
259
  for (const [key, value] of Object.entries(req.headers)) {
236
260
  const lower = key.toLowerCase();
237
- if (STANDARD_HEADERS.has(lower) || isSecretHeader(lower, secretHeaders) || typeof value !== "string")
261
+ if (STANDARD_HEADERS.has(lower) || isSecretHeader(lower, secretHeaders) || typeof value !== "string" || lower === NARROWING_METADATA_KEY)
238
262
  continue;
239
263
  const normalizedKey = HEADER_MAPPINGS[lower] ?? key;
240
264
  if (!RESERVED_METADATA.has(normalizedKey) && !normalizedKey.startsWith("__"))
241
265
  metadata[normalizedKey] = value;
242
266
  }
267
+ // Each value of the narrowing header is one source, also each line of a repeated header. No
268
+ // source replaces another: a gateway's header and the client's key of X-Metadata both apply (CLI-30)
269
+ const narrowingHeader = req.headersDistinct?.[NARROWING_METADATA_KEY] ?? req.headers[NARROWING_METADATA_KEY];
270
+ for (const value of [narrowingHeader].flat())
271
+ if (typeof value === "string")
272
+ setMetadata(metadata, NARROWING_METADATA_KEY, value);
243
273
  // The custom metadata of the HTTP client: any JSON value, any key (deep dive TRN-11)
244
274
  const encoded = req.headers["x-metadata"];
245
275
  if (typeof encoded === "string") {
@@ -251,16 +281,12 @@ export function createProcedureHandler(server, options, compat = {}) {
251
281
  throw new BodyError("The X-Metadata header is not URI-encoded JSON of an object", 400);
252
282
  for (const [key, value] of Object.entries(custom)) {
253
283
  if (!RESERVED_METADATA.has(key) && key !== "auth" && !key.startsWith("__"))
254
- metadata[key] = value;
284
+ setMetadata(metadata, key, value);
255
285
  }
256
286
  }
257
- // The payload: the body, or the id of a RESTful GET. Only an absent payload becomes {}: 0,
258
- // false, "" and null stay (deep dive TRN-10)
259
- let payload = body;
260
- if (req.method === "GET" && params["id"])
261
- payload = { id: params["id"] };
262
- if (payload === undefined)
263
- payload = {};
287
+ // The payload of the addressing (the body, or the id of a RESTful GET). Only an absent payload
288
+ // becomes {}: 0, false, "" and null stay (deep dive TRN-10)
289
+ const payload = address.payload === undefined ? {} : address.payload;
264
290
  return {
265
291
  id,
266
292
  method,
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/handler.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ export declare function defaultServerUrlStrategy(req: RoutedRequest): Method | n
31
31
  * Maps:
32
32
  * - POST /rpc/users/get → { service: "users", operation: "get" }
33
33
  * - POST /rpc/users/list → { service: "users", operation: "list" }
34
+ * - POST /rpc/morning → { service: "", operation: "morning" } (a path of one segment, CLI-28)
34
35
  */
35
36
  export declare function rpcServerUrlStrategy(req: RoutedRequest): Method | null;
36
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/strategies.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGvD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAmC1E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAiBtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,SAAS,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,MAAM,GAAG,IAAI,CASvG;AAED,0FAA0F;AAC1F,eAAO,MAAM,wBAAwB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,MAAM,GAAG,IAAuC,CAAC"}
1
+ {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/strategies.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGvD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAmC1E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAuBtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,SAAS,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,MAAM,GAAG,IAAI,CASvG;AAED,0FAA0F;AAC1F,eAAO,MAAM,wBAAwB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,MAAM,GAAG,IAAuC,CAAC"}
@@ -51,9 +51,15 @@ export function defaultServerUrlStrategy(req) {
51
51
  * Maps:
52
52
  * - POST /rpc/users/get → { service: "users", operation: "get" }
53
53
  * - POST /rpc/users/list → { service: "users", operation: "list" }
54
+ * - POST /rpc/morning → { service: "", operation: "morning" } (a path of one segment, CLI-28)
54
55
  */
55
56
  export function rpcServerUrlStrategy(req) {
56
57
  const path = req.path;
58
+ // A path of one segment: /rpc/:operation, with the empty service (CLI-28)
59
+ const single = path.match(/^\/rpc\/([^/]+)\/?$/);
60
+ if (single?.[1]) {
61
+ return { service: "", operation: single[1] };
62
+ }
57
63
  // Match pattern: /rpc/:service/:operation
58
64
  const match = path.match(/^\/rpc\/([^/]+)\/([^/]+)/);
59
65
  if (!match) {
@@ -1 +1 @@
1
- {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/strategies.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAa5D;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAkB;IACzD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAExC,oCAAoC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEpB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAA0C;IAC1C,IAAI,MAAM,KAAK,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,KAAK,KAAK,IAAI,EAAE,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAkB;IACrD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAEtB,0CAA0C;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAQ,GAAG,MAAM;IAC9D,OAAO,CAAC,GAAkB,EAAiB,EAAE;QAC3C,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACpB,IAAI,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,wEAAwE;QACxE,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAW,CAAC,CAAC;IAC1E,CAAC,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,MAAM,wBAAwB,GAA0C,8BAA8B,EAAE,CAAC"}
1
+ {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/strategies.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAK7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IACzD,QAAQ,CAAC,IAAI,UAAU;IAEvB,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,OAAO,CAAsG;IACrH,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,OAAO,CAAS;IAExB,YAAY,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,0BAA+B,EAoD3E;IAED;;OAEG;IACH,OAAO,CAAC,WAAW;IAmBb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA4B3B;IAED;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqB1B;IAED,SAAS,IAAI,OAAO,CAEnB;IAED;;;;OAIG;IACH,IAAI,IAAI,MAAM,GAAG,SAAS,CAGzB;CACF"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAK7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IACzD,QAAQ,CAAC,IAAI,UAAU;IAEvB,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,OAAO,CAA8H;IAC7I,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,OAAO,CAAS;IAExB,YAAY,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,0BAA+B,EAuD3E;IAED;;OAEG;IACH,OAAO,CAAC,WAAW;IAqBb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA4B3B;IAED;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqB1B;IAED,SAAS,IAAI,OAAO,CAEnB;IAED;;;;OAIG;IACH,IAAI,IAAI,MAAM,GAAG,SAAS,CAGzB;CACF"}
@@ -49,6 +49,8 @@ export class HttpServerTransport {
49
49
  basePath,
50
50
  cors: options.cors ?? false,
51
51
  httpServer: options.httpServer,
52
+ // A single endpoint with the path in the body is the base path itself (CLI-31)
53
+ takesBasePath: options.addressing?.takesBasePath === true,
52
54
  };
53
55
  // Route by URL path so the raw server matches the HTTP client's default URL format instead of
54
56
  // inferring the operation from the verb (BUGS-2026-07 C3, bug 16)
@@ -66,6 +68,7 @@ export class HttpServerTransport {
66
68
  allowGet: options.allowGet,
67
69
  secretHeaders: options.secretHeaders,
68
70
  secretQuery: options.secretQuery,
71
+ addressing: options.addressing,
69
72
  }, {
70
73
  legacy: true,
71
74
  matchAll: true,
@@ -99,8 +102,10 @@ export class HttpServerTransport {
99
102
  next();
100
103
  });
101
104
  }
102
- // Catch-all route for RPC - use regex to match any path under basePath
103
- this.app.all(new RegExp(`^${this.options.basePath.replace(/\//g, "\\/")}\\/.*`), async (req, res) => {
105
+ // Catch-all route for RPC - use regex to match any path under basePath, and the base path
106
+ // itself for an addressing that takes it
107
+ const base = this.options.basePath.replace(/\//g, "\\/");
108
+ this.app.all(new RegExp(this.options.takesBasePath ? `^${base.replace(/\\\/$/, "")}(?:\\/.*)?$` : `^${base}\\/.*`), async (req, res) => {
104
109
  await this.handler.handle(req, res);
105
110
  });
106
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/transport.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import type { Method } from "../../../client/types.js";
9
9
  import type { BrowserGuardOptions } from "../../../server/browser-guard.js";
10
10
  import type { Clock } from "../../../clock.js";
11
11
  import type { Duration } from "../../../duration.js";
12
+ import type { Addressing } from "./addressing.js";
12
13
  /**
13
14
  * URL strategy for converting HTTP requests to RPC methods.
14
15
  */
@@ -43,6 +44,12 @@ export interface HttpServerTransportOptions extends BrowserGuardOptions {
43
44
  * @default createPatternServerUrlStrategy(basePath): the format of the HTTP client
44
45
  */
45
46
  urlStrategy?: HttpUrlStrategy;
47
+ /**
48
+ * The addressing of a request (CLI-31): a hook of the request and its body that gives the
49
+ * method and the payload of the call. It replaces `urlStrategy`. With `bodyPathAddressing()`,
50
+ * the route takes the base path itself too.
51
+ */
52
+ addressing?: Addressing;
46
53
  /**
47
54
  * Base path for RPC endpoints.
48
55
  * @default "/api"